From 696e2c7dfbac2b27b46025522fa00616f12344ce Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 13 Feb 2024 12:35:39 -0500 Subject: [PATCH] Add `DataFilterExtension` example (#358) ### Changelog - Add `DataFilterExtension` example - Move layer extensions out of `experimental` --- assets/data-filter-extension.gif | Bin 0 -> 1342633 bytes docs/api/experimental/traits.md | 4 - .../layer-extensions/brushing-extension.md | 2 +- .../collision-filter-extension.md | 2 +- .../layer-extensions/data-filter-extension.md | 4 +- docs/api/traits.md | 4 + examples/data-filter-extension.ipynb | 1402 +++++++++++++++++ examples/internet-speeds.ipynb | 253 +-- examples/migration.ipynb | 21 +- lonboard/__init__.py | 2 +- lonboard/_base.py | 11 +- lonboard/controls.py | 2 +- lonboard/experimental/__init__.py | 5 - lonboard/experimental/_layer.py | 2 +- lonboard/experimental/traits.py | 287 ---- .../{experimental => }/layer_extension.py | 9 +- lonboard/traits.py | 276 ++++ mkdocs.yml | 11 +- tests/test_layer.py | 4 +- tests/test_map.py | 2 +- tests/test_traits.py | 2 +- 21 files changed, 1884 insertions(+), 421 deletions(-) create mode 100644 assets/data-filter-extension.gif delete mode 100644 docs/api/experimental/traits.md create mode 100644 examples/data-filter-extension.ipynb delete mode 100644 lonboard/experimental/traits.py rename lonboard/{experimental => }/layer_extension.py (96%) diff --git a/assets/data-filter-extension.gif b/assets/data-filter-extension.gif new file mode 100644 index 0000000000000000000000000000000000000000..43396a8173edb6aa5d2f30e70329b65aaa17a929 GIT binary patch literal 1342633 zcmV(}K+wNONk%w1VZZ~M0)PMj00000001HX3r_4WS#{?*&u_xJbH+1mQ~_xt<# z)7aVR>FNCX`2GC){{H;=`uOqj@#N&>?(gpQ_V)by`q|#!(%0D5+S~2z?fUxn`uq9( z{QUg?{`~&?sHmv;`Sg(#&+1md5`TPC)^7HWg{P@(` z+W-Ik{rULw_xAt)`qbCi-QnT!>FN0L@%8TR_VDl1+uQs3@%s4o^X=^6;^F@N_}AUu z_4f1H+u7dU-RI}#`1bMo{P*(k>i+xl+Th^N)6wkg>D1E5_wwhVqk8o2;^pGo`u6PV z<=*=H`}_6u-{j=&@$dQl`?$Ecm7jT`sDsSU%k}l`{{R2n*2?be;_K?+90ey4=yc{rC3N&A+abTD7f+!@#e$pKRmY&XuNwzqypw&9U+F=gr8v;^*bA zsC(n)*}1>B&B36;#k%$F*omBb%fqns`S<_-_NuIg#>&ODzNWyxpufPs?&#Lv*1y@_ z+T7yT#K^F!u#M2WlD?#H{`%?E$gkt#�bqv$K`TyPwO=!`jB5r?r;V*Tcoe#=*3e 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�o-^SoZBY)UTC!WFJ# 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

6Fwy^5u3{Lezg|7h8kU=r_($^hYkLWp$lT8d3 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

+bIA|NsB@ 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

r^RNaw~EXpPY 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

(1iP+#P`kE9*YYQ^XQP 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

}ACJ`P%!(?!6 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�Jlh>7(Nw=PvtJn;3h*AOO!;&AcFunkS)nkfLvS3wNeF@Vu+kY zG@d&RNQhP*GpZy60y7D`c*s~X;P@>|GU1R2N&v{QnCJ!y3*i4M1OPOFvl$dMq4em^ z?2i^aAyB|M*$|=Y`f`Bf}LoDO0MT#1L!z25Hu)jFNF~km=(x60`HAiEE=D$x3n|$t}NlLG~Fzjj5aHkkCXk7Hv8dhT_!ZqwB$*lg3IQ5r;_#_CFA51>J_Xz&&qa)QRWM?;C$ z@aWg@xn8aj2&fUtsu5|a5u2z%@6||%)=KHuO1sv|2GnA*Y86^)6(?$y_i9x{>1z6P z4OhBW09_}GuGd00n4lZ&(Q%@6XY}h#Tddq1EL-ZVChDyB>TFu Screen recording from [U.S. County-to-County Migration example](../../../examples/migration/). -::: lonboard.experimental.BrushingExtension +::: lonboard.layer_extension.BrushingExtension options: show_bases: false inherited_members: true diff --git a/docs/api/layer-extensions/collision-filter-extension.md b/docs/api/layer-extensions/collision-filter-extension.md index 919d2630..61c779d1 100644 --- a/docs/api/layer-extensions/collision-filter-extension.md +++ b/docs/api/layer-extensions/collision-filter-extension.md @@ -1,6 +1,6 @@ # CollisionFilterExtension -::: lonboard.experimental.CollisionFilterExtension +::: lonboard.layer_extension.CollisionFilterExtension options: show_bases: false inherited_members: true diff --git a/docs/api/layer-extensions/data-filter-extension.md b/docs/api/layer-extensions/data-filter-extension.md index b95eec94..c4f13694 100644 --- a/docs/api/layer-extensions/data-filter-extension.md +++ b/docs/api/layer-extensions/data-filter-extension.md @@ -1,6 +1,8 @@ # DataFilterExtension -::: lonboard.experimental.DataFilterExtension +![](../../assets/data-filter-extension.gif) + +::: lonboard.layer_extension.DataFilterExtension options: show_bases: false inherited_members: true diff --git a/docs/api/traits.md b/docs/api/traits.md index 35444b84..65d573e6 100644 --- a/docs/api/traits.md +++ b/docs/api/traits.md @@ -5,3 +5,7 @@ ::: lonboard.traits.ColorAccessor ::: lonboard.traits.FloatAccessor + +::: lonboard.traits.PointAccessor + +::: lonboard.traits.GetFilterValueAccessor diff --git a/examples/data-filter-extension.ipynb b/examples/data-filter-extension.ipynb new file mode 100644 index 00000000..492031da --- /dev/null +++ b/examples/data-filter-extension.ipynb @@ -0,0 +1,1402 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DataFilterExtension\n", + "\n", + "The `DataFilterExtension` adds GPU-based data filtering functionalities to\n", + "layers, allowing the layer to show/hide objects based on user-defined\n", + "properties.\n", + "\n", + "In this demo we'll use the `DataFilterExtension` to filter millions of points based on three numeric attributes." + ] + }, + { + "attachments": { + "e4426b37-c5a4-43ad-b3b7-8566f94c4be9.gif": { + "image/gif": "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6Gmr2prWhhir9atAWPeXd2TM8rmgreBGizvb6E63utfNByGfm91i8ja8eXVQW8/73vjOt773ze9+j4Xc/lYUwANO8IIbXNryPnicCK3whjvcHgl/uMQnTnFrU465Zam4xjfO8Y5PLeJQALnHL8Nw7IycWrM+eYpSrvKWu/zlMI+5zPeNSpHPXDdwvTm9Wa7znvs8Ejz/uXxgJ/Si84NxpQ660ZfO9KY7/elQj7rUp071qlv96ljPuta3zv/1rnv962A3pwHCTvayg2HgZo9MmdMOG5uz/e1wj7vc5073utv97ngXNnjzjhjp8T3q9v674LGy9sHfPLdND7zhd7P42aC98X/ZVrUhvxieapHyrUE25p38WHxt/vOgD73oR096Rbi99IpxLOpXz/rWu/71SUM8aFiUO8XD/vbuaIHscY+V3fP+98APvvCHT/ziG//4yE++8pfP/OY7//nQT8Teo//z01P/+s18N/YTUvjte9/HM/m+QrrPBPJP3PfiTz9rm63+9rv//ViZPPxx8vj52//++Bc6+vPP//77//8AGIACOIAEWIAGeIAImIDTNn0K2IAO+IAQGIESOIH/FFiBFniBGJiBGriBHNiBHviBIBiCIjiCJFiCJniCKJiCKriCLNiCLviCMBiDMjiDNFiDNniDOJiDOriDPNiDPviDQBiEQjiERFiERniESJiESriETNiETviEUBiFUjiFVFiFVniFWJiFWriFXNiFXviFYBiGYjiGZFiGZniGaJiGariGbNiGbviGcBiHcjiHdFiHdniHrnYYASAAfNiHBnAADkABEvAAEgACIvABF4eHfTB2BrCHjmgAHcAAAzCJFhABChABFjCJA6AAEJA8iogHExCKHOCIAQAACzCJCUABB9CIpAgAJAABkjgAGJBxn1gHBNCHSCcCkwgCtDgE/6RYigCgASJwAgNwQbUYB60oBBOgAMU4dknwi0OgiydgecfYBskIAAcwABZAAk5wjcs4AA5QjWzgiERwAQPAAFJAjkNwiiIgjouzh+Uoi1SgjkJAAeDojmZAj654jlagjyowAB+Aj2OgjwCAiVgAj0QgiYkokFrgjwPAjVegjwYgjwy5Bfo4AcXYkAgpBB0AkBWpkVczAFywkUKgAAnwkQdJkhowABQwkiRpjtSIklNAkgAAAQOwkBFJkxbwADJZBTSpAOgIBjSp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cP0AYGe59AoIFgA0AIWGh4iJiouMjY6PkJGSk5SVlo41ACKXnJ2en6ChoqOkkTelqC0tiAuorq+wsbKztCuFJKyUA4attL6/wMHCw8TFxseSEMiKB8vOz9DRx6uPQCbS2Nna29zd3gDK35TUh2Li5+jpkQ+HDw3q8PHy8/TZIfWS7N7h+P2oLyBygerlr6DBgwgTKlzIsKGhe6EIOpxIsaLFi5//+GHcyLGdIwIdQ4ocSdKXRlESz5UoybKly5cwYy47gagEOZk4XU1xtSunz59Af264he9JUHQqwAE7ebSp06f+PCTSNwjADngpoUpTIYiWA61gw4rdt5DQ2JkstthgUxVRgU673jY7S7euXWI4GF5IcVehgb6AAwsG9XaTIwX4cA3GN2Gx48eQHaEZUwjMwZWRZ9nKzLmzZ0oejCIS/TlouL8DS6teXdeHQ8SsL51S6qhx7Nu4c+tuyKIRyN3Agwv3GmG48ePIk2eTqlyShObQo0uf/gki9evYs0cHYVu79+/gdRu59DW8+fPoI19Lz749ybnu48uf7yspfXQc7uvf/x9KwQva/G0TAydbBGjgflQdqOCCDDYI1VAORijhhMdsRuGF90GQIIYcduhhJbB9GMx/Ipb43WzioPaciSy2KCIKLsYo44SkzWjjjTjmqOOOpb3F449AZldekEQWaeSRSCap5JJMNsmeDE5GGd6KE6Im5ZVYZqnlllx26eWXYIYp5phklmnmmWim6dBvarbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvssf/IJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbDHCBUjBiwM+XiywARIMEDLIHv9bwAcAQEGEFSxDkcQHGQcQQMn4SpCFFQIY0rIVSgjgsxVZSCHzzDTHK0ESGAjABRUVUGmIBBVQwYUAGAAgwdBFuytE0lBsQPRhUFAtBNZZqxs2EQ4kMA4RArQh9Ndlk2sADAIEDfckQlBt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ELzT5Vw9xY2qAB7bB26zsncBoe3Iz90oa4hyqgQJ3p3giwQT6i21Fj5HydDa1ZLaG94c+e13ARziVZvVr2jiiKbi6c3iYHLTRFPiLo7/S6tUMzPOyBF343tT4C2s40cC2z4e5EI+5ESOFCDy1JcknRgx3kU+IiPE5E3eKDPsWm0YslFOQkuqHRWhr1eOHw0e4Zh0Ki6rN7bB211uNLmN2WfuKCM+fms+ukj+5kHytZyARf8t58RNfHgur2m+5yBjS7B2GkDu57ur24SO5SkwvYd+wotuNHVY4GzS6I5SzXittysq6S6MK4nwsJiOKczd6X/+2ZAwyqAO4cq8te0D36XO4cNNp59AQBm+6t1iMy9hIS0t648A5kKCJTe02fNF6qqJ62Cl5n4DF3G82sK+q0hsCC81UQub7CQkBBcL7R/D5dQ+PjnA4zxnX9to/ySDfedb0bHX3g7Z4+HjDjCfbpfnHg5xjhhpu+4xrq1WXBbSGzooLumRC++/QNp6LrvaO8X6/nAXUnoxBdRsw+nCkWZHdpkw7pHpHvDShIjVB/HxsH4gTvHQbu0C/jUejeuUjvHfcPE10e4gb1UWIxgJ8OAlLw6xvvJGouut7vIybyCD3gxzh70DL6UNP/M8XxoPf1K2Adc93yKI0/IIN/Rv4oj5jvRhwjn3zvRCcuz+Dhr8TiUfnyewDeU9IfXHMTtXAvXzixooeg3oHfBlD/bPYO1dIciicvYzT/Jh8u720ecx/+ZC/zVVL7uOJKZoj5Fc3/cEFfiAH8t7PfiKyP8i1m34IQL3uoDwiv/4kB/58+Kgho4aDV75kg8eNbL0qdHtJ5T5oB/6ou8OiQsNjj/6VXGFb2LuaM/2qI+wNf/6bnKvp2b0sn/7uH9Y3J37N6LyvP/7wB/8wm+zsjn8f9Lmxp/8yr/8zG+7zR8mIv/83IH80p8NMF/92F/9t5793J/7jN/9igf+4j/+5F/+yn/95p/+6r/+7N/+7v/+8L+F8T//9F//9n//+J//+r///N///v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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tunSFGVXlcACIKovzWqroYuBFSnlPrOfkNz5frJouVWWOGc1NpPvq4/zLHAI300Xw42TZfDVIbqcjvBMVAMRgBssoACBEF3yEDwN9+mkbuemQMuDQDxPVQGdJDqhLvFADM7naBsF7mGi80AZl8kJqCTkU+z+zYBARVTr3h+kYZIil94PlBuhsO8dbyt/FgmvRAPb+wgLxGvkG4w2aO4nFz0sN0wY7jPvFr07SYLc7vL/b+NyUKkfFyDF0/seRX3mxvXxDBLZKBcMNw5r7Zjd9FMeHbdlNO9eGT6oES0IURFCcjQ7/1Gz8dVKuKXjgYAVOJglkfQe+f7AOw90Tct0tkqqQus58RuDc6rd4g2BTN3XfNbqUdeWxKMePQd17D11xRUDg00PDPvd4eN0TZervSY8nqgBJ0EQFGCSm8BEAvw/mmbeZDddDT1oDPQAD8jwXSc4a5QIMzTUGFi8aUfz9qSL1FPCZd32PhcPyRD3l2ZooKBzc3dqDNi8PKXNdT8qJoRqTMnfeH9ys773e+dzfR/p/NXeh0j1fucJUu9oYVbggY9rEmerawQuyVXzhIfp/6wm8JaOeM829qjgEaD+cY+2eDkLzvVoA3ifZKQ25h+Q9TalbSVXpjbL0QJMco8XMewWiRFBKF0fusKM+TmbAl+6b18nwDAg2dM92KB189zcLYDXeazBH1R1AK3t+ZFYeKVfkWyV2qQe2s5OiYCdegFxS4zYLKV1DYK+S3vn+gkpVWtt7n41e8T+SEZn+8eGeHDVWwCEe2FJb4e9NYHvZbtnkzkqKDuo+n2V+r6PGb6Rc5Hl98KHGRRf/MOm+Jtd9ltx/F6RdgAgH8o3bXSVkCDYIyf7SsTP/HW+g3MW/Zg5cxhxckjNDJGAWdM3qQNfgLFX9Nc/O7dOvJmvfbP7Q/+lFCFn1/2Clkfgt2zXH36uVnfjT37lNxu5X/6rxoOLdH7x9Vnq8LXKfGXpj5mkz37u736OLnvvD38QAmzxL3/zP3/0T3/1X3/2b3/3f3/4j3/5n3/6r3/7v39xv33833/+73//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////vj8AS5CDKlgDhKgCOeCEAwiAAPj/VAaIH3IYCQAAao2khGtACRDASM6BAAEAUKxo8SLGjBo3cuzo8SPIkCJHkixp8iTKlCpXsmzp8iXMmDJn0qxp8ybOnDp3UlxBx6GiFQgmXoSwYqCANYSI8mzq9CnUqFKnUq1q9SrWrFq3ctVooIoAOiskflTzswoEpl3Xsm3r9i3cuHLn0q1rd6Mah2rIitRERsDYu4IHEy5s+DDixIoXa4QkQBJfkizAWlLL+DLmzJo3c+7sOa4iAZX5pHQMKfLn1KpX/7Nu7fo1Y8ecLJ/kJJo27Ny6d/Pu7ft3yLyVXToODPw48uTKlzOna6DggAEvwaZtbv069uzat5uswgg1SxZkqoDnbv48+vTqP68AjHul36Xr59Ovb/8+Wzp0os+ks6Y8fgEKOCCBBY60gHs05RWRgQ06+CCE9g3EH00PARghhhlquOFrZADwnksTgsghiSWaeKJdByRYU3tejBiVASjKOCONMtpWgHQ1QSDAbDX6+COQQdoEyoUvWTgXBEIquSSTx1Xx34srdbJGFW2IktwacngkxxoUaVmRIiZ1CWZGVTR5JppAWkJlAAeMdMkBhIg0iiRrdJIJd5CkuSeffa70A/8AkJHEB5wrhESnnZnguZqZGDXa1aN+SjqpgQgV6ZUipH0CyEeI3rloZmF6pKeXTpFKKaqpZvjkpRnt+KEogHDa0ShU3pmbqG1VcaqqvfpqHpFRWsQCAH9luumsG3UCihy3/vostNGuxkloAawQaUfE/gXAsbJyFAmPpP32aK4WiQpKRugaJBOv0rr7bm4ItkGIJMR+pG1B3F6CrEZ8tJjjcmNS1C5MX8J7MMK+eShsRfg2pC+/GYmYMMUVW9zVxCA5nK8kkUR8kYUMXzwyySW/JK/I+FJUhRyS/MBHJ6NgtCDAJtt8M84s6ddqw8XSEdppABAr7kX+8Zwz0kkrDUDNe3tpDAAdEIhHhgFeJJBkzQDEl/XSXXuNtHdH2+tluGNfJAB5In+9NtvSPvch1xhFJ8EBSYZ1CdEWURd323377a5wan+4hgAMXlSc4H8rvvieskVpLwIA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Te2nQLva2M72Ixas7W57+9vgDre4nzWDcZv73OhOt7rXze5xf7ndvJnAi+H9nDjT+974zre+983vfvv73wAPuMAHDsGHcpvgpzk4CRHO8IY7vC2cfrjEJ07xilv84qvDuMY3zvGOe/zjIK+0JENO8tZcu+QoT7nKV87ylrv85TCPucxnTvOa2/zmOM+5znfO8577/OdAD7rQh070ohsdglc+OlaUrfSmOz1sidXNyZ9O9apb/epYz7rWt871rnv96/9GMth7otexm/3saE+72tfO9ra7/e1wj7vc5073utv97njPu973zve++/3vgA+84AdP+P/CG/7wiE+84hfP+MY7/vGQj7zkJ0/5ylv+8pjPvOY3z/nOe/7zoA+96EdP+tKb/vSoT73qV8/61rv+9bCPvexnT/va2/72uM+97nfP+977/vfAD77wh0/84hv/+MhPvvKXz/zmO//50I++9KdP/epb//rYz772t8/97nv/++APv/j5hIL9AeAAMxDA+HExAxVs4AEDMMQJIhAE5K4fFgfYwAAGUAAKjOAAg3AANHABHbB/CzACAXB/rKABEcB/F1BuigACI1CABAABCaiApxAEAyABJHCBjnAABagA6oeBowACDegBHhgJS7CB9keCnAADEjAACHAJM0AAMuiCLwj/f39kCQ2IAjioCQUwABAIhEL4g5dgAgPwAaDwAAWQgkZ4QwNgBKHwAQOAgk8oCQ8QAU64CR5QhFf4CCpQJaRwAiWwhV+ICA9QhqSgAl54horwAkl4CR9AAoPABE4IAlVohm44CCVAACM4CR/AA4agBEVQCDEgAXq4hwBQhZXwAjowBIcwBHY4CBAQh4poCChgiZJwAI+YCENQiIIAA1EYDuUWTwIQAAmIADCQgKiYgCDggTQAAKiIiWI4CDAAAQeQAZQwhKHYdCwgiyZgAJEAAjwAiYrgAx5IACL4DRcwCMIYACCgAIJQAB0IjSbwABYIAL/Yh1ZICApQAAxQAPGE/wLgWAAm8IePcABpCAKCQAPKGAAWEAGDsAAxAI/CyHMUIIsUkI83pAONoASCEAU4EAEHAJC5oARH0AgwAIgEAIB1sT8UII8ZoAIFMI0mcIDw+AAAqI4+OAgXQADsqAAboIsRcI41KAOSwAAAMJIAEAQAEAMsSQgM0AQraQI8NwN9+AIbwI+PoATGuAhAIAg+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2+j5xtKaf036ueH1rzAAE2TeqO8hu4mHlP76bOLdtO8K6f4cH6Ck68PMty8oYUUJrv/7+XEAyXmINK065078i9LdzG/havz8db4cRf9tXPHpnCP9lVIBQ0DDGIDy2r8OR6DyQiv34T8Prn7+6r/+ApEunJnrXoHmjOLzsoH42iyg7F8Ia08hbT4VuZ//37CxD2+3+X8jej1rbT0U5J//7KAEBjJAcOHv+Z8NOQ+ZicD1+e8O6d/oc19elgLNRQLwQGFMfQ8IAABRgoWGh4iJiouMjY6PkJH/kpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4thq5vL2+v8DBwsPExcbHyMnKy58/zM/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo3AumDenu7/Dx8vP07PX3+Pn6ni/7/thB/gkcSDBfhYIIifnghENFwocQI0qciI4BpSONMFDcyLGjx48gQ0YrILKkyZPkIqBcybKly5eX2sGcSbPmpBw2JQ7IybOnz59AgwqTKVQelqJIpWmEpDJprV1Oo0rl+WESgkYWpmrdyrWrJgObbCCiccArK7Bmf0qRkrZtioxt48qd65Uk3bt4bRHIi9AD37+A/xG1aKHJ4iEadgMrXswY5oPG4fZCnkyZkeHKOUdg3lw0MefPoEOLHm1IAOnTqKH5IJT6E4jWsGOPSiK7tm2tJDvc3s27dyycvvXpDk684GVvposrX868kZAavSU0nz4T6jSM1LNr74h9ezcr3sNv1iwewMHy6NNTHq6+vfv38OPLn0+//qvu9vPr38+/v///AAbozWMCFmggREsdqOCCkIXA4IMQRijhhJudR+GFGGazToYcdujhhyCGKOKIJ7FA4okopqjiiiy26OKLMMYo44w01mjjjTjmqONyYu3o449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYZv+p5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivu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zZs4c+rcybOnz/+fQIMCcCC0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9ev0jyAHUu2rNmzaNOqXcu2rdu3DDvAnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDkxQQEbnGAuLH8OTWowe5suXLmDNrlsV4s+fPoEOLHk1aK+XSqFOrXs26tevXsGOTIiq7tu3buHPr3kV7t+/fwIMLH068uPHjyPeeTs68ufPnYx1Dn05KMvXr2LNr3869u/fv4MOLH0++vPnz6NOrX8++MoX28OPLn0+/vv37+PPr38+/v3860jHR238EFmjggQgmqOAYnS3oIBpVPCihFhVMaOGFGGaoYU3WbVj/xnKHieVhNg2OaOKJKKao4oosStVhizDGSMSAMtbIzns25iiGYjoehmOPQDryYpCFiUDkkUhmUWGSTDb14xAlNpmHiFJWaSUZVF5pUIBadunll2DysWSYZJbZSZRmpqnmmm88yeabSI7pUpZnQQDnnXgagWaefPbpJ1Vc/inooIQWauihZQSK6KKMNuroo5BGKumkdbhJ6aWD0onppjruyemnoIYqKhMgjmrqqaimquqqrLbq6qsglVqSp7DWauutuI6kaa689voqraHI6atfwA5r7LHIcrRAssw2G4yRzkYr7bRlFkvttdhmq+223JKmzxvWdstcuOKWa+656Kar/+667Lbr7rtfKArvvPTWa++9+Oar77789uvvv9oKC/DABBds8MEIJ6zwwgw37PDDEEcs8cQUV0zQtxZnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzrUKzPPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FS34nPVWONBbtZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333YDJivfefPft99+ABy744IQXfpC8hieu+OKMN+7445BHLvnklFdu+eWYZx7OkJp37vnnVV0N+uikP2xp6ainrvrqrLfu+uuwxy777LTXbv/77bjnrvvuvPfO7+m+By/88MQXb/zxyCev/PLMN+88txk8L/301Fdv/fXYZ6/99tx37/334Icv/vjko6Z3+einr/767Lfv/vvwxy///PTXb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jB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saPHjyBDihxJsqTJkyhT/6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4P+CDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+3/tdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPHFGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfMUwQ+tzCAAkGzsIACFRR9QgECIGAAA0qbwLQEARAAddQjTA1A1QJgPULTIlTttQhgB7A1AWODPYLYWJe9tgFtH7C12QQYgHbUA1AAQAMBPCDCAgAUoPQADiwgAAQBJFBAA213vQDaCIz9t+EIBGBA15IPkAAFcKcNwAJMS072DeeikyB46QAIgDnWIQAAIfkEBQMAAAAslgDRASoDjACEAAAA////AAAA9fP0ycnJr87u7e7sQkJCqcjovLy9GnDI3t/fwsDCEBARMTExtLS0qKiopKSkmpiZWVhZ5OTlb29vY5XF09PTJpbzAAAAAAAAAAAA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z59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLhw3AKGEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768eXYDzqtfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4P+CDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+3/tdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstptkAyI48IACACRAQgABuFuIAALIwK++iiAg8AIAF4LADOmNQHDBDK+TcMMQUwRBxHDYS28PE1PMRsZASKDxx/fAC3IZDxfB8chhHICyKyqv3MXJRLTs8hciz2zzQg7Ee/MgF+98xQM1UDCBzxvbwMDQRJ+Rcw5Ix2Bv0lMsjAQFUFdxMBIVRCBCBVV37Uu/KTTtdRsEjL1GzyuAjULJKABtNhhqv+3HAvmmwLbcY5RtQs14WwG0xzFkvDQAMvfNhsp1u224FlfDcLDUI/BNwuCLOwFzDAcDXrkWirOAb+SEb76FlduFo6D2wpI/LTrJjWsNgOarS9F4DP1SHjsZcd9eBtq6j1H6CZD3nvIBkgt/xeMiFG88zQInXPfyXfxOwN3QHw968skTXz0WDWiv9wnUbz/F93s7YIH4VfwOPvpUBKC+CeGzz4T2K8QvvxLv34+F8yo4wID+UWgZ+QC4P+yV7Xv0IyAUpDeA/CnQCbN73gOjILAJPiEEACH5BAUEAAAALIQAfwA8A+EBhgAAAP///wAAAKampo+Vl/Dz8zs7O0xMTL6+uvz9/a+vr3R0dLi6uREREcjJyXOgzp+foMDCw1tbW9/f3iCT74ODgwUGB1dXVzQ0NERERAdfvuTl42JiYo+PkPb6+sG7mR0cHc7GqMvQ1evt7ZqamtbY2CoqKomLjOnp6QoQJLCyj35+fhRrxtzUvujeyG1tbGSr3s3Qwpqsjmqz6O7s2Hu96o2hhp+nh6Wtlcauh7Pv/461xXuGh2yv4XiYwVeh30mS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam4MTnJ+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c7bDobOnz59AgwodytEG0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS9Zri7Jo06pdy7at27dw/+PKnUu3rt27ePPq3cu3r9+/gAMLHky4MEcXhhMrXsy4MTDEjiNLnky5suXLmDNr3sy5s+dURj+LHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27ZYzewIPfLCG8OKYPxpMrX858FPLm0KMXgiy9+tcc1rN7VaG9u8sR3sOLH884NPnzLbmjX8++vfv38Ceqxxcivv37+C3Xz8+/4Nn+AAYo4IC+bEDggQgm+IsM1VCn4IP9OAjhhBRWaOGFGILyXIYcduihcv99KOKIJJZo4lg0nKiiLAikuOKLMMa4zXwy1ljOhoRgZ+OOPPbo449ABinkkB56QiSGDB6p5P+STDbp5JNQWnVDlOxISOWVWGYpDQJadunll2CGKeaYZJZJJY5mpqlmk+at6eab04AH55y/FEBnlG3eqWd1v+2ZDY2UJennoIQWauihiCaq6KKMNvrefo5GKumklFYaF6SWZnonppp26umnoK4laKg7jkpqk5yequqqrHZk5aoGtrommpRMKeutuOaq66689urrr8AKZieTfZqSarBQmopshoAu62xftDJJ3CUMPGvttdhmq+223E4YbbdBKgsugBGMa+5axZ6r7roPHsvuu/DGK++89NZr77345quvYO7u6++/AAcs8MCR8kTwwQjD5+IgXCbs8MOMfNtNsxBHF2L/xVhRDI7BGBe3ocYdhyzyyCSX7NDCJqes8sost+zyyzDHLPPMNNds8804r9pwzjz37PPPQBOTbtBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGcN0sXH2Kr112CHLfbYZLPrddlop6322my37fbbcMct99xich223XTnrffefPft99+ABy744IQXbriuEh+u+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcuelX9jm766ainrvrqTA/N+uuwxy67JYnPrhMKtueu++689+7778AHL/zwxBdv/PHIJ6+8S0Yu7/zz+KIM/fTUV2/99dhnr/323Hc/Wu3ehy/+//gy403++einr/767Lfv/vuhgwy/jTvPb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghgsROlax7EMevCDILzSsELIjQGQ8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx768IdADKIQh0jErRXxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++nF04EkACkSggEF0QAEOMJAH7rjIAEygAwZoACIagIEKECcAdAyACC4AAAFgYP8BDJgWAEZQAgaswACdPIAD5OhICQigAZZchCM7AAIBHKB5bAxAIQVAgEgEAAIN4GUbA7AAW8pJEgHggC3XmExhWuKXy0RjM02IiQAgIJplJKYAqJkJawqAA9lkgAAq8AloQoCMHqBkKJoZKzBqE5ebCEABLMBJd25AAAsYRQAIIAARuLOYuNNnA+rpxQAMtBTaPOYWvVkuUjhymwV9gSRNkQATHKCgGLgoRSVa0HGaIgIi4OcqFzoBiJqCAg+wAASAsFAHCKBakGABAGCgAUhQoAcpIMAPWtrPSLAABgl4QE0dcdOc7lSLDI2pBmbggBIIlagzMCpPYeoIFiyVByD/KMBTGVFUArAUqShwZlWXyk8DaHWoidCBDnbQTx1w0aD5fIRVa9BLT55VlvxUaBYDkAEMQEKodBWEXbeKCL6aoKAVEIBeFREAHwRWsGb1ZyIMCs4uPpSbjSiAB05ACLtO9pr1WygAUOkITO5zEK+k5yIPkUwQuBMCPW2EaTvgSQA0YAIeQMEICfFQcroTBBkoLQCICQJtkqAAI93tcJW52IUOwKSyHC5IPeBSE6xWuZoUqzszYIHmHmIEjoyABw7wUnkaIgEAOOwYH0raR+BWAcvE7gViu95rEnSygwDPCDigAPMOIgHFxOx6n3vf8/J2lPLE7X9foN1sPhcDAWVEYwEMRJxhjbfBZrRmJwVcWgYEs5C5LAB5DRBaxjqAuwaAJzMVYAJPdkDF/90ACTDwSg67UZfBfeUFVnBOBUCgAhI4rCdtHEdHkkACru0sCC5AAFHy0ZGCgPEfp0zlKlcCvXQMBAAh+QQFAwAAACyFAJ8AOwO9AYUAAAD///8BAQH9/f1eXl5OTk6lpaVWVlaanJ07OzskJCQzMzSDg4MsLCyNjY3r7Oytra32+PoaGhpwcXENDhJ5e3pGRkZmZmbd3uGUlJTW19izs7PQ0dK/wcIilfLk5ea4ubnJycnx8fIZc84KYsG3p3eYnHaNyPFtqt5olMOx3vfT+P+QrMtJgb12j3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/0CAcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdps0cb/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI1GXo6RkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSDBRiYIIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbJkyYMmU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz/+fQIMKHUq0aFFIRpMqXcpUJMqmUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3uJ7CnUu3rt27ePPq3cu3r9+/gAMLHky4sGG6cg8rXsy4sePHkCNLnky5suXLmDNr3sw5WuLOoEOLHk26tOnTqFMPQ6q6tevXsGPLnk27tu2vrG/r3s27t2/QuX8LH07cnoviyJMrX868ufPn0KNLn069uvXr2LNr3869u/cjx7+LH0++vPnz6NOrX8++vfv38OPLZxx8vv37+PnUzz98P///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGbIy2caduj/4YcghijiVxyOaOKJnJWI4oostujiizDGKOOMNNZo44045qjjjjz26OOPQPqhYpBEFsmWf0YmqSQsSC7p5JNQRinllFRWaeWVWCLSZJZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrHI0ZKuwxirrrLTWauutuOaq66689urrryu+CuywxBZr7LHgCIvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar/+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIb6tswgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjzrtGXPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoPP1wegDfBACBEI4kAEEIXwwQAShDxFBBBowsP8AAAIIAAAFFOAuAAUJOIBB6AEEEEIBuSdQAQgaCCHCBxqAUMECuR/AQefFY4C8BMIrkT0DEghwwAeaF4/A7whA8XoGuRuAefEEiE9FAA/gPoHlxVsgQPpVmC//5PkTAAiwUDwI/A9y8BOgFvxXAQQGwAD740LxGKBAx9HvgFvIX+8al8D6geGC91tc9gTgADFMUADDUxz8NvgE2AFAA+RbAghFKAIBNNAJImBBC4YwghSowHsBuAALD+e/6zEhABjYoRFGgIIkFC8EFSRiAAoggSYgUYlHIEETkfA6ClwgccVTwBePmAISKGEEJ+DiFBvgCOMVYIAAiMD9EuA+5xH/AADBi+MFCnCAPo7RfRYY4xAcYIE+9vF6GihAAwrAgQA8AQMEKIAQJjA7CEgSjwZwJCQTMK4L8s97HDDjErBIhA50oHYoZEQEbMe9OE6AjQigQAfiWAALcAACrYSAAQywgVoCIJYGCAEALimE0/GyhNdbwPgu0IAHOLIJHVhAHTcwAABM4I3FpF8DLtCBDYTriVFMAgbKWAUPeCAFFDAAKcOQxizEEAkcYGQBSvgABQwwiHcEgQKEgERqFm8I0ywmADwYx38y4AAB2IACRODIBmTSCQYgwDOHQAAITPSFFbjot/4pACMqAQRKHAETUSBKIowACeZEQTpTQAYP/JAJ/+9MAghiegRHIrOZcTSABQJw0F4SQJivS10CHFm8B3zgAheY6OuQqIAQ8LQAzyRARiF6gIMygKHDrMAeLUoE6H0zoalcQgd2KFItDoClRvDAEVK60pa+NAvN854FSgiB2wlBoTyVgAUQMAEJ+FMIDiXqAwigAAVoQKnVvGbxJpDUSUpUdkaYKPgYgABlVjMBDcgA+BDwTAQogJjeKmBYP0rWEZDgBKckJw9R6gGVIgCtYnBpE2h6hA6IQIYAKGE0bwuAuuaVfPg06FCJWjoM2I6gr9OAYSeIUMdKdgGcxONUhaABpw60qQl13S8XUM2BxhVcHBXmEnIIgLKe4JURgP9teVnrWrWOwQPtPINNX2jYOB40t/vM6XABENhq2laNSC2oTp8514l6dQjapW6CpWm87oZgoQCwrrhG6E0ZDs+8FIQqOUfgXiOoYAXn++4i5juAQg60lR9QAGcfsABKOnK41eQj7NwHw4HSt5GvSzFncdlIJ0yPoQaQAAYC0ICpHmCn+nQqQTdawxIekQUkMO15q5fe8r61CCeMxHxfSFF+4hKzBbht/f46UAvcjo295TIBJBrUX35WxRpdwgEWCecIQ5e6Nm1AdL96ZyuW8bQNpID40rvFmpZ4z6q0sfMiTAQkMrrRcf5vEYb3TwRD4LBSOF2CB3rPrs5ywkEc4njwSXpe32HQ0DYEo/HCKUMVqOCGvrOAE8HqUSlK4ADqC6Lvdndq2a1RhDwd7RF5yl/eCYG2BeVABGnY61kzM4gCFEEINMBbX1ORgwFg36eHPVOwyhoDD6h2QUGwbMaFsYoydCRDq0vkjqIa0cDWQLMhHVRwR+B8uMbyFIVtbrCG0ImTHiwcfR2/gT/Of4JM9201SfByR85/srYiEjVQ4ziy2OGSEy0FKuw958FO49vGH/kEYEscGg93Yd5cAcO3gAwgu6AYyEADBGDPzxUwAbnbJgPuioCDKiB5qItd9jJwAHQLIecEQEAKYxfZZ1Y8c0EAACH5BAUDAAAALEwAbQB0A+8BhgAAAP///wAAAP3+/Pv7+Rh00fj49dra18W/p+7r5ebp4tLS0fPy7u/p1+Tk4YiIiObbwenl1tvQtO3u6/Pw49XRwhYWHOLezywsLAsLDDs7O9rWxh6W9Xl5eczEod3by+3iyvv26dLKtNDVwuPh15WVlK6urfT27mJjY8G2meLVucawg8bFurW5o9HGrcvOt72/vbmui8+3jL7Gr6iwk+HNpv778Nvg2srLx8C+l0dISLOphFpcXSIiIq/Aqre4t4ujh5+fn/fu19HXzdjClqGpiQVhwrW1lcTVwNHd0m9vbqGgf6i3n6Db+Zqrl76mdpWswbLD0VNTU8PPwzik9+z9/6jn/SOL37WbZRVuydTq94nJ7U2EwEWQ11h/lXKl2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlASVmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwq0N0TdhIEIEypc2I/BOgQMI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZPAEqBcybKly5cwY8qcaZCmzZs4c0aLoLOnz5+2klisQEgl0KNIk75MobSp06eHjEKdSrVqRKKCmNi6ZLWr16/QFJAAS7as2bNo06plyXWt27dw/+OOUiC3rt27ePPqjRmiYooBewMLHuypLeHDiOuCSMy4sePHkCMHPlDIgeTLmM/d6OYws+fPjAqCHk36nIHSqFOrXs26tevMhl/L/jcikg9RDfbGns1bYAsPvYMLH07TwAniyKkBX7QkufPnFHdDhyV1unWWFAxZRnvwunehyvomO26PfKrq3tNPla6+PXID4N0T+iC/vinKAs3b389fc///LmGFywaY1Abgga8RiOCCDGJGgQoNRlhWDu50pkl3EmYYkoHW6JfMYhqGiBdT6wg4yFgipogRXYqgZ018mWyn4oxTtXAMhpVMYYgEnUBE449f2QDkkBECUaA8LNBH5P+SSLHQTpJMRhncBVJWWGVNrkCQC2C0WHjll+VFwiIxCoriJZhoqkZlmmyS5aEh+uFwS3biobLAVm3mmY6RjqAoShGfVKBlIyY6EsJyeiZaX6EXUqjoozbNUEmZhkLiIqSY0nQpKzuYEkCmoKomQp+h2CgIjpU2wp4iq4bqKjKSBlTnq7TWauutsHA4SqySCJlIp5yKMiquxIYkhCvZhVbssm+RCMCxnvAUaK63GlfrCwNJC9BmoXDL7Le/YEHJqGsqQgMj2k5bjQvgunruErxOkgOi4wLgZCnDguKnugMuEu8iTyB4Zru7xEAJfpkcIQmPkzDcTbqEEhwtdI5mK0j/boiAKPE4p20cixPzbdLxIwho3AkRi3FZGSPsYjOmxxoyfG85SGTioyYQ53vIzQAAmwgRpUALs6pDp+PwqRk7LIQEGHfjAqNFg6kVMIMK0lwhFffiwgqPoAoL0NHKCQClUZdNisJWR+LzjoNU/YjQh0gA4SA48myy2Xh/E8QpEENiw9GJ8PQyunkXfg/ar+BgoGiauA2JzrfMfVGrdY25r+GmSB74EIPjtkiynNTw7C9Uzoq5hqY2c3UnawMA39K7DjIz2zH2vUq5kNzt9+nT8cwN6IXALYmpLQtSQwMbbPo4NFA7QzlxFj7PoLPEAMqJDKBg+5PwvAtn/S/nCtI8/93yElK8J44vo/kiZBOKe09ed68RRKtvAgLgIY8NSvqxzC4/L/EjmMHwtQjdfWIz5wuaLPhHuP8NTXRno17G7BUJsEEidaSYAMMMiIrthOB9EfsKwjAyNVZJ73+3UQQIBcE1RaQAgpjwVQwZ4q0UnZARAXRg7gzxAQbGTYcDQVUO8cYnSgTMZCAyEQRY4LsQ4nCGxWjaxZSho/pcDogAm5R2BIEAyEWCQAPLoCuaiAj4fA4AnYuEyrrmiQmcJoFYbFMXCbEC7LWNFxK0RhqRFUci0SB8P2RZHluYx6p5cWc26csI+7ikFvrLEI6s4Cr22IuXLRIcN5TQFdvVOkrQq/9eOaEkI5eEOEkeQgaRvGMiZEg+ov3kTqOc2GxSeQo7xvIiCajAcXxoOAseQ4pDlEsYHbMAwPzgjOBaoSq414wU3lIX7TPb+gJJiQHC6ZnB8F+76ldEVAASEp98hTJ5iU1k6Kqcjegm1g5hTVDEwJZoXI0KeKS8o8BoIcNMDv4acT9HSM6XOckkuIKZqlDN05SJGB86zVmIE7wpe4zE4CbCudDJPed7ysCoJC5pxYra5J7AYGL+KIgz2UwTLRyshygXJQrFyYOjsRBoelKqCh9K1JnuKiVJh6FMj76jc6ycjvZ0gcrAkSxLmZCpSFa6lpohQqGqGJlRh4GEfDpHp4X/oOXB6JNHn1JEilxUEcg00cmEZtWrN6FST0uBgzUaAqvTISdaFcK4XCjpFmMtyzeh2YqAzbUZQyWEU9fFyLV6Y5Mbk2g2cCqZI5R1ToSoHyQbGDc49iaoZ/lXLOqJ18iaKSdkHMY7Q/FYdcA0VIq9RjtJAUPZ7ZM4WfvrWsBmu2suDBGpDdEAT7sMFgBPth0UGW/Ftwh4pgKqitAsVEJbCXFNtBStXQ163Do6xki1pMRlGSHgmggoyc58oKhrUvaKihWooKiTDWshJAvd9IJVRpAhwQcR99vhnACs6mXnbMiLyE9Ekr0uHASAqQNclR7VZv9hCgiegAUZRJeo2e0Z/zGYWuCRfoKghiiB/ihmCo3udBGDZUJt+BsLuVIxjvDdxjF79ZXYOiO3q1hthaNhLb5NUZU3BoWR1AmW+hZDmxXRajBuiFitRYnHiCAxaBiLjUPOuCEAMK6FJSG25DJCxunJK29SPNV2BbYqHoaGlhdIO3hc1xk+xtSwShiKAS9pMV/OxIPDwdlMWZaArpjzdvXE5h0i102MoO5+qggMJPfZNt/i7pOrgd9oMqOGgkEyJsa86HhAmhPKfQQIaxvh4aVC0tNDsCOYWwsZuM3JFqmzJ5RclXOCIs3aBQCf4tyIMA+2K7duUTyzcddwaPO1lX4oLS49CVBfR7xp01fjQP9M5qdmFrSTbI+JcXwOVQ/G2gjiNLiw3F9kdlk9h4Ytk1YcxUqzg9izoOhZMBZua6C6HoJ+xiWEjSnLaLt8jnnjj5Tq7Ezdu7SUwK9ZzvUgeVCYGQI3dyo+tU4nLkLRLGQQkJ/D7f2Istc5HsUf2zXc/Co8HjVO2BRp3Z92y8NDHXe4R60qy0PYQDr01oSrKcFkGgHULPfuN5OwvUOL9ytk7wZAzandCK8N3SL8Toax1wLwXTcy4tNwMaFiPuqEaPhUnaG0sjKR6wZNvBIwhgSg9GwXUk/55tvAOGVJmCeaCosUbt6LnrEHQ7MHI+6PdAqse9FVrxDaGHiXzBP8+l3/p5dZHHA2bGpg0JigQ6LiX0QNsN1z9GyE2SqV59cg+LtPVn9GAhDsOz/izZrLP8XuUwbpJJQ77ciofRCtpZzo7XNw/mz8E2a/wMyDA7SE6/z3vNB6KFg+kc2g+0d/16IKyW7lj+vi+LMvMJdJ4ehHeF4ynXH7OqaPDCHztMg9b0SmrxRaxyPiBkK5/l0sJC3w49MtsARS1wXDczbiYwiodz4vkL2yvNtPsJFgfvo3gLiVC/NXgKohPWfGD3/2CvkXDL5nCE6QS4VgJOPXHmFHNXHRKbs3GM4FDpzWaxeoIeo3CSJYFLGSgeunDCknEITHDCrzbibgKh14YP6kFhFo/zrtIHWioHq7o0KKR4BjNGWYgFOmFxf8FyJ7JyUP6HGVwH2QJ4TLhm8lYlYjWCzw8mFaiFJNGA1JmGSIYXLrJSGtxxrahw0vSE3lUIJSOFP4EH010oZyeGWRoIO+oG79JyFURwj8RnKJsHRz2AkR+FPuR3tgknRocoCoE4i9xYiOyApOUH2sYlGH9x+I+G3WgWEBUXuk4H2dcImy8HWP6BFf2A5nyGurwHCjOB2gSA5BqAjJpwmt6AlduIq2GG3DJwiY9QtXeItRU4iOUIq+SICMFxXF6IT5EIUw83pzaIfx4Ilg6Ao1qAnCN4yscWed4IdoJIbkIGXW2D2HpiXtxv+MC7cJHzgXZfiN6sgQ97WOwyGMZRSLxlCLVccK5OiOhQOHwgBgJ+UI5/gJqngK04iPanKPeYgR0Mg+qNCPBLlvy+CN3SCJQ6KCDcl3iJCGhcB8FbmRkbMJ1UGPAZgIFQNxHNkfwBgjp4CRj1BHAUYyHvCPb+U62PgtElmSBbWQ90F0itAcCUllNnk6zlgMFcBMCOgLbJg3pIdOC9gJMEl9yASRuNCTyPeT1wCVOmkum0CSVKkiJzkNGmkIeHhAS1mUQIRB2tg9DDkOUglKH+ddW7kKCOBcrVWTf9V0bxljGwZ1iiA6EaCMp9BEc6Mxg8g7s3iXh6CSjuCX6DMILBn/lKg1F7fkTJp4EUeIRZNnmJ/QWjyIk4nAjbcSlpiZjEXTgObGiRNxNBRJKzl3DIo5JDQAmqH5Yt2WCmsZm6FwmfooP0tkm7ZQmU9oW2mJRRGYmrz5cLYAm2eJVF8yk8WpNmSigc25MbX5DogZnXiTnNaZnYgAiH/pU004kNpZMOE5nkPYR+n4E11JGla5lesJkuT5ng0Fn89wnkA0mPJ5n6NRmLwRbquJn5+hn/6ZdlcZoLlwmQR6oMA1A/0pC/DoUdOJoEgBoLJoZxC6LAYKPhWaoRq6oWSFTUTJocPAMOvJO6doEmMJoigqF02pD6QJJgk3e4HnIPGZoi2xBL7J/2I0OpuNoJWn0Jo5eiMqdKLEgnYSk54+IaEW+qPUwH3mgKTbAJtKmkizQHx5spkw86EtgW1M6hjuGaUT6qVg2g8RIKSVGCW7GKaVdqFomg8KsqVytqZU8aBuMQBUCqd2GiR3mqfNp6ejJIB8OhMt+KeCuhQ5apqDeqiI+iOBOiOT2RL0OYB1daaM2hu5aSuEdgGSiqgx4CRdulGJ6lPVeUAt+akr4adp0altRKrtgqodqaonYaTjBQCfxB7MaTaL6qqvFpl0ySYjKhOvOKO4+pa/+gn2GaxIIhkrFFr1Z6x4Y17R6AjHgzWVaptuyhgJ4Jg4ITk3Skcb6aQTtEWI0f+oJqpfdco6ncasH+UW6bKiP4qdspV5nGCXomaQBCkzhtkp09ow10Is1RgTRFoKzgqhX7loxAkK7Hqfu2qboXqgVjpjpuqKUlii6FpgDxuaxxgUSggPhaKmE0uAtdpiHasULJKvIftke3iuJVtpmwE6FHA/w0IEvWoT1ZqyWEJjuogVDRABWAoU5YqsHJqptvmxv2ga4Rmz+Cm0NNsfRquWtvmoHmOopHB8uBgdSZtvVXu1NYu1OrQAUKu1Xvu1F2R4YmQKPTsT3gq2PSGKaDs08ddywHoWFbu2/rCEcgtcsAo9m9C2dUsREAGee/u3gFsShRKQw0C3gRslBjKznnr/YaRBpofLU78wbz/4uOh0t5SbsYiwrJfrjmO1tGW0bsW6ueeQsJz5FGcruvyguG9rFVWGuicHHeLqunQWX7IrEZbrCQLYPIb7qrWLS2Tbuw8hF04LvN2TlMR7vMjrHPR6lMk7JEBLCySLtrGrIsarCoWEjF/Rtc2rEDtglUfQi9sbvsHRus43rOLLOwISt+d7i/K6vu77vhB7uO0Iv5xBv1SrCC0kp/6puvbbv43hvZjRvv4LDD4qCRI7wAi8dgm8wAF6smRZXIOxRtHLwOgQnHthvhScEpGXwf/zvBzMJhc7CdN7p6dLLXL0wWXToJBAuigsIvTqaZKBtC38KCFQ/2cqIB5lO8MsSLs6/FMy2sMIAaVArCcYPMSuAjENCxdFbMQThntMLCFMJMS9cauQUsJPfMWjwLFmp7a6gcW1kk+O68ViLIUKOsZmfMZoXKgOnBcLmsb758a1wsKICr5pqsN62z0qPHBwvIN3Qcd7TA5+rKT864vM+8eGvB9hHBUNUrCHDDMca8dF0chEssayKcmWfMkdhclEqMmQ4rfdx8mNcQGFDMpX0qKkDCCeDA0CDBYFfMrX4MGujBapHMu0XMt50sq2nMu6vMu83Msi4K69HMzCPMzEXMzGfMzInMy5GBgyIMXK/MzQPMbyGM3UXM3WDCZyfM3OEbra3LGU3P/N4BzOvJzI4lzO5nzOItQYI4zO7NzO7vzO5GnF8DzP9FzP9nzP+JzP+rzP/NzP/vzPAB3QAj3QBF3QBn3QCJ3QCr3QDN3QDv3QEB3REj3RFF3RFn3RGJ3RGr3RHN3RHv3RIB3SIj3SJF3SJn3SKJ3SKr3SxWIZBDABDoADM/gAD1ACP3AndMrSpmscPB0AAbAAHYABACAAAgAAFpABQy0AFqADJeAAhKvTEerTx0TUGvAAMHAACgDTMW0CSoABRI0CVAzVLuHTP60BAoABQaA8ZH0AHZABAqAEOSzWKEHWD6DUM7gIAwAYeW0AdZ0BISzXxeHTOvDWveLTDmDWDwD/2Dfh0wzg1eRW2AHQ1kqg2Gbr0159x2rk0yVA2JT9EmQ92JgN2XV9dZ29EnQtAI+dVD6NAgIQ2qUNEmvN2Z/4KT0g1K9toj6tARZQGK7j0zggAKR92yFB1j+A2qFA1jyQAeQs3BLh0wCgAbbdCFJrCLEd3MzNEdXdCFBQCF3QBIH2KToQ3deN3T5d16qWBYaQBV9QBSYUACbQ2uPdEc6NARrQCOid3uqN13QqAIkdDqDoUPGt2gmQAf2tCPd9CAVw4GX0KRqgA6TwKdXbCSvmuAG0N5rGCZdw14Jg4YBN1r/914Wg4AjOBYYQBSZ+4gCAAhYw3b4gpIwX4QDA4Ydg/+GJfceTyXgc3hYmoOGKTdzwbeCMUACHcAVETuRU4AUWAAUkDgpX4DrBtQk2HeCpqNkZQEnHlAUJDgAJngVb0AUHLuSGwAFiLuZU0AVJ3gWhwAHercCHkNrMNggyPqFhjQiJ/QDBNL8sfdo5xHhYvuUFYARbUAVccN8F0OSFwAGCQOZmDgVoDgpqDg1PnQgwHcmrxHDW3eHlXeWKMOh+/udbAANaMOhabuiEgOhjXuZnnuZrrgkwcOPxRLgUBhjcN+c8dH7n59okTdZBIADV2ulG0AQ6IAWCruWKQOZckOSkDgrsLQuEuzcqo+Gt/uQzKicngOsn7ePWruV+/uvJrf8Egt7ohGAF4j7uVeAFGaAF8qbISCMJBxF/l2AZezOD2Q6sMHVM5KvSsc3jiNDnW94EyS0AKIDuJpTiPbBY0m0I8o4IcW5/Ut7bRj3Z9p3g3E7UAK/fD49mrYTwlI6jgkDrQrdHka7Tzh3ejfAFfc7tSV3xtpXXBwDcDZ8Ruv7jnysIX9AFKJ/yPLDgAWDeLw/zATABsh1oWlAFUjDUQ33UHeBytO3gPY8RyK3pqmIAASAFAmDW9c0AQEUA7m3cTT85hh30Ax/sAWDWODABC4DVfAgYGCDeXV8RZK0EMj/wP6AAAbDrKPDTbjQIpw3ibd/cPm0B9e1yeo9Gx7EAZX+61CkW2znf904v1WCvi3r/82iEfgQg2Q2V1z2w24zv8zvP36vk8HSh1TwgNnqd23HPgly8+bjw9p7fNafRjntNAGSv+hvB+ihQ6aXvEGfvECzfA1xP+xoR8z0wcXrd21jPAHu92SsO/LXf2z/t1VIw73ttAl59+8z/ETFf9Wmt9D/9AL6PAXx//cGv2UmNAShQ0zseBB0gBUctADrg5uKP/b79AOw/CESdAT2AAtsf/2xh2AeA9vx/DYEAACH5BAUEAAAALIAAmgBAA8IBhQAAAP///wEBARd00f39/R6W9SYmJi8vL4eHhxgaHj8/P+Tk5QoKC/b29r2lcKiqqZ6fn8GufVtbW5eXl6qgcKGlfrKuhNDR0XJycmdnaEpKSnx8fI6PkNzc2+vs7K3l/War4pKeeby8vM22g7OztBESFySL336YerLD0fD8/gVjw8fHx7WbYqaOVo2/5jSE0xt20g1ry4Or03qHlXR9igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2W7Rwv+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wfiextLW2t7i5uru8vb6/wH+zRRTBxsfIycrLzM3Oz9CSFdHU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wDTeQlIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjxWLgRxJsqTJkyhTqlzJ8o7IljBjyiTlYKbNm0Re4tzJs5XO/55AgwodSrSo0aNIkypdyrSp06dpIkCdSrWq1avxWGDdilBqKK8Oap7zyrUsLZ0/iVURa7at27dw43JLK7eu3bt44dHNy7fvmmFEBg4h67cwz2lOEBtezJgVixGNI68TLLmy5cuY3wJeE6IQ4cyg6XUOTbq06dMlFaNeTXBzp72sY79TbYb2Eduyc/ODrbs3aMhLtPoeDpMt8ePIkyvXRVb48uctKUOfTr269evYK47Ozr279+/gw4uPA3y8+fPo06tfz749VemA4Csx7r7+vwj07QPcPpxCfv0AOhbggLNx8RmBCH7jgHwJNujgg0I5h8Z/EFZISDEtMMGfhfUcmP+cBRtyiFCIROFWCYUipmgiGxmmGItrAzLoonYzzlfjjWKsiOOOPPbo449ABokRjEIWaeSRSCap5JJMNukkHDomEeWTVB5CZJVROFAellx2mcuVXoYp5phklokNmGamqeaaqZDI5ptQwinnnHTW2RaaJ7lp55589unnn4AGyoueMqG4JKH3IHqVoYI26ihEeD4q6aSUVmrppZhmqql7Mm7q6admRgoqGVOOmqN5opqKCKOqYsZbKRKqqWirtNrJKpev1qqrYR6yUuqufMZaSK5WzApsXsSK8mtjqVJ66yCdHvtci0j0Kq2ZYImY7LXcBmuFsN36aG245JZr7rnTPYv/rpc1SQjuuk7eqm5128LbxLz2HllvcPn26y961N5h7L/HlfcuwU2OizCS9AW8sHci9foucA4/ge/D4W2pxYFSVYxxjGJc/LG4IzNcMncSdqqwWpasfPLLMEu0b8zreSyEyDQTiDN40eZ8o8s+T7EzdAMHbfTRU8288MFIN91b0XMy7fSTy05t9dUbDY21mj1vnWCUUlXt9V0WaDz22WiXBnTabLdNEVpIKO02eBnKnZnUc+et90Nm7+23bzb/vZ7dgndHYd+Fg4d44ugJ1jXjtkLe1tqSV275WFpfrpxzmZsituYEEQ766CN1TvrpLpqO+uqst+7667DHLvvstCcj/3rtuAdDee689+7778AHL/zCjw9v/PF93I58ZOB+vvzz0C/ifPRYfaY89W/5h312u2/v/ffghy/++Bx2T/756KdPNBqLq3+T+e7HL//8lgUOBvz0c4V3/nLtz39c9vtfXPAnwAIa8IAITKACF4g01QGqeAykiv8iSMEKWvCCJ8KgBjfIwQ568IMgDKEIR0jCEprwhChMoQpXyMIWuvCFMIyhDGdIwxra8IY4zKEOd8jDHvrwh0DMxPWCSMQiGvGITIEgEpfIxCY68YlQjOIU2ifFKorJgVbM4pgCqMUuevGLYAyjGMdIxjKa8XhUPKMa18jGNvpiem6Moxy/B8c52v/xjnjMox73yMc++vGPgAykIAdJyELKBGqGTCQJlajIRjoSXnV8pCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618nOdrrznfCMpzzDtAAhLOCeC7gACSaAgH4+YAUAIAAB5hmHBhi0AQuYgAJKIICGluChDj3ABi5A0DYE4KIB6EAGGipRElwAnx7ogAgQoICGKkAEFUUDRi+6UQZMFAn/Kw0ABAwgAAVQNKVjWKkIGCAABDhBoAIlQQJ6itMwYBQACKhpPZ+wUgBgoKZF3UJTn7oBKhyVBAI4QAOiioWjPnUCVjjqBbLK1bBeFAATIOoVxArVskqBrRnQwlXV6tafnhUABjAAF+761JvWlQl35YAAACrVuyZAAX8F7F0ZIAEw3PUBg02sEgIrgA441rCIlewRjopXDYiBspbVbBHY+oDPntUDdBWtEEBr2oECQAEHUO0QOKuB2OY0AEJIqgcagYEkZNYIcSVCcJtwAM8qkrMlGC4YUMBcFAAAsokowRB6KwTpCsG4ALAuF5TrBNsKd41HRS0CdhsGE5jXvCBg/wAHDIFdIeh1CI0FQ3zf60ixqtcJAxiAEEAgAxUwoQAABjAIEjADEEDit1LgLhOqioUMxJeMpG1CfvMLABAEQAb6VUKABUxgA7OXCZ7FgHaRIAH6Aje+1BVCiq3g3SKYOIsRZsKEB6ACEFzgAi54gYY3PGAaeDgRLR6Cdld8hQdzt6oITsKLzxheAUDAtUqYcY0hUAIP5DgJGy5Aj3+MiCVz4cGU5GxqkyBlEED2AEtFwgfW/AEAuEAAJKCEl1+rhREveAkPtrMWOWsAMJN5wlPmKHlhitvnVrYSBkjyEYwbZAD4GQuxNXGjx3jXEksYBvkNNE8NkGYj8DUBsp1tof8hcOglxODU+f0AZBua1UETgc/tVW2TfWrqF7zABR8gAASyy2pOe/qsYy1tqAN619oCltgGJXWvlTpa1z51q8MmthCwGmfFXvTMQ6Vop5ENANQqWNZ3PcCkfx3QtCKVqCvoQJr5Wupoc3unYF3CWQOQbiEIIAEI9QC02UrkaFe63Z5eLW4zilIJOPnV4dazvw07Z2SfVt0eWAFZRa3iyLq72bgdq6JFfdqL1jMDuxb4QJO63ov/Grc73fhqj0BeywL13Aw2+ckBsFNfT/auHaDoyw0ec5mfnN5DjTehh6BvoK4g6D6/OUYNfoBqK50AF2C6X5OeBJ0eIKsICC3CPQ4wgZKWQOhUtza9NeBQCWwAAg9IOwdKzFGwh92uXM8ATXnq0MNyYOpvtypG76nusAcBACH5BAUDAAAALGoAggBWA9oBhQAAAP///wECAv7+/k9PUBp10Pv7+ycnJ/X29jAxMu7v7kNCQ5ydnDk5OV1dXcDCxBgYGOPk5B4fIJGSk7u7vA4ODrGxsYiIiLa3t6SkpKurrHNzc8jIyHx7fCGX9ODg3tPT0mhoaRdsxtrb3NnY1SSJ3s3NzRaR8yCZ+Lbb8Ovp49HMscbp/6jn/Xqlz4az3aKrjipHbI7J8V26+0WQ2OL9/6e6p8a/ocu5irazkVaCskmq+AAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2izVxv+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PTyCQk5SVlpeYmZqbnEkqnaChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLwCTMz9DR0pUf09bX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxYxQbBcZ8OKlzIsKHDh/AQQJxIsaLFixgzatzIsSM4iR5DihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNQyBv6txpCwbP/59A7eEISrSo0aNIk8LxqbSp06dQo0qdSrWq1atYs2rdyrWr169gw4rdKGmsWaxMA904y7btpLVu48pNKLcuS7p28+rdy7ev37+AAwseTLiw4cOIEwMsq7ix4zLVwkR+TLmyZb05VnDS/MwLVwWXbTkLTbq06VU5T6tezVoW3NawY8u2bFBR7WSvtYyezbt3ygi+1TCQUw2vnxzBkytfzry5c3C33Rl/Tr269evYs5Ocrr279+/ekYMfv5Mz+SEjckU/T2Y9+/fw48ufn20y/Uagd3F3k15K/vuF5WbOfgBSZ54TBzaRYIEMirVbgxDGRGCEFL7DWIUYZmjHhBoW8v9fh3t45h6IJJZoIkUPnKjiiiy26OKLm3wI44xzpEbjjdKMOF9aUzyI449ABimkcj42oWNy4g2p5JKtydhVkkxGKeWUVOIIXEVQVqnlllx26eWXIYIJxoJilglikWaKgmYUQ2kloHccpilnHJFlOeedeGoXZ55Dvsnnn4D2YSMZewaqkZ+GFsJjoha1yeijkEaqCGdHSkqnpZiyUih8lQZnZ6abdApqaf2NqgaidqC6zaZ6LWrqq7DGmimZsq5Yaq245qorpPbt6mtljnqU4q+IcUCsGmseqywYg1Ih6rLQOvGsY65GGymt1mbLzQTadstEtd7eomq45Ja7B7bmpqv/7roUBctuKuBWGS8/vVY3b671rohuoFe+6++/J14IcBv7DmzwO80erPDCSt76xacPaWBdwVwm6+29DLMIMREYZ+yxTgIv0fHHJJds8skot5Rwyiy37LJz474s88oy15xpyDbnrPPOPPfs889ABy300DhOS/TRSPcVc9JMN+3000FbAPXUVFc9krtFYG311lx37bWhxn4ttk35rjo2fBSf/ZfWRSytdnJs7+H223TXbbe/c9/N5MaUeeYlq3oHLjhh+8Y9+F8jH6744ow37nheaT8u+eSUV2755aQYjvnmnHf+q+aehy56KBaPbvrpqKcea96qt+7667DHbgxnoMtu//vtuMNBc+5cJA4137wHL/zwhBJv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323INSevfghy++rqyPb/7kBmDnsOJOnu/++8mXD//89APje/18tI//2ZHvT9T3/uMI8AL4leEQ8IAIrI78fNavBDrwVxTIAwA71L8HWvCCGMygBhOYvmz5bYMgDKEIR0jCEprwhCj0Es5SyMIWuvCFpfggDGf4r7LR8IY4zKEOd8jDHvrwhz3rIGAAB8QiGvGISEyiEt2xwCVqi4hOjKIUHzjAKVpxebu7IhZqp0Uahq2LyqsgGKFSxTGa8YxoTKMa18jGNlbBhm6M43XEKMc62v/xjnjM49voqMc++vGPgAykIGmkv0Ea8pCITKQi6bXIRoaiiY6MpCQnSclKWvKSmMzkOYalyU568ieQ/OQGGyjKUprylKhMpSpXyUrp8bGVsIzlo6Aoy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGjMjXDymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618nOdrrznfCMpzznSc962vOe+MynPvfJz376858ADahAB0rQghr0oAhNqEIXytB+NTACERiAAkhAgQxc4KIZeMAIEGCAQjIUChwVAkdTM9IAIMACDpCAAIRQAQAI4KX/ApCAAyIYgI+GwaQ4vQAEYuqAjH5AAUD9AAcYQICdSoBbNuUCTgPAgAoIgACcNMJSKUCAmEosqVdYqgoa8NT1AWAAIv3qAMY6ABAs4KkexaoSpiqACkQQpCYFgAbaukK1JgGnchVAA9KKBK0eQABRteta40qBp1oBrwDgqgwFK9W4kkCvWEBsAgRAS4RKVgJawKsCKtAAxva1pgDYgADqKgW8PkAAF/BsEfAKAgF04AtxDS1lVTuE2BaVWXFVgABCQFux1vSxSCUCa0lAxNiKtrICNe5sa2tSDegAACKILg1SANff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Fmvsscgmq+yyzDbr7LPQRivttNRWa21kcV6r7bbcduvtt+CGK+645JZr7rnopqv/7rrsqtpAu/DGK++89NZr77345qvvvvz2S1EF/gYs8MAEF2zwwQgnrPDCDDfs8MMQR1wJgBJXbPHFGGes8cYcd+zxxyCHLPIT2Y5s8skoE1Zyyiy37PLLMMcs88w012zzzThv/G7OPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwkwha3HTXbffdeF+y8tx59+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2451ytfrvnmnHe+X+aehy766KSXbvrpqKeu+upz5cr667DHLvvstNdu//vtuOfu98669+7778AHL/zwxBdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb/756Kev/vrst+/++/DHL//89Ndv//3456///vz37///AAygAAdIwAIa8IAITKACF8hAAgFsAAiAQAGEcIEMWEACuRIUAr/wgA9YgAEHEIAAAEABCgBAhAIwwAIksMAAVEADJzQABjwAgSFEUAIZYEAMPXDAAARgASLUQA2VAEELOCCFLBxgACAwAQEsgG9I8KECDOBEAQbgAinkHRR8mIAUQvF+AehiB66wRAEcAGD8C2MVseDCEn5RfgHwwBqz4MIU6v+vjjrkQhlhCMYARMCE6MiAABQARgsMMgw+dMAE7OfDA0RgDGW0QP3ieMgk+NCHAAABBBqARiYk0gD0+6QlL3lFE5hgAxswQQhQ0ARKJjF+dczAEUi5xFMKgQAbIAAuQ+DJAFAAA/OjpBa9QMoKmKAIukwmL4k4AA4cAI7NXKQRBkBNaibgCMnUJSuJaEjXueEDAOAhADrgzQUwgAHX9EIOQRCAcDrAARxgpxAUEAF4IqCdNjQnABJAmwpwwAEAkAA+nYABDgghnuHMIwMu0E5/8nFricwjEWgJgQ1gM5vHTAIJNioAGsJBAge4QAPOKQQMOEABBVBhJv95AAjEMaT/EOiAA+7ZgAMkYKQcGOg4I4BSA/ATAOcEwQImUAGdfsanNtxnBMQpUADAc4ha42RNNQAaqXIyAxa9aDKVMIIRiIACCVhmEUawzTJcYAFCaIABAGaA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G5n1x4/8v1gGfJLwZEEtC+7awJbx1K+/HlvldtYpUf/95k9VqXv+bnn4TqrMEq/+CleK2kru8K9+1j6nMVjlwl//z1uJIc3/UAkajs3//E9kqi9//H/E9N/R/M+88s7//M///M///M///M//IlzT/M///F8Oiv/1/M//Eyr/C7fJ/wer+vzP//zP/4/N//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//zP//yvId6FNi1wZkOABHb5qv/P//yflYBgADBoUBgQYIKkxQVAMJj1mCVC9HQ4eImZqbnJ2en5CRoqOkpaanqKmqq6ytrq+gobKztL/1tre4ubq7vLq2t5iCBEQCAiVNUCsJDggaAz9DP8k9JLXW19jZ2tvc3d7f0NHi4+XhqAaQkQYCFMQLl5OBC/ANT4g0yOn6+/z9/v/w8woMCBp34F0JGFwBALoMylC1CFiUKCFCtavIgxo8aNHDuKcnhoCIEfJkahO0RkpMeVLFu6fAkzpkyLBlMSKWjuUApiCWb6/Ak0qNChRGOCNEcASSqDLYgVfQo1qtSpVKuyMohkoiqmKq16/Qo2rNixBLkKaWVw5xCybNu6fQs3rqmjhAKIEPGqJoF71wTI/Qs4sODB3LDuzXuUyY++hBs7fgw5ssmjWcLESktgWrWekjt7/v8Muq3hDZocnrO0oUVJTiftLt6cLrTs2bRrG02spaHONADW+E5jRsK7nAGAHPa0QFPyVT0F2X4OPbp0flyteIJnocyaQSsArFhBJs2O0iAXtOskAMHyS+mVqeI8Pb78+fR3GRS5nvwh7d67f/+/Qgz6xfNDFKcsM0AqzdXHYIMOPlhOAGIYiJ5O22Xi33e8ZXJfFvBhop4nIaLSXDAAaGGFQykUKMR6imhBRHIhaQEjIUBYFoYYVZxjhRhaCIFMPEpFsZZJ1g2iozpnnRjGAjp5AGGUUk6pT2tcLDncIRduAqAZmCyxxCUoWJGZJqr5RQtnUQCJBBM6ANACF0Mg8EP/GOa0aYUO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////////h/////////////////////////////////b6////////////////////////////////////ExH//////////////0/gAv////////8v1xH///////8Pef/fGjT9//////////////////////////Yv9s30//////////////+/FBH//8gQBAAh+QQFBAAAACxuAJYAUgPFAYUAAAAAAAD////+/v64uLgKCg1OTk+srKwTFBjk6OkkcWdra2suLi709PTa2trKzMuQkJDAwMBWVlZFRUWgoKEweXBxcnE5ODlcXFwbj+2Xl5c+hXuww9P6/P0YdNGJiolgksJ7fHtMe3UkZFsgICCCg4GFs9QUZ7qUx+3u+P5PioGysrKHnKtaotrg4eGo6P1iYmILXrRkhaAdeNRmm80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/0CAcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdjvdcL/gsHhMLpvP6LR6zW673/C4fF4U0e/4vH7P7/v/gIGCg4MjhIeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsOVFcTHyMnKy8zNzs/Q0dLT1NXW18rG2Nvc3d7DCt/i4+Tl5ufo6err7O3u7/B+dvH09fb3+Pn6+/xE4f0AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4KWnLybOnz/+fQIOOnCe0qLt/jXYaXcq0ElGFXppKDWUIgFIwI5BO3co1oAKtXcOKHWUM7NizJp+iXcu2rdu35K7CnUu3rt27ePPqrRfV396/gMOYDUy4cJXBhhMnriBXsePHRvr6LYIYsuXLTypj3sy5s+egjdVsCP25NE/NkZOQFoLatGuIV1tX1lr1te2prW/rHps7yurdwBl+DU6ca+/eStQSkVy8uUjkzqO3RBrbCfPU0rNjHK69+9zB172LvwhdSu3x6FWCLR8sfPr3ac5/+Q1/mfL6Ytjj30+QPv//Ka3mHhbyAWjgOHL5d+A59y1ohYIORrhOgVCwp5+EGG7TIBcXhrH/YYamqACiaiOWONCHJqZ40ICUKQGhijDGQmF8RiDFYow4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xiLrtXDJnmmA8icS5nnuNievLHMsMc88TM02Q8RdINVyEjAkFdODs1sRA9VxE/lmm8THN128V7MkD5zzjj37NPHUxWEdW7tad+3112CHLbYYVY9NS9TutGx2FEEjVnR+SePSNiVMJ3X0E2hrl+vMc7+X99qAX6Fy4ELUndndhKNazc6JN+44flxvtvfjlJvxti2RE9RF5fzEPYfhnEvleeik7/VysaDrwXjprLfu+td0mvf67LSrk/967fOOszruvOs7dO/ABy/88N38TbxHxk/S902pvcvw8seztHv01NeUuZvXV5/m7dpL3X1n3GuWPenhf6/ctlH8bP767M989dSjty///KjRL9Pl9uev//789+///6GAHgAbMbl8CHCAgzkdAv2ivgU68IF9OCAEJ0jBIbzPNHlRYAU3KBX0aWZ6HAyhCEdIwrlIsIQoTKEKV8jC5JSvhTCMYesu6Jr4yfCG+HAaDqeSvDbgb4dADKIQh0hErdmwiEhMYlM2p0RqeLCJUIyiGHQoxZmMr4pYzKIWt8jFLnrxi2AMY2auKMYymtEoZKzeEc/Ixja68Y1wjKMc50jHOjb/yI54zKMe98jHPvrxj3/6ISAHSchCGvKQiEykIhfJyEY68pGQ7NILI0nJSlrykpjMpCY3yclOevKToAylKEdJjDWS8pSoTKUqV8nKVrrylbCMpSxnSQwm0vKWLsSlLnfJy176IXZEAKYv3QHCYYZjksYszbnSmExxIC5CMDFlM7/3zGla85rYzKY2t4lDaXLzm41QGzjHuQZvkvNL5jwneBoYRkGq853/QyY85/k/GDCTnvjsJTvziQ4q8vOfAPXTEwNK0IJeqYcGTehcqqnQhjqUSekc4D4fStGKWpR+Eb1oMdyp0VswtKMgDamABidSXGiwpChNqUpXuoiBsvSl/zCNqUzDlIGlzfSmOM2pTnfK05769KdADapQh0rUohr1qEhNqlKXytSmOvWpX3EpVKdK1apa9apYzapWt8rVrnr1q2ANq1jHStaymvWsaE2rWtfK1ra69a1wjatc50rXutr1rnjNq173yte++vWvgA2sYAdL2MJCJwIBSCwR2tMew4LhAB2wgAYeMAERhACxmP2oY5FgGAs4IAECCK0RKPCAAxigAahN7WafEIADYCC0BQCABRZwABDYNgQi4AAFQvsBBCSWsbJb7RI4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ChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsuWnaWFgupxJs6bNmzhz6tzJs6fP/59AgwodSrSo0aNIkypdyrSp06dQo0rtZ0uKzKlYs2rdyrWr169gw4odS7asqqpsrppdy7at27dw4zZEK7fuWLp288LFa4Wv3r8k/QIOKXiw4cOIEytmqXax48eQI0ueTLmy5cuYM2vezLmz589lCoMejVA06dOoU6vGY3q169ewYyNpLLu27du4c+vezbu379/AgwuH0nq48ePIkytfzry58+fQo0ufTr269evYs7+irb279+/3uIMfT162+PLoXxVPz17S+fbw48ufT7++pvX28+vfz7+///9CoIWfVgMCaOCBCCbo0nsKNuggPwU+KOGEHkVoEoMUZqjhhnFgyP/hhyCGKOKIJJa4lYUmpqjiiiy26OKLMMYo44w01ggIijbmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYaoNjllx26eWXYAYY5phklmnmmWimqSZoHq7p5ptwxinnnHTWaeedeOYpZZt69unnn4AGKuighBYqxpaGJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpXvKJ6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQeqdqtNRWa+212Gar7bbcduvtt+Bahmi45JZr7rnopkv/4Qbqtuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPHFGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdlY6L99589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst+7667DHLvvstNdu//vtuOeu++689+7778AHL/zwxBdv/PHIJ6881gU073zzyy8BfQQfLMBABwwsoIEBBhDA/fcGABB+9ER4QAEGAqQ/wvrpC4DBBB88/zz5DXSggPsUaM99A/xvcIEF90vABYQQgAIaUHkX4IAAKAAA5wUgCRKAgPs8MAQDPtB4BkDAArt3QCaI4AALJEIHh/eBCTaQAASIwgLcF4EKFnB4HhDAAQj4QikYAH3souEFfyeBEJ5wh1OogABE4EIg7k4EMtQhFhIwggYU0XcYSIALs2AADszwibt7wBCVmIUeDnCKutuAADoARi1QQABO5CLuIKAALGqhig4QoRFph8Qvnv+wCtwjIvSEoMU0/hB3WnQjFDSQAhAYEgAwYIEBIyAAO46wdgqYgCCdcAEQkGAARSjBCwqIAATI8XZilEAZn1DIAWDSCDDYZAfQOMnYMYAD47sjFCRgyVMeQZGhbGUaAvDFB6SxAQ+44hAeYAEGWiCWAICALwnYgQpUgAFFCGYxAUABJ37gABWYgB+boAELCAECDHggAyBATQBoQAgeiKPLzvdJKKTAlEtgwQo40IEWCkED+HQDAzDgAQ0ggIHJhIAGFsBP8UlxAQgtX0AbeAEFfEACGLAjACSAUPNhQHwYqOcBLDDHJIyTguZ84AEeMIQWQnQBLmtAJ/0YgZY+gZb/prQlEkyQgAmwQAglyGkJ2kAABohyohcFZgMKOAFJRsCTNEwmGQEgAgx0DwHQBEAHhClLC3SgAFN9YAQwQEQnOOCqRUCAPYeA0I6eTATZ7OpEf7oEe1YypjI1ggn+eVMAnOCuJ6BCDiEYgiYYgALqfKE/RbmBA4zzAREQ5wE2EAFJCqECGyjgBipwBA8kwIkTcMAFEQDSJjwgsxZYQApVygAKwC+FQkCmypo6gbE+9ANMCIATLwBXeM50o3XNgG4z8Ia/RnF8AZAAAiKJTg5MoLQVGN8BFCBFdjU1sQE46liHYFiRhvOb101tEbbpTWgmQLNbhcACHoCBczYwqixj/61aJcBWJbQQq7WE620hkFu8iiF+0hOfAxAwVNm2dKTik4ABoUpNCLS0mfxLgAgkm9wiUDCNVt2saFNLzsdOdIfbu+dlQ8pHCphVZdncIf+2iQRGwja+8pUrXYWwW96yoQAiNGcD4ldAy4rvvdQk6UVfmAAPBKACbKWsEdDrAA8b1LzaJcI2I5taBRNQCAMMwPb66jJstrOt6dPAClAc0yKgQAWRVIEQUEBmFPAUwABoKPfa+EJyekABRCQiBUM8UYcGYAKeJEA2HSzFF0KUXWSEsRMgYOQ4ek8BPlapZvHMvXW2cZRJYGSWt1xb2wLABLJtJKTXcFRP9hidCeikgf/5mAByqrOwZNWqlYe542daEAAOkOKFn9BpADg5zaHOJowbQOiXrXCsjyxx+wSgZS7H9AQqIEAM94rCOFB5mzNeMBGme8cpV3CiSAjBCNmlWifAVtCplYC0S/oyRjqyhu4dNrEpXVsWJPvOHNBl7CpAVXQjoQGSHvYHVpACGPibBShoNgCIq8bavRLY9j5Cvt23vgWrQMyovSexNz27BgiApBQfAr4FMAIhXiC6f0ThZi9acNs5gJUlLwISNYDEA6RQj9o+oAY0/UfdWdyb8sb3tzV4zvA5jwgJkHXNdbdClGZ8fPFb4QRkG/MdnjyHwc7dGdUa9QbeuHsj2GJSJzqTxgdWPXdMjKXIFe7E8DFAnVZv4Mwr/PXcNUABI0C4wBWeWp9ru4RIbbvN0cdWkVPZCAVoaQTSyMskvrp4EnSsDiOuZHAbIPEW/PDvXknPIsb8CMDk+A8lH7y/cvwB5o38q8948f4mPHkimEDWR6DM7HnAesEEAMcdwEHOJ08CD6gA+9THegdo4PTkSwK+W0pi0QUBACH5BAUEAAAALH4AjwBCA84BhQAAAP///xh00gAAAPv9/R6W9drb2yMiIuTk5AkJC+3t7fb29qenp2NjY7+/v7i5uYODhDY2Ni4uLq2xsXt7excZHsbHyM3Pz5iYmElJSVdXV6rFy6CgoPHx8WxsbJCRktTV1RERESiM4D4+PiFqt2av6XJychZwzYuLi7nb8ann/Xmrq+D4+rXUzkV4sJG75Y6mq9nr58jz/zGAz3d8hWCOv16clE+LhI+13gAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2O3xwv+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDh+FaQJxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fP/59AgwodSrSo0aNIkypdyrSpIgW/JjidWk0igBhaFlDdym0D169gw4odS7asWYxQz6pdy7at27dw48qdS7eu3bt4QdrIy7ev3784YQAeTLiw4cOIEx90oLix48eQI0ueTLnyOayWM2vezPmO1c6gQ4seTbq06dOoU6tezfr03tawY8sWvWK27WE3buse9nq3b2i5fwu3WHu48ePIC/ZOzry58+fQo0ufLsyrkeCgBFPfzr279+8wETi5AL68+fPoiqNHqD3m8i2f18ufRGC+/efW7+vfb2C/f7nv/SfggEJJReCBCPIkXoIMNujggxBGOFt7ElZo4YWZkIfhhhx26P/hh1pgB+KIz1BIYluYnajiigBpxeKLgKgnUoAw1mjjjTjmqOOOPPbo449ABinkkEfIqIaGRCap5JLdxMfkk1BGueQHUo7Y3zUp5phllc+4yOWXYLbmZIxhtmYiThCUacyWarbp5ptwxilnKjQidoORJCI555581rhgn4AGCpmIgha6BqGGJqroooxyiWejkEYq6aSUIsXmYYxVqmkjl0qXVqSPbiqqGX+OauqpqKYKUalHnKnqq7DGKisurs5q66131YcrVZ3u6uuvwAYr7LDEvvJpsQeygOyyzPpmQbPQJjJmtNRWa+21kvaK7bbcditoqKdd6e0dHYxr7rm9iIv/7rrstuvuu/DGK++89PZSZ7345qsvavfu6++/AAcs8MDDIkrwwQgnrPDCrxjMMFwOPywxKscSWOvEGGessWPTbuzxxyAfB27IJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fWOunKb39dkl2322WinrfbabLft9ttwx+2WunLXbffdePejZ9589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcuuXQGTm755ZhnrvnmS+/N+eegi6Vt6KSXbvrpqKeu+uqst+76qyO/Lvsfo89u//vtuOeu+9+x7+7778AHL/zwxBdv/PHIG6Vs8sw37/zz0DsUcfTUV2/99djLW3v23Hfv/ffghy/++OSXb/756Kev/vrst+/++/DHL//89Ndv//3456///vz37///AAygAAdI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cMct99znTq11F2/TrffewGzAt9t/d3p3fIEft0jDJhS+mAf9LKh4oXk/XtzNkldu+eWYZ6755px37vnnhwyeduSg10V66ainrvrqrLfu+uuwxy7746fPbv/77bjnrnuWte/u++/ABy/88MQXb/xAvR+v/PLMN+/889BHL/301Fdv/fXYZ6/99tx37/334GfFa/jkl2/++einr/767F8vevvwxy///PTXb//9+Oev//789+///wAMoAD1kLwBGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx768IdADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLhqigF4MoxjHSMYymvGMaEyjGtfIxja68Y1wjBAY40jHOtr/cYzvu2My8qjHPvpxdXz8oyAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0lJGgZyXZUkxxwzOQxOevKToAylKEdJylKa8pSoRFEqV+mRTbLyG4x7pSxnScta2vKWuMylLnfJy176knC/DKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6EynOtfJzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQAdK0IIa9KDRu8ARJoBQNjBAAxTAgAkSx4ETTOAADT2DBDygAAEIAQQgAAAIBCAAEBBABRcIQEbD8AEHeHQB/yrowEWHMAENmIAAL5WASleahQ4UQAAOCIEFmDCBEYwUAhnYKU+pYAIBKEADSnUCAjxagagu9QkREAAGrPqECyRAq1y9ahIu0FGoXgEDAhBBWMVqhI4yYK1RoEBa4cpWAGT1rVtQgQAQQNerotWsXNiAADrQVztkwJoSAGsYCgCAwtZBodUkgAIcO4XEjoCycoDsNCsggKpKIQMMkAAALABXEQgAo3wYgBA0K00CNDYKDHhBCVAghBK8IAZhZcBeMbsE3j5BtaOlpm45wNsWzJYERSCBDB7wACMkYLJZAO5CrQBc1kITrdZdQgtQgFwk3ICrHxisdK2Q3cZagKFUqP8uNR0QgeY6gQElIEF3j8AC3BpBsVVQKXqPEADQpne1AfhAAgggAvROQAQR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T768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIIgcfggxBGKOGEFFZo4YUBOojhhhx26P/hhyCGKOKIJJZo4okopqjiih1qyOKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5YobXKnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEa6xAmSVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqv/7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXHKyLFmes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJ1Usr001BHLfXUVFdt9dVYZ6311lx37fXXYIct9tjHYkz22WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KT7W8HpAFRQehYetO6BEK+vDgUGADSQ/0AECTRAAQYB9B6A7ExQgAABAgBAwAMFPEC8AAQAQIHvvwNPRAUREH9BBAwUwYEEDERwAfMRVOC79LULIEAGvDOBQQbmNzD+6hJ8n4H4UFAvwAUSvC86A8xD0PsUEHiAABigv89RQAAOMED0quAAATzvf5/jnwIgeAUFDLCAmsMAAimIBQQIgHcL3FzyOJiFEZLwchH44AmvoMEIYLByGrTACrGQABWG0HLDe6EWCDDBGUJOAgJw3w250AAbYq6GHPAhFjgggAQo0ACXK0APy6CAAujwDxM4ggO2gIAsGsGLXMhAwID4QDJsoIgbSGOWEIEAIThAAUJ4ABGkuIUCxP/RDBHIFwc6IAAISOCPZBABASzwgUJCYosAgCMSxPgEO5psfQ/AQPbKIMgMiOAAB+gEItOASEa6kWAS6KIE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turqq7AKpmqsXhlJ660o4qrrrrz26uuvwAYr7LDEFmtsTqweq+yy+0TGLLG2PltdstJWa+212Gar7bbcdgtYtN6uB24ua4Zr7rnopqv/Lm6druvuuyjNCu+89B5UgX0beEttvfz26++/AA+2b8AEFwwWpgYTJ2/CDDfs8MMQt7hpxBRXfOvAFmes8cYcv4hUuR2HLPLIJJds8skop6zyyumOm4TLLMcs88w012zzoxjfvFTOOkuWb8/rLQz00ETPwXPRSCet9NJMN+3001C3+HPUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst+7667DHLvvstNdu//vtuOeu++58gMz778AHL/zwxBffM8zGJ6/88sw37/zz0Ecv/fTUY+179dgPJrQS12fv/ffghy/++OSXb/756KevPp4Tr+/++/DHL//89Ndv//3456///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgRCMoAQnSMEKWvCCGMygBjfIwQ568IMgjBXyQkjCEprwhChMoQpXyMIWuvCFMIyhDGdIwxra8IY4zKEOd8jDHvrwh0AMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMohZHFIAuevGLW9TCBSrAgQc0IAENQIACNlCAL3oxjFO4gAYOIAABAP8gAwdwwAEsUEcBGEABbXQjHJ3ggQjUMQIcAEEBivCBDSDAAXV8wAfcGIBBJqEACRCABTgQyCVg4AF11IAQwGjJIlQglG90wgcaIAAHvIWUpQSABvw4yQEMQAoe4OPPUmlJBAgAAbycAgMEcC8ABHOLs9TAMadgyF12cRGLXCQEF/BLYz4TCwYQQGSWaQhpOvACAkiANSspBQyAAAO17KIFHEDOayriA95koAEsMM4oFKADKHCBPgnwAhDY0gMCEGU9zRDPUYrxgR0g5kCdAAIUkIAAECXBEGAggQCw8gOjJOcYbimBIkwAAM6yAkYdmMeMQuECDo0oAYpA0Q/8kqP/thxDSD0KUizAs4GnzBc3k5DSiB4hBAHwpTTd+QWNIsGoU7glPAOAgQQsAAAViEACphqBDnhx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yLGjx48gQ4ocSbKkyZMoUz6hprKly5cwY8psxXKmzZs4c+rcybOnz/+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2LL2aZtOqXcu2rdu3cOPKnUu3rt27ePPq3ZsOLRa/fAMLHkw4nrXCiBMrXsy4sePHkCNLnky5suVaEC5r3sy5s+fPoEOLHk36IuDSqFOrXs26tevXsGPLnk279pDDRU7b3j1MN+/fwIMLH068uPHjyMf6Ts68uXOYy59Ln069uvXr2LNr3869e93o3sOLd4d7vHl14M+rd53+SPv10U69h0+/vv1c5e/r15N/v///AAYo4IAE7tNfgQgmqOCCDDbo4IMQRijhhBRWaOGFGM4zX4Ycdkj/1oEe1rOhcSOGaOKJKKaoIhkgrujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBilEjkkUh+R0SLSTbp5JM2MgnllFQ6BUJqRlap5ZZcdunll2CGKeaYZJZp5plopqnmZlmu6eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiP4pZaKMNuroo5BGKmlIi05q6aWYZqrpppx2+mdmnoYq6qiklmrqqaimquqqrLbam6uwxirrrLTWauutuGZaaa689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar/+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbv/77bjnrvvuvPfu++/ABy/88MQXb/zxyCefIwQNcJDAAQcAcEEFDywQgPJIgNCBBgMAMEABCCAAAPfeO9AAA9gPYQAFA2CQQAMbEFDEAg9kwL70DFyPPAQIfK8A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K6Pr1T5UljDqCDL/AcR+F0Ce7WUcdeLenrVd7rgr5u2J5WyM7hvc7GJMFexOyYhA7+4OEp8+7bBguUsh3vc+EjKcCys268xGClyuK2EeQrEtCfPj70tB8MVR5m77gNmO1SUe7o/B7cpIfMET657A7/+eVR9FZL17XfBtE8pDNBAPJ/DeIMM4oSFfDTrexsyN7Lux8jFvEdAVHx5GTvHOF8+hRtCb83rYoJsKm3W7GU5T2UQfEjozjd+O6sKuak1PFQxWMCev01VvF8QKf6Yh8VtfOJDg6OHtkWF/TZGxDBf7N2TvKJx99sgFLLuZT9AO95MbdDVv9zVm4lvOxI20MOee5jM/DrtMIRiv//cZ05Yl4mCIX9CSbhmFgu2NLxI1EueJbRuqPvnt6PWa7zDLPnudTxPs7iG+HvrweKRYwn9rpvGm71wJryZQA+pOYe++geTicOrUMfi90fKtDy3o0vsxdm4g8kXAT9io763FTwy6n/y7kOHMD5eyzxas7ywfwO5cPPX63oPPjxhRPxR3U0vTj8vloxoOsK7bjxRiouLnT9yCEvDrH65+zzDA9f7Z0P358fhpzvQR8dr0ryunIuj93/8nEf39n85qsvz938rZL4HI3//qbPDB2/+68LvVgPtpkfX9Dwserycq9/P9/79riP/9HzPe4Rjh3//LPQji2P/Xa/+su/CsYf8D0d//l/EaHqL+/R8Qv9vcgpHkzd3/5h68/d///Q8nlt//0mD/v6H+/d///U8eK3P4/V/OnyH5/U8MDm/bmxH9/d///e/NlZH1/Z9YxN//GWz5/X9s/Z/BAtDp/d///d//6M77/Z9wON///d///d///d///T/o+N///d///d///d//V2Lx/d///e8Kh9///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d///d////3f//3f/wYRAAYQAAEQAAEQAAEQAP1/vQGwAEEkASTgAZnf/9IVABNwARsgCAUwCCcgCAWgAA6Q5P0vXYAQ4NBSsJFiglECAPBRwoAgAQFQkGGxeImZqbnJ2en5CRoqOkpaanqKmqq6ytrq+gobKztLW2t7i5ur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NOt4orEEMcbLi22MaMytzghwcUUS0cadjo2I/U6bHSFtzp2OJc7mUMYfHGulxLWC/wjX5qYICdoL0/DUk8KCPKgBEaHGj1zEEKici/No9I41epRq/ZZR2ZFZ27itT/YIpc2BLJLEJkoCMPZvLSsC9uWN/WtpTyaaGVjsBp+JM6rfzcyqISDanXFLDH81Cm6OODjd/2vKIFgY2F6O0qpr6ExSM0DTWcbJidxsEf/VOEADP1Bq+03fPVCfOSgRCMdxVyaML5hhfm40XSnygA1radI+EzlqXp7kJtes8VgBFdxIYrbyNE5HRcjpH2SBNdPgC42CEeBOyfKnPUYIjulywfU0k8g4ZcsYC9FJGP/PG7+I1a4/TK3xN+fVeWa4vUXjtF0QvlvmUnwO7yyyJ87gif9MdED/TDPeMERIg859zypXkOHhZaw0gQnCm1C6SU++Qs/QYUmfT8OF0CLAvqiBUwC4c4RAN0V5S7tsgx+I7x4kcKJoxcBF9R2ttpBJoMLwYPUc9QSJKFufAWUyQrGqM6LgFm/+9Sw1sCd5ag5WKyDFkuHhsZ00FAI6P+lVzpINatZA52kX364WEDE4BH+D9aKZGayc2BFkYv0AZXT/VTRYaHjE6pB8UnX7j/Tlw0RAy7147QjBLnPVofvGd8RNAvVoIylmksnFSkC4gzl4AqRKJSnXOg/5a/Cl5YYXXLLSp2SRdyCQccggdZFnedAgmkjnQ9AxpEL8qJa3+fuBd4v/PPKUu3nGHua4dCpxYvhUrIl0Ueme1+9SvhysjAGzagKHQfqoj2ryoAJCp12FiGGp1/pB/vNUHAEV+MDA3vq1HmUL4elURACmexQ2HPuAtqoBjYHT3vSQj8gVqW32a/t0/myOtpAEdM+VeO/awMi8j2T76fQFiTP31IFsB3rCp+RX6pzS/nUW2oBHd/zLh/OR+HnM53yx5Xk0M9jOZ92K/nVspmeJuG3RF1ryFv02U33CJ/3Xl32endbZt/2Azfrb131ObZ7d9/3fB/7gF35kG/7iL837NP7Ln3Utlezkd/7S9PXn73KWRlxpl34rf/JuPfvr537/O/rG6n5At36h/0Xr8Df/80f/9MdD9Wf/9nf/94f/+Jf/+af/+rf/+8f//Nf//ef//vf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5d0AVgAJ/CVQlgERpABMf7//78mAciARSAEgWgAAIADOIADAGiABoCDQnjk////hAKICo8aNCC0yAkDAAoJLECR6BGcBnASKaxo8SLGjBo3cv/s6PEjyJAiR5IsafIkypQqV7Js6fIlzJgyZ9KsafMmzpw6d6IUUGDgRAkdfd4gJFEGz6RKlzJt6vQp1KhSp1KtavUq1pcC6hBkNFKAE6OFspIta/Ys2rRq17Jt6/ZtTJ+LGjxaUNIno4IJ4PLt6/cv4MCCBxMuzFJug0UpwUr0Yvgx5MiSJ1OubHkyYooqBTCAA2fv5dCiR5Mubfo06osC8no9zKBg6tiyZ9Oubfv2TMZjXerG7fs38ODChxv2CYdQ3LwuiDNv7vw59Oi5lccVQAiO9Ozat3PvDtwn3dwuGijybv48+vTq/a5ugCK3deTr59Ovb//+TZ+EHtUcoKj/QQX4CTgggQUaCABj5dEE3m5vKWZSgwrxl9SEB1p4IYbOtWdXTQ9AlIFl2IEk4kUkZngiiime59Mj8tEkiSSLwKEgbRFi9KCKOeq4Y3DGPfLei5JA0sAhk9nII5JJKpkdeAfVBOOQjEASmolVwVHhkllquWVSnDWQCJAgRQIAJWOCBCUci0zJJZttuvnmR17S+FEkkUAiQJlnCglHIWvWdiScgQo6KFReaiamnU44kadHkziaph+WAZoRlipVidGlhGq6qaCGilQnJP9lQAlInvZVKUsN2IQqp6262iaDn9oJSGMCxIkCea/quiuv2+nH6kagAgKARA7EyZWxvSq7/yyzuCEma6jEFuuRAIVk2iy22WpL2VYAhuSHH92qOu1G+rm4LbrpqgtYrCJtRay03mokAK6HrnsvvvmWxeK15dIo0XGgYWRrAwroezDCCT/FmL3UckWIUQ74NK8BDUyqMMYZa3yYdf1mtBoc7RVCgBMogKjaXCdvvDLLLX/lQGIh0fuAAhlEVO4DFru8M889q1aIvNTa6sIAQLemWsc+K730yvoVLJIXCcB8KWJOMH011gd76fFCFilQwCJzLjTX0Vmbfba2jH0W5wAAMGCrygMEMBeOaNt9d6/0EmR1nAqFydBAdeM9OOGbcmaU4EMtdENEYhf+OORuIjaRzGHpFUI55pnDisJAFjuBwMf0MmLUjJqbfnqW9FpL0H4VMVIIRKw7jjrttaPokwyLXIcdQccVAqbtwQuvo61uCzw88skvFRAAIfkEBQMAAAAsNwBeAIkDAAKGAAAA////AQEC+vr4/Pz6/v78+Pf09PTx7/Lt8e/s+/rz1tra9fn14uLg6u7q1dXR7OjZzM7I3NnP+PXu3N3Z8ezlHR4fvcLA4d7M6+rn29XDx8jE9/Lp6OXd6Ofjubq1zsy119C8ztLC5uLU3OPXlpiZ9O/hycW0vLucw72qzsWmytPM0NnP5tvBuMGtvc3Brrui3+ffsK2Sr7SW/v7z/frp0+DVsLWu9OzUv66Lu7Oc7uPLKSkpla2U2sqr5OzilaaLHpX0+/Thzb2aqqqoobCTtKeHztjBtMe5Q0NDv8m0h6GMmpyFpaeKhISE4tW2nq6gODk5ybWRqaCGX19fDxAUoKKevs/ScHBwbrHlpb+um7efp7Gkdnl8UVFRjI2MGHPQB2PEjrDOR6PuqeX7KYve1vL6eYeWkJR2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVkREOlpqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tOiAw3U2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+coD+v3+/wADChxIsKDBgwgT1qOgsKHDhxAjShQ4gB+hAxMzatzIsZPFjtU+nhgCsqRJcQtOstqQKMOoFCo/qpxJs6bNQ0Ru6tzJs6dEBT6DCh2aaoVMopEueDLQYRDGRAacIp1KtaqjlFZt3WDUomnWr2DDitUl4R7WsWjTql1L6izbt3D/48otlGmu3bt48+rdy/crw0kv0B7tS7iwzQ02NoW4N0XQEwAWjx4gYLiy5cvurhnqIETQ4EKfMYsePROK50YiIAMMTbq1a5sMZxRimajsoAeQYehT+rq3b4KJObl0B3SpIg6/kyvviBtdRVfPl0ufjpDL6YQpEqimzj0g7e75OoMfTx7eB1JXID0Nxo81pajbrzeifFFq+fv47bn3tb8RTEEUQGCJZvXFl9+BCFJDIABbZWObcML9N04EDyZoIXk14KRIhRd26GFhnBGCwSGLfWjiicxIOI5pq9j2xYbEGPHKegCcAIAONwKggYz2oejjVwyEMxwoAvaYSgP9HfMX/yI5gPbjk1DOAgJy8unISpLHIHBIAU6F9l2UYIYZSgTYbQmfmGim2QoTx5VjIyUjbHmJmnTWWeWAnmFp55580hNdKX8WI8MuGvRp6KGUNNhIg7xtEqg02iEq6aSD8MhIAKs8qgmNtRDAJaWgdsTpPBkER0h2pKjYTJzHmQAXh6HG+osLTEZCZT0GNAbXrbL2WsuShtAqiLBwQsWJnjNG4oORvja7SaPRKFoQsQAsoR6v2HxGpqaSNOfst+qssE1dpwBRRBPV6jasrR4R2q6TECEL7ryoiLvpnD0kuqG8uZQooiSq5knvwHax6SgjQ6CgRKXBIhLpOLCq55iBBFc8Hf+LDNdo5akat8IvgKgUZwi3/kRnsl4fWwzQAmQC8AMhWwiSwQSfoAAASS7LPEgRHZcS8CZFzrgfAqPOk1OXB6usdM0bd0sJCiqc0ISMSqCbo7iyET1I0JF82im/wEpiXT4/L222LNbuDIulHDM7ibempHwsvADsUBnJZ6OJhClp10oIGjtb/UKQmnxwgteA3ptz0qLBnXeUEbBdYtidTCHbI1K0sLAgTbAQs5yYD1OoxIw8vJPcj0T8OKUPiEzICm45ogIhbAOwhRY72zzOoItwu6zb6IDASgu4UI766uWZzkhgjTQJgNW8MxJ9LTh6TPHIiEwxu2oV0Xw8pKe4umX/9bLgjTzBlxdiLQuKM7Jg04iM4MOIDp8SmrxfuvMBzXNXSYMu3ztfs3oABEIAQQqJGNu7QCezCpFrFLfylMMiozMrYSpnXmkIq+giM/4J8IOusNohnFcIGVhLfBCCUSXWU4EF1g9Ag1mM61RCPxCuboa0EwW0HPG5QfzsfRN8oewMsb22ieIHG1REARpjAJqNiEA0CNKZZuLB8CnPhgn6gAIlEUDj+AxhpEDhnU6jpTHaDUchGEkFN0I+A03AbliMow9JJLxS1PCIi5DWKtiGAV4VDX45utOO4tPFeBQgf3JM5BwbUcZRUK4ULRME+SKAuFXAkW6CGIJ4EtHGn7Tn/1JqoY8ixxGD2SwBd4FckyFSs8q3QSKJhZAAtmxRxZG1cJRFwWU8YFDHWEJCV45AF7pwNCgEvrJ0Y5RkvYAmFYvk4DG21I8up+m0RS6iiCRMhMEmwaPaTcwSU9wM9pL5Nq5xMZDD6YD2CpSPQlITeaW0jwhkUMRHxACRlfgdMh2FQ0YyMpKhqGI/AfnOgiqETSLkio7SNwndzSaF79HjzTwBzPiVDXgGzag8dognRxAudfl8aM8k4YEHPXKc7XMhOTXK0pJoyxFHcEQ2lbnGreHRVo3k5MFGt7iW+vQfeyvcINQFim0WAgeVeNnr2HWVhoFGdYuowCzZ6ZrQaMBfP/91DfsSsTmnPtQFPH3EeZ63SKKWcIQAqkAGK4kCHv1xedeTnjE7SpcGSLU8MHFcVknzv0YQLwLW2arOCmhETkjBeYMEQS9bkgARvKCTqAAiRPcaC1FSlhZkcqgkgvpNTXDNXpOoweRuKYHqFamWi7BZ9fraWZCSlHiHKK0lNNvMy9p2Gls8xZtEdEeXATQSZnXMCEaXL+JBVU76FMQlFVEkpSICkZKVXkgwykCBQPa2ZzMnTgpoKkXslhIqgK0XqRsAHLV1qUJkhF6p6k/qrpGCicPGBhaL3W/F9DZcvajwnLuod5XFA+57aBMfsYOZUjeDoX2rKYaECAkOMb2zUMD/cQvqTothrHmKJaskXYDUbl1UETirVA5C7AjnnqC3dasn10iIg4AV6rtiVY9E31Nhv6K1fJSt8ZPmutJJ5DZ76LWSdivB4+0UybSF8MEmdSqwfOozikC2keWaOwkEeza2bXpPdevLZZBBkpVVruZVWLXJbHJBBSRUXQ5kFF1wijMSJPYhfd9MOgi7l13mA2MoANzl21pBw4dgMFytGdPpQWJ7sJ2zIYr8VM9y9s6Q8NZ6A0wBZNHIsnXesp2fe8w+h6qi2gxuJ0pw1kEggXmIGCunb8MFGOjOB03C6nsXTYgSpYB4NsKSoH3ZWhJdsquVeBBGBgoZT/0Wk6glRTjp/1ysWlzxQgHUsa8MPQo9xq4STHBBbgFHVkSPFLX8BbRmTlDH9cAWZx2uYAhIrIN1p5e+fE4E2yzHbNfOJ0nHFuksdg2mSfOCA8Q2m+cEsYGAU5REBM/BcsUK2lKbujZXplWTlkzT+FlZKkNIbnY4wGMr/2emt5xjcveZbC3rrJKs+LCaYAyKQkpbVr2NcyzCysN8KbMJWrABmGMKlHjjV5kfT3eNbgmB/I28RwmAZV8H0LKZXvJhRhCZeDlWoqkTvGt1Y3RTOelNTffYp9b4hGA/6IB4svYUtCXEDUZE82sCumG4w8DECyvkMRrYSloHAMW7JIO0W9MTMu8YR1uhav8Fo/QiBm9Em1sByw+9/IP3zYXQtUnWuxvBapptuxClhohlgUAK9eQgxIfK8kE8YckMACZyGgPmHAkhTv9ZfHtFf2Usj9TLdPloIxr1Adm/wurQXunMfvF46ZS+FWy+/SJ6mFC1FUJYNQyrSbsyu6OL2PRGPQRMuFSoJ4RXw9B0vg+NUE/jEpGrgZcPqGsq631ei+Dtb//IdJ14e1NEIvy27fpVcQGDAZsJ14UI58I5VgKABnRfvZQCyxJ+NYViikBCd6eA15d+PtRG3ScfmneBBGgfjfc8mhcKqmJU1MZmJ4AATHCC/id+rcQlx2dyX4cPMQQRBWdkXcYznjA21kL/QIJgBblFWHDWdcrUepRAbTZmBHenU0fXJEaAAiugaiHwEVa2fxfBZwBHUD9Ha3NTcoszHEBxAD+WCCWCOoLmYHEFLo90ACHnaZVgGja3LqHAUMMSA99nhOlFIyo3R1PXYY+hhB04QkfIPSjHQcvCKhggIF5BZb1zdanSJA5YU4SAVMLTMnf1CZ/xbBZjV5pwbWW4OkCIbV8kSTJgGjagLsC2gVAlhHCyLA4lI3mXSYxmMxR4CM1HMY3BNY1kTD+QU6qxW1o4e1a4ieckcI50h8FoMS0YCzhXCagEijMgLKiYiDnzZx9Ya6aXQ9WofAjTAgzwQFxBYgBWRLwIafVG/1CcUgDqxDk0F3pyMmEBRi+aWAzF9yGDR40F+AmotmdklVDm0jFFYgQolGGzsx5r9nONeCO/UyS/8yYkxBKUBGM8clg6QmLi5QMUOQjzBRkJNVdxtnf/ogjAJDw44DVD5pF0xV5MpQuq9oIIIn+AEo/5kX2lBpOhIJNiQ1YMqHYFxDsIhAMhiUYTk4YjBgla9x0qQBI0p1l6qB10qFyOuIFgeCo0UDYecHEglmlMZiyzZUNUmVLi5JKhIgGcpwptmEdu14pTcFrxUWkj0Io2lUqp1lMVJCHvYzdJ1EYh1hg6OQgdR4+2RCGP8Eb0Y336NnqOIT5nd0S9qJIOoWgc0f8Bsad7PXJScsQEnagJcHg0jOCDi5B9vFRC4tVCFXJiBpmSdeMf1cMSn5UjrEc75xFy1TM7lgJ6cpdJQeQUf7FV+ER7pXkAefUmiflcORF549hyisiVS2OIT3GPJulGFSOFO3NhXlU52+R3tuMI1Mk5PKmXypdxLnOWAliRi0AClsJaCJRGdeeW2QOeG6glcLN/lggaTHc9MCGY7tNGdeGdCFddwOdKSoIZ7wiNkdBdJIBJZ/NnivA5P9ZDhHdwFScVAehVM5UwS3hUuxU1RrJwFFNHEtAYMGECI5JTGRRvMIlp8HkctvGe4diRWNmUVwiXHsWXPseiR/JJ70kNXjn/EN01SkRICs75eejZoI0gTJuhjvEDQzfWkU3CWhWSpHSGAaeHVAMZfiEwIsdYmkD6or0WoIq4jRZBLTLXh4UAei56TnOFLezoZssJHTcqFlpSpbo4LzRZk7xgc9TCkhA2AdlHl9eYAqDGU3aKTjnEKjDBiow4CAZopNoZS/ZSo4jnfsW2SiaAaQPaliFVe2NKmJvwoCqapQuGmZZxaemhfKKUAKPyJ1PVJ1zwh6XAbWoHXHqGCKODADFqkYvzjNH5JoRokRXwajeiMLzGIByDKjrTFAaQAgIinB1Dn2R4qX9Xkhi0UFeJVmPHCTfJDoFoGJWIUmVHoP/AqFaRb5xE/6RZeSODEjAjIEacCmS7SHc9w4p6mRNb0XROqXeixCXoKqOBJlZhZXgkRZVp6AoCUqXdUDT+Vhjt0QDiehrH1hQvM6twuglxKouGMAMiOArGtJ+LlDCpQS1JloFS4aMiAmswApZWJn8QcK2UughkYgJsklOhoWQqlGJWyizDtWqKeU6oRYzx1WmSIGsH8J8Gq3tCGywMEBmnCowtpamPwEetRJsltCzoikI2QJOaepNTZ5QU6aEGSTueh3vah5+ccoz3GmS+yJcz2HmPagj/2UXbM5IspQXOuaJqaI2gUHXRpHMbWH0T8xhBYwSwNZBVSXuqpgNBUiSh2UHDCUf58/9odRhXeeZbJdqsbEISazqxNKZ4/zovT6Gzlju3qsAqIntUndGJZeGNdPuj6EhVzcWwTYkkCvC6V3d29feLhzcfTDS0oGMCYiRL4HoKkshBBdsmFcYaYMqtjXoRjImtBTCNrHEDCeWyAmSDpTCAmvCKKvp6oVuWSOa0SnRjP8YhH2l6GUJI+Wd7UMGv3GM1JMpqkNEAL0YlGGp/pPCnUuGcEpYlrhFvkBlVSlS55MGWsXCdbnYCM0Zw59FJsAJHH9kCtTNyW5CjLIAurFRDm7RBtAEBxGMwo/MpU/mbgRYnvat3vmgRHsA/H3GYmDWYmAofFKBA0XGRY7K+5PEdWGL/A/TTOomIvocSsdTwgbA1fOPLp9GqlwkTpoyWvPQaoyykMRu0TcjZQF4HYWerI8XRcHNycrpJUqxqCTwCLWqknpOBNCNzVey3s5tmvKJRviUWTeIYWuXRf+IQeG6LhR2bI0ccOsMSck/hEkm0wSV8nhwgI+q4bGK2QgC6dS8hQ7RnGygXQ7BbRZlLnJqQPwQwj3tRRrSBxEIkEydcIA7ruf5BR5aQm7SaxRYJY7mpA51RsNPoqECmqkmBDH6ZZdthfV10ppr8Gzawv6I3rZZ6PjzMCdI7rgiUA1SicWHqitK1SmDFKzoAE8/cGUzwuiJZYtfAjabHuUhbu1dCDIyq/x3eyq2wfBkhnK/FiUk8g0O6VnqkzK5LM8xr85Tz+oATq3W5+h+dkctp2rSuILBQ9KtnbAwyHAr0mcbOCqtXdgQQ0EhbKWDTNJagIMAydTPeNM5MaSxvus1y60hpG2MuE860/Llt6XsdOQCkqcMgNr6UsLK+0Tcu6cE26yvBXFSvUJGxBtDiRKWM9dFkOdGVcIco7QnDRwsf6hmSKb+ccNSgpMZrQZpRrDizm8TAWV+audLZFJvynGRYXR8OBlnIQW5mPJMzWy9BHQwFDDC2iqaR+xof4ctiDGdZzLEafVs4A5E7iidPEJT76S/Cc7RoPAtlAc/F0srIQMhfpABFXP+MfCGwVmy+9yYVmkHCWIzQgmAtKDspgn26uKA77lq3I2XM/At4q1ABM/0I5dwpROLZY21PlXEDgHUb1fqXLvRHMG0MQJsWpf0KVf2qzep2V4rQPuCNn8yf3OwRA+2C/nsLGR1pSP1ganEeymkLc+wS0ILNqiAv76nEAcXUpEFiIRaL9fzbdBvbDwTAso2lXJTcN6tSziBpfo3Ib4E7AgsMNlKQAV0K49zOvbHFNTNXFu2W+qRoEgmkn4S6/AFBvaDeN/XLc7FDl61eLdEK5lkbJ+UewduOTODWzMraN0GE4to3bxfAkmDR8Vs3sXrOeikDT4jghhzSc+3NLq4MyRj/CXMMFioiAQTiAdDphknV07TwUptBrJXwJWfaE6EKDJmtfaI2z4vWtehtkWhWvxet1kfiyjURGpO3HAngqZ7Q2M/HXM124Guhg8HEIiAOCwV9jU2b5mil0v9Fibmg4Kxw4Rxd3E9ulShz2mEtH2yeb75H0p8wi3+i53guETOugtWZSkk+CUuw24e2CA/JLAZWPTb4hdizA/R7yAFljqZg34pA6CwuLXQu1PgaaC2Ehk6izb0x3PtcOry8WRhz3C2e1J9epMGmE8koG9Zy15AAh5U6VIeqCLEtsXRsLPpNts8QKUqt3Kh93pM1F/clBdG9RjlaayodMgKYsijeNdWu/6XwPVQtfuwHAdHzHFTkvnxt6OiIkDZnHq2+ThJqRAhimkPm3bhQbFFFfiKqPhQXQMYx69u4ABSiiQuRXLySrBIT+uUwgwpkvgnzlmTyTj8yMIu3VwEsMVAGrwJu7srxmCQ0Iu5emw76HON4HBfCmQmTqvC3YDWqpqfdVuPXjY2TrRbqTgJybQi77esLXy08xOTOTbdGcATlqiJ4aZFsMzs7IgW52Oo/39yq7eI6LOe6EG4AkBJji6mi8T9KEBxBkts9kuEpx8SrWdYeHZ5OTWqznhXtHuI+zzM6H9E6FWfPLPQOl+gBaKBsr42Ec4zkw+rKJvXStO2m3eOEbRUGSv+E8DztcnIBCvbg8K1onk7Zy1XWRfs6IvAA26Q6/grdMm8VPKbup6TZAEN5JQ+RzBY19NY8fye1NKtQmz7aAFGKax0l0Hdnjj/iNVJD832G6BujRHAml61Gktm7Sz4VS16ZpbD2va19jrADJb6DfjMskfTPmxrzcTNFIG/9rj7nLVFKHQD4Y8H49LzSH2DFY7Xc5DVOIwA9jfhIXdGOZDk6feicDAZM3X7vVJFQwaHuBgQIAIKDhIWGh4iDUoMyiY6FC4+ShwiGIQAqAB2SA5Oen6CfD6GkiQOdpYOonquplIQVAI0AEq+IEwAfrru8vb6/wMGEJBSCPYInRL4vUML/twAGlRiPtYfTpMURsIISTMaFTTm0g9UA2g2grc7r7O3uh0YAKC7vri2HmcIbieKDOBCx6gncdQDaI23rTvFS94jhQk3bxg2cSLGiRVej5LHopSuXwXUPVhishExkk0JKlpAD0MycDl43DnkL9WNAhFgN0D27yLOnT4j1jv0UlAHBl1AnEpVT6lPh0KdQB8X4pBPYlahYs1J0UMjATkMEJqbsoVKQlCb0kBEVJGMmI6Eeec2IJ0stoRUuSCS6scSG1r+AP6EAIcIHOxihFrVAIfjRS3iShjAaBIIUycCYM/NCAu0C10kXImoeTTpUCZal9u26kIIgU0QtrqmdUleU/6nJdZUIQtzhyV15LBnQ0hBTqqYm3hwUK83c54yVtaP3kuxpxCcfGhp3JJWPeuDPh5uXOrB8fNdUGR3lFM++vaNZ1CSpdreeEIgf/Sjrd7T9UVpDFHiQCGOznLCBCHHlcsQz2vzn3oPAlEUIYsDtBsxzbmVnmCfeReWbPxCmogBmBYn3gmgAZgeAWwFFIlGIMEL13CBuUfKYK7gYAoUCl4GWwF5AoJSLXpOcxB9uWhwyFTfeoaBBB/MlaJ8gBIAX45UYDVhZkIcwVqEnCLGQVFLXeUKbL3R5YkJrI/5F5le3deXQJBgsiCUv5XE32T1r3elnRRulM8ucBCzXo5yTHP8KlCVx2eAgW2jVdaYlIqSJSIfqEZKfCoxh+uenFzoC12RbzJhKkm/u19wQi4wk5WviWbkoKDcwYSqoVK3oKWzstInrr4mcWJlItqAiG0ifcNBaXLHciKB05LiwhITmKEKIkYJEcCIkiLDwwyAfqurIVcCWu9et/LBlLiHUPbaDJOFCVcA2HKRmpIAENcFnOuVywUtloHhg6SXrmnvjK3NiW5VFwqEWgTcaiMABvhJhMJWlkBmST3+JMGFgl3MVXDCF6r4aSpICtVpEsBIenN9AECAy6SPvclORMsMlWy1uIIrMSQdh5XpRca52sLDPWBaHBoA4qiJnBlQSdIABGhz/QKyXrxzb8SO2guM1IkjoloOXKyNd7hAxu7KFO/4egnLJ30hZqUUnYGxZT1hrsslHYNkVjKJXBhQKDfWmEjN5oBxstsh2z3nIEi0hkzdKRK4COJjD6bChIDhQNs2+hpBMdDvzDELy4ldiCx2vqvPczrbcWJeLW6ot4g0Q1DLWgxZLvL3OBmk7rW6qJPZoABMYCGEC3JioiCIwHqQ3jJ+Fo0lbBVHqiXq58SDg+CTL2oLIt1J03rMke5NMoDWTnLZil0kVsULr29cP7eqGZDANfAD4Dgpnq6GHFQxhvq89JQVE0hppMpIPeYyNEHwi3kT8Iq+hcGoZG6HQC2pkPyxB/8106NmZzaLWEMFhboTMK4R3fEA/QRwFbPeTlGSMNDmV8K9/HfxTvOwyAzvhYippCYcIf/JAANiwbHETSwwiUIAfVU8gJvQF2oaRpykBa29QzAoSLpfDB4XGb+2QXrIKshT5qMsImwOOBKjltlTc8D5d/BOXnseCQBVCGxsJ1KR0wyFQkMs/huhaEi9yAiZMQYITo8Wu3vE94XEuTmBU4OC2R0H0ZRGFcYxR23KRI2DYUSlBA6HQBtGa4EGKSbND4glDJznTSQExk8vknR4zM03YcZMWghvBQCMTme0lXV8S4BBB4YOXfaKJn8iBi4AhQfOAjD7MqSIlDIDFPkniOf+j2oosgaWAg9UilAzjGyBj6YghzCCbZkxEA0OBzm2WpoXsKwIN/nJOlMxAB/6aSRpJEQKApaZuiMjBE8npGoohqhSLbNq69jk9ph0BXYBy57owADpCNDJxuaSHNMU5EkkKgjN2eks9ZKC4dEq0OZHDX72SYh3nuVEYblmWKnchGQ3NCnzAHIgEqqmz/NWGcBwtWHkaRrqTGpWYhuAYtxqSjnmpiwSHwoEEs1eyb910HSsjyyTYeNTRzHFCPByH/tTCUHZu1RMDpNYsTseuAcFml8YER0olUY265aeWPjFonwyDsYvCyT27fAR4OtnQQpSqq4gVlbjYFxe8MtUWyPP/lUWdKo/INekk4dNPZsEBz0Eiwp/Y0mpiYbS7FPqNAiIh6CSWZtpPqO6FUUkoPOxmt6eIwweF2ydbzQXVZ9Bjnii5XOEeBZVavYBYoxXPZn/BBK5alKrykEYhPjgruHLjBzHxizoMQ7ySusIFjk1uc/CK3K+1AqJFBaQw1rncuKj2EBHwJ+fWBK0RBImDP+kcT7cpq6TyUouYFK94+GcxX3Tjr4uyqviIsjc+RqSsxviqAScBYQGXCwIhmKtWOuvL92xjIw1c0i68yRNcXqtV+FheHPe2iR+JQMQ0ohF+sbICLvDxWRZ+UHlLhOBh7mIpNbuuik1pHdkBIFyNYAzK/47x3mtxCZY51qErr1XdwNzwIPwL6YTNQqv3xPUihHIVu4AnhNEUkJHWzNaBRwhjWSBGy32jwBctAoEZRxkz+w1qO678PKlgGAeSdZcpN8a/5zR5wkXowUwL4dw7f6eNDkNrkUrRTmd448tEURGOIalmm2n6UmLJH0LS3Df36OCJnLCk96hciBssWsJYMeQRwutoreAlGLVwcHwG0QPg+tkB2zGe3/qBNR24wHkN0g2HA1rZGdF6C9OqtWZoabL3MafROf0Su5akX7bUQM8TiOKUirGdMsIsU67IM2AI+wk++vV8MQarm34j7czMBD4JLHNPFexS4lrRon2q6DUDqf8pFSBnt47Y5ToZDbt6R4VoKFCcSEzJHPyi9yBq2cTR1CRfLgf2YOC0zLsRO3IugmUTJqZ3q39ygeNKNdEOB8woUHASfCPcklDoL1G8y2leOZBRLrkWEm7eLcYmYtExj61/5jz0Vmt4vEIK8FLyI1njHOeqiQhBbRPlC+ra55tO+ZMWkDtyphXizO15etK1sj5wuYOoESBGIrjyyWoV0yNjMqC/zwqC0Mp3AZdeu3jsvOW/wJkUr8QEBFkJQa/fFNOkaS+/7sRadENn1PEWvOaJ6gmihTzrmIeOOpb1mEwMpoDX4BL/Kt1hsOrF8Zq3ciGUqXLXWYTWR0KEhHOwcEv/IA81CjaIChS8Qh/g1oQEazgJPPaLspdQZOU9T8AUDGsNGt0nNwgB6WM/bcX/LcA9W1Z5hrDOfkODASU1Ehq2xHg6teSeMYw/97NyQ+os+xdz5gmKwUincdD8keOiRsKwdbtAMbDnCKgGIRkAQCghfghRSA5WFs/BP21GCspQOr+AEN7QTPPnJi1AJvomfazAALDHZ05TNSzBMf1gSvvgbFKiWnnzRkD3OB2IFaBFcPEgWzCyf9q2Ih51R/0ECfo2DSSwKxXYDs4XLEnoJ3VXPRthZ0FCD4s0P6L0S8jyBD9Yg1gxgaBAeNaiUVaXAjwWEM5jUJynH6PDDTkiEptz/yzwYXzyUEiLdxZeeGhaOBApl3nAEi+01X6YYHrIIF/bckHy50ZV91gP0R7kNQj5RxQ8Nkpf03DW5hdfhHvyBn5dxmsxxoN3iH25VHMk9AhI1wppM1iHSC9OUxDg0QFGIHCKBhHGlgIvwRj6BF7+cXEf14mAYYcBWFgXcAORYAV9V4VD0UJvcn9gtEQpoDrqNkKJtneOtlEAh4iUZXaCMBPzoARBVAgtgIya6EnWpouBgQPYQheYd4QI6BC9J2qM8m3VshE79AhNokJfFQOZNVOzWHji2BwPcAHeSBHr6FrccBP8BBmWKCUYkI+E0Ds95I619iw+lAB1tA5EpwRlI/95h4B0A7iPQ+E/rXWJpdZnG5CGMzgFS3Ijy5htbvdRbPUcP9hCkkF0HMkT/5hLkwB5UMF81WGNt6AAZNIIm0MsDjCGBScDGqlY+HNU8WN1Zzcg7ghdYKVru9AMMnmTfjiTPKEiRNIxJlgsgoBkixWKrsAqZwJ/IIlQk0F+qIGVwJIPAvcThNeVPbUnsKAom7Qg1RMAA7GEpIGOVNRcCfdZ+qIKFHIrWnCYRMGApYAyHvkJaHcrOsiW79AMRvZfIthnvqUK1dhx7II1MbMRJOUK6AVrhSiZApGH/pVwQXZ0KnKQmIGRDBKWqHh9iKhe49NjpaFz3kdV9BCCS3VTmUD/AWq3NjzDmaJyDDGAGMT5P25pmpgBBEdwDeu4laUgl8BmMwoQd/IxU0YilcjQWbzonKbGFpJxCrQhBYHFZaT0kZrBgT2HiefXC2dIclaELQxAVYeDGkbCP0s2JaEZnqkpD41JCIqZZA9VF28pnll5ljZAF0eIgfvhKL+pCTcgiV5DgLPAiRCWhSKioBRBBKUznSalKWahIuXXg1iVJT7WoZJnbv92kx1BQS7VdS9CPcvhT1zghcymOkLETPo4GUcwN/znoVFxEpdxEtvCgKn1HhLwiIrXCEF6ImlxLD8AOx2wWVvna6aDLa3SjZcYkEQaFZEgA1JYGzjpSI+klxtS/wDgdIMTUZU6wnPyqTdrEQJoZ6EUEXZuNTIDCqVSUXc/SmlJwju9WJrk1wxKgCCbFqYTFDMrY5SCZVVg+nXqVHA1sAHGpkJDEogGNKlGhJSZB6eMyg5nUaN1oQIq4CsX5RudsFKtZJylYQVyGifpcYYAykioMEBiaZN3IgKtQUH3xpSkUm0WsgWHtQzQeF0UQICGcCITOaoUwQKoqRuAepagtqdfo311sYIf4ZuakqCrxavq6anQ6gslcJTEqpmqOELpWZrN0QLV6AxbGa9yoT0lUgEFQlcQYn06YjqHd0eV9TWsZ3mTpqmKVK5+0q7BIhWpgmErIgMz+p0KKYCiaf9aXEiaCPsOFRZU1aBi4jICN5IBsPpOsGkK37Mso5OsPjcQHRKx7LFZFMdjcyR3faRtA+sKp/FeDpmxMlIIS3MObFEZdCGqFdt6I4SRckmMkcizFPFb3dKMCPMmaZi0WoEzONJIald0FhFXIbBxEIKe7Koa1Km1hjC0kII16LqYlxcXi8q0mBFSLssOxMJB+fF0yWFQ4uCdbguXBCobq7kOmbWx1IMnPeF84jYan6cKo+CXYgQRIEqIjPBKenuzhoBtAGta0be3BzSkBCR9xIV5IfAClVGZ2dJ0jmEzythKeggZplKymnsqMFSbE4oS4Fp7v+K6WeEQdRKSMIJMVmj/Cy7gL4RxKdmUVRhrGyWDnsxKtq9bEXDxNsu0bS5UMpXnN3YaLf+RtFAWF0T1Ej9gRw2EXnC0G8vLs1ZbnV2Cphx1Co5TdqU4ZoChT387RrTZJ0FCcRvmmu15CwJyD6fjb3xkBAuCVxAFQMcLCk/nns2bFSGlmJGUvtvQXmWpAwdzwGYJTCorKTi0wMBwaYcXj8Kjp6JhLKTwLrjlTDwhIFBLJSKsXLIVcVc0e4uUA2+4lvahAlKptyrKwaXhwFR2LLDJY2rZlDmzk66zKZ3ypCjKw4BrF5yIwuBYr7nLvrp3VSNbg2wYmJsWcW13EoRBP2nLxKBCaxWAE7ZXJowi/4X5sDYQZWhq9C1cqAjYYTMpcATkKsau8UDlSVQKxG6CQbr7umsNQcWQ+BPhM6u4yRNeUQp8dQiUhQB6McBhZVgtRLR4/Clz0rbX4ZC1wARW5SUWWQh3VzIGp0K6MQIisAJ6QVxnesnJ9LBul4BRPF2lEL13Y6qWwBorSsSuQamYqVdgFnryiHajUUZGVk9pVgDSSIOS4MOu/CdVgTEgIBmt0V47i0m80VC2yAgf0gQJhaEZqXpL/Mw1m4pYlxULYMsKtXJ5CnBFwUkEKwzze8bVKwneWrisUHiG5KfpO5FFEJpvA6nburrk/Cu27KSWpDhOInXBNNDolR3VxHvwsf9b6VfQ3EEctqSli6JUzdfLvhB2rkkSyNzM+WwQYoTQ9fAwJ9cZIaQZ6mBf/RqOCbJ9KnHFQrKcFg19rVCyfrVZGn2NHAYwOprTb4eAk8QJfMmOu8p1M8jURp0O1NUpCjwRT1TTPiNh3hl80UaoGgPIILEAjUjUmrFTepbII9TKxck1OJ0xYh0KLWByUGzWUYGT1YN2LpolfqwKj6gszHHN65acpxSYYGUESKSRMPCvzASVbQ1miQgrmPmPQOCNWqq/i20Oreh9tFzUWNHT21A+XBOZlskuQnCKaOaukWFk0YAV+wIfRRS5yAENJCASHfEfJJO2iVrZ23OASU0Adnj/2CiUJDWJ2+gr1+v8F41k04ylqjfZWWHNLfVCr8Gg2OU8jbsQ3AsmfAZbVfgQqBXIGbeiycI9uJNVdr9Xo1TLNFClzuGtr5WaAFNzy2X9E4TsCrUUxr/AcxdQSUwRFqn9YwT7xJPXy37ZDv4kPe75JObgADambLnhzOv9Ky/Tqi2sr94FuaCg3gsr3Iq9D5DsDEmdEISb4YOjsK1Wvkz5eUlYRhOOFfqz19/HdVWkGwCkAhIgAydqDC7gJP5m3w/+IHmtFvMpxexwwOT8AZpMgojVBH7NCweYvhmsmwEuEQrBUwGgwmYxzx2aVwULHGeyJNnxTbP3f6wmi6m51j3O/ziwWLGcAt5nPgmZy2qj5QE/wn8UwHO6ygoLADXuTQrN/eLoTeB/S5KlXb9H9h4Q4JNDdBKkSzC1ZQN4irxt/hMEedQlXba3mgoc/cyGxLx+LmVRhw3LzLvXvZcnYziaWoZz6taTgiC60a5ECDB1rAmcmVKtQnFh0wt/FOl9WbaCDF8TUTYC/cxTvW6pBhXCbLssTA6I9FzfiQibpMMZ2OQJdiHvMgU7YCmHW5eRYQT4e86QVxzHlRvvKO5wgy7dvjJD/bu6/hNQ7tRNrXgD/g5AANjr/uPurtnRlE6weaZs3umQQAE/VMS4lntSEeT4Jzsv8bcohgA1YoLwt2lju//uBi1/uRapUBF8El/c7nAC9r7xWX6Zc+yOqEBUAgNI3noBKgE7H/4XDQDdKL3dNNEnDmDjyt4lgmRJfVKtGS/eS72ytcChp2naO29Uy6GTzdoMCHAJRGCkt4kNPZHub5cRmQrBvS5fnOexmpgBMPYCltISJzClHW8PQ78u+zn2BXPsinxRnB3P4xzfPRFFP4SaWyi4ifAuo8YCL2HhPL4CHWfd8QH1Zj8QNj3yn741jxb4pA5wK+/RSRnf18An+6c6o0DaKUwlxKaZGMUTqPoLm/CBRwZoo/6HWypKOdoLkQDtiB9Rs9f0FCYZAH5ujZ/6jB0jQWJM4OthWbEJ+tv/ms5QM91xCKAPnwUgzHMOFHxCzFDgIC7AFS4AMOEyGGqouPAp+yGipa2AC0z/nljR59TfqyG+Ou6JXuFpuWb9AIBzI7wXyqVQzwWpvo13fQiNjoeuJHrRoEYiARCPcd1vLjsNCAAABIKFEBiFgxOJjI2Oj5CRjTeCKJKXmJmam5ydnp+goaKZi6OmoZQYHYkHXIOMIyKFMI0nKawAH5JLnRkbFJC6OUaPElKbTQCWxwA5p5W3giCFJwevidO52ACISp8xL9TXyT+FQ0/aAOFAz+3u7/Dx8vPyCJg0hdbWkrL49JhMHkX7R7CgwYMIE446EQLTBgaFWMiwJw4AGkHh/wCoYKTAULF/G7YZMgHh0sZKj5xxYpaJ5bVQ2XZw8/AIiTSUETXeLFTEUQ9JVhQKHUq06NAUKhORaBjJ3ytgRqNKnUq16tSkHwO2YyqIw1GNMjW5kISIHo0p3DyqVaoUbaOSrGIxgjKDpzQkN1jo1KgBALtNIa0KHkyY6klBIzSaKOzpAePHkCNTRSdprDkACbpSBBCDkcu9jQg4rljrC7zMpljK6IRVUg1YfQFw1dHVEbhHA7raYCTDkuzfJU94/i25uPHjBp16BeAWUwWog1cgn069OqjNQAU1mVgZ1JCPzN9lcETMO8dCLULthoUZJ81QBhDj5KwjNolEWqXVhf9mvb///4mkgEABuOXzUmS6AKjgggyKFIkvmgXWRGL3sBUJLaPE0Fsj5ZkSggQ7LSQIZbWwV2AE5WwzkG+FdJgIhtpBooUgMzZo443zLPBJeu2BV1BQa10SAY5EUpVbkfCFZiAnHWUEWmFDNMebKEO2KJ8knRXDhAwsoDFFbFIy4gIIyZAHSQR6LcEikmy2mckGA5mJzQG08UhBbOm4qeeepBzJZ0HChcBVj1e281koMmSDHmkwBTiTDoeJ2ch3ZNqFUk8vevPnppzSo6mkt+gAVwCdlmqqm385SFBgw40SZkuXZXKYD+rB1Zo0QlySX4mWTrnfqcAGK2SKjbSAZ1r/jAqr7LKQaYUdoUvGKI9lQ0kBoibfMUKrJ8J5sk+eZ6qQAy20MeebDlsky+y6m2IqjiUcRApMR6csoCO7+OZ7iiyO+PmfiyBQ62CZtT0i07aRpACivZiQSJYmaG0XjL4U8ykMNX0RPKg6LHTrCSXyOXAvKAS8V/HJph5hoZLtrHJQtr6O+AnM5Wrib69LjobyzjwLEtSvebo4izI2qTdTzwCihvQ8MA+K8MqnHHAz0++Me86tfYYoTsfQQrKaX3Li9+nSZO9pRG+afssaYlyw4EAEu45CSNkHmTw33aZ8LSuF/mHNiQ8oECPuJ8slDAnCJxCL7lyOxI334/2tWaMj/ykwkSonendtCoGQIzR1551UCRCfvuEACQ2kgpLDtmPN0OGhsSYihemg107kszQmLLQnqYt3pu3AD+ZUPKJHRsMEcOUKT5yXlMejRj5oEGgjxes0dvDYT3VBscS422onBGNWCkIJ8lR99ugTnskOcJV6TLnWbIxzL4O2RgTYkLjMbfr8E7am1w6hSvj6R0DsNSEbTyMOrfahKE+o5FraehX+mkGbIUzjXAXMoFVSMD3tJGV3ixKSVAKzDEdp8ITXSeCf3KI8RT2BdqeA3SDSI79mZAqFOCyMzrTGQwBA4RFw6qE7PnC+SIBwYjlMog89ZRxmHCse3xpLDRYjEBM6hP9f13OVErdYIpipRQRAQ1aQCqYQYojALR2KlOFAhzsutqlmoJDgKRwnRCtNaX51RFQz5OjGJPJLjDYMpDKIIsNnsApybeyjM8SVuW8w6DnqgMcO8Qe3sE0qIVOgYh+VCLJEPA8XBuIbHFlBx00WZDOf2+IiwaWqB+3MY0/8jN92Mkt4OMyUOcRLLUBQFtVR536CLNUhvYXL7y3riM94Ym/e1xhpFfOZ7ehYKTkTIg8g5UnEwSY0N8GwdqSSgCP7JCOK2J18WcEt/zPX3wrBi3/MgHnb9ONbGhnMeKpnZPAU4em+mcHhKWh76SQMH+1JUKJcK3WjdOZICvqPkXmOoaf/+l/0XAGYQkH0op2gwAd+OEoOFiwpePKYDZlQQ4xuIj7BQxHFBmqOAQLKHawql17akU+TntBJkSjkiFSIUYeKglh0Y+nOdIoQkHoiTELFnBdtWlAfTCEpn4HIRe/VSZvhcDxMjSN+hFXTrP6plgS9V0KR6NV/uilOaCnaM/Kz1LJCkynEuKVbuXi3ufpUVrRpwFzCOArpzBWXImWSXv96nrvaBmlHGp/mKAYjqfywJZTqgJSmSdjKqqtY01ErIvtllnkMgJ8PtawkYKiQk9AqB30pqWhXW8zyeWhdoLUpkBQaSC++ZghhGauhYqdN1moQGCEAK5ToprR/xFZ4cvPt/yU0OQJ8tFG3opCCtfCo3C12oH3VzUBmiuuO4xbGu9VtxGz5IalsutSQ48SfYcPLv7MpjGucEdl6o1LVzT7DXxXQzGJPx94m7qA1M+0R0IhBgl15zxTSKdfXJODa/voRCRroi3Tmm9FErvaz59nv6FzZSgcTxAg65dxB/NpNpixgCpXzcBLV5o5JAhKj/ARvd/Nr064W5wtuoQBlN0S1nPhYxRm0l1RFFEmiXsKwERivKRX7403oj2IyJpuNxxNYn7TjVYc5I9SAnL4Tb5kTwCxPCrK1vcNGQkcOpWcOY1u4/XG5MA3cBoiHQmHZkPPNtmvwQXLzALY+eZj1xBtWT/9JRs6ers2OADSeFQLdg/CYuosmqAg02WFH4OA1L0ZfAXpHzH9QmsORzpFfK/qOIIbapGVOmAk40IJGizEsv9vkAFhlsjE288sKwjAp2jWV71BWm+txBx+L6OpTQ27UxQCmKKTKNy7a+DzgXUDxfqFh+Ty7TS77bJQXxITJKWQF0aPKndOCFiMbm4AfGHKVMXuJu+HJTywm4LbpEdArWfgxAVj3rgsYAeFuNUeYqNkGBNfbc4NuAQkd7FsoMFiWPIdAgWVyoSvd5ZMmCZTRKpB/6AWsZ6u2oaI4LyjuVWcKqiM//jZ457bFR+gUbEgcIG21z5y+X7fb1m9CdMaXNWj/HEmnBzAQeRkNGsBeFVvlBxfqE0BkGV3X5nO5ydIjet7HVFIAfhXKZqTVjDJpg6YkaNlAqpHuRsd8nLPxJuiRbH7ka30a5xtn6Aq4XhguHaJmIvuEnsletk3vPL79jVNdWeEnZii6yXxPiMup0snFIz7xOQSBAyj33soyYFtPlrhs7oMsfVdJ5guad2sFE6fWpLwRJa9KnCFP+iVt1NDLwyEEKccIGgOR73wVSn21zhgVXJv1QabXEYSzQ9ETFLvpbUYLnszucyfV0US/vfR7CfxcFlzhBFGj5jvHfFCKWCwdOXv1j0r3oVAUf97ORAwcP/4M3qIFN1ACDuIaAhWg/64erqG6fRVjx9lzgkc8VWvtBwpKZknxkB/UZywWBQmpN4DAg3yyc35DsX0rl3yXZRL5NQTH8ETCY3ybBAKUYWT+xIHy8FSb54A29QPf52C/Bwkt8HxwlxweuGSJgEzzoU/LhoJyh2KeQSKDB3yTRII6iAmpAHqNcHRHJQnmNoQo5FfNcUBr4V0z6FvX9ApVNYVVoX85JHB9ZRobxoRZRRPhcAABwTlOB4YUF0+7xxg26Di51wlcwAQqIFeicAENiIZlEw2ShYfT0WzvgIWql2kCZYOY4GI/NW4Pw4fAQwgoN3HiIYBApnOKKBQXQAlq9BaT6EYm0xx0mIm5tlqE+P8I56QJfshNnvg4Crc9EAiIZqGFp5hVO3QoSBgJ1SOJFmiKr4g9FJiL+WOL0+KLyqUEp5cOyfBoYmEKBciL69JNE4AWEMBxyohcjuhWXthbsJZin1BsukaCaygIF3Eo1BeNy1JJ1JBXi3B/4ngcrgWJ8fQX68VT2MIfFrcyOvIBOpADNvYALZiOe3Jn8zKJJceK15EP28ghLBNWguAYRHUEMMgbffFNylML5Xc6QsiPpiIg4thNsmMkBuIv9RY/8CQ1DraEgsBptKcw2zBf+miR+tIRHoB9M5eFnrh3uMZUFtQVTFBvOUVbj1Bu5ZVRLKksuoA8IVKR1DF2TCWQriH/REuFDp/hf021O8FmOBGJCYMTaLNoRUohfkHZIEERDeMTdQuyjzh0M2cok4jxSRD4V4ZoZlOHKwv4kzEClVp5R3/XlUUCjTciTmQ3ArancZ5kWQ1JigImffVRg3eIl5ziCpMXmB2Yc7wHGgzgingGP/n1gyDCXTunlATEIhJEWcqGMTpRim4Zg5zQlorZIKvxhjKJX4dmILV4AKj5ZrdgBHzZPJjGVDfgRdlyaZqAFYlBksWic4m5T6iXmtYBJxpSk1PBceyHGwI4ACbTjZHYARR4eOhxm9hZTAGhQoAjiMxZRbHWAbP5DZSJnEnzXQQAiHOzA2C5CJNEBIhYOz+Y/xCdiCycGU/HcnoegzCrEBZVuZF6CZ7oiS9plxDCKQroUFN0mV1vOY1xSZNqKDPGxJMOcgswOY8Fii+pgBEEkZ8ZFjoJyTe+RwxZ6VWaOTff5Hu1x1TTdG9uZpC3KJ6h2GIbGhUYyXnHcZacUBK58RoRJjMEloYO6hpQ8ZKD2VQ2KqMFZxINeho3ahgK+qSAyREgCqFk1GzDyEYGcKBEYTchCnksUpxRqizMBWtRwaPRpC186Z926Vvj9pdVmlVsBw81Oi36VqZWcZ4NwoHfZw029h3DYHiRVDvJiBAZulhT4ycSKg/ziTRVlqCNohHOYJR6ajFE2RTWIUef4xI00P8tJwFHmeRgMPp0pyhtaEoUu3ipX+pzVvok2bBqIaQTspQ+jyoVV6pK4blbJlKHrPofxTMEcookFbAcGXAL7raRypUBiXpuG8OVpVaeRZGrv1oLYKkMjdUfkwkARvgKfqcBoIUId0qF0WJNi9aom4Cu+FatPNOt+3YALzkMkFcBllpd8iqqhzlI7Ao6cNRWodd2XUR2yyEXq1WvbwKw07GC+9oORGBUBUGlLQZU66MMl2hDNSCpC4s+DHGa1TFkGQtTrJQ/eqJC/opnibWrH5uygrEaHpsJAZZrLmct0Mpeg2aW41cet0qWBvGcKpt98sCzUOpNjoCxFdOsUzF51Pr/V+JXsrUVl07bswwCRqyQpz5iPBh3JMkIsce2sgoQHwPqgLNCpI5wm1DbIPnRHAHqHPsGRVKIG/SETiYaaGx0IJ6ltlGaA0Zbtg3SNJ5VqmHqGolVDceohCh0snq7CT6wpYdLXFgqnrummYkoCfe5uLgUc1Wkk5TbIIswrrGGiXmkpiJKt5mLZwd2HFI3ur9JOJB7PhWgs0yCEvXZkVpoGawJYwNpmplYJUmKutVBMCfBtNJob9B2SAOwQ7PHufQZk30FsQlAgUnLu9BrlbwCDzQwm9vGipCCEidqX8/rHNIaveCLSXrjulb1tJ0AWvB4JrAmE8ibQdvZuXYbvvLr/1gzKhkIoK50K7iP92Ye4KXz+79FQbWKAAq36g6w9rXKiz12WBDbC8AObBQeVRWxZZKEaUdwuruFeKMC/MBWMSiCpxAxxsEiTLmYC3CwF7Q/ID3DVLtlJXrdO8IArCicQzt6gSmo+cLttqqmCqhK9KNR8QsNDMNCvAnpxC+JUX65qRDs2EMKW4OKW6RDHMWnQMEvxzG9pA+n8AGQ6IGDokl5Vygv20+ENg8FLMUjLAGxahvAULGwAIzu0AAYCpQ2FFx/BXU+bMZ4vLOJ1nz8lcGn+7eQYG5DQpoccCctrBAzm8cjFqUSS4vxCzFpEY64QBFPoALZADsus0gtkMSNWf9dbBzIinyQoZx1/pSvcDmnOizKvdrHKhXJ3wFPG5xV/usgQTGseKwAeTvK6cXCGPcMCYcecjhO/qQbTKA/5eADsexWhqupyImUXNTI7SeBctnHU7y/SlJcgcNl1KnL+YIALBDGKEgtarQBsiABZihdX1MX2fsM0NEXMMNkVKRXvTQWO4AODEegGgS5pqCZ+szN/hxDhBJhoiM0i3AMAfPG1dRJajMNHcEAECEBvdR9hHUk5YnDmduyOIK/QzgC72glDpDK7cBXXdVsZFtA/lJXN2PL/2vRylLGOrgRfthA8wJBw5zAR2ZCzQEdUWR7bixvjvQNaEaaiCqwgsHSRAH/Bbq0r2t5a0YI0ai3eERrO0b9d1P9zw+8fbTBbEILSqg1TghYG6GpgVW3Jz1t1dHLTw9UNzXouJUgBVcJTUucIS5o1nQtCg0qrKswkaGgXRcoQ+S7ZnE9xamUvrr8As5c19lI2DEElUNSUl9jQVFdTNLayVY9g7nszwyXSIrNzr+iEi5C2SkRafawesZRp+loE0Bb2DUpye9Qm81jRMbWxK/oVw4AzcaB0XmE2S+yxwJ8b9ixbtnCtNKFEp+8TbELyK9b1Z9wERC1wBP3vcZx2J01v069I5gT2gaIzysGunfZLzecEMoNvqnNruv5O90yyzJiOEIndAx1x1EB3a+L/9jxHb407LKg1pNLOLlu5N7eJGNYO4RBPK024y9/JN/qZzJuVyzF7aE38U3sHbnFFAKrEBuL8dfHiZx+a+DUARENkeEiCwlWUN0Bd4MRaFKjiLv3LRThHY2TR9pmDUzrTHMpDuEO1gBpq7rjlH4WOZUKgnwaHcWhmaioAdq2UawvMQH+4OJGU1AUfZlANIU3fl8GN1i4reEK8kdEPi1H1L5ztQiDFeUHSxZk2t1WvtJY2hCX/aCMwnL8t0fwa3kDUC6HJ9umXebZrcsloz5h6gGBQWXabb42tagnfJyjsQ+NzIMlueK8q+R4btfeO7Q1NA16zeS+jA0EExAYIDAFcP9dF2jnjG7n0ksvmIcNOIAI4ScbNLbUp0avg4QI97E7+fXEdJ3WoYxsjbBdhzBzh/ch6vTmfx6JkckhxKe11crdRvFYeM5PfFq/IqEyxN15ss5eKNls0aBgN2HhoK7IIH3dXJEZNpbMeIbgmMDl/8zjvJXHCRLLQDsa/gcdBMvHJpd4HcGgiLHg2W6hobztqjy9BQBdmDZ5qr7qARfZ3DxkVZKtjQ7KBV574TCkK8kZfITw7ecbH5LgbX7vMu7PQfGQoLCxFkUTCXULl+OYixZbPJIgMaAAwjGZxJ7tTo1ToZxt3j2+KJvbnmvvvkXRY3stizQQ4I7x3jhBebwCVf7/R5u+lMjAmv1GqUIvWqn0o38ZG4MiVXMDR7ItjoGtIKUrxUTUuN494wVDLfLqArZubP6H0aIj0UA/p4qsC6oeDrfg8cf1dqlmAuaeDCUs7Z8cnZLw4J5eEZ8+wmX9syXb8osG8MFa4pOYIAjMa3TN6P3cWz/+63hmHxPHIgbrgDx9u1ee7cdNVsMR+JCno10Z+Qxy9Zo19Jyf8YElZlz2dkVXtWuP9P5M8J4bCbSTV4IQ7cZGYx4++0sUysC7FXtM+ZY15sYP/LFW59zMiZGsDznmZOMXmzat/Fbt7A0zDXLlQjqsXb4f7FOOdkEpMINeJJPuwPdD+lrjcj7JKsJR/yb18+Fy21/jfXNNGpTNeyMDKt1SDAgJAIOEhYQPhiIyNoZMhoaChTgaj5WWl5iZmpucnZ6foKGinwSjpqeoqaqrrK2oRYMcrrOjB5k6OrS6u7y9vr/AmCGjjIMihDmFEQAFmT8ZwdHS09TGhwrV2drb3JwD3bvf4OPk5ea7JQC5nCiEU5hIg0xGhAU/hJHq5/v8pwypzfoJHEiwELaCoFwwkAUAxDGEECNK7JVM04VYlVRYq2QAEUZkE0Py+3cKBIAFIlOqRHVkUDFw4lbKnElzWpOMhqAQMglSWb0HDmoKzTZlXb1QjoYqXWopJjAJwQIwnUpVII5CTwppfCTDUv+OFlgpVR07y4dBTeIukl0rMUEMkgUPboK2kx7bu3h33dRXKZ4hEo9CDNnqgtBbfAAQHLtwI6/jS0ktgWgW8CQAI8e4PN7czQpHWytrXOrKubTpS5ofQfU2QV7DRyksIz5NG0BkFqn/NQZAZFkhu7WDB3uBiQLGhyqDCl/uOPLZTTwLtcsxZFDFDUYLM9+sBHijREa3i8/7grj0UMbHq+eMqDWoEPB9mreuAsP6+/jzm3qmzYNqTHRxpFZf+hW4FFiaUIJgQgY26OCD2vj2SA/a7ecThBies5swHD0iTgyGnZfhiCRu145MoBWiGQuDQEDQgCWO944o/p2EQIox5qj/444RFhKgbDvxKORAubgoWU9DJqkkjyjN8pBOBOG45GNF/ZJCB1NmqaWDG4SixQqX5eKZSxshtAGYW+bFBAZG5ECDKAcYqclWadZpZ4OrzQbEXzIpcedYzllIw49A/mnooeLJGRkHaKoo1AeIFjhjYoVAGumlmDo2IGAAWJoJlAglhVymKk3a4ScN1HjUCRsFSuqrsK7UKCFDnCgDLHzGaugNe/H1XCrD6CrssDKBOFcA+YSkQTKkkUmsQO9UNAKAnqQoljvRPavttuPEBuQBqRGCYAN5zjQDtwPtJcWbl5R7KgBZXeItuvTWO40GHIRrTKBFLNGpqyLhau8+C/Ki/9zACCfsiwt7+WkIDK+tdJjC51gRKEMiUqzxxuZAbEyz15rL8UCsBjnyyShLw+LDj94wb8r30unMEEJ4CPPNOC8XQbM5c2NWz0AHjd+YK6wstC/RHq300qbM+p9InGIcLNO0yEz11Vjj9VLWrIAww61chy02U2OOzUpsHp0ip9lst+22RD9PHcrLb9et7cFmVtpSxHaDUp06P/ctOMc3mdRAl4OzhUDijDcOjGiORy755JQLVFHlmAtLSWVlWpU5KFJ+LjrlGBc6us2np56506rHq/rrsH8eOKWx165kr7Y7Fl7uvPfu++/Aa2l18MQXf3IFSBqv/PIbh8z889DTe/959NRXrytc1mev/fZaFsA59+CHL/745Fuo/PCJlK8+hot/pHycmZi6/vz5tR893fTnr/9yNaa3//8Fcor2BAjAAgbHeQZMoAIXyMAGOvCBEIygBCdIwQpa8IIYzKAGN8jBDnrwgyAMoQhHSMISmvCEKEyhClfIwha68IUwjKEMZ0jDGtrwhjjMoQ53yMMe+vCHQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxjztsACAHeR8DGNJDAZAKIRe5nURm4AL/VnACALDghBJ8QJCMzKRpErkAJ/AAAAIQwCAsYAFQCsACWECcJle5lkReIAmhTMIXVDkAA2TgASXwQhVOSQRW+pIpBwhAA7xwyhLg7TNEiMIpVfnLZqokkVYQQBXKtglX8kAAXXCmNiGiSGYEAAsCoELoqhkAJwggCuPcpjrNkUhipmMUrjzlMddJT5gEgJgbgqcwT2mAevqzG4nsggB6CZAAPOCcKUnWP+0YT0muoqELjag0ElmFJLgioAJIm0Q3qguM+q8SmARFIi0QhZAQiqNv3Gc23yUKaArAU784KUpX6VFMgMEUI7VoMFSltpnGkaJU0AQYhnrTanmvBBmd/0VIfbrOeMLUpoMoaieQhU1XZICnSuXEUpkBCVO8cxZfYKoGMQrSTEjVIhdYQBSisFVftLVampAkAQlB0Ez4pkn9NJhYOZjItc5zE0PNRBkGW4YxdMECYijDKsZghl/UlVqGcGiu3NcKCWl1rxT0HgGwqVFPgEGxlwjCIIIwhjEIQAz36sVXUeejTnTWGwCQbCHCagnZYvaB3muAAL7wWpvedKigtYRoARCEIGRht2M4R167atV2AeCr/WOuB6a7Cdo+jXa3xa1BB8rMSxA1DFkQQxgAENxKDLe4WajCGZIbDcuCrrr+sER6ulvW7KIwkRF4qQDTOVTwBkC85X1Ecf8HnAULrHexbjVEKeL63k5I6aNHeax9N4jfl3Liu1m4wJnIgAkOD4IMZJhmYxEiU3zkw7r0zcR+zTfhEHJyoBcGABjAi9QSI5ICMG7FW2fD4ksIQsKp2HFLK+HeFjuQqtb1bX+zEE0LQLgpAbiAAFKMih1jlUaU/eiC62u6LHe5a0bG4EiDegnURnXJ0ZQnWgJQ44jYOMxbbGcpM5EFGQ82C2Z4p5qb4k0vzFkXQu4xnL/o0kATwgyNZQCbBxFKJ2NizG0Z9Bj3meQ1r1aaTULkBnIMkTdLGot9/eRUF21KHljAC/YzSACoUIVPGzmRN7CwN9h8Tgsk1QHjVKmrXx3nAFOP+gsWKOduDXCmBuCIAKsWwF93LdZ4rpbP+DX2Ak6ZmIMhG9mbrjSJ08nsKyaSCkk9FgUuQABwA9mbpOx2mEf6Z44kElnSToCUS3qUdobbpF9WdxVfTG/UdVMQuO4CTDULznPrG7PxRCdamAENeOO6lgMA97MPbt8KO/rR3vTAAoAygAwgC5YTp3jFDXpN29rsAKDRLBFC+VSR8xqcFqDmo6MMSlS73NX4hWUVUhk6zT5Aksu8ebfxG1RpJoEKlfzCF7CQBFufM59CH/oBPtCFfgOgCqTEAhGuHPWDK/Kqy+66EgMBACH5BAUEAAAALDgAXgCIAwAChwAAAP////v7+PHv6fXz7vn59fb28u/s4ero5Onl2KKrh+Ph3K6qfayuhqKxkKWmfMnLxPfy4OLm4LCjc66yjMXDr+3p2czHtOLh0e3y7NzZzLmndb68mc/DptTQwf7++b3CotbVyt3Ttba3kpKlhpCffdzc152mhJqifOrt6eTdzrqtfOrizc3SzdTY08nBnNvUwKShdsSwftTMub29qperjLixhcPGvPXt1srIp7y0iZmbc7/IrrO8nYeaecm7mNnj2fv36bfEsNffzbWwlau3ndnZweLdw7meZZivmMCkap21ntjKrNfPsMm3ieHYwsvMsau2lIahhujZtsi9pLHAqMWqc6ydbMK3kc7XwsHOuQICA7i5pfHnzLq2mtfDmcvRwdjJos7StqqslO3fwv787xlyzaW7p7zAu6uniNS9joqpksvbzeTQqLe5tsDTxLmrh9Tc2aqvpSoqKrWWW7XKveHs3s+zfq61q6CmnHaRdqnBsYmRbHuagllaWktLS3N1dBcXGDg4OJ+TZYWFhZuflZKTki2a8r3m/pLC53in1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj/AAEIHEiwoMGDCBMqXMiwocOHECNKnEixokMJFjNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmz5kQBNnPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUqVIc6qWLNq3cq1q9evYGNeDUu2rNmzaNOqbRhnrdu3cOPKnUu3LEaEA+rq3cu3r9+/gCfeDUy4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+eNJgai+WxQggEmpFOrXi35jAEAC0668MC6tu3buG3nRVMkt+/fwINTpe0SAQAjwpMrX04yNnOOQFDeIPK8uvXr2Jt7hLBQQITs4MOL/x9fc+zj1+TTq19Psg7b3+jZy59Pv779+/jz03Tul4D+/wAGKNt3hwlgnoAIJpjdAgd2xN1ACcDVIBUCdaHghRhm2F1cBVCUl4YghggcDQO1tVBoBuUhBAz7eTTAaCs1KOKMNKaWwUUF+cdGVae5SJCBBIVQ45BEHgYjRUIalCRDIaTQGAtFRinlXu5lZICJEDbUwZRcdullTEeiBWRIKnxpJmMyhhjfQSbmheKHSTlpEgFyIuRdhQfReeaefD71BplB7gjbUB3a6aBCcELkH4QW9Onoo2ZBMVAafKlAXQAOuTBYjgUgkCikoIbqFX8l2BFRmjyhGpEGgh00AwCqZv+1gHGi1kpfHC0MqtGaVhK6URDb/TgmV57aaixVeibWoQG8KiQFVGW2tGiQqA1U6LHYYufCWhl8sCsAeTikxQFOzdBEQdGtFJsHG6A2AHHWZnVBtvSqNwasIy05kBwGxWqRv7/epNGrANxo7QHVCgRwvQw3nK++AKCAaJ34FvbpQ906rPHG/YY0xoMqJQvUtavSyvHJKE9EXcU5NjQtTS/3GtHFCvE3s0AGV7RwyjyfSSJJUvQAm6QmmYAiWhkrtHPPTB+7dMQORAFaTx6IoFMBJDet9dYTJQGCQVWyFRqWdX1IRQfecq12ZRT3latCO/iQ0tFpRRjv2nj3/OdBacD/EUNDLA4MB5tRNfuf4XknXlKjEqX9kBx7APBzQYwn9PZCP+xw1mtcbIl4eDErrmZXpo5UBHIFraF0RlmU8VToNXeAwRM4i25702isoYfkUu8Lbg0DEXi3WptaVTnLBdN8+/JwyQFGrhCESVW6qns8EAjAi5auQEMo72HLJR5VvM5ZM2/+WyB3PFUIZ4QUwwMjkBCxEEBsn0VE6ZeGfO3qUgQl+BCJlsJk5L3zGZA9N4ANvwSSwIxE7iBYaMIQ2FAFBvZmBA8oWZ5aYrMfCU9RgYIdrFAVuILt74QHTOGZznCGIcBvClsiCBYAYAPuKaB7HUnB5Vq1kDT8zyZP00sQ/7MzRBVOJglyQxf/LKeQE6yIAwnLgqRYIIIRSG4IxwHAA9VXPhzdDClt+8uwjEjGozSQgTUjzs6kkIQGNAB7L8iBFo5TBCj+rgFWQyMAwRJGHAmBMEVcXRkHKZJwcU8j5DpIuHzggwfsQAEM+NoORqCDOGoBg27kAQAuAAcM5HCPOtPOt6y1w85gjZCo1EkiFck7RgatgjYIwxGeoIAxEAEFUdCce6jwLIWU8ERt6+BNPjg8l4kwAU8rlm+EKa1Uao0GedgeSbgghCiQgARLWMMSTNWACZyAAiWAmiaHkM1eUk4wBMuS4wDlv490cTMpoNAhi7lEd37OmWpLJ17shv85BvBBcxTggA/qMDvqUGAIOfgBF6QokGcloSTMkkiTUjK5mf2wnmqhwSpBySN88gxiSHpoQvpGgQs8jwc14IEQKhC3KHCAB0WoQ/X2lkWG5Exg4iKcWGqKpxBM9J1IA6q6LOTRonZEqHwDXtU26YUTeA0AjBwB9trHQDBEjA2l09U86WYoiyAgNBc9iRdqF6t1ck8EEVhTCkKD1LL4R4QBHJ48aXfOQALHrkadyykXsgQtViCOUMtgUx1QBZf+sQoVxGISgHCVAmBRNHlaGBl8IjKM/Uinl5WQlbgqkB2wYJ2zymtet+XOhhRBUoXFwvsa8E9IYgB7Umvf7rLUsnv/cRSEG5ShVgsYyg0prJ5hpadm6Mo9k4m2qK5LyB8lsoD8GcQHRXBpA7RYAgqk4QURE8MZpMAHTQrkqTD4wg+v5cnMYpaHkzqCkoTrEVVpoG0GmkFwN0Mw4poMr8dVHNkKQoR5fUQPJ8CCG0nQBwDrgIbxa2NVI8ZThEz2e7+l7UtwwNs95oU2MLiABQ5wgIh+BgLwMggx80ticCVvniIW4EL+KeBuOjIGNeRAJUGQg33xAaJp9K/+RvIDJwiSIBwuSBM2AIAHy3cgCRtuiZesRL4RjAeTde7jHIngKzDgBDvYgN/ApdDsdVePEj7vQl7FKoXRzb/KRDFITFABhyQr/wJERXIH2kDU5uLgAiQa620Xg18mm6+UY25ybkc6yRKEcwdC4K4/faC7cLJRIBwAVhrOhZAkGa3B6OLPAqaAA2EZLyQefogIfJw8OaXAAlOYwkE64IXemJczZyQPaf1MFjwQRHoipSEfAIwXPL1rIVyoQV+lcAJwLaEPRUDBA67sRC0W1rs7SPL1iMupjLQZtxzcKKSJ2unSSJkzjy0Prfd0bKoqkbRiAAEHkKO5uz3hB0MrBAohvWspELu64AQXOJV94xZeNwsceAB2KafeXyGuU6+e03wL4lNOLRzIqtH2uFUo00rXlAYMLTJZi9u9ac0GIUjUwyMJjOWIxe0Eff+I3AS94IQrOEEG8C5IBcyKyICh66ZhTkiFlSRAFRBzjH8xgSEnftyPZyoJ5lbiYisI2UonEgSCUiTSd+0AqEosdkh4+QjCrSl/9RF/652YuEbsTrIT/ex8aQGgFSK9g4QTqgGEAbAQUgc2ZBPlCpBfoK/sxqFRymUchV1lIVwzhsiOSQPxAK36jPbG7wXjdG8oyeXHHaHGp7zKVXZDIDCGF9iAAVcYBIzD8IM4G6exDOencXFGgKyFWo8yKiIEMN/V7sydT193/JCmE3ZwVbAG2YuXwcimBS04AJtXtzYlf4AELb/vxJJz82vWCfRTHQzigUIIB3IqZt17/8MEsTf/ppUu+bc/JA2IPe2t8djNQbBWUrYViAhmMIDXC0uHOSCm2SWSKK6uiHX0wgV89n1bgXSEswQJNFubJDxl5gECSEd7EzcOIQf/1EjVJFUR0wMrRQYqkAOeZQExB3YSwHJaZVk7VoKu0m46h1G+tWcE+IJnAWIcsShl1khVFzUKY2u6cgJAkCQZ4F2UthBvwD5xA1PT1XS0AgXltTIMERuTZlUZpmo+MkIMV09zFHbjAzhUiBMxcyCr130wGIZm9IAUkQc3BjgoMmtAZlVNpxAUsgd15ANbEjQ5cxeJlEDJtX2CplUsUGYCEQYsyEQIwR9mNTtW6Crd9mM3VxHKQ20i/8F4YhiJIDF0atYvqHMcbIgv+xURUiWAZ2Bd0Adpg1NTpEUgH2IyaZZzKIgn2KdAC2hm1ZZwADAI5xJkhIdeYJgVkLiKksgzgAAdArEHWcg9jzUbIfZaEgEHgfMxcJhuvRMfB6AGUkgE8ReKx+FzJnR9yQJSC5FWrKYA3bUwedEsTfAFMqM094QoOaRPXrQSO7d5GIIBmdiLT7FF16Z9YjB3gdNm82haC+WKdvBNP8BasIEeRvMdAqACtBMBrKIBrHYEaVUo9Qc+CMCG8yIkeTQ0iUeKtEF6eTRB/DQox1ON9IMzA2eN8MhBE/E3rQghREOP70GAgCgTMxRuCXl9Dv8hb6JxSTLmgRkUJAYzL92mAawiAuPVRQ2nVWunigQRZxXigDJHV1LzAQRAiSFQY8XETPx1e26GF+/IiCFmcTA5lurIEs1WMBMVYRWBBiQyL9l0fFWglT2mPTFkAtAYGz/YAVCwI6d4gl1ZIgmEeTdwBNZVS+DTeTgjJCgCA8djOTRXljyxia7CjkxWfWQpE9u1JUqIgGoJHYjVapMGaTuGarXYKQnwLlzQBQcAA++lAcoGA5MWBBGQSDeZIx24RHeSJ/RnQxmIcwVDBJ+lRyhCcxLJlFaBPGlCAA/XTCtonGW0iyXWAhU1KQIGANo0EgYYjHVXR4jHRN9WZCYVIeH/5l97tSRlAANc4Doe9l41NQBjEEkyVpCwggBeyCk6BkBoBSVdQFRrYAfadiWMaS2ORVQheI/s5ZzWx4rnqD69CJ1M5h5ZuAR9FRJ9YE5NqaDfoYYJwS91UI1LQJA8cIngAyRvgxHG0VwCeo0QApydRgJGMAHmiFUQ9z9Yo2FwJpareABNhUWhBWlocwQ0gGca5i2zIpusCXsFlFUHqog9mi/z5n0O+qCmQitR1zsfMQYVynDoQQWyWYYEIQeqc0mJFiS8uJEKcwRiAIsJMIoLQCmzWXzlyEAWgI2zV1xm1SHUZogX8ARdQB0sUmZMwIGUQwXKuEk5oHo2BGMeoJDM/4VTe5aOIkGfl9l7S6ahuuUR34QCwZd46cJYRwNXMncDf8SS3xWiYeNd0cdEBBCoCDZzF1aQErAlCDBDMSBeFsKeYOZpDcQCbsJABOAF3+hgTUmoE3AFcSRLSGaoUBORJqiiKjYwlAlKn5JW5LM8w9hbUzNuroYzElBsHmFLeacArLRJjlWmpYEAFXAGMHVy16Spg2imtBU4i2Jd5ahaL9AFIDAGvFoATRBQRYYDCeCQv3mrocpEd1asNvBgJmAByUWVKtApTNBjNmBl26d1+RgzTwAsPqikNZOIGaGQbMWVg4ajTzqBNRGtobJXx0mAlmpLFroReLBlDJYibMB1j/+zBFwwVh7YWr4nNZPVA2/XpOckoEygYfm6AhvwSALGAXN6jR0AsDgzAU5Ania0LLEpPHUqp/HJaZwafZ3DQLTTA3x3r1VrkAJxXVDSYS3hgMYqstg3PqlIeJb6iI8yt5M6TSBRAlY2cgq4k0kHEdw5s+BiBFbjAFAABTRGrhGymkN6eMClQLi0WkgAQ3IkAxGbqgKhBDLglLiKrgBLACDmBT/ESTz4NYlHuCTDYXRVAQlwOjJwYKUhhU3QaU3SAnajI5BKnABjAuo1SbJoObaIoKk3El94t8xzlTSUqR8Bhzd2hvx1BVYkrm3IEJ9JY8tluPJWd2jEnhzGAvlXBnD/xgLcAT0xRylY5k9623x0BAdqgBrAWq9a9gIHgAFGA5ULJTtl8Fdn0wGjeEVz+lJZsj0JEJIFVQZUtJ+YmxBXMRpzajhcqMATwQJEIICdcgPBm6pYBDk5O094wAPO8bCeJorNmhp2qxjDB2Rf2XiPtFrS2xHLlSKTEgYaKBE6aEWiSQJzdLnimqYeJHFApmo8sGx8l7wMsAIytgE9xgQcZsDva6wVcLhQd0sK4Hk/0AET0AQw9EMz9AF4xqfhI01rKE+JVJGl93eIskN5EbeO+C9MlZgYYAAhqYMD0Uawm677ZQDpQ8DGGxNxuzV8UHLWGwMGuhF6QGx/coHPUgV8/zC7NFwQe/A1a8BQxCG6pdaN8glnVibERIwEgEhUQSBfBnyo+Co5psi/pJcGV6C5OoADqdYEM+AFxrqojAq4XfBL+3OitFKRcJxcQHatgbg66HoctAuUENECvnm3ucmgMEhJp3UCJGC6MDsQymZbOvCTwHeFEpFS2ZRFe/BQFERVnlJ/wVw7GDEs0dEhLOd+JudGoBd6PGguG/ZXyaN4hvq0HhBHd5BFfnOvRnnPRSxBaUWUfqgrjhVumzQBm8RP0wcbX1uFq9mY/FNmr6Fp8CqEAdu4QXgnbFUl1WcalRiIbUV0uAqD42sQICAC98qG1ZgRa9B3imZyglzRD/FAb/+gBc57HGFqh/OUYaroBlb1BYAoxJDUWitAjJ/Mv6l2lUbZabwaIVggA1IoOfPHao71BVPwXgQyG6v5m4knKBp2HDAGBzjgHSqQABfABA5JiyI5sn4pp1y9f2Bw0VWbXWy9sL9reyV7dlDJElFqK2a4bEkUjOlSB3mxwR0BtNbUSIeLS1H3XTQMAomGyqK5vZsElFTwYGell+/GeqjMd5DkTeCJZtGiAWjFBFbTeoMhVfM3S/tJBgxJmkYwd4xzYVldZkFqSzlAmFqGA0Rgy0cWBBHybRN5PVIVsLH90UEywCsaSWXSqXv6ru1FFEu1McCdoMeVs+4XP9UjmoWFdMn/1sIOlKlFsF1VZxG8kZpURFxA2wcM5MEAEAZYC9DzS2YRO38ZiZZQYAN3sAKfLVAPgMVnS2lfVSFpqyNae7kHDLY6wASd/D/cBG8KacqMTNeDkFmvUjlxq2O7odzvycnmAngM9z75SIx/ykwhiSQF95dEhwDuYZnjpgFwYANYoG44uGC/w1AK8MIWUQUJBWMD8bKWkzvXNMdIawUhCJq9ZGinEwQpfsk2JLEBICf1WyZYQEVZJwNKwAAuNQGqFrAEMsDxTXCOu9avwnwAwMqvgnFc0DdRvdlIdmcU0FWchdz4UlKMwlwe2Mt0HtKWLLxltMZe1YJLWkYuYEtE/Hwy/6daabpsHAECSHt105nABfHZ3io5Lwfh/6jNbyACmRwGpp0zVImWB3aQYIBwT2nAMh4GzdcGXxADQAp6sAHGQZArnlJQ2Ai+ekmFNFTWPgrLHNgonFSobDcGHFtcLqjnmpKFnSrTRhfnDDdDeVJRKqsyp8bn1q0xsdHXjXcD0UONOdCuRXzTovg10VVDFrEt0vntCCY0Xpu469eJSg5dfdMEmtNwOdAA2NQDdgTtQyaoTzDVNAAEH/QzxuFTZaApbSbBFPsFSBwBRbDInsSPVlXrowaRRMqH92LWdtNpn4yN7X4QbNkxF6zMCbGftD5+EOCbtTnLNMRTIEgHd+CxsP9IJ0SZNnPuMmHZqCfhwH0yFscMzL3mUeddXVrXSJ8HQT8ZWBWOJBakb9asOdhTncYGXeVYmFHFaNEFSQs+sfl65++C5VagZXkkATgEIaStXgJIIFbN8FaGxFN9P2XSArTjgKxNLl+AkIsSAWfjjWM/kUcjulJ2NIxqNyt97ABDqJSqlsJj1qxnklDNy8Kntp7JiylcWgxzaZsFalzDQjHQfM5XxCN1d+CufGtwb++dBsAX4ELD31D1RpLzPpGL78enWgjmr1TQkJQMG0pAB5y8YTWqxNaCARslSwzevv2qdZ2WxCUOKxXw608AhWBQktwxK0L55qGOlrDBIsq5bgT/4UOsN7848nq8nhA2I3sLCVYN5QAvAOiG2uSQSv4P58NrBplMYyCS2bdGFT0ToARqABAyVqBAsWICAIQJEZJg2KAGQxIKJU6UOIbIizQAoigg4aDHCI49fFCQESZHA41OYmhEGEPHgxIMVJ5AQQHFQo0XIywAMCBECwIdrFhB8gUHAYQmkuK5kBDPkAocEEZISuMFgCc9b7AIg0MpAoQtEig0kNQOEAAcxhbwMAjLhRAfPgBwkYYD2xlJe46hWIEFjCM9eVKcmIIwQgE9FSfUAPbwYaQK4VBk4/EqYT5iPlh43FliXsIFQgNI7Nkz6McFRJtm3VoiGtexZc+mXdv2/23crDOQVagn92/gwYUPJ17cOG05ACpsOGHjyhU+D6RTzEPwoYIdE3aciJ3EQfYYBwEwCN9gxMsSHhUk4bCdwgiENBw0jLEDZIwiGqr3eSOBi/I3XNBLuSkQ+qKrBQYrjK4mvOBhN+UwmKELujS4YCys6PrABAyU89DDIVZDjLMDQrAIJCPASC0yiVIYY6WpIKCoNM8UHE6uA5RrQAQNpkpoq8NCkECxAXA7wIKjCqNKIhd6PO7J2loQEEoqq7TySRpNY8pHESFb7EowwxRzTDJfk8GmCVawwbyIEtruOpquYCA9m6TyLA8fAJBivA2049OgEZh4AgsF4ntDoxooSP8Cre1AaGA66VAEwYc+ksiiCAd4qFCxC3IQISkWDqjgi54M6HAiEVYCw7DlCkSoKTUmsFCEMjzAAocCPYCiiSMucOkFJiqQEiwq4BBUhTNQALaLMgibsjBdE4AhBQwrevYxzn5rViIcluKBhWtF45CyFEKYEK3cEqsAAGkJu6HMMW0E0zAiAoP33nlZpO1TfPv191+AgYPjBSeUkCFSBiRqs6XwNLqpijPu1FNPg6wAwDoF1LTKCzZ01GIPBzQCgYc81ojIvItrsO8lm9KqAacjM5DyBTIiOOIHHmOkwoIQsBpUBAt4FIEMAC8yAtS0ap4BDha4StKCmhP6tEEQpij/kQkibLarJKwiKJIAA0QjIMca2ZpIRs+QGiwP2QxrKSED3H6VtJ5LZfc0dn8QbjMimvCRMcZawE2FgAlzjMyGC1c83dsO70xwxBaXfHLKh0ujUR040C67ioSYmCPpyiNIPIryBMC3PqQgr0+E1VSTV4cz/iHNhJZwIE3R6WQzLSgcjSIhURXSwFjhuw5r3TtIzZD3AknVNQtp+3aCaggQ0DuIuRVSo42ecMi2RAuC8ACheoMI+0sOIoA8LC++XCwOCBVyvMUBW9vsR6qeyJYuxg4f23yFcGF/PjlOAFQAn1oFjjhZik2XKvdACAIsS2+ImPt0w8AIZlCDlBuEdt7D/4ANZEd5ThGC5+AUOhSWgDC+WcMSInIGm5QgO2vi04GI8ADfZYcJ47mYHq6DJvLQRApreM/voFAEPUBhSR3wnmMEUBbgqUB8xoJB1o5Ahi4IDSFTw8GBYFCBHfAAJBN6G1aqloAb0IAFd+PfpqL4pSwCD3+fIVqo4rAiC86ljW2bkfyyVbfSwGAQFMIWlCDghSZgb4N/SxsG4RamOy5SksA5A1vW4KXIBZA0YXPgJD35SSttJIjSORgDjuYUhOwhZY+CSaI2sKZLlm5PPMxJ6NZUnlei5zvjGcR6fLhKFM7HhymMQgnqIAYv+i1mPcNAh564xScU6wkz0J/jyICFKf/EcY1YYYIM7nCHrpWre3M7gB49FBkYLMh9XUKLBLYpkWYpxXCG2ZZrstKZvpGFRYkpg/h69kwDqsFu8rKSBG5nOPo9MzWP1NcC7QdKiIKSbLKpIJEsGFGMZpQ2NGFlTSaAhQ+lkjsLuY4N+AAR8nSmDxJpJaAchqbM1ZICvONTShV1uwds5GIY2wjIPKWVqACgCSYxQvh0hRhzSYtwx4Ne05SJAw9YrwxhsEIYbsaBwDTzMAlY4xvSGJ9Twa1LROjfXLpVyEzSpm5aapEDEaABCnEyLxfgXt0mqhu53YYGOmhRM4dkmqCqs6G1qZZGDatBRz4mkqZJLG8O+1jIPib/D2cYWcb4OhGyzgciJH1TSEYqyxLQB4XPqU905vNKHjqqA7HLKZowFZ7OdtQmiVoj4eqmgRGCqkRmHFjNErCsHvXICxzwCxr8EgFfTUAMEspQVAFQB8CxSlMhhRsC4sZI8smEuk9K52Oacta0ETKTKrCqGC7K2Gu5Rpx7rJ/fdtYZcdrrjcJZbkHHF1n8tsYE5tRWZ1bz3082Nr8D9pycHgMxhkxMwfNx2GHy5BuN9EmGj0KCmrLTQfIYGABy+iZMUseRms5pPny4GHk4gIUdJCEHZoSrAVrQvq3OwCVOmMoUpra0G37hmirgqt42sMUuQHV8PkmB2qKXBoEQ8n5B/wJNXriQhi8osq2muk0/2+i1wkqECvAdEZf5iJPZHK5TeonMB6oYZP4qyWdTkbJjb4OaAcd5g26gDYDlfOfIUqG7j3mDZh32JoeRoALvqp2eEpwygqxsxg8AlJy+U+E7IGE8IpCKDBGNsJGEbiOaVTEI2mWHUeUzRrdNS0xzQIah5W17qO4WIoHVBjU4wXvfyhvs3kgEGdh4LhaSTWnO14Gs6DkBS9ZWBvJqmwvUkyIIaEojjcPjtgLPcUUKTQGynNbG0WChhJ2IPPH8bTkK9q+nS5t/vQxudGf0pOTL2GwJctmFABqlrfRBQV7JOkWrLMTYUUDqwONZW2K4oyiwHf/5QkWFNlB6BiYYAM+GcKSxPMFVokKkCIRF3i6oYF0JwNQPjJK5XWUhIU6QL9wQ3k+/Fq8sHkjDqZpdv4nsgF97qwN7gAPtZZtmfplcUnAIYK8BgC1B4XbWPSFzV9fIJayGW3q6ne7Q3jyUftx+etUlZzLXzpSj3yHBR+K9yp3WeyDvTpg351TvnNp7lPxm7UsQzcteTtjENogQr956oKlMk24AgIAcivUDLNo441QA/PawQLO6f6FPVp1RU+DyVnvhYTRbvTa0GkgZ4P3OzZh0nLejbRsBV5nosXHns9dlddSL6QOekx/V947J9aVe9mU6QxLE/qjfWVoiIHuICg3/neBZhidN0SFtTTgnOk4z2CFwAoDta4IdXZbgI+hByPQGBoU0LFx8yukBR3D/hA14KgZZERSl1UAHJ3AADHBRgw1PPIM2xyW4TkJMJ3/zVioh3ef6JBMCxn1eyOiSniOOo0kz1ngXZZs9BTS3+qGR0IuS+ltACYQSN0iwhOE7FTkMk6k3Eviw0NK9NKEDOsgwmZAOEnsZHiIITIkleiuI7QitJZApBhCJk6qCkGGCWAO5Iag49rMlLAi/DtCCHZyQYCGvgrECNfgZowCCHEjCpSEa5einu5IA/8uR+LGNylucLJQcebLC0Zu8TYI57JKNMfCbMWQNJpxANQTDzbO//9tokjPstYA5ti9bw+KQAlVqDTlwwd/Tgzy5CdMqvtWZwfsgiJo6KSnQvF0ytBjgiA0MFPigO9yLArdogg6qouoLFhwSih+QASSAtO1hop9rgoOANU+ksTCYgIwbAycwvDBQOdtaI2p7HMA5jAC4r3Pal3PDwh9JJSZ5oFlkrC/UkNoohAfwGmmzp1MRkQe0w8pBm2EEDhkZm3LDlrioipBqM2fcRuQgQ7ejGPKpAhUKIT8ZnRKzpZQSI+jYE5TwM4RIgrQDj4PgN9hyFPQjiWUBgAMJA+ISg+VQAgDwJh0LlsNjIhwspRV4ATT6ApK7ADKwqun5jJdjCTEUvQiEkv8eAMDW2IH92cXZQ5tbnA3Psxtu9CTY8Aw6c42TzLlHcg2gaBE6BAuCskheLEnIQgMIILSE6MBLQsTU+sOVyKlz3AE+wCmTUhZDLCOlXAGGGR26I0oQYo6NKInw4wr9AQM1whUaEAGuHBicUTheiTR9tCGXWIGHVIzGAIxxmhsorMWpwyOEupJCYD3csLbn+r8FnEnB4AmzMY7dssnJ8YDF2ir/ih9qZJy4rIjKaUbA3CDfWwjUORl6OwPKEolzNIhEG51GJLubSIiWQUGWSCG1iwjNuQIdSMiUSsW3uCYQ8JnpIYP1U4BXM82EW62hKAkbU4OqakVucqp0CoIOeEX//MGR1mND02g6CgwOvGxMcCmnxnw6aASAikq6ljROTILL6IxG4KBDKEmv5/wXIei6d2QI9+iIIUqWPTGCIyiCoRzE+hgBD1o7BlOIm0gPnHgPlcEPVPIUokgTEaAqiBQ8OEjIw7uVCOjEGPgCizOjVow1V+kANfCe4am1qehIp0E1YSQ9f2FMBfTOtglGvAqNwdwNvfzOMjFAVAqSKuEJuvy85KAfEK3D4kDR4rhCExUONrDB29vMDUyU+eiBKqiD+riJYvIodDQwlcG3AJoU02mTJchIHqo97qsXgdyAaMqcKShIqQiD3mKCLiiWWBOqHGjE/1RQbspEROKxdFrN/y9sAvDaNuskEw7dPGwrnDn9F2qJqsFqDW2To7W6UXzBy47RCCuDl8EIuuIkTDE5PTe0vM4YSZoEVNpwg5XaSZrwCJbRE9PJjLS4NAabsNNKSNZySorc1JBxiK/zzE37UqzQDg5QzWRKi29q0FVrgy7qAi0wr0nTGwjNOKKggyjDpqWp04UAKQW8UypBVi2Eoh2SVMjqg4yED3XCxcfZU78kDTqts9b4I/1CzuxxVnw5Tz2pgnNcMakgwc3ayXj7ndMiFEZ7Ditwjg/SNF/yww+TSjspFIZpVx1IpwugMIPZEVLczSvoxDvwrdzsABAIggPKJSUQKFTbgKrKnmbjp/8eiYoxTR4osB/9wzYqXNEbAaVG3RsjiZs+BVeMArHX8COzGUB9ZY3Qiz3/0LmQRcO2oYIzGNS7ga7zOhSUhRIXsh1xFC19vKUS4zobPBktOJ0hGiJRShMKwJ1B2I7i48B0bb6ZSqUjYtcHWAhRgh7uK5gETT8QIJXTdBCcKYOoIL8j8KZImwCGZMgumIBIy4F6CiNeU0/jocjtmg0GstYbVdbjQApfs408cABt/NlFmgz7YEkMfK9evI09SNwA7JcpmRK20aASBdQWwI4SbLBxnY6mPIFEhBiJWKnmsCnNHIg/ecH0ODR25A54lDdVDSIFgAIJUc1XyqIc+A+Qssr/rLxYHuoib4omGfjSeO3asLAPr8sQahkSY0OaaoSnfoEiDdUNfBHcwtG/PVNcT7ocCtA/Bem6MUjAP72SyICfOFWclbS/wfRe4xCi54sCcr2kIeKB8Ky3otSIIchAziKBskyT5HUdz21Hdl1aSzVEFPAB72gh7xOZkKmBjYMBJahgYCuEGgCCFrgBHAzO5cKeBZiBC8iMiEWCNugKCqax5ltaGbPVo0BU/+gQwgkyjcxWKjk9mJWzG3jMMQFcvFEIatpCcoHff4GABQZNNqJPBhCvyJWflIQkAOROQ/0JdXLL/SPimGMI7+BRTMGOV9EUlEiI1mTPPhAiimGABlAJ/00dz4VZYz3RqT6cpR/1quboX/IhFKy6ATlYWsFJOBZDkqY0TVR8xeBMpWMa0Fm9UjM7JTVjQA/FqNKA1H+xyxrG1sDE4km6odCiy9USHjFwFet1lt/4CpX8ETzIQ0Xt4Q12DDgDrNgLM0xWmMgkSkphXkN5xzfmtKZt2rCLpd5YD/vtzOabpT0xmc+J2jpRP0rDWC+QE/xNkTFQEQ3Iimn+lGELYQugge47AQ2AtWxKP0Q5MUjDmqkZttDwi/NKXx/uowzS3v6KoFCGZQiMZTHhDPC1g2+14surZCnGXsVIAP8R4nvx2SqJZ3qeiA8bpkUEgJPyCL6bFJqAzI7Ygf+vCy2sjQ+SCZl1s0+LXqmmrSCsqzA6GATxo7GrgloHgB0SAIKf+6JSAwOR85kuwpmukTEOqAIsYJniNQKlIKPRuCJ8KjltBZjztUN8rs55gYAhOOgw4UpfRCVT2TMnCQBUEY6VnAgBiD3Jo4FVYS8dWV8q6Vw96I+JwOEwZGoqGQmR8uVecgrbK9IzKGOs/SwDwb31KLQPpBQFq9T7rKUcRDKCuRiCmb6WYTcd+KYmNI/VIleUqxeR0bImJJis2kpLPros62f626BZNOiCjqgYbQ1qjY1BQWsx4YuKMDZbsWTKTsxF7Wo5kAOyCSz867Znayg8iJ+lPhvMI+3joAD/jHAAPwQC9sQCF2KA09M3RHyZPImCJchD71ATBo5BB5hPBaZodXXj1BJYTG2AKnAUi7OB3tmROBDulXklv8ilCg0eM4wPRitQcArOyZCabVIo4bEBV+HtwSUOY/JqK5lI/CaTH6wAqtZnvo3DXlMNx00KuHBrG15ZNlunN1oApMjOFhEgwemQPAgQsnFfWvzv30Ci2zuCFpVgN5HWS8sJkloT+zTKeIzo6wazJQAhoCYfUcJS3hmuYDnuC9SKHwAJrfCAJ9akOxhQHUOkO/BjMc6kLDFNlFwqzYXnfbaSAGmcN/Vwos5ZsqKMEagC/+0yAhcTvQEyxbqApT3UEdm5/0cmSf5eACHAlK5rJrZZcND+kdyuZCt3MBKT0hSLwf8tzw+EDxT8obbTjiF1XaUstDdeMU9hmos4AzH4wbeANYeoGsJjlwFViMmiS4sgDPlwjqqimk6lG8A9UBXu8Ei98zG5xpFFdTktHrRojIyYcrE6DAS+TrD2jOF6dKyQgz3IVS5o0SjquTRnjRZ40cDpAz+sAy7XVXY2AP9m9eBomNqjX1y2WrTTtN/z0Yz5N+j+QPvAmJjwIc1bmA/KaT6RCttZE1FtDxBwkAk4YcB6DCTL0pUxCdzNSTshOoerEpB8yyspUc4GvTBxZwbkP6+m7178WGgHmEol1+0SAspFyf8mtnM6FYChc58jsUHQKQL4yJMncht0KbKy/nWdXfORFJI/4wIQ98Ml2NhkBL1VX/iE8LeR4Pifyq4h1cycIiIObE+24+uwI13VGTgeuqTz2NUXmCJ2qQmr8UcxIpiEMzrWZpILOMWxnZ3eMQmsri4nLygxsdHn5C8u4GGZ9yQIo/VXFmWSNfjKDiCLfo5Zl05xqR6K6AHUPozbXp8Nj+uOEIIsUCHSleBZqmKnWE5/L/vHSB0HjpTTG4GreJTtGM8Ilsy1i/z/bQ8Y+bPXBU1F7ADg9FKrOAkFwEeo+BWanifqIIITMc3bRORzHfLmar2AvxeCLx7tLElU5m+JR3z/f4EKPoBSCNrTBlEIdlRYBacpmek7IJ4uDPxFMhO6H2EP6jmiXndp3aZ13r8NLT7BPYopj8qT5+ZRqmUdtmPju4bbImjz5iAtVEXBXdGq9naJbWbekckL7uEzXqNIEZ6ATwQIK0oG3hnBwImaNgBkWIDiZUYBEwAmUqxo8SLGjBo1Siiw8SNIACmSQAhp8iTKlCpXgtSyUuLECixn0qxp8ybOnDU/aBQwEWZKFxSFXvQZtGSAG1Qonlij5yeXiQe4qNkg8gINLnUqonhQRQiAMlkytmixgKKBiQFCQJgxscrEJBQPhLxhMQOAG3J18u3r969KKVIA1CjhYM3eilDO/yB2EpdCGgYKCku2IbkECQUxKuLh8XbCFBZMNrT5QmfgxBNdd+SYGEayCBBRHKzewaCNmAgmW1BpAoAoRRpXVtwRKEOJjOQbZDAA0KXDDzJEZkBhAnim3ZwEdCu+7h3lgO80EYgvb/48+o9yCJM4IjVkipc4KibImP2ihIrhw56NaCA+FLZhpsAQeP0GQA5OrIAFADE4xlUYPYCF0Q0uoFGChHnFEZZICZRkl4EARKGFBh6EEFODG+UnVUnpufgiekkINlkPIlqkxRolsLaEFCCAEEMDkikgomXsSXYjYWtkocJ2XZTxAxJ3VEXYAw40AMIeJPRgBAUc5HHlA1fUdv/CQ2CAREQYTZyIkRdWlAblHWHo0MZyTEgJhENdTGFSfTD6id+f5xl105pzaWDjXTKBFyijjQIGhgPBOeCSfTp5dNEZb2g034ExaWCCCwvEoSmVniqW4A8A8BEFRYa80EONZwCxoWKfGhEDCm/I+JsQWYxRyBhDWOTBGHCNtZujySo7kx1sqErYqkVESlEfOorYWhGpMTWZjTHwgZFgdvQ3ABPRldtAVwD00dy1OHARrRhQXMZDDSNgYYNJbqnHRbxWpTmcE1e8OoJznYq64rI5AUGfvilVmDBfg55EF0gL/OfFD+4OQIBzT6g0KsQhi5wRFjssjOJGHXDHksfDvkf/2ElpdagCh5ByEMYOscL1QqrZTkYBU/WBMNGx+iEgAbGYAaKHHjzkMIIRMOtnXYeeLSTZVx8VOjLXySpKJgqGvbrVGuqSoAMfVmc0mWrsaZSHxTCoQUcbBJgAbAMW5fACkA+g8KMYspGgRR4P6aBTDUNnYQAL7pK2wQSDMGRiRTCsnLDMXWsOkkf7fQSCCCfN8MMLT2DAIU5odLc56+fRqjatG+GaUedRhaifivjRlTlFZorbewUw0BCX03rnHVcRDAIf4OxC+FaRriSoq1HRUh0BxhAWDP3FtSe3/j1gqqdkJQqp4aoHH89L8VQfAHAQw2KDYUT+kX5jij6CU0Qw/5qecOxgm0EekJcLuIQ1cvpBzhhTgyR4YXh8UdxVvhAEPQ0nB0IoApOucrmLjOFP/1lJABCFup6ATztGUwtG4tPBlNhAf7xjCQcqQJ4S0lA8bWGJD85Qufe4QHoCEF9FJEaTS02kDvkhwm8oVqzTBREGHfQBZGr0lg44BDKEgYJ7NISBE/igfRRKopnYFIWy1aAlNTzjSdZgrDoI5yN9QF+V1LUDmMlGaiTQg7VO8DbI6OAgQJrA8YKjrgfYgAksEAsL0pCXKBxkKHuoyAgqwIUhfEULUuwLEdh1gQR0ISwFoEKUYnMBOWCMCjSjXhDmgh4HFiwjEjgl6oCQSQaFgP+IaPSL50Y4lCYODSNAuUsaDmcTCLBSLUK8JTJV0qIVgocNYfSkiy7FBgxAQQimPJT7lEczIOClAzaiwBwpksmu6IBBPkAMr9AwhlWV4CkNIsL/oBUXqejRNVooXzLz6bAU1cCZdRjCZlD0tCj8jw96xOOMuDiYaa0EiugKEhKOhCRV0U0kvVuC+9JlozdoikdvQUxmvnMoTkawS++LQeSoiKzzqA13vhzKGKylz5cl7JcWsQHBsJOGoTXuJ1CZKVDNiCCWAOcjG+OPSkKYQrSk4AJGsMAGL8KENkxhBIdBl0XgqKpBTKRav/GCHjgAz2nVS4A+wJWP0uCz8oEuST7/CCpcxRiFKkjIQBHA5lvYwAOuTsoCXR0SG3S4BCYqUwGQ+dkOPLo2AQ5gTWMIKKLSIJc9ZCkJeliCXh+JURediAep5JIIMvlMrnmBIh67AIJC+ZcXrhY+hDVhEPlkUYv8Umg0GKVPUUIsBzmnmnH9LUhgsMugoAADhcqCB+5CU70Biiwc86kRNTSVjomoaHDobRTWNQiGTo9abPuNCzzwSEURZq6JPWcJsPiDMpIxDPOUHnCBC8VqOhMOdrigVD5LJihgarN5kVpd8ADJBhB0AhNYYHA/ojrB0JVVdQRwoCZwnIKI7ADPNRXRXvCmL7g3vt4xCsI65DKWViQxHj4x/wDw8NaaBGsuF+6LCRIgACJ6xll2uCvPRGCdmylkCZxKcWHKGBfDYDRsginBFS9yAkuCzgENXiSvRCQbChRGfiiGa047pcvfWGm20PNqivL1oG1pBpCZCaQYW8mU0p2BR2WD2WW5DAjXaeQIP1CON5dVksjtyXobYUFFLGQHloQYuFvDCBP4m0K/XrnR6BEW0VDIEgPcJyWvLEoGXizihkUkBCYoQIsMSYMG8DeMMsKoYKilBzIOCJ3Zqki1IjXXLAw0JhQrb4Pa5migKtA5mbbbEWBpkcHeJZXvgpxuhcsVQh62Mm5E4m3NR+StTO+NmsILR8szBBOVxQOZplwAPv/bBuXBloQbkdiQZJtENc/kmL+93a7jHSg0AFEnWVJ3RehtkRmz1sW/OaUKvDAkC3JgQboZHmUZYxED60gPhyW2OKvcSzFk8Yr8ndUonbyDIwumfW6QNxoLIwYOEzDFGIgP9QZ4LaawKyRSQC64mr2CiBbByhykOBcU8OC8pjqwe2jBT0/ShYaUNqkouqBT/2s98pZ7iJUaChHdfW40Sh0+XVsKyBvN9O3QZMU+LcRSUjBD2r0W0zw8gESIAJchY6HPL3go1IacGfh+i6BQ3LhFjgyr55WYknOUlpFSg+Q3Z/2MeUBBFEckLTbW5Z1wH99iZ0NI5gRpI0K4oA7pJWT/sLQZrIMmzB6KsPaMkPLHnDydB4opuqgRholtRYAHEFhT4TQseBaouHIbPWO0/JlDtlTllgsv/A/nm6nYga+GyDIs3wG/+TfFDGWHBVXUilA1XXrjjPAoF8Pi/Y5MYx/KBIlatnUx1RAePg3LjPgcnIGyXMi5c78uU5W8en5B9huZ8LUR0bc+i4Q3wajNxltYFQ8IGAftXRmYVsHwjQE+HSTRAKigSa3kRcEpywCgVCdJBXQo20ulRL9pTnj02+8VRQciCdKgHwoqzMl8QAK+hJLRHweszomoAEllhFVQF/RUCBfkmRNgixT1QRIsQeg1XKTUixx9SxeVWPThASnp/xG+SIGRxcVeeE8Kfg9K9VFe3FdUdJUCbkenIcjsrAQN1IAOfYTMlcpFrJoUyAWl+ACOeBXgdVAORE04dRc52YF7iACjURcIlMgIrOF6zFOKkWBvkNpwGAr1pZ6jCEAIkAbaEc1pUYEiFZ7YbYSzeNlK3ICmmUfsVKE+PRImak2oVAAz7dINdBG1cQQkWQRUoY4AJIApaQsMBMgiLcDYXQVytcULVNG3AEBsCGHNVYtB9ADyvRX7rM8cDc7vSMEeTKLgTY9TEJ4nfo8coJQVeMUbnMhDCF79MYzarcSXWBVIHF7fUB6NlJjHAd5ZIcarjd5XDRu6DMgI0NUL8FIHAP9WLVIE3+VWcMDBYfFMxuRFcXDA0NWbnyzADDxBQhJNBGjPuXTNBz7QcMnWrTFFpLnSeZjYNN7SaDkjRgCdSeiQG07kT5QIrFGKMblUHTzSU9FFCJAB9AzKK04EBdwV6KlLNkYg4oFTl3CR28zVZdHGObHKqgUWkJTNQm3kLXmBgUGOFPFLAxFUYSgXeeBTYfkNq4SEYS1HczjbcLXZWymA+aXZx5XXbGjYuo1WBrQI0eihS10E0A3BGKBLLyJIENBVGKhB21GERn5HRdYM5dgT6ajBHTgdCbbWdcTgvmGKloXiyNSTUqJRC/BEoOlOSBTAxghBDXDHFlJPHfRBtpT/ZSxVpt3EVu94mRzcHn/Fhh1Mljg9TZXJmuBhyDe9WQ654a2YzWDYXGSWkIERWAwo2wk0QWldhs1dmrCtxAn8pkk4VHJsS+94j/TUE5LNT67NpUz9WBVgwBjIUGM6kyoayr9RBnEiUUlSQWg0hJARH9oZl6SpxUsmmkV1AHJQ1cgAmnhyjQoEpqOoThy4Y2+WUEeknLk5IEi0DXdxSIilknqMVhI9wRhMHxQ8BUq6jUPJDwig14rBV/tIDxZIYjuBFMwcRoCCTwy4ydMUDH1By+VdBISSniBqRCatwAqgxEPxJXcxnji1BBnUI+uRwARchG1kDICEjkisyV9iZDY1/9CwhFZsFF0HVp1KdIBC3JgBjGBpXgXVpcclclD4iZDzwUgZGGSJ1pBBDk8OKFpKqB5GNKBB+ZdRuZIBnAj3AI+d0UwWCEGccYYcIV5IddFTlAAbYVQi6aP/aOiMdFeZsk5kOEGWIQnh/NO26Usd5p1JBJD+nQS3aEQdbV9LWQQxXk9WRhmEBSfD6CNevSVJUoQOMQFdLEB34kAH9Emc2kQcUF+jbaMNxUcuUQuuESiMkNIgguSinpE7vYsCxMs+9dJHSg1GicFmeQ/CVJpGoAFbbBSKIE2fAY9gZUEZKdTGFcYfEtmOFuDQVN75wWmxPqaVsEp2PBWoSIVgLUFOqf8puFzqCsSRjW6qdQrSRlRn4Hwn9pgWpUlV7imp0kXQTdVpxViKo53FuunWbmRA9uzhIOlRX3ppoCzB3ghLJ66r5vTKMz5Lw9bqRd5P9fSbhf2EEplPtYRN+0XBPELak2kBFmGWqpxNHb0RGFJgPYYZNRUB/hBPxoJsyFhfNT0EELQoRdRBN0YKd6LZSogJ0EBegpYY8pkEFQzP6LjqsF7OQiprSAgL173SrNCqqPyXREQE1nmQUkIAo2VOr5bkRajTGthA0dbURxktNUInTYCinylfrkGaiuTHARhBtKEetDwF/2GVZnYoWJCI+8AKmVBgO50BaD7qtmUPh3xFjsz/Jt92zXoQkkJMh4QsSdNGirOAZ0atGJl+x4QQaIfKKOi5RwfIwGN8XpPyTbWqWcGi0O8VGgVaIGam4Ag6JutFnMKtJ4zO2x4wURmGLvhkhsUeWk/IQezy6VtkBLMuJvDNCk+FxyT+j+QhCkC5U3kV4pAq0gIdhtNyCRBSL2FlQOHQQLXwQQIplvSKTJeU0+EEovH9Tom9SJecBOC2k/0ZVtH9QOiIQZhF2uiUU/KJhG5kRy8x0ZxSQQse7O387KTphC3C7ZWhAcr1qwFXRGSoC2jiEi4BzU7t7+aEjQszQA5scJgSGivOShFM08nWrbAoYuo58GkiWRnGi2ANoBHI/4u1EEyqiV6aflMMaSKHRAZ6FfD5wfCyQM0odeyBMCv2sogViQeUStmjqkS6oXCYQKL7KCs+gUUZHO7a+KLL9IkF0Oo4lt2WzlSq8qVWAtIbRO/I2MUMBBMWs86RTUpxHSawgofu+hJVra2hRlLNcJlL6JW0vNmrRQ+XkQCGVMFQllnpoGbkkqLO+Q0Q/lcpFvKyPA0cSAcXMKjZ6BFaLul35B/+5WuSgcRbrZWiPh+BfQHBnAvuOscZi8TahQdbKldveFMsWl5fwJ7CwDKKOSjtqLFPMWIpKpad6QT8+YV5xpQqb06RgUAdnwXT8V7dNuZHJMCECHCxDVCMTdBb4P/vaVrcPD4SgJ7iYMglZMSPFgxa3clx0Sgb6YBOviLYz1FzODNKix2dEEoZPvXGEYyTGAfUcpKbVo5swqYuA0QSE7DGV3mMgxBnnvGQp2VhC2Tvg9qa3tyHXS2XB1bzotywYyaLEMFb7lhd8E1XikEWl9WlL8rl9ipLG7PpQieMq6UXXuC0RjQg9QyB5O4bFeYXWhhF5gSplimFGIATTMOMS7yfZJEIqV0P0XSQBCMIcQahVdALZqjKHkT1UTtKsUCntBCj1GjKH/aFUpDegGB1StShpljI+dFI9tjeC0SAAEh0/vTOLA4UgVSvX23tROSM6cAltcUYX86fghkKHAf/kZSqxNwyKn4wKLEyS1SwAQNpBOGlIn2wkkpnhBdttG45YzUOYGvEdchUlogw0JIhrIgJQSOvs8RY76W0bbMOVYphiOuekokkQNSw3vtw2Vm2ma9AZU4JTg5YiTedTug5MG/iNkOLEKzUiFQmrDBZYg8Pr2Cb3AVcwf4Vcxox7wC9NhfOqUCuQLDhgLcR1vs53uWRydiAkfDUSmdrDQNdUnMl+DSGANVkBOCapkngRSG06W0TaLTF93c7zPAsLYJBNHiHTB58C+aeY01D4o+xrAlznfHl9ADTpLsAeHq7AR7oFT8LS4+o1dDoECy2OBsUV1Y8cQEWwT19uMjoxW6r/8te7OnnDAISKEEFYUVC+KMYfGhBw0AfXUkRvaAYjuP2WtkkZq1FVgeYACcEOeYBWIcLZKmmgupJAN0mxjSK+cDCHC/tbKKDuoGHOlmMslpesfZGtA9J2IRhBex/+TSRi4ybCfGwBM9MU8gJIixbykQSNAuk+K+RONWhjFYXiFWv1EESBBkZXN5UMFNmRO6kaGYU8R08SeOhO0rOjOHE5E8a2MYUyAAd3MEUQMcUVMWmT0Gtc5gM/IA4bmxMrGd1pi08Lkg3nltD5OQiWzP1rg7p5e1GxuAeuyitNpakKXpGpA+mSM+yuxxfCIlQtrrmrAqFnxVHbOJS+6s6p9xCDv9ngABpzybxbVETGJSP8BCYXcuIxGG5d8mGWMVRh/f27YGpuct1uNvHD2jAGCQEh+kPA5PBIOM6lOAGDLhdWJhno+hocFExeKxFmqYKSpzMVLRgUdFuzMTXLSr4XHSpZ1NEBkbaASiVttBkGJAKzPBEphhUemwGrQk7XAhIpSa8svCLR94IfOk859DHDlhA1UUXZVZOBQjQ4VhJjSJ3EKiQjR/LMFofrmQG/30rSVRBPZY3kRhZejVBSRv991yADIQBDb4xBTfkB0xFepbLF5CBPG9SWnQmNcIcaKflgcKKAsLY1Ll8MiWztqxlOhsVB/b0Ctl1cEhSXr+ItWbShGj/Rjy5vaNkuMGEByCzotZWB7BC7AAaBtA8qSQzrWa2lMw+gEH54PooyT2hu+hhZTxqSevyyJDgp+c3ihFyRAUkR5roxum1olQM3XZ0ABkcweFahx4KhexdRx4AxiMmVQG4QXc25026IMjqUNRAoEV9bN1mi0PMYepaE1cFhwhYfUOld/OqnN7EYPsOdfAzitd5SygChBcAAwEoqAIgBJknAw8QREjwTYqBJwBEaAixIoAbPxxqzDLkApEaSRyMeAGAAw4AJXoYKdIAgA0KCIkUjOElChYRA4vUkPJgZQmEHa5wiPJAAQOkNUYEldID5cOOU6lWtXoVa1atW7l29foV/+xVNENQdtEIAE/NiiLaNGEBY2CIDgAKHEgQ18AHACxwuFUxgEybmFKLhP2qgMRZr0SwGKYqoG4BGkI66r3hUEiVwl09dBywwPFAAaFJlyZd54xizQzFbtZiAg8UGU54DJQZU+DhjnocUHVBY8xAHlkGe2FA4UTjID6X9DT9HHp06dMdoyliACLUqidyODwwg6EGCBk6atAwBgQHqeVzl5eQU3gMjTnQFHoY5MgJH+tZ5nAiAy0+0kABioF8KAwFAL544YESStAhhhMKG+S4JAhiiboMNdyQQ8MmQ6iLJ7pII6qc1HBiijJAo6sMggiwYK8gRmOCBargIqiC7joEC/+NGQaUj8MadywNuBc6GxLJjs7ogyo7qiDuqe14oEAKgoKbMocEsTCqqQ2nmKuIHHr40babCOqDjYKSXJPNNkkbyaEaKKMqTMIcSNOh0ToKrqoMJMIMohBKHEOMBFrQKANBFStPIyw2CAMKPnwgIUGbEEOhpAZ2oGiIAfdAqySaSKzSzVJNPTW7EZ6k4giCNGiUxhZZIMCzA151kS/vMLNjCJNQreqGkNRTMjbHVsRKABpMM6E6qq5Q49fpgJg2ruYSm9OhJUiow0KHDlxDj8QAWILO/zbzcNGqOFBjhaS+OEFTCpAbk6DUor0XXzZPsPCoEnoDA7PayBvoDYfAyCL/iKkEEy1gIFykK1jQEgisAi+ysAOCjBJFqBA+ekiiDuEs4EKzHUAoSDM+MB1hU/0cQGylJQo8Qwzbwpgo35x1hi4PlGR6IQwsgICgAiG1uqgiBPaaSgMRWk13Z6uSGFg6I3AtbcXRFOWMIAmEgwMJMtIokAYqou4qhQzqclGCg6y0DWZXyQsJ5RqsSo+gNXpwmGe44W0QbgBE2OHswg03rT5va6iU4CZdBSMBWh+/SgI2NvYOgiQqwBFkCGCQKwQNIqgA4DeGgHGuGToIo90Ad1BZziQmTWyJiB6a9CgF1NTj8N59x0wH/24bwSyuBlib6Y5msECv36la4zWsMQf4/2wqJthhgh/g2AmAK2RQyWDnh9pTXQzzRKhXnGOaqfvGhs7CXqhDk8NCFNST84EXdBCf//6xWoNSurPbQyYDhdM552iVKQ8YgDaVKtjnBnBAyteY0LalAQBjQwidR0LEAS2gJEFRYMkYHPSTKlDrJSjhgAf918KcFcIggbsKZLDzmfDcSoE1vIuLxkYEZf2uSmRImFb0VJVDPSx+m0MWm1YnAhtcYQI3wyCJXLiXziTMa3HByqemkhSDZIYj8CsCF4IVHCpG50Bvc5VGwFdFN/ruDLo7CHdswxAtTGog1OJKxjKiEftFQGosc5CC4ICWgbCgDnqsnasYc7KCSWEPJP952cp4woeooKQtjHvjJockB0xZTgJ2yEFvkIWdqXxAcnkKwAyOpLCn/U4B+wsLZKzigq7JZY1fsWV0PkCDK4hqAym5IicVWJUFFNFzBuMBCXowSgll60JMes4gfjlGkHAkl8TU5tnS2BpIvpJhWyFL8iBCEhJIIVO4iUjNJAIwvg2kCQWKAKmSQBzNyKsBHzQSlgiyASPscpsBhc4NKDJBr6SyMggVzQcWACM6CeeIhWvBpDBgGBpqkYjR8sCWJmIDo9QMIQMQXwFYo5U1nJIgAWDDZpZghARYiAEckJB2iPUpbBmGMTHl51x0KVCfDkkPe/jgGvbgtod47gTEqQz/HnjS1AtV1JDlwZMLNhIUpmyqD0sAwRs+aCVFXWwwKcADHjAAgx48EAr5A2HNhkDSHfYAEN36qU+J5iF5xbMBTjjLWGYpUlUW0TcG21JSDbMigEZHDngMDWC1Uju3msoLdygkFyglkxUwgQrYPNbvKte1klalZxUJnY7UVBu0iEGElb2kkurghQuURiZPmutsczZG2UaBlA9djBbrAIYjYMALW33Sb2qWoEk1yLg84UHFNpUD4sABBLj1IQ00WAEH7EdTwl0f0KIHQNp+FyxEaIJUkKIGswDseA/LCmTAo96vPI1oTNVKHHY0hga4iwyLJad6KfIrpW10CSRhwAo2/zABBsynkG9s3mpTSZwj0CABwHGJHjgQz9/OTH7eIg1Ad9ClwoIXxEQ6GUbDRyvZoU+ZKFOefyIwhDMU1SEaJBhMYnacoNgEM2+hQX8xMLbxQoF0hBMlkLlASNxQyZIhVvJV+HSBsp6HtCD6DEJVkBWluYikM5yKXzGClWDVMjoo8F72Nos1DcRPfZ+VA2lo+RUh2M2TSLEBgZGCggGvgAxmc16Wu3iWeHqGWNRD5ErOir5Oias3PlmcmkJDgQksGdI7g0BiWjkVwnkHs2HIz6VZ9B0NAuwF+9EqodtXmzS1AGkna6JFnIaf8RLGI2LAa6RpDeghGAnIVtsvl7tigv+GKnS94ZwvVB0HHUwpxUhsXm8W6SIdAzT0s7VkQH5DQmAZIMHABB4ztvdc5fOhISNbot4F+3yDc9UNLQDk3UoYLRQASNMw1qr1vNuUymKdu88OyWwbOADvs9hBMRXdFPqKloYvjO4szhkyC7a0k49QrSOXXuHE6R1p16LlzS/AAbFJHJ7CAnsrjIXOYa3y2qn0gSlPRNIQGZW00GBBJT/AZsgr8MQC00EJOMf2ze8whfziS+SiAeQaddfUzAAhBczyDbEdJIAQdBVvTIKKgQ20Bm2RyjHaqvjWOaTnqaiu0n2aYoHIx5o4VMEHHZYyWgCexaA6rAwh2YmHC7I5c+f/8zWZOYOyZMb1JVOhDQ9mdLQxyMt7mVLpOAKbgb3HvWrdN1QdH9KCDS92noShAG8oAeMbUGAlfB6K1pYiV4IurcbGEipyVG5hDMBHEzwbcpeJiqyPqsSOjDhmftc9Z3foZRwKAU9VeQIYmlwnu3MLAB5bQ5Iv7wQaVezdBTOCL19AKDzIzkIF2z2IQxB3zPm1AIgXNljaHLUQkNGTOs/5HdTLUq0ks6cH7Qqam/TqYo7rCxWd8/oIrIQVqF8HAERn+KxPaqIG4qi0+GQEDGKlSIyLOuomzgBPJonqoEkBgmr7MnBN1swqaqSsvqJ5/kR+4KJdoqswegB7moAIdkDW/x4sQbjAvtJguoCjbnAC7RKDcELA3VRMA+fKDRREiQYGA2bFf0rvMa7iPz7PCpQgecYo5PqIa1DsIVSA4zLkLaRGD2BEQkggU6xtA3DO85TgRIrnd4jgvvbufmxj4nStWtDikUxQ0bRjX4pOXXrQDnPGlORPXSBk4OgFnnoiuqLr0lTGoAZjkPLmg6JACLTgzTQC6+5QoGTQCACJz8pAbWhtIWTACnqOKhiOp7YibUDRMExOvkjDC4TkmIBHplAAneTFUbxwAq4N23COdWwAluRj76Zkcfpjb7wjlDCuqAboDMgFKEAlxi5EAXKrWSCRGcmP8IynKhaPmuQsbpLRY/+cKwcGoSP6yypKYJzsaFykYN2aUZuogBKhcOvABs/aw0qiDFimILy0ggmwovccY2sIoIgcBjlsQgsCUAdm8XomYOcEkg46jAOeAORQxYYIQgfuC0dMECpWKMaOCAgyo2YmwwEYMSlW4AeArGAggPk+xbsGiBxLEujK7BnvKIRQa0xKyCFlrCNOSq7EAjMORAGYzyTd6IeeUQ8PDwTdSwMujcbihHlOqcGMiCZPBdoS0gSowKOoKQBjccBAD4rAcCqdawSQQK+ajSvDwoKo4zaiohXLguV8kYx8ZUz2ZwgoI7fiAAN20JBSQ1xyki6pg9mQBWkcqCpIi1/Sbjq4hZn/6tKNLuNglC1Jwu8Io+MCNgBaHqPIpqMFEOjDFkukjBAG4GAFBsEtfiAWlzAGvBAJrNL/rm1BGKb8RHFFrsz0dOBjxEyxjChHCoQCyG4qQkY4lEj7ssXfBJM3Q4O0jHChrAIB/stn6KwwBGXR7DKO4KU3DecxrQKVZik4V65FUOp8pJMn4HHp5E81rQI1NiArKNK9eA1tuoI12WIvOqAjgwcLcIsgdS6YPO8FZk6jjIkmYqJ12FH2lASkPMfJcrNxvnFcwqU5C3RDDGXwgJOKWuXWivF1Bo86rIUVDZRC/WsnpdA0hs4qcFI4WsoZiagSAYsAveCXqnP2ECwplpAO/0TT8/CsK+stPDGOPpzqKrRPCzyAMmYAocbg6eoxzTKsQoN0iQ4Js+Ii8YBFO47gRqrgt4akss5pHIUUSehHL5WnQ4DT2TREdW7vIvQs/KrAtCwqDYwGSEUwSVJgcyTgArTnC9TFmRxtE3fOM0PPJFiFafJyQ7amI34Qg6BqubACJPQE3FAjEJMGYDRlCGfAOEaM/uhPSgv0LicnK2DjKl4lAFDSg2hzQwJoFx81SWQwqoDU8LDUfybm6xSoO8HsbtxxPbDTMYooCNhUBvLPSs1QPfDpzrDN/+RsTj9vK1lEA7pARghQQ1IVR7xtv5hmaxqUZRonO3UlJj1VSPNCVf+PMXz6xOQG4qQuZD865IFWAnpSSFo1hL707TATEzqIdUgQoL2gMcN+qdh8cXyowjZbtTREVDSsh/0c72G0J5iMAzkYj84MbASiEik0cTbmET/wAw0CgLpK4wiKtA6RqEAor14ZzQNExIGKTM5AZblu9CBfVHHG1VOPNFS90q8kwBvrCEmySsNINifJE0kWIMFqlCuo6yKK8kb2UGpi9AlnyCkFcPycDLj+I6as7Q6s4ApEczYIjCOQYAnjUwTAYwDCLi7gYgFsr+SSsA18tEYlIg/RJ2GaBp5YLrQq5p54Qkhu1HRg1m23QmsDq/5aDpx2ZFsdppveVsHcizr0NEn/flWNjOfKDqAQckDT5PFHV+4htwdp5OIkPAA9uqfAclVFvSfnxHByEZYOZDFODWx58lBP4KAxAZUJ5lFwhEg4AQ1YLMAiHKo2xygnxER3WBda91JvYRYNPpFvO9B0GYJE2HUDleuMbteNSFXZ2ghVbtRxwG15DwkjDyAAVDUZE0hUh9RGDO72TgIlHCA9vMdgkXYF7kBOZWAqMZfn4NN7OiBjgyByUuAVa1bfNsAKMHNffw4UMcAutow8zixxC2YygEB/VqhbMQhAa+XDLpR4mTFSvwJ6kyA14GNKIVQ4SjGBQUxmGSUhkUR9a9ez4oJMC28hvyZ/2PAq5rJNNCB4/7zzRm2sFv+jfZyAXaCWXXYA5xREfkMT9LRSCY1T1haPwJhLcinEYMhwwxyKcMSAGw11xjY4xgZGESFmJrNOqSr4Dp3s/rxDXcOjDKqgztgkCjojiiWPipeMsUjKeKkjnrzuVINNvBQVF0kAJpvkDDalKSgYSfJDBz7YPO5Ifo3CspzAe4GwfbRNaXcOIHc4hwsyKmVAIWYVkKH2cgOwxUIkNG6KZTHI9i5Wxlw3VS7pUBLpncZYWh+lKgALODh5fXxOULpAf/AlokR53kbjjNmsLAXrWitVi60jB1jAvrDgARLASVDgn5TVtlCCQ3Wr8J4jskY3PfcHKjbRl+Mziv8eTXBkIyCzLZFzeHyRVobJUNPEgGJsoy1EFlDzqIayiYPZwJYgrp8C9zHaFZZ7MyElFiuG5UKcivLcRJpILp7fNmzdw1otL52hogn4TkAi0mpu4Ji8Dg+A5Cp2MzSYDSQZYLluZSfnyLIehWBdNA2EgAFG8wEK9hXVD5KjNnMDUuYq4gI8IGfBDp1BBKXMLdmQtWs+wG/3MgrsFZ4UBFHWWBn7OSd9zZiAgFiz7NmYrHf2E6iJl+SYt3YTj4/K0q/mpCSS7CDbygASjKTSYBxfWVtfpjxLLrP2jWVyoCwNLEUbMnzDNwl/AAOUCIbHJI215zM3EXyzbYbvDIbzTz3/h29+f2kh8jcvEeAD3Tla0yTpjMREJxVHXMROP8g6bocqonSpeVPuNqxUyMVmK5up8dQ+XcBeuuqWvtJVgMKe8fk5n2dbjMo00mBz8SwMFoaRUC9odqBpd2IFggeJbZEO1ECkHwwzD2wMmyBznQ+GdYDfYHgJvyDn3PoLlUCI/wye98ur2W0KYwKL1Ig+STgI9jcDHAY9MyCyLZlbYZOzd08AjBWebiaLNfS843mWTQXaKAcIUmMAkjhPHEZmasKmudAkkOaos4JJeMwK3duPZGoCnMiRKSIrKZpC8kqy0nNKbgK5AUAM/XXOLis9rCAmuDZpR9MJmDCPR1A4SrzE/zUoelW3g/n5IY2JB+CxaDgmjN+bLrf06/iVNfCRsfPln1mcxsfYcHUCXUULD3aWRC3aDvI5Y9iR/lzgETXEl/SaNGWqIOaMXfDTP9RXWIIrJp5FDbCNNV2RI2uxwAYhCXMODEHgaQigXfFXd9V7gRMowqSi0mAgW7lq/H7cUxfC5axIp+XLAGiglvWc0FElOAoTy/r8ugXaFz0QJjS0Idj1ySF2UYAjV8m389jFB0DgtTnyM0NaDb4kewTnkLRTr4AMYZs2m1d0RZuCUk08PdvVEOYr0S/xBmzzcwI6TnI6jwS0G7NqWwu9B9lZ15OZnJ0nY6pb2H8lvjcpBD6lBf9wKJ1h3aIuFC5NESWAbFtASCplYtskl5AD2IabYD1hRAUOVyM4t/osV36ZW3xXVAnUw4bEw4oJoAPsl87RRjWNAAoAhuzWMjnmM07QSUFijsqnQiYpe9lNMnKnwmsNfeEjPl9fyxLVC+QI+73+hFag6qwYVNnB4gFwGC1tzgsX5K9j6sLn87LkF8bTIKaI4ufSAooQPNugKMgxV8ThEQKmxRwFgG7W4+G3KBFTggf9BSZWiOy4+GXAuu5IwsskvgezlSpkmzWmRGPajI+gXut3xBtp+p+vkyePBphtr5neAIFJ4w5i+9LDcIcLtrz8A2rD4Asmq2jswgkmeX0Vzwn/YCIMR6BTNnfvY/HnWAlZIQW+aN0/+Z2Z8OfHhOKebPE25UWz3T4tBfyntz5mXQAIjAAGGqL7yPPiMF/0pWOAFgDuwP40n2OVTmegqCunpLKuIdndqe5LEqQJ4NETJfJFKibBc2OlAckK2mDtbaC7SRMM/nH0MiLCfDkjnMaAy4x+YhBMHWAJGEAEgIYyVsqjMG4+OqruuCJvR58usYMC2LcQqmyXCPvsxZ/97zWfkZI6yBssNsq12YUau3wDbKBVNHfuAUIEAC9h7kzA8gWAQi8bGsqwoUNEkxdPmAzM8kPNioYT2igU8eWHCQBIPCoEQGCgDicrHlw4mQDlyZQn/0++gfKAwpIlOh/wcQCAjREAORTyoLADxJA0YsQolFEzqlSpEKZavYo1q9atXLt6/Qo2rNixZMualSqn5owmGHqI+TATAgaZZ+uGbWE3r969fPv6/QvY7IkecxMUCHoAK83AZilshLhRSQc4dCLOHRNSY1GFSi4+7KLSyh0ZD1ZoBGABhw4LGcaMyAnVZk04JmfKGRFmx+qoBoIqTFpgZFAoUXpwISHF8YmDR25wMeogxpUdD34YZYw9u/bt3Lvz5cPjJJnrAMiwUCjhABg2ZqvqPew9vvz59OtjR86HT1QJ2k0M4NsQAA00QB0AMZjmEAMgRMCQRxzowMAgEG6kRv8YWBzUhg0uWdfFFLOF8dFVmO3nGhY91CQBfFPBAAMAeFAAQhUgKECCAgMepAMfeigEFBw7+HCifUIOSWSRRKLxRh1gpFBTETC+sEIT5dUUXlhcFBjUBwHgsYeRXn4JZphf1gAFCLjF9JGHfgkQBGMNRVHjb0goqMRDEzAQgxN6WjHIBk706QQAaijRpwyZQZFFTB2IlIafW91gkVoxNFXEXArhRZUXTogQgQFs1FFFEm+csYYDFNhYwxJCoCVmq66+CqtUOxI14AhxvsaBgkSV5QKtl56ER6zCDktssVbRYBgERGSR1Qx19ZbdQ2qcBGEOYhxog0Ys1XmFnYZuACL/FUho1ISaHBhhRBtqjEABS1yh4ZtRExiBQw0k6TAVBkxI+cQTVOCVAn/OnXEjUPEai3DCCgOG6Ul8kOriqWau8JoKLqoElhAUvNHkCAt/DHLI3j03mFVw7JowHBuIoHJDauw52oTdLjVFGQkQpFBmst3pEldxEDVeUEu8ocGiL0CBonoCRiBeHUAMIMAMVByQK54KXCWQyFpvzXVQNUihahI8QmknAxeGUYEcDXPFdFQtctdr13LPTSQXFxgMwA1bt6CbjxSv1NKDCGo0LhTn5ZzzyjZVzQBYZVwa3UIfoIneDI1SMAS1IKBkweQLCKhTHXSPTnqxQFC70Al1qKpb/4InMXVGV889PtN2EvS63BUj0FB6777/RYSBVShUBtSM6Z1doxPAafZjDwrYRA/VWWsB6gV44JRRXrhVW1ipTfBUGf8GpQEeUFpdiFwnZO6BBpfCMaBVELzwe/32d5dHGk/hQPWPWnhtAwHNiTpm8krWavcVNLiBLC0YgPsEpKGS3W+CFESR/KYzCOIdoG18KQC0tjMBQE0ACXOKIGwylCguUIRKCgGNvMrShMch4GRAgwFoaICHGrzGbE4SQxW0AIYKdOQjAcoKnCqIxCSeZQwocR8PskeUl/GMgI3TQZXEhADy0SqAT1SiF5EYvCsgzWJauwISrEDCOkHEVIPAlv8CHlQdmCwAC/36lXVgSC0PlQk1qNFC7l7AgTFsbjgfQdMYYhCkqLAnRF9spCO38sGTlOsH7PoNu462ldtFpQNd+NxZaCC6ZlWAKIjMQfPScLVHqnJ08MpJEHljFwMgQEXb2RYdrKAhnjHAISgw0BV2iQPioeRxEOBDaejXnpMkZCCLs1G3psAB4uGQWcK8ACK145xValNuCVjfAIrAQQAsgXYwed0JapeBqNDwLNTRgqbydamsEYFdXlhIk5xJAYWobZv8JFYRcMIHj9HFLAKwTwVkcEuO7LJbAzoBCQQYAwVY61J4icMNpJMXOQSBClAxAhbahsPo4Ogid5OogLj/gC4qUOEBV2lcRoniBWf1c6bEQhJv7ECVvI1SCFXADRh01SaTpcUuP3iIlNyWQFNZ8WA0baqYADkQ3sXSPspqiRl1+ZhfLvSXMDUej+iwl6htACVpgQtPoQcHa9FgQhpKShpiOh4iuDQwzxnI4ZyK11aBISr15E8IZGoVBp1rlFYZ6l5+dti8KrYvKVjMV3BWPgCU4KGRzJxXZCkkue4yMtIZRJ9GqEYG1GoE9IJpQPWygJvtQCAK4JgLLuABlVzhCxYBLR12qYYHZPACGPgpvhgGh2AycbHEBRPH9qMCx8LzrnGxW7EWqMQ4ILa4YaIBlrR2UJnh8iDLsYH0rIAq/xREdI3X7EtScqCDozXlXyrogQ0GAQIxBA8puRxgeS8WGCyUhzbU7W+R0vK2muxAfhUQQdAsCIAAD+uVSJTue2pSUP8ycDnB1FoLiAAlJZRwXZfkrAOWIF7x3skvKuwT4nSogRu4EzY54aovK/PbIQwlDksIjJI0sE4J65g+D2wSsMqJ4f2wsCZr27F2WhACI88HLy/imgueE5lcGYS8Mdgii83mlxZY1ydR0KcDoCSj0kznjcrZbAM48IITENZu3t0rX4Toy3Aqec7b0RuTTqLAqSwhbsKkCg3cDKtCOHK6YIow6eCizSdjIZeA45n0GvC+hdIP0H3JCJHZcimsGv+BJ7nk7oAWCdMC7sV8hnqCnOmMau7Ai8iWKiTnBgoBnuotba3Wa6qp68ltEsFbVmUJo4eQw3aJlq6MVCZFCzWnNIeYOiE8gW5+leDi8GVCtL21tYdEhYpI5AseQsCi5NpHt5Dz2kIytI7ruk0IdMQGDTkjgkpAoC888Zz1GQkC7jTCxzTUmCVsQFGkUIcszkAI8NYLSkfgp6OSe+EjK6rLmrOvH8QARJ0aKMPtguSL9xcOUnS3vkEcMQnGh7f69aXVTr7VP60gVfFNZ6yTgDe7rHWssUKexmeqrKuKBqGZccIXMCBjlfbZVTVW4ku6YjjUMPfmFYQAS6RDB8JJFub/WvU5ff4TZl3iU+dV25yMF/IEMMTO4BCqNtPP7pcnvGzRGh5NeViQ1iUdsOaK1UBi/HLnWJn74gdd6EPuIFkSfBdj9Znn00UbhTUCSgc9SE5F1BLfLu2FA2jE5KrRjvm6/HUinFXDFG5gARyGQSIz2fuXbJ7XdCJwKqbPvMha4AQ1suR8+URlqRJJH82inEcytuGqmInnKDggTmR3Xo5dj3yy4IQOt1TXopqCHtTQMvl7yaLFD/ufq7Se+snT+ZsU2gDkCLTw9L2lZ6nzYUrbrIkYAHEUPAqgQIVh9OdKgGG5j/9H3aFCdjoTYPP/ZnbhQvC0fcPENmNRgFaRgHTm/wZixnwcoWEbcCNiRB/Ig0oC5CdRYhxGoB98lAExwTQ3ACNDMH550QRQQQVScoKBYiTDBYA05QIyZgdBNn0vWCQLeH1igoOst4OP1IDbciBmlEZDiG2ktWVVFxsw8E+8IYIOYASQphexNXdPYYNVuBWvVTzjEQDyY4Xb4YKrN0E96EjqNgE7p1Xg1W4aVh9owFrUMnw6NAUW0kdXoHQCxgDyxRcjUQExGHxM1YV/GFUnYVm2Rlxr41VkkX1IhTKQpBhfMYU2KFe2RBoK5RAGtVFzpU8jgAMfAFvhkRFoxiN9oAfHxRfKkjd/9SszMG6A+IczoDh1GCZ8qGM16CWqyP+D8GQfBYhoSaQ8a9cBZShapTEkCOABHSAVbyWI3bVyArITfVAjPgA8rPZnCsaKXTgRf4EG/CEV1od/YtgXbAJh2meAw0KLFIRbvpYgRZRZU1EIwZM6+fY1wudsJyI2WYaHl1IBU1ON1SgH/6MXLmiM25hMmUcA1hcsORh9WgGOM1Frl8WKkdhvJ0dzPGYCloMVFgAE9NVQqOJvuPdJKyJIOmUmQ7GPD5kGeXAWppg9SYZ0suN6vZGI4mhqYKECA6iAJSkVQpRv7DZAuGUfC0AFV/FanFRUp3JO8ogCDoA0gDEZw/ZhMoKTrOhsH5Y/Y4EHF7AZ5RGU0DYVbgAD4nL/YH5oFPDletxIYqcGS0SGk/CTA1ByhiTUPfJxG1ihNz4iIJMVXl0WGFqmErkyAkAUlYCYBFIwGARiA5GSQBX2BFMiEy6Qd3mziYqmLopIZEQQc2fnjQk5dFlBS8rlKuXoSHLgJ5IYdUKCB9CoFWhGmJNFmGn3iEYRPd1yN9ZSZIEJgAowYlhRm0kzE4TFeswVBEEVjpupZMS4i1wRYWYZS6oHhnSzd8rJNReVUEQoJNODX1z4EiiAl32BbiuSBSjQRl3mHAVmm1b4HCBiV4oEBirAklEhOtYyRogJS545dJlZXO3ZFR60AB6gXLmGi5x5GCA4Qf/hn3JzTC0Re1Ei/zT1Nk9CKWA+oB/UtBf+eBUiqEgNWZ4v6FwOJIiogUh2p43JSEhMgJbESQC0SI0Zupi80ZktNAgKx6Jp2ZxeYndeNAYIki1o4yx4QIrxQT/zqBVyMGDzgZWSxDvCkaFW2H7IwpBcNWPhKCXK1Z70mRVkdG0saZ+g6RWUk6Ri8UtoRBVD4JvdwQFUlJrj150p+S7AMgWqQZ5dWoXlY2ofoGXdgmD/gVkoMqZm8Zhz5gIeZJ8Wd2em5x+sFwJL9zGBOkEXEBmvOR9O0hJnFh+Eppv64idndQB7CKeAmAEh8DxTMQAzEJmKGFvEaYNUuplmuZA3eYszmqjptpVRgR8jh/8CjFOCtQh3ZAADH7BWTbSp1Sg1VnE4/LEYGZAB0PWNBFmqGjSOXCGgqQoyikpBNVYDErU7PqpLsSg1hJWpgTgWsvirDMdnrBpPdGSqeRFJc3Z3fARhiNYbSQadM3oER8A5pwaTqKqZv7oGUuAD7lQE8nEBXqBbv2UkLeCfmPEFKvMCzBmuGZpxbhhMqYWvZREA7nFtsuSYfTRMAeOgk0MTc9Sm7dpP0rpkqLcVx8FyOVCP8uFMpLEdNSB5WKE/ajFlRLGsDWubJmA3JMkdBelgElagQmkYcJF37cOY0Xc9KmBN5lpQyRVhQUmy+fd/j9VjLItbuckY+YOhOQVhAcv/lThrmxawEmpSTofIWOwnYaGUnx+QiFqCHvBRVw8bFSzQKUhWrGAbpFNpHz1VHcqRlX7hGkIgAEjaFTqLtxn6OWDAASzgPuLTAz9QYYFBEwQwk0QBFfHaXykiqqhRojjwA0enFQdgMbK0rq56uNdJV1KFFVfyFF8KGMVBHF7QB/95ur8KjsXIQZpik94RlkoGA21QYbTBnuwaMMgUumgiAGSAnpSJkwcJJiP0uW5gsXYIjTPCMgE5agOCJnZwBv8qlrWLsxwVGlZEafJRujtmpddRPVr0FWybZKIadrnGsYF5RU9Vecd4EEGhP784oYcEI3zFA6oLvnj7TZhEEm0g/5y/up9aMbVgcXwIabr5t5tGsi86pUgAYAUikAVacKxDmhcawymsMsDgKwQbfGbQZEMjDBgIgLmseHlhEmscZAj4mzdjQC9faBb92CwqDLYhkKk4xb0V9xY83BcGe7PuoaX5J8BgQgNPkAAydXwCuzs5ISAnyxXeW8REfKoniB6n4yLpGrVa7KAKE5PcBwEv4al3Uk+v4xh2UgKPcrJkG8E+I8ZdqLhvm651LDfeWMb5iXb52AUvcIY2oRwQ4cFlYS96zMMc262K/BeLFMaAwbbJmjAmq1ftdUZQkpU3GkElN8FwzMCO/KugB4sIJsp8+iqJ4UHNi2doBi65AiJJ5v+/G2K8XpFn63vK4CscPyDHuXw/DHsWQWssL3zJB8UCCTAuJyACFQklNvKpjyVyO+zL5dkCbNsBlTvNz2LKQlK1ecyZVhhAGAzLERFbjLOUuqk3V7msOLC7VgEEn3wsN2sUFJrN5PZngriK9bw11ne3c2yDeeCbvxQGx/wCCRFTv/FsWVGGBjEpZ9CjCvnEF1pY4KLPfIciPFvR9kO5iBGVY0ctKwBWixJFJsJG0XQVa+URv9gEvJVJwcGleBYEWXQ7UqNlD5w3EJzR/ZXAOf3BKSrJVxhOAQMt2fZ5MgqsBvYFczJCtbE59ywiObC+m1ivDOyOghiDTRBM22YD7Bz/EV2J0zxNXIYhAYIG1kTVKrRWOV3Nm/ezB2orLH8GB8qbXg+hPY8S1yKI1X2MNU6QvqcIz+5c1kpWBnMJqoFtYW5DosQoHMeMkxogGondBbuhw1vxuUCzs1fRyPkIusZm2ExHaBUQ1TudMD8LgJEcVuyaNIuCAw+EBTBaP8Q8LA7HAvl4TL4xvYFVugaQXMCsTKHnBRnkng18hZTa2XiFJFU7nAvDSThV2sJSkBahGszktvbz165ShkdAEL01Iw7JmUbLRzd6jGpNBBiAAGhQ1YB9LDlZ3GPIHumBuiFDMUTd2cIsE0EgArMVnN78h2sVAUxgBeHCccDrM2arQS9R/5CCCNxJw7iApbPyLBXEXU7SvN4TBGp7FR4lGivamEWX60B97cuwtbX/Gau2CVfXGwK/GLkKhJ/u+YEs+jMfuABmVctcWYyc3aEPPuHFlTYcDDL8TDmp5c9MZ9q8QjX8c1kOjpPGyASQu+RBhSTtKCJyPABt6qlDwLYq9gUZjBXmgePfm+OLFUrYu8qt0sLo/eC3Xc9ovo2i7eW3+QJdwMUJZkN1tAdF8NBqmWBMEHZewBruGAIxcARt4KjowdjZEaJffj8LPB/JmdwI2KycG20s6Ek2t8QEnK9bmqFu4AWPM9vRFhJvMwahBD9CVpBeYB53xEwdYAU5+KZZbnaInv9qcZBOGA2w1NiDrYcAwzq3Wc21PJCwI9zH51vYhH7j+/jO4kxbakAHK9oCSccFKHmhPyu6nPHY0S3R/g3pYXGiX1sWEwvrz2Vzwt4duMwY+3k6XE48nqMBe167LIxOcdwi3oY6JbkHeaIDcu1zIV6lMfgzP3BLl+hnTWzBl54VHSAlcvHticaQHyPTSN7oBz4ET7OeKCE1EndxQz5VLhmVNFAhnxgSet4Yd8BRvUw+KB1b1aPZF/ljCd9Uk907KYbwLDQA/BVtE0du0LniK/zNWrGyje1RnIdGpVkWVeLw4uJ5JnBhbzKILK/T2YHxhbvlKSwV57EpWhkGdqAvt9b/p5I06IklFWOO3KZpZPDS37EnGXH5Zm0nHivNGHLL9Hsc5D0eorMUT3huavOqUiut6GNPrkRieohW3XYc6GZPga8rA4BX91/99jhHF94+LBJw3u1800S0olkiusQkJZDr5NdG961yGMIdleo2GiTEgn+RP3cgn3i2+MSFvRqr+DW1iGOMx0o3AMEUAfPaRyOurqtfuF+p6qVv5lZ5+O65xuN6F7xP4WgiFAmmX/P7+JzkOEJWk7oNLuZhYFJj07iGGmVeH0ZraAXV7OH6OS0DB2t8weefMVwYH4aB/MaynrcziLefMAOdkEe1gHmcEB4Q4DarLwDxA8BAggUNHkSY/1DhQoYNHT6EmNDFgYgVLTKscLAAAAg3XFwEGVLkSJIlS8LZQEflBjhEDN7ISPKjSZo1bd7EmVPnTp49I8IJMaQCG4IhePjEucBghpIsWLxo8wSGhw5McGAJIxDpVq5deRYIkIBgBQ5ezZ5F+7LlBCRtrSCR8eJH1TRKWFLpAKDChQtp/f4FHFjwYJ149WoJMtAQYYsGYEBMYeAlhAwbq0LJYWFAUABkOuhQw1j0aJwCKJJGnRrjBrt0WLdue+W1W7d5Vd/GnVu3bggYBmqwsHth4oaSExKQYALHEyo6xBzwbFWvCC8uhV9XLUAAdu6C17Ke8BYu7dZWQoOMg317d//27d0DyJOFoxCEAd43BiLEcecIy5t0bkMNlu5TLQWztFvIBILWI7DBnmAQSMA7xLOrPCewgIOKBg10sEMPVbvBCwzYGGKgFJRyiIDRECgqogEWHOgDowAYIIEIRiQCJSXO+7BHH3/MjYMVhpytQhvScAmmg9JLCIKiNPTLAAWBpLLKro4g7iD6qmRwqTJMTKM5GcbMwUozC0LwTDV16ogvvSho4IeUZLDrwg66oGIQL6ajgrm5LjAC0N8G0hDFNQ9FVDgEnsgSABtt4uI0pLoQCYHELAWLxbmWayDRnhYjbAYTPSW1pM8AkHA65gbNasIvRJ3sL0NLpZVWGgBoQgT/D2o0czvjBvLoy7GKEsECGpysdac0k2V2zfBsS6uFZqc91IOBclxuVOxefAwi3widwiAVZhAhuuqopYnBjVJEt13R0OAgASagXXIDHt3FN1/0CnLiW7EqCiGpKStKQIWHXjyORkcjaE4JfU1adqt1l3q4YoQCXqhNizfmmKFuRdKgIQl8GkGmgsb9IoyOdzMA4ZB4XdndmWKmmeNytcUJjFt5YgLN4cQFF1dRZajZRftsmtJXglwuuumE8HA66nYh4OJkqHZigymFuiwtxo1ONNFApTKAQi8rrJBaZK5YHAkshdOmFQy4565VjhI1IKGIQQ++6IaeJmaIgF2BPUIF/xqwbCEmutEyVNLFH4c88g+5uNUOn2ZFemZugV7qCZzl0oteySviGqJwR0c9ddWxc4Ag63T6FSnLONKKc15vJFTl1XMa+O3dfwc++LTGKOiLvT/EYSkNB/CCSOGRXlqq5x+3e3rrzULsWg9K1I1DF13+V3AAbBC+dJsG6Cup6z1ddH33SY4AgPWWCGJdN2D4ttGcVLzIYJ81QsDMPjeFNLwPNV3yngEVuMCa/WcsHelTAjJ0vqUhECT/YZu3BoCwoBhBBAwsToxCGDgQltCEi7PWCE0SP8Cshyw7OyHWOBJDGtaQZsICi7RmOEO3iaZ2CrPAty7mlAziigUOtKGLdP/SuyQ20YlUOoLvYhSysIkldhfhmg6VeLwF8S8h/9ohqtpgQPMNJ2JIYeIT1bhGAlFxSQ8MjKEwgDnzTUlDHwBcEEzQp90tII0k6ZK6ALm0IrLRkIf8UQaIB6OfOcQDcivI4LZmHKrs6TczENbJxhIBL5pIiIjUCJQiUkb5MQ2Up0TlbSB5nNc9ynEqLMiWCJIHYDnqZCPTJK7Gl4Zi/W8gPWOBQoyXSoIEk4QmSh8xUylAZeLmIwkE2gywQCPMgSQIZDgIDFhYFAEapQZQsFd4llZMcnLzNJbCWCqvuBAEBAcAUGtmPOWZm5m8jljOQRZCOtkijeivll7SJRdE8ID/GGwgefWx3wdOVgYOcUEOZZsnRLSoEFxG1KIX9QvbwhU7WDESPfFLoKG4QIEdMYCLIiSUQvkZtnQiMgATJVhDmIlRROmNpk6Dw+kchUeUDooL29nLASpqTWFGZ6EU82RlKAWzm/qyqaKBJmFK8NSiKS5sAIgDU+SEA5X+0lFMakxBmFrOMDLyY1UUYTs7KjymmpJvSE0Y4Kj6sB5QiZZz3Z8tDdKCF4XmABM7AgO4RxNr/eBcNq2gXr+IK4Z68nofXKw+QxIDJKoNr6TaZ4929sfLiuQEH1vWWTdpuYO8UiR6LJMIjmJEis0KOQo9QArLxze3dta2NVntbUlSAWMu/wmG2upq/zzmqA/OUS/H/RWLNODGBIRFKoYB3hnlxxN36ta6103XEP+5znStiwUHeEH8iHAnsbTuYgqDA6ec0AHZLrC2WAzkX7iLXcaAlb400917S6I1yQggigOZwhHKNgXbYIaXxlzuzVD1gutxbWKkJJ1TFXvfZK0BnhR2F9u6lNPp8lZZOLukBMjlwQrwwQZh0BWqunCAeeXAks8zXwH0exOmOQXDniLKjdu1roh5Tjvo8xybfrDUgn1mxdf6ggwGEYMGNDleLxjwmEoo1+NUk11VBpEbdLzl0fkNIbgM2dFMpRAhoEAu7G0Cb6+WOycMogEl6IHBeKCFCxSBwf86IKPWoAdXKeImD3xo4nxZxuVm5ZPPh04RFV2SAbFR801Heh0UKDCUdzqHAxwQghBMGoUzaLoHPCiLAgtJraoR+sqmXpmhp+jGhHkrlCAQA2RroIAYMHkDORDwcRtA4Cu8E87jc3Go1UhlzT5RzxJGNSLBGFX8RE9L17qWeWkNgEvbAARwQnEYxosCCmBIp+9bVhkjM12E5rI9biiBfJK9btV5QCzjqkiNzX3JqhUQ2GNhwJDKooAc/IfAcMaQtScA7umuB8IDKCOEt8ZuWzGcVja+yKgV4gEkjQ8APgBBVmwQcCFJOgobQIERsFltfsNpfcd2tEQs9beZbtm0Dkf/ZRyA0OeIQJYhVVDoE/4lFhRgZgUnoLZsckDQIyWB1gww7wR04AMFOMEKYljgenzjNg7O4K8KhzmNmZ31JNphsDm5AUX+G7oUWEsMLh5Spk8saQYwGQAP0MEIIHo2BZj8fRfoLbCgVVust/rUWSdtT98TZK77yMvAKeue+QUCEPjp1vkeAeOvgPZ8t30EUbjWpjkQAwMO+a3yw/qMC1+ROiRy9A5yA6MZYsd4D2ysngu2vnNKhQdkHu5wIugdGgDoJlr5bX2n+elD4gJBtwcCgBD+fdAQeMGThClplNcENE7QqIjhBGUayAQsj3vzEFM7wA/jUC2bfIld7iBvIL97/3zPOZMYLkfGW28PUIzVLEAI6BAd+gbmiaAeNv9kFJ8OLyOz9kq/AkyiS4uw33A9z8kpAfmCLsCAbPuq46K2F8C8iDI4X/GfdhK/S4IjvzNAwwtBD+mBcJE4meoNpdCOGUgyJFCDAOMfzTgePJurBfCIw0AmHIwAeKo/uVIpmBrB9+CsILwP7LMIzqgRz+GeCqi4lKM2YJGA4sMoLYgi1yLAF9IdZyPCDnGt39pCNYEB1lADseACOuuLY8mIZJqOnuG2l6OqcYO28XEnGSGD2qO0E/zC7iC2PFQN+xoOxVERN4Q3anI6w4ICE0iD2qukm4GsFygctrA721qu6UqDGv+QAvOaITLMiLHiQx+pq07cFrHIoOo6HrYZG52zoidcMNAopnwKEAbDqyyikSiaNSGJkyDiHjLAEFB0DxljvkiCA14cjN6YsDcCsdXrLRkrpfSpirgLDqMgmzSjgBgYJt2SFgU5gU6JgpJhNLKZpu9av/QDv9vYOkBRAGG8DjRAxq5CMJCaRfQywpRrmUSEqDWyspZaOKe6tlujNkoZFuUiv74bR3I0CD1AR91ggmBcvefYJEezgAuYC1tSxxfYkTeBOrKgNVjsrJXzwOZLIY48SPXrHRrwgZD0CxfoCJlgmioAAbEKuvXCKvgwuhxwul0zgrcDuh0oGevSJg6So9L/Krw9NBOhmqWLM8m0YLbtQBGy6UjgYjUhsKQU5Jcn4AMHOIOBaLramSAMOMdTUrg9VCnNkJLjUg70i6Sj9JA8mCqjREuv8ENC8iUOizhHcZMssJwpEIMeULc1ZAEhuEpQaplGoqjADDmcAYIo+rbRI7YY85FvKYGSbMuumAhHuok3yIPSS5my0oAmaJ6eQSXRAxpS/KdaessgHMgGmbnIlEwBREb2G74mcEHGMwgM6TVQUg4n3KvCmaQ+k4M1AIJ6VAE8GT2zxCwtWgLV9Iptoq7SYgLPiILW4QG2oSyqAhzlAimqSIhuwYGHPD3ipBJB8p0ORM6eUA43PCmHwAPW/4ysgtgTBzjHCGjCy+qh4DCWDhMzYMmCIBCd8eQODvEf/uQJfNyv87ql3KK9ktxJoLsuPSom8UwSjRQ+6aopAO0JIjAC8zyOGUvNXJoSFiqLmNiBbDyS+8KUmASaMhg6Cn2PM1gDFWUTzjTCzBq+2BmYDfQfEnGxN1nQcTq0IagCF2WMgbwwILUJeMGm7ILL8yRFHMiB3MLAEEKOh6CiOsgxIu1DsnonK8WJJpBRhKACOTiclwCWD7CqekS0DlCDLJTPJCUhMi01Lb2O9ITTruCxxLAnGpEb+nwMFFE16wLJkRDQToyqX7yOyFjKQJ1Tk9CyX5mdLpqi5vgNpjDQvf9y0myiS3KZqzQ5zWMMwT2oUo3wqG0puIRAgUQ1iY7Y0HzcRf2TgC3RAmMpAi0ArhSZoJvqU1Bdz+BLvz6wyk8lx3BsDKsyVZG4QXYxrIXggZukKNuxuKbyJywbRVCUAhLADkS9soLBU3sb1pFAg18LnPt8IRbSgpY8iEUarkwVSrGKqi4NwVJFDSDkVhPVGWCh1m3lVlpTnCEgwIQ4Cuwrm0mLVCndz4vyQmTTJ+UA1uQz1wOqTBVhAxLoA3s9CctzHX6EyyGQ1AmTP/KRrFxtqipAyeCCDMVIAl78OnLjCukCm5oQTqysV4kVCdloiYIgsOJpESNgA48gxR/tFJr/Vc7bLMancgNPBaOVkojR3EKDTA3xRNkRyiB3GwA34D2Yjdm2+yykPct3jCUctDkn2aaKAhx1pKoi2EZH5NH/jKQ9EVs+LNkgpbGDuDQpUFqqDYlufQG4OygMbVpxGQNSnMy9va0x4Lf4eYO/TRwKjLadpFvcStfPW1zcaroGMFMpZb4qmIERUa0MQTxVkVXrEhIL7YycZUIcfFw28VXuLEpQNQHOEtnStQgvuFsIxVopXRg6Ubod6oFLE5EDWNvLulPX3YpbNcbzvJjfBd6GCBEsGDiPNUxu4icG0BOCqAKgqwLMU9bbAgPh5U+m9YujiFgTBcqD9UMwWIIzCKzb/+jdAgyR22VedTW35OEt52C1432qyQUMotCDNWjRpTiafeVRsS3MZk0N9Uy/xsuQTAKZbmJSNaVftFzLvwNKPrC5IFkr4YOgB5jgFNmM8O0MZErMBrZSOThaTsWNEFHfLJCltgGxkQFNEA5JKQydgZCCFS1AvYGusLrYUCUUF95elNsOPFgCcgWA0pswax2NONiD9JMDJFmByoKIPGjdBNElHkZL42Ah8wKfb5KPKkhi9ygETBzOjcNgGqseLKXiyPRVGT6DnJ3i+5ADPqgrI0Y1LuC4kohirNogAvjhMwZQXsqC8v2QFsjdT+S6lGQLYXsZPxqOreNjk/0yPOiDtf/s3ProjpYk5KyjAYYZgbEj0Ln0qUZGSwImCIi9uBM4qKzlDjAwMbkrvGTNTMFsiCM7RgAE5bbkKx6V3pL5y7Z1D8aDtTdlN2mJgMgLgSj9v5fBmcut5bb0sumljyYk5KJtj1P2P1SDl8jLlTE6CDXECDVM2GU+yuxVi0pVvtODSpWxuUbbpaA1xkIgFGEFZyJtgVRlDy2DQhJOtjqkAek712WN539mjB/liNLE5DsBVIBGaMHAg+uNtqxbYiRi14Tm45brjhQoWHa7kBTyX4kGXnglEEPjXlOjCMzg6JL2YtFkOAiyg5ERLZlyyTY26Zj2ibATPip4FIuY5MST6Z3/DtC8g7mz4maepl8FgEpp1g0fkBsd2uTTswCFFGo+PkOOdgEuWIGnBuVvoejRSF92xmREs+qvhlmSBuux9opNXTcoqxSyntM0zo2QdrhRIwCfZqeWVmsA5QI+gMy61utthVjvXFriDee9FmyG+OIv1OPBRmwcdp2eVd/EdmySyNPHlmzVnN/JtuzLxuzMpiGCzsPA1GzJBubPFu0v9Jv+M2y6Hu3UBsWVVe2dRmDEjUwJMN7WlumBJULToO3cjlCnYhDC022J9rCDtKDh/W2JzurIjOjiVu7lZu7mdu7nTmg8hO7ppu7qtu7rxu7s1u7t5u7u9u7vBu/wFu/xJu/y/zbv80bv9Fbv9Wbv9nbv94bv+Jbv+abv+rbv+8bv/Nbv/ebv/vbv/wbwABfwASfwAjfwA0fwBFfwBWfwBnfwB4fwCJfwCafwCrfwC8fwDNfwDefwDvfwDwfxEBfxESfxEjfxE0fxFFfxFWfxFnfxF4dxzIbhGKdxNAkLNCgEQgAEQCCEQli+GqfxAHgpQpgDANiCLQiEJA8EI9+COQAEjwZyEhdyNxCEI/8DQ6AMrwkgQ/iDIxeEIY3yERdyF6jyOcgDlOunPJiDLRAEKA9zDRdyQ0ByEYaIKQ+ELSCENwdxIfeDLUA++AKELfgDPe9wIa9yOgeJKWdzQofzAOjyrf9ujJdadEa3cD7fAkiHrxvYAj+gdAoX8jzYAnfuLlAX9U6HcCHf9JuwdLc2dQJf9YQQciH/jXlmddAT9FZv8DEPdYSKdQRQBDMAdmBXBERgiDjfAjfH9QC3dI2IdSGHADMYiGAP9kQo9gAIBE6nIBlN7mS3blT/8wVp9peCdoKQdmCn9q0JAELYAkaey/s8Km7v7k8/doMI9wz4dnIvd2KH9bDY9a345mKXAD8ghP4VBADwg4EBhIIvhKMZgIQHgIH/DT/4gz+wZ68xBEEQBGwXckCYA0G4K4fYeIOXePmZEolHvgAggB2Hd5Pk8yW38WZ3g3EviHI3g0MgMzSIgzn/+AN6ntFjEgk8mIM58AP7cINAwHJOfxGOp5pAwAP78IM2x4NAyHMAcHIIIIRAmAlZZ3oI+ANB2Pg5+AimfwhDz/MvRoAAcIMihw83EPKJ196VN2wTEPqQWt26n/qDoHmFOIRDUAQ/mANFKIlDQAR37+R8TAiKN4ShB4A/gHj4YBEztw9A+AO0DwT/FGGrj3Uz9xrI/3SUn4OmDwBAwPbiSIGCB/c8GP1SAgQ4hHtejFoIwPOXGNrZl3mDyHu95/stOPeREHxHqvgmgbB0H/oU+HzJH/iXAvtr8Xoud4M/8AM0sA+GzwNBkKPiv3JZn4MoNAA5MH3SF4TEf3JZHwjG/wf3f2999UWDUDc0NGD/9q/9mS/3hdh7RdgCRbD5kRh2hzABTDdYgAAgEAAhPwEWzJkDqJCgPwHQzCEgEMKcAIYC/TFEaKDAjYEMcaQoaOMcg27mAPjwMKJAARwBSEjRcqWfgnNcBAAQiBBDPykD4PH5cijRokaPIk2qdCnTpk6fQo0qdSrVqlavYs2qdSvXrl6/gg0rNqmBGwC2DHWjdq0ZjmbMKFL0dm5bo4cOKfqoqOohREpbuEHaIufRggd3pkQQCIIJlgDcCLK4BWcAQn84ujiZZ2CLLYVyQgiEAEBElXgEzSyEUmDJgTkDBwjwB9BDCLERQvhpYizv3r5/A/8PLnw48eLGjyNPzjX22dwcB0CPDlLg3JRy6R69m9fQIauICIc1TDpP7ACCNs9xbihynkDl5aBsMTg2IKEwFwsckN7AzdiWXcvE2QIzLdDCT/UF0IJMsaH2mHIPQhihhBNSWKGFF2KY4VDMTfZSeeXVUddcibjhwnVwIYVIIlvI4VdViGSA1AISRRUgQQYBAEhphQSy2x8O6UfIQXMYkpMgPrWHE0JC5jGYH5dVVtofBqVApFKx3bDYkEUCEplFokkQCHkaklmmmWeimaaaa7KJFJZboLHhhwLsBcCIgIh2nYtFvRnnVQMataBV4rGmkxyxtSCIIHM4JNBJAv2RQk7/Ov5RUmxzCCnBZYuigShr9pFVGWuA/ATpHIcCtVqbq7Laqquvwhprqwd5RtScErQ1oiFbCJKCIom4CVSHYQlqVQEptQSBHKWmpBZ4AqTg7AcDFbhbAASMBiIeHF2Lh59MIYqHC67VNlpL0cqarrrrstuuu++CG8AWG9n6oa8jErLFFo4d5R9aWu0Gr8ADE1ywwQcjrCaDDdb7YSJyJbKRvvzyaR7DCWOcscYbc9yxx2L5O0Cw1Fam78QiGxXbFqR+3LLLL8Mcs8zuIlprvPkOtC+gcjY3s88/Ax200EP/dunFoUo8cSCgciubqkRDHbXUU1MddGyFwHnzFn8EEkh+//V2Nl3VY5NdttlnpxsbRvF2GQAgnhHAmAQeyuY12nfjnbfeex8XmxwsLoVlTBDsC5ONM7lhM4Y08t24449DLnBsf2xhbr+63SAA5YFtOACvZUoAWOSjk1666WXSejSfAi0Q09+X0S1I5aCfXrvtt+Me3JuwV/xSTIB8O5MfWedevPHHI9+u31sHzlxOc89E+bLJU1+99ddr+OZNV17rQsCJzQE49uOTX775Ra+kOFmpbYHf+e/DH7/8UcU2/KnN4xG+H4zP37///8sPS7ILBCAMBDaJCSJ4AFwgAxtIPSz5pH1TEohGAME1ff1BgQ7cIAc7WLr3dMlu7QuEIAAhBxT+eTCFKlwh35hjOBbCMIYytEpAAAAh+QQFAwAAACw3AF0AiQMPAoYAAAD////6+vgBAQH8/Pr4+PXz8/H+/vzy8O3U2tnk5eHs7uv49vDo6ebv7OnZ3tzz9vOXr5Pq8+6TspzQ1dDI1MoZddDO0M718+mjtJba29STqY/y7+OGp472+vTq693g4d6IrZXb5dzW19Gnu57R07/s5tHLzcX8+u2hrY/k4dPs5+C8yrj+/fTI28/NzLUUFBXX4ti7vLq/07+0t5eqvLA9P0G1wbnDxb6xwabBy8Xl7ucuLi6zysG6xbB0dHTl3cZ7pI+ctqDExqje6t34/vrb1sKNjY2jpqUfICH69uOev6rV28mtx7Worqm9vqiSo4ny7ddFSlIjk+21r4mvtK7c4MtXV1diYmLCvprG4+J5m4i+08/S39GFhYXUxaDc7Obp+vSmqIXIt4yZmZnf0a+LnpHM9P2Dsdl7fX5rvPhsnMtPtv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWSBJaZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxhAqytba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e0QLf4uPk5ebn6Om14ert7u/w8fK2CfP29/j5+vv8nxX9AAMKHEiwoMGDCBMqXMiwocOHECNKnCiNiT+KGDNq3Mixo8ePIEOKjPaPlIaRhWihXMmyZT4dNcIAUHFqhMubOHPqXOhAgAwaO4MKHUq0qNGjSAmCSGopRiUGTKNKnUrV0w5PJxYJwFC1q9evYCF9ULQ1rNmzaEGKaJTgZMZ6af/jyp3LCu5BB3Tz6t3r6sEDfgb4Ch4cdakkDTo2cSBYlrDjx0UNa510Aog8do0wQ97MmS/XdcGUDNLcubRpoXYnGzIyDe/p17DzPnkEtVDgmdRqi2ocu7fvgDdAsXbk2hoKq7+TK+8XI3EmCMujS58eLDg63sgRUN/O+OwNmc8bFQewQHc8A+MNYSIf5RB67vDjK6tQRBQXQRVcCJIMrEAi0qGEg9dtlKjQnnwIJojOWvMQqAgF/xXQgIIUVsgNf2NBAqAv63XiICMmWCjiiLukBkBJlsjAiH+LpIeNeZ9staFxJNb4zHvmMPGBW5YU4J9lAACFSANm4MYMdK58OJr/jUxGVV85YJDXIW22MeKWGTNkuBozDKqiwJTuNSkmUx70IwQJ+52Y2YyasOkhJZ8pRgiSc2Iz3Jh45jbPnYjQmeacbl4WZyTa5WnooeRlcsSWreDYHyUXICrppE+pJ54iSLCiZKUliHWKAjRZSumolKo4CoSDvFDTX+cgsGmdpMZ6aKAm7eOjrLiSCKMoESCC4iIgnGTieYUC0EKuyCbYxSlCikHjpz0mKy2eEhhynyFVrJJtXXnuOu23pWipobHPFcsJFdWA6R6L5H7lKriwVXvPVYfcAEWQglgnSAj6tQtrtM68ioiwS8Jr8EDb8nMtIfriW8gE/wqi7iT8JSOA/0rj+iuIiwd3/I4TWal5zQ5OAbBByZ6YuEENNQwigg8uL6bIAgDjt4u4h2BMlqgRe+xzO841LJCQADQhQpeSnOBnmFWqwq4rQBYM6M9U5/WBE73aLIqqFiViqpUT/vJ0xoMw4ejUK7aLmcBVtx3WDFJzgiYhQzi3WgpWRMn0mLR61bfbDtlFhMkmC6Hx4YwaEirMiIRYtpot7+0pnCA+CtjfYGEOuEQTsCCy4oknci/d+HU9yAYMD7Fx3Proe4A+mm8uey6mpwCsJs4eQrQP8q6uCc09V5pK7FK2AySfq9w6+/KbFFk0JzozkkMWDxMCdwaEgxfeLKPEbm7Tj6zACP+9HBnWe6PMxxqpkY+HwjgAQnRAwg6zEeIsFKrv+3yivpPL6iTnu4SVKhEqxJFlQ8RjSHqOJTGexWhp6UPUFnbWQLbwSBGoo94h8vc8uHUga90rkKYI5UDweQNnrKsGxyIopiD8ByuGYEEGC6G6JnRAa3Vb07NIaA9vjbCALAyiCDXRqxKoioOEy9fKOlCyTp1Ib4waVgkN+KA+DY+CKSneIFyTwGxA5XsUY50PqYiKLubDjEJshRPs80BGGE4QWchf7oiGPRs+bgIiWE8BlpW2PkpCZqYIzOCU58dEDUpiOkNjujRxwRem8ZE3QJUnDhA9bAFAVfY7xOgGkYOIAU//cn+0YpXC9oq1hQ8kUQOB+B4pxJYxEDluxF7hBJE7Q7wRhLgRUP/EGLNsaKABYxsJJmfBDkWy8pjse0Qt4Vi9011yim2KxBdGwYEDZXFIaCPmLjMSMmR6M2QBPNFtsFcbxgXzQKtsBA3QlYghUG8GsvzjxChTCyBK7Gn1SSchxpCqjpTFJt4MaKL+YrQ8mqwktsMk44aZM0VEThEu1GDokvkpUn5OOCbkZfA+YkyBptFzVNrEBD4YUkdUrI/znCQDDtmIMVjTNZ9MBNG2yU2wNNIWKfXoJ6pgNxwQYgkQMwQNGNq+R2wgfvuagOHmxrAlOKyTiUBeIB0ZCSkCUBHW/+zQB7rZUYFYIRdd1algltrQRBTwOBBgDSbJQMZBuHCZDvspMxURNeH5UEIbbcrOjvOg9VUwryJZoVhl9atFCE0lTSyEDobJoNfh5gOD8qkmEeFCufIRo6LkYUYr6bR1aW2woJ1HWyJBAqhe05kbcyInHQfHLpTpEEiYgGmDWgkK7KA+wQQscew2uSumMLTAlcgNoGitf6COcExdUoj8hALHxlB/qFUEB8WgWuJk1ICFAtDfthtN9YR1LlYN7nZ4m8RLUVR3ZgUYaYwQKkpqDIxa7N/EtHub3MYIlL4hn3gphEtDTOh/cIPfJqlJOrIZC41rY6n1BpeiISFtvxCeyP8ETGc9oV2Upixg8P4cscwTBGextCwwoShZXZpSEL6nzZciyvDb2/FvO/WLcHKUeohldU5fGWAohcnjRBe8kS22JAQN3qdZ9tGCel8acS5NDKewCRa/Mo6yPLopiR6YUG+2AyGBwgaFLklAho+gclyzyIRhomuMiJyFVM+b2Yyqi2YfMAHKOnFWcp2NNBZtq5T3vAzJVuK4JuVxilHoqxO1LMb942yiJOo74AEzTU/SrWL7pBIBOJd7xXkAkblXSEnP7K+CWPN9saFpPkewCVJKKxYHlgOIhfe5ncpfcgf1BHaeAEIjeB0gdwlBKDPtpvWNGAEIUEkW96SL9r0uk///xA3sNKWupmZhBYxmpVdHAnk/NhCoX+zfsnGA2LBiW9oYbQl9LrvNoHD2FtO1a/mUONrN6Nxn0asqBYi53OXldDa3nVO6BhqOLH5swVawg5gebtfVDGVo4C2KB/P5f5vogfMQkdCThIwColYEeX1KvZn62bbgy66da9zLCP2WtauJ0xP41AIDZCrS1kV3pz2Ni2QzPMLtZiT8UH0pmZmg5Zx4gVLjqWeemWuaFvF5t9fNZknUEqYk5x9r19xyv5oXmjTfxJxXYW5wqfvmE13FcH6s60og2qmmBQDVuf3ee6sHAzIDtwlfpbOc5yucwa4HPkWFmSSTUDO0ItB3iwys/8HL6utgp+xIH+qJNcrVel6zcqHdrrivTgYFrGHgK9sDUCwKdgW1YSkGlluvbcKIKx4YTqah/EVFU9U2YbU54k/Z7zLayPAB5W0OfIBQonciW5VtOhQluYhpE+ICGbDdJS2iKgb4WTeYIH4/J0RI1X1owHFjbdmjehsD8fXFlrcUore4Uql6AMU0Fbfk/F5o8Uo/QKNGZgKGm1qLZJwTISjhX2wOeXgCepYV5knJxA51NSGsJRko5FP2pFFbpAJm8yes8YBNY03P5F/DwU7QpmyU40DFgmak4Fy4J386BReuxwmZAleTFgOvVXSFwHOEEwHKB1LYZEVAhALfoxLm5v84KMd2/WR6V0eBRfVZzmKDiRBT78KCl3JpROVHMtIjISgiJXhV0CNWRDBTnNQJCwMAKNhAOPBav8QWE8J4hLABYDZX90Rl7JJ56OcyWlEsO7Zp6gdpCNd1k/Y9wzEChUJc72YScDczChZy3QVhT+g2uJYKIOSCj5Mwj/BQ5IYmyXUugkB0fPJSDag2BnRr/ZQF7HR8osYaVjhytTFNKXRSpTAE2pNeKYEBl5YJnVcKtceJr2FtibcJVXAnUOB70BKEkjA3PoCLkGdupxdqTdeDf9IARsBPM+FcI4CDL9AeUBEy0DY40igyK3huaSONoadnN7Vtq9Zpywg658Yu4oj/c2DHJ8o3CsGnYgWWKZTAe2MWYJ8DSFHwffMWYo3TW8ETcLMxFhrEGo4Dc/qGaT23bHTIjQN0T6Soi8wmg+/FfzdBIO+XEChmcLMYCvknV/83CdniToVwL8z3Qk9WHFtoCPzkjAnINYOgQaIYN6sINmWVgcQociOXdY6gGQ7AARqgAlAxj6W3IpSncIR3MBDHC4/mUYwHBTPAAr14hQEnUipWXSeAMas0HnfGQ99nAqJodylWCOGXGTnXdReQZwXJdL3mgVPEeRq4RdZUAdXyStYYZQ73lqEFM0CRXEvYjhtmO+NnCceFOsZHW2rSADJDSko3JWsxNiOZO8NEPaKR/0xACAArWYFI9G3b2ECXdVpfVEVRxzbm0YpF+GJueWC5JHlIuFGDOCY/WZoV6XbY1zUWJgo+UAU1YHVJYzdN0ANdwERL9nr8U1j2mHK3s4AlpJWaKZeUhorKhVcplFZytkt7SI8zGFKnKWOBN53y8ZrtwwKA9IiV0AN1mZHDeHUmM0cP1YzCKWmHVEuIlnONKSX2dlEwWYQ0oXSHkIGEppBp1iFEYwTHcp/cWECWsXW+VmTWKTsaVpNidUP1OApigCa3CIBVJoxql2/ws2FSUx6I0JQUNZLIGRj3hoyVQz47mKHRKZhMB45XFZoDV5ktOaBcGZQeM5a00QCeM2yqGf+I00I9KbCjj+Nj+OGLeMlMMBFm+4J9NDSG5yihJxqJEpUe54mcUEp+iXKXLspslsiKy/aTCqA6VgB0q0SlDeSQMwNQMmqQg+UoMwJxBWooftEIToBEkQibjzdZhwCigqAqKTAEOValU0kLgkQum9h+trE+xrhu3/cE1RgJLTp3mBCFW2kTlZY0UjgaCeQoT1Yzp7CmRPFdOENeAaVp3QSn1kKnQ/RM/RVVNaCXVsihcERuj8MnKqihXNkCOSlHdNUlnWJRqUQnVqCDPGgZ0DmTAbmoTeOZxAghE3J/3Hd8juZ5mZcJE0Kc4pGo8Felv1FMcXhP/rEYACKtbvM1QjX/ZoOQO06lc0VDAsmnkEmakoEqZMSojuGZTKp0EkBwEtYUme9aV0akpI2JJDLTnvshM43EWN5GC5axAjo5c+JZUo70h2HaWUnCJJggGv1SbkMpUGnXTJ3gUx0QBFmmhUe1Y5FopIvQro+jJMSpbWwmq+CoohO6QY4JdOwhFn+KMTPiZFuJdceXMNu6aeSxjRn3AkAiGmJ6j7FQMfoEPHiGKLlVJOX6gaPisw5FspSQAiY7ruJKcZwCSqToA4zpMuspWegks/jxSTGgYaQHKwC1KwYXPTB5sWQ5oATHg9Z6fKcaJsq6sKyQmpQakN1iozrbjeBSP1d7ha6APTzKMBmw/5fHl0SDs3svK7JpIpyV1DtAZBHNiWlgOhrmJiR7mGajBJSNghdUwLKndKOmKaUvCgvn1woUIIt+A0CH1C8LcEE7KW3qdJDoRarwaDIMRrVzFVTxdEGRiXKLESo3OR5UUAL6Rbe5uz+6WqEapKLSagBGlLZR52IElEIUyKVhp6SOOi4jCnnGuRvacKAUUZQbiF0DuKRVQ27Khz0XCT+qKoa6gzoK2k7CeHZjGGQP00m4JJj5gZ8LOqoBe10JV1csC5Mr2W59OEWJ6qUKSyv8SbfmYR4a5pDOZ74mW04FfBhcd62Vapz0cWBrCDi96AM3NL+kKjoUqr/5xk4/9jC1lP+OxSkK/AQUzehSpcOEsDdz6RFORmelXqm9xtoiqPBzmfoURVsMsLsSmsEFkUM8hBSvOfpc0YXFk7UB8rMI+ngIQPXCjNCM+oYdoIICmOSP9doISHSX9YMDMXa8ByJmULd0LHOPYESaUvcJeSZOfou6pXACn6gaDBsLs6epURETYhwo9QMBjsw8poKIFNe7hBAEF3lUymQ/60rDXuNfJuBzNAEgyKisU0ez9Wl+1Ms9RwOaj0OHjVXIplwlamiT2dpwNaa+P5xiZXEAwUZgCAoJcLsZAtpiQ0oebTl7o3IvhduVO7fCpNXCDvVURWOkQhC/YoyIXZeVqhs6IWIECSf/PiggisczE5VJvvAKgnhsYLNKyLIrmnIHyJ/ZcPP6V5pjSloXl74cF5oTPTnFJq+FzKQyBKblqvQ7hoCZxWXjPH3pRleolKEwArQZAJfCYsLCUkocajQhqz1QcDQjfV1ZjZmpClYHkHpbvjSZs8SRa1bKfrvlJRbyio1LxFNiX4i8xHIhucEhSyGw06gFpNBVCT4tCUUEWAB7bSYwvgfCyzPbdO7lokVdQQlZyLMbuFwU1WyYGUxnGDANNsFmp6u2rXVLO3PhJtDRxwfENMUURP2FyfPGxQpKUoVQuFGVRF7N0GyGvH5Wn1FqhrcqYkvHaXHXXGl41RxCRWX6L966/wkXPaC38n181VV+yptVhaKDYbbExc6sV4m3UNNTcdCUxSuc7AhE58qPtYOPCZN56tcAMAZAcIq2MZ+TC89Kio/hpsfbA62Hk9aYVcaSLXO/DCxP6hujVUITVHTdykI8Dc35lnw27JSZVLI/Tc6jyLdVtYSWEZZWPD583Gsaa6awok9uUdQdqAt9V6ppKU0G6bCxcakzDTP0CExiGn19fMRLKsSSkqr+G0M/ttMklQIulAPcuYhxWl4PKq7Owp1e3XzP/SbBU01VDKPgsM2aEtmqWaCSQawat95UQtL+4iZWUNwtZnJRi32UXAjsiEGsyqHoGgJPe6ryA7ytlr0vS/9DXzADVoBEQPAFdb0iunTAG2Pf00Ddsn0qDhDeIc6SMg1L1Z0gTSy4A3Spv00M3G3SCbFGkrwIjqfcVeuIWft/6xTXq7va6rzjC9ielAtk65vPCncBCiUMrS3hCnvSOcMuZq1D8eUdm8Ui9hsJzhGpPVItkLrnkkIBgu41vljNGauFCI3l+9KgYXwIKW4IOl43oipiyNiudS2K/VlWF4ZvR26Cyfg7xFHLw5DXliDkGnLCXYGd3m1YUQ6GynVb5fVfzHrbmDoYHtaRA17QiQ4JDLnrisCqo+o4jGu6n2a0kevkzxGCNtHrDCs+4NoMTX66fx2sfByfSdFNw5KmYeP/F6/U40N+7JUc7q8O4XTxDyBeJMJrS+sEBfmbCFvIwr8p7HUK5imZOMa+Ty+Er4L93r3tb6tQseYqNqAQvhroRAMSHc6R5ZIT0YHbsA9PxGpuvjFNFYxDVv0LoYuuTuBpuFkDaEsQ8tCa2AV22NzMCe/sW7l869sQkaI76seJ0kjhXCriqetnCt/Bg4UCMq8N5Zidbq6O8lPeEh0f4JAAvPrjoJHIi0ABk8iIr4StpPle76lUrQQs5QSfiwX/Ji5/FNHjAqZO2/+uHjYrkAPzwZuN5stO7gQh6Jsc3Ygbp28vUxWKOrQlw8DyBL8eJOJMoqot7kai24qetziFbqQ+//Y1p+ysC8t8gWN/TfZ98iFZmArljNVpfo9361MmWgnN6xFbwOImE+POUulZTFvoOgmJKwggvrugME0Au+MyF0fM9G22rgAUacvxhw+8AeQt8gQksPeO8Q8oqANasFE3QO+SVhLqbdPmLqjBYkiHMPk54RxK5ewydbeeLdQei0tcrtMaf+/RDAlezUBuYX9y/uqH3/zXUN6y4CDTHm6mQdD9EylZoH20iAzl/8i83/CtAAggAIOEhYaHiImKi4yNjo+QjCmDVAA0hBGFPpYAYpqGQgAbiJ6RHYWZg6MdQYepjE9jhxwaAF9AhrJfhySIUYUNCoMSkYoCh8fFysvMzf/OjMnP0tPGxQvU2Nna29yQHA0FwJiDLYYU3Y64XdWFB9sE1DcQ5IgP6Pf4+fc5g6ETAD5G9eNUqJezDJiWvMIUomGnTJcsTVI0qgKOQV+GLCpTyETCCTqQAcAAQJgKch4JCNOXL9qjDyy74TATExG8SA60JajJs6fPYicIMSlpCEKtegBCGhI27x4DpA1+NhshstDOd1Kz/jQ4UFUHhAOHbAIIapGsQUEmnXIVAtEGgRlCdcgxY8agdYeMDHqRNNeyJT0SZSlHyOVIRze1OqVHVHHRwicRO5as7Orky5idGSZbzwXUvEef1dqR9zEzQVINJI3KrIK1zLDx/ROFKCL/KIWvBLr9SlsMWLah0E5Y5bAQlSyJSnUsxJFRcwBnCRp6zg7BCpsjVZCMzZ3Z5snfRzZVFFkRh6nd06tPlIEIIRHv+y7y0CjnItam8xcWqr0GGEeoScVFTaoxtt6B0kCEyhODjEVRV7+RIJZ0rqBCwga4QZLCRHcVuItQ8Ql2yBgcacDAC1YcJhIu5iGlTGLohBMJVQhqFV5TB8CYj0k19rjeEmAY5c000VzTDoiGPBFUSSSRhiRmUAxToI9UXqbbP/w0mMhanLDyCleI1CBKK6ig0spsXRHiCXJJ2mYWIVGgwIFHZcqnkSUpclYENDihh9lTPoW3X2ZTkgdUlYgm/3qXgUcOOgtAEbhWU2QrIDBMg7bRaI6Yiz5ZCBJ9fiKpisbAYw8xiqaaDZrxHQfWEFssQgMNwdHmykSpoNlWluOkohEuHPJqyQt31pZIeUkOEh1G85Wm6iMBPKtYlM/QuYx90mYbo4gU6EAYNDBBAp9NN5r6oKOXGkqqeOl6mghpmjKZlIzvRnKDtvgWUwlZrE7wGyaXvMUQh4/IhQhffj3ywDVsrhsJR4IKmq969KJL2aQWH/YtuBN3zBKneBkbGGSZjQsnAOfYA0kBDkQ1HsqP1ndSwHeNgvB9AKricb799iNEFsXKGsGGBRWcm8/+PqwKg4OwyMu9Dj/yYcYuNv/7jMTb7kzlUxVr7XU3ApWAQYCJdH3xdqW6pGNVl5RgSF0A/Tfgfud1qohSjS6HSKyNuLNUDHYXosTX+fINgELScUmKKLo98xsUwe1bCND/auLm1Nh8eNLNJ8ccKMZ8ZoN1JKMzKg3aRZJFX+BRh0j469nQpKUMjPmgxOD2WtWM2TCv+0G4ZcsL+DBOm6Ny7+KYYwinmHB+XbpkRxs8u7Dj28tx4yzS+EKGxDp05dovoXMZsijBYp5EOSjuIccTsmyDmufdevWIOKlo6df6PX1V9PdPzQiyY8SoFmEibehIJe3aS5/cIxgJhAFvNrkAAPSnpb1RKD+ocUJ9/JeqUwT/IQRcAVpjDNGQoXVCFQTbErOEY0FWfQF30lGOFTTyvpdITXLzwc+xPvc/YGyGbBzMHX9y5rprBfF1DHJT/WyomFrBr2mPgSDy5FO/U1GPikFzBtSOiC/vqaVxarJQBpSzOBKG6UFgQZ8hyMg0AJSheMrbz+YYsawPcK4YCUDVYtBBmjty8RksSB7V/kjIgqnijYN8TRxR5kf8KaJhYhBICIYSJeAVb2SfUCAiLlABQcADAvTxmx+XoslJ7Kl+YbBfIRNFE7hUsCBfWRYZn0EdDZ1LYfFa34HqRg20wc5S+gCiVfS4ymICaDiZ5MYvYBHIz7gulH00BzGzOAY16ieT/wzSQchaFhQWxICYi3zb3YyZqIUYBIxXeiUlHDGWtrALBezJnkTKOMVGWGYZRBjl1xAgPe84MlX/pKKzpHQkbJHzoM1sCSKEMEBSNqYAtCvE3MIYMkaQQTrDC+cMUmA4Wzm0ntJR4jkOqqr//MOEcTGTPMuiMzCRsAP/kQQhIrLMFEIKOlSogiP0iQjM6ZIRRtqR23bHPnEg66cew9qUGMhLjsHJl3iUlMlIWiXPsA6oWF3ZoKglAdTcSF7uosEMhEUQ5eigPWQh66UUMFRNZFGQXXUfIbYoSCPck6rrgZpGuJc4bPLipXvLARjLAFUhZMKmiuAI8xJEN18scYPBvP/m6ZbhgwyoT1UNNQ08E9EE0+3wPb+DKl79NwSpJrIaQZ3fi0wDBvjU4iJGYNoG3lom24REBwnVkl4IMSAodLReIArNFzyR29HGhq7aGAWrLihEW6i2E7ziKwkuJLAndDYbWSiB24Txwr8WSl02CtVDn7vBoXSsUFMClBWJkgJ3FmNjUDSicam0JPIKUm+YIAZyyfWMKvRgqsDTJPGSReAP6s4RkZpqPd0Li/lqJQf8UIpy2qhOW62iQuskE4YZ8YAagPFbiB3BYnuixjjxTonsyMrYyOM0cM4XmOBVEQPDiY4nwARQDkaQFGdERdGKhHfTWAexQHoInzYChH2B2iz/51qn51GIrzl2DHLtMhQUsXTDHt2H5zhB4dlwIS0qjYmTCdKwHo15eiOYiFXxZdDUVK0okrPWXxqTp3NQOMqwAbKGJnBK5OmZdPtbnV58PEKO0Iy5ZfLeBQ18iX89wRNgfAii8SzlBAKuzvL814gjMaAb2BR8ST5EM4X8yiYswcD/0MESEHePkS5us27MV2iuqJlZuJpA3HjZAosq6gMro2EUriilu7M6PEIBWW0dFIwFvGVp8poJ4QKCXhjqtBpySHbiA00835aiTLSFjIobNmxcMBQibGIndaMKitNEWe1lmcm22q8Z+REhNxN5l4Sur3MP1kt7ZosBKwGtrx8p/9FViTs997xua5by3WzUQgDJsCPMYFICzMm2MRE4Z1mW++51AixLd3IPmK98cK1g+7oZZd0mLIUBCohACyhkNh1J/oiIWDPMFi5JAFkiTKHU8DKbgSEcP9ogVYo3iEF9gS/1GGCZlDxROj0dDkRgdPkuu12/sF1h6ivnoc7mFAKh69dZsdNiWbZuoKbNrZ+elZRMKZdFhDkMZS5AR+AQvLgaTg/cu4Ut2EW/xUUHEyQI0hxlLcUI/gZkUXaeZS7DbwFFVNOvCtyY5JHtu8RGJjyja6I36LKeXeuTfJMXJXGmOBSBOSE0WPBjAY5onMX8T2yWkfguQlIsuJfkqAUJmv/oW2eKUPgaVxqRJpDJBRNYgkXu3Q3eIXJQsz5dm7HzeCq2b21eg/hpHFWLlPOexrKfr4KX4YIdPK+TyDhqftCmgSWNDLGeunDdbWUQOpl3A9Yc+buhHP58RFoUuXc489clh5INTeAD2bY0d6IQl2BuopBtqndGjlcS2jFpZXMBD3Az3zcMv5cq07d4iYJ98mNf/ZdjxcYZtAYUUTIC3SI2bxY4HsByCzAPV/c0j5VMBmFgAJAW/0cIZAIWs6EAPhB4tIFkAliCPmFTgIEJduE5uwU2puAWjVBmxgI97XYpTxB9pMJTz/CBQwIMkfGEkrUzLEM9exJKoRMzNEJXOoT/hIRkMuWwaWMoDhtYc8GjfngxFGyihYTwIWOAOcp1U2LUPQ+4PEyGTjrYc26ID5vmJIPXC3/3UIIABLQVhbEngHdHEbzRhIJogUUzObWkLHoYb4cQgcOXMSVwZyqWCGJYSDGVWu4iTosgBC5FgtigMvK2iFLhHxQ4hpvFh+lDd1nlQ5tyQm70fWMGi5IQbq4khYdQCte2g2uBSbr4E501Um7DDz24A8nWDES4DLJzLylFG26ydpDQjR7FiW41ggQ2Uyagfo4xdD3yZ0T1WUVFDPDVVOAXetXoP0uWCGt2iW11ApllRnpEGF61F9fFfq3nWO8WGr+RRZXQC05kWaKA/3yS5hX9mBmuwTn8d2YF2AzrdhfMA392E1G8t4ct14FEIWxUI0E313gq5GY4NnTRoXTVxz/YUCAUFBNmM3X3BW+Y0VnHtpGKYY6aMYOVhQGlc2s1wCm6Zi51B0Ry5h5ygSHGUoulAHYDJ40lZJTxaIxsomHB9Qz/qAxkpE2YcJanWDQTSCkwc4ICVw8kcWkEZEbfuA3vuD/8tm+woQLq52IG1Jc4N1CXcQPoB5ZaQQR9VniVkVAxpT28wY5zl0CaVB6TVyfAt1KMg2Ve2QqTqZgxcREz5TRZQlxLKC9AQAV16H/upkBQIFYoCH4u0JrAoEq0gFRC2Y4vSA2EpTH6Af+SVWIdtkh+9tiZfxVjoslByBVRXEhwjyB8eaMAZ7gAwYBKzBIuN6NGrBKbmjkOCmctoDcOv7Wc98BxRXFWFXRzZtSDBJaJ1ICeSVIKbQMzUwOPI2Q36GU8lJca68WX7EhfrSEPSFIF50FM6OaMF0IC0tkZ5slB7pFyflIvrjEJaxYcCekeDuAtAdo7KfACAzRjLMlunwg+gfQEj0OiD+qaljBWVjE8TuIvNFAKlahWigCfdicJtmGjhKk7u8UXYWBUzTaCNLIAJzAGvxBwAsVDWhMA5eGSfXODcnRjIxSaCCKhK/oxO/lYi8UCToIfDmSZr0lC2WZbzJOXWzmMXoH/anuXpSzxL8ODlAGZFZGUAg2KMp+2SYsEQ11AaONFZ1snesdZAMDYE3KZkzVSnlhFAOOhj6QEKJ4WbrdkJW46e5zwX8zAhsAgh9SXPMTJNHlSLLqxL2OhqN+ZgFYRFFbwAU0REMjZceFHmlJROaSaqhzCBCc6DSPaCGkni6YqasXDICkwY+6ieA7pMBwAa71ID4W6isWJKMzTcJ0alLx6ILTDnpX6pnoTmYjBemraoYWQSukDOKLVaLxlXn2nopGUEAaJmRXGqdlqcJ46UjHYi54hJpNQi/nQq2aUZZiElA0JRwjDJqRhJHYkmJ0HhliRDSuwq9qifUWHDT6AaYV5/4vx+iyyyhXlkLDkERI9SXTzADg00AVEwBpzOkFNIwy2NULmRYoEYRAvIDk0IEnTdRdK1FWNySXaeKcXSw0juZkh10wboI7cUFmMBau2KVdaIidCaTK4YEmeR2STyB049l5UkoHLgARy+B8KcE924US96RNAKYw9W7TKeZeNMFFSUmwngH1WVGxiha2np0ZN6E2uEEIpMncIuFIhcIBlew8yxCj5anJspCHayDc7Np/OkBMmgC2qmLbK2AzCKXu59UMPV0EblUlE2wxsOVlk+7cG2FG/YzXAEEhUpwytFaDtg0FnhJddgGIfwDT1WQLj4jYsmVInC7rZMLDOyBM1wP+vhgQJQcMEP8usvaZtUKQCOLkJSiqYijRgz0q6NfgncyilzdKygvpdYDBALNCAAJGXubgjvKm7YMM9BtpvsegB46es7zQ5sqgzRscEYiB8pFcI2bhCk7MQ9Hk4M4C95GuAM3WclTFONWYQWgCwRLOqfgaQaskJKYA+Loe2skoBKDe5dbdZLDetnvuwJxmX0HK8QulON9BMs9RG4QsQ4YYDstpcHve/+vC7SWFY4sVAhJeGRPax/BgmEGxIyTaSRubCUAghSeKeLiKn3WQOK1xBGUDEu7EQuLUIPRAGUNqfnCFCIEzFpMIaEAZelRm59Qg7PKsMUDBiLJmaduOwvav/RewKXUDsu4GjpIPwC8UGx5+IActEpTFDGPAFEp0zXQJjKA+cJD0gPtbCko/LmW0cOzMaiPqKvI7www1Cjd4oyTIHthhWXxfwoR6HQ885DFMLWcWngPY1vSQFf96qbAZgAIqICsqlVh0QaYnLHv+ApcoAvImsFejYLEwpWg0rPwHyexFArOzGOb/nA56BTJMwnu82FpNQS5J6y/FgkrzGDB9SvJYKv4EDsI/AiTgspkb7vjm8iE4TGXvitUFhGxxSkc5gOI18jjrDxNDsDGJ4PSKCttWrKSKIxaJ2R23lJrAMBZ2rovGcHs+Hy44AKgK9mzCzL4daNgfQisynO3b8/x7a/Ikf7DVt6Hnttb02gTZyJqZV7KK00QKesbmNICZhnKn7ONDd0D6eljXfOHgtTH0k0AU8+32jIFjjoIr8l58sPQ3SbAhTI5Pf0AJeKEjW3DEkq8+bZMHNZ735EhK7VdJ96VUgcDwkkZgKRytcKcxiPDzPvM2fAM8/zQw7h6wxzEiNWb3DYh7+u2FUuCAkOEkzlQXrZqWhENBlXQwnjDIq84fD+Dxw9AG1ENdmG2SH8NErA6/zk9KzQI8kJSP7pQUioL4VNhB4K9fJ1Ax+F9F3ASo7MaJlZkJ77XCRgFjJCr31VNT+RkLf0zkrFaxj3QizhEOloMClrUVyq0Bv1P9WRjYCDNCTQJBuP1EKjP28q3XZS+oMc0OcmuESqOHF2sIXgfGvpBRwISO0i8IX74McSQ3FiMx8EaEcQZ3b7XaCEXHK9SNxIzQeJ9GyXeACuDUWKVLDCjsrFTSE7tIEeGFTwgoKdjGSNWsc5h0PUzQrtlE+5Kys13EdkaelaPm50sCtWxjOTEo44sNxkfl9lryDOz2bEm7P7EQW5H0InU3WBX5kUIQ4upG7VTd/bWZ+IBwvmtyREjBUpOkQrMGWM+txKYBiiDVGKe44WSKwysZwkgVMShAD3rTbVhLXVRB1gFZEWEgxTJ0qMfByCRElWUIBxNRZZmUJYR1GZzHmJz3/gCw85PJcCDxojLM2BAeAKnBjvw7THIaRWwlwhsw7AmfG0RiWCuo3ITzq2nzRzmqu0k/kHQS1M1vAZ3zkNlVLJBOuWop91OkBTpY9lW+NqpPqcN6atIfOiGNC2hqsSrk8TkRQfr0T5yA5BBGQl9v71pC8mbQ4A6gCaaowkaHuDMAGViCYYuWQmT3SFs2KVBI3xQgygevx4LjkwJ0yBMXH5Kc+DU5AMCi+69rQBKOQpoPntCaQ3s4bH2C6EiEbfFBAmks2LoTt00jShEnzV8AIFk2gttg+TnrdDjehjxAtHlzDZC++NRcNkIPC6TZ8xdjVwortgZY2rQQvlg2Ze+11/+/iQniQWO9a4Ql0ASBw16ObvdIHc8Cx2BdrQeqNEIoWD7klK+4ODaCtM3VGXT3JALG2Fh9MkxMV7ZMgUglZIMeVyWbkkRgNzHpjUSxtxcewquLTbAmGfvL7ehcvYKdRs8R5iUWNEt/CNlKdZizZlU8sO1TuKn9lJRSbgDl2xfTgTaJTz4+8A3H4qQkFGRv2vVoQtxmj1Exh0E+K8XNt5ajLTuWdzu8TNCoIoQKwd4pzs8V9zQz7TkRmb9atm5iGybG+l7Iv6tfd655zHlYyPkXcbQ70IWfyGc+xbIebhJiiw+xUsbpEdFfdoOxTLq0LxaFtD3TsfukU3SIlIclqBv8ir27RIN7xIsmaHt/4TQ/iJL3mW30nkpJs0Wilbh5GZFGhWXZnVoZ6xC/i+nlaGcNPgKRLDU1sSR+9kdUPDEYIQ8bBneog98IEI1bfu4mrDJFq5HdP34391z+YlM/bfGkFCQgIIx8ATEwAhFSHABmHYocRioddik+LiC+RioOZAImcn6ChoqOkpaanqKmqq6yZJZKGAGWZCAAYqAIrtKockQqtignApCrDn7Ght4dOxgICqzcAMwBQxtbXu6BMmKomnFaN1aAb2OXm5+jp6uuknp8OkTqK06QSm5wGtsElr4+U8RSkcTCUYAiAL/hcDXEni53DhxAjsjJiK0yAXof/HMCrpUpDRVbPrOVLl0VfMFUhRR0QoajAqpTvfI1a0K+RxHTORHHA4EHToRzJfv3jBAVTCEUkLFFTOkyI05tQo0qdqi4GKIaRZin8sIBFphSEDh76omQejQ1LiIBimXAoU6pw48rl5CgKpwrZWGmMORIUTHMjSFU6EQqrJgjGJpUqljEqg75zUZqalILeoiaEFpyC0tPrTwBbgiRVtKEaI2AP4kVezbp1q7+hCJfaSyxsJCB2iQIAGiYTDVEGIz25McG18ePpFH+T1BK2ZGvCmjFXnUlrJKwyAsZUdyBd2bV50TlHxziUAhdMUwgZqoJBMAggDuGwfVLHEKCdIiWd/0BuPfL/AAbY0UmRQHbKfIeY4INtgRXYkHCg5HAUJ2PQt8U0RlQSCVjyCejhh37J1thOBBTgkgdCPdPTS+OBqI92prQoHio1nALPLjR8YYU4pnjTGgqlgEWCI58J58JobolVpFKGPSKki1BGGaUKFKXSQmMAxAccIxw+6KWT+e3mG2nbSWlmgBIw556HWmIZ4yc+klLTmxyhggMmGuDVWHk3pcTMmagIpd9QnuwwnTRLkUAOgaMk5ZU8qyQQHaCUVlrbpamAI0qVbvHnzydEfuJphxuix6OlqN50gU8uZYTAmqlmSkwWCNloq09Z5poMeQmuGOsqwWWiaY3x7fCUmP+7LXHsp+hZdY6Iv0Yb7aQEuAkMrKKURkpSymlTRK6DTCjtuOzgZhK5w+QInl+t/MbdjTO1WlG15ijzI0aKJJIFJsGuy8lwp4XKDRjQ1tDBp+gmrPCt55pXzyfunqKoYAtXnE4DDb/043MZz/NJd7T0Nedkb6Wi2TUrmDhKhav0w3JLG3P6lZLhGTSEZ5IsyKEIHkWCGZkWBy20tePZ+4kTbNmEVQenmYdeukMPDaMrMF/r2Md9aixxJjd0O5NI7YB9SE6ByrSrMUgek2CS0rjAqaFcIwoaUlHXbXHRYwPDqX+i6Cmr3YALO/aJz5Ed0U5YOwhSma8V0ICM0kScCRf/1GVmC72zvYO54hTHhRivdP2WJifcMGIIN3xG4nXgrNftgTiGbwpQ5ek0nXbrv0KLO8Mzdv4PMg7FLq8itVICfJf11Hl1mX6P9fWSHX4reDwbTPAUfrtnb2nqPY+C55xxOnSq9oAiTx/t3JGLL8wLcmwgssLCjXHvbQla2CpALDdXm8Q073GBJ0vQCrihvyWQ74CssR+jRpGaoMDiXwRcRzQQiKrT6A4nHSNXBPNmLf2dIgBT05rYaBaKkiCsFC8LWQfLoUCqDSgY/YIf1ZTxMwracC75mF+9ZhY3hxjsU5K7oXEmxTZ2xC59rIFWSMh2QZ2sL0sgwBYnfkYwGVbt/2zhGcnwZrG+4ZXsOcUA2QqvGIr8iUIGnAOAGBsItGM4ixMkYEH7enWluEFCiHhszchM9kSpmAESQkhaHsclxY3BZXMyQNAhKFe2j/jlMaMgQzm86CDlkdEhcYKcJRWRQg6msTkJAd53cAUUd/iIBTOYgSChN8hWSuVzC1RbgzihC8ZFZFGuPGBKICclFYzBV6TYnNn6CCTO1XIpqBifB0cBE5bdg5XJ+eQzaVHHQ3SyLWnEl4b6iKuHnauFuQznalRksjGKb0OVa6I4yXVEdUShmHLRQQinJzivjG6FhVRP5qz4wbxQpHgResia4JEIrKjTnJUrxjR11aA5NSBpPv9gyRg0lCVNfQJBCz0FEdfJ0VfyEyJOCAI65dbRVgYQixmEiBkzslFw4koENaSnGHmIio2K0JoemOmaIAWxUgC0HD/VC+nOJ7h+ECaoSWsaUvzXspI6tUe29CZV9mi2p+byL+SMzCyJioogNgoqLqXnKL6QhWtew6wpHCU0dOK0juEsiIV4gjJJZtW6aoOEz0MoVRa1Krs+NavBKyQnrTGE8JkAbm5EH0SAKQqvijWamXgZPPlotKrOsBQE7M3gMEFVv3oWpWNqV2QasIXPmtaIGi3ni9gGFGRcqRI6TIyNWsVTnCkJe8Q7hVlRWMmf1IRPOZxOABJLCDmucherBF7/gmYB0HsiRamnja5laZnTT/pLQEyVrusMucCTfvIAssEWvo5bEiYcAFsyCBVRmfbCu0LTFJ1MyhiC2qSV5TavuoJHjXKluxvwaAeBsU42eEof2OZXPvuN5Ue1y+ANtsKirpkngydMv/1CipIBzURuIlkN3MpWESvVqyg6CQ7DCHi+L9utrUR2kuHepZIYC7HqAMhSrtWgAnOkEYVLSoDYLsaTy+Tuju3GSw8ZAAQ1WsD4UsIS/2AECmDJAjdJUdo2miN89vWBYw9RBrvkOBKdjCFI4MW2LnThvAD4k18WsFEi1YgGEJZGNL78xTTHZshDroU3KgtaucBnxngO9Ciw/1xCUu0SMs4FtFvhKCwz0C9IuBxLxBDyAhOa8BzKS13DhKIWVmB5TjKjR2czEQRxCVq7bMRwMp7AEwBJ+NSn3mSEuqRZR26nTQN9hwqI0OnxZkkHjoZsTyG0iijI+G/nIoCMyXDMFXbPALschczgFGcxjxTWdfXudK0bpexiG0RFDtqfa6y1913bHEUZ9ijqi7GgdvVQV+S0fHpC6GXYa9zFJRUy3F2cwi4YmVb+tsDlomY7DfzgsvtO97Bkbh9DrSHefjgq3E3A+YLi0pEg650bVMcNA8O2uA02zTChzzqHYgKWQfhpRyBgbIa7d4hVucz1luyHmVvatlhBs8VSif9jD6PlrGiaXZxJnw+URMWmEPDOHZZhWXQ4X2MJVgT4tmVOiGbmO85HDKaNL1UvD+tgJ9lJo93N1xACZJ02R30vjlcj8RnoQE8pt78kMaBMPVvI8kpx/h32QCN2VZ9TqyByZu2s9f3w+pGciaIYHrpHioxavoZ6Cw3m81XI3VSb6Cda3r3waVsVpWPEaExHOwifpvCg4Bvi61rwvGBu6SB69eopnDKuNj5VBhmBu7BXb7MRmtA21SuJFl52ahzsNjS97QRnj3XUP40V85GnDoOvWubPPqwXgwjF14fxtVPewbXxqqC2CuK+eJjR5rM+wpe/gxVVAXrhQz3v1E//UfT/INLo+kJNMD4ME0z7FAjBEYqEJw8kWC/zfNMQAsiTARE1VPU3cKrUCQxBA0RSEhTFChulJx7BSA/YgS82asqgaTfFDgQ0J0Mwapj1O1fWJecHDgIWELRhCkggbB64TrczPRlQdcAhDVeSaDX4g6VABVBwgVLifWqjCpgXZIuQctYSXj6jBTuBCUYnJ0D4bWkyAxsgGhPTb6yUe9W3DprBPwRCAQRWhXZ1fHInErP0eTR4IIuVcSmVCMplETnHJ57RV+dmhnhWCQzRBKr3FY6QYG9SfA8RGDxChHrYUYmAHz2oDvekSA6Bh1umg73CVUMQd8BSIKvyfkDDEnGmWIl4/3iOEEQlMYSlgIdxoVyhaFcrpVaYRhVIlx9wI2OG4CMjAX68kCDFoyXkMHmkwmj+8nyrSGHmIi0Ys3UkZVvD6EpEhAI+Jy1epV6uSB24iArTVmmVU1auIA//R1wmt4wT9i0nIHt85wtvtG3QV4ZH6DzXhoryQX08hnXLx3BpSFlS0Um+aBO7clDrwBDcQFHCWI7giHC9MI2ZQATzSI+PFYmf8AUMERChwiHkOJCsQ4nDwGetgTwnOB2rcw255jvqZQTdyA4RU40USUGQFAoLAhT/qIoOiA3XBI81dZIIJH9nwo9SFSb1QhFAUE1QR2wzkz9TRpPYhpOehDMYwH8Jof+MyBFxRAkoN6dR+1UNsCIAxMd0ulKEUjENRGSEdFGIT7lOHoeR1PULwkQpdCY1MhmWqfUfSml/D1F4b+kbrzAIN7YOU4OJbIk7/oNYnHhRhTeUIJKWaklEa2klsCYpRnmTlLch0CWQhKVoP7kpBPGHz9IDYRGLe8k67qg/GvAB8UEFgXkXnbl6kzKR6oeagCJ7XskOF4CIliCa56duC0cDTokNBrmZdvUqGaMdbFR/h7mQAnU3N6SaIOZCN2GS+lgqcHSbuilokEgI5XEjmTRsIngc6tg6wTl3TiWGNhSL4FANLIOC2PCMrSB91/mcAhed+KOc4Phy6nkTYbYIHRn/EZe2dPkYCSL1UOugl/G5Tp15TQEIhNv5nx7CCHPpIvuiDwkJOOxpoKuBk+PJGEBCZgBimYMEDukJoZFoVr9xR/c1FYz3lTv4iTeIDUnIoa3UjWOQARDmDSNpmqnwTo7IVq4Bn7iwTq0ZFYKimctJbIR5nqCoonUFm4RohkdWCjhKpHKCdI6ggMcRKlRABVYgkr23CFwSEQXKpNppe/VTjz/ocH2GDUsKJWUadmAwCiXXFk7xGxbJChbHjsbxoFz6IR4HCtlZp9wJpiKmEoipcu7gng4BibPZlufgn3paUhaVm6soa2bHTODGIhzlo/vDEXH2kHjKguhQBi9wlQ+w/6WJqj3CACTmqaJnmjDtlEeLiRwUeCqJkHZ8Wp7/Am+h6kqDsY6ukaeDhIe8KR0vZqEXaY3WR6l+9mI9hKfnYFOvkCfSIKi1ekNaIZioUQ6Sspse9YWghBwtcpa4QyvIAXvLFAHaAgnsBRHCkBox+qxCFK01On5ZqXKnuqfMBBPbejlm6nVRozs7OlW6MUYZQHUguqnoqK7hdJU0d5C3N5OrKl3ml5OPVCAb6qcES4XEcI7/QoER8QpBOrE7po61Upqqs6pGKk74anN8Cq4cO0Qk1B9w8a/44ZIpK11/yS60lB3eaFpiOn8O20jvozwMQH7ql6CU8qYYGEtiQLQxi/+zuFJM1BcYl6cEk2WszqldTDaCDxtVQHhNiHocuAQJU8uQSStEWzqRgiKY1TJKjNqnHZWz8+o4wYpN+tCrCvMXbLswoGqu2xJwGRu2HOWc48hVCaCrCeGoS5SqMldZCmSwbXulVeOoUkJ2doMnGCoRqBiwKourfGtSKzUpWeARsQUCGmhMhxev8po4QJYMS0SzAIKyrANQX0uSqfCYPIooGiK4mSuqbgIZFAFOL9BqWHtwxnm7PmWHn8iqVUEYiiu8flUlpakZN6IyrqIlsBSvwPpZhiuxg3O6apsqpBu5wVAD6QcXIxuJwUkB5eEDNqm8xZmgdeIRvuJa2ot1ReD/uJtGY2N6lmTGEddrZA8otKvxm0SVvJiivkEDwA7DE9C2mc8LCtWbu/ZLKfuLQFUGmepAUfnZGv6mhIZKwEIDtAnbiu16WvASVvKCsrUXq9u7imiIR/ERvHTFwQikGLCkJtgnv/iAMe3XHGx4e2mLkt1Gp7wlF+r1utYQvkUFwzu2kVBRIsdYV7gmCrtGiD35UvVTIsPorP9Dq1JxwecUjEg8YeA6CPTrkTknnKqagvaKZtnrSRRxATEKMrfgHlr0xVpMNfsKOo1Ex1YlRa8lZW84piWVJoLlkWTZvdg2s6cwvuegyFARuIyACVuGmgasx66UC3BsoLW0w2shxpTs/yK2uAhq0SB328nrNJ+eg8IFyxwXKMChMFO/y3wbmz26ajN1TMqm1S89zLGuDJxowkB3DAxU0FkLa8vd2T6/XKceXINAbByMSzPSmokddMzELE59tU1jQw5GY8ibyYHzIMhBKyBVsstsQ55wcZrTnEdG0wBaELcJe85CxnzZ1aDQML6T/GOj7M6BE3idLM6Gp7op3M6MycoeMszlQND4fFVl3MlPA1j/a2u+Gr8usszGCyrSvEx3+pIHbVeCssz1HLM+eBwbMcbfXMtrhWwzmdGt1IgoPVqJ6A0H2AhHO0IMtNIlpQPx4TgVML//zLEfbaOvBJ8NPC626yElsbWYe/+kNP1Z95zUEoFVZmgF3vCx8AOzWiyIG0wIoCrQTJ07W93LllN/+7Wl/huiLpxBGNDE/EiGIxCVXd3Wv6LNgDwTCiDHVcisa5NhRnkPFYrKwVCtXGYTETvIbj3YbMK/v3sCH1Cqwxq1fKS2ZmXQhC1ub9F1JcsauZyo0bYqNjUIWj17ZdHMYwXQadjRkR01fg09l/0hpz1zcC1Qd5pRQoNGqEKED4CTCYAxZRHHGTPIPyXRd1baQh3XLuISUA12rY2bqFt5eqgjU00MbE1OmzvTakuOwKWTwM0mo+OTscLIHBrUeQG1M8yWg+fT2mCYJw191z1EARnLkapDF414x93/lg3ncgOJRrKHAxiQOmVhsaEwql6swZKZ3lDClL/CP2wdayjdRL/0i/z9Y4iSonc9PUst4B+iAz9TPBHM0t6kABxOC8b2rEP92yONfDdwou4VCkYtEd5J4XJR1uugIt4tQoWUP52EA9phszSpC6xb35QnFOsMJwkdJ08kmMXz3lIB2yxeFdFB1YZdMy1xSsJCQBAeiiLNODoE2QKHjHIKQ6ThP59620jdmVim3Tma5GZyJ0htKX2kAkxlFVcCqznOKmHZQCxjHZ9Yvqv925yS2gAg2+oiAjZt5t1GnJyDApbK16YV35gUip0U48MwAk6L1UNK0oIOOI6+PyIu2kpr/xy54OAdWCUpbnBXXekKsxHD2chSLHedRATF61c7HOo4keGIfngvA+vmYOvQ19mk/oqleyaJexgHTm1eylGyDbfj1BYgq36KDZa7vjDBbiY1vCktsNZndz6C3exCRKzYLpbSIs9Kem/HOevhJLfAPeGZ4LoKlgrJvu1U8UZucw87EHNQsuyNp0R+JyCZ7dsd+Msu/ourccLsDhhEEJDbUGu+rukNeV1ObKcqZOOrWNEBj0A4IIdflr43+hrp+tcZv5f8nIj6HvEcVS1HQM7aGijh7Xg7TZPcOozcLd0gHziBPkZVzhqxI++Z85liQfJ6uPL4oOh9p+3TGiWV/fIPMP+D+Qa3Po9B/dQcbt4gT4TrHHXpmHby/kyUG29N1l0pUv/yX2WOoy4X0/dBvaAijtMdA2psydyo6qrz/W3S/cz10lFIJc5CZnLtfrXi/47Mw67cp6jFeA/3Z0KWVS8XoH1JtrZ4fw+OWKynGqcIWsEpV7n4Kg741sBFKtC7zt4w80HmyCf5GVogSU/5YCv6oCfc/9ELV8/aHLPrhR8gBE76hv+22UD1m0LaUKyzIyJosr5D7jyRIQ77Rpb6pl+JjtjgWkPvVfjM+EXAtv8fAQn8ZmwK6tTyI8jQKjSwtPfiCF+/gw/93t830Z/pp2jwxl7mg6htCuX5T1W3jxr+a3z/Nlu/9t9fKZrCI8KP3qdO3mFRCXYPCACCg4SFhoeIiYqLjI2Oj5CRjyqRF5KXmJmam5ydnp+goaKjpKWmp6ipqowngx8AOKcgAFGjChoeiRyHCEaCDCurwsPEAAKXlMRcxczNzs/Q0dLT1NXWpwWlCMaGx0rdgsnbtIJU1+fohxojrunu7/Dx8vP09fApmOOXlqnHBI8F9NkbyGwXwYMIEypcyLChMBa/YMVYtKBTsk4O/Dk65pChhEEc7SnoSLIkogYmU6pcSfFfInGoDEhiwMtEtwbsCGXkB0AMy5+rQpLbB7So0aNIk4oKELEVoSwgGQlFRDMqSJmkIAw1okJf/wkRTJSSnMpLqtizaNOqXdupRKMdopR8M/WqpVZBT9jq3cu3r9+/K18YQ8GtEMRcZae5DJaIK6IygCMDeCC5suXLmLFhUDQrIiieRAsdwOrqbt2hgsZkFkZWkYDXrU0JoLy6tu3buCcBxObqomjX2QAMMUY7t7ZLQl971hTSAGPj0KNLjxxLF0VMnV0/9kXYatV2vad3bKFdvPnz6FU6BQd+udlDNw7ZBFJopE4NACBbZ+Qg/cDY/gWoVAIC1lYRJwCyx0pOhOCTSAAIZGcYJcF9V+CFGCoVXIYcmkJBOXMZYsR6N20iWCSnXfVgfx3GU9WH17XIkg4y1lhUDRtRxf9Bd5scGI5A7wkHnkuF2SgbaCgyQqCRTAJVXJNGCUTecK+glEl/CSq4nARhfVdRA/Y1CWRQUO7lY5lommTQR+G4xxxpk+mkHWG+1IcBEORlY2WZDjzHIiQg/NleeWkWauihkJxZn50A0GfFJ3cVQkNYAGjhGXlDttmCQWkaoF+RtAiK6KigWEjqqW2C6hYxB+L3KESp/rJnVOSlWKNGb32CH6q89nqqUBXkJSeokjy3XTLJ+GAVOesQcgCayv1Gpq9oxketoRA8KypqMTU31BdR2JQBZ08JsiqpY+aTHDSRXqtWFy6462u7dHlGH7MnDvLCuYRAVsIXX3TKS5aRcJT/C8HyZrhBwmUWhyXCosy6LA5hUqovAKpxCu3A0xKrEI0Mp+PCDNWFXOOSznYTEIKL5AskSiMF3OATj5osDIPogGyzQq3unGHJrl1QFZG7LdIZVIk5otqhiBWspJyzbuuzNZbQq5gmsTw5NXpI6ljaTIbAtQgNFyPiE168GpvV1vBYy/bbw8Bo7rJzu2k3oYmkcLakOTCCNNzIybOwrzTCyCbgiMdErseADqoIPuMKeUjAwvbLtLcDExBbtMQ1VEHiCaEMOoYi6LRhjLE2aohgygJAAl5QVX7xvYSYwzQ3BgNHVT73ja4KxL4HTw2QKJi6CdJ7J8wY8JkQILrwvKWX/y70A8UQRr3BdM2tIJEbEoFh6iDKucdYXlk09fWir74kXTBigm9BwkIOpr+QiBcLVMg8iBCSFrJ0ofCjlXuIBhAexW99EUOgAhEBNPm9ZBSyk4TtfPad8e0OPgssSNkc8pxZNDCDfpneIGgTQf4MKyKUg8oEuYc+BmgOYun6HAihMQLjMcR+M9yLDGzFvJaETxD6A5/koAcb4G2mbrnKYWQ+tCtBcMFSStyLhIzGu9RFggXDEZ5ymna3cJwgBWSLonisJkb/cOQWTZxezRzXwl/gSlYMdITEymgZftHxLBALk4geyCADyoc4ggnjDC+isSH2rYtyu6MiFzmMWugiO/9hbIUNEaizpA1RaowEzBSF9YDnZTIl2rNkJ55gR7R90oF5sUndskgLnJ3ylUpMwAJOd4jRZOJ/cSpEGegDGVXWTowj4E5PNvgAm0DECBxoIiyXCcuRrIxuiqgTqHC5wSiGJHvkiICDJgiWVjKzL85JxAq/6ZBW6BF1e2SPAGZJtwn6gEvlyKT9WLkocjKnIYoyRLzsycFGBPCHXlvTL8NTSJuBgIAbmUq76KkTX1Bse/zU0oN4xsaIKmUG1ildnBLpS0c8IC/Jy2EDqtIDfXWhCBa9jDJTWs75XTCaHGjCIlRDzWGO8JTI3IUyEbOhCLG0i0fZgUYBsIUgyPSnB8n/Jzc6I4ETrXSOpgzb3FKwBBZCJSdfkOEE3sa89TwLqK7I1xCRqkOyVo+M3OIi2E5CiK8coqpvw2SJGKUyaZmVYxLtCCW6d1eRkA9rjdiATAOGUerpozWLCZWfDmFOqfbVrka5QQ9EcNTHyoNAamvrfiABtBiUVH0P6E9GGkM7laHUe1rIV2l/ugy1tABGFrPsPDAAp+MkEYRcRIlbOFJCRPSWn61FSu5kSxDKFLSimfggt6CARGsua5Kw+IY0+yrCsYiSuO5wJXLEBs16voKhAAhBVEEnV7wpYpzUVUrUgotdkR0QjoxbXDiQ9reQKpJFUPVje8+Co/3So7a6e4lp/07iKIulALyAq0gPFbGtQ/q3IQBq34M7cqZz5vWm9ZxMLYZzveCh9Td3Ml443dOEfU64KCpYlWBPbI8x/RYWtarmCRd5uhVsQ7veeTBCSSIx7bqNxdUob0Mh+oL5+KIzYjWarYIH1UTVeL8vvm6LXZHIJgOZXcvxJWw6J6SJzE2Qg5AhZK053M1eWRAlVtTQujvlD595GjQa6kQlRYRc+nKK0mIRhRZYyRxZUchk3cLcjvg75liYM2SE4purUR0AY9CkmjXh1+JbxhHj+cRmYO4mNDfbDC86HQSkpetiJWEhSlmBombrmD89nmDFiQBuiYGJWQ0NfLDyUTbEYblWxf+EHQGUpQLxJK2bseNMqBIrzBX0sK/xqa0QYiKl+55NHbilJQN6dF1a9iQsXGxWCVvbC4EReg3RUX2dRgZPo2N/wxZbdbBDuRPu8HgkUk9YgTu7yjqNFT47iNVqYE0iIHSYW7dAMEfECmtsz48/bYAFl6q5LEOEeO8tjVSvuh3lnoXYBK5EB32jAuzQiiV0TfFTn0IHOFBr4GZc8mb8rRJ1ro8dZxFlOrqgdfn69pVVTg0K+Dy4daHfAxcllCC0PG5mbssfE6nAJx265Rp3cyokpoNZ5/LZvCD51Y/+kDBSk+MvDXOdp7t1SHM9k0SI+TNCOWeqDHXW63bHAuD92Jr/+7A3pQtXIZhu77OfsgrnMHo09xMfnBnc76S4gLC+gCkbA+RwqSo34ifPigIyld1+hXJ+MPIYSlP+7EsiOzpNDmrsfsjVnBfNSDiQ5M9Tvs8s5wcYYG8GYjHd9ddYnsaH5Wjc+/5HAfeyZzLAyr4XN+7aRsJpl+q4a/8e8Y4fNSFuEIPBqR4hGRAzWXHAzVHg+vngx/q6cR7eqrZO+KGLdF9f3jwrloDQKw0/+MWwywmQAEfGR/9AtE5W9odC+Eolf4j3b4igbI4VgJdVQjr3ShSQFwjWIwIYgRezZOE1Y3vzdPCgfVaXUkF0YYvgSFsybRL4eqnzIdLmOvzjA0/g/yAIIQLm4GAsxXTQVUXb4Hwj6HcsKB9acxAgeIM+iHhOISyfc3g3tF/90VHh0nsY9oNMWHZO+DFeRlsphTI1d1xNeIVGsR46oGhm9QJEiAxYGIYdUQVhwXZk1XBimIZK14KyVVNq+IaLcHt7hxBVVzNyFlFgMlZwuIdKgXwxiFyJAlF8+HsLOIhUBDOAZYiKiA4kFGbbt4iQaDaROImUKAnoRhAPOIWVuIlL+B/x91M7aIOc6IPtsoHoIIXt1Xqj+IZmCA8HA1Y/pYq6IXWrOHnGJw9Won1m9RymyB+iV4vA6HqkAQbBOIh8VYychYzg14vp8IvtVV3KGI2hIBRDQP8F4yaN2Ph7mXWH2diNuFdkn7hfO+iN5NgJBOB//kWL5biOL0GMsEhcFseO8hhHrAaN83iPHmiEgoiP/Dh5fdKPAHlmVmhFAemNFHhioliQyIiAQGYwocYRzqiQwchzLIY55CaRGPlmYJeRHNmRHvmRIBmSIjmSJFmSJnmSKJmSKrmSLNmSLvmSMBmTMjmTNFmTNnmTOJmTOrmTPNmTPvmTQBmUQjmURFmURnmUSJmUSrmUTNmUTvmUUBmVUjmVVFmVVnmVWJmVWrmVXNmVXvmVYBmWYjmWZFmWZnmWaJmWarmWbNmWbvmWcBmXcjmXdFmXdnmXeJmXermXfNmXfvn/l4AZmPKHgYJZmE7WLhFyC4MRAExhmI4JCRdwBFeQBDBQmZZ5BWSAY4+5ma6QBoPAA1fwA0cwml4gBQAwAAPAA0dgj5zplwbwA/szUs7CmAGgAEhgAwMAA17QmoLZmMbgBDAwAD9AmItZm1iQm5fIm4AZAMcpBZf2IKMxArjpmcrpmrhJBphwAIzpBQNwBdXJlwHAAwNAdwnlBANgmt+JlwGAm62YUDLQnelplwHwA+MJKQGABANwBP8VnzEZAO+pn6UynwPQnsPDny/ZcEnAA6PAmAnaaQbakgFwBAMqFZ0kS+45AEhgW5DyoCzJoN5JLhZACGvAhdBpA0mQQLbA/6EreZ8Tmgg6YwEhCqMh2gj+WZ+fgBK1BSZKKEcqqpLrqaAuSggyOqSLoJ3aCQMfmnonsaOS1qMkaaQNkJ+zCaXUKaREKhUC6glM+oRFMxIASm2jB3FBkqHnQ5CA6KTDVqNaB3iGMKQwugYu2gNyip/JqQkWKl+X0B9sWgiZSWLSNwh76ohO6ARdI4fohASzggRkKmNoSms6+gMw8EAzWghuOqmGMAWYOgVqoJtwGnFJF3YsdwiIKghOAD6tUqrasagZmg2B+ghQtahRwZCNunMyIAMjIAU8UIiHUKmJMAWCoKlJgAVo4KuZwAZn0AiGenGYhKo31RnMymAZmh04g/+dpQEBz1oJhrCaIPGcs7poCWADzhkJFuCrV4oImaoG4DqsmmCsyGo+njZmX5qtBfNVAHAgnHamhkCt3NCq3fppOGCroJmsg1CpZwCnMsoIU8AGUmADaLAJbOBR6eZYMzYSF4BZvwY+i/oh+upNg8Gvdhqq/aqRswSavjlLJrsAnQqjACCjZyABBmupl4qpCsuw5himtQSq+0MIsKqzIIGqPqdqlwIA/PCljHkmCZAds3F72lOnIctqjAmaikAjByujXCAFLusIWnAGUmC1Srqk7loIVYqdogMk+hkpZOo8AOCZSMATJSuvjhALJbOx4aF8TUtr2mkDNiAaRqqdLzv/pFowADYgAWhwrEUaAMHqCdxar55ns3zaXPRKo/jatah6rXW7c8bAnJHKYDHqt8FpA902m8Kppc+pYJrgI7NBNIQaqsdwifQKAiewJCNmDP9aCAjgsSZEhqJEnpWrY6dJnGDQqStrAZaCmoFLoRgKKcXxuJ97W7uLkQFwAQNgu4awBjA6BVBEvFLHoombp7Tbtc2rkB7adkwRBmfQsoNAvEWKqy7yvRnJmPSJs/AlCKiZqzoipa7Ivu0LvXJ7d6eJBUhwBKEUoQNAnNMgq/grj4xpookSpZgpnBCio7RSAPC5vgcskc9rvzSqAVgwGsF5tCOgR88ioON4DqxZweXI/5jHub1XIRMIkAb5CSFTCr1Ver8mjI++6UYwAKQ3GxG1eQG3kJvbwqA6jIuKR7k1zI6MeQITvDsPrAAR8iww4Enr2aKzpcJH7I2MiZ9YEGCDAcEs8kJSYKP1sKVXjMUsip5MrJ2JeQsPYwC4Kb1lPJVZnJsEigAFYFwKhgPBybRxjJVJnATCqVRG6kZLdZw8QMB9LMcCLJw4dsNCu8UYnMheWbT0mZo/sEOkESFVAJunmQYJKclSWbS3iZqoSZmAPACxCcpnWbQn8L8/8MpHQKhkrMpd2Zi06ci0nMu6vMu83Mu+/MvAHMzCPMzEXMzGfMzInMzKvMzM3MzO/MzQLAeT6hjNihQIACH5BAUDAAAALG8AkgBRA8sBhQAAAP///wEBAf39/SoqKjY2NmtrayEhIdnZ2dHR0kBAQLi4uLy9vRp10oODg5+fn1JSUldXV4yMjF5eXqampsPDw9/f33p6epaWlg8PEXNzc/r6+vP09crKyrCwsefp6xkZGWRkZE1NTe7u7itttBBty0hISOXl5KKnfryreEaGySOa95Wed7Ofalya0bHD1qjT8Ymz2MTU5IWXr3+afgBdvZm62iKF32i084qhusLe87rv/oeQbAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2Sdt6v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChWV2ipaanqKmqq6ytrq+wsbKznqS0t7i5uru8vb6/wMHCw8TFxsfIyb08ys3Oz9DRYbbS1dbX2NXMUtvZ3t/g4ako3OLm5+jpkSxC7Orv8PHyj6Tk7vP4+fr7cOzd/AADChzIhVy7JC0IKlzIMF03gw0jSpxIsaLFixgzatzIsaPHjyBDihxJsqRJKPec/DvJsqXLlzBjypxJs6bNmzhz6mx0wdvK/51AgwodSrSo0aNIkypdyrSp06dQo0qdSlVcyqpYs2rdyrUrtIRew4odS7bstZ9ErlJJYbatWzFq38qdqzAu3btLUUDEy7fvSbBjAPsdHJSd3UOCCSt2i3bQ3sWQ3z4mpHcQ28iYw1UuRINa5s+gJyXuNTm0aT+bBZV202L06dewL2txDbt2xdW2c+tGQjtPCtwdD+8erkg4ypaNiStvAryIcSzPl0s32jutHoPNp2vXeS/7ExbenQj3vL38zNR6xxPpEt68+7vkDyJpb/29/ZIGqwPoXgZiyp9XGXbfgDUlBx0V9BGoYEfx3WFXggtG6BJ4Qui3REJ7pRSdhBzGtP/hEoY9BmGHJA7EA26l+TeEOxDJxttBDZYoo0cBHgcGcCPOqOM84T2XWI7ZfbjjkCGJqASLKhGpJEW/MWHhE+R5ZyARrbm45JULWcmcfFk8ieWXztgiJBo5RqElmGjyIuYV2EXBDltlpilnNmO2wVZrc+b5TWkxblGnnoCqE6NwZ+LWJxxnBqpoJ4cB12CLzi2R6KKUXhOneABgKGAVl1bqqSzsRXHoERSSWh8Uk36qKisfTqmEi6nW4eWqtFriqhF/1qprNqMiQUqvUO5aTKc6knLrkVE01ueswjZLmhDAtpGrs9ROEm20cUwrxGWxVuttHb2OmeKp35bbjLZpbWr/LmHYnvRhkM4Ru+68rK54JI7z0auvLMS2me+/cyTW7b7EpCaXgej2RzBHAxPmr5mRJpFwEg0vbLEY4QJ8xY8Xd8yJsV4ce6DHN/UUlasT91ExyXKkPGO79rLsFcwyuSyzUsZFew/KJbXbLoYN0XzzF0KTy5XNQzslb9JMm7t0EgY0LfXUc/55VdE6rUx1TFiPtZfWW+uDtBI6A9A1R0/jul/YRHVB89j6nA2uE3Kz/U49maVt9z5Ys1A3UXWCvbdIcCOl98hnFD44LFEu7rgkf9t0+OOUV44pbJFDcaLlnE83eeeghz5F5vaRLvrp15l+lOCoO6J4Jay3/ovISr4u/5Ttsueu++6aMDuX6mUAPxTuecbOexO0F0L88dYkz/zzn5a5/E7TI+I829dL8jD03JNRffcXfX/SpOKDr2j5a6BvvjyfI9XZ+vDT0Wj89Nc/kvD25z/jYSbrb37a7TOf8fw3pwFKQksGJKACKwSYFiRwgf7z3SseWBX16SgFDuxFQlJAQXrRIIAQxMKdJFgJEGqFWNkLYRRIqMIWdjBpKWwhFhJCw9AtL4YyfIUFgWLCHPrwh2wAywuByL1EsWWIRNwdB4dwmSol8YkxGwILodi9KVKRfpPK4hWxuEUoHtEISJRUF6EnQS1ZcYzbKRUfkNhANF5ph1uQjdZi5aIzuv9ROjj0wwPvdMdA5TEN3ELVtsDYx0IaMn9hPGTrlqjIwdFRTY28jwPxBAY7RnJXFrJQ7DJoST9d8kqAaVgnP0k11yTyE/gjZVaYtbJRUsyTyFJl2JbnSll+hAd/9IMQP5FLW25HP6mqZeJ66EvtdEuYiSsmmLp1SmVKzUpNnBoGnakwaVLzRtfUETKzyc0VMoGY8QNnX3qpvG7uDmiAEKc5O9RMK9CmneuUDvmkFU9nwbOeSbsnPi9mJXXus1wblKIgMkguOP7zMwalAjO2edDdCEafX9gLQ5kA0ahMtKFwoUNFMcrRjoJmox4tCkgPGFLCCOaiXnANOUvqUN6g1Ar//mTpR4swUpnWajQ1xZhNB/TSnX4LVj4NqlBtQ5ueNi2h3cupFpA61KZeRKlkdKpUp6oYqFI1UHy8qla3ytWuevWrYEVjTMNK1rKa9axorR9O08rWtrr1rXCNq1znStdTMLWueM2rXvfK1/dYta+ADaxgr2nUwRbQsIhNrGK7WVj7/XWxkI2sZCdL2cpalrAAeOxlN8vZzpqvsZ4NrWhHSynQkva0qE3tzTSr2ta6Fg2mfe1c8ERJ2WqTSrbVZmxzy9veXoG1vg2ucIdL3OIa97gxAS5yl8vc5jq3tcp9rnSnS93qWve62M2udrfL3e56l5vR/a54x0ve8pr3vOhN/69618ve9rr3vfCNr3znS9/6Om6s9sVJePPLX3zut7/hIySAB+xVsKxUrv1TUI8IzOAGOzgWu32whLsY4Qlb+MIYzrCGN8xhdFTnvx0OsYhHTGKu9AbEJU6xilfM4ha7+MUwjrGMZ0zjGtv4xjjOsURSqWMZoli2B75djyU35CIb+chITrKSl8zkJjv5yVCOciSCLOUqW/nKWM6ylrfM5S57+ctgDrOYx0zmMpv5zGhOs5rXzOY2l4vKbo6znOdM5zrb+c54zrOe98znPvv5z4AOtKAHTehCG/rQiE60ohfN6EY7+tGQjrSkJ03pSlv60pjOtKY3zelOe/rToA61qP9HTepSm/rUqE61qlfN6la7+tWwjrWsZ03rWttaIQEIgBBOcIJbYyIAH/CAAQoAgAwIIQMHUMAFFuBrSOR6ASYQgABAoIAQDEECE1BABqY9gQ40exEB8AABpu2ABCAh1x0wwLYVYO5vFwLYIhBAAZjdhFw/AAQC0IC7BxEABkibAlLItQMEQAAL7PsPAXiAvEdQhQAkAN/ePvgeEi4Aa18h1wUQQAUknodwV1wLGBcAAjhuB4cLAAJeyDUIDkAIXbs61wRg+RdMbvFAuLzVAZCAxsNA8Y3b/OUj+PgScq1rBCTA4EyAObF/jvMLiDwJRA/AC1QAABJYXQUx4MDQPbD/8zJsAOQ4D0AGJgD1AeQ6ByQgQgNKUAIV6EAJSmf6qj3ucyNEfQZpL8La274DuOu81whntdknAIJzm13qeTfC3l0A9xMIAANghzsWcj4BhgshAgCIAAMAYIEIQODzEOhJB0TgeREMYQQaUIAJJDCAIiRABAUwAb0B4AEFFMAAlncCtDNvggfo2gGXh0C7KVDtKKsc80eIOtWRsPa1xyAJL5DBASKA9D6cwPQF5/wBegL8kVPg+wCIPQAeMO/vM0DX2a6AuB1w8xMcwAAIkEAGNt4BEEgg/BO4ORMuoAAPCKEDulYA/dNrFAACDxBlRocAj/cBR5CADJB4R9B8SnAD/zgQAgTwfH2wARgAfwVgcA9AAENQAJCXawAwAvMGAA6gAS6XayNwABEnAQpwcw4Qg0KwAN6mARCga/VXfUxgAJBHBBxQALknBBhAAfrXZAuQhAKQBEnIAHinBM13A0mwAjigAhlgA5OHBghQcA6nAA9wAuSXAEQHAAaQgygYAhcAARjwdWQYAka3ejcXeg8gArh3eawnBCfoBAagAThohJy3ehFgAAB4elHGAAmgcEzIABUwA3rHeEMQhVO4Ai5whY7IBzrIhTlHcBkAfIdnASyHfvYHAARgAEV3AKYohESAchMwh5wXfgCHh74HdUSgAAQAeQfAeg8XAQ9gge3GAf8QQHZPloTyl4hOCIElAAM6kHeQiAQrIIkZkAOVSAVHyHMAkABcSAEE4AEnsADZSHRlSIIdIIbVeAC9JoDBF4cF4HLKFgBeqI7+t2u2F4J1BwAMgHTYaHYAwIaB6HI86GQDgAEZ0I+nNwIcIAPGaAMDAANpt4xH0IyTmAPLZ4njaHChNwRpmI9bCICtN4hCQAAJwI38CALVNwFm2IYBMAGkqH3ttmtFoHVDwJFbyGv5KAQOkIP1WGUUB3h2R3TRWAMwYAAUkIzNBwNJsAM7EAMa13cZOJEo2IqeqG8nGQFj6Hm/RwAb8HCxCJXm1m8uOI6+V4AjN2yt5wS3p2ti+XD/zOZ+rPd5bAhlA7AAT2d4AWCQQ+CTIaBxQokDQ6dwDJiFZHCJSGdxBFB5HSmGY3kC8UiPuvaBtneCPfF1DpBs2+dyBkAACkCPUJAABbCZHUiEyTaYX3d9ZGh8Cjh7O2l2NqCMPyltDCADLuCSUOd0W9CW1GgEFjCPI2ABJEgEGzeEI7BxtMmPHiCOL9mKUqCIsMl5w6l/K/lkKgd8ZZdrLwAAJWCXAPBvSceOS+cH02hqGLed0fkBMUACPykE2Al3AZBvgNCd3jlwfZmd+TgBS3idXXdu/rZ5gSd4CviDT3CS0maej2d4hCd3qvadUXCS5lmLRXhuH6Ce6/lycPmO206gaxp3AEsYmkMoBAGgAXGZn4LHjjJXbxvqARsqAOzXARagkxpqAQ76oC+XAC1ab9WogCHakuxobCQ3B5mIn0mXm/EZoHY3cKaZo28QciM3dAMJl9AJhBQQo0QKByoXkEhaBCewAUP4lif3pHUAbBY6j2W3a0c3BP+YpVq6pUEIpJJ3hIMndGVqphxKAF46dB6Hpm1achUwbv3XoxhgoSYgkHVKB/Y2bmP3AAmQe1baATB4nQoQp396B+imbua5cgewbddJAOXWqILgcAsAeRegAQ7wADeJqUwQBAAh+QQFBAAAACxbAGQAZQP5AYcAAAD////6+vf19fD3+PT8/fnt7+u9v5e0t47z8ezm5uG9tYaqs43h28bl6uK0u5XV18/Wz7Xh4tzb1sHu7OXHybGqt5XI1LzEw628uo7HxJ3T1baitJXn5NSZrY7k4NC/zrW5yK7T0sHv7Nrd28/48+Owv54CAgLs6eTs59ekr43Nz7qmu5/RyKP8+OrJzsnLwJe0soegqYbU2tesrobP2cbv8ePNzqzFvI/l4MTbzqbh2bje5t64w63h1LHd3ti7wbrGyKS8w6DIy73W3sru5MjA0MTCv56vwqeaspayuZ/R086QqYzs9Ozk6dW8vqfTyrHIuYX9/fLK1cvU4Nf38NqFpIrW27/K3tHe5M7k8OWqxrKmtqTCx8CXtqGzu7Dz6s61zryys5jXxZbr3byPr5i/uJbV5tnQv4uWpIKhvaqqwLTB2cl6noayx7/CsXzz9+iFqZaIiIjv+fKNnIZvcXO0q3qhqZ9cXFysrawqKioTExZGRkYRasbR7eW208y22vWdnp51lH9RlcmNstE3pvsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/wABCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIceGUjiBDihxJsqTJkyhTqlzJsqXLlzBjypw5cwjNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1Az1ugIIarVq1izat3KtatXjQa+ih1LtqzZs2jTtvzTJOQHtUEbwJ1Lt67du0+BIJyAt6/fv4ADCx6c0ybhw4gTK17M2CSJkwIaS55MubJluhgOJiAZ+bLnz6BDi/ZJB2Hn0ahTq17NOq2T1rBjy55N+6BhhjNq697Nu3frOVJ9Cx9OvLjx48iTK1/edYBgBQJPM59OvfrzDgOdA17CvW1B6dbDi/8fP9b7TO0+CZBfz769V+xXf7ifT7++0zAZz2SFYAOlAfX2BSjggONtRuCBCCpHBUx8JejggxB+ZYRIAAKgHwAFhKWZC1qBF+GHILrnxkiPKYQeVx5uVGGILLboYlYSoKDhizTWaF2KBXFRBhaC3XZiRzjaKOSQgQU52Y8SUZCWgUQ26eRAU6CAUgii9Yfhk1hm2RURSuYWHABPHPSYA4kZSZACcmmpZoQrmvWFGn6E5EaJE41Q1AdvzfQBGXl+YCZUGa4p6KADSXCQGgLluVUCTLKUJlx4EirppAktQemlmII4I0U8CBRIa9BlKuqoPBWRHUh3XDnhUSKM9Cepiwn/8CqsD1pJ66245kqUobr26iurGhXgEIewcffrsbIFgJoVLMDUZlIVNqpQFchWa+1CZnp5kBIAMHBBnAR1AZJeZjwKmUt2tjjrtewepcUdLFxg0Igd6ZXGAyjxqpKwDVXQAL8CrtvufDx6peypFTmgb0glAIzbUQJ7NPDEqel1WRvBJknxxrku+NWFFG1aqECIThQxRFJi5TDHLFvmAL0KaatWqgbJYMKhBWNbEA/PJjoXoy0HPWmnE4KskQpUhisQEw2Bt/B5O5UAWs9CV60UFmzEQRIHLIwwwgpD7Kmo1O5abfbZDnnhGNmmATCVhWjHLTdSrZp4pkBLwIwQCEr7/2WuaCfPLXhPluJNcg1cLNSpQek6ZEINSfNdkAoAaAFmUIEPG5pzA0jr3+Cgc4SoEa9VfrdB8iEUqkNsTLhD6Vwk7TYAa6zKU+bD4h767iBWZTdELxS0BZRgJo5EDxwc+nBDcklnXkQpc4bwQ0HqbtkKhUrB+/YMCQI3fprpHBEdTN9QUGlub0DQHxwBTeQAt6VkK/f0L6S1iUgSFJkAZLJOxEFM2ILsDJKZ72iMIfljnOckFb3pvSSB9dPSFwCgNpZYTnIDsQIA2iCvkQnEYglZ3e/M5DWdwWd61rNNwnQDQTulYCcpjKCamEQtA7JudgLB1wE+KDz8Ue+HlfLOjP9SRyKGrUZJCKOcDJcIwoeUSGb6g0jJKiCDpaWBgnBQHhsSMgButeQJ2pNR+FSUEfd16mBLTKNsJsiQuqnkAh4IGQB2AEQH2hFlJdEe9LTTQBzGhk5RVCPoutBEMZEEgzl0mwBLloSBNGtndTLZtNyYElM5kVpvEw4SBclJ1G2LapFiyBUT2a0ngAB7NZjQEfzoyYKwTXoEeWVHoKADiKwsUWbQQHTOZMk/dlKG/NkZcBaCgYL9xyJCYMDSYoAQGrgKb4Bs5Rj1FMgqhJJ4ibJdjaj2S0pxyw2IFMgxr7TLtKHPCghISCMRKBGAnRAhsoSlLSVwhBoqUEwRMF039xn/muCxkiBryILS4EMBJJ1Mg+Aj5QWQ8MFM7oUkDbLhRqBokVfdspz8zGg/DQelUQbSJo/RJkSYNjlSdqudz9zXRbjZG5ZqtGVl+F1D9XnHjCSPdgIBGw00gC9hSoSIhmQeO8v4EJG99KisSSg2a8ZRKJ0QQMNkyDoLcoVtnbRtK3kh9B4qMaR6dTjgss0UPMAChsahdapbKtwcQlKFbAAB6cShGKqqOUjmUSOU5CKtKPrVIQ2vTl+Qj7gQ8qmYOi6HNEgD0rYqUZRdVCcx7KtkE2PYNngsnkYVyGItIh8hrOAKMWCmCiygx5xmUXwrFckG3hlJWD1tskTC2AbPwKRo/x4Or03cwRMQcEVn4jRjEPEY4xKWg0BO01fxg62mPJmzq55OI7IliBh6QK/GQTOV2emfmDJZQHLaEm6PXYgM/ipTdCn3vGrBXkWyQCc6ySADEtEgVWlazjAhxJ/k9KJWMWpbhuyXsdKcCFDbh94CFwW/FImuCoHnRGMtTX0exFADU1aBDpaXX6UdanlrGmG7LlDDBKbMD5JrYFzxVY7LwygPJ6LegZxSUS6GAq9qoDC9btggsmJIDyJyywQ8QaAyWWCOGTPgEudKECLNSBjk+1yCLGgK/5PImxRXzlqazove7fCNHZLPpgaYiykoLoeNiFq8gtjIaD6JAZq7M5iFSv+E9K2I+jyaEFOhILwORE9bfiAdQxV0jlpOVBNWpKwUFTLEJfFdRcUQz+OmGb2G4ZlI1EY+dYL3TFJw6YINd8puWWBap2oUnqkHwV3KyGFdoMLBmvCRj/yWjbFU9LloktmmafrR++yvRbxA3r1pt3K/vkhIBxJHFee0AuLk6IcNKLU+2rUDmc5ulh3p30Y9YQO6XEgvx0wRI91aJbqWMK7HPZErRtRtXiJA4ShyB76VDKc7tFCXy9m5mNmGtdP2afg28wJXm6vTOF5x5VSd7DLfFWKRJbe1XH2THsiLfXaVM5j+2x8Zrbuiu6VSBU6LVYQ1yE8e7vb8KkcGskW5san/7bjCV04iIjzyc1pgdaTl1OKmRXyp3bWQfr8sQjuBx53ZzKl90+qzOKerAWCQZKJXiu8ta/TEsLVdT0/iTwXMgMQRmep9BW3sXztvYUM3Q6UWUoIqECu48OTBYyZgvhipWEnIc0mpMeJslht5cSOBFwDut+ldE6TYTsZjmiIwdF7JMgQsUKYr4zysc2NZPkGqgBK8NQFLIj1Np1Qi2dMuT84s29gqqrWN7Q6roWMEv4Z9WLC7ahC1FVsL6uszAueHAcW7jeMgGCB/K0KDDGS7yQUJggyCAAUxtGAMjMsBkN0KbuByG6sXJz33poJ3kqFq7wtZQ3ZKcGi3muvlf3c6/wmIaAIhaLDChXpLngx0bYWYPsBTpyoEwnYmxDNE+Q6vSHgTbkGDxkTW0icoevECascENyU6ngZPAxgdKwBjD/FIO2ZzRhVsJfRglCMELVAEfJEFPtAADYg9KJACEbAAMCA+M/ADVeUEWvUEibNWzWUDZGJdt7cqLSBLtsJwRVdmTcdjG4I6otdhcxduzucZ32YWCMZyXiJ8bRUSbaV7NBACWzQENkEznNI3anVjicM1TGCA6VQEXzNHdJR/YIID8EVAgwVNeEICDfhRDbFJdHQ3O6g/bfE8RRQuwfRPGDVYERh4rxVrGHAAHGdvwwFnAXgXblBFL6FBdLVr7+Zljv84elfGNZ/WLJJ4SjewA/NWEAvwhn+HBG+FbDSAdLukaBRAiJskLJvEfEpAUI7mPNJWLzHnENrnWSonWfz3Um4gWxgTTiXRBnxXESCQBEuWYoyXg9LFUNb3ADRAAxsAAnBgJY1zbuICVGSwA2KQS2QIAEk3EG/AWKN2E6chAkJQcAhDANrxLDWUbsOFEa4oNwJDiH2FAbCmWXi4a3R2G663VhVRQcpjhb9jGMp4VZ+2jFoncIlyeQShAwvQAV8TA8VldjnUAiEEffGnOmd3KgN2hE43drdXj/q4ealYiF5VN9VHVU2gBN2nEfxofa1FbDu2RRRkNIvngAWhkQyQPOn/dJMIIGYE8XtppQMqKE52YmUe2Tf54wRicDkEIYoLJYM15SH884qOFnBDgIhiAjJGZSZFGEE4SFQbKTd0oHi/uDTGuBF0ln0WQTklgwVGk1cAAAWv6AOZyI0mkHgJGCYN0mj3B4NSYE8EgCbZU3VyuFQOUHu65JYK4ASlpQD1FkkZElXENFfAd2YieV6IqEFq8wWq9BMaqY1kk08HqDh/MxA+EEs0dQQKmUN8s4rUdnPiRpo8WSKhknOviUMpkAIY8HGx43JnmVc9QwF3aBCTt4kXMVpjNHcB519xc4stwZy9EgSCqFqaJ2XCcwA7hYkfGQeAt3iBtAbYZmF7IXbw/2UCYRACO+maEecCjbMiJSJ2SzlyA/E3cJAFe9hkdQdntFeLUtV3IgGAX6lS/5kUWsBmKhNZNQd6BVaQ6HMSFpAEHtCVHikujeSgzsV2E/BxzQRoBdeYMlaLl3idyYYAMABhtsmfJlqVCAOd09QAXvSDB8Rh8FkhZ0CfEeGWkhSSE/NYyDkSIvSNMmR71qeR47h0UpV6jhSBB+pKOVBLBfVCt7kqfPKIUFJckxdvR0BXB0gCt9QBtIkeAoUBZOKfphNGSLI4V1eWToQQcLkzcQiHH6kFyLiUdkCUIURDCQOf7dKYlTkScco1G4GMHLABEMAFMnABbAB42gdAS4iegP8kATpwfGS4jRx5hrkJaDFgnRpajNnRBeYDJRdEmlwGiReJaPKGVSyVBQ6jHnNpZJ9ndxxAggswkBV5hd1ilSq5lCAQV3WZBC/nAZIzoZo4dRfwTrZDATDwBlFABhCRbZeXdBqgkJ36lkFVR/LJWUpHmaHWff0DYzNiq41FLYFoEX/WnDa3pzRSAyI6BlFQhhkQVyixnf7IF4bVoHu3qK3Ja/dXgmOwbf7IfG2YPf+EbMT2UG+mnxEmXJCoYTgaeFeyOuphrAkBhQnhUQtbJ0O2Ei5qNj4KGM7pF+Qyhs6UBM5kYZrJetnXgqM1Wp16kwPhriYaflZ1EHRUdlFqXCn/+p5TualyQUkPmyMKJU4CIwb8CmBol29GS462RmYot0+tihodGxgWwEx9h5MCRhCCYAJw1Xs5BK9TAHDz1ZrGKaXz6DYPSU4koKzwN3U8gAFJZx665UermkjRmk1YtgUWMLcj9B1marDkKFCrt2H/VY48xiHwqBF9sl2BRrSzVhSFKRpiyrCcZErdogEq8KCzSkFbaK8GmSMwiX07FAUJaJf9ejMIAagwu3cmYAVjewWWk6latQIOY1tRhmxeM04igKdIu45KKRBAObhvd5t+FK7JyWJFO01ZSZMckRmjurkV5ZR9ETt48bRm0bSbVx3KBKSERJZtlbKhGREL4GmJ//dpVihalzOWUeutHoGKynIE2MFwJcBnCVmzU6qNETABSNS60wocNEYQkup+P2QYOjqRF6t0IWldhVtXdzW0slFkwyG9t2IH7hpX8KpODgqkCaFgxHYv3RKWpwsmOaB32Edsy2g/DiGTJbi7bJoCvkMGZAJ4flIAYiozVuICZ2eOM4mHiTpNi0OBIpe0rtloQ4cjuLsr5nopDEdWDWqd4tuTtypdHlBFFOpcVmR+zSIIBriS5zOdFNS5adoApRlgLkACbaGsNrCkOqCszUNAbnq0Ocu3UYORt/t8JRFvBjQrDBw0MglibSEsDowrDYo0ysQtUVY4FbnEJdVDZFmvLf+bkyJsUr8FvgBwliRTwW0kBUQgv4lJjGJEVVBQBC4gsFxlEHUDoUtbVPKTMMqiwOnRx8TIJv6xlXJjl3iLEKlnBWMJQAcRspW7y5p4ORgUJsxyU4qHBJU7OROcMgYCnM4bnyecU9tXANjzFkuwOm8gtYD2azEXFlWxtxvQH3l8EC9Ue6slUdQ7rRU1vFwUGTz5f+hmEA45mWrVsXqpJYxpcItCIK5Wl+CJyzFVBpTYmgqBMRi8tfFHryE7pJr1i6EVvsaMiOjbGUPAKB/GpXNEpw2ohoT0Ol0gRuL4rMnmUInCL2uQSzcABwIjABAwfplqs0NIdBzRpghMd8Gngzj/Fi1e+aI1KhwDzE4l+R0Zyz1UWBGaq6i5jIGTK3wFMQYQLJYEzatqkLoAHcmNxD7mAWXkuG6JKY6sWwP2RLZ2xlE5UAKP2lRdtip3JnRaFhl9ZHhtBBInoqcho46uUs43zdJCQ8r5gZ6/RKLamxCYGgPoKxAaAMGJHMlZDCbBaMEklZT2RQRfmmee+YYOuEkOFtKi/AFEyZ6lUyjjGmgJ0Ifhl2Epx5IXgczL/K8ciROdvRNQVx2tzY7KVZAdVdgZGpG89XcqEG/Ftp0GSNoMLdWHLJT1i0Zme2wQZk1UJYJ5RQZoQJzslUpExB93nEewfHNwQqqlbHf4yxCNiKAK//G3eK27aLOdf3xTtYOwilydHhCrvMUB3MtI7xVXvwh+HGDLIexpT3zfkoiXEunYsQY+WFsDUjCkSRm/xAmbOSWKyQaPFcsUryJGDMzKknHA1LGjEzlbyrk95tav9ChVy5hY5X1V3nNSV6TQ+i0DHnA/TFZKABUCI0AGHh2f2OEEiNOgxFdPpLlJFBABLUCCpblaaPuW1rSmRenW3k0TL2ArPZ2wJmHhGUHc4Bggt/bTG/a4fys0YZDfh7XiJwXVDADBKN7lxwN4hkwydhlTsgV4843CMrADVZAqcLACP5aBg5qpZdgCr7N+XFp5MIAG0npVn+WFtGk6Og60iSvHWP/3U0WVBfMsVPi20xb0sg2HpiVs19SRw3iEwkduZCxL2/cS3+6NxDppMwNLEBqEZX56Vb1FbQQpEBBMJay7Vg0Ak2fgez5wAHT+FuNMtlBwBAeAA+KE2XBTcpXnXSIQUYVZOp996D8hvFvWvWRxhhiRblTO7MdRkgCjVBt7cFcy1FLqxqnl5C5Ctczb1Ibd6cR2AfK14kyDTgYdR9ebSGZgAeUJ7PHG6M8MbDH2AYEOBgqpgRFQBIapS9UoyomSdBCwmE2wfEZuI40u08wBebm7oTEdXN5xy92GLHfgahCXQV0+wefueyieuYq1hAggjP/sxIadQette4l9AZfo6/7/AsrB/jW3+RieGNbGp56YbWUlN0f7WrNBbjqRAr9C2NJAIeE/seRVCM8B4nbUhM6eCtTxdVI3aZe+he7ovsFxoAbFTEHew9uk3bI30IV0GpEXigEbB/QMgMa8sgNobHZ44snbF/B6WiFk8Jghse1NnhVKX9dKOxydqakcYQTuM/FtDCQBCqDHUblxKl5buDSkW0q7DMWhtTTaeVNW0AaiW+o3VUE9MAISeVJZcHwT17UHIPDauLNnfImmYpwlRC2KKTYdyvPodxC1xGfiPnuhceVG0eChGh6F6/vZHWKgjRPwu7jCkZKXad9ukzxb0NtSLZYiGgJUstt+6m5M4wWg/w/JlxPF22kDYieRNyA5ZlcDjO4vxfU6HabclRNmmwGpB++o2wgeEfgo64z0DU9GowEQAwAMJFjQ4EGECRUuZNjQ4UOIESVOJGgEQJiEBgh+oFhxTkeQAEiE7PgR4p2ESxbOINnS5UuYMROiNOhhoIcLA1eIOVhGoZebAy0AoFGUKAANDDg8WHiAg1CbIVgIoWGCqFWDQgDoCELwiA8XH244cXLQx0ETQnSQGdgBSpSEUgg6cADhZouBNmTu5dtXpgABfmMGdvmDi2DEiRWTZEOQsE6HQPhOWSxT72OGIipv5twZ5JaLaHcETWhlYdEDV1UQVKrCg2mDbYAC8DJ1YP+IowA8zGYg0sXtIEKwth3BIwvuGxtTNABQxcdzNBlurIVSAoOPGAVHQk6YxYWU7Z5h8hAoXrwE830lp2ff3mVqAHIdIyRSMLAXky5zFnTjHmKTjljyb0ACY0IiIa2E6qkg2Wy6CoEkLFDBitYYwGGmgWDzKQnYCKLQoMNEcsIEC2AwaIgVshCpIBQMaOCDI3IAgAwTiZugxoJ42iqvuAosyUfFfgBySCKLdCi8DHk0Urv2ClhyIY2elBJD0m4raD/dCvKDoC2kYu2oBw5YAIAMLtQtNQ097ImJhg50DAMJEzrLIANQ0O0MGxo4ojkw4oMiAtF+M8iu+ObrYEjNfBT/sL04pnT00Sl/WA0xAv6bb0VIDyohU047U4JNLmVAKAxRL+JijS23bIrBJH8C4EAr2sgKLSap2q8HggBtTtAA2hLuiOxaKCKH0SLIgYW5MEBqDCj4UoDQxMrrdC/MnJwyAYXQm3bbvrbDoq2GpI2pToQooDM9awuLlttpfcoQVADa6FC7LdRQE6F532VAjXxfhZc2gNFKC0tlRbrAAi72c0DTIs69CATcUvAhBWwxJXOBtchUstCDVgh3Y3ZD7uwFicy1T2SUYapBoSo6CwCz5lbSVOaUa7YZIa0uoKO0gAtKgrSfK/oy3tiI5k8oBMSkL4IMekNIAI2k0BUALSpt/wvQ76okiNlL55po4ZuptjRsh6xWKN3EoCXbSIx67kgyBSwTmoDHePB5pUkL5EKQtfsGSV63L8o7DdzaZGFDtNa4O6g0GwU46DCnvlKrECpnQbOhDPahARGU2BEE+h4OjbkdhQZ5Isq6Rt3vIWHei9ySQaqAdSO/yPZEjjey22C/wA79dCIK91pJ23/v6w+KohyU9rXN6Cq3g2T1worhplcQod1ALCMON2UdyF4Znj8II/gsJgilpCJ2HmekcmwfhoxzMBPczMpm/n5nF+pAr9MXesFs/AFJPmK73kDkk7WX7G5sDVnZCDZWMRaljiKLSkm5zBdADGZoC2zywHBKpP+Ep9xrcaxBVk2gVxMH6SYN7gJY0poDKBUJRQMKqg+LNLYBJqlAM4mS0xiAtYMRbGAHOvCNQ3aSnJtJwGQCDBvaWJbBvvWHRa57CWBmpr8pnIGAYBOStgxit/LEzWEZIQlGFEgfL0IxbG1wUwgcZLmG/CyFVspcnLB3E6uwsGcXqEEHnkCrg6SAINbJTscKiBAuBAcHO8gB6CZgQPMBaD4RwKH9yAZANWZSkyGpoURIAAQqXOoKP2KIFiICBCnSbCFOhCQBs5WflMzBd2pT3SanZBR8zfEhMuhNa07CuOsBigYHyYCaQGeGhg2Rgd0BQXKC0BshRmQkSxQMLT3Tq2n/UTGBUGply0Jjywx2wZC5i8gs+yeYtjVEkOPqgQpC9MXYYROcIZtXWYamEO/BRFb5FA4IgnhPgnzrVRcAVJ8+1h0N4CA4G1jBDiZVnCPNU6IWnCjrOgkal0gSMRQc54fudE6YCIpJBbFXRe/nuG/ecSY2CRr0/tUTe83mnj7ZAEY8hqAagI4ozrxgmwa6k4SiYQxIuQEIxKAEGeVknVf0W9xcJySTglSqI51qVAu0M5LYiaqceQIWDoO4URKwqDLjwBQwCU//yShAVmVXPivihPow5whYYek9RVUipy1FpwfRwAiwwAajUiU3HARkb7w0lZWJRAwNe4gAePggRaIB/zjNQYDpMshRth5Emx15ZGaJhBJ7gYV+gYwdaQeC2cKMQJzvIg2K+joTLjAlouQElxiENxeY3cFLeQmlZ9uVlbzF0EojhNBVoJJOg7SgCgkgQQTC8hwz4JKkE9CRTj1AAw94IAgQlQBN6ieuHPnQDBvgyoWkU1kAVUdZVyAd7SDQW9+W8pXxRVnx5AslqBrEihsN0Usf1k9SWcy+IRmAtuCLq7n8wG452euKLELfbWFEu6cVaBI6uZPcmIB8rCkVILXTgLPYcYSJHawuXQIXEYggoe27msfEYkBWVjSUm5WoPG14mw846TGPbSyE+TIc7vSFxvd1CFBWk7mUXuEIFf/A6lZLGzh4OqE8zxytjzmFOJUCwGMkzlVLHWTiVxaAI0BjsVzcekgoJ+SmDFHRmGTYghjU1MkFOmO3pInaAAoEQHV+yJ/GOEEr8yWVCFKn7yw5Qs2ejT5pKEhXjpWZpVgWIYIAXEpp6wME0zHQET7lQPxQLxPA68Ff07JWhVIbHQL0ZzkJIZcEg+E3EGWGMI7x7RZjaPfYrdWbHHSfI2DKcZFs05XJGylVSZJ3KhYENcCKTBPiNO7AV00U/IGwq2zCYftnwL8Esi7/dYXG7LomlWUIE8oAgZa92IHmBrKavbuGNaBIcTDxHJaW6EciGuEC5lzItpdkNiS1RNyeWar/eAgDy1c9ZE/GW2u2S4twbh6aUo0u14yz0q+FjMZ8VmjMggKJIocjKkdfSJ0SejDv4oFK5XGYzUsblTnkKSRBVYH23bQ7AjgsrpctPa1/sRAGlv/YYUOIwgxzMOYgNIB/NhvmAjEIwYcAGyK2HWBI1pw7PIf8i+9UntVxrRj+zQ5TYidmmq80cK3FAcwn97DW2dMDJoBOi3fxCr4WwuiiSSRpIo7eAgwaN4wimqRz34wYsacCMVUyXKbmDHgpej5zd9ztnvvaE25LETN8k7kcW8Jq3X629nb9aTANEsNJq63fkCAFqy+3CgPWr2ILhUIh9FykP+8fa3rNLsHTmtkT/zLvjsUc2xUkSsFzQ6jgRMqBOoIUeAyGAyIy/vZWD6npp29s0J/s2E7vaRiwICjQlGBTGMASQgLhqp7qhNGgEqgIW3X99PzxItRO2Mq4bCAOT0qPrt6rEaRtEMcBrIBBGKNpvGprtBTbgSEAEmqqGLHbH8g4i6MzHZCDMMejiBeRNFKDP78YslpKnogjI9wRInd5NP0AgI7jsl7jwPY4EGQBjVDqpKwAnYqhJWRBspDgu4bAO4aYDX8TvsWotX1jmvwBCcLQE1HxJhY8KM+QwSWMCOaLiKobHsXok1G7NiToI4+7Df/qQXfbiCh8vycckCYwAuCznbnbneJ6iNwjs/92s7UTehSNSIGCGRIWWDomNL6ocgA30CjSAr4xXJLV4jOGGICcA5HHY0KIsDZDFBgHK4g4QCljkogV2C2HqLRA7Aw1QK4sirdZ6b04CkUciLWJsAJJLAy1IrD1EL7lmLMqQqfPq5QBOrBTDKhMDJsGuxLcEQyeAygq8RcA4B5LGwgyGBYavMUhab8CnAup88W9mAozUaiJSJAt9Kkg+7p+oxoUgCo/OAPeKL84fEVSgoInGLMCsLbM8sAbo62EQ8b70YJFucC3Ej3cYkeKC8Dv0aLy0JUK6AE22L8FCYMzky9xij133AylGEYqXLowIqm+kJCowMHfQ6SDWCGG2Lb/uIqZJEHH8Rkegco09ikQMxiqW1Mju+GiOqTCg4yisdkUDTyI3poB5ymhdSyi4cIVjHMIiXQfl1tJxEC8gaICk9AiZPk+PVwRtDOihyipe/G3u/kCc3NIt0kDGTAN0xg4jYOo5lCWZkw4yUgYcAklktnGgaKBlDQSKDCokPSseNRFvfgB0RsKQPRJIFEJODwtp0yjeGqlXWw7P1wmSKTJ70G0f5mjXqTLxGCAGFgABmCDGAyy9sguWSsmDSREQ8Ko+xMh3FBA1RshwsMU75O5PNKyqdGBRRIpMgy4GSGDfkSuTJHHxWjDjvyz2ERMUZJCBMK+L/IdvXwgV7ogAjA8/0j8PdMAx8wZyMtLElCRDcmzzZhImkLCgseESe1DNpsAxy08ABhwoVCcrCtMHXQUHjAQrtFLv3NalOyiRp1QJhugx/Swy1wpAkrSgaFyQigSLst8xN90TkgZjitMtMaKm8+EuCOpNXoRm85ajwUJOgBMOME8E+HpQv5cjOxAghBoupkgArQ5xBw8MijsitlJNioMoZ+5rS4QNoQh0ewCRzy0SdOqJeGCl7PksdOqjDobs4QoOsZSSzq7JtjES+24A++aUCmxL8I7K4iwFlX5wAJUx1I6FCVsR/PMkos8CIMUPCJtiS7ApXL8RBTsODxsso6IkImouQY1mLk8GiC4Af9w4wGjGgg2WIMSkcqJKACTiRIwWpkEaTcwaBYt2wxjQc1rc8kVmcIngRlqUpcaJYzDDEYWSqefyS+VZI/89MlkozzE2CAiyws7zcOO4JvWartqzNKXiE46MVQsBcXTMFOSEFPUkSCxQ6ruWrWnUc0ZwMaHACVBnbj7cyx7DBmoOctOo0jqnM3rsURSZcBNLaX3eiJbbNHfacRW+j/I/M8ZAMnP8LhaTFZks77hehVcoTJRZYimiQkgqCujwVa8tAnG0sXdJD75MtCt4FERgCv2cFLzwNfOEE6mwrbk5Fb/UBU+hMwNlALMaIIBWy0k7ZFRpdMQvEvWuAEO9R7YaE7/gHWJNqKooqxR9gAzjh0IQQA1EdUgScNGb6pDCujNqjIisrhYDMSnNshFVhkQ7PTJdZICqByPiRyU/WsCJzUle/qyKmOTM0OSg1FIYOvDS1xCzzMP0ziCKqBRjnGTo0kPj+UZBtILJTuUzNgABpA/mESw3UkdG2PYe80sCfhMs7Whd4KczGSiLC2rpKTEv6QZpjwo0fsjNzIVNJMXq5jLG/iUn/CCEEC4beuQnNy0JZDNzvAJDYAYTCnDmkwnEiESXqpS/sspMEzFXCmqf6WajESrqpLaQMQTcZSqMnA2tMxSz9tJaeLL5MGkqnlW0qTNcFSIsNIayrg6AsJUV1NI/5cNEH9kEjYxQ3vqy8kASXVViDiI057ZHouRqarUKWIBXdx1A4E6A4Vds866Nu8NXlf81t8RN9l6RQXdJvF1zruNIChUiL/cFKiryXMhVIupW1u8uyI73ttgAaMKoc8F3zJ9lTD4y0ybW0eRlS7xUqE5GLyoiLL9CMZLWVeijO+DkuY0gDmQ14hgi01zytMi0JXwxDhgIyuR2c9YwTIioKu1VNytU0uyX33NGvg8kTDQ38iIQ/K4X2cE4JYggr+S0nHKEiRKzKdwXcylUhT0YC2TgQ0oi8LJvFdRABcZHgG4LSpADw7lga+bAAf63gLR15RZAyCMupqg2hORP3G6PP/bGVms7Ysuvlj9PV/YbUGz9OIlXVkPwYge0BNw0bg4fEMepoiS6pKr7Y8Y+t+flAhRcUHQpEQKo803Xlw/gYxiEwFQ6s7Z8tb7LLUbHuP4+NFv6rUlsLyKqAGU20mAJDiCZd3zIbBl3U8pxB4vAFOFwIn6UTPSOIPlDeSIWF825qQrkeRoU4E9bloU6gs6mI22IcryUUku6DA2XMDckeaGcE2+ol9YHoyWwNXKkFa5gYjZyalNnJ4y+E+QgFZkM2FulVA8dp3Am1SmMtSOM+OEA9rZ8dWdtTT7W8Xl4eXKYGeGoIHtfANhaS4yiFrPwQtK4p1+S+UjtkZ70d+N/eT/Px1inzFnwCxEkDwV4FBGZIxfNtPdx5E938sytX2bICNmf37oskHnRDSUP6U4we2guVFZ23VeNlzpmODBUyICOgRKGIAfESmBPp2RZCKWhfYL+1Snx8NU5BMMbJEWtlNdtVnYtgBlm8HoHiwcc3EDFAYpzKICTGUBrAIKdbXmhsin0MxBHtbiIfULbBbBF+UOBFCrBw1fCizIM4u9N9LI9dVpQfYk0hxP0klL5vqTqB2D8XyhZjkU0j1BTH5rklpep9DQkHgWRNrdIahUK2NcTOFaKqYIXFEDysndHnYDvnnn7dOyMKwS3k1WA6BmeFbtV+Zpua6bQ+EA4dFOIM4P/ymCN5/538NcYRsGbJK4Uu0gGedKAKt+kU35gGLkkWZsbfczD2P+XZeG2NI6yupMUjC2qI/dGPK0x8RCKfW05ub9GgBJXONZgTXbSQx1WU2dSE8mpx3rS9CGSRxl6FyJjDlggz8IAzciYZZGYmc1btmhZzQyFq61aqtROt7K78WQ4w3cCyWeFYCGv/5oDGG74/kb11UORgEMcZmYYWItbkQm0i11unuWxWxm0n6GZYJSEJ0CIY41svKT7X/MlfjeNSSoq6FACVRFcEfuGJYwFxnJAgdKWfA6OO9dOM/45Ux2DKy+Zff96mvKM9KxZo9WWX1bGhAXut35gvGyXV6uAf+sQrAQsZYSotbuwGXqlE7i8Zecgq878OiL8woVwSqB6pAemJp/EdwdJvKG+5LKmQBEh3GD4NxysWoLhxgsX1VV/tUnewnZ9hsG/d6S816dGvEgpohGHRWMAiGyhjaLhtNA7kqxqWCHoIAY810qXIL2hNO3hVEA7EbSgOKoZAJATtVRIfSs2uy5OIwUX1mPiWsJar5xIRJbVYKzQJWw6UrMRESd+Ffv4V++lUjazlUorA0kgmYjBnZrLMQWprYpbdjuzVmv9RePZW9xfwnc+HPIaC7gLfTMeuweywhHf2kZAmI9TFQ5nGAOfT3VBpsO+Zbd+jlYT14QWVGvgWYiNzf/LzuRIffihKjvjrEBCVh4jkSrGaACNbCwP4hE6fFCiluDgXz3aXSKq65035TUWn8SUNXZGOeL70YICGGKGFGsBsZrIuHXycI8iXyeXRY0H1f5IoVHJ1O8jIhBi0ihp0e/b8V4pIet9CV3mM5pr+zPILwS90RUfm+JaCIRysQxbpGkdm0C7mZW5D13O6v6aqbJJh6+I7HflXCSts2ihfef2Zxv3QCNnWGvpxgWuI8Iksmekojrpvf6Ts0U1Q2pXkGtfZ/UhXFPq+vSixmtKn8SJQR60caSnPD0VMpwiOClBlMvnyf0d6qBSQFhcJ4Zgbo3ScLz/bWk3ZEpAKf241OB/0Iq/Fw9WtOFAK2upmwq8X71D2xB7BOSPpEBemoqC3kN2igkuW4RkHD3/YV4fNH99fFJFzjIblVNp0ufnC2C07/G/npnoCnYAjm3UPAH1CmJ+XOG/dRXjD95XAXhTon1GykCCCwAAHBxMfDgwCQDayBs6PAhxIgAZiQ08VCExIwaN3Ls6PEjyJAiRzpEAlHAwCcGDxqY6FJLwzVTIABgo1EMwYNMyuhsyOBgj5RBS/okafQo0qRKlzZ8cSHkkjUgGhyUwAEEGBcOjCowWoUpWKAHGiYI69NJ0gFMYxxoa2IsgBUrzdJVivamwh1XGsbhaZMkBxUA5tQtbPgwYq8dNv+SiNggAsItE+9GVhI4zAMAPDVzhugh4UIboIu6HZjGipvEC1Wzbq006sMcYDJ2dW1bogwGB2LU/RNz4Ii0R7k89YLgaoYFCAg+OIDhtmHIqzUOTcJkNZXIDtMgXcMFOvjw4hEq8aim5kWN3AenB7BFMgAZcQVDpHgDAJgPwCFuiD+553gBCjggWSypFdaBBEaExAM/OfSDgmH1IJp7btmh3FhsLYAGDBEeJABKBZJUG1DTmTgaQp95uCKLLZoIk0NmZESciB4ZIVELEcHhn4s9+miUFOyd9CNSMz1EUVxPWEDhQS8IidgaHFEwV3of+ADFkAeZscN0GgJwYRQ4JIf/BpdE8neQBRqRqAVDvzW0G4pHOXmimXXa2eRGXfCA0HM1GVFCSnuVpdN1EbkRh0MVALAceRwRUeidkQ44BJ57IWTAnpIahYEGG0zgnERKtKmjSJC2BiiV6h3HwaIbuoqAqx6GGBGJCHkRF1BMspQnCDW9hWZn6In0QmqaGtsjASRlgadDgwJAh0J0dmbFRAUslMOTAw2QwqIrHPutjxM0C65HDIyBxgJvROHpQ9EmlmBi+nHkVnP1JpdumDpk1VKdKi7qZonuIWQEVayu55AFrB50HrkN31nsQxQ8NCtIVGBbrVAK60RDnCoQ0VRKC5rqMMmqZVqySFVw28GVMJwL/0OZA8NXmKL70RZaYopuES2sForp1gpYmrkVs7giRJlDYfBVLspNr4ikWRRry61Lpgkc7EX9ARvfee5G9FcbTovNotSRHuEymTVfqm2NSP2w2NGkDhTAzRsJQGlGx73ZFt8wYKhut2aqMDNEui4IWswL+VbTZliP/TjJyS6oBG8B79TQsjlxPSPknTO1BNu7ep5lq+5Z+iC/TAUnkZFrh86V60SpoJAQG2iAYYOvwhpDEkY8tVTZR5Hhw9VJJiqsRErfbMVfCCE6OvQDSi6cZv4uzTl1oUa/fcQ3cr8RBzAh0fxhLEjEwxSsEVA2RhuwFcQRAASx+9+4N3jFCLYL3f8iD+Y/FELbPANA0ChvYbcaSGok47/vMdBOAZDAfDwQhI8hTCM7EkkIMtNA7slrg/XZUkQqsDIBOQBQCHoQp+QjGudoQDD3woG6wqQhdL1OJE3IllnwZhpq7UoC6VvdQa4wQDewgQgwapLhBjaQ53mwiWHxYZAkMr2PiMkk9wlK4zJCk1JZz4nkAh3UEDKDk3mxcBALoN3iVhKLdOQMNaxbR1K3EAxQRVsR8FanhBKFGL7QDkYjUBRDhQQPpCk7jOGIEaIEAEGArIyOHNEb5cY6ADggff5hiAf8kpgFPrKTDNyiBZ0VyQ8FTEGpo4HWKDkEb3VJTHzk273uFAT30OT/hlWDSBHUpDPkZdGTvkwKBD+yyos84ZfGlNYxq1JHZkkMLOVxG13cqCURKRJNfuNjDC7EFvlBxoSiQ0ytJokzXVHhd2LMW0TKsLheJrOdIrEWDrXHGusV0J2T8lrRThK8TiIJjBCyGwq+2ZTMgUSOdenAE4jQJ28CpwtHWIECW3U7dDXIAvC7Hd/EZdB3Ba+YjXkQPClZQsUhMyaK0pp0SMQTdtqzpWoK6JkuRbTTqIZhLm0REG7annPOaU4c4dgZSBDSKY7Ee+OSYhrjsgMdxC9rnAKgEnZmr3qZIIM66BkLoSBUnh5FlBMTACjzOZB/qokK5RyV5qrirdlEkWg6/31rHJFaIBm55laEgyteCYQBOITUPTlV1oEIMKVxUeBTbNzpYVbQ1BomKAItMIMQFgWq5NDgDWPAqPwim6OXQUE6Y/3KppQjV5vFE2dHs+QZbCkwNvhhrBFb3QsEkkiT5NWX8IIm6VzDxNp+bwAXVJ1trOSRvjoGbhlRSwW+M9onWVIpPtAArXqigYniYAxvABNFHyuEvlk2TBy6rFYDySeMALFAs5rucUsrOh3GpLVuEJ9fq2JCHvK2viUlbnqaYADDHdE27prTD9hr32N6Nbh9aqNMD3dUtimXIw1eCgroWB9WSjaDx0nOQF71Fr/BCg2Z9e53f5Y13ZBWBKuEwf/ZxnBQjGDuJWj1Qn+xN+AZr4habiAojW9KVOiwWEIljUlzAVYXDAj4QwLJsB4rKiMdUFRLHLoB3/j4yg1VoJjz2eaVX6iDxMWuxV3GXAVkUJxD3jJ2XgiDFhaXY2OGESmBKYNN67rmOSNmAuJyrUbohhvRvc0zXTwMURFwH89UNyXLueoDQgDaFlZgOQhA1wxhOOVYVi6P8vvwHjOLxooFET8esQGF0UpLIdO5kyKw8kZQDZwvMEpILBA1YvBb6lmDJUdxDOZR5wcgo5ZZJ+RjTYc+uhAhQBVm8YEub8iwAJHKLwOLShhGX7hHDo+JuweIAEMplMuBYMnOCwbJBIr/MAKDSAElZHXTEBxAuYHs4AmzpPVNO6iR0zWqBM28Lbzz/cWKEYaWOCapEinJo4yETSnTk4FHm9TZp7wFBCBo+FigHLLdXFtUUL4ddvs47Yveb2rnHutQH1QDfAs0O2dk7K6GMpEa5OB0no2kxvTdyR2riZQeCrLMcy7QOPJLz9KM7g4rkMpL8/hKd8FnCw2taTNcYLq2FtiWc9IfKOumuvDzroYQ7fBrR4BbExAaeEcePLc2s+bKe/ktBbAYKsQBC3AQtkPwV95GNkrnDazAxWLjGPFUU4t2//v5am7IiQ0+TicKazrraRQlWL1ttHVyU0FFwW71ytNnu3beY8nt/0FDQQPivqPf8HNVHKTBDAYRVwenoNq4oM/LEDmwHUWKtFJ2ul27rTvgucflXe2z163pwslzL3wEh2r2JUmieqmjtqUIPW8xwFZ1b5CmHsCPCJbJ7A3EtRcGRXYwMAADZOolFvm1IPs5aMF38xcFov8RnqLBtSEhANOA0dtA7PnYFDhAQScM5Zkkoe/wNU2A4dKlPIes5RaLqFkALiCzTQxiLVR93FIXGMYY4UZmLIAO+EdyeQESQFm7adoKMASEOBy3xYAOjJ6mLV2U+UBzvAwO1NBiaNv7RcyDSJIozZIauJGwLQaRtQtE9AUDis36kADiwZEkBSEStkgOfgSuhf9T4PnfH9EES8GOvFAKxUmWBWwJA8QBZriM0DnIu3FTjx0EGfyL/FhWp8hQclwWvvjRdCgAClDNADSAcQlcVdRgzeHHne2UqE3gADXEHSTh2CRAEX7ERrnIFwhiEJYAzdlfVw2GV6VBD7CAQkxhSAwTwmQhXNBAC9AADdDL5YHeGWbB6cQh25AA+m1IhjnbdH0Kk20crpGWBJQFicDNHBTYj93fVvSg41QZ/XnE7Smi04gKydUA1RCWMCajXq0cDZrMa2ShHcRPEBAPxdnLUi3bcaCXlhQBdKmMZLUM21jYfVTWC3HbGPgADS3WGw6BeG0KAp2Hd9CegkWgMkIPBJD/QaqEzJGkQD6yCOjUo84FYvItxRjOQL+53qZ0SIY9VquoC99cycCFDFMhwRWMytNpSxf8xQu+hYYsG/lN5LqAlrAJVpmN4UjMRgUhEkA6kUki5CitJEwiBgceWXTUzfK5o5fIB75kwAacoIWh5NSsnBAF0TBNBUJAJOPlzhvAhQ/oxSiSVgE4AKdciwswFCQeJe7dhENsRqvFJD+lJN15pVjWxXdQUO9tGlS8keKRxAuG3q9MFAhoQQSMBYppDQ/0yUMBgA8sC6fAEHRBl9FgyRl4CsWtnx1hxAy8IFl0RRYkFxWgBMlhTrFQX4oUT5NgEiXhhOE5mO+NZckgnhTs/+G3FKJn5libmU1zVNgZel6g9CQDmBMGTsTTVQDazE+HoAFKslIxMUodYmXShMGjKFpUBhSTqN6R3JXh+Q/H5MZSnGZpHgt9QZAPfVvrXeJzXidEFNxAmgmKkccEqIDLaMgTeM8NlMAHQNQgfVgGatcVtAW7KRMrhSCOJA4cukEIPMddTE8BRGZZhMCvIZl/KNIEOg52+tIZKaY8jsRBFiiDflY7bqdeAaag/cu1qaKXTFdF3cCFbJ4fTVAUXhoUfgQEkEAxbQWbhBWIuNb+7JlYNegj/UFr/c8FZEaIphVIDJpr/aeLXictNuLNuQyfPMAFnAGJUShlRZsZIpRSMf9jTPnd0RigGsyok4qmT+ATeejojnoQtDTKjGbGZ5hYnGWpmKKT7w1AMZkTan4YKwJAFFzWdtnmH+nlSqgYeVTUR2ybfKUA2tVpQ0WE3uzdmP7SrejPQOCEkKKpo9ghjwXqWwGnamzLzhWGCrSbbsCP1p0NN5nBAiBq1wHAY2QiAlBpRgxQf8rEAOKQkpiEAfzjkTBqMqFPDZSoT1QjKqkBJxEfeOSfCnCMq9oTTSiXfpWMGLhlCzqb0nHb8UzGFlEYJHHTw+GK5ADBCuhNNT1Y3OEGG/hUr0bP2yUoR2ZTbvRKmvyItcwMA4TptvrSriqqwxxBh0IjmhSpwqmRa+n/GUksQdnlSBX4wErgWpciUFFsTfLkYro20DYRkvtMngWRUEQWrDG5T9PsZKUWj3zUXWPVXpxWzAd0RRNoZsYyR8hAjTRBasM6rG353qsRRZOKB5VWzq+Ik30dovCpHMqo4W5wYqEupwlkk7yuTRr07EgIm9pUHnlIkD4OhB/AxBHxqsnWFhXQbLngqVEgXLYulz6WB7OmybiGZdN6joMgxFmGxG+5BsalywsxiOYwgB1U7B3yCw1IYlIAX0Pc5LPBxULEo2XmTffF7dF2rcPox1/trdEgn58UiacO3WvcEqv6LfTwWsPwbPVs1+48GwPIx/SFDgvQANHilkcqEk08/yv7IZl8SN+foAmiMq6pHaNG3MCgTYETlJ1LKgtpfg7qds5JzdQBgctGil/FduQLfi27AiBTFIpNQQhV9EDFKsm1bWj1eEtLQG3tltGO4OPqdaa9ftZL2gn0Rq/DINwdyomAlJ8YVF23GIdFVFa8gmdy0ccTSRCWEgS1KBTo5oaYWMctoWut9S33+ojxlez+Xif7dhW/aCt0fIFiYViT3Oe/qEgmlQEhHZZZDM4WCMHFPF7dcmAWukduiFkQpEHmOCFdMASm/m+PxNZErGWBbO++kXBM3memZYB2MchyLJAKQFz5XAcR/EA8VkdyKETl0S+rkODKFZmEhAB4srCdkP/RtyFxPcZiuzZkpiJQAFOuYThAgN2ACmMBb1DirDraRTzc6SaFsTExysCukJgwejArGa9xSIQndbFhwBKsUVSgGYeOAniiEMTAujxb9VRuw8YYUyCbvLHxjwwo5pDVne0AIx5uImaO47oIsRDybQzBMi3x98jI1Z0LlZnKjKbsJBtXUgqa3VaP/27bn4FvCkoyuDiW523ACBBhKquyLM+LXmZy6VytBU9yzlZuRZkPAyTMGQIvhIZW/85ynVCOQz6WhIVuB1SyMT+zliQMBmIAC5iAingkgWhqiiTBA2iTs2Xw3NIFEGwXNJNLu20A6BLjVZYzO7dKcrAuMKtmNgP/7c8qsGXWcVg8WZ+1s/YqFOP5QHkpLD8/c5jwqebgb2sURLzqzXL0iRVrBJzlc1tU5BHs3kA/zeFqKm7aWUItC9FULzvP3xp7YjRuIjaScnjw2i9vqAxwh/9QqUgXhmHGxdwt40U7hJNs2ZXghNqgio8QsDu9gBObhQ30IwkHhu6s9C6Lh0FWRKvYDkLQAc71YxgfhUIK3DTO7m0s7k1zhEUn4JE9MoGRRGTSRVkXKIYdAHPyRja983iIkk56JGAKDC0+RFSVz+Z2tV57yCz66Cz/8sVJ88+sHw2ltD4C9agFTkMcTPDRLsDutZ3saU1l6SyCrQOV2gVeiGtmAP0C/2lKw43HLojtwFp8Ja7+UoRWQ/aKXPUa4yLDgoVR25dlVI6niGcWkjaLhDKB6rJqNxCAtWhv12OxwlKlPoBAR8hf5Swf2wbOBbcHdcBQm6xr166gYYjkciRue4g1KwQX4/SQmQ6fODeRXB9SgFDtIXZaCmLYIjH9SJQmTsrqatD1yGQIHLd4Q44hU41ke/epccTBBGod4dtZwyTUUN29ZJOZ0NTSiLWP6e99EwnOpre5ySkyslu3Yed0G+K2ns3o+SXxBMjItIg/O/iDrwgnEk8zDwvGHqHdrbdZd4SLj2U3m+20FR54hPb7qkYXIG5K1neJRzZIOC7cCaJz2oVIx//0Iw6zInLAtd1OECwlEaB3a+SdlbIob3fmjx9zqAjGLIqq2ApjuX2aR5gBEVwvi3slT7qngsSPJS52zG31dKZxlpdwjNBVlQBX19a0mL5Ah2FzgEg5zN6GlQ0FEc85cg8Mk9ecHBFGjCPgWE43kpvsbnjY/4QHnPzIhH6voRPJXONhffRmnjs6C3tALk+2EHAAcm464EnNIHtmgSlAbBvcZeOVdobHL3MgkUyPIas6r7+4Jfe6SMSzP3KbU74msKOMGDyoMpp5enk6jsiVX885tLE2lKRaotj5sR+Lf3LvxxFaCKFu4MpxXcCGkGoABLdI9mF5tnN6FdR1XC3grhf/jn6c5fqILeGWZpGDz2Hku08wnHzn6ro7DbzU8YDjOZOaZp5wRLLIrM2NJd2SWU2CD6vMtro3eKIG/IClaI4JgFVGzIp+WllMkeo2PD93p0QsmxW4kQvlENBh/OOwFw68WyLeRqP/kgHskyl+jctrRBE032V5BpSc8s7bLlDYAba0JCEDUc6XeHKTFkKIyWKzBqAP/beQUaezM1dfp1NAcmVW+hIaMGIwHtWPPZF8HEgr48MTyG8X+mZ+Tby/3seSPeQYq9zn3tSb0i13iXYEOs/X/fYUvF6DcFdvvQjTfd0xAQp7xAy8vd83fm0NPI8awaPhaJUeRU6tgJ4bmeOD/4soMfvmQ1gzbtDdjwcar5yzQXXRvnldMLyTfn6EfLx4R/dbu+jXiQaZRBNj8LuNuL5tTJGX835BibrDY0sG6q/ht9ETFDPwl/GdZPhAs74yPhhkoWXeYEluKL9SjPPyb7/jE1GdLsDRN3PLCWwIoeQUK0sIfTj3swY+rz+CzIp9A6TIglr9gr8wjZzws0Tak1b3AcQRAAMJFjR4EGFChQsZNnT4EGJEiRMpVrR4EWNGjRs5OkzREWRIkSMf7iBpkYILg0ueAFBAcMNJmTNpjhzSQYQBEkEAtNAxEAWGhzBGUBFqUADDElAakijotGZUqVOpVrW6sQJCG1cxxuT6Ff9sWJozng5cYlZsWrUSW8Ag6OJol4g7SjQAIKIpULwcya71+xdw4I5bBWfs+6JwYsUyfyD8MOGglLKLKdOEAkPDQBAclAAwQbFEwwEfXEKIEaFyatWrWbeOSAA1WtezFZL+m+ChbZ8XmtD2rdEMUQx2796QmDShgAFItXiGShAD07uIZVfsYBBK1t/buXdnfcS4d/FrJbx9SEP7ePUKvbp1uaEFx48H0S9UsLxnyOfr+ffXj7AA76rwyb8Ca1KuMYpMMrC/lgjKYaAYIjprJYYgQyoh4hjckMOv9mINOYbS65BEjV5CqUTvhijIh4Hig2jFggr4yAEjCIIAshcPoiD/xR59lOqo8eYAyiXcChqhuh+VtFAhA5YUzysHAJBsIghxMoswDJDUKsQnvfxyIjf6KhA/7C7U7EYwSyQAAiIzHKhLNVtTQIEVIniRh4LAY89FJAVYYSA0kryLx7t8iKAIl+RclFG/9gtJuh2fumLLHXRsFNNM/ZLLJRh2mABUOxL6go2HDIjg0IEcdOwn6zR9FdaKCJspQDjt8yxWEicoys1c/1KirSp6utMxtqIgCIc2DyLhursi4jRIX6WtjI0yxbPNvGyn5LM4CadlEIVvA3MiCxE+bbGJQi9q1SGoIKDuoSnEnbdAZteyVtHc4OiJuBRipPe4CilLkCoKAdaL/1wcxsChPsMYeuOptsI7mOKKLYrTyTePNAuMgRK1ODED4swW34PgnerMgyk8K4oobiBipgoWxhIMCEG+ObCS1yvPSNG0xdm1H+YD+q8d0DjAgpoQ/bBXop0mmtN8GRKjyCYffRrrTM3wAYYHMqBJjD2fEjbrsqXSsNFmidzS7LYbdW8mzJjOD6wEanUb78ogG9LWviMzqLxJySghtNLMyFusExG/CoMnwo63ImUXn7wqvlcjoGOMIMCtWQqKGJxQQynnKvDRqcrAjjcWOEKgDXWW0XRML+gx48iM3EDtFPZt4OPY60bTd0i9XqDl1dM0vrbglafqi7n9G1rDEuZb0P/jugDtbHmubAA0e44EUn34GGIovmU0aBg/uFUBGLP79jfi0fImExv5IpyOqKJWDct1n3/XegAgAxoQH8MygAbVkQ8Hx+rfAuUDkdp5hwCFW9a2KJgCrjEQg6tBAABhcLQCgq98l2JfBkmYEBAoCTkpfBDZoAPAElKEfq97IUjwogECLgB9LuzMhwwGOIJVJ1Jcod8MOUQhFOAHXlMIA22GeJEKXAYHRDzJCKUoEtTBQHUEilAINpYyk1URb1SUGg2pIpkmTmQAkVIfGNmomktNRosJcUIb3RYtZ51EOan5QQIeQ0c0ntGPV1nCydgTxEBmzU5fOOGa7NOsCRgSaID/nEq4Drkp0RXSi5aspIBe1rSA/S4jPSvTEzPpR0luEpWpnMgIpURB1pxhOMmRyARUIgHqqRKXYczlYoBwK9WgLXJQ+dQTWjfDB5LklLskozKxFrVBMcmBMkHOMdFYkBUIqmylY+aixLhNonlhiWMUyQwCgKGQqMuX1mSRN9nZTndqpofITKasgNIbT76FAGtL1TOl+IHevROgAb2nUm5zN+xE5DN3JCISBdpQhw4tLIozFUWcspw9Ruhr3JNiPh3aUXf2soXrS2f9GNJKlKgEQLBT1A/Aw4LRydAwEvXoTGkqEUoSFCNsaxeOnLDIVA5tnjUVKgPxkzKfnvKUsxpM/23sScihPhWq2XMelgbCguaccyMRlJQcIdpCO0YVrGFF5FZ9xhGYJoePE3LMCCSYyqCKFa7KU8ndqHCG3EjFoCXlEw9uCde3xhWwaVPcW/OaUzwqlE4aqFRgGdtYi/XMIF+Yo1nFqc1ZLgQOPKpB8jpqN8d+tmy1o6WqtARZiAzRCHma4FJ/RsEWdVRyoJUt0KjZs+g5hKNZPUgUxSe/bUHmh7MV7nA1FaO2TuSquD3rgwjCmQcMlLjRlW6uvvAWFpqTuVFZUQCFMNAA2dEB9sylSadbXrzFRpyAW1CNCCLTai7knwYxADW14l7z3lcmd+ACfgXZ3snc5XBEgtkBMP+Cn8KmNXQqLY0s/8tfBz+YOzlhSBHYFaJiagQ/S/Fq1eQ40tHFVybYwy2EEyOvwrihsV3Yb3odE1uyoii7MAOrKAtL4tWY2MZTyWOc7PpJhSS1pJbl7CH/mmPWgNTIG1JbbCpwSy66RKdAEYotFeq+Io8ryVmeE1IGMJqIVtlvVegYufp35YeMrKtaVvOigkjekaATukD0GBSuYKM1y8SZs+3xnUGCBbVepAAzWkgQXfBIlOYHbrhKE1OezGdH4xbJj8ZqPaVWY3pOFFkyAEAZAGcEOwlhdg8280G+QAcSOlUto5Y0hqkgv9rB2W84ZYimxUA1E4IAC3Zu7hJD4NP/VTPECKX69bABDThLg6Y2QXDpqKxZHxXA09fvPPZf7kBsa2NYvj5uLUIJvBAOeIYnQr42sWfA6XEXOMqhhHNuj8KCmASh14FS5649swUA0ODcyoR1vsUTTwZL4KYAMrNQuhvqWydBnUjYrDH5HVritjqayG5ttDxgbxpo+gj43rW9WQeANLCAJwtt+MhzpTaKjtFgm72Colnu8ariqgcf3KLyXHxHVZOcNbrDuS+DO+n36AWAG3guspqLAKO3nN7BQ++2KRvOnd9m3k83a24Jeqhe2zAIuLs3DbptEATkoAeCWHia3EnJMwDzvsuVOqYAeSExNOBOSHiAmFveW2Rl/8ahbf3q2vmec9uNWDZQ+IlJNhCGLFw3QsAj+0xFrNe+VyXPJN83dCqwL45AAQxcI8NAzkCFvl7XK+w84xyo44St/Ovxaal56hXvqiNx7Qg+yNwc8oeWHmQdoAJwswnR6krWR8W+rF89ZttFaT19gEr89KYfIjLZbPX892cbeTcVDPhARcFmLF4C4sE6g2i3Vwnd9W/0xYLjx0uUxxuDSQtEkJUmhN8hF0d6Q3e/8oIgIc7kp8qe9d9aKVC9pBhNIchgYoQK4ZprbPrPKgDQM1CP7/LEvfLovegmITRtqGLE1GyuJ1ho+BSQtaIu+swPu3zLMdZokw4MACdvahSPAP9eYkQ8kHlgcCH8DPpcKT3+Z2t6h2AYAKpCT2pqUAaDUCQKwAF5ryCqLV9EQOOAx91uQPxezuWkLaWIj8WE8M3Ir3bIIk9I4LiMpLpK6kzwjw28gF9EqgfqrDcO0J38rb006kY+AJ0QzAqjwgoAwN7Oz0XOrFigEOCAovOqx/JqyuliTVgObQ4PkbJKRob6gpy0Zex8yA/Ljun+5u+CDxEpC03ucO3+pJToi5+W4ESS74vQZAlnSquUT+0ukS/Oj/oMy9tq6uY+S7y8ZMVwruZC5JT6cMFkQwKwZdMGwgc9KuCSxG40Cu2ia9pUsTuubBgNog1mzCEaTxmvkCB0jdj/UA25nAgmLFCZGHACpxEcS0LGPMm0ZoIMn1CsmnG6Ii8sYvE1SG4FuA+a2isVYU1ZnC+qdi8cgUQ2kPDavhDwDK5XEuSHlArMHmTphCol0gnitAwFLHFgVNHklK8Kl0UFoUoCKXIfM2IN7u/crLFPFuIANGDh9ienJlKZgLD6GAzCOrIiucMbH+8R27AFyGABTii1VusigaJZpHGbUBLT1E8BU5Efha/RZjIL/kfi4IpnNtIpFcIDngXlyC4MhG0SBcYUnxLyEsLPyI8NYcJj2kvnGkwrSyi5NOkDC+IZ8+0BohI6Eu3FSM0ssmJzyqos3We/cssdb6Mcz/LcuO4z/zoHAP5JBHTQZFQsMlDSExmrA++SIlak/bzo+4hNBdpy2cJEI1fSoxxQ3LZFOgAyybRgFsPiKy+iKw0iDk5z3L6NAwaRWxDiDtgmC3qvb0DlqdzwIG2sFiGiFacIw7RANetw5HazI4BpJglDtWjKxDRqBrxvzb6wMQHjKECz+J4SKloAh3xLBAUqOUvJ0TpzLUAzOquTCdSg4UJgA1RgMn0GogymCi6AAzRNjNbTMdtHSsax/CJuBg8iDabv9mbzfQC01Y5gNuOJPuuTf4jzK3oz2/QFPxMj0tbQJWIJuUZTjrIPQaNrRVwzLrViUgamCN8paSjiPoQyQx/MOzvMTf92kjKoM64Ux994jChP1LwUMcpcskUBCjH88tKY5AWmikZBq5wqiwqtkUMVo67cCVjQETQYqkE9MkhJDMVwNDMrgwpAcpuS5kErIoai1MaCrQYcUOVUVDXW8qMsAAQMMhsZcDG9VLj0UQkmKwS+oCPB6fHgwALw7f9CyU2NjE5Oa2SOcTEEcpcM5slmVP2GEWNesE9nK0b+1Bl/sSDeLv92bkb3slFBawn88eUugB1XgwcarwuSU5XyhFHJ0vp8L1NzzDwRjlJUElT1EZdAgHv2bSYHrUpX1bx6wEUBtDsY9JCQ7Ap8VUamTFURooe2U1eXFaC2xNbkSKnsr0OZlVr/G8oqqxVbRaIJknGTuIAIfDUms1VceXNKAiTY9C1lLmpc+248kZTDmEkp11VeHQtS5zXfgPWVmjVX7ZXPehFLLwcb2ekBcNP4+JXYlFJBKcMAMnAg6IBJ4ZU2ydRgswwvGFY12GRfNyk7Vk5WPWxiIUxkUPVjR7addLHLLpZbSVZlpSVc57BlV1a6vCw3/+Jf9VWkKhVwYFZnd5ZnOyRhFaNNw+pqelYrJeBniRZp6YglFI47kzZby+k6SFWgXtZpEbQuOzagCABTqxYRT7WhTpFrw1ZsxxZknBMayfZES1M5PRRt2xaDytFtlbELAjZu69ZtMnIX7VZvJ+cP1wdf/6EKKPc2BAWXcE3nbwsXcRNXcReXcRvXcR8XciNXcieXcivXci8XczNXczeXczvXcz8XdENXdEeXdEvXdE8XdVNXdVeXdVvXdV8XdmNXdmeXdmvXdm8Xd3NXd3eXd3vXd38XeINXeIeXeIvXeI8XeZNXeZeXeZvXeZ8XeqNXeqeXeqvXeq8Xe7NXe7eXe7vXe78XfMNXfMeXfMuXcMF2W5qyXI/VfEc3AFAgD+pADwxiD/hADiK0fd03D/gAAE6gfusAAOQggPGAf/0XD+g2fzE3APJAD05AD+SA+hKgC+pgD06AD9o1gSH3ffnAgvH3xwKhggE4gzN3gfs3D2CoDv8cGDxHuHEDgA4sGG7P7AUqWG1ZOHEDQA5OQIQLrIER2IYFNwACQYc5IgAaGFZ/2G4DYAlOAA9AAjfmF4kXt5yguCOUeIijGIjhJIdrmEu3GIvPVwGuuDpPSw/494v3NgBSWB0PYhCmFSny4AQ8+IzJVgD2YIclog/ObA+aeI7jdoFPwIcd78dyOGj7GGkDgA+oGJl+4AQ4VVu5IpCxkiUnIhAMubECYI9Jwg2mdAb2+HB7FJlgEwBOuJIjK4CRVYAzViJK2ZKj6gUaeY05og8KAQ/0gBAGNShTuZV3DgjgmCYKoRAo+JYLQ2dYWVmodvEOgpVnIpJ3uZ2A4AVeuCH/8rgg+qCNJaIQBmEPCOGaubQmuDghdLnY2PYqxdmZXVkO9uBTFaIPAAEQqPkhsnmbu1kwDOaEv+yco0tk0tljAaAP3KAA/gCeG0KeudldNSco8wLZzDmfHSqITyCWB4Ke+6Cd8SAP3pkhAIHz4gCQcdkiGPoqaQKkGzr34PhwKRoQ8CCOMbohcBiiF0NyZKiZC4ako8qK5ZidU7p/gQAQmI8h0ngPdOtiFQJehrTAatqmUeAERhohKLqiByKO2Rd2zNhErGWF1cSokbqdyomqHWIQnhqqqwumCGCptZpo0/ilfxpO/CAA+DisF+KP19msP9aKHfnHyqmtDaKRfyyR9ef6rAFAkdU6r/tXD+6ADu45Mcvar3k2rnELrzn4C/YgqI8NrQt5sfm1iAP7p+vgC9BaDiQYQCBAsS97ZwOgC0b7x97iJWbAgVmsiIOatHsWreU6q6dDADjYrqckhXE6MBA7tlOviNMarvNlAOCYoR+aqX+bZA1AssEzq6dJAvC2AODYrZWbsRWAhm0KFAnCpavbuq+7gZNbpSA1AVT6jr/7rFNYD9Y5AGp7Sip5r9G7ak27gfnARW2HDiqYDyBSvks7EBp4jwOhLqfpBeSggPlArvv7rLsAD2D7BAjCwR/4iBX8r5W41AaiDuQgEIAgoin89wICACH5BAUDAAAALHIAlQBOA8gBhQAAAAAAAP////7+/gsLDE1OT5aWlkJCQhkZG4ibesLCvRERFDU0NYyMjHiWeurq6VtcXPv8+4SEhMjIyGtqanp6emVlZSkpKa6urqCgoJiheaaofs/Pz3Nzc26QdghhvKvM69/f2dfY2Lm5uaenp1uRtrbd9O7v7r6xfRh00fj18OTk5B+X9kuz/rbk+Yu328bW2C2P3xFuyrOzsz9ujJCsxbj3/7LD0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2C3Vwv+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgXQJgoWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMF/XsLFxsfIyY6Eys3Oz9DR0tPU1dbX2Nna29zdVcze4eLj5OXm5+jp0R7q7e7v8PHy8/T1SOx3Gvb7/P2u4P4CChxIsIm+gggTKlREbKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fP/59AgwodSrSo0aMEGyJdyhQWwKZQo0qdSrVqIhRWs2qds2Gr16+QnoIdSxaL2LJo06pdy/Ya1rZw4xbpKrcuzIN28+pNg3ev37+AAwseTLgwkbOB+hpezLix45xYFT92o2IyPbpzo2C2zNnnZiGS+XYerfKzndCkU4/E10W1a6hKX8v+2hX17NtENWx4i7u3RcRkTPse/hL4FdvEk0sUi1y5c5OhE8R+Tp0x7+rYs2vfDkaycdBHpnMf77E5+fP+hDPBKx69+/fw418yL7++qvaJ1LfRb7+/Jg3f+SfgMfQNaKBd11lS2YH+4ZdEgAxGCE+ArElo4TYQZoHCQfxd6P+hKBl+KOKIJM4GQ4koOtShIQqk6OKLMK7kYIw01mjjjTjmqOOOPPYoxYw+VejjWEIOaWSDRybJSpFKNrkKkOEpeYKTVLpXYJVYZqnlRExu6aWOCX4p5piOdVkcmUKFuJiZaLbp5ptwksdmnEosSOedEc3JGJR4Xshnn4AGOpyaghZq6E8QtlhTBIc2auSKlhHqaCeStjbppYJUiummnHbq6aegigSOpqGWGgWppqaq6qqstsoTqq7GKuustNZqKx8P3BqHnrpO+mevwAaL45XCFmvsscgmWyhvkCrbJ29hOivttF5GS62jzV6r7bY7Wsvtt+CGa8Wv4sbl7X3llif/ybnpasWoM+y2K++89NarVrz2Znkdvvn26+9zwvH7r4/ZSlHwwB9Ci/Bgf5Krh8ALRyyxXgePQezEyfKK8cYcd+zxxyA7cXHIvsULMckopzzUyY3AqvLLMOPh8D4VxwxXzTbnrPPOPPfs889ABy300ERT53IfdLGLc9FMN+3001BHLfXUVBez9BiKVq311shczbV2Xn8NsNgMjkz22WgbEjYca6fNFMuDuE1WV3DLXV3dduet9956t83334AX7beNeLNtduCIJy7O0YrvU3jjkEdOzeGS9xgCg+9WrvnmnHfu+eeghy766KSXnpvpqO9yeeqst+7667DHLvvstNdu//vtuOeu++689+7778AHL/zwxF+TdfHIJ6/88sw37/zz0Ecv/fTUV2/99ZGsjv323FuY4OPdhy/++OSXb/756Kev/vrst+/++/DHL//89Ndv//3456///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgRCMYHAkSMFGga+CGMygBjdoNQ568IPl0xgIt5GrEZrwhChMoQpXyMIWurBWjHuhDGdIwxra8IY4TFgOd8jDHvrwh0AMohCHSMQiGvGISEyiEpfIxCY68YlQjCLiBifFKlrxiljMoha3yMUuenFaM/uiGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62v/xjnjMox73KIrM8fGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud2mNzJWQl2kQwApIQAEGDGEBCEDAASRwPGCCQQAYOEAAAqBMCgxBAhAwJjUpwAFncgGaCAjABRogAiQIUwEWAEAAClBOb1pBmNI8QDPrZIAFBEAC7qQCNAGwgBlMYQAdEOcv89kEATRgne9UAAEI0E6CLsGg98SCMC8QgIY69AgQxacWBEDRFVwUoxMIQDq3IEwCGPOjRRAAAk76zZBWAKX/QxBAQC1K0gpUFKbCjKgYVHoAnFogAGQQQAYCMAGUniAAHSiDSiHwUaHeNKgBbeoBLmAGAXAgABgIBFOjUAAk9FQK1hzDV02o0qSW4QYwWAA3AUHVKLB0CFsFQFuLENYFGOGtThirDUUQUhKYIQYtKAADXsDWI+BVrnQI6w1HMIKhnoEFLaABAgi7CcVO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/wAAAP7+/rm5uTo6OjExMRh00fr6+tzc3BwcHcLDxENDQ42NjZeXl21tbSQkJHZ2dmVlZdXW1/T19hQUFFFRUSoqKu7v74SEhFtbW+vr65+hpK6urgoKCsvO0BRtx+Tm6H19faioqLS0tMLj9Yyx1FSAoyGS7ECBxjNvrUez/qHI5mibzqGrg4CdgL36/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2KzW6Np6v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7vC/8/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJEiGCkihTqlzJsqXLlzBjypxJqwvNmzhz6tzJs6fP/59AgwodSrSo0aNI8/lLyrSp06dQE9mMSrWq1atYw0zNyrWr169Mt4Ide3Qp2bNo06pludXs2rdw48qdS7duTbt48+rdy7ev37+AAx8R68Wt4MOIEytezLix48fZDEOePFGyEsuUM2vezLmz58+gQ4seTbq06dOoU6tefYcw69ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+dTMEOfTr269evYs2vfzr279+/gw4sfT748H+nm06tfz769+/edXMOfT7++/fv489dGr7+///8ABijggAQWaOCBCCao4ILz8MfggxBGKOGEFFZo4YUYZqjhhhx26P/hhyCGKOKIJJZo4oko6uRgiiy26OKLMMYo44w01mjjjTjm6J98Ovbo449ABinkkEQWaeSRSCap5JJMNunkk3nxCOWUVFZp5RZSXqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOappxBZ7unnn4AGKuighBaqTZ+GJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqv/7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPHFGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUI0cBAphjXnkRExDgQAagZzDCAhtUvsADEAiguhAVeKB6BQxwgEHkEABQ/4EFDnwQAgYBBIBBAiQ8YIDqEiTAOAEKCMAACSch0XsAE0TgegSJByCB8lA8L4IAFSxgeAipO0AF9MOLP3gCHlQwgRW9X5+B4CHYXvoVvW/fAOABQFDB/FkEIH0HfrOeANa3hd5ZYIB9I4EAOACG3sGOb/ljgBgCoMAR6C0ADkCgEp4HgAl48AkBYEDt8hbBDfbuAy0AgApWmAITzG4JAViAAAB4NwoKwHvO650JVECEA4AABCkoARNKWEMNKCAJz9uhEXzoQyFusAECiJ/dBlABCeRwAB/g4RGYmAIYos+CfOAAAwrwgNK1zwAF6IDviGABEVhvCBqQwOU6UAADaP/AeEQYQAYkKIIhIIB6acxeHwFgAQsYD49CoB4A/lgu6M3wiidQAhNNoIQFTAACxdMDAjqggA58oAAaOOMEHKCADwRgCCRggAUoKITg1Q55DZiABgxAAT9GwAAkIIABHrDICNSOA90DoQHuBwDZFdMAqFykBJBJrg2MQIOcS0ACFqDFJDBRCShYgQUKQEk9gO6EF0DABiDgPevxUgi9S2Pv4NiAAFjAiou8gPniCUYAXICevbTAEzZQgCJgUAP+jAAixUWADHjgA0cggEI5UE0kXDMJ2VQBBLq5B8ztMYbIHMA//bjHRWZuBPckZASet0s/EtKDbeygAaToAAk6IQH/DLjfA9b3zwzgrpboJJclUUfAIizgpwwtwgFY0EUhPBQJ2TyBAkyAAj7EsJPFLMBHmem7CxDAo+kkJgMJgIEGVNGP/FTAEVsZUgAsgJYmJQL/zOoBDXBglhPwXwUy4AA7DuF04yKALMmZ0IU2FAAHKAECinrUIyR1qU3lgwLEh9HLndKl/oPsSUCK01OiUQjwXCQDihc9CX5yfqn0IwmYKQQL8C8EV11kG6GHUJW2Fqfi4h3qkICB2mIgkkNoYgdCkIIf+hCbK1AqU/eQAHmeknzG8x9Aq5raAQihAO3E3PwS4M73CeEDCnghBci5XYRi0KVCeOEQBipNdEYglACY/18AcLlJc8kVib1rAQhyC4ISXECOvR2qEkoAA6VKMQ/8fMAANsC79coxAVAdQATAi7kOhPO4da0lMOPawfi9D4MKoK4q0wsBYjZhAcEsrgOsl1EOQGB3i21kBteaR42GoJpNZIAAqKeCFMLQiHyQXh3RGNezitCK5EutR4u5TtVeQIQ57eNod0zDCTAToCBsAAR+HN5tivCqrMxsuGzY2iM8jwVajLHqqPdfJF6WD+X9oEdz6ceBCoG6/gTAbr1cTrWadQrrGygWuWpncvlOAB728gm7+MMSFOB1ilwCBjxg3boREb6+M4F8DT2EGcOQADesoUFZDF/B9lMIxNugBMUqgDdHztMJ6610+JDogXPW0HZRSLWMV0kBTqMTij2dogxPPcQLjBQACNRdmXOqzwseULxD9KhB3ei8B0Cz1CEQQLFRXeH0JQHTjb5gBwAdBepqgNtGmN2n++a/BSZbtJn0p1htXWoB8vrcawWfB9wMQQG6GoZ9vrP6Btc7KPIVhs7No47ZHUDsSjvXTSB1tgvXb9fFbtg+5eXBGdfvC6jOjiJwAAc40AAJyBjYWm7cCRtggeS5zgO2IyPzKvc83+2uwIYLAgAh+QQFAwAAACxWAGQAagP5AYYAAAD////6+/jm6eTt8ez3+fXM2M/y8+/V2dXm7ub29/PP3dSmwaqUuKOdvarZ3djY5dvj5eDe6eGkxrbu7emyybHw9/C5z8SxxaufuaGnu67g4tzK2cTD1MzW3cr9/vqQsZzX4tCHrpvX4dq2yr3O5NnA0sGbwrLF3NADAwS818etwLOny7zHzcazwKR9p5Owxbqxzrzw8eKctJqJqpWSvK3k8unP087K08Tj6Na6zLG+x6fA0beru5/M1Lev0sWMtqV0opGGs6HHza26wrmbtKnAy8B8q5vb7+bi4sy72tGWrZZum4nU6+Dr7Nnv+/TBybWKpY71/vjm9u719ejF4dX7+u+/x8LV178hISO2urV+noqlsKh+f38+Pj6hpKOTlJRlkoFiYmJjruYhlPCx6PEMZ8eJsNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuclQOdoKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDlwLEx8jJysvMzc7P0NHS09TV1tfY2drbyRHc3+Dh4uPk5eavRue4Sert7u/w8dYHpxQP8vj5+vv8/difpQoIguGvoMGDCBMq3IQAVpSFECNKnEhRXosVg9Kl0lCxo8ePIEMKuyeLgMiTKFOqXNnpyqAFLGPKnEmzJqqGgjrY3Mmzp8+fh5oAHUq0qNGjSJMqXcrUn8B+AxQ0nUq1qtWrWLNq3cq1q9evWVFculBLKtizaNOqXcu2rdtaBv8sefP0tq7dux3pMWKHt6/fv+022HQCuLBhrk9BWkGk97Djx5DFNY5MufJBY4niasJpubPnz3CfCcAsd9JkQYnJmQXNujWnuYlWu55N23DqWbJ/WajNuzdd34zIqsIsY5BJ4MiT04Ih5RIFgItG5I1NQbn166yOd9JsqAT27+CxSifFBWb48+jTxyKpvr379/Djywf2okE27fPzu4Y9DH+oHxhl5khusCQgTHX6JXgdCruN0gIAURxRQ1AfdIKgOlQoqOGGj1TByIWW3OCSIaR1UuIto3GoInANlkIEAN4dkiFjMD4yAYnfIMDfijxqeMQEFUAgkwRP9Ggka0WKEkb/ECwEOIgINN125JTgqQBADSQMVIgJLXpCYGxUhinmKBsQJAoGEwLwAxIvwWNgISmCcuKYdK7VZSYPGXdBmjCAwEAPWnLyZX8SYDJonYiyVcMUoJwgVCJ5CpIBKYxGcuggWtiQ6KYb1hDElZoSslh0iQywxA+ChEAIBx/IkMOVJLCZEwi0XMrprRq+uFckGK2wAqCfdmdCnzWak0Buc0LCIK7MZsWFmgwh8tAWENonaZtGRAEoJMnK2Ey3jdjwhJTNlmsVd94qC8AEHDQQBBNHZJTqkxVECqES1A1oCIiVgJsJuYz4y9Np5ha8ZSoe6CThlTcSYiaEALxKCBINo0YJ/3SoRKWUraFwtojABt+K7iWTMmzcxDBmWYgIRTxMywb+jWLPnWDCqY9O2VkccsE1CHHBPTF38qwQYgkJLQ6RDjuIAylzsADOuxD8Sm7PjRpPcztnvcoLHwsmJ3RFOEBWsCQAaQgNhWBs6CNmFafKg5YcQFiUh+CASAQzal2nk/o6R8LTdgOw7brWsvCDtSkDEGrd+UjdUw+L66x3om/Cqba6pF4ABabXrkoIrXHWonJvJYgr6uR6X15JtmY/eYgITMibqgGOsx13IQ48mgrNNM6L8k/QAUwKyKj7tm3tk8Qu6QtMxO5CwCPA5HE4tX+pQARISFHApQogX9H0NhcvZv/0jVT4sSNFSJrBsEtwzfhLHJNyQ3YPSDwWD232ZLT4k794wumawIAKOIK4GQhiB1eylylU9yEHNec4ttqN1QCQGFnRYze0458GZcKCBRTqd5agQQUg9qlPuWAL9flcGAjhgvHAz3fhOo350vWKyCUiHTM8GQV3eLAN+vAk+BoEtRRRpBzeEAiuWxoNllAtsUDrSSNLldfkdD5NyIqIH5MSFtyWrPjl6IdgzMT+XLavFwXNEFoYooRY9jzCRaF9+aMYAz4oqjNqwm0LvMQGBCOb0G0sjHRS3RVcKDkQOiIMLANBEBQJIeYFRQP4GwIhQ9G98umCNM/RIUUo8CxA8o//BRSa3dgAoJMd6bADHkIERwDQPFql8F7CKQQWXKADBlCikqVpDPEeMcW7TTJfktueJ4epkFgyYoi9M07lFFEEOEKJESjogS1TNQC+1WwZeIMEe4jJzYVADVJXitj8BKE6Oi4TEaB0REOG9SfPJSmCmuwmMOWJl9ExMxJRxERcSiDNCTiAaZ5bWynMowk/gueX9GyLBgCqsysK4gXuC18hI4RM9K3LCDiZnxJgQBhbStNDcFNcCDxgSADiyHLXTGlOnKhSBekqoZT5FBCWhQAzrQACD6uYAhcRuy00AEBtHEg6EtCuHCRJEkDL5x0lylSYOjUi4NOET4vFQ1HRCmMN/2CXJFAFAw5QtZBP/JCIYGKFc9oOqXQMaNpC9NS2buNBUbXUXNq2yog1wjwwQZUjKqARCLHgCcc6XRGgRlAAGvGcBxAmWAG4TcUBLDUE2GVVV2HQihiDpW49kkNzUgiS2FESLRDOTYdFAhHcyARB0UxczyqJyZAFAtphYN9agRnJZva2wxBBjDDR17seAkBN4Mjl8hYuI04WhpGAQsm4hdvmxgRLGXnmIZgWAN9hYbHMtOYTWsZPGugONebLpDKHYFa2TeFECXjAB4hDzgE0FrYmVasJvmscL7aCkL18hBZ861x5Bm4QrTqTKlErVUPgjMAG3Ncn0EtcGTX2pKzNH/9o7UqixEhtcyOJb38TakyHyAhrlxhnOOOpCFeZNLLitJLFaEYu4U13VU5wQVZJNVnoBPZuebRFfjcsPgyzAgf1Y1MsXRyc/dbIO94Z1qM40OCT7Y/E1cUUZguJoDMa96uodJp0KdmOykaYx/Pp7dKeF6+e/W84TY1Emchi5PjmBqE4ymagIHxLHi5mew1KE501aZYdN9BShyIybmwLZs0e5wKo0l06OxGEeMmXd74tz5jR1mERh2uuqNnjJIvEtBUsy3v1bSkNAdBmziLvs/cJWKFxZU8D7DYUOoGXXrE4gA4jIi5CCCsSVUwr01BYZzgIVQskVoUceGAI5OShiMX/q0M8VvVYL9XwDpdFSu9MkHAwktsu0rrqbicgcgTwMSeYtrDugNDPjEgTdFe1WgkndkT/dcLcSGkS1MYgBKbr7GYTM048aie0UFgBiDMNpwfMz5Y5kMGFPqGqcB7V14SOjmYke+1uw/QCFoQ0b5EY1t59wNKKuEcHTNA+CUH0qzuczMD7XAgXzPGA017VD0q3Q5IYQQrc5lzDO2sFvmTQsWs9wLE3dyqvJgELRYCzl44LaOyVdx4Wb08qO4CRLWfCTBOacflCqojTPpQJIEBcrHLgK0uCtV1LG4gFhKRwOGlk4Ow+b0lx8DyjGkdIguEMZ4A0XyoYF0TOXnpr72X2/3C8OuqsOWfFNvHMN85ZipPQyQkC9EYYBMgDq+SADkw6zhsotjvbhRaUPEAFBDAI37B5CgZ00KXggc+GoPwvjCDgwkolNm1QwB+VqVnDh1aguv7acTmZi/isScDV6mvUQyHmMA1wtRIG8NXISenpTo5YVK36Ly5n9/hB7IDJT3ja8Q0QS9Li2wINslsHjn85oCEBaqPzfN5Gg8nVfJsKhBE3wc2N8jRPgo5wd1xkRGpfZUbJlhk+MCD2lRLoVnzt0D4zsAQzkD6c4HiI8Cne0SSFZSPRRQNWQn7rUgFTxnRwYisx8IESYDQVYgFQAAEdgEDBtj8l8yKY114vcXhsc/9d67V/6rUrrCAxK2gWwgNdzdEQlUII9RNPbTdbDjgmQsA1XMVEm9AwRxBRZbcuTEBfHOgwsHKARhA8ybRWExB2kuJPDZBKQFdHItVyFIZsPHR0CwAFWKAq34ZdjAFfW3Io7UaC+hRqv7EvTfhDv6JWFVhuDLAEscMyaygKA8dSAiMAZTJEBjQp/7RcNuANl5UkO3I9EZMECERhx1FTq8cXIpVWcnYIQVKHvHQyGrdWzwZrVRSGdqhOybGHgZhcUoR3o4BIYNdI/ScJi0eANfJ+/LcI6ZViEYg79sEm4/JAPsAoDEd/JlEdC0BS6NdnRzcI9gM/GeQxpjMCa7cudZX/aW6zeb8mbRIWaihGb1YwKEbYWb94VoImPg/mVs20fBOzgS0RTlOlAkuERh3CWYTgPkEEYL1kIB4UdLVmbQDwBc/zPxPYTjkRWd2zGwvmjd7nAafoWJWTc+SkRTj1N52DE6DWCOYYj3umCMHGGCVZDah2i3ZRWjOAAczHWf70ObwASXkDED8QLKICM36YQ0cnAx5AUikXAQYXAjqQjKyUhlznBKRXkcXIJZJjbMfndxhDEPOmI5UTA9CCZITIh0jYjgQ4OKaRUSvGhJIwb3TCiTBZCF0FVPYRSx8EAiUgFgw1FqS0Ljj5CEzkMi9XI0RwAYf4df0HWbLjZJFFXiz4/32D0CSFxF7Fokv7V3AXEY4ZkQEYgIfMBmVilJIUhAAutlyuWHwtSUxEdy1osyU7kHQROE19WAnjWCyBEwEjIilKEAI+NQG7JSXMpm1BR2+ednRMVAWbmYaxKJgwtlLm4SoYVHfeMzqnmS5VViqzuJw9xJIBtIMcwi9v6Tlw05NAkFWkmZmoxRFeqQkqFoICmSX5ZALruQULZU3Lw3EwggHQSHpBAWFTFCpWEH06YALHRiTuWVXflAhXqDP0p2EpaIweSQk3gDed+WbXGYAspJ+xQRoRh47fySMvAgJGUEsTwARNIoWBQizLxwJbYGvAeCXl2Zc98xAJswNBFYHQpf+ZseJX/6RgEYAFuZeWnflC1aZwNFoBq5de69deRvUAP7M4Rnk6EnNdd6gBbAIBAfZh03kxJPZnfEh+myVRn1dnKKIe88g/PTAEgLKaiVADJyAEQOBoHTcJHLFGBMim1EcxK4NgYhcE/8QDDEACYnaAmEF3yKl/YTh+Rbl2Smc6efM0rDhOO8iW54ZRXIhjVISSAolcYHKGKvmS/0JbHRoZQ5CAO/CPkCICueamqGqftPiiS1SiS1AGTCKSLqp7D9OafKoDiliYgiNU2uN2Ghl48rVSvyoV5JNwEUMA7GAgq2EM3jkQGPoAwlV7GrCBbzKb4nSAsZBxEDZsL5YZarr/Gb5WQ002UGjxAiOIRczyUkzUAzMQLIizMuO5RIsER9CEProXdiyQASwwBBGyNFkSdhnwl+7Km2HDBErAgkO6jcIEWIXCO6mhiwDGkcraIGy3hiMjeyQGXM0JXmwIkMVii8OzpW2SBJejsaeDc4JSW3shW5xSBQ8XSiEDNxggTZLiM0k0idXyqjMJCcESVC4HrcLIQkgUr70KgX/KqVsAdkKxSuCoTDsXMwwUVDBEe/hHqYSxR8LEDiQlraiVBAd6m+xpQ5iKXLxDpckppgdAn3bWVZc4atcpKNCwocvxdPqzrjlBtbqmiE+ir6aVnotgH1xzBENAo//IcT+jOYUS/ziHc1H0opnV4jMjlJhO9pOJhWrAqSmJ61XxVCZ8qKhQ6SgKekDZgwRaCI9nJbIHiK3h0jmRSberECoNeBIYUY8iEaZcCrvyERdiwwObFwVjWJD7CjUgYKpJxDhuukLNM7Ayxq9CFZfEKIFDO2aHeIg08COTEgNSqHlQOjEh9aUp0wTX+GtOsF4NegGp1IIjpTm0Y0rtJRYXNDEPxCgtQLYCIqaMVVDHNbvdt0BmQlyqG6rfMSJ/K01vxAP6eCVP+EqS4lMR9TqP6a5l2Gk9cF3SJ2MVFU5uOnl+q6q51k8eUKAbcANxgbuEkLWaBqRsGRXoh5va+zkIZzG0c6Ukhv8fn/CsLPpBN5ydcDsx9sulA1Jrs2B6T3apxwCJdpEsXIcrJtqmI8SpkGIfNqo+uRa4nTOeDTOwSmS00xUFZiYEykMrf1m1KJU2ACEYGsPDUlkA4Pi2H2mQKddslUt86vqpwfGkdYwyFccKbtsvLinAK2GkDTNCNNlhM7BoNamqU3wIPSUIyuNXVNyzAFC47EmTcaqafhKvAhuvZrHE4juxwyhezfp5T+E1SQiCyNWgT4F+d3lifkgEOeestgDLXYOYEkqyqIADLejDnhqa9iQzClKmR/IDQfSJbOgA7hMs5baqdnqBC+ymvboyiARQDxmCMGHJ7EmGECORMNwwCGL/yoDoMDATAI0BHSO1jsaqZATwsDJcUkfmsVJBNRkJWKIAPjvHVOXqcfK7jQWiYM+DH3MizGL0w5Rku3fLZfjMKTtlCDFwZiNWxQ0AJRGNg8u3QlgSgRYoemr6EEAbzbGTlw8V0btJk3wVTqWzR5oacvppP/bgudkmZXfJrHqMGgCqZvdMakelu5ZyQ2lbeD4dt3sWVxi602RiofX8FjpNJ0qFO+7zTw6swL32Omo0ia/kuwkWHSP0Lic5kBJYAeRZMrvG0Jyb0gkITDy5uGONh2uINd0zAkGiGe5VDBFqg8+KC10UwDIjQ7fTw5QgtrSxQs6VjA5AhsW7RMbsi1xT/7w7+kYotNUG9JBajECTmAHInIivSoWTlkAmwxFWY2xpg7t25xJQuSPeYHmsMskjpW8cWppDa4tyY336y1mBOjU5Y2cCPT4FXTAM4FMztqtgxwCf+I8vME30ykT/2k4Y4AO29EbOuzwuerPeNymr2pfSBARead2LeNONpStWS0EUwIJzPXvKJAM+oAM3LbNMuMfdoAzcKY8yg7IIjRQBAHKusGB8LSabPGINzdT2oog+6XLTRNl6doH7Ct1XnXUn8NgMBUpBFVpEmUpF3Kt+ulI2kCn0dsNAlqRE6SougFkXy0Mu+4dLod5W1BpeZsdA3cscsp7M5Erx0mj1cb1pd/99unez8erQEJN10iUE/8PBvZbYgJsTP1NtClC/EDB5tlSUEykU6UUSs+SGyeofQz26eEYaEa5m/scLKu4M7usJWtCxIp7HlNHeuIeEdtsjXHxMJ/fAiLNEc8lZEV20jvwui/c/vaiqDFPe3tfVGVC+XJB5G64nyr0DyFY/WEnXdFfBr0LLT4bHn01BSe29KU0R/AsJCzeNIQTikE7U7nFYU4LjjdDMVwwxJBA2ffvVXV28WvKvUpxCARvSAhsGM2miKqBcAgR0DosxmndsdtOOQyl/66zLASq7duiWlLsMiNzXAlcOBq0KafwXUdYKLJooGLFIyNyUIA2BJwk79eH/xJUX1U8iU2cT0g8F5HlLajCbafHHblIkLqM9MwYwWMF6eyW2iM9QJsl+0CFeDEhyqAbzyA/9ApC5AhKddlX4OYnE0A/xpp0TITPorjTANBMdMT8qTla6xOLsNtb4HE7gA8iaglukcHiGf0Famc/wy/weEXX9GPu+CSuPnQpNxQsMyUW7SJco8bhj3JZ8I2ijsw6DRCIU0mYY0WdWous3BBfwBJYcrEQwlO9bm/Mjb/TgXoSxReqYuZpk36Dpx4DsFBrUJxFFrxDy0dc+ELnGJHkigW/uOi/quGHMMISMxRwXIOWNeUTiNDJ9NFZ6f1ybcCSlAm+SIXNzjK62Gsu2/3BiiR7bB33FeBVZiuJE1PItceaWkdHPDfAazOPYq83Xt7eEAOq9aEtAAu6yjWUmiwIhsAHVBV8G4PevQvIiRXMNcZBbZLLcSYq/M5svzyN4PRM+SWN8iNLfkFhX5hi/H+RVwFI974tXggJocwQfPWLGzOd/S7QD/sh/SpMz8IFdR2AcQKXsZ12SkzA7ZKR2VZFFmQR3Ro2IkHszcN7yEb/H7ggHWhOCQS0RSPk2mAp+DQgAgoOEhQqFiImKi4gHjI+QkZKTlJWWl5iZkkIAE1VBIiChJ56dAC80DqcNLCejKIKgR0CnhBkOIKdbhVuooYO0hByCNUszgxMADVOdSv/IWDgkMIM2FwAliB6CSVNY2wBO104uPIUxNuASiDBTAYIDmvHy8/T19vf4AogZ+P3+/wAhRSn3CEE/a4OcBVzIsKHDhxAJ7YAyCFUNJhNmLOnEAERHEYKS2QL2aMaQJb1ovMAVjKRIZbNcKrv2pJEEHNQsJABwBUABiT4/tMBC4EGOdBpyvdPAokqIRO4IGYUXsarVq/4I4DOKtavXfzUFEblq8KvZs2jTRlK5y4HbGDMT1goDpEaNa3FnKp3pw0UGHTtmuKoQ8oQgFaqIzWpAEiYtERjgKuuQTWq6aIwIGOkhQye4vGLD/SREVZAAfWpTq+a5umAhox9ay06LkrH/oBtUFB1dHcF01NkUJPU+OLv4JBpCQBKzyyKvikQmBN+FuQpADx+6jhiOxYQ5IU6IQP0QVqUTNrGDIKRPJEMYib463jmx0j4kUg/4rw0zzr//2eCKAOjfgA6htEhYaY1G4IIMqkUDISmtMsEPSihki2GMocIEKEyANh0wdVV3iivfgSLRhLfBwpoHbr2T1wCHQGWEfgl0RkUBIZhwTTLv5eDETVSIlpkjjxDZ4JFIBpjkkvGgU0RySCjJyAOQKNgPOj6JY1MiKySIF5Ng1iPLcpA1pcxfIFY04gvEBCEISIxJhpgqvVQXRRS1BOEmicqw4IJ1h22k5ZkNqLfEh3ht/0DEeYQogMROt9UQAwk8vfVUlgg0cZuUjBCBZZig/hdJaZYocEOoC/7QhIrNFdmCOmpRSlNxVC5SFqq4YiJEc0BEWcQWF+GJDHITbKgYSUMwsBwvusSyz4ekUKqNMtgpo+mm7A0gwQg8QQBrUGO1d+qX2+ZowBMSOKKei5lNsoBq4+Z6iZEOoaaIvZmoKy+DsLZgiLu3YjXWlu4ugpA8Ue6rcCVHiNWKsbe1Agydd+bFwAnj5QUsod+92XEt5E3zLmH8dMDOuzv2e1gPeEHR1yAFCICCrNks4OMG3Lza6JTpLuxzrgH/DK+1+xDBgI6VWADRAJlOsQFHVVqWNCW17v9sK5ekCY2qm4rcpdwWLLAZoihFTKCBx9SlKQpywYTdNbYG7dBRtzZExhMJO/lritSMxQZPxoVAYwIPOXxQriEIhJMIAiSoqPXjkEfOUBNn18Pt0ut9lg4BmpFmQJaY/OSZaYrMbMw5meAkucIvIQfTgxqh8mcwQkgHqC21+VLxgzL1+RoM1lSxQ7c5eCCrVkGxix479kF3tw+7qZgbzFMy41qS8a4eNVTxPK19qI/u098KLDRxQRMDkH/eDwha1vk9sfGkp1xSQFJ15t8nKWhhlZKkZ+xRYEwDkkMLjSiLWbkIwtx0R5djhWR4I2nG7UowjOfwRAbesF9BcvAyCCT/oWmZ6sm/QNcQAWHFe/lrF6f2RrUUImlggfuSFC5QnkscDFsIK4mzjleIhBlsGlez0mm41KEOESN5UnNhrtjCAhhgABmmUMmaaGEXVcQkA6EI4AB5VwhB/S+KR+jOIAAjjM+YIEo7mN6ktpEEzR3oETzQAQeg4MGnzPEdSlsEqR7yrbQETYmJEAKjIpE9QDYoDPQYDgmVB5DLiYBrUXAcIz+HNUJS7zuGKQGbQGbIx0FMGRtZQAeq0QFWVEwxhKlFi/IyQDVBRlgViZDHRMKy+FkAb7dLUckyiIltDQ8wHYSFBpyAE62g8DW9xF4np7ZCHC5zfGNsX38g1UVVoqcR/7o5oAaVZwAHlMB8gJPTrSiZNfE9k0ANy0BbfheDlYDsgFkEjSIWI7UKaGBjLcFjAbokT1PQkZGLc+NtoBCZcgxhIoeBxgRHcL9zOhRhVmDPQ1ODpd1Mgpot3Ir1ZjSlmkHHGX20xLS2w0JEKOElziTdRPvjzgMiZApVmEBMBCEYYoiCF8pZR2JMc5QbuUwjvwAAUa5BhBlcaqdAUEEehSPQMS5Bjh30QRwJ95kHaOMG78LoSrcqJeRZjasUrV8jI3pJk76RYOEhGsrgeIoKXY2TX8Xap75EV7AyKDlxiU81USnMM5UoGJLsIekUcADF+ZVl6eEnGF8UiSuEYK2/w/9ACMrFgSRArwcuQNcg7Qo5etVDbyrlHGfPwq1rXWGnAV2kPBRrQ0Y054ZfepcYaTqCpvxgAuiALCVDwAURKIEfid1b/f54GxTabLQL0pSbjjEdOVJGFxxgTHl0cAyCiKBFSjEiJcYCS6ESrScNUIFuI0YPESIhBC74UQ7+dMdO+GiEPvMsWyWHL0YSVr6u0od+kYuWXUTTYKp1XoC12sxKqKNyhJAWNT1iN7pB4Gw1VMQ9GyaXKlxhCyUQK3Q4yl8Gna1xZ7oTBpJlISOGoVWp7KIWt1iEt/EUjt7g7nNQUAJVWFAGEKRHi3MSATq64McVcNq6kmgWK6WGuKCK3yL/Ujyqs9IDyR2+x064qEJ51Be+RFJUgtkXlxNcK1rZEBRcprXXt6ILUxHbT5S/8lwoj4QGrQIZmZnwyE7wbiUWiiBmgcqIAHzgAICm1xMRWxEUYEGvJSUO6dqYUDXLxsiZgGGSvPoV4BbMsPFoAULcvGZ/cEG76ShhR+9ntHJigzLHcM8w/jSZfXxSkXEl51j4CYLAdvohe0GbQCj2ZgprN9eF2LFejpjWRlFAC/Z5ImvMgZNrAcQv3+jMGPNzt1KpBta24DCSYmQW1cWVS0ibhzRv/RVI28OEpr6VFiJggHWFz0q4AByyjcFqE83YZLruonajdID9vak7KCU3RI5x/60lKDUhyqpTLL1moloALoEpHRYob0FoVwMgx5mLjjYjCEYKbwWby0ttWsLtE0qDvF5c1ZENYHQJKtGMyAK3irLnEdLU2myppFMdRpW9cUEg8s7NyhJGkD0dIPScBYOTTBT4mUoFxhwiK7BNgIUBZ6TuaW8+tETZyFSMRezlaRcwW7bliciESawrx602f7SdKIpE/OktxAHjkmnwt8O9yZnIxQPwK5zpDXZ7egQoXjYJbK/RtJ/Btk/Xv1VAhQb87gvZgmQBimBIlQCIlcwpJniVb0gIe9mwXVmCvZIAucvAoqrh9gawSo2pLJuskBc8JF5OtSk4EYqxtwTmqfZg+P8x9bnpofG2zDE6w8z2TUXfZBAu0F1gMIpH0pU0xqYBgk/mPiCIbt4gWsDp0du6U061NF5nnwguVFPqiL8KYd9B7bT0ZhqGNXdZ3wE4h/K9uFK7fz0gBY/n6v/65pBo9nBMTmZyusFLyrMCC5A4WLd+6VcRs0Bhj3cY0sAaB5RK7fEWD8ImoAaA/dAwjMZ++DNuKkUz9ad1uWZplbARvDMeXCNgliQPXCF7oKUWl1MkAMVtkEeA+EBgHpgv3bN5F4UICTNrMxMS7XOCIQYSbRFUKqYClNIEnnECLQYBkuE72fGDAPEklOENVSN/7jF6IGBU8nBdZ6JXDLBJgXQeZWP/GyiihLqHRwawe5YgXtfDHxQAWnu0TOj2VdjWGNtHJd0ng1pYh/awBT6kFV/wbeuBc8hkbGMket2yKhyQFO5FApKCCo5RESYWSE30XtSwBEjAfKRQEQ2ASNnhcYWoY5onFzgkSaqwAB8GiJJgfm8TLRiAWqVDGShiMSHhX75De4HnVTwoCe2WHo5IU6xVD1dGCdpSgzRRemBIcz+jg35IFqtYCdD4ZKWlQT44JfqwC2bibDw1Ag5whYSyIekUBjPlDP8TBGFgRC1VCJRhjiHyAmNSRtlYD09iC24ljBpGVjvBEsBYMIvAEg3QIj1XSdvgTsFmAsjGE+x1kHJ0GAng/z2mIoAi11H6UQF5xmaoJxY32EjbhoOQAHwn9w+DuI9NQmAG4JAFpgEmIAVz9RmcQyqQJYAHwzRPAw0qQ2y6AHAJeQIR8oLKICnIAG3JIAuaCJQsiX2LYy8AUi0ixRPAFoCC4BeplmqB5IpWORMxoAp/QVV70SFRZwrhgHr1QYGtlFGstjh0SHo7k4fqIWk+s3eAJyUNFYlk9pSrIYxVphUiNE9weJCVUAQqcF4RY4A1wwB0tgsoWRg/0ABcoyeIVJle9zob0SHg4Zf4gFmV4TFU+Q3qEWeXMHOGmXg1BSH+U2e4hy0IITGueTQSNQRESFD6AXO4Z1X44yVQ8Yedpf99jPltNXcpdYV2nqmbHHkc59GHV+ZbBXacKblsvLmUTvElpEB4juEdVChLs2UMH5Oc/qCVY8RBgIEcahhsSRUPcVlJ2SdPGtaEV5mUrqgsHOB3ppGTibJyy0lUuogTlOIESeApCRJopOEj7ac9AZqSy5gTvSmd4nlt8yB1gMklPsifJLSWKzRcJCgRddYcGBIFG4JoLMMhqTRk8hih/rA/3xSW+AEFfNYIB4Bgl4AoawFcLKMjt5B5VlR+CAZc4CEFf4Z5JPcO6KMbSnJTxqM56JMuRwGgDeFn1uhGFBAB3sN9UqVSFPWNWaEINARggIIa+jl6V/GlKkqm+CeEtQj/O9bDiFNzGmy3I4YBA1gkIU2ZimdimkknNuBhlGeqY3NEET35JWCDjCUXkfJQcY9wlkiFfkrgbQ84KEYqFSsXJZLndoOiZCYJIDwyHlhSAJ2BANMSmSQ5dU72aGgHazVJoa85f1XhWH+KCC3QoI7mLrhUYNpRk6Yqe+GSn9xCR6A1faxFZx5RZ1sQj+P3DiAwHcZzJ0fAgZEaqytoEo8YEic1qbKIYV0ZCQ26CSFCj8BiMl2CCz8kihKgAc42HjkqIBE2ZPNCdXiElaJGhAtTc7iGDOcIptLqR8tnZ7X2fW56q6EJovzjg+5qMDC1MfRTVRZZUuy4F/dohm+5bHmh/4p2t6+R8CT5FK+MgIBlOK2tmCYOp4uhOVlVU1FiVRM392LcKKFAiIcGdrBXk3WYdBcXk5oCA6HJaXsQGAu41aUUq7MShRc1wAVFoBEPK11iRzmskWpP8WHAEhmWOBNMAYXYgQK2sWDCkBgVirGz148rQrHIoyzj8VJ+EXqUYAwqWIuRGrIAhh+ndqoMxVQgp4N76bWFpEIaSilGl2CPt5KiZpriOaMQkmL4+a4NRYLzOV/qYD47VA5agCfPYUQXEDx3EwN7UUM8kkoi4S30+Kx9QkBeKw9c1gOyCKHDR0nU1YGGWAndmniH8SZ2WRg84E1mJAPRgWWPNZ0mZ419uP8OvrlVmjoCmto8QOC2+MpmzIBvfwpDWdSm5RUQUOoA/pUYGeAU1UeLkjtL11SQwHsKdOYJJDW6upIx06BYcWoWGrCQa8G6X6CkZgUzVEFOcGQBoiN7eHgAd7svGoZ3Xgq8/Uq+xqESQ0kOEcFkY7o4P3lBn7cqedFEhLpZPGFBMyINCQoMMCnAmlAK+AOpPLssDMFab4FxjMA1KmBEwJYKpYMu1XUwrGdO2LSNMIi/EaqrGgnDcwpNGGuiVSACMgsWpnqRiuCFvbljrWDEJEKu1DEpKHwnlsvApjCqsYCUGqwJWuBo9QgM1UVmH7EQuegAFIZF0PkIzzqnwsK6h9f/AL/0DOclAyo4Q/YDx9vngHyUD0pkjeqRdQlAo4mgKaMUrTIXEmsrrTLFZMw0Cen7L6vHcpEoLCgkk9pgQYHkJqUJACeVniFxEwAQJWknVBQyO1W8WkOmaSiFAbCEBbuxuPeAIVXkkZOAml75kN9UCPPBBUOFDFLILvQrtobwf1VcFPPVv/9gEeTYcv6YR4PjtbRTrUG4y/dyuJXBDxYwkh2QrZmpBE7CSbOsnFTrP6GMCQaBWgmJhVL0i1uRyKugEfawUyOwMa1inEYKhtFgaZrMNL+xIwR6sSTRfM54a8JcJPhiAhFGsS1BqtckCRvCvq7LLQiwvrEbtNIqQEgp/8FICtDg/M8R8ARutR4qHFAQ8ALmA2cRc45zcnkc5UQrAJF4cpbHGGcvILjfzLZk+wwksyIXYLrGOHtawcewW6M3jC1K7EwZWRq3BwI68CDO4DJAtIcRp1VKdq6lCHdMfUFWNp8yaZ+68SrofJAW21qVEmd95bVMMIrVu02jgqjReUkMCBo824to1kOnFcWNIHc0W2PVhjJki4+dGdPsCYHFsp5w5AKCQ2YHEADpU0e5aR3tyXHbVaQS9iY+dAyVEzQcMDOqgAW2SMNWgIDFiB5VGijyGnMr4L0PatYukcMI1pmSPAnH58yUUIU7gqYYewL7cRGA/YhdGwkxghvNlP+T/wmUDHg571I/UIC2IEYl/1kCrIYx3QJLmMzXQlinlIAjTmQD+CFtZOUBNiKg8fuqcrGNgMYlhIGpxggLwLkWQrutK8VD2CQ6GV2jCnGEr9WsUT0JF7F/E3MKrlzFE9jIqlxlrh2YI+DDnKQCeOItFflcY3GtVBuB/oWOWJgRLMYr5GSv0H2aOQ3MN6IVVrBWGMkNScRuX1E1umXQiv15wtGX0jsF48tV+JWR02mO5JUQnHyt42sm/51pEtamoByj5NsSdp2ZEYGRmKhrOpKTQMTPEEJPflUDFDRHiRHGUsQmHXrhrnu9J/nDEYUaRmKgNDwgEDCNdHt/ZVLaRWL/4SslKAjgy6mFYH9CPrvCF9UMyw2BEK8iwq5JvoOZTIh8pHTrL+70TUZAEUU6hwA7wQ9TdshwW6Uk0hISlq7DYFY+D7elR46yAfZLPaAKM2S1fqKFTEu3IJuuCQncn303WiQ1u/BlyfoI0Z/nARsxsdgnqshGGdagOmTjlKGMxiBmyVEdJLNbGutSah6VGTcQuRFePweeGNB2rn4bPjDwSCJxBGPGFBnxJh0NV0016duFRuJSgZzeHj44paBDjOMSG+QTEOFLZf3xHFTsfvLyz6HN2MK56CoQDqmmgPFARRQ9wcDbEc4ru3x9Oe+py0qStw9U8E5DVG5KVxVePxJg/yCjaIsMoFAW+CCYG0U0xAP7swRmCDtJrOTc/srRiGOUOhp8Z41DRIQGYEEt3xobALYLERyqvqtXQcKgsudLNsvBg5KTiRj+hGCwAKAVANOS0N/soToWNhMrMd68dJ2h/Dm24e5hh9ShfZb9IFbp89OM/dkuv9pr8hGSQr1SlwEUQqdI1wnqPPI2hDELD2uUkelTN6U38lavO3L6uSiawK5mnkh7zyUfpDDY0HUAhn4K9Ejg0eLNxc6tm3cSPh7lbOU3tYR1VblTQtGYfoe9DM+mGpaeetCLsAVANfkS5DBEBaVsH4c8kJhGYFlpmjT7Rcs+MgXA/D1M44q1Mpzq9/8MQpPbx2lBpEALSd0RjvvVAGENSZFrNMNbh87XOh8TV1jhDL/qmp/eHOE4N8hh6dLpU43BxvIhyuUWSuFvqa97gYr8+Kn7DR9XyUggXDoPEem5BubFgmCb0yZNn+4f9CtffQQIJwCDhABIACqDNUqDGhwVjoaSDjqFlpeYmZohiBeEI5qhoqOkpaanqKmqq5ZCLyCwIiiFKhyGGjSmUqRJCaGwszBQmkhPvgcWgySXLwAaAEGvLMowE848FSWKrNzd3t/g4eG1ADPly6MFhQqkFE6WWC1G4vSaLw7v9ZYRN5L63k1iMNBha5CPfwhDgbq0gQq7U0Aa1KigjEGVQSX/OpR49u8eoSKdPvjqoC6hyZMoUyIqB4IQiicrMW45AkDEtyWlml2MiYnjIF9EMH4kdM/TSib+ZNS0prKp06f6Fk0BAJPB1KYW+kHl1qCHi3DJMl35tFWsvwpD1pX9l0SopYehtMCAkKgRCE9GaxRqlgodPEIsrHVYS7iw4b1M1RaqcYQRVVaHfoE4cmSiOVMJFjxWpA1A4BkWV6o4UWIA2cOoU6cc/La1OLiXpvgqhEA1s1z0SopCVphfApjXMGjebPsbhEECaGsS5mybXRwAapsFFwOFcJ7Fs2vvhpTWviZ6CV3JB8OSltMSYgoIEJ2A+ZoiYMHnmd4txhbUpHhw//BRiRETW1RxnCFXARDGdggmuAp0gxkQGSu6YXbAJx40tx0Tuci2mmJlPZADXUFlgE0FHECHnILtxGYJSLSho1d1GDEAH0cZRDegZ0aBg1MInmiF4o9AAobIRZRwqNwlK4jyQ2kYdSZULkFk0NIgQawYBUfpkeCXX5MpcoEBLcygQw9YLFZTkGimOdtpxG3lY2pJAkBQfSddgNtvhd3wwBXVQBKDQBQZwMmJaWayp1hrYkDlBB446dI87XViiQnUFWrppZlsYchChOIEnH3KGOkoJpe5FF0h9fVyyZcgFhSDhZjGihoJmlVoiF+bEnpKhLJmMhAGOlDQFEkf6Mbra/+ZuJejMw1UAUkjaEGHgHsJTjjKM7VR8IA/PfHEGnOmaSPED8xOFp84pvWqrmERlCLEqfsMEsVOnxx6DiZKyckXvMMla2NYVpwIQarMuoQFf+SuqzBWhhQUQr4LI6SCoiYx+ZNKsJWiA1oWgrbxED4Iu64HUMzFrSghPMPfmVQSVY6mzcRAEzefJRbxzYe1gMQP5flao3kSyKwiDskMQIKmrFE6KaymPoCAY6cy1x8iSdqM89XhBHXAf4wCAHG6dHqTXKGsXQKEnHGa9KAmn3KjgBUO2SrKDsgF7RVaO/QgZ947DNEWFZeGKR59KrayaiHTDGIOZQ4AgVs372It+Wr/b/KrECackiLcb7uwcAhwYSTeJIVCGXAfNcucsPbkrAMkCCHHSr5BJiFHQGtbZuJkUsKwJ7QeKWPzVAQDGRCPNwY+GN93DpiCxAIKLI6g+6PKlc2oiVMt0MHZUysyc+vgB8nbKPidqjTbLULavX0dtAtYeA1TvVER3RUc/v3cZI7/7Mwm4cPyN3qfpEZBL4UpakCvIgTffgWsh1nqGSJgSuNMoAGQ8GAGvIOXvFoxgQQOj3sxwp8IqwWqblDrJ0HhyTRm4IQ4CcpEJBhec7QSuho0gEQ/oMwGaWC1EfrwcKYr3A+jQzIfxIMhBkHiWkRGj3Rdgglrk5Gc7LIxRb3K/0EP3EstNLCCMrUJfiwTwrusQacGLCEDh7AFY1rCg2+UbYhwTIX7ULEmf11AaKUaHNWcoSlozAgDUuwjfMalhNfFMI6IhFYAE0mI/6VFCbtQomvcRI9pFcBaLaLIUgzyMUi4oIofWySaSpQ2E2jPV9YQCMsE8Tw+8ZBNGGKkLHvVgyjk4me4uYtnQmUI3HwvU7yMWhCYsKxZgi+SbUpk3ypgg1ENgiSi0BkdmbYK/dXDaIrj5f96gI3i9Y0Sn3QACpBQR9UEbyiO6YAnDng+XyEuIMNzBKe2FZ0vWMmY+OwN+lZkjj5FKZjKeCMY2zEPiRwon60zEUJDRQVcYaZf3/9RkigetxYyrWyKe1sgWlaGRkOkJSVO5AbyEsiyGNggmkM6UgPWEYXDTWmhMIUQtc5JjFSA6SNVQikrfnCCyMX0aqKcZQvIA8IS0mNfNd0nWJYTnQ8gYAfxmCCwhgDVIRiPB1RNAu7AgUl0LcaG3gsiE2kBtdXR0zsZ+YiTBvrTtjrlBu7RG1RoIoIgZNCtQRoLXoFmJHCETY+YAIMk+5qQrf7EiG3M6CdB6ZWTHSYfdRMPElYwPVhFwH0fWJqNpGOJUw6FEGFo1l5HO9hRrA4TBeCCP5owC8WxCDv1cMArKkNa2wQRE3qtrQYjZcJ/SCFj9cjYMHTVCHJCa5lT1ej/HBUUGA7c9XK0WUgEcLGpAgmPZbrNrlIdOx06kYB5g1KJTQ6qXdS8FrCoKi9CmCceku4KJR44YmefdIKBYBW5LpDRAQcw1uzMpgTO5C4R0RsdGLhgpRVpY4DVS9rb5i818akrgw/Tzwkbqm27ip06cnsk1G5lHr1gL5sWEy3kNvJ/iChfen17is9Z4AlnJXDvJGE3VY5uHQZ4m4XLa8q/CrgUPpHeU16Bth0bxqFGDgVN+XqJJVMIophTiRNAIeIjkRJxdxvIJ/JLMd5ShQDh+obI5FaKKmC4tVcwgE0s505qxASy0+JWZZP80xEgOXY5aa97TwJWOvsZKgeoHEBm/6wxUnWYMCO5YyU+ZlURIZaT98UCyRy0AUtuF2Uk04FhCYi5OWojPZllakqjA7X5HvrPMVWxHH9H6Kb45EyvQ7WsWUwP1ebKXTVlj0teGg6tFMRadgaFajvARXWO9CDB6VumOykcqhpR0pw1FC/8Z4IEQDZ/s7ukAPBz0knx7oKmbvUzZ91WDtOxyqdWyQrWfV5ykxZwZVGoUb1jCmjSo2e5yQQKdvIlHMVgBxXw2GIbjY1tTtWRiAUZFMh0sa6mzS2Vbu/A0gHl7frkxfEiHkUjW7g3nqIF0Xb3MSFD02KmpKjPTCFsRR4+JxPWTRAbdD0n0ISghrssga54dENZCP9FxWOb942CpumWFqxiYZlU5eaxibhuqlYE4PYtsA0C5ldu2RnBC6hj0Ly44gVoYMGsIHYBWb6wkNu8FO7R8QWkCJVAkf3tYv7xbkWxgnR5E+Xd8szDn9LjKCtcihbh5hXp5mjFjijh912s3uwr6YaVaZnXkJNICEB1007HawFT3wBbDe9BtKXUnx3xx58L94iNYDCnPYVSsk3N0ruedS1IG9t3ac0Yrb31TSFCo9RCKZ493tE9YOF1GlaBKzE+8Ukf096wujc5DYgK+QivSORtChqA4oSoCu8oyAzknr8eofENaZQJFYkfCfr7LD+nO9Ld4sMibt4YBb1KitBvCiH/AQXNdfM1eFDzGyg6mMmHdErnbBVxPeI3YuV0gGbiY29GXNAFO+BFF22GfkOEfarXeYSAJyZDgRyIIhGiaqXlGtalCRoxbqETCj3Va7TwLJ8QQ4HxJwlEVWnlA5QiAc7yMJXACSVCQSZgRFXgbKB0dK2kaRHADgPgIQAAbbtRTtEVE790MZfmeRCDb+M2F9zXgcbkYJPUZPHyYT10K1hIgRZYZuOHEbJhAxXmGmMBAx63O3TTMBPnfc7XRohlg1BQIs5XJjbAg0NyU1khA0mwQKbEATmAA05QIgHjDg/gAgOwbUf0FS+XbhAAA/fwIIcYFij4fCHngBMVhkOEhCEY/y/dhiKb6ImzpmOkUALI9ICK0GUP5lVQ6B1tJEVG9Ez7ZlIswFOPcD4Z4R/XgQWAiA3WQSLaU1V6SAVHV4v+81FzJwkZM4ZtgokeliwNtSofMlTOcVc5ZYpCxY3eqDAtAY0ZGIuW0FLxsxymAwIdZARzhhLL4EkecGAAhnXDYAK1ACO8VQXjNDEhIISvQhA8QIjLNhAyEC00uHCVMI2PwT8zNnXiqBAjGIucpY/z8o0w1VULeXkWuZEJ4llyFIl0gnHMgHtVx26A9IZ1J1ckwIyAdAIlEgKcQgHFAmYplxEFF5BpkV9ZF4hyUjxN4GVcWA7kOCERkgx4dggPgIG7xf8JXMRrJvMM1MeRtcWEUlmVyFJvmKFZ7aeV2AUOReQMF6F9CcksG+OSK3mH+zZlOxAZDcFxSbhYOAB4OfhCBMiVnGgKMXYaPsKHX7ZB3nYumUBeVhlH1NJfD4FndTKYivmK3/AnEjCK36ABbzhg+PUny7h4LymQdPiGsZdA1bZrKqN4I9Ueh/h4qLJcUNiWqLAlpLKOAxZDjWNDVrESbGWXizlCg3Ftt7mbHVIfBAB2W7iVDqcMWQIOB1EhLuCPeTMQtcAJVNVBdJGcwFgyEBgy+eIeWQdjOJBYindFwTgQ2pdMogddoHAXIsJNSnElzsBT66k0VNg4APULrcWbI9T/bQooD/SZn61Tiqogb94ELDqpVca2h/Q3KDEHhQzScJeVA+XBQHSjAJDFMyLGRAVQIpBpClzAET8wGIGRDzVYQfQGQTUiWjnxM/qJP7FXUyZ3oiwKIajAn1uJEHLxd8TZfAq0oTZJRE5HC/GwTO3TLtbmdYBxkptmEEUKW6GGJAxhPbP3E4KCDvqFJGP5oi3KOkAhbVWapVxhFaqpLniDDXKCk401Bdqzb0JKfIMiXwaxoSIyiVMweZz0lqyYCmCADsvFM13pc7mzPloKU9ABfeLWp4JKCmKkkIWVEGBCQRonRQTRbIkwBSC3C8PRQc1XiJA4aYYIp6YCf3lpqFEG/4qfUARrxgJKZyYKtXeDikgqoIqhwjO0AjJ92Q1EcEZuoXKpapG6RKlClCYPIIQrkmKPYF89mDxiokDHeTenwlnIRgQYQA4og1vh2YwK5ET+cVETAWsFIWO3ykgbMUWLQC93JCgYZlPbSp8IgKriGSu3NwVSlYTdNAOPMK1x6g+UxjxwGaMQV2StwT/WIo09SQg+Va4/ZUhnQyniRBFJ8iCQoHN9MZ8C643GtqILw39JmFLKdpDJc47O5zUwCQXHomWqoHUeh5FYarBdeXMPq6pCwhm24IrRmrK3+loMKys9sFWP5q4gI6AUM1N1g0WnQ5KrkDHnJ1czxmVYCrOzNP8o9HcCe0ZiVJgKwMV3SPtTBdW0+uBy7jgiyUYiYZoEOdQoDjSOl/BRHqkKTlWcPaFl09ME1rUt+WUoNzW1cMQiLkB1NAAEdaEuN+KqXyi3xgQCgnQzRjCAE+BN5rixZcUQEbIDY8cKcdZqPEIJ5TEcmnEehZBHmoBgfitCbKgFEuBUZthIyrepkAgkoAA91XERbbi5qopBcocpyVc8eKov6vgVzBeFSzVj9IIC7QQBmmFKIdSkrNtW18iC+3cwSoQASdlpVYcKXHCLw+Vtqzu891O4M0uznqQD9ZU8jQMaaxZ8m6A72UozrIps4tkAPjCJVAG6l9APrrgPV+gNIEj/vWmiO8tgZ2ZlNrxmEvSnZEVjs0nUTj6BsK+mhfR7M10Un3qLA6DBZSwAbt4DVvKxSGR6tSSjsUaAsDdUDdyCp3VXEa+mNgc8SihzoeO2ACPwSeQoh145p4Qaee07wpJzs//wk4XRWDMQEYpGPPWVw/FhhZDbRMu6qUXAuy6RJHozL9ZwSUBbD6ZToTJ8KWcVcbtaYFFMdli7mvsrK3LhAGxnS7bkFehrVe2ZQUTbRPe7LU5SRjtYDYFIPPtxNqerEi3AHh57xbGCnfSWiiCHx95Ye6tAlVAhDxMDfO9DqgdGMTncdihgKxI4M+iwBJTVN4CFZCw2v36MIJbLij4b/y9daimWnMmYckYRKauqEazEw4x2AQB91ggJYW69tMfP1EEJQ6K3tkuIaqT+KspB0rdgacLjyctwB6I4Mxj3NTH/4547MqWb6sTE9io99CfFup6FOz0m6h3o2sK/LMx5tb5Zw81wN64G1EEg08YWERFIOcAo0UywxZD2+5PEo0CuHMzfXIOlDM6a3G5uUSy9g0nSkSPq9JACS5PlxV8xRQR+k1yPxkOqEyeJrBLhyXU9Wcgp4xwfsXcpo0niwDUajc83U4QHoJvO118enU/Xy613GGkEGEHTbBuFywDPA0iKECUg0FjLMiF2Emsb3SMlrTBDhQNhO0cJ3NNtlcXKxP+dHsCTq/yvgLwa7mM01+yXqdyKeVsbw5O3xrEB25kmsEzUPXex9vhMNwI4grwdoZxqkchgRn3UTWeDALs39gWjuac9DbzISCIjJlCb/2B0BuzVhbInI6LUJ0Oy5ufXKRG1SYuQG4OHZ0IQaHPSKcFFleDFzSHTgPEu9qKt4bCjK2fYQSIBtgImqqLZng3OR7e1sktWFOYM8QyWG2sD2cM0RlBfeAcOlKzApd3NCHB0IZbbu8HNAcedxTPcAYUaX2FFS3C3TKENRdOaGzG+3/B4tUgLch1vvo1pH7INYUvC38dqXr2GAEpFjQWe5jUIyzlpFgeGTlx0ClJ+172aZY3/Imf9Z0a91ribqkqXyKBxRlx22zlTHgXF2oh4Uu3jKwzqxAMmJNP73kGiGSLB4OBcbIsXeRuVValhog0QJalrcgKtD1poOoIC4ZZSNtdHiq/HgKEg0Qwjlet2knqT0Q2syuwipTe2D/TDft2gvCH+JtUt4giCv54hzj5Ope8llelIIgkpmh1NGAGwYZdwxkMBP7IlRjTQTt5QamxIFpg85D+ieVeL2FxulQvLI3xyVUt+w0o2UYWr16pQihCl47sc5gmiz43plpXkZ/aNW349cPraxE/xVNfCa8ONuV65ibhzSg4r50DS1WGnQQy50QO9rf0wzRu1vZANX9sHjFNE/1vWcEsePim9BxhRqehzLpsZCpzY/WX0pAByfYTYiFK+XKWoid+ok73x23bRFCIvUxmxoA+fvKbhOkOkHiQR0QA85TmDBohpjhwhrTkXFempyifpe3hzchhBYbWTUgEYQhkxI605rjkN0qnDvh1eTIhxjnbRNuszhphHa2HsTurZC0r07Gpcm82AFQ2a2xQjMCCXoT3KO+7yTYibQGUkyM5KKajWRNL+8tvl+syPrcKooYGsuAVI0bjrPBzF1OMAPytss50GraTznq4yrAC2uq3EOCd97Sb/0U9NTRS1re+0wW0bHySqFSFaPZnHUiGR9F9VzLrJMT5+CwnPqefxFv8FXeHtAoTb8CU1vxHiM//XqDA2o/70HKlOFl6GuK70OA7RrZpYVA/1+0aNWs/wtwnmpU0E224Ol47gXh/r7MJeiSLyX18t4p7mW37ATuTdxjK8LtnZqxFk21Fp+AkT6jT3+0kBUBBSCs+62X2Xw0sZzkIY59eR1lbyhr8ul9Velq+lLc8LqxicU0sDT7gWeoWwCtJMnQk+C87gvrkYLiaohF1mITxWH9+iKR8KHlHeUGFrbe72l5/HIZ+ySToKIs33zUz6kwl/4sBFkPG6vz/io0gEpnTuGCNrZk86eL+aw+K8RZIQ0Jmho//8+CMybGgBJZMVt9+iRiM33o30k3T/8I/R4X5tOhlcK+0LBVMCYn7vDTAACA0ASAALABM/AIqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goZlUijsGiziiqqusra6bF4aKB50Rs7evubq7vL2qCIUoEhw+jysOixq8NT8mixaFsb7T1NXW19jZkjwqhbja4OG+p5MPwJwHHaPi7O3unw8yiqmNO4tKUvO/ABcsSo4QSLwbSLCgwYOTOpToh7Chw4cQI+5CgfCcgkHeUAHokRHaKmWQOqzIKLGkyZMoGxlJNiWly5eYRmiESVOTgZUlb5JLhkFRkVYwJJ2rSbSoUV5DHI08ytRlgqZQUcq6gYEjIw09NzJ4UWno/7aoYMOK1WTP0cWxaNO6OquWKIGAPHa4YCRXEQsgokC03csXLBazfQMLHmzJ60MLJSpw4wdM5CIhLKAYvqSOJOHLmN+xtZi5M1+2nk/eKGXCAxYPjyiGXs0aZYQHrWNHFcCKQs3REhFsyBECABUfSbjMLLVJg6BKFOjJXs683KINzaOnpS0dG463IRj+RcBQX6UJyiSwaNIyV4tHV1RXXx92APv3BanDP7jTHgckMjjMg8CPSZQKl4hwAhJB8YJaI+7Np2BOCzYYkS0IOgiODj7kp5QLLlxQjhVWmCCEJgKAFgl0lkUo4YkopnhNCzI5RMszkMinoi4QDkBMD2URYP9CMUbIMiI6hRj2FgAfKJIDDh3YkE5IMzbp5JOh6GbSa09pJCOUrcCWQAhJAMeIjyMeWEg+k10CWyG2nFkZlmyGo+Mhx7UpZ21V+kaAnXOuIkGXvc2TwEVVFJbDBxYMmUMkBdg23Dd5NsqODY5GitwjF8lAGwGISSrKAz4UkwwUMPwj5SRX+oboi1AAdKamrJqnW51ildkqShedNis8UBRDjgpV9NqKPJ86cgOXjeDGyXnF3sqqQEylmqQCwCrrlE/SdoLsBgv8aUMIf16SIKnPAQime4ka+6InIqZWrZPyaUjTuSWum1K0jMorKARDyPAaEfksOilGeNLyF6JJPCf/ihX2zpkPEWsm7PDDlHFwShIFxysUjF/WSUEEHFBsoqkQh9wXvCArKnJDRZ4cCcOkcGskI8z+CFiLbz6xaowq5/zydOlCt6asOoOymyQmB60SEbNES/EARYbqHZNW9DmmvoWBbPTV1pBodSfQEjkkIwVgnOzAWFdTtNY6Q+dlKYdabMlrHlAhALIZE+q2TV+WfWIJTckYdoRP3PKte4QDoIXeuRSd8tM670hCpqaV54lph0qQarKYtmgw4sr+7RaeoxACiVWcV+I3JnfiZDSLzznhMSgu9CYNeli0Xa9QSJfO7t19e3M64wDoxbuEnreujechUgoQ1rbbiMUQGQxv/2ZInbbezVFA6z5Qum0pQCLCg9jmBCPRwqo96gZdoaICRXZaloFdgj3N0NNwf76kmMpfrwSQ8Cf9/csj2s2Yd4AtDUEH//sE3TbXiwEC8IE4Q5DWspO3s0yhBIGymgMh6K3s6UwLTpCLYnjBIqmJjYMotMYprrTAbzUCGnZTBAI8ksIaUmIEC+BVL1qgHBkaa1o2RJkLI3C5eY3vheggBcCKBCnGBPGJAOmAEXJlICjOaQRNzJtR7sSJtikRY2J64gGKp8X7TRFHO4iLsBZoxZD9xHzmcxESb9e/23ExfAmyXxvv2EPtIWAFOqhAVQ6Yxh2dYoojDNIP21itC0jARv8ZNNxLKoYoJqnLSHcEQFIYaUVDxAVDGBAkAxjwyTRCL5QA6pEHOZkn3CAhcCd0BYQQwrQXOqFbycCSHlmpDblwoAIZCCQGfOBLQvKgU0jiZbU00ARr7LIdCXCX/mKozDYuQCYuGEL1CKlJYVbTXk8RXVFItonBoSJ332SlOeziE1EWgyPcvAE9VkkSeqZTNvxjDhfO47w+3pOXw8ohA7qJRlPcYimrQo05sCXDIP2TPfnEWCZVQcZdlAp9VruUE6zgHvWgKAqwfOhLtBkXbo0KTB4zjapCKlLm4GRjUvgiX9b5iAgMQB49suJFW+qcckwGAgPYIE+X86xZVBQqJqP/n9heZdChOjWAAjziU5cz0YFAaJGUyNwqPpBDe071q8ADa3TG2JcNVPUiTVDCTsTK1gS2dTVJkFvi2veQHCxFlW/Nq1fzGpocJOCvaLHfTSGABdJpj5x8TayjDrfEmhyVaPkDapGytdeHIVYSApilYjebIhIIJIu7iOM+YhlBzIm2WjuVGWdXKynj9IuODlHfiPI3RxjNIAYQoCRrd8vbvTggpLp1y1FrWY9EIq5Qz9Bsb5fbJPUodzpObEAkD8vc6jYJBpIjQIHCGiVxnOV3EEytdanB0vHCJKcrPczWSAUsje7MvPCNr1NMuF6YLK6O6RSqfPfbmQTZ1JYFQRvA/5SHX/4a+MC0JC1suyveT1T0UgsMLoInTGFwfIuM+bwBvQoMLv1ZArFVJZ8lTyuyZ1b4xMQLRdE+tuJHDGxj0nut1xLlVqOBCcU49kyVZilbD6uiCBdo2duGwYXY7ZSjPq6vMkOc4yZvEaoLXoepCGE7BhoJAkVYQFkw8IQWU+dOiiJrGTkp5u06+cxMAaSqehyTTESUdsl9L4zWWl6G3RjNKGYzniey4USZeHqUGKYzFjzoSt5Pv3uO7V6wCkFpekt1DnZOfmR6wmHUloOXTbSm1cJowRVxOM8tp1GFBVpDbzrRmjv15Hoq1eeYQJyDqGxIYsACVCRCEQGYYZKFLP+vDYu6KwNWNTgaXBQ98/KZQyztJ/7hjbQ+o1QttrKBXShstOgQx7QAxlOQ3GwBb+6O3q62uMeNWTtN1mxhLJR4GsZAuiVlrSnU42PJTe+GFE1ytUBX8sJMLy5ImBFkW3K9Bz5f8NFwLfIpUtgIZ1bxQWcLV1EywSc+cPYlmaJc/IAtqENfTS4BBAy47XVwANQR2PW4FE85UzRMYCjDwtfzeIEOnHCKSavuKZ0aqCQzIgyYQ9CjCIb3u1QuZVVoTBJVmYsmN/JqEwTFUz4pdDOqUGjUEv1BV5dly0VBbVTch1of3w9qSgODQwmnA8dhd9bXXu1oRwkGMIgCMg6hFQr/0ZfmDKuBn9jO91P/u4sIyiG1qI6KbHbzyl03s7CFbi82jsWffVcwPB7BhafzAOJ1xxAP+DEB43nHATNwGJMvHvnS00fyIu5fqrcuPxocHk4zwAEPbtsAvKik8NdOWKYxanpt4FIbjkczvlVrMG6puRkxcF/0FvG+pdsFgVbPWO+njxK6uT31+SbJ7IooQg70AAVVibhPMuAARHS+WvGwRsz4e2fqg6X9gIHE2eSfimCmagY9GGXoy0aBg7/ivu4XgJ4AacoWJbq2M1CAMBTRK5pzWxiwBAhEAsxGZjUVfAJ4gb8CCp4zAERgcjzSTIKzJcKBEd2QIYwnRhKEFRhY/w0gsYK8V0BpUjsZsVFdkyriEUgCRzR754K7gEO9V2ouBxArJnsbJWLywD+wRl3rQBVXZgjq4DklAII8mAsB0Hsv5mYBtAEtaD0tVV6+8QDo5FDwN4VkiBSeQkSfck3F4iNLAFZZZDK4MW9l6AlMEID2IyJHAjNXtgOHUjEWcghtuHn5xQih9wJ6x11z6AqKl3W0FUvmtGJ/80OcYgD+c05490/0VXvhN2V6mIgqVmNOFg/JMz9el4DewQH9EHtDVQTIUH7FAoCeqEDd8BN912nS93vrRT+sE0s4AnTVxFU3YQ+1hhHiZIuxOGT+Im7hBhCx8y9oiAsChix8CADP0/82RMAFy9dSTgg2xHaM/3Jl54F53sh0uRgC4Bc+wXMKSidS0LCM47gpA6dtPsd7xAEJm3RJDvVPxFWJISEB/veOmlAEWyACjMhhx/I0hIcK/YICw1hNNxMFodZxAOkJAimOwuaOvvADhPBpemiMKRQBF1FR1wNgE+mCQRUOPVA979UD+ydGXbd7g4d6Jfk2dDeTyWUAI5GN5DiIX0iAs2AIhaIAkGeTlmCBm9aNiRNXBRAUoMcBKcM39wQ+vPNKoEiU2EdxMpYLQYEvVnECE4B21TR62wB30GeVWUVxK8CPvPBcC3F/HxcDDNCQZslfi7hp3AEiprYhO1NyndcNvsj/Vo7GW3IIFVCpFOPmkb4gOjZTGSe4RyDTYCS2W5GJVNQ3ioXATOH0ZqIwlPE2l54JiudoVm8mD372IogGI9dXQ0hZbvHVY9TUF3+ZaHXpQc2XS6Omg194YVY0mXhmlDMlbpQYhAiyjgjJmiL2AWrWSZ/JDisxhnh2mgbJc/4TarjTVjBpXUHAFcDHDiMInAkEZnZBD7GAEy2CTYr1jzn2H6eXONtle+LGlFf5I13lDbglZ+OVmhg4NxnYMEwQBASXFfV4cVOgIeTgAcRpaCHJS+sHeAimlu5gbAfzQy9wa+OGfzhDG3eXj4sQA0pgWMFGPlwkluq0nFu1OSRQh/UW/0w66Y6DBlgbGgzD4JsPtRSUopnP0RiISaIRR6P1dh4hgAyDeWnGRnJfpQybJxP8KBDGBqA6qgn8g6LxqAGxGX/fIHjeIAMZYoRAJXFtFAO1yQ/zsH48OpNeSIs1RQkWSW6l4XxjRnoGAysAEqYXUGgyGkSN0aRGUhkOQB6TZ5sEVwI6SZM+pgIkBnIksIV42lJAEAPWElFaSIIEF5iCmlWpYKOJeivT9Q5h8AlfQIh+Sm/+d52TkEeXdqlOJWuTkKZy9FA3UZU+9jce8Wemek80xTuMVYCRioh4OauSWZTU8hI5CkXDWGV9WlNZyatuCAk8iqjSFlsTqKBSJIgZCP+izomsb5WpRTGlNpSSDFCYtZF6EGqtbzUMTdAnaieiB9GtClqW4opmW5os7+equuMMoBedHSaT7fpVLIcLRxAVnGmnnvetANeY+fpUxuGfdQhDbWoSmMeojESJuYVxj0WdBetUW3Ih4gcTLBAZrCQFObSMslqA0FmxtMp5sYCNs5FOVYCLpSoJAUeynNV+gjiyJUFD+AlABEoptIEDOneWNQmzMYsWSdhG+5SW92qp6Aq0SpszlZi0uLm0nzmmNhSGUFu1Dmm1MKt2nCR4ooq1eFoElAZFIxAUw4cc3ta1Xkt9WLWvnGRpv/Yc2Jq2itWdRLGyN8tBY+tqcotthyr/qRLRhh/DSTwgkXuLYqhaEK36TUNbuCj2NRKBng5ZMF7IuNimctpKuQfGm/RWrT6Lucy1uOSmgJ57ZmHgny5IY6PLXFB6gSGCkan7urAbu7I7u8r4obR7u7diqbi7u7Pyr7z7u8AbvMI7vMR7datXvMirKYebvMzbHFLbvATntNA7vdRbveYFupwlvda7vdzbvd77veAbvuI7vuRbvuZ7vuibvuq7vuzbvu77vvAbv/I7v/Rbv/Z7v/ibv/q7v/zbv/77vwAcwAI8wARcwAZ8wAicwAq8wAzcwA78wBAcwRI8wRRcwRZ8wRicwRq8wRzcwR78wSAcwiI8wiRcwiZ8/8IonMIqvMIs3MIu/MIwHMMyPMM0XMOySwthU5o2fL7s813J8QVdoAhdAAZaABsBUIU7PL4BMABg4AUpAAAp8MRZ8MRRnAVdEKxJnLy5JgZR7AVd0IE32cRQ7AV0m8XUu8RcnAJd4LpH/AVOnAV1asbAGwBaEMVggAlHrAVTHMRyrMUB0AUp4AVdZzp/HMho28eve8RczMdcQwQpkAV3i8ipq8gp0KkaiACPfMiSzLgBAAYpcMcRGsibvLt0nAJiwAqlzMijDLtHHABZkAVrAchYvMpYW8izfAlHnAVeQMusfACm/I2wiCh1fKu8jLmdnAI0ywhnAIQ6q8vF7Lm5vP/LVKoIZsA1X4DMz0y5AdAClWxRFKDG2czJgBzJeamzXgDLERGkn9AF2st6DTXN4fyLAeAF0hwJ1TwJY7AyjCHLBCGHuEE3lnxDUdYIAf1hnpoQ8Ry5FJAFYsBk4aoJZEAGZ9DNCEG1uCoJoDwNBZ3QIqUF3HzFnHDPkxDRZDAGn5zP21NfTKbKbiosFw1ojJDRHF1NRFDTjgwGi1TT9jwGYyDSkkDSJW3FKD10GO0t3RUjcTzTHKQFTF3JD/0IZjAGAXAGPg0JQD0GQj1O+sPS+JjUlGFlIavUANR/N1DJwbzTc0rVI03SWN0FQ/0OAlZZMj2qVZht92qci4DEYp3/TktM0ZcQ1dc8AGodCWVQ2GWgBJ9ctilt0Diz0YO8lmG91wB0xOCMCYD9yNii2I2QaylAzO0QstBh0XMd04vA1ZIdX7l8ypY9BsLxyJYQAFyAzayQzLgJDIYhW0scI3qtPNTxAfwUCrnm2fh62qoZAGKAzpKgDvcM2IqA2aRi3MhN3CQL27L9tMzd3FmAkdEs3UDb16Ytf69U0M6N1H7N3QV7xOecCbC9CI9syDiTApps3iRaymVMKtf8ysi8xIjV16ot3xWL3tFNCZ2cBR/gyexcQptdyK7r36ZayqONKCziPa6NjmCDyd/N4MhKyfZEAVXIL1zcqSSTywGO4fkqluICrt/hcwUTzo1c7NUkjqecXc95aVZdAOJgA8gP/uLtWspecIe4VoV1XddhVsgXruPiWsrZTchBta8fYNyVbeRKm2tQnOMRRMdTvNFQDrOUnAVYDuFO7AW0neW8us1vDNIx8gBN/MhdLuZLu82n/MheIAZ3/AVg0AXH3cVrzuZVu8RcIAYyDsUMjdN6XsvgktmDnnKBAAAh+QQFAwAAACx4AHQASAPpAYUAAAD///8AAAD+/v4Xc9C4uLjt7uzZ2tn8/Ps9PT0WFxu/v8AjIyOtrrDm5+Tx9O+MjY5PT0+Tl5crKytnZ2ff4d4adtL29/MelvWjo6PQ0tE1NTVaWloPDxHR4dZwcnG30cN5eXlFRUXHx8cJCQmdnZ3d69+EhYXF3NGyyLUwcLRxt+qkw9wGYcKfwbFXjMNso9Yji9/Q6vtlkX2o5/2StJ3w//6Gn4IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/0CAcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter9gQCVMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLTWwbU19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixVMXLmrcyLGjx48gQ4ocSbKkyZMoU6pcybKlS1sgXsqcSbOmzZs4Fz3IybOnz/+fQIMKHUo0EIKiSKccTcq0qdOnUKNKnUoVVcaqWLPqudqMq9avTm4kswa2bL4ZZtOqXcu2rdu3cM+gjUuX7lwhdwUtrcu3r9+/gAMLHky4sOHDiAfljSI2jInEkCNj2iu5siAUuXZa3sy5s2dlDhhR/ky6tOnTqFOrXs26tevXV0Zn8QACM+zbPT1w0Yy7tzzevoPDC80HuPDjyJMrX858yZhfB5pLn069ujfd1rMjcaG9u/fvyufGBE8eHdk448urX89+4+P28OPLX+v1fC2v8/Pr308qRRn/XxAXhX2f4CeFbPw1BOA6xiXo4IMQbsJdFYu1QmCEGG6GYIb/LMj/4YcghphOeoHUcEeDIqbYhwEGqugiHR5SteGLLkUXIBUk0qgjHe8NcWETz+0oZCJBDmnkkUjGg2KSGTaGRoWOMQkilFJWaeWVLgnYVovzLInll2Dm4WWYuJmIS5FkGpkjILalCcCPbsYZpply1gnKhEX0aGeIVMbC5Z6A1vFnoIQWeqWTRXCHp6GMkhFjow8uqsqgkPK4mqRb6AZnpZzagV2n1vUJ6lkWPTrqRYi2NuOpeKBJWKpPrMkqmZ9eQeesuDbRZq6cYMqrQK7+Kuywe8hK7LH/dVcrQZsiiyyszkYrrRhCNEujnjcZW0heH8iC7bQo+QruuORGI2q56Kb7/9myj5wrnY1+WEusu0SZisaY6uar7778OotvvwAHDJmWArsJb8EI57trauwmXOi3DkecjbYSB7LwadBWrPHGWhDMMZIeU/vxyMjSq9pzIZOs8sp7iEuEyTXJqwrM5WTM8s3zXIxznC7nROnOq9CcksxAFw0SxaQJbfTSTA+hc9NQi6M0PU9HLefP/DQMG9bOYQVxZSlbTebUYpct5Ndm09Jz2qfYO9O/VbjN9tx0p5SXzcwRXbcZZNspNyxV7y04MCkAGLiUaw+u+OL06M24ylo/LvnklFf+B9pwYE5Y5IxrbvnnoGfieOgRHk766ahD1DcVwVr4xOirpy57Gp7Pbv9H2HDbTl7gB+tu1t++f8V5f0kMH3xuyXF9/HS5L+/889BHL/30UgEIPBE1FKCG8tQHpUH34BeENN2tD5F4+Oin/8716rfv/vsJ3gr/ZvLPb//9+Oev//789+///wUxHlNGB8ACukV+4zNgYRKowAY6UA3n29oDJ1iWCFLwghjMoHfY553yafCDvwOhCEdIQuEwsIQoTCFpmqfCoHiwhWvpHQz5IsAZ2vCGOMyhgnS4BNPxUA41/KEQ5WHBIfLEh0ZMIgY5uJ4TKvGJUIyiFKdIxSpa8YpYzOJ3vqfFLnrxi2AMoxgrEcQxds2MYnMiGgv4QtNwzyAEXKMcLRc2N8X/kVdtnKMe9/gXFvLRI2/8I0sCKUiZ1LGQiFwaIRP5Dz++jpGGhCTyJEnJSlqyEne8pCaBCJhV9U+GhMmkJhy5yVJWw5SoTKUqV8nKVh4kj1pZpCtnScta2hIO1kDiLXfJy1768pfA7KUog0nMYhrzmMsAJTKXycwJ1q6Z0IymNK8Ay2la80VlvKY2t8nNbrIim94MZ4LUKM5yKgec5kynOv/HxZEM85LkXOcyRMlEedrznvjMpz73qSJl8vOfAA2oQAdK0ETErqAITahCF7oxTzL0oRD9SjwjihGKCuQB1bSoRn2Czo2CzKMgDalIR0rSkpr0pCgNWEdTCoz6sfSl/zCNqUxnStOa2vSmOM2pTnfK05769KdADapQh0rUohr1qPicKFKh4s+lOvWpUC0bKaNK1apa9apYzapWt8rVrnr1q2ANq1jHStaymvWsaE2rWtfK1ra69a1wjatc50rXutr1rnjNq173yte++vWvgA2sYAdL2MIa9rCITaxiF8vYxjr2sZCNrGQnS9lQOCA0FxgAAqZa2SeEQAQMUEAHRsuABHygAYfsbBQCoAEKdEAIG+BACE5AWw5soAMC6AAHRqDa2GhABLmlwJuEEIDiIkCzDxjBBxQggA0soLcHCkAIciuBJhi3AQwQAAeg+4QAVGACAgjBaosrgdzylrtKYP9tbts53u8KoAHoRYJ6NxCb4kbgvfEtwnyzYFwOCOC5+QVAcRXAgC0YNwECSG1kiwsAATQ1uhfoQALyG4AFCKC6XShuAS6M3uJOYAJgsO9ruRuABuA3vcYVgwY0kNriHoDDvS1uAkCcBONq+AUqyLEKXsCCJdi3wDGuAIyPYGMD4FgIFiCAkgnwAhnUuML/VS15HSxfG7+gBUVYMpNtUOUBdEC4ndVsBIBsBM2auQEqMIKWCQCDJ49ZLw6QLXENQIEQMFizJQDACAIgBAiIQAQfuFBxKbDdIYBZCocu9Hn7bOhyDrhbRLZxmo+w5h4bgQUs0MAJSMBePEyYuAFwrQj/MrKADZT2zhoIbQb4DAEGNGABIuAAn4eg2VaLzLYAgICeX0djI8CXCBEQgTgPQOwLX4jYyEZzErSchBjEAAbvfYEfNJwACYwaABTIQAYSwGAAJOAEHCgBn0VwAiGk2j6sncC2xzCG80YA0ro6wgngTYR3+rIA+CZBnn2Nb3xLmwgxsMAQ1owEDGAABh2QQJv7EIAHTGABBdjArHPN7T5PWAT7tvYIDkDoiQuY3A6YQGiey5UIxErYQnjOvAFgcnlCnAS/LgLEZ/5vACR5BTKYNMGPYPAVKAACC+eDdE2+7QEMwdp8DjmAM0DcBBBYARrweJ7TLYQSfBoARX/Cl1m+/4HQcEABsIV3zL2ZbyT0298DZ7MNUKCCNceg4BjwOdD9wNvQNKDiFheCnAOAcb1H4AAOCEHXfeRcPg8evkuxNhH2PQRZI2EDGB5C3dPJohGc2AgsYhEL0qzkFqwAAifIuZbfzvO4/zzodug1tnUbbAZEALOKr4ACEhDsD+cZ6gIGgLqPzvoZTzg6xPnAoaMg53pPoNPedPHl9Wtlm1vA8+XNgOiVrAQasOC/Tr4DfYmggQa8WvC0Vrye4Xv3EIxhAvAGe7UA0O9Wl8AaG+jWARQw9iUwPTojoD/LW36CCSBgDEwnTpoVXl2mWT2WZNAnABeWcy1gaZFmYhmlBjNGBP/X9WnHJX6gJgK/NgIb0IGS1wHaY1zAZ240NnxNIF7CVm6wtYLr5GEtF2nG1WbP93m59V4yAANcVmUhMGKAcFwG8BzF9YMUKAbGsQBwolkR+FCDxoMwWFybl4AkoICMV2UTcHWUpWFR9mTGdYMsgGEKOGRE5gBgOFnGRQImWIADoGsN9oUqWGYBUF5JaFhL2DzkJQTUBXpUiHJSpl5qaF1veGHAFXUYRSDHZWIAFmOhlmBOUIclpl0XsHEEo1mz12ENp12LmBHJZQDZpYNURokZMIZE9iasFXWbJl5ltmFtSIkUkIVaWC2XZYm0JmAvZoWUyHes6GOiOIK09mJkFmBsB7Z86TUExEZrlscA9pZY/UWATIBcokhcENBcnPVYKWZeKKZfHKiMAVZlGrABzVV/8lUAwMUAh5iNXXZ3uRVugOdrriUADDCF5IhiFbZcX0hgHzaPFDCO73iJ3tUAECB8dQYB3piPSpFiiRUEACH5BAUEAAAALFYAZgBqA/YBhgAAAP////n69wEBAfb38+js5t7s5fDy79vn4KfDuLjRxunx7O7t67DMwdni2+Dw6fz9++/28dbb2arIu+Tn477VzIywosrc1tLg2Mrg2eDh38PRy3KhlOf177/f1nytoMvj35S+sIi2qdPl37nFwbvMxZ+7razRxp7AtNLs5Je4rcLa0ZfDt7ja0cnY06i9sOz69XanmYCypc/U0LHWzNPY1ISomfD++aLLwht0zZ3Hu8nNyou6rpqzqvf/+5e3orm7ubHEsZSsn4qKinGZjGGYixQUFcjYxLvMtKSlpSkqLERERdPy7qywrDU4O1tbXL7m4EZQWSOT7nBwcJydnVaNgU67/oO03gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydhwKeoaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsOKDBKeFMTKy8zNzs/Q0dLTuaDI1NgABNnc3d7f4OHiljiqBePA1ujr7O3u7/Dx8vP09fb3+PmcCKkX+v8AAwocSJDaDkIlVt0oyLChw4cQI2I6JmuBxIsYM2rceI+EoRocQ4ocSbJkQJCCKjw6Z7Kly5cwY8qcSbOmzZv51OHcybOnz59AgwodSrQoTA1GkypdyrSp06dQo2pasbCSgg7ZdErdyrWrV1UYvoodS5bdiLJo06pVG2Gt27dw/4UijUu3rt271ARo1XbpAN6/gANvbCu4sGGZewm52IQy3IzDkCOvJcwB0cFoiWFtk8y5880gnkOLHs2sgEeam0mrXi1RZaXMvJIVUqCQbzIIrHPr3j2KAUvYvIMLb/cCQONCIHwCH868ufPn0KOX8vuUgfTr2Gstn8QBhc3t2cOLn5Xg24Px6NMvs0iKRgIiIgSlTkmMZTDZ6vPrX2GqeIwQxRmCGyfW6WfggTGp4EEKOixC3UQCigKehA5OiOCFw7HnSXn0nTaID4XM95EjNmBo4onhYBWKDRMYV0gPlX3YSXIo1mijQDHgEOAgJdqQwo1ABjmPBaqwgBArFgqp5P+SxABoAw1MnOdiByA6omEvIlqSJCRbMunlVgkNIiVfjAHwAw3yNRACABWAJl9WX8YZZAaioGDkIQsYcBYhJvxIoZyABtoJCldmIgSaH1WZkpQpNECkoJBG6g2HR7JJiAXe+eWaO/bJWIk/koaK1p6vZSlIiYLEZyZCtM0mpiYPNtPlq7OGZKqouDqSXKGkFIHcIhc8Cas4teZqrFEUpdKgpQAE0SIAqPIoCKWWdEpmb6oRhkixx6I45iBhgbuJCUTEeAQRZKJbqau38EqKtt3Gm5YIIcjQKioWrEAjs9OyaWcMHniX0gUbYLlLgaxxKy9gjr4q4FypxJjACQAwMUj/wanohU2sPiVbCH4LQ0qtJLMy0QCzQiRgwiAqsNnACSpQ+uw7CJO1Y8g4o0KnAi5gfOqdFwtSxaqKeBiLwngtwHHOC98byWOJJERpd0S30AONRLj369KCOGBltS9ui63Yh0AMFD95eqqKxkwLF27RZFpLCbr8/cAyvyyf/CZIx03HCAbwdmJqBBQMuJJTSLetngM+I9LDoEXEyGeLRxhHI3+0eEzIrZp4LPcnItZsiLuKly5Tyj1/Mjd9P99twuOPapYI58M6yBdh6gjgG6nGwdC76cDTpDfempTYsiDqrhqj3TxcE2EupBNyju9vphYAbjrdGnjw3GPUgjZIpEp8/9cAfJ6IdzFAi/zdlcIgcNljz955I4mHOH73+BO0LCL8HPFCEB4AQPKkJ4nlKc8Q6mLcCgwAGn5ggnavUFElzHaRb60tf0uqTOzsA4MMgMhob7rE0BQhggEeY2UmoIHX+pKJ+l1LES7USAGagEHgTSCAHwtctFhnP8u5qBEx+MCvhgiA/ZHMErzTxna4Brq+LCeGNYziPyKnNvKRb3uOg8RixCeIGfqpGNBwoBTHGJQdGoCAORTTGRchg/sN0U02ONPmGIHFIwaPiWQ8zMqeFonviYtLYnqbLGp1AfPNDop5TGQ8XudGaf1xdIVIXyR6MAFqFSxglqoMCugESTqOb/9LdVSH6BpZvhfCT5GoFMkaF+GrdX3oAuVxYNYcUS4eDuJkuuuhFvlSgqoITpcIUVQqhykRzU3CcIYQgvishRVeVSBmmHsEwMgmvV42wjpuKmUnQ7FK6NmOmOC0ReO4A0w7aRFUHqAYJJS5KuolUzEwjAQej4nGa0YwMYh8RzTDKS9BSqIEJUiiKwcjP1Py86DQiN0qUseqcnTRftr72OEkIZsByvNDdXxErfKJ0I7W4gT7IqHj9umIkd2gB4iyJwRXQiWJ3s6KX4PnwOopCaidYoUO86hOWbii4b3IaTDVZiPY6TgdHO+UBi3oA/kY03VkdKc1DJMsdjgKnNrLfBj/2KKlQDah7SVue8xLBJ2ayb+GcBSq+BvBeaSqMCCQ73IbyCYlQHaxBRQHRBD0DUsR4DvXQKGIc5wp2OjBNnqiVUnGk8H7btoJCkK0pI8AgWsI8NSkqo6JCliTUnO6UkSM0pOyOuth02MADfGsiCzAgUM9IUSZPk9XiciXLe0YyKDRz7KWPQDhQnhL3jYLVBgNoWiJscTRSipM83GAyjyBMcU+QqqKWIwFeNCALdIrJQoF5C5/SAENgcyQc3XYPv3ZL83G5qK0NS7OvmWRPaIiT+5yLAmnywMRtHa2NSXBOBVFpcymURtps5K7bgDeEeWUTThsISdsOtxBqhc9rSpA/4EvoSpGrFGYjdgUj4xkt6B6WBE3Iy9SuybQR8jVgocAqpkEGYBNcKvBu4DxgyFz1EE1LxQcwhi6OlwI0IwsnrXVQQMkyZ/d+pZ1yyFdoVpMPqT0jZQO8ylP3zXczraixDPOTUoz4R0eNKhHRtzAeOd5JIE9rl/9WsERwqdhzoJYBAog0swMfACVhI+mfeOkbUHL50TQtRWFneBEsywv2bhXq5uoJZoPgejtVq69rBNBguWDzEofuL42kKRlPLy9VXa3yWnz4J4Du80jyweLNjXFGlVEKuskqdO1I7SkznwKqk7CrUd6UgqOM2lTn695PAaQ6mZzljUiJV/8cY0YSf9MKhF71i8tra0xXyOhCa3JAwt58iOZ1s0sq2uWZpJyJ0ogV3R1+xE4iNYEKsw++UL2EHbb8oAOIJuw1CCXpTwHEECDhPCttLIfQ/FlaPrNP82RdjDooKwV+eNGW4VIqKJkWSXBYwMzWqNIgc/KqPqD+EQPwHq937LrSdfCffihBQcmWLSETJXbSNsLd0Sqocxaadn61gihFhOAm6XPPrJyZmoZuTou7q3i7eMfw/LEDwxkPGmXzIqRG8yHDUkZxwmE4Yyj+ohIc0NdYuaLfm0Xz23FDZAqCYCt+AQcsCfs4a6KgrizIUHAj5bfZqTJvh/UE7FvU7rb1GpCb8zHWO7/+7qMaIjHxPDM29NBLOsqwd3cAqYeyCNYbFq0WWz1dEWBDVhk5C6dliBB0qkfKdOXJ4eEXCcxeUbyFsO/HHyuPGLnipOvvlBYgd3mjAkiTdqIb2aXnkgYFvDiR8+MSBmagnBGevsOFMml5oi75s7Ql8IAW77EX7kue1Tyw0gwS7xIubyIoktuRB7rATtx+KgHSCkzn4bbqz6wc9AUkuBaFB3GJIx5wRvWnoNlGbA3ZTlDPVYWRRV2c120MkP2Y5MAdM3Ce5DgXqsnfsy3CM0Xckf2ABXwRXemAHxVAkflQG0mVIQAQAuQEG2xd7DgbCk3gAAGRgJSLCyYKy2HW8Hj/4CGIGVAswmVlCrAlSrhZ4HQ0kbM8yyxNC2u13TN10NQcxBk101nlCy0oSLjtGcuKCanBXqkRkPc5GssFFCqQAIERnUX1H00FmwRCGKXYngURjSa9WhmggPXJYRBJ35Lt4MGZkwpKCaUBUl/Vj7noT3Qx2BgaBtlo1tMF3tcOFCvB2+OYHW1kR7Zgz8egQE/2Czu1Qg3hnOMxzJ/NTE/FAI0cFQfkF39okwkZYa34jNG40sHYG8mODrQhwg/RhtZyC4uVxFIVHRIFmsatQ6UtxXTFIzHgmurYl+2lwlgF3T+c4epMl14qDW0tnU/QCmtVFtiw38ESHAIUADTJiMvsP98cFdSGjKMfnOI8qcIjdiN/DNhBicdqCd9xzJwYZdMRPKJgAVEvTVdd0Y0ZjMCk9Yy/sAil8JFB+YAGfV5AAdY7mQNbOda3Fc5jZNqEiiRYoV/s0ggkagVOFUhY8MANygr4aF0gVIBlXNnDAIusLOO8xVEeHOEvYVfseU6zLJaJ6c00eZnJAYqEvRhiohy2hIuEuQhcpcJPldVhtAEyVEsT+Z+XfdPLvV3lCCJzvCPJeFYr1aOXkJUlxJNRoU89zVdZImQ77R1aAmNCHZGGONja3g+++hGH6mOPuSH/EKCiPCPVzJy1ScifKWOHjOX2jV9R7QZVjkJ7ag4l9c9TbD/jAi2g/USSY55CG7YI3HJJydIAezEbm1ollMJW2wClQQUAdtwJSlUdB8klLf1Xy9kSIG4WdYHjLlQA1fICYdpm2hIEx1nXqh4eOJTcZM5CFTURo6nWUYVcShjATkiBC2TjXEpbGkpdFakkNanE86mNK35SNTRbTWAHyv4PGS3NPAoERXof3mRmzJRSf6oj5RJNMTpSJGkPtm4R67XcUHXAm3SLKzDAbGjgMqZXSejZ2ImiIPYRcjkc6T5iCYIXN81OnQSjgfYZzGGC1hpoM+FnsxxZlbjHR0ICedHkyN0kHbDnHG0Q2zGLxJIn/GxQ8y5WglgnY+Qah9pDUfweXgy/3ymlgxYoRLdBhxBaQralnClRjLwN5LVsJUkmTRihyubCJks8wGfyJnxKUB4eI2ZGEcoFG70YV/z2WHsiYqlF44PdQEPei3b+TsY+Ef1Nmo/CQkWgW+m0JCrmY6yIKYLtnJxcZsHEoSKYJk8poDwiZAjekvOEo3K9zpeumEJODlCJI2LyI4Vo0bsAS/gWEX3N6ZgaB2JKXPUOQz4JJu6oKecgZPhJKU1+Z7R+FP2SVUskqXro2mnEh8mAIHX+DPmBF1maKba5J0akAwS6H5ZhYFt2qapt5E3NQEV6o7p4E3DIQJeI6qQwpmG55WoKgM3plnJA6v+mKr0tSb/YQg68P9l0NKDDVJdpQQiVEkfTQijEulvZLd57xJ79wAB0KokTDakXBkn+fibb2kIbfQBmpYjLBAtA7SiiPoCHZY+pJqqISA5j7Kvmiih5HMEELg3IBaEfFUgCZqvHOk8hbGxWwFFcqo2SGcjmcZ9mPltU6pMQpA+iApYA5QA0dJGAys+/wqwZnJ+n4gDNJAnWxh1CCAw6kQAtIlUXnMOLLEgucOKj+qmu3heMhSnaXGvDwR/QMVBiOVQNbYIx6OtfPIDEfcoExM7g1qc1ipErYSqtuQmoEE9N0Oo78pbnaoYDYCueOkD3EiPJcuO6IgLKxS3dJkK6RoLOggofVKv0NEyRBL/ooSgQcnombFKG6jyodQFuV8bOwDUAMQaQKtoLY+RtzJyDAy5kUHoDzeYlLtwkVyhFYgbF29bDZyBqzC7lGhiUZoorZEEBTHgK8sDtpGDsLJqa/S5TVwYtNRnrE1VmjAFuPdBFOPpRM4BbV9kLKpyJ3bzrTb3P2j5Hwr1AkCzLFpnVJHJI6ZKkHXlMVdBWSnQUiFFQzeQGMyrkdPgixgKl/UxaCbLPpIJrulDluHKRfbZL5LEn0LUIOpiqo5YfTuYEBrQNxUnG9hZmtRhpPWrD5r3Q2j6YFJjq47khogyljL7m2WZj5FJwOujKorVg9faAOVpdGgEAfbxkWdWidOz/6vFiiGtCxlQV4MLhmKxS5MnoE5oe18bp1jTmrDX2Cpka04oEB8DFD5QKoROwiy+RAK2K4O81EX3ZqG+9qMTayObumlK0Zuw2bTmgYOEuRYBe5DJVh5CpK0rkGnCq4QHGXRmJkCRUwS+Ile+Vw5eSopXqFUXdmACIAE4VWduaT7UAXZYkazMEKFLUYISexODWzZeI5iigHX42y58qsaX2WNBQLZo5nsCxJ+gXMcmEMo4e5CoGq5HkH2piHkvo079SsVNpg1o81vSAxsQw8u4yRuyWx2YSQnIRwlOs4ryYgG03ImAakTQ6Y/XCM1Bp7YIVITX2lpBxAEwKcpu6zIcw/9easq176O9TssaexsJvcoVx5eW9vsLkKwebpizkpaRDOjEd5Oih3DBT9qGdXiPaglTFHEBPmBlDlc+sMdMXSHJj1wXMGILPecMPAwV9XU3jiqctGTRASyW3soy6NO/RfQoMFkZMNNGubcq2xd3CjJyM5CgAfCKFQt5DoMCLcArElCxD/SXu4G6YxEmOTJWZaysk4zGv/CaX4EmNpC239ZaNLDUbiTHwmnKFD2lZlLAVArV8QxSAPBXUmWSLKGTk0ofl3pxMG3GDVHJUeQziylUsoEbPteM7xVCchPRseDWaFEFLvsBlYQBqFKhVv3U0sJj1NIjGtSfkQPVvRXYOHD/Hp1XHmFplgq5QsLkO90EAsdjXadU0GSNvHZh1jrzE3qjIDypkQrtCcsxt8zQt13huCcAq+vz0di7P9YKh6nMRrGaKtrMsJ+8YioBoOWRMm8ri2LUJYRjkvI7DHQdeeMg19R2LcjIsdulHL+1SuNErKHtt+MGHbzH2Ob0uNg8rkU00nR8h2AbNr1V2F/JH2JEG/iZTX+LozMZd0IFS3p4dJptybkhLH8TF8oWNi08m4WgAz+SwyhnFWjBn42NyiJts0r4suK3R2ob229swnkDBR3UneoENM4iJecwcCNjeohIv/a9bcjhyNMg4EzTpOBCzpHVghgcp9QNiV9X3FHx/0zXNjOmbJDFOdVLGd6Q2M/sg9UdcBDOYpyPdkaPM3ksmc/vDSy4eNxbkxtVMrKxKRaP8jZJG6m/sHbIMQIq6JKxxgG+4h49M49B3RVeqb/snIz9PKIotN1UeirgWoRnyyY/UDk4RW7+4iYZUCIZsNUN/CkhbgvPSwqcHQ+BpnJJUuhJ4SEKCCKiVguo64tpja+5LeN0TgiMy3TuFsZRYaIzCUeJx25qG5yIcLLwaUTVd+aCcNJI5MMznNmrMOg9MXUym4soKxbO+X+hUCswGSIUMDzaljLptWOnYteBKhgFvKI/hATPyMrizdH/HJ3qowJBVASxLX6IBl2nJeJSif8BTG1brrdAJqgOqC0aZUiPb0Hmg8kKnXIZCVsxolg+gvnbAlO0TyO0HfJzPoABngbjY+Er1Ew+2YScB5SPQeBeapg3hIqZWleXB2+WFLMn8Wtx+lnxv9Uq1OPDFZzc4UVRpACFPDJCpleUMBhufqR4ZqaDZ7a1WfQV2lyZgaQDUBpn5TXtANLEqVpmzj3VgFPqGQ0Jf87tj8S2ZaPxvGH0WLzzSqHA5pBedkneQvSgb8PCp9Kh/vIk99Jott5JEzOpeeIPFHPyd7HErDwCmncn5ZCJPK+Ln7ABJmCE2XUW+wLSQp9i0WXxMWXiUtHJtjPxUIGJpILiGImUrCd/a8L/eJ/H5efzPQDe4hnca72WbZahXGSc7tIyNCwQAv+oaXKE5uKT+Xg4g7zVRkXAoS2+KVQTlY9ZfinmEQBk8SDbLnQKmu7goxQFOCsNF+pOk01nnuuOmRE/Oa7BIWbPCBu35HmI57V6FwHSa5ZCAwD7r5rgHY1tDYlR54PQ3Kv+OpuiupRw5DV5w7Sg91oKEedgyKAqFExP3qwvO8nUApTtSpL1pC/j+DCix3RkbP7E8l4BCDUAg4SFhC8ANgA4LD+KgycyHIY2GYQrhoQ8iJoVhlUimQKFKIyZlYMumausra0eqoQQBQaFHoajrrWuvL2+v8DBmZ7CxbwHxsnKvEjL/62CztHS09TV1tesNRvDhQu8LiWZKqtCRDGTABTAM9jt7u/wvreu4ZqUMYWP+IPjrT8AIU4cMkEuEQAfg5ABpPFinAULJFwliEdIArd0g4IoeHADmEKKwtQ5+wiyZLBcJpVhgJGypUtqBF5K6whAkIZCIzAWSPVvFSee6FiBAvgTABEFg3YJkcm0qcwRS3dpIlKoCod95QqFslfR1UNSMgRSSuQiZkZCDbiSymcQB7ZYvYT8CPIiQ4ULTkcaYrEvr99WKIVBKEbDGcFuSf8qbklzMDAErIJMMyD1Ga7EqRKjfIjo8F5C5xIalQwwn4VEjyacXcy6tS8HpS9lSpHZFP+/oPwM9EjWEzS/X0jZAtxqKAUm23lZviDmepWAUTs13ISNubl1YyRfX9/uWiRv0bKa0sa4qsZh3L8HUUXvb+Ip4rH7cp8v80j1ywBuTbB0iEf6YiicEt83agEARBPCZRZCI4u45N1OtsynATsMlHdAhfRlyApkx8DUoIYgOhNRiPlFmE4Hd/EjlkEfGDTII2P5U1BGTPx3Gok4usOBW3vltAoN86zSYhA/YGLMiESZ6BMrTWxjTz/DsYZXZtZguAwFCBApCiuBQZJjK1bWB9473nAY3pdoflaUNTf10gEh3hRjpoFTTgmni1dV1eJUk7h3kZIIlaaADaHEUESaiEr/42NiYcrWywfBaVcQCqdN4Bkr7MXAgmzyGbJiL9AkQ0GoYCKwAwauoSoneYm2uqqrsDq3TJAnlaiMVEsZaWkqqjC0z6daxWYaOoXx1ANSaf1GzFWTFCFDrND+IkGFBnSZlGqyhVPCC88WeQ1BlLayZz6/AnukTgbOamSrO0TrTqOIefUnPBDA5e69rxKShEfBQPhesQlugloi/zzLC1U6YGtcUrkKUYq4H0ScLL4UK2niTQThBSkOMEpDqDgavcJcW2l1tpcOH7oSQToZLPARksGw0w2CXaVcjbUhtYsfPHNWLKvNLbXp89DaUeeKKg/0exDMxVV0KT8hoGbwwC1M/9LxWv5salRoLtJKdKu7fSWsQUHSBOdOnvHgNYFOPmrg06yI0AIIPpmgABBUYWdI3u2sq1gAKn9dqy7bkSq44OzosKhHSRt9351nRV1IpKPiRGWULgJt1OYyhCCCf7FNEFYCfZ2zpwr2Hg72glpDnl+gozhG3tXy+BKpe6K7jYnEIuDGYMCH1Nhz3Gv2sl9NdyKgENNNUcuq6vEmYxaVsn8G/fVkWsQLwNVA5mRlz7s9nmqKiKDapxwUUcXW6sXQgpA3si/Dodi72kNPKIcPo72wwYatMPtyVNy+ggIkwO1RCVgK8uIHgODsylMnWpK0otcK5iXncan4X/2S9wvKWP/MVhsMYc0OQTiV7OxygoGTncInGovkb22t25yKjCI5PFFCfTGYmgjtJ6tmAIQD8BnIMopnOxN4JlIgCNQEuXGjpLkuGkqxQaQ6MqUR0Y4pJNFAdsazww6wJIL/Md4luMiUC1xxh37xFwV9ASUo9gxw2JDMOXBQLAY6TCxB4cD71GND9qARRwiiIwPFEZkh8uBzK/QKEnxYHgkyKT0tgpIaR8jCX1TqcrTxTiLM5Y7qgQoaCpneYuKUF7/lo1hN4E/h/tgcxxFGWvcDUyE8aRgPNCBq2JLPkPhmD6sFiBDOShAr0aTACG2ENJzUpDI+B4xtjQ2KFcRIjVYxvIO4KSP/7gmBE0fYNop4400dhBeIEgkPKMjLUnQjzTDXCbVhgDMkQlMGLU9ISUF0xF9UiVQDeclHIhwqNVBImueEqUN2oglIFptAYd5Xi1CZUhgN6Q1E55VAL8nomUiBSIU4YU6WNa2DlJBB6sD3FIPmSxMtKoIO7HadugjQpBShmyH8Zp8OzdSCpNBgRUfSzcu8k4T5AZ1vsFaCZHEvc1qRKUwzFEuhgpAiEQ2Gn7LWABus74DFSR2qRmDPCHi1JjtZ2S9EadNKLlVv7YgTKMnxuXFxp5pnfUc9XprWyxFhccqgH9YmYlRUYk2GNWoAMWDjrRtOYm1xnc8/xLKBh4oxjMGQ/ygwBjmWaX6yJng9U1cwABkIkHU21MwGTraZ2FsJQ2brkBE6NJgKqqhSJjThUWmh2g5r4TQZzIGMIviZmUMdRQF79NL7xKJSXvrpAU5UJT7M162RzVZD6pSN4rZaIMUUc2IW9JM5EaCqLRVnN4GbVXSfy52IOZU+iCUvNiL2RMU4gJRosd7eihAUme4Ic5BowOIYmokErO8SIdCUerlzAr/hbkzWLYYNeFvMBt6lsUHyYAuBak382BZE4kxsBX76w/tqzjr6HHAI7VSCN12gAggArwliK4MWLwJgeTRdQGpa1NDKUMTQpZHK5pqStmG1FzTg7YuG84FbOIBDMKDuRv948UvL8UqsZv0ojt/1Hf8wxD9TbQ1q0zVlkGSWjdfwFwMas0ZxqJgnHRtSIhpR3wBoT8cFEogKWNtl1+AUdTaOI4wUQedzaq1TBXkt8n4mZYrhzF1HBanxcjLXlbXxL4jQGSfrLI0awsCL9PKFtWqRNL7FUyLFubKg9lmpnu2iBOu6mnMp7ZcmO/iBrrZTruARIMkKQwEB5hob5zGBn2owBTeIiTI1jUFWg+QArnwekVhwA0+Y0xy4jHIxEOkMw1XY2NjA8ofH2mMoo5CNQfwPishjpk2tCHfkxPZTEmC3ZP2DdTceKkjAC9khfka27RWt69S4jQwQhAGf5sUZQTX/TAEkjcfEjoZSnwq1fjR2m30WEsOLAYT+NUTd8WiEarobl0STaTa6Zd9H01yT8w1jhUVZgQtoYwodaErQGG/KuAJk8t/sBtepHe23fwzByG77clcrxZEJBEJ1Li/PuqghlwY8bEh4O+CabjCFxeEfuD7qvMbYsiNj7gyECfkZ3ubXtaVFnTa+yYj4PTlAaOO+TJRp6R79TfkWzvW/lINIFrAaDY+Q7A5RYGWaPPI2JsZxkzxsLAdU4GALzQuoswLhf51y36shBD67JcUsipiqfUGVgn4HqP8Yb92T8Ut/L6SR3mQyE4buCZefPu4lp0k3Vws/wXZX6aN26+j9smel/4UXJ9ydkDtWXcg7MbDEUycI5I9BoRL6g4xxKS3AaHaQlT0n31HOJ1/QkgB9RlxGelXG3Wa4+2vcwADs/vpyim3TBcxgksI4jW4VR8P9PhKpEBnyRfuC6fKnaQHSwUFwUj0V8matEWKwcFuPFjN093jnMnHq9T2sAF8/Ejr5kT88MDF7lF4l4RYf43/RwEzepEBhJ1WHIBD49iMVAHmpkT9IpX86dBXBRVog6BQ8lwqT511ulyg56HvPoECH0XSNhw2fBS2EZ30dQkT11SAuOA1EZDt+0xs9QVk1CBx/JWGiYm3s5zraswP0xh8K4BYTQ1cMURuAhRoo033ChFJbWP+FLUFHKYR9O0hI12GAmgUPSDFHDQhbFNNkt0UPScEOctZAcoEeSIF7p0VXSGdLg3YaUYN1bhgMe3R3R3N4JkiDVNJvNfNFYtNAvaYgMpIWqydvOKgVAZIatENSkdgSJbYoNQYY1XdNY7cL6BcPRBBuf7F80SAAdkhephJNW7ca5LFqJQNz0Qc1h1J4SkICI/JLpOGIq6goR9FzqkiI0iaMqwAzJUg6XLUwgxBQ93RdX2ggtGFHh3UK/4MtBTN10ciK5OFZu2J70vMXKeghFHFocIdtTbhxDYQ8NRQJxRJDDaIIsfB9TOYbuEhuAwEl+TdGA9eOouVw8/JzQ7gOgaL/DnLWA8YoL5rThJCVAv1gejXBiC8IkS6xVhHwh/miK9exAceSbkRjW9UYKypQk3UjNwsxMux1CPrRCDOGdtdYgcBxBJLBAh7QOfJlkspwcYZQJBwXYtwmTx/kEwgVPiDQZAHRlAWDlAekM0qpGNGBHbEzhxjRgxRDLalzh03RJRugXzfgGUL4JaJXb17jCZoiWxFWAYeBJCppWnIHAuGgTd/2lbjFhj0BTuAgJxtJK18GJ6rRhLABf4xSgkk5RkpniYQpE8FFlr/nfJTJVPEABNsxF2HYUGClg/QxKlbymTw5h5EAgaUIVR+ghgolh5n5eaM2OXIXlYDYm2vDcY0J/3uZgR7+kyRe4nm3CRLYlXDLoF8k8pBoZSGscQAqtwoAh4k48kWVJkA1xB89gAJFsIDT8JvJeQ2esFhjw2FBUYSXWEHyUZSP41LisoaWyTDlOW/UNnZVgjMRYJoacpihaZsvgVz9CDD4SCLT04v62V8wA4Z4AZhOBZ3FNyPuUZBOdp/XcJUOuCesKZTSZgkX0A+ANpjxwhKHBGRGWRM9QH0YOnwXOJHxoIyD9kdf5RTQIAHKB5utQh0o0VN74UwNxw9EWQMWgAMylZXUcEst2hIqtUf1GC98aTvFEZykOJjIQFpAkADnN1NN0zgNkGVL+hbjszRLZQ6WwGEuKqAmIf8IUqejo8Scj7Eul8llUugJCJCGigggVWVRChqmSQpmSdGhluETMNcpcyFBJkcbPRUpjGQPyOmniiIVBaACNBBsQckzeWqDFLkM84QYZiMm9daoFWMmormGMAlCumcYbQqp2PCK6eBxhkCBPOFOf2dRoJUuz/I/WDGl0hU+S5ZBRPkhEsqqKlF4BLqL+HJdC3olgOhZTdGWC5Q5PyGqPDhC1aMqfuKcL+gjsJqqt5apxJoSj+oM1QIan5KOXdoNY4k8D3KrUBmu1GCW7GRrQ7MR3jAxczEB1CqZ1nF9B4kRRWgAqZEuCxKMkVSSxiCe8OqOwCgLBogCu5CYDkhSxED/AvTGp06WLGbEQC8Apgt7M5mGI2lJonXVIQcqphbJntsBIV7YAtsEMHHpRJVRnTYTVTtZDZv5sWk6noihi+PyTpYFAP9FJbtxfqnTYIKVMEkxrDobDCBJpYKDJFbXFjI6De/aSbx5qfHVqRqyAvQ2a4C4AF/qJdqZX8Uzok2rIYLqKJMHR+ABRDFyq3FTmbeooh6btj54oYfTJsWjPJVJcLESBGO6SGObjyDCLUQxhvSmABr6VDcyUKfXGeNgKf3wiM8Sfni7HbmQYXozPTuhJewoa/9RnVM1l5mzqpmbdWo6NGiabmNYVq/EmZjaCnc1eKBjN2q4FnYaInDZX3M7/zkeaSM1cgRyyrOpaxKyyqlj1zH+0S3sgRcqMLD/ULfmyhDutk9fd7yqy0oOsAKfupZregCHRhcmkJAScbWucT+9cZ5NM7Ke2B8scDzCCH3ouQzaoL1y6Sfj8D420L+DUAU6tQtRs5ECdAHjhr/Ke1bJG17yGqvkCKeMl8CzVAtK62J89wsc6BfP0b0z1QLIIlnAxnjEq1PIw5hDtY4I7CpxOTn++6JDFSDcRbIVhCQK8QMonMIQ2VmEgaQycrKzq3zaYrrG+UVVu5QbIipUSXukpRD8GgobYCYeoEQ/wlg4/DUhKgRIwFVrYb7R4D53W8X0dLw+HIdxo4z0iihR0//CtvJZjdWPMiucwsVH/pE3kAjGflHEftkMC3Vi+LmpdlxaaApNPhECpyqLIMuZWpe7ljHGWBRfRUm5axQcAyzDPHYe5PfHf7HCeqF/cvGGaauFXYbH8/gL05i1oMp9Eyq4JEIDX0aDltAP2vo8LaMsvovJXeum1EROfekxbWXHu8xOF8IUryshkzYjnRmyhPYYugkQoqo9P8AhUmvLGyRYIKHGqbuTNxhXF0JLLGETg6ODHNbAyPtJK1AyxENjQlyy/RLMNpODZZtUgYhE8IUk2SvNb4WbFDE1mPCE9jxb7itLhgs5sRzBsxsRRYgBqNZ6r6e73KcA9uEvzqq1bqL/yc63Li5AhR1VN4pYA+pA0f2cJoNBAG+XQTLBtB/9F4wsIaubDugUaDIcr6jGrwJkQKi8zA+cCV21yemsbw4cKCCQAuADXiLhN6aZs4N60kzxaWaJhbEaVmKFnS3Rv8GL1NwrdgJnwBJNhcWm1SvtoRFZm1phAYjIZUftTqLc1U4bJwLwcA27WaLEEmYTEQRM1U/xvUbMFJGGsHStwSndY+IXnc8KV6PojdUVrNvbDYNHSXSygjutQnJby7FxaaH2hIL6z0S312nV1+ExJ46VEv/jo5iNzAGt0q/hMEu0souETc60vobgQ/bR2LyidTMwXj99EvymC9/jJ6riSjD3/0VF0UZGDRzyGdr2Ww0ucw+nTNzrJNMzinTBIqAVZZAxOnEeJFGFGx7UbB9tSq1xy66X40OwbULH2kBTi41A42q43NbKjcSTM8uk59XrbZLuFw1TdQTZ/LkZVM8EbZ5ewlUnQK8+kDRYWlOF5EP5gy3+WhG0cJGOd1F/EkpdLQQjgFzMWLPx3RpQa63wfOGEeaDifMR7IxvbZB76UgTBnXO4ZUotY9FHky7y68HCLYukxNwg3nOSCH0RG8n1xuEZEuAZAto8HrVSOTJhkx+jyE1BcwHUwUksZdPE215P2tyQrZBaJArWAnitMCeoYCRnHU4OdtPUqycZHuTmOZPZEf8eJ+7JPE3mMem0X0wqZzpkUkxiUmqeqvw8GJMgMdyP6ggJMmUkkrrmh7YDVGBNkSl2OUEaQevAUrYNBVAD38sh3eUjqWo1e8jm7dCnikbamB5CX3xv76wo/N1/y/wPtRhUTvpiKEDg/Zkf+tHal83HNv1eBNAlYaLWVhnImDEeKvCL5H3TQG6B5NLp7wCTZ07sYEzg6SpBBhdlRko2Ox407TSMVDJusk4ayIQEyv4j/hIyFHSl4UMSC3wM+7EoBCrpslHIyL4Y6r7uxCqQzqe3nykSQfDOBRATUm0NgHOlWve+jmIfF1CUNeUAJJABqiLZrd4KxRMyEBvvqCu7pTL/8D6SANgKtricPiLo7q6h2RrPan0d7LKLfCG4ASvFJjWduM9oSoady1L6AuDNrqA9ISo7gX+tJCNAPmoDrqTgRx2f6QDd8/Cq6YY8VjRuDQRxqNuOFhAn5e+I37Sw5oqUHbaO1hihUDnYkEQ+xXVcCPoN9JOh3mHs9UqpkY79cfBdEkZCfMo+TWEHPm/2umRE2YHq0RFp3vEFEJjwru/GeTbc2WI/3VIMo3+P2aem64kIDUa0041qH5I9mbCHnd7udNXRqLeNCx6uu/YdX4zLrdtmw+k9+DYKVA0O+hBpAtCXJgqqNcFRGBJA05ZhT9aGXAbsHbJ+J6MAykrv6Ne2/7lkbeNEgQ4ROzGpimXPDgwZQ/rucLHpgATzQB3Nh/y3+QDv5S45HyrTlPSA0cZFt6CccPovnTJZNAiF3kJjijXsQMdhc/TQfx1R3obrD5EmHvY/zvR7WVN12ZZpCPBo0YDRAQgLACYAhYaHhhIFiIUnLQAdAoyFBAAziZOGEwBIhVWINhyZo6SlpqeoqaqrrK2ur7CxsqgeNIgKs6cYuby9vr/AwcLDxMWghhWID8bMjS0XjUeWnZyMKyYvhYuFSAYACDUjHeA73NKsGhGIDuwgmTWXh5uDMoU/P4Xnms38/f7/AAM6S+ABBTIYh9yxakAD4QiBECNKnEixIiMJlv8s5joywVHCQfsM4RuEBNctQ96+ZVylQRmJRikINWDUYZI6RhZEANCpsafPn0BXPeJgQ17GF0GEpIzWaoUhAi+hBZ1KtapVYxIubehRglKmG1cz4TLQIIOOfGJXmkKRYKSqmtp4IkTFLlOCnWHz6t0LrOUkESzkBQGZTKoqBJMw8l3MuLFeUcy2/RuhAJumeYiCeFgniQIkwU2tqWWUDVPTriYdq169+MeJEDsn/AiC5Ie7s6sSpKDYQwjr38CDD5MUMXDiBycsaDOVFcRmF7AgqHw32J51uHRdpBbOvbvEromwvaj8IucjFakkBJh44qT39/Ahoo8/ynKh555tJpr/sJlXhIfMRbXOYAaNkgx9CCY4ywal9HdXTpx4g9lVLuADBVoKZqjhgtV414lyheA2iQkV+PAUeN9csAuDuQABwHpeHcWCUyhlxKIhRSm04Y489oIdbB+JNpowigm1QnUkCdnjkj3igIxw5Sh5WSOfrSOECnct6M4lARBiolHcNEjIO0yWaeZFlDggEim9leJiLj04OUoE6uSHE4YgjSnlmXz+lsEPkAVXwyTnseDkB4P45hpNM7TZy5f3gXUIkJsEAU5sHU5KaJy9gAddn6DqZYAgk5S1S43EVGCYYQ2yStqQeIYqK18bQKOPcFm6ldmuN5JqoS+LIIYiAC2gSCOV/4g+FRI/y8zqLGOn+tPfRs9WWxFxTQ3aCIi4InWndajG80sBC8xEJSMkcMXJhGta6+6ONxnISACkrsPYS+/mO5VkezrWEQ+ZjMQQuME8kliiRgWRrA48FNVPkdjpK/EwRX47SsWo3jvxxhRFDNwFtw4kEmzKyYDPBDMC8xKWhTyED2UhzmPcWR+EgA8NMaSQkoTMcuwzM1nO+fPQRL8AJHftlYobbLbMpgDK7PaimLnoJkcPsUujoNN5wxbDEAohEy12LCxCsFTGLI2ttpmSbhgCEzLqOcwiRx77aSFNXH2IBTpkQ4jcxUiTwdqEy1JCD18hUkla4uY1OOEHiE2uu/8A7tpy0DwxE22pI+5kgwhF2Qf0BN7cXfjpUqsUuXRG8Yv66z8pUi1G0UYrzV0lQWGcQNqeG2YIBS7bObDE6gj78bxUPg3yzAOF7bMIbFca3iJtPtmN9OCQQAws3LP7PSCZBnbqzZfvypv2Lod2VV3r26zHaz//LO71tewTPoDlhHI0R9sfNC/YM58A02aPUU1vgAhM4CkAxwOAVcMWsPoHUmozic8NTAbb4cfjFMjB6ahIfVXqQO86SMIB7uJ/k3JgBAGCJLdkEFaH01r/fJEaO5WwhBpgEWJuCBz5BcWH5UPcyUizNevJJ3whEUf9YtUitO0AYxMxHQ/fswgSQSL/XlOkigCAmEWqDJETvgGTRfgmmhUEqkEF85QLNtjFNrqxY8Lg4hs1WJHq6C8f50DOWnyhHkLNEYGu+mNFCsC6UyxOkAGp2FlOBrifAEqFCkhJCZIROfcEo3F4RGTzVHUISGkSIDb8ZFiO1ZMHqANxNAlJJOPCgU+kCjqYZKIoUQdB182yO2oixRZv2bIxRc8DytOIAKBoRG/NJHMxKJgY+8XLsbWvGAxo5g+l+SS+JAESrOuBCSCEoxCRjxThqBI15wgdAYnzm5A7XymiOc5mUMME2lvhZBa4LD1xaxZZ4VxWyhKldhLOW7nYIQgByMtQ+tMX1UGSxqwDunr0ZUQm/wlB0g66NvRkKZitEAS/RkimUwghahRVnBxDigxSOq4aDgtfMsdly2g8jVgkHRvoYHrOOK4vpjgFWjUhkq5UEOFgqTMiOHOqtpYaso8DTRxRl/qLWAavIhw5BS5Wqit0pg8AROCBkz4IRaY+S4o1VZ1fLuZV87HzPTq8akS2MZMDlVEFRCiCQNg6mq6WVXIBu2IpRtrJP/L1riq7z93mAxCMCRWwTMWoLJcj0GbF4q/+hCxigzISsL4KIjOYxzMnmy+MYLEEdlUcZ0ebSJ6GkTkQaQlZTHI20kpMAysSRr1cS1u1GuKnkAmkMaKkADLWFrEFCG1tD/mKsUqWs8mSiP+TUhY7a5j0t6hLxw4MelfJVpISx0XsB2KQzCCo8B+X0BqFuIFK6L6uKwrN6aXMKwyHFeueAZlhUOoVtu4EkL3BoMB9VdBa/Op3nTiN5QJFJJHxIAGFsUvAC/G7NgbodrSFtC2DIcqeKRUjGyA96oTH5tlcTuSssFucHDn621oJRSM3Cxobh4ECG0x0wwL08PK8CoG/3ldoyhIpjAGonVMkSznp7RSWmLCUE8Btx+WrQCcy8FLjAfawsQBxO1/skwXUqr/7oNoDfyEbA0EZyac7j0BzallmGvK6qcgumBU3W6MYJqUc0vKaOYiLG88ZsWucirgO0IPNuaA0B1LHgs//B0GxPPjOQ4MtcTOMaNQuVpA9PqlY4FsKEo9iN402YVgznVFOc2hN9oFzR02xWU8f7wieNLWqXxmmgCH4FTs47ahX3WD90LoqZyWVmhNk52nuY1AMOjBeAnrrEJtm08UOy1yQfcsZZADTpbJZpkJjyGRbG7+7ToVR9SLgoFhaLTIsTCvQA4M2A/XaG9vFAcaK7nbTcDoNwJIVSd0W9GIazbamtiXdjVZ+8yXbosTXdHQ2nZ+eAgi902OqJjEqfzv84bNCAG36Kk+pomIRXAzlWNdITIh7nD79FGYrAN5GBPjA3PLCLsUrLdxDLADfhwj5x2euQIHPWpqOXSZZISGu/2+fm+Z8IizQRRUuago0wjZKc50OrbiWD31DOX/6vyve7DjlzhI+n5cufz4dNOlb6kDZ9mokoDPPZD3TGG/JipttiaUPWhYwP1jtVPZ2sKutEpG+s5Qt3s4UmA0l6qbuLAqgmYpRgDh7DqcwOGl3f5Bci5L48oQFD9yVcNTmdElqkPLd+FlKIq2IPrtSqTmDWz2gJZIq9dbVh3KUPL7z3KaifmQO+xLWuOsvwojq2Uwnzte+uokw0brrCl12+z6m0WIdBE2M42W3nlG/F2DcXfF3myy7ZXARO4xBbHxRvnzz4IYF7b0i4+h/jDsR5uL1VV2x17ex17AY88EOj4phPv/a/HD8DckdOyj5u5WzuzZJ/rQ5bRNlVOdyZWZm+JdaT9FI6MAaxLVTTkc07vcL2KJ+iKACTjZLiGFyFEB2gkVsQ1UkBuMnC5gg8kMcdiIJR/ZbFRgMJCB5r9UyeUZllyRaDWcMlHeCz3IASAdUL7hUOwgJ3YdzFhY4w7dyFMODPoNFmvciSeUcXjdhokd6ABGETFhauBQjh5FjT7F3WegzsJURE4hPCQF/VwGGdpcfMsgY68eFOMaFLzeETIWFn4Q9CRgLZRiG41RJnVEjY8iH5oOGgkgffXaAU8dsWudy4xBCaVKIYlMDAAWJiLZeLpcYF0AQlIhA1bGHm7gXzqb/iA/lGFH3iRwjZ11oirj0hksiGbYkHQ4QVapIONQwbSVRi7OIS1hGh75mgOKUWUEwHrnIYUUibAnzNHV2bOkxjN5mJs+FiMw4NLB0hJmUdF5YF7TTHG0YjcSwglAoiu/xV5pYODZQgNz4DoFYRuf4ExplP43xeMHEThTAi0tlh2CWT+vYE8BWAViWIf0lAGqYjxyEAUkokFMBA07Rjxc3LvmgfTjIRx9kkCTkGQEJjRL5Ltt4EfXiABq1ALuRhxcJSCHpaxH4WBDgia4gf2mzXsoDkm9kjx6HkiOpg7K3ehI2kzjpX8JxXId0e4xVhTkZlIgFWu44N0RikpFTfi8p/5RMyQ+SYikO6ROYl0p7BX5NeZWkZQKSUglRaRXEcVx383/U5IRYWZbilyD54YAHBZP4p1hm6SaXiBJE+SigZAqmRFNvmZe0pZTAwJaZUIou14FDJ5N6GZO4t0t7kX6FuZg7Bj+lxHAA5nIwAl3Px5jnaFRmoxjTd5OoBY+ddlOWGZoxVZJd91f06B8LKVoIKJqsiXwaoX2GV5WkUJkUxYqt+ZZ+GZdNV5G/WH9DRVQEQJvHd5s5eZqfyVeeMR8OoJbfCJrstZnEmY/lZGiEmYqMsjIJcBd8GXPOGZ3sNZUGCZ7354WXhBkXgmwCOJve+ZbjV3lxiHXd2J1FqRC2uf+e9tl3NumEIPBUN2iR1nefv+WWFtFtmaZ4RQiHlZYLbcVEJDZiMXWaunGfkjCZogmdAHQD/LIbFkqgo6WS/9CVANopazdZq5Rm/mBuByBlkxOiLEpjylKdrNB7CbFDY/ZycdcZR6CQ/mahLSp12JFL9RkMI/Vn9YJxNxGRPZqkB+U6uXmByqBX8qCSBBCKSlqla9kMzPciAeBZwnMSdXGlVtqaM7CDu6SCw5BSwKaa4CIsheEOqLhUTLcXHOCSHhdNuxeSuVkfliGWi4WMc5SnYcqUFApNBvIAx7JdoqOd8nAN2sOPIxqokFpQi6cp3JmMZ4MeNBCnTChqkapqlQT/oq3ADvgCPsTiCNNClY/QEUgEiXRaQu3ZqcxAiOQZfxXEmYOgKuSmJmKpqX9aDAcKq7MAqK7FoSwhoMr4ETRCaaDWqJ2ABCsFn70Kd8Cqjwa5ca2WqfsQRjowMCCxCYGBBBvIQcY5rb4YnnSZZhDDCftpDpNiNJVVd7QlnoZJrpB3Ch+IdRyhAAqhAizjTXiDHHIVrn/EAGQZrJ+aavRKnBFYA6f0EEdCDX+2NyHgUGjxjJMlZaWXsEkqjzRILNixDIghjCcgi0g2jo7Wogc0k7JqE1xaI9d3AefJZtXwqMVHlTcXogaAAUD5lhR5CL8aL25qqhu2gRGqsStblhg3/zxxmXO6WrJEeHouIJwaa5aaWZASkDdFuV8Iu2ENUIpvCqsGx5rtkAw9tbSowmiudaArpmBT+2o8m1QC5qE75mEFIHRTO6ufqAgTKoJ0uGdW2Zi3xRZ3W1JVtYmk+Zk2q5ExyFiDOmEn2S7yWaUFCQlhu4m/ajmlQGQ7pZuRY4PLUV4wZgvP9YPTaqzneAFBapeKsZ26eWeX26nf558LmHXBqW2g4bM8B1pEICelghhby17icHYFO7iz+LvRUbHH+iJzwbuNNrydKhucKoioFxAvdDbwOlk+lKPE+5fDRolVmJEssX62w2A8ijgOEGHyGqYh+6woOylQwKsM5mfb2/++ayKwrqVmoFql8CuIxhus8lQBskZbPEoKuDi/xOlWa1tWwmrAfNh/OioLRmQnbLgMbVFoDDy3aZG3MUokJeK41gmrD5yPPkSQRHiya2ZdF8yeg5EOCXFyg0da7ke6d7u/0RezyYusgOc7yBm5ZZW/hzt05eC5GVIONMuDrapzbma7JZbCViWQFmuG4MvEZUIUULc3RcyDd9pJNFI2pZrFnua8UvwNNCACp1qI6UsKYzYW2Hc2YBzGPlOCOzKnqkggXTon7TMB5nhOA4x2a4i3wWEAW7pvnzghvScdKqifVVNtrat3vyfEwZG9u8uMKABt9roOK+AUl/xx+6ixSwH/HRxQuXrZBEyLaA2hs0p5xtsbwpA4Hm0Mhz+6HEHKkQy2oCVsCWOiZW6rsJyMEKRaqkimmSUFoGhmJyZAcLiXuCNpwS6hyLbqO25MgUHRta4Qcsv5ILn4KY4sC95gzM9cOEz2E8k1bk84jCVAyclDSKfXzZO1s6awOOa8L057vLbWyuoMZk9MiXwqW/WMwdWAtf5yxSTaVPvsadKcsi1KVwM9WgZ9H8HBE0fMVPzpIwjqxQmNUwBit+8ZFpNMw0QVb3Bc0dfWkglQExL1VFIrabUV0TwsmyBNWjs0pspSBDEg0x89dvd8VzPQNs9Hj9A5ri0dUo5VGkUgV0C70MMY/8Vk89PY65BHy6pK7XAv0RHQAD7eGpI0y5XLiLtPDbjekb8hJXkvUG52udVkXTj1ubdlndaaptZsfUOK2tZwjUCNGNf3+dBlxcV0HZ2gy2n0nNdHDXEYUMZ+ndLcwZtlFQT1Ndi0Fm9uKGug7Fonrdicxrrc9rXrDB2qLNmTnRc7IKMwBhY/rNnNK5EcLdqmfdoMDJiqCA+ojW5nlIsONs4Z3drs9dpN+Ye0Tc65vdsYuaoblrq8HdzCjdqUPdzGfdzIndzKvdzM3dz36NzQjSBoyM7RXd2xZ92/l6LYvd3c3d2nvcfeHd7iPd7kXd7mfd7ond7qvd7s3d7u/d7wHf/f8j3f9F3f9n3f+J3f+r3f/N3f/v3fAB7gAj7gBF7gBn7gCJ7gCr7gDN7gDv7gEB7hEj7hFF7hFn7hGJ7hGr7hHN7hHv7hIB7iIj7iJF7iJn7iKJ7iKr7iLN7iLv7iMB7jMj7jNF7jNn7j+AQESTAEPJ4ECOeD4I3jCS1iQPAERjAASF4IR47kSvAELtK4Qr7VATAESv4EVDBdBMsAOUQFRj4ARkDlUV7WAZAERx4FQOBDNRYAag4BQBAFXn5NYa7UDLAEAxAFO6vmNeDmS2DYcZ7CAVAOA+DPqqDmTYDkr9rnfg4EA6AEIDqoal4ASjAA6IPoYfznA7AEwRoAdI7/ypQ+tVs6AE7AC2ruBAPwup2usQGgBEYQ2u0sUkagBKd+wVM+AIdOfTswAGAe68T76VPQlwEwBaWu67v+BAMQ5INOAAPwBMKO6rmH6/UHW3c+66a+7FYq7cNRAM5O7eSq5kqA6Sw9cgEQBbCu7dP66VSACjkw21qa5lQQ7OQOq2Pu7ksUHRoQ6HwhZTK80u/27jAMAEaQC1dQNSQw8BdgBFMAo82Q7ysH59/u0/wevxAj7nxuCumOCFIgBYWQA1bgBFEQ8FPB8IbA8IWU64VA8gFpraxArGr68AG2BEtArBWf8QCAAzF/ClJgBVGwBFeA8WHHCpPZntIxBD375NrM//Jpy/FVWPE5kAM3AAI1Xwo3HwVOsPNVcU2k69PnjgjnDiMg7wuCbvTjBARinw9IfwpKnwOZ6PRPnwlRP/U83/OpAPIJp+6t/sFg708Ei10ur/CIsPRoH+hqTwoXH/U6//arkfWjgPj8UOt3L01qbuSq4PcjcORN4PSkcCFQwARNDtyYlTfoE4GR8/XqqfWx0PWiX8Jd3/jttB7FngqSv+SV384BkO2/kfoAcO6Mr/qcFgCKzukZv/QKgeRNQC+6RAKSnjwvPCemzsIr30n2p/umRi+0T/HAbwjCz2yzPvHQL5pqvgTjfgo7j/b/XgjX/xWp7u3b36LxnvuudwhG8Pz+k67F9p7+6h8ARqDsSlcIpD4E9KKGAQD59F//Q0DrShfo9c7opSc78k/y9B+iam4Eof7sZ14Jgc6VEbge40//Parmik7ykzCZak4ChFfnYTXr8U//LKrmwO77SZkOkU57lt7r9F/tAUDqogeQUCgAVDAF+F4DoE7/kMrttG7+cfnonmHIt64ErE7/IUovpG77lcZO8c7o9A/v/5/sfD6PLkfs+E//wKrm7Y7r2s8AVD4Aik//wProxJ7s6SsARQ4Aye7V9N+jjz4FS74EUzAESdAEOz4FdO7vB0//87vmQDAFTrDkA6DkTtDr9M/Ak7nm9ALtDADl9H+CgQAAIfkEBQMAAAAsnACeACQDvgGFAAAA////AQEC/v7+t7i4GXXSLi4u2NnZJiYmDg4SGhoa+vr67+/voqOl6enpVVVVv7+/ra2uZ2dn9fX1NjY2W1tbREREz8/PcHFx4OHhPT09dXh4jY2NS0tLxsfHhoeIudrxfn9/lpaWm52eIZj2B1+9aqHPj871LG2yMY7dq8nNjLW1EG7QxPn6fcLrbpF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv9AgHBILBqPyKRyyWw6n9CodEqtWq/YrDa62Xq/4LB4TC6bz+i0es1uu9/wePYlr9vv+Lx+z+/7/4CBgoOEhYaHiImKi4x+dI2QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDYBwgXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHIlxBcmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8//n0BJmQxKtKjRo0iTKl3KtKnTp1CjSp1KterQqlizat0a9BHXr2DDih1LtqzZs2jTql3Ltq3bt3DjrvIqt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NujRluqZTq15N8Soc1HVUqGBNu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnzVLCfS59Ovbr169iza9/Ovbv37+DDix9Pvrz587cJoF/PntKB9vDjy59Pv76SC/bz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmihaxZmqGFBs23o/+GHIIYo4ogklmjiiSimqOKKLLbo4ovAYQjjjDTWaOONOOao44489ujjj0BmlUGQRBZp5JFIJqnkkkw26eSTceEH5ZRUhvJelVhmqeWWXHbp5ZdgetRhmGSWaeaZaKap5ppspjZmm3DGKeecdELyZp145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdpqmB56GKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ApjRBsMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq//uuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz37fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755JRX3jYEH3RggAKcI2DAAxx4wMAAiQ8LAKgKACDA5xhssIEEmgsggAIYSHn/+AUWCCEBBA4E4PvvvjtAQAWyP3Dl4AtgAIACIzTxOwcJCBCC4AEcoID0UfyOweoK+R0AAasfn30AHkRvu97fC5C7Fb8bIMD5d5Ovvha+uy9+3QE4kIABXviuAAJ5C4AFBNC9LVRPABKIXwMEEAEw+E51oKKb/9bnwAB4Lg8F5FkARPC+MaRPPXfIoM7qR8El/A4AB7jAkJhAQjssAAAizJn8GmhC3x3ABABAgQ4LYIIYEuGBBJTCCvsHQ58FAAMJqKHvCIACIhTgiQU4gRIO+AEsDLEKL/ShzVo4xSU2sQhQLAAIkjCAASCgA1l4IfsAEICelVEAHOjiAA7wRSOE/7EFSPAdEp1wPyNkwHRTeOH3NFeBA7QRAA3QAAWKCMMNWKADcRxC/iqQQDYeAHYdoGERvmcBEAagAQCgQBeeMEgAVCCTehTCA4zHxgiO64AgzKPvTFBHOz4Rh0dQAQg+0MElXIABJmQjFV54AeYd4AHCjIAxH8A/U2oAAhFAQBXZeEQFLDJ/BpDABaDnSiFUb3lxnOEFEKA85x3xAaAcwQXqV8UGNKB3iSRXCiMgAAgkIYUprGUKbJmEFKTABAlowD6VcAI1ThGLDmgABtqYAQS8RwMf+N07l+cB33FAA94kAP8wWr0u+A6iPwzAA14XUZEm8HsIACYLRapJNjoAo/8/bIAIyEUAAoggiUmoKQEaUEcWuAAEtYQiEkhAAoCOYKBJAAHplpABewbTCIIcQjQnMAEDRMCRHDikBCTgANyFMwAUaMA4qRm8CFBAfCgdQAVKaoHmYRN+sqxAFyrQwOpZgAMjPd5SxQWBbeIUCRAIbATqWAIXDEAFPX3iUIsaUKQiQalM6CoLj5BFITRUBNXz3AZG8DnLes6a1AyBBb63SGpyNgHTk2RVIyDSiDLAqtSkQCwNalnVUoACIggB8+RH1wo41KU03elfj6BTng6hBCcIQQSAKgShHoGoRnXsESDLVKfec68/LOJrF4pC1DJUAfgxwAYycMwHZNaQELj/5gObaoDmwfCcvgNd/er62gh+M5SKPKs3B0AAhbSRAvlTz0enSVtwMYABEKhnEg58YMKeYHseAGoYFxvdJRSUDFHVgAQOCQAEsLZ+gQWgDRXgAOh1oAMaOOOQ7Js5b76WAic2gDRba8nferMIep2AfT1ggGFJ6Ygb7mu5YCnHqyB3A7KDgIR9+tgW8FKLRYDyjbHIxlVSdQiOHB30urrb5PV4heqxKn/Bmz8Nf3Kd9owAASxQyA2mVKQl7OKM1doB+VX0AAgYgUjNS64yolaODPjikVVXTxCUIAUF/qFvnbCAK/rR0VB44Qj2J9VJGiDFNGzApUPZTfLxz6KX/tzo/8SrWtBRswL4hSsZeaxIC/wxAB84IzktmdpXgrWZZPQdcwdNaCWPUZa0e8IfkTBsKqOQCCo9XQSKLYRuSpKRlhSyS5M97f0CgAAcZjSCO30AAuR4yG0MohxBkAJe93qKF2AgFCANTEhnD9o7o+JKy2gCEGxPAEKQHSjzuD0XwnuEAgQgo9lYztlxIAQzpWwAElBJOVTWiOBrKQslwEAE4Dt/DoA0rHvp8H8DnAKpIyUGMBsC6TEAPyLMnwBQ7W8pbzHd03Resw8wOzISz+VswDnNfFdy67LwAusknns3ucCh4w+s4n6qAxCMQKh6YOXomwDn3J1dYf4R5T9Md2nzoF9jaAYtf9dTtcJjuADw4ZrrRasfHOc9BJVuPM5702P4avhDCFi81n9b4vU64HMlrJnThHve9Wi3bD8qNIl5Rtzvhhe92XlOxrLTXd8Vb8MGhEACFaCkcsXOOOBlG3BBAAAh+QQFAwAAACxNAGkAcwPyAYYAAAD////6+/n09/SevrV3sKWWurCcxbtvqp/U5eB4p5x6rKHF3Nbw8/Dy/vrh5uOkyr8CAgJrppqSwLSkz8VmopfP3trm8u58tanj7OjB1tCJq6JmnpKHtKiy0snY6+aIvbKUsqrn+fS1186ow7uDsKWRxLnt7uzJ49yNt6yGua2vx8Bal4y43NVdnJDP19W9zsivy8iZysB2nZNzopfb3txrmY7a8+1Tj4TL0c++4dup1syHo5zF6uWqvLe+xcRjkYiltK8Ycs67vLxKhXokJCQSEhSlpqZQUVF/ua4sj+ORkpIyOD5lZWZ4enpqufEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZANnqGio6ECpKeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxLoXmDnFysvMzc7P0NHS09S5DNXY2drb3N3e3+DLDuHk5ebn6Onq6+zt7u/w8fLz8S+F9vT5+vv8/f7/AAMKHEiwoMGDCBMqXMiwIUNTDiNKnEixosWLGDNq3MhRXQKBFjqKHEmyJCsCJlOqXMmyJYAg+iC6nEmzps1GJDJ92FZjlcybQIMKHUq0qNGjSFtZGJC0qdOnTTNAnUq1qlVloAT9vMq1q9ev7Jieygq2rNmzaNOqXXszhA2OYv/Zyp1r8kGrGBPj0t3L12jPDD8QJZsxguxCvX0TK2YIw9WSanZrGT43ebHly5BCetrQyATmSw+OfR5NmlRPQiEWlF7NurU0A65jy56t1OEJ2rhzK8wxYlBk3cCDC09EowC4rcOTK7cIBMAOB4iXS5/u+u1LQfgwRqfOvTuvDSsE9WB027v58ypFeyIhAsCBa4Mai9JgQ8U49PjzmzzgCsU75PoFKOAoP6A0yAIzdATggAw2uAgPAKiAQYSC8FeIVGE5qOGGjJwmygo8GCjYJg1sB4uJqqDI4YqxwQChIDdg1wl9JfQ23iElOINhLwuy6GNsCa4nyAYGiHCBBoXYQID/ipdo9uOTUPbSnCEearLTTlFmqSU67XHy4ga9GRImAAoAcAMoGsCA5JZstsmMD5OUiMgGOHAQIWcAoIAXnDIqCZsg8rkp6KDWAMAkJiOoMMgOzsG4qJKERippLTGeWGFO7sGmw4FApDDKoZOGGqV193iSDABvGefBlILgMEGehiDAAQ2OCgRqhqzcd8utovoYgiIhiudcB9eRKQMEFXKwKY+u6GpWj71Kipdv5GGyQY2EUJAkIRxUCl9CzpYEbbTkFlphEK+K6B6mFBLyEYmEjDsbr+XWK9595S3yWya/DnkAAUHKaAAFMpTAqiIkfOvKvvY2TJ3CpNDKAQYG9LYA/wqvOocpkfr+UxlJ+Tpsb5WruHpnBXUmwd97FHo6LZ6KBCCvOIcwLPLNUJ1qSL9ZQVyJAWCSIAELLl/nX5oMwMzIzJ0MQG8sHiASMlw4V53Ii16yMPGQE17HAgDyvYXDmKHkkF3NvphS3oIfhWv121QforC6hl5CgwzFoSqIkjawUAARqQ75LruNkJzIC20nEkAxPy34NNyQRxTe3iUgq5W7pS4yQZAuILDDxDZIsLlq2oL9CNPwdMnS45E3SGomOjMS+tCqdUCA1hIWh/vO6bzrCOqtBx9Rv4V/LIkCQAAuQQGdo9x5nSYbksRBwAtv/T+ctdAIhMTKaAmygGPQOf8AgFtIJQEUqCADMcaLUv318FsUggEGAA4jcifYtSMj1xq8fHHLSkQK0qWJqcXvgMGxGA2IICtIwMR0i5iQ9nACAublKBKsM0QGC8eJ/SHwgwvxwMcIADAMNJARDLjGnx6YiAl6b0SpMYGiJPG+TFQGS2gDoQ5n4rZBWOdgoUjQ5A4xAA+oAFKD6CEiaug+IjrCcIVg4g6nCA8cIoIIelvEAJykt2nJLmWZysERhnigzCnCgJd7hdKoyEaWcNEQPHgdlXTSmDIlEVZn0mDdMpMIm3lCio5YUxsHWQ5BTiKOHszWGTPgxwB2BlUjoFvMaIiLQBHykkV54yR8VwjLxWn/GSuo1FgwSUqFEA4c3aNEIi0ByKVRZhOchIofSzkN/1CuFalBTcD6qBcycvATOdxjIDkRu1aoh5bIBMYugxmKGOBlAZ6RRg3i8jJOrECJn0ymNvvzCiRJZSn92B9srHhGam3znNgIiSVVgUVV5KQxkrTWmqImTE0syHzx+oEtzZQ2e6JTm56aFZlWgbFBODIS6wSUc9qnCR+o61CTgWIUxXRHPcqsovX8p0ajUTpPhK6jpJgfhTSJCIk6zlAJPV1GnVirQRAuNBUNTBLzxciN2tQZf+qEW0JaCGJNMDzFPNyFhLlFPeaJAdicaIcqyoBjgIIsqlMcanIaiw1Gy4s3/3WFL1OkShwxUxKEc5rbUgDSy6HRlZVw6D75adA70UIArWxlKUl6wBnE01pftVsFyFQB0VWojxpEDqYssAIyQoSTxotlSr26xFLByY5w0szifCPKSsjVhlmlpQKMY81b5nWTfXNrS7s6jn6VyZI4zCAadXbXis4SsLZY5iQzq80ZICAJZMMEwNwDOhcgImORAMGQiBchzaRSqfoyEjAvh09zyi2jlcUg2C5q1FogMZu0HWRxPKXT5gBBoIuQqSOc+dd6jqAF2lvWaxWKuXaJzwUgKCshDOnJjl3gI36MGl1lYdVgTk2iTXrbejWLvAt2QmjLIxNnI9S35kZiCOIdav+eiPuzFGAgCRbGMHsNwac55baeNiNnV9GKUVp02KXZbSPnGgUeL7UTNVqzBIXxSc9OFGcCIJAhBg7aXi5mgClBUO66UNLL0T4iwsHYqk2P+c+PEDdEPK6Ei95rrBgADQcmtOMhP9zYSjSnA5sdoIVF60QM5U9GCcgJkCs6MBSsco5atGicO4aMcUDRLklFborhdjbssErEmqgg9BaAIFpBMBXROcGt4kjoAqiAgRe80UoPV1m1tXdBP5isE0NwSkViYjtbQd0aKXHZPQsKmjSQrQKmVSDuIkrBhd7bJtiFEgdHhqFSGwT9MBzmCaygBrGs7iD6nMZaadqcuG4XrIr/3cGlotjU/4TJZg8ggatxzYXfG64uK8EZ6JitvK6y3aQJcRuntdcQN8CbQrkrFk4u1rlRRPIlxjGOxeJaYTn+CDgxW2JoY7J/hUgUZ8dspbZm0RGPRXGR4J3q0NbtqYgAKpwhSAIIjKBMjALuww0V1R7qJS6z9J2Dk3gfJTNZEvplNiSMKGmVj1Kb/WVTjfmaaooqWNnWMnAMNLBfAAyBB5xptJaxE5k0Y+3gv0RYW5NWXj1L1RGjJnHT+i2JHtTXpW+mbcxFJiJHl8nVZRSEcA2ciQQfYqt21V6jz6104J3mJ+/C0sip+lmxr1XYpxvwKIKNsKg23d96bx2mLE6+//RxgO5ce9VmkU6JyZUAzCmMEHqfjaoJ+O62xhk6jqaVyMISdc4uHVjd47XEUMO1EhdY3AOJTQoN+N3f8Tp2Mh1t5crTTxG3hfXVKVGBLJPgRXc31oEY9fjpMQrnG07+uqJ64lz3xNwlnaVYoAOjW99vkR1K9iPO2oinAei4Zw9HqV0jAJ3luV7zLNZ1Y1Xt3Jn9eBAA0a57r+2eAupPjS5dfG/uadI7faWy538TB28DqFK6tlJywlWjoD6LEGWwZzWrlhq+RWgfxgOykmV+836PAGa5wzWctVUekCD754FgNiya9zuKA0VblXV9xIIvJIBKxWXLEAQtFwkxMn5dZv8L2veAXUFCYpZjFZQk/+N1JbA8QLNswEIEgEMEJkBtCwABMgQ02nIathR5yvZRj9dX6hOE86YiGdB83XdHPOdkjZJrsIN3j+AzI/YprwQc3Bc/kxMEIEIDVocjGTgrFWRo2zMrfbUD/7JZ1TYi0wKFZVgm09YuBYMs7ackJ+gfJ/eCPYEPMKVnAdBU1EIWARhMYwSDGMV35PZphxYzAGZZZmgWcsiD8eCHJTgnqVJzRSh0YHIIUwI98AWIjgYsXYMuU1V5RegvMuRbO9AChFhOOUh1sLVcLscIMPCIkqEK0dVsK2FIGwFoEAhfJ1OG2RIestI5BXCBBWaNnVQnCsb/AgXDh7bTAYxohXfCKjgGa7wmQz21hfsUcxBnjAfCRePELp5ogOM2DFungBv1j+aRS/VhLLdIUQDDjbCoGp4DR9/lArV4WxYmKyZwgaGTIxV5gZ70XYWWkfanAEDDXTtwJVLBjPUUfJ8mE4FnjBHFiUbmT6eQia6APqSAg6gIFgqwPnyVKXdFAbpjhAzkjcJiCFoDkVojOqjmdXiobFtIAfQkgsRSAZ7xioq3dncSTcj4iRgFVT8WMh7wjP8XljQkkOkwczDXK8iiSVHZjePIPKCDAMqXRUOjkITWP3tFPr7oHoJUWDSQYRKCAUEHl0DIgelzQYgxBMT4AEF1jI0n/12o4QnUmIZx8XoIlYzDYAHYRoBZspL2MgMScnzEYZFZNoRdI4ssgAPKMzoXyS2GdkQIsD6JkjAkkEskOJpfx1sWF3WMiWbDRkmBRJmMSSw2CXpiCQ3v5pg3CRzBsocTYkJ32I1PWAhxxFd8aJGA6BzQ5C/oSDTtFWN2FIUWNCRkppWsZ3P9aFQdxwg3sjYFx4a5IBNkiYL2mJz6wQAXSYQZiYdjElp9RZdFeTcD84ppx2AuoC21Mwg4wFec1Xu9twPnKJ6qcR3ykQD7qBWmsF/TFDImkJmiUaHF+ZIPggrA6ZssRYwltQvnB4rK0SmWeUATAASOtjla+GgNenE/Kf8hRTk+qXZhsFEx1Laa00ZoSZIEQipctwQBOTJwiqKTCAUT8EF9jXUNXZJC+EWhgdWi/EafxdBzVXVqs9ONeThQykZoOro8zQNfeThAofOXotN7RTiR03MnBymkYiqehmek6VI5aaQDIRFdHQB+HOpyCWAkmLKDzGCSWVmTbfhyTbGYtPSleeIBvSGpuNeftGOUQqeQKqCKXxYhFQleSHktsEY5FZRj+bdAe4UsxxAofMeAjpgdztITLZZGH+BCIRFqWpoenXksZeKAhAB0fJWjGViRwlUctOM5+AedBUYD3tUye2Myhtg5GYdj+KdFFiAiRmRxcNIjs5kCLqQr08T/dtVCC5xpJikKWIiaq9k1P3CJeRPyKqmSppjXU2TqlKgCkRSDIAuWr9tYpKPDXf8SHtekCAyQMIIkk2EkYbAie1zkY/Cirg5Bm26SUlgDqWFCQrQDhYUWY4oCAn6DpJlXHzHmQwdirBMDmPeZiHoJb5oWIwlQMUgoQCNJmbcWn+AgbwBhs7LEgxByMAkyNCQohP/zo/hqiO+FYRNQMO7BLeYDZgz6mrmTtAaWbuWEQ/P4K/hyJCIAEVuETbdRrhCrDR02cikmH3jyP1uDju6BPKw5r/LqGdvVl71IkQgyAW4ZIeJ4ILXTXPLRaVrheSQ3JFH1Yw14rmFrDk7QYHT2/09YlSy2da+E9pncQjR2IqMTcqcKJmYKajvaE253OT05yVkHmWnOwWMRJmI2owP0Vk8msl5g+yTDWREFSZy0lANuIY0UYkSyNpfJZ6odeYEDE0nuqJc4xgF+Qz61Q3ZiN2aV4zYuGLNhaA8r+QMw8Ctcyh2nxxZk2wyvO160sQAJupPPpgCW2jlYU4T2c2E8Grm9VkYS0j9K2Crn6BlAc7mXInmsZTRzVCld0jj3G12u90s5gru0uw2GyhAaZxU/8BbAyo8RYrhNNHqzsGZlIZW/epfj243jE3AHN5rguY1vkTGnaam0c5U5NnkeKKeHIANOEmyq83pMhwL2IABQdP90SQcMOqsSEEwUGdBidsWJ7WZGr5DDlHAEnzEDQ0RtrZI+LZOF9CeLa1c5YIqOiyfFOXpEToxlwken95q59Otc9iaAZPQtECGqJYqwh+sN9iBbo0VCuNC9AxKv8RVNQPQ3Edc9h8i5B9ABBAOIe1yQepipy6PBJ3Qg6WIh+wJ+EKRO8WIB3Sa4FQWYBEyuUpbGM8KMbnGCXUrE0kFw9DokCYpxyOdWWcyjRrRX8JUqEEmygXiv4giX5bUsiAcoYDlxUQOGsSyu0GjJOLw3gZhYF/CG2AVL3PsVIcgBQTmyq2lw9Gon5JO3+uqm/4PF06M80Ek5bip2Wlg6mTmUOhD/HgMAJooZRaLRM7vJVsiJvWuRULg7jyhqKZ0wilABtBKARRgsazIyQbQiwnJ5xa/JKC6EPMdKyB3cSbzlHxJwdZl3nnsEbLE3J8yMzueMhtAgzPEAx3sHFLWsmRQ9b09nf8BSnnH8xI/pQ86ExxNSlLrXfhoLjzhGpr5lvL3VrhtsiCimAWbsUvHXKNKoacQ1uM9VwK+As7z8R/AGMxE2LQAyWTbMCaBm0MOWwEdWg8Mxuwwmnqy4jRHymrpmHG4cOlt9rDLtjUgJudWWe7sIve6yE/3CM+QVcWMbT8eZHAPmoZYg0quDUW5sCDjLQroASB+wvZLg0IsBvmTlKSHR/62siSrtes1dLZ7v+6e2qaxcE9Yb3MZLyz+hmNlpKEpUvRwoeRkb/Xf8gNEIFZlDUQHD2FZz28UwvcfuRSywTa0GMAOzg6neuMfGAbrCByvrNIz3pWz4gNecfQgPNAIf0HOUGbtnUY+jgScO2wPdXAl2HQofgW1zTczZqBiqwT1CyBnGi2Vkmp3uyIG7hqP9eYcxzayv2UB/qmx7EgLnxV76tUs0rNaRMJJI4rfJdcCYwdzzfEGIydCkNhYrQHdKpt2fWEfb8rxoobgLdUpjzaAIOqP96pwps6OWe6+wQdPiEyGlQwEikB2YoiQOIErv8QGES90VIoywEgKhLR24nP8YCZADIcxKYTjMjYAklx24Cc4J1vHZetgXBaPI2lwfF5gpwMuvebhgto2H+3yLY02k3PjiHhapdrqMlyCpBxCMKOHO5rHDamED8vUm73LWZaJmJQm4pG0q+ot6aFwU4pgEvjVf3MLhRDjIXsym9CSBN1Z9vfEq4k3ZU3UNQcPFLy5kjZkmO0du8zPaRa0NQPDZh7rYMLGqt+rgl8An4QF2dt7m5kkVdnKIpUsIGIAXiXLeCPCdVG6soecBpfMB0NfMrv6YglSa5vqCx/Pl4SHdjeEzYh7pzKDJvMA0d7U/goRDnTbJWcrNaUGR7uGHb2F1blanXV2qhPeLB7nd+D3/WRxIgULMxRR2w320LO0hIiRJ4MLeDLvHCgakhmlIOLNMsptNHlJB7KOlmKuXRPIH6l3RHuDLnX/Hh8Lig5vqAeybe4btkIqQAm7qKtrj6eIxy63Vm9lNeWzeUUwB4KCRC6i9DiNqGUBEC7opn3qZIGNyDT7A7C5F6QR7zs+0F2H2XVhNIXeTLQRwMXq7O4zHW9VlV694Mb0K0pxdRBKfbSgQLm5c5lKnDviODoKd46r08SzxULKjObtw3ZSHOVEDIXDZGCTTL+F7oiX6eI17Fr1o80SwAbWa0shLbbY0wPP13vRjt71HwLpp2/E1QBF9OBUvCaI3Ud9U6gIRi+Dw/7yQt3LRt1ycHEIu6ZBH70Mh39FSX++TlhN/3rtZFNx3XgEyeL0RWhUq38CZwl7JM1Cq0YrlWLkCveo1hyMSYpDUOjd4iQgXu3i/xdlyFGhaCShfWaLYgNjX69/ZwPFz4dfk3gylOuSKZABfEysl+6ywMfLOoQErXxVC44cEiCnOb9uokre7Kz647sovBsWR+9LKe+cysTGVHaI9jwrjIVLMjw1OSBHGL3XyPBKDygl0AwgCAIMAH4SHiISGiYyKhDmIJ4MPAxcZBAolAECIRCwcHTwAC4MSNIghmxUIhKaomAArDAYbNEBJOo26u7y9vr/AwcLDxIkLO0HFnITLNv/FCwcdIAjUgwS6PA3Y1sXdwQk814ka3uXEFsKS5g7m7ZPu8Nq95OYzhwbs8Pr7/P3+jPSCyWuXANGiQQNgMMgHwIANBYdwrKqA4xYNU7kYbQAwAuCoURsgtHLB6p/Jkyj3AZnAIEaPQys8HnowCERGQh2FHTCRYsIoDD8L7Eo189CGC5s+ejCWUhc6R4MCNh0myNsIpOumagXWYODWr2DDprQnFmXODykI+WiYlNBGoQpMsWgbzIC1G3RJqAJRtq9ffTIoHDC4S8Q4fSoWJEnMAkMHBrzI8lLBjfLfyyhpYt5crCpCzqBDY5aqtUa3AVAPHzw0caRQyiQBVGC07FH/zY+GBSQrpeqj6N+gO3AYXJArogC3hRU3NmFaAZ6RB/14EYQHjcE9CXn6FFbzr6ehfSoHoA540wztlppfz978zhYAPP9CDe96VEcvWJ+qSWrTCE264HAYR3gxVconHbSnIFik1AAZebzIkl9yt20EDHhGNcQTBjKUwJd9iayFSAESuGBCLBGCht6CLLZYFG9YbSWfizSGFsNcjRiWUi2+rJKIDJukYAsorTjTUIGfJRKCZBKVVOOT/kgAAgGDwUQEX8c9wEOCbO0AwUUcBsPDhCOW0CGH0TSX0zwcILITa8DodR+EKPpioYFBrFlDDUSJZhqUmC2XCH27OSIeoIgm//rMVj885GYj6rmVlFCllNQmBxIA4Mk8iLjQyon7KSoqMRfNKelxhww0w0Yp3PRLnxqZooJz0YjYaZ0htIBCBYnB1EoHHtg1lJypwkPmO7FQsF55o/5GQgzNRivtioysNp5OxMSgWEM7lCJgpxxsR0SI1gAY15AkIcCltOxGlkSdh6BDAwq7WFDLAcoSkxYjKyi7GAgATzAbW72UYOmpHnR0ig0SrTRTgehlUFAAQ9DJTY66EEveB96FdgF97f4VI28EJAhryChPpWNng/bWj2awVnmOdOJYNshK+zY8G4IRRbPtuZ7OhWPKRDekGAQH5JLAciRYl4h34gxzRFr4kv+G068N/UsKtK9UqqFvijAAn36rNPeidIO8xACSFj8YyRBmCwuhOuRQK9qMRbsjEiMOVAXDIKKoVRaGeU/LbMsYG9lLVbtSVdXKvDAE9qlRzaB4mN+S7JYmCkjkramFo9zcydYQue4+dxYMAgU7PDcrgF2HclHU8RrTYZKIWO3qIcgNRY0HIDcSamh4h96IoMXqcnhoxTGQuvE10i5oBsHPd3YjtfHy5zCHh0CZPRutOTBblpvIlnCywbtBw9zJxsKa0LcbEjZgul1IO8/bGVh2A5Yi7EZ7y5D3KGS1h0UiNb2Q0u5+YzeDvKArLLIWPySXwBYhL34YVAY8YMCOBED/DoGgI9hPPlGNDVGIGbKhCAnHl0FpbWBsXkHhNnbBtcn8AloeAkFxNnCn/rRCI9boVlTEAZ/nhUBAGosPVCqhvEeJ0E1/m8qxDlgtRBEuJSOzXAFwgIGOJI10LQzjST4IjI7lTj/mGJnF4kMPecFEFA17DkXc9y1lEeAlEGmIvD7hKBI5SYzRyqME+zeK7LmlVHZSQQDtRCnayOSRQNwcR/wBO6iY8SQxaCDRbOUObZARWcbw1CDyJRpOQgKQNVJAt9h2Rl1QMBEvKcf2EFFDQkDwYm6hVwrjIkpUxIJKhJjAz3zkGCKhclSJwVIINdSTYMlCW7F6lXAq2QsSSKMC/zITXEQmU4FYInCKqdIk7pJ0SU4dM1GQ29I98FWoVvoliedkz2xe4pNXXs82ttSm8MrBQ7r4KndrehC+jBYkp8Bpl5SLZ97sQs/S3WMYq3qOMJwGpKdNYk0+AeckETcoCySAWPKpXhN/wUqFuuiVeuEAC0iZiBkY4IphKaBJNxOTJeHgAGgZ5z8y4c2R4hNOZCnIDOjFg4YpwozCskUwCzQ2J6ZvpqKqRVrsedFsqgUikRoGOXQpJgVY1U2sc5/ilMRSC8RkchkrHrxkCdUFaSZ40vBN+OwHHLq2tS8P8N5/CnpPraj1Y/nUS1atASsEubRcIsGERI9xv2GRAAh8/P/nXV2UR3rg5att4w8utsLD01VrVZ9jRES7uNGHqsNuLTlR8nx6ocmGJXDcIxPDCMoeu4DRtWU5V8C+ggKcGud496CmYxxRHU8dgCIs/MFDUdG5IAEsp7iF0lmDIYEd9JQfdoniWmwLv0asb7gp9KViGlmY2okTIRdEVO+i24tuYYl23lheO3JwghwMcIHsDUtkvXHbNJKHIQ4CpW2mxxD4XK4/jSlkg2z4xK/ll0VNLZYNQgFKWviwH9v1EOVgikafgLYRPqiFh3qLXzMR5qiR88Vg5ZuOB7uTv4WImvnOil99gRDGLubMLQS2RpF20nonJoJkyBUVvHxUhl6E0Qn/IQUnYWmAwzn2mJJkwyEFGuXC/igZid7VAcx6l537oeY9+hS4lujIrjq9cZp7cYEozizKLwYybybZAxO0iSWF0FEMFtnOCvYDtvCEM1iuKwwdUHWntUPjBwvCUqr19aJLTp89KIBmQXNGsIADb0Pmcoq1jTLCJ8HUAvopJg0x1hcR+2RHY6HhGOIyM5MVwHl93A90VI0jRz4FUU6pFD//8ccNtjRnC4DRUpdULLOzk9U8GyLMElrYohHSfai0gmvY+YnM/sYyp8sc9AWDEwkCNbj4FegrP9VCBKglr/0hDw4+OsrlNId6uLoYSME3EZBV83dAHGxo7wgISBpyP9Qq/+dHCfHYN7GQrkmJ3xlUlFzS8/eCrkPqH/pCbgKu4r5gqthuVFq09/Pevgw0Skmhh17yJc0sI0O6wfp7kO2YtPpEnCkAinkb79L3DXsQKcHeW+JbMSYN8dpYN488EbWsVGOomuyoQFNm2UUr0H8z1kPFNz6uluw+nrxuXfgkf08N5pOdqu3y5k7LVp/66hqbzzWvdk7X4DJZgOLlb7fJHINx880wPvXS7F0XD1H1VHa3gwSvNTIkAbUKuIg03oiaNzAAbAyU2ff1JJ0YMTqBIFakedOkNyx117pWcrUxrPuCk/lNJ1AOry/xkPJENrsZln9xXNWWA5iinkF3K5+SNv/uwgTHRrUn1/iMwBx+OQKPFI8O+evzGVdILhBQR6DMe/VibB593ma0aF3N6s8QIVlvdkEsUQoK2IDb4ziuMIY31kLDxHkk8hT1ve8OHqgnVzfg2OerSMVCP/sQD5csvKADLdARQMBSc7Y+HeYKRcIKN0d/0MMsX8IeK5cechJvn7EpEKhEanZ5FoV+MkA7QFCAd/RC1uQNFnAN7ZciuRAEhKMusTB/G+gNIwg4tXFo4yR4wAADyiV6mVJaPhBmBrAbuwMZ+XJ5w8FVcVMNymI5NRF6M/gkBJdP8iAxxNcPRBF7b+YXOvhu+xB+zUIaMjUJCBhW1xFhJgAkIkALrKf/Qb7QEtPBNRARAAGwJLQVhYhWfgnFDeinb+LkgdUSA38DIB/gZteVOZtGOccVS6DQAnm0S3Z2CjXVH4OxgnjYF314fachFhDgJc/gcHzzhRDWLl23dgEoKU+BZ7eiCOoxd3zhcl3lAjkHDA6hSBCRgud2iXlIcmxHSCDGMU6hg/enRJCDFFvCgLcREEOSOVJiFBYxGQaji1KmTwQxEF34F3rRX/vQO3xXWmIRfvkXOt3lA2wIO5AxYTI0SoLBLfQwPPyAFTEBFPAhTPR4h9J4EphAAwZTTHS2CwVoFTeEKmkGGbMkCjeAHUQiAxN2EeoyEeIhN4vkATJ4jymRbjpX/2s0YonG0n/AJhAmZZESACTW0itpk1CeSI2oM2oRRZF/YTCy8hOhiGaDNJHd1wjr1VTd02QH4iMshSMathGOwpJ+QYDJEXz+BSgSAYvdcAMFVluzslZj6CI5yYGRliL90zS7x0/R0ITa1EEAoFFCaRJxsY8hhHwmcThx8WpXWEVfIkdoxC9hiRnzky9s2FYSwZRY5HaYKB7UIwnnBShqVAxRU2dvlAoa+Ymr84/iFpdikRZYZVEWt5a60IObo2qzgFA9hSQjMI/7545PtR/5xhZNyZjDpomwRlkmRhAW5EssBiWG0Zo5GJgcQQMSOWAjApMxB4p8V26kGXRDBIiqKf+Zk5SWHNJltbRojQAwUKFhL3VdIZB9vZk3NKlj8ZRNU8gif4U2rKRGExCOCSIz04UCuNh4dRGV3IAOGBidWnE5vGCUNZlAmDIRabmZCLhvq5ic6slbKLIy0/mOsaB7wBGaE+QiKdAtpwhIsJONTjKI9DBQP9UNIuFwMJef76Sc/JZigqlgpIAA0dcac3Yx3LYyu4UTL5QhFCoMeud+XKWXftWL2gh65DkVoHCNYNEhQGI2hLBe0JNEH+BRcgV4j3iiosKDv2AdKxovAvcOBLccgxgmQrIAYNIgGaA0XnN4HrARJTUBiySkX2GFFzkVdCh6fuFVO5B2gIEIS9CGZVH/M0KiAyGYNWkISHnCH8u0L7nnmVrVb1wKJYFzWl+6UaQUOCGQdA6QXoIgUnRlCBnRfHsqigaBg0vZLjgKqVRRF++UjV22P9RmniGTAWNCZLMApVeSAjsWNCGpD0faqFqRomB5cauHQHd0fQ7DUW5jZMsUSXGmqinhN6gETkDwR7JJPK2VYtSiLTm0IUgzhD0Am8Aha4ewmOYUNi01GFtiM4vBqGISbrpKgbfKZJAEecQQBCFAQcXRjSa6rSixXte5SdDILgLwrsOgNWloAOykSFsaQXr6dvwXY6aSC9hhah4KkOi6Ga26FVHppwc1gAP7MixqPD6QHyXAczDwsB25/0GnmTEA2Bw8kaw9oSaAwiPdCIKG8pWXcHS9FUwiJExbxkUL2yyPkxJCxDkhwFR7WFqI+Cmwda4tu0FuA4bCsK6/wUQbowES2Z8Y6YXvmJ7B5C/NhFhaypEKkkOl01RuWlI8VXI3s5+S5CrqYnw7e1fVAyYPuS1PVW0jaAG18XVe1UeYwmQ2cJhfyzLdGj/PlIk7wloYuxWLgS/Qsmcba00hmGSUyhlmgnHRoAgU9Elv8gtNMntxWyNdN0HP8lR2AaVtqykGoCt0oWHi6V0sRFeG9LiV1y9yK5juaZ//QLrSACzT17HMRAGOYZEtAi2qFUUnI0EPsAibSUMN50NJKv+65zQCeMpHa5eqIDEPRBoRcgG89Eej2JUxH/cVrXIftJsmObQ/AIMBy4oVFchfg9t66riSyuIZVShZ/AOTDhCsS+Ev0cu8xnMQbpRPYcappCJK2Oq+cGa0KkF5kHYZqEECUhEDYqOx79GJEBAwgiEnPnsZDeSS+IQaIqBGhDOhYoq/iaK/r9JKR0NJ8mnBUcisvsB9erQZePMDqKEBWEFf+aEBg2HA9GqjyWq8C6KNUeSBxboLRuXBrokSpFeVqJMEy6vDD9qbQDt0ffGpwMWxz9IcgqGlUMgZtnY1OmVG63i6Qky3zos4+bd/+7AqAoMDVyK6IidxPpuiWWYewAP/Sc1EAjvhxCYADQcaFuFnwtViCOcVuanpVMo1ubx4xav5nnVxVlysD1CKso9bAhtQEC8aXZKgVuCkoxwlnOYBwsEFMIGhqVwydojLHgCMgUgBasYYxwLcmSzrxwp1fk3hIRfhe6b8YELbDgusVeBRbX9BOHSZqWazSsDUpZjXno/gKg8wiE5UN0DaygpySZway8ETrCahOAfJAUppzH03nSKslsAhTlXTOqzrpuy4FEcXyUjXnvJAARS8C0NwXhRMv3OjJFoozaLylwKJbDhlCPfrzuxRzaABybnDzLg6OL58RqyTE1raxC3RAqxTJRJbtLwQuc5yqyL1vfZ8z+6Q/wz4/GewU3ERjYdRxM+DUpdEJ3qrsWea8MKJlW6XPNAGDMAFbQhEobQPWrAh7LNrEcVDgWpvlNFhdA282cxXhdP+pg6bF4pZ9bvYcK8qUmTBRS9R7AEKmTROHRW9hTQeUG1SLVN/Iq6flkb2JA/2pzxn1os+rSixXA7Owb887FsYHdb0N13GShzl9WHTiGaZK0Q14aYjBrtlCgHi2S8kqEgqm5hX5MLc1Q76zGY5yGtchTyRQtRqjRnOmqFkN0Q1NhZm3dgmBdMYigqLEKQNra83sVmpgCTweB1SPUpqQtXqyNSB0RGgHI6QWQ4XYLSCoHfZ1xECrBHRbNlH/R1UJf855Kdfuj11XHwVDBG6gMcLAgoWuwvADDWOUryZHRvQBcq34vCvVFS+tPbKwIYkEoJixDdIGhbc4j3eUALJpGGsGTfETFFd76iYUygSCbMIKBBh+cfU3tiJhcDUXjIrlMbGWPvaAoF6A9K9QQ3gZkxGukaUH0re75wTlMzg0jjWKGkn9bcPRs2KACCSraO5YRNL9uLdL1LSdL2WIrInALAEdjvI0xo5lAnO+vpRiCQpsQHhNF7jWyEn6tRX0zVpF94LnHBWAKoPZry053Pb5lpyrWoBs/3fv+wIBNgVH+UBwScCWz0JqzG9IwWM+U0AbKPkYBlg/tQzNg4WLo20+jr/5kJJyZz9sztdMFjELKzCd4phewNCtMtFbU7XVNVWoNKaA6RbXmXukWqaaP8UVuAiAe2L5h9tmoqOrk/s5IR9P9TiuFdHCWS1y+W3mQlgdBWcfsRB1cICXVwIfo3lc3NSzh/RGIje6OtRxKzeqIbBNZb+FYeLjuz2hFRidVVi0BCgEJMUzGB96d6M5++gEJ37X8WwPDmriZ+3AgneApYAGWmpETcV46++pmZ37XFbFYFu4fAjw4KZCicS5RyrLPlHnpounj0AGSxsqWwcVwTSNz1qD1n34DJBLcXhpQ1GGgkSu/ACrekzNNpuFnjb6QN/7Q/C0ReyuyHhphsrDcri/2kaw8q3el6YWtoR82kN4HnekXnaoAG97Yui+YSUY9/7+MYIkC8wXSJrfvDtUdEur9YfEOuDPh62kqn16tqhGMGKqmaalOuGfsJGiJeu5GnwGpAAeAPT4aI4sRRjKXU4DCwx3xdQlr4+YC1tNvXuC9EoOtFOl8uGQW0iYFaV3WbTdz8vsDRD3mwcAoyyRiYoIF9WTEOHWyVJaC1EFUQasLoxmkj/p/VNkX3c1u2Af4/LF4YcYW2AOj+PtALr/hKZNEmJriEG/c8nZksu7VFVYh1pQjDbhTCFDyhbagEoDFyhT5qW642KslfWZmvB0rloFkCVP6XXIMPUgw6aDtP2Xv8skZt0EjWcP35Ic3v6NOKgxLf2PdLyxM/gZSoUmqsJ8GHQh2LnycJDSVMIegXgt9f1cOkYZDniE7787WFIE+jD5m/TKi7+jQ0eqvg1833ApEAL60vlJwzipr0DDMDQwVC9Ng0IAIIZggAdCwsqADuFjY6PkJGSk5SVlpeYmZqbnJ2en6ChkB4yLQA2EoqOJikAPIIwnyuNA6K2t7i5uru8vb6/mi/Aw5kUjRQfAD8rLSMjFgwGjg2WrbYXkiEr2JE/hR0VBSjE5OXm5+jpoBWCKqyNBB0ABIIMmx8Ojxbq/P3+/wADUtIgiMMNYoTQlehh6ICOh/R0eIjBIEGCQhf/KQmYh1HUPkcPlJU4AA/Sg3gdZEji4UGgy5cwY+bygeKGPUkoWkkrJjAER5lAgwodCkkeLaKaCJBSCWJey4YDTQJAcVNUjHo1Ku0EEJKQtxSmVupASrasWXNBRAjwJsiBBQIkDVlbNG8c0ozfZp3dy7cvrmRt/Y4CQcGDu5QkeHRIMcFDTgD5QBIMzPVWrY2QHx00CsvR5I6RPgseTbr0KEgHGKtQsIgeCQiCq5qeTfss59qtKRySp7IgDbmSYjlim0s03rg7AUOyoRG38+d9JzQdsQCr4BgT6HqGzr07uhy4YRiAcKD8T0OsWafGABmzI8VTP9qKpbRQDgPWbl6F/4TZZ+gTyngn4IABiaCVIK9Q9ogPCRVHSYP0FDLCN8D5R+CFGHayARCV4bYYY/UYBVs7CqQiWiMbSODQTJGtAgACy6mkF4WSjDhfhjjmaEmDP403VmbEECBbJUO2w540ReqoZI7QQOcDCR9u4OI3iUQSwgJP+VPCKUVluR0uBi4p5phfmpMkJ82QqSaOOQjjJGL4cVAADQqIaBgicR1UCA0H4IWLlOeFJN+CdS1owKBrJqpoJLVowk1oe9Ek3KKU+sUDCd114Axhugkiw0iJrMbenr5skOaPjmCKDF0zTIAlKavV006ltCoaBCcDnAikBjOaZU+vtQYr1G/PMeOUIf8jYGpkCdWBgAB7oa7oC3kMFeqpXKoUJGGH3AKTlbDgDjhpuOSWO4mFxZJXT0uzxFMIBCPJYN4wrP04QQJ6jTTri+GosNgigL4bYS8TmmuwUMpmptw0kB7s8MO0mSADRZI8WoIKhekKJqN1BQEjha42BRuSqcYF8cm48RiJypC0uReiKMdcLgQ9gOAMBC3YlYqR85aDaGTUGJXdi/zK2Y+fMiedzgPfTnNC06ApLfXU/jCT8VQhfLblUyqg+g8IW3GEgQuzJkz12bj5gFMhA7iH9ttw//LkQY5xhJ8rYg/dz6SiqqSACc26OuGWixQMDAl6loV03DgO0RpVdIHHcIv/jPNzZuVrEoT0h9opo/E5R1CJwZysvYgBST33IN+3Nt5IwueYx77JDoVhdeujsgOEe+6JxqCvIwUANXLI7iRl9nwT8a58MGUetfzz0E8lNu1ymTArxgC9gJ9qBbyzyb0zvdZhSNGXv10N2zRyw8Lm5+527D6E8Cm7eIfgUxKlB7Q9fjQY3VxJ4XPIZF5AjfYZkG3nOaAC4xa2OoFKOiASSHXIk4Qf3WQGCpqSLh7AK33EBF0LDKElpMW494mQLONZzw6i9KEDeEkdbpLVxRKICZNZhn0nzKEOBQKgHSIFPz1wTbzgpK5/ZOAE8buWZnYnKwz6gmU+NJ8GJIcWYEXx/x5XTAd+yAMvrmyPi3Xzh542ALNHjKsQOGiH13RRxiyaD4q/2I8b5zgUxyRAfvKS2Br/0cYpKSJg6RBGDOkYNxwOo4eETKRMpBOWeQhOXnYxYug4RqUeJUhWvBikIjfZPE56MiZQmoiqHtmYniwOgfxiBZ6QFbZMkq8zP9DkJ6n2JKTMoo+zzCUl9jcew0CFLDbhCDt8c7pGigKOO7EQ7HSpQERqwoSQyB8zKwFNThqgOrkhz90CQhNLzKBE4TgGOuKyzGlGj4nPrIY5J4GZanoyBj0YgcRoqCVMAGEB4awXG6W3MvqpbZ1U4wwcL+FOhgH0oLgAD2OSpbe9wIBwRP/LJCU2FDyEKm2QkYFa1DyYiYJaFBMe9eQEHEIBEzB0EPQcJ94msY803pMfT5mMIT+KMo3SFKSbKOBNLwGXHtSuEEtQWyvHyaxLcKBwluvkTh32SkJ9q1HqU2RIl1qO8nBxFcnAJTDo5D0i/cOGmKQqxHSKLK0CSayegCpandK6svEDRK0iytMi9MK1Ku+Udu3EVD8JgzZ2wIrkMNWLjGHWfgwgA4DNa9zUqtjG2oIFidhjOQrWxbs4NnpU/KhNbbHXaeJzmFUb7GVHS9puSaW08PjNdG6jxaAMFbVwO2NeAVRQn/iJsXl1Yk9eBtupndGZ05zpJF6HUv7876acC4j/YDf6ErL2NmbA5aEBcStW2V6isMR4aGs2kJLn3vQydm2qd/kSDwmMRbB1xUV2Fpa48eaurQFq7zqtS1qKWbYoQErGJXGxAoi6V4rfkO9/dzVgtMSnwEuNJIIXvIscuOdWj+gucoqDzmMxGG01qAF1O3fhSRDHjfYV3lkXtBgNLCZ+hlsbJgba4bjBt8Uw9khg3KW1ZIIjFxWO8dvEp+O9RNeTJwJbVYp4C/o2QpY9VloDsJvkLGb2LHWloC7C1OQqM7izIpQjP6F0ZE9UBJXGtXLSNizmMlMTpfvYBz1444neVGKzZjaYc+NcXDqH9cgLO15OfYFkO2Pocn4OtCAg/wyat5wCrKh5wUObMozEUk7QzwE0pANNkY2M5QUZgddc2AkwSa+4y/Zh8qRH/baQ4nWOfpJfI1K8IzBLYq9zNi2pZw09Fo/4igS8BgAyC2eG9ZF8oqZ1+zhI5UD3OosCiPUvNntsYQ/on86Wqy6L9GKCfjraisrxaJJh6wFj+bLKZim2vRNJbfslV2XOh5SKTceZCkC8uEKnnn1R0HKO22HuSQi8Y1yfbyuQOApuxIdt8WVK3nuW/nbvozfZAKZFAtGcdt6dXX1w79zSLGTexJMrfk5uNLtiIy5so8LNcdIsnEDQjvXGxUpyc9Yiw3uOeCV+XHLaBFxJj+prbxOO6/+LzJvHMkdIzYdOqYzL3G3BDiEMOLixYfSZ6DvU7oBXfkURNEi4SbEE1aFu0Vr4l+sQE8ZhV501p58a7MxEJNbHnfRaDUoEsIHcLy7QpMocMWXYNvqaXt510n6AIBAnh97RjmzCl3AFPTO8Ym+ua8icwMiKD1fbOfHxyJ9l8LPBMuYtTy5M8erpnCdTTRCY3r6AN61Hxsa+Qw+uLb4O6KBmfYagXXfntA1XzB2tTkOsSwpatWeKlldnMmRv2ecIsW1pZ2+naE7Eux6CjQlCL8VjVeMTCIeg//MPum39cCWvIaxYIUnBaAx+dt/itNm8tfN7fodNf2LaBGNrit/+vrD/OttRrf/DPsKAyUgnjy0AQdvCT5Wnf0DBeGpycsNngPtHX/FQUi7EfMY1KAXIgOjQcmPiNvNmgSjTQdTCgbEBEuy2JtwHgnCDZKtngmKEf++igrJDDdlXR+1nAWvHUuYWE/4Wgy6YNE8lbjuYNFr2g9MEQkLID/qmI0MAGCQzcVHEc0X4hJQwcD4GchriaVB4hTdVgzLhhFjYhaV1dvxAaJ+AgWxDhn3nhV24geqghbuQIGCIhnCIUCX4C1wICipxf3EoQoCUh59Af89RM3wYiDv1aG84FAtDcqX3STQniILoA4k4hsBAOQJ2WoxYiRaVEZNHTXW4CysghZb4iYkE/3mG+AjOtYmDCIpX2GumGAp8t36o+IrrpH4Ud4ErVoqweIuXiIO4uIuolVh/AlJ3hyBEOIunyItwuFcB0AvfFkFvZozOOEsEMIJ1dg50Z37TWDFs+IztJ4ZrtQ0OAE3SeA6MNI0FJYvamEvDuINqwWz0Zgkvp4AddY40lY6WaBHR2AsfcIOy5nhlKI/b2GK49YioF2qOAiTmmEtq6I/n9lxJsnJmyIqEMIkFmYUK6SHPJYoTiWPs03DHVYEV+ZFo1SLJxk7K5kyZSEerqFcgaYKLKHHcQFbCgTuXkQGFuJI22Vs8YiOAcnscdpM+uUM1GUfUQQMn1g2ClpI/CWMjSf8MrXIQuXZn/RcyxqA2n0E3CoSUScmIWPla6EMRnzKAx/Ar1ZIb4pSVZtmNM6Ra7/IjInAiCYMzZxmXwVUJ5ddC+gEDQYhUXOGRzhYEzCGXV3aEh7NqAjNSCzgZcrRcKAmYjHmNqRIWcscRpJCXhWIs4tCYmClC8NiCy2Fh+zIPzJIdMVAYysInKXVCI8mXmXkOqiloKUiMOzKWJnMzh9BVLSgNbpZDr7SUnBeOqwkK1NCSOBVveMkQI6MDOgE2+8Mu0lGWvzlNWCmICgaXx5AC0VIlUGlXD2lmr/mcrnVgKJUwP3Ax3XMAWOKd6DlNeHgeosQIJwlQCJiexoeXrTb/DaoYjGPpPJ3ynuukg/IZeh7gm8A5DVBlF2FUWmKYkBW5dSaIkbdGC8nYFgy6YI+GDQcJi1JXhPq4a0cWS/axl10miQjyoI6FKbTXFtB2kydAj12YgtwwZGNRjbvJT8SCWidhOv9picA1MAZ1RvxpToQwJ58pcNZYkb7Ihw5HiiSaKkzYWADCXU50f8KpjesJggCCS/AWjGF2FBH5XzTmeSpqJUI4pQbXFvCmLtXILSnxo8w0If2Xnz7JkY3wl3F4ep5ypDVyE/4BH45FZdG5iz5xVFBYkwcgjYr2LdYDC3bxeIGBTV9IiTcZoVzCoyoIVRfqNskxhznajQXBotYn/6ChoGAEYUwSQqmbulYSaYHgAXPDOXNBcKCpFZ875YlbepYf06JL2moWQw89JKu6lJKUk6I2GVcMKCidwI2TEF0lQiOklXF+eKo1R5P4eBXJgHhGkx8w5qv+aKqc56m/MGTo0WOKCa0c+JBuojKMRq6jtYesd6HACTUbOl5/KojdKZ0rY1DeNVX3EZfcqo7DgQKbGVW9Vq/jZYXO6K0zeK9qqAFzSHMTqq44cgLzChATy3XAZpQfUB8SF49r5Z8cBwTpCrHXpgnewD77EbA+KLJjAlpMUokbCZsqSyl0iiPZaHjJ9WZhQpmOmaycinvuym+keiGs4QKS1a03Fntlwv+tPPqwiqWgYEewtdE/9cdd7pJ/9fkubrGx+zhb5EpcmcEhU6ucI0SiWDdyDROzO5WPeDEDqKB/IVAz5ZerW2sh65MJmLZWV7Kk1hV4gRavAiGpoYBBudl9a4ZjDmCqfntTcWt+r+qPtSCsxwUSEeW2O0A5ZJhvUZO3hym3i2ewtFazQ9GSZPV13Tc4ixuPKTiM0qAN/Ye2lQKq/AC2uQCnpatEf2FuvOe6ieJ/MXGrZ5sJZWeCFau7nDS4KmkDSlipxLt8KKtiftGv9YUpgOuKWru8/RkVPfmz2SOveHpmVvu71ntQsGuBmppOHBW+ngS5H6qzCOsSfApbhBaUmID/rGCJvp90EaB7FkTQpJdVpVbRvPabSMrSUDtLXg/xXCXgv00XwIm0en6JIArMF55bXQQ8kPfKwAfFAiywaVkRtJHCt5AWvBjMcB0BTgjwDjfxrIvkKfI7wi7MiZRam9MBwBhXWo94kOX7wu12HtDLgbalw0D8NvsVuUFcxN5nxEgcM8rCtEncxOACtU5sgC2suFFcxQbTw1acxVq8xY7Qvo2lATTMxfO4kJXxA7Lbi2JcYOorFCJAHKm6eGn8XzlMeB+QEdobx3g8Gs+Qx3zcx378x4AcyII8yIQcQmxayIicyIq8yIzcyI78yJAcyZI8yZRcyZZ8yY3poJi8yZzc/8me/MmgHMqiPMqkXMqmfMqonMqqvMqs3Mqu/MqwHMuyPMu0XMu2fMu4nMu6vMu83Mu+/MvAHMzCPMzEXMzGfMzInMzKvMzM3MzO/MzQHM3SPM3UXM3WfM3YnM3avM3c3M3e/M3gHM7iPM7kXM7mfM7onM7qvM7s3M7u/M7wHM/y/DABUM/1zLnzLLLocwRL0M9BkANQnM/e+S1D0ARFEAEIndAJzQRO4GB3LNAreRkBkAFOIAhGgARLEEtMw0FDsARMgNBMEDrDC9G8GABLYAQRgARDUE323ABH8NFFQKskzZjv9tFIUIACUM9D8NFNMNO/uRYAYASOswn1vAQRUP8EAe3TFRkARxABTLCdjlDPOYDSranUz8jUKS0KE33QVW3VuxgAOZDVnHUCRlAED+3VlljPZZ0LEy3WaG2TAdAEEdDVjILVk/QPZ/3WeRfWS2AZbBMASGAEUK3XoJiMRaCMNRABfe0PI03YfgbWEXDXulDPgY3Xjm18cW0EGqdhBBXWkn3ZJR0ARtDTnlCD9VwESAAKSQ3a9RcAPxABQ00Ja+yOyRgBl8vZIkgN08vawmvUUzrbBDUEsE1Nx0amvN3aSHDYx0SSiv1mx0bXhRDbJDmy8ysKn13Ax42SAcAESLDbubAMDGAEDW2DxLAESBaDJmTcrGgJ153dDfwARdD/BOoNAEKgBE8gBI6A34WgBIKgBP5t39xdUa+mO2QW22c935rh3tM0BDkQ3wx61/gtBELg2vpN35QA4EjwBPwNCtI9CsPb3swF4rfgsQoeRUPA4A4+CZIt4UpgActQ4QCw4ZCA4Rqu2jKdCUntXAYedNgNqdfFjyVORyjeBKC34vUNAxGQAzEg4ZUA4E1Q4xwOQynbHJMEIDc+SElIvUG+QyfQ5RLLBEzg3V4uCPrN4i+A0ErO5JNg3+L9BOtNxN5LpD9OhVN+zxrn41vuQ5St3JRQ5vUtDGiusxgRTxHAA2/MFRIL5xxrtoGx2LIE1SQuC3Se500IAHNtCRH+54IQ/wFGkAM68MZY/bAeBd1zvICmjq+P0Ne8uQk3TumbBNki/ghmXgicDh7hloyafbVRjduqXb1+zTar7WGu/qsBgNqYMOu0Ptx1PdoZuerCktfDXkK1DbUx4N+DhNJFQHWurezRLohtXdHuCKJlHdkTTXPbzefdHoj1LNdTes+QvQwpDdYgSgvCHevp3oVtTdrNsWQrfQIHjRFkddpMcO+VeM/cPuBt0wArbdROMNGk6ARJTrEEz3GUfel1nRlX+gAngNDwJgBB0NwSP/EVN9FGINgcU88j1zZO4AQNoFZr4daW3eMiD2ltjdRhZufJGBLlnnzCPfAw0eEzT2v1XAMo7XOJEYrzWNFDJu3UMRHsQW9lR58BHw3uGqFhOvUASBAB+v70n1jPEG8Esf4+J1DRkc31sCjVli7emWXnbVHQli7fZo+LOp31nI4ETnAE0hcES+AEqR3UTgDdcX+FKH8EBq3QhcDQQB/4oT30h/oA3q34CxYIACH5BAUEAAAALG4AngBSA70BhQAAAP////z9/QEBAissLNrb3CIjI/b39zQ0NBkZGWxsbIWFhbq7u+/w8OPj41paW9HR0RdvylJSUpOUlcjJyXV1dQ4OEEJCQjs7O6ytrklJSXt7fGNjZMHBwenp6bS0tKSlpZ6enj2M1MLR0nmn1afE3KrT8R+W9Fy+/D94tr/q+0mp91yPxpS63UqEeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/QIBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y0W6uuCweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYJSX4OGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqN7haSnqKmqq6ytdqYALrCutLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8MwO8fT19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDbSoeSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJ8lXLlzBjypxJU+MsLQ1q6tzJs6fP/59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2od8+Xm1q9gw4odS7as2bNo06pdyxaf17Zw41J5K7eu3bt48+rdy7ev37+AAwseTJgi3cKIEytezLix48eQI0ueTLkyuMOWM2vezLmz58+geXkITbq06dOoU6tezbq165iYX8ueTbu27du4c+vezRtoht7AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfTx5y7PLoE53Huj69+/fw48ufT7++/fv48+vfz7+///8ABijggASe1l6BCCao4IIMNjjECA5GKOGEFFZo4YWTHIjhhhx26P/hhyCGKOKII2pI4okopqjiiueMxuKLMMYo44z6mEjjjTjmqOOOPPbo44w2/ijkkEQWaeSRSCaZTJBKNunkk1BGKeWUVFZp5ZVYZqnlllx2uRmTXoYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKmhjEA5q6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqstsoNA67GKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqv/7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPHFGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012xzMjndrPPO+YDJ889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeGPpc9589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst+7667DHLvvstNdu//vtuN8sgAMdgCBECBlA4GLuT4zm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5c+rX48lPfv38OPLZ47a/fz7fbDj389ffxT7/G0DYIAE8uEfEwMWqOCCDDbooEEJPijhhBRWaOGFGIoUYYYcduj/4YcghijiiCSWaOKJKKao4lQrFrVhizCCpdyLMdZo44045oigjjz2SA2NPgYJz3GzHCjkkUgmqWSFRi7p5JNQRinllFSiBGSVWGap5TVX6tTklo0Q+dgkXYJp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABipocV8OauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIb6RJmilmrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0GoY7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar/+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZnFsr112DjSWrYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbv/77bjnrvvuvPfu++/ABy/88MQXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99mybkAEEBzTQwAEWZMC9FRkksAADAbTvfvsIPIDB+VBAQAD8FWiAgQUdeNABBgqgAPsYcAEJFIB+SfDAAgBggAQYEAkCiOAHHtC+BCDwCAkIAAM0IIAnCCADFESA+S4ohPtV4IBSEIAFDBCAA5AQAC20wgAKQIEAKACBCAiAFgRQARuebwE63AIPY6g9BxBRiEAcQfY64EMwhCAABMCeACZgADEI4ABHpB4W52dFKlpviggoAwSyGD0maqAMYKxeBIJIhgFkUALTE4ABomiGDJD/0XlwvKEZBmCAB0xvjB04Aw3DKL0GBACOe4wAA+hAgAn4sQwRQAIhx/BIozlgkVEoAQtaIIVLzqGKRfACEkBJhAdM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8+rdy7ev37+AAwseTLjwMpmGE9dFrLix48eQI9cJyViy5cuYM8erLIaz5s/uyIIeTbq06dOoU6tezbo1SdGuY4+VLcUz7dsRmeLezbu37z+6mwi0/bs4POJUYBtfnlC3TOXMoy8LboQc9S7Ss2sLfk/mdeHaw4sfXxwxcvLovXnunr49N+Tn3cufT/8xdCURnjuxGL++f1D3JRHBd/8VKI1K/YERoIEMfrIgAJydp1+DFKqSYIUY4nJhhswQ+P/bhhyGKOKIVnkYUxkmkqjiiiwSld+EILYIoIw05hIjeTcWkWONPLoBYopE7NjjkIesAyRKRCY52RVCKukkKUc+KWUbIDY55ZWDWInlloLkV4WWXIZ5hpcK7iJmIGCeqeaabLbp5ptwxinnnHTWieE1ado5kGgm5FmPcg92pqc/frJE5qCIjpPooow2KqijdxVqFAmSQnrKemZUaumTfmr6jqebOhNodU1F+Q+oaIwaajOmIrkqeqr6F+urDKJKK0EXmndrhbaeuKs2vYp1qK9N/WpssMbSiGyQycoyLETLNistHq1Oay2z1xoXrR7betWto99SWWa2yMxK7rnoptv/TbiMsIuNu6aZq5W86u5Gb70KzVotXPDi629jlPZzLxID/wtnvwYnrPDCAjPsMGkFP3wmwhJXbLFvEV8syL4ad+zxxyCHLCfFIsta8sko85ryyixnR3JNEb/c8mUcz2zzzTirGzBmMktWc85M/Az00EQXbfTRSCet9NJMN+3001BHDXXPUlc9BNVWTyVB1h9jzfXXYCPkddifCU322WinrfbabLft9tvTwS23LRnPbffdeOet99589/2Q2XQA7vfghBdu+OGIJ664ZGMv7vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst86lCYK7LvvstNdu//vtuOeu++689+7778AHL/zwxBdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb/756Kev/vrst+/++/DHL//89Ndv//3456///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgRCMoAQnSMEKWvCCGMygBjfIwQ568IMgDKEIR0jCEprwhChMoQpXyMIWuvCFMIyhDGdIwxra8IY4zKEOd8jDHsqlbj4MomGAKMQiGvGISEyiEpfI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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![data-filter-extension.gif](attachment:e4426b37-c5a4-43ad-b3b7-8566f94c4be9.gif)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the `ScatterplotLayer` example, this example will use data from Ookla's Speed Test application and [shared publicly in the AWS Open Data Registry](https://registry.opendata.aws/speedtest-global-performance/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import pandas as pd\n", + "import shapely\n", + "from ipywidgets import FloatRangeSlider, jsdlink\n", + "from palettable.colorbrewer.diverging import BrBG_10\n", + "\n", + "from lonboard import Map, ScatterplotLayer\n", + "from lonboard.colormap import apply_continuous_cmap\n", + "from lonboard.controls import MultiRangeSlider\n", + "from lonboard.layer_extension import DataFilterExtension" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetch data\n", + "\n", + "We use the same data as the `ScatterplotLayer` example except that here we download extra columns from the dataset to use for filtering.\n", + "\n", + "Columns:\n", + "\n", + "- `avg_d_kbps`: the average download speed for that data point in kbps\n", + "- `avg_u_kbps`: the average upload speed for that data point in kbps\n", + "- `avg_lat_ms`: the average latency for that data point in milliseconds\n", + "- `devices`: the number of unique devices contributing tests in the tile.\n", + "- `tile`: the WKT string representing a given zoom-16 Web Mercator tile\n", + "\n", + "We cache the downloaded file locally to `data-filter-extension.parquet` so that the second time running this notebook will be faster." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "url = \"https://ookla-open-data.s3.us-west-2.amazonaws.com/parquet/performance/type=mobile/year=2019/quarter=1/2019-01-01_performance_mobile_tiles.parquet\"\n", + "local_path = Path(\"data-filter-extension.parquet\")\n", + "if local_path.exists():\n", + " gdf = gpd.read_parquet(local_path)\n", + "else:\n", + " columns = [\"avg_d_kbps\", \"avg_u_kbps\", \"avg_lat_ms\", \"devices\", \"tile\"]\n", + " df = pd.read_parquet(url, columns=columns)\n", + "\n", + " tile_geometries = shapely.from_wkt(df[\"tile\"])\n", + " tile_centroids = shapely.centroid(tile_geometries)\n", + " non_geom_columns = [col for col in columns if col != \"tile\"]\n", + " gdf = gpd.GeoDataFrame(df[non_geom_columns], geometry=tile_centroids)\n", + " gdf.to_parquet(local_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking a quick look at this data, we see that we have 3.2 million records." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
avg_d_kbpsavg_u_kbpsavg_lat_msdevicesgeometry
059837886681POINT (-160.01862 70.63722)
137485841782POINT (-160.04059 70.63357)
233646200782POINT (-160.04059 70.63175)
323812328861POINT (-160.03510 70.63357)
430475356751POINT (-160.03510 70.63175)
..................
3231240195283200681POINT (169.81842 -46.29571)
32312411569310359561POINT (169.81293 -46.30710)
3231242267479674582POINT (169.66461 -46.42082)
32312436799513564631POINT (169.65912 -46.45110)
323124412301798551POINT (168.85162 -46.56075)
\n", + "

3231245 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " avg_d_kbps avg_u_kbps avg_lat_ms devices \\\n", + "0 5983 7886 68 1 \n", + "1 3748 5841 78 2 \n", + "2 3364 6200 78 2 \n", + "3 2381 2328 86 1 \n", + "4 3047 5356 75 1 \n", + "... ... ... ... ... \n", + "3231240 19528 3200 68 1 \n", + "3231241 15693 10359 56 1 \n", + "3231242 26747 9674 58 2 \n", + "3231243 67995 13564 63 1 \n", + "3231244 1230 1798 55 1 \n", + "\n", + " geometry \n", + "0 POINT (-160.01862 70.63722) \n", + "1 POINT (-160.04059 70.63357) \n", + "2 POINT (-160.04059 70.63175) \n", + "3 POINT (-160.03510 70.63357) \n", + "4 POINT (-160.03510 70.63175) \n", + "... ... \n", + "3231240 POINT (169.81842 -46.29571) \n", + "3231241 POINT (169.81293 -46.30710) \n", + "3231242 POINT (169.66461 -46.42082) \n", + "3231243 POINT (169.65912 -46.45110) \n", + "3231244 POINT (168.85162 -46.56075) \n", + "\n", + "[3231245 rows x 5 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we want to cross-filter on three attributes at once, we create a `DataFilterExtension` instance with `filter_size=3`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "filter_extension = DataFilterExtension(filter_size=3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to the `ScatterplotLayer` example notebook, we create a normalized download speed to use for a per-point color and radius." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "min_bound = 5000\n", + "max_bound = 50000\n", + "normalized_download_speed = (gdf[\"avg_d_kbps\"] - min_bound) / (max_bound - min_bound)\n", + "fill_color = apply_continuous_cmap(normalized_download_speed, BrBG_10)\n", + "radius = normalized_download_speed * 200" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we prepare the columns that we want to filter on. In this case, we'll filter on the download speed, upload speed, and latency values. These need to be passed in as a single two-dimensional numpy array, so we use [`numpy.column_stack`](https://numpy.org/doc/stable/reference/generated/numpy.column_stack.html). Only numeric arrays can be used for GPU-based filtering.\n", + "\n", + "We also define initial filter ranges for each of these columns." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "filter_values = np.column_stack(\n", + " [gdf[\"avg_d_kbps\"], gdf[\"avg_u_kbps\"], gdf[\"avg_lat_ms\"]]\n", + ")\n", + "initial_filter_range = [\n", + " [10_000, 50_000],\n", + " [1000, 10_000],\n", + " [0, 100],\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we create a `ScatterplotLayer` with our desired attributes. Keep in mind that you must pass the `DataFilterExtension` instance to the `extensions` parameter in order to activate its functionality on the layer." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4320d596afb14eafa6ff73e88eb758a3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Map(layers=[ScatterplotLayer(extensions=[DataFilterExtension(filter_size=3)], filter_range=[[10000.0, 50000.0]…" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layer = ScatterplotLayer.from_geopandas(\n", + " gdf,\n", + " extensions=[filter_extension],\n", + " get_fill_color=fill_color,\n", + " get_radius=radius,\n", + " get_filter_value=filter_values,\n", + " filter_range=initial_filter_range,\n", + " radius_units=\"meters\",\n", + " radius_min_pixels=0.1,\n", + ")\n", + "m = Map(layer)\n", + "m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Only the points that are within all of our initial filter ranges are shown, but we'd like something more interactive. Let's connect sliders to the map.\n", + "\n", + "Here we create a separate slider for each attribute and then connect them using a `MultiRangeSlider`. This _defines_ the slider element but it won't be connected to the map until we use `ipywidgets.jsdlink` later." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4c69d443c93740dca8ba209685237fab", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "MultiRangeSlider(children=(FloatRangeSlider(value=(10000.0, 50000.0), description='Download: ', max=70000.0), …" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "download_slider = FloatRangeSlider(\n", + " value=initial_filter_range[0],\n", + " min=0,\n", + " max=70_000,\n", + " step=0.1,\n", + " description=\"Download: \",\n", + ")\n", + "upload_slider = FloatRangeSlider(\n", + " value=initial_filter_range[1],\n", + " min=0,\n", + " max=50_000,\n", + " step=1,\n", + " description=\"Upload: \",\n", + ")\n", + "latency_slider = FloatRangeSlider(\n", + " value=initial_filter_range[2],\n", + " min=0,\n", + " max=500,\n", + " step=1,\n", + " description=\"Latency: \",\n", + ")\n", + "multi_slider = MultiRangeSlider([download_slider, upload_slider, latency_slider])\n", + "multi_slider" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to propagate the changes in our sliders to the `ScatterplotLayer` instance, we use `jsdlink`. See [Linking Widgets](https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Events.html#linking-widgets) in the ipywidgets documentation for more info." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "_ = jsdlink((multi_slider, \"value\"), (layer, \"filter_range\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "lonboard", + "language": "python", + "name": "lonboard" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "04218391fad145588dafd221d7165505": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "076e4a659ccf4a03b7793a50b9217d51": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "09cb5c9f1fce42ada2fe6edb2468ab90": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Download: ", + "layout": "IPY_MODEL_0ab755bf3f434c93a3188e8f6b8fa75c", + "max": 70000, + "step": 0.1, + "style": "IPY_MODEL_746b54189dcc4542bd253b6d37af5e76", + "value": [ + 10000, + 50000 + ] + } + }, + "0ab755bf3f434c93a3188e8f6b8fa75c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "0bdf00bb5d3c4631b940a45d32c4628a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_9808d05ed63b4b40ba9f2ca7a03ea368", + "IPY_MODEL_f691bbd4d594470c95ba19aa98a622c7", + "IPY_MODEL_3c79b4994cb64414af30ca882ff5a7e2" + ], + "layout": "IPY_MODEL_c5ec49b2b8ed4ad48aba32d8b504bda3", + "value": [ + [ + 10000, + 50000 + ], + [ + 1000, + 10000 + ], + [ + 0, + 100 + ] + ] + } + }, + "0cfded5a2e3547eb9bf6027a144497cd": { + "model_module": "anywidget", + "model_module_version": "0.9.0", + "model_name": "AnyModel", + "state": { + "_anywidget_id": "lonboard._map.Map", + "_css": ".lonboard-tooltip{font-family:var(--jp-ui-font-family);font-size:var(--jp-ui-font-size1)}.lonboard-tooltip table{border-collapse:collapse}.lonboard-tooltip table tr:nth-child(odd){background-color:#fff}.lonboard-tooltip table tr:nth-child(2n){background-color:#f1f1f1}.lonboard-tooltip td{border:1px solid rgb(204,204,204);padding:5px}.lonboard-tooltip td:first-child{font-weight:450}\n", + "_esm": "var DK=Object.create;var IC=Object.defineProperty;var OK=Object.getOwnPropertyDescriptor;var BK=Object.getOwnPropertyNames;var FK=Object.getPrototypeOf,zK=Object.prototype.hasOwnProperty;var Br=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),dA=(e,t)=>{for(var r in t)IC(e,r,{get:t[r],enumerable:!0})},NK=(e,t,r,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let s of BK(t))!zK.call(e,s)&&s!==r&&IC(e,s,{get:()=>t[s],enumerable:!(i=OK(t,s))||i.enumerable});return e};var ki=(e,t,r)=>(r=e!=null?DK(FK(e)):{},NK(t||!e||!e.__esModule?IC(r,\"default\",{value:e,enumerable:!0}):r,e));var e5=Br(Ri=>{\"use strict\";var Zx=Symbol.for(\"react.element\"),UK=Symbol.for(\"react.portal\"),VK=Symbol.for(\"react.fragment\"),jK=Symbol.for(\"react.strict_mode\"),GK=Symbol.for(\"react.profiler\"),WK=Symbol.for(\"react.provider\"),HK=Symbol.for(\"react.context\"),qK=Symbol.for(\"react.forward_ref\"),ZK=Symbol.for(\"react.suspense\"),YK=Symbol.for(\"react.memo\"),QK=Symbol.for(\"react.lazy\"),HF=Symbol.iterator;function $K(e){return e===null||typeof e!=\"object\"?null:(e=HF&&e[HF]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var YF={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},QF=Object.assign,$F={};function b_(e,t,r){this.props=e,this.context=t,this.refs=$F,this.updater=r||YF}b_.prototype.isReactComponent={};b_.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};b_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function XF(){}XF.prototype=b_.prototype;function LC(e,t,r){this.props=e,this.context=t,this.refs=$F,this.updater=r||YF}var kC=LC.prototype=new XF;kC.constructor=LC;QF(kC,b_.prototype);kC.isPureReactComponent=!0;var qF=Array.isArray,KF=Object.prototype.hasOwnProperty,RC={current:null},JF={key:!0,ref:!0,__self:!0,__source:!0};function t5(e,t,r){var i,s={},n=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(n=\"\"+t.key),t)KF.call(t,i)&&!JF.hasOwnProperty(i)&&(s[i]=t[i]);var c=arguments.length-2;if(c===1)s.children=r;else if(1{\"use strict\";r5.exports=e5()});var f5=Br(Bn=>{\"use strict\";function zC(e,t){var r=e.length;e.push(t);t:for(;0>>1,s=e[i];if(0>>1;iiT(c,r))fiT(_,c)?(e[i]=_,e[f]=r,i=f):(e[i]=c,e[o]=r,i=o);else if(fiT(_,r))e[i]=_,e[f]=r,i=f;else break t}}return t}function iT(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance==\"object\"&&typeof performance.now==\"function\"?(i5=performance,Bn.unstable_now=function(){return i5.now()}):(OC=Date,n5=OC.now(),Bn.unstable_now=function(){return OC.now()-n5});var i5,OC,n5,Ef=[],pA=[],eJ=1,vu=null,Ha=3,oT=!1,d0=!1,Qx=!1,a5=typeof setTimeout==\"function\"?setTimeout:null,l5=typeof clearTimeout==\"function\"?clearTimeout:null,s5=typeof setImmediate<\"u\"?setImmediate:null;typeof navigator<\"u\"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function NC(e){for(var t=wh(pA);t!==null;){if(t.callback===null)sT(pA);else if(t.startTime<=e)sT(pA),t.sortIndex=t.expirationTime,zC(Ef,t);else break;t=wh(pA)}}function UC(e){if(Qx=!1,NC(e),!d0)if(wh(Ef)!==null)d0=!0,jC(VC);else{var t=wh(pA);t!==null&&GC(UC,t.startTime-e)}}function VC(e,t){d0=!1,Qx&&(Qx=!1,l5($x),$x=-1),oT=!0;var r=Ha;try{for(NC(t),vu=wh(Ef);vu!==null&&(!(vu.expirationTime>t)||e&&!h5());){var i=vu.callback;if(typeof i==\"function\"){vu.callback=null,Ha=vu.priorityLevel;var s=i(vu.expirationTime<=t);t=Bn.unstable_now(),typeof s==\"function\"?vu.callback=s:vu===wh(Ef)&&sT(Ef),NC(t)}else sT(Ef);vu=wh(Ef)}if(vu!==null)var n=!0;else{var o=wh(pA);o!==null&&GC(UC,o.startTime-t),n=!1}return n}finally{vu=null,Ha=r,oT=!1}}var aT=!1,nT=null,$x=-1,c5=5,u5=-1;function h5(){return!(Bn.unstable_now()-u5e||125i?(e.sortIndex=r,zC(pA,e),wh(Ef)===null&&e===wh(pA)&&(Qx?(l5($x),$x=-1):Qx=!0,GC(UC,r-i))):(e.sortIndex=s,zC(Ef,e),d0||oT||(d0=!0,jC(VC))),e};Bn.unstable_shouldYield=h5;Bn.unstable_wrapCallback=function(e){var t=Ha;return function(){var r=Ha;Ha=t;try{return e.apply(this,arguments)}finally{Ha=r}}}});var p5=Br(($xt,d5)=>{\"use strict\";d5.exports=f5()});var v8=Br(Wc=>{\"use strict\";var xz=Ji(),jc=p5();function Ee(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=1;r\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),fL=Object.prototype.hasOwnProperty,rJ=/^[: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]*$/,A5={},m5={};function iJ(e){return fL.call(m5,e)?!0:fL.call(A5,e)?!1:rJ.test(e)?m5[e]=!0:(A5[e]=!0,!1)}function nJ(e,t,r,i){if(r!==null&&r.type===0)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return i?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!==\"data-\"&&e!==\"aria-\");default:return!1}}function sJ(e,t,r,i){if(t===null||typeof t>\"u\"||nJ(e,t,r,i))return!0;if(i)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function xl(e,t,r,i,s,n,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=s,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=n,this.removeEmptyString=o}var ga={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){ga[e]=new xl(e,0,!1,e,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];ga[t]=new xl(t,1,!1,e[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ga[e]=new xl(e,2,!1,e.toLowerCase(),null,!1,!1)});[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ga[e]=new xl(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){ga[e]=new xl(e,3,!1,e.toLowerCase(),null,!1,!1)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ga[e]=new xl(e,3,!0,e,null,!1,!1)});[\"capture\",\"download\"].forEach(function(e){ga[e]=new xl(e,4,!1,e,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ga[e]=new xl(e,6,!1,e,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(e){ga[e]=new xl(e,5,!1,e.toLowerCase(),null,!1,!1)});var nk=/[\\-:]([a-z])/g;function sk(e){return e[1].toUpperCase()}\"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(nk,sk);ga[t]=new xl(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(nk,sk);ga[t]=new xl(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(nk,sk);ga[t]=new xl(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ga[e]=new xl(e,1,!1,e.toLowerCase(),null,!1,!1)});ga.xlinkHref=new xl(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){ga[e]=new xl(e,1,!1,e.toLowerCase(),null,!0,!0)});function ok(e,t,r,i){var s=ga.hasOwnProperty(t)?ga[t]:null;(s!==null?s.type!==0:i||!(2c||s[o]!==n[c]){var f=`\n`+s[o].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),f}while(1<=o&&0<=c);break}}}finally{HC=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:\"\")?s1(e):\"\"}function oJ(e){switch(e.tag){case 5:return s1(e.type);case 16:return s1(\"Lazy\");case 13:return s1(\"Suspense\");case 19:return s1(\"SuspenseList\");case 0:case 2:case 15:return e=qC(e.type,!1),e;case 11:return e=qC(e.type.render,!1),e;case 1:return e=qC(e.type,!0),e;default:return\"\"}}function mL(e){if(e==null)return null;if(typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case M_:return\"Fragment\";case T_:return\"Portal\";case dL:return\"Profiler\";case ak:return\"StrictMode\";case pL:return\"Suspense\";case AL:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case Sz:return(e.displayName||\"Context\")+\".Consumer\";case wz:return(e._context.displayName||\"Context\")+\".Provider\";case lk:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||\"\",e=e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case ck:return t=e.displayName||null,t!==null?t:mL(e.type)||\"Memo\";case mA:t=e._payload,e=e._init;try{return mL(e(t))}catch{}}return null}function aJ(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=t.render,e=e.displayName||e.name||\"\",t.displayName||(e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return mL(t);case 8:return t===ak?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==\"function\")return t.displayName||t.name||null;if(typeof t==\"string\")return t}return null}function CA(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function Mz(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function lJ(e){var t=Mz(e)?\"checked\":\"value\",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof r<\"u\"&&typeof r.get==\"function\"&&typeof r.set==\"function\"){var s=r.get,n=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){i=\"\"+o,n.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return i},setValue:function(o){i=\"\"+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function cT(e){e._valueTracker||(e._valueTracker=lJ(e))}function Ez(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),i=\"\";return e&&(i=Mz(e)?e.checked?\"true\":\"false\":e.value),e=i,e!==r?(t.setValue(e),!0):!1}function FT(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}function gL(e,t){var r=t.checked;return ps({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function _5(e,t){var r=t.defaultValue==null?\"\":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;r=CA(t.value!=null?t.value:r),e._wrapperState={initialChecked:i,initialValue:r,controlled:t.type===\"checkbox\"||t.type===\"radio\"?t.checked!=null:t.value!=null}}function Pz(e,t){t=t.checked,t!=null&&ok(e,\"checked\",t,!1)}function _L(e,t){Pz(e,t);var r=CA(t.value),i=t.type;if(r!=null)i===\"number\"?(r===0&&e.value===\"\"||e.value!=r)&&(e.value=\"\"+r):e.value!==\"\"+r&&(e.value=\"\"+r);else if(i===\"submit\"||i===\"reset\"){e.removeAttribute(\"value\");return}t.hasOwnProperty(\"value\")?yL(e,t.type,r):t.hasOwnProperty(\"defaultValue\")&&yL(e,t.type,CA(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function y5(e,t,r){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var i=t.type;if(!(i!==\"submit\"&&i!==\"reset\"||t.value!==void 0&&t.value!==null))return;t=\"\"+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==\"\"&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,r!==\"\"&&(e.name=r)}function yL(e,t,r){(t!==\"number\"||FT(e.ownerDocument)!==e)&&(r==null?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+r&&(e.defaultValue=\"\"+r))}var o1=Array.isArray;function F_(e,t,r,i){if(e=e.options,t){t={};for(var s=0;s\"+t.valueOf().toString()+\"\",t=uT.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function y1(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var c1={animationIterationCount:!0,aspectRatio:!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},cJ=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(c1).forEach(function(e){cJ.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),c1[t]=c1[e]})});function kz(e,t,r){return t==null||typeof t==\"boolean\"||t===\"\"?\"\":r||typeof t!=\"number\"||t===0||c1.hasOwnProperty(e)&&c1[e]?(\"\"+t).trim():t+\"px\"}function Rz(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var i=r.indexOf(\"--\")===0,s=kz(r,t[r],i);r===\"float\"&&(r=\"cssFloat\"),i?e.setProperty(r,s):e[r]=s}}var uJ=ps({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 bL(e,t){if(t){if(uJ[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ee(60));if(typeof t.dangerouslySetInnerHTML!=\"object\"||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(Ee(61))}if(t.style!=null&&typeof t.style!=\"object\")throw Error(Ee(62))}}function wL(e,t){if(e.indexOf(\"-\")===-1)return typeof t.is==\"string\";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}}var SL=null;function uk(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var TL=null,z_=null,N_=null;function b5(e){if(e=F1(e)){if(typeof TL!=\"function\")throw Error(Ee(280));var t=e.stateNode;t&&(t=hM(t),TL(e.stateNode,e.type,t))}}function Dz(e){z_?N_?N_.push(e):N_=[e]:z_=e}function Oz(){if(z_){var e=z_,t=N_;if(N_=z_=null,b5(e),t)for(e=0;e>>=0,e===0?32:31-(xJ(e)/bJ|0)|0}var hT=64,fT=4194304;function a1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function VT(e,t){var r=e.pendingLanes;if(r===0)return 0;var i=0,s=e.suspendedLanes,n=e.pingedLanes,o=r&268435455;if(o!==0){var c=o&~s;c!==0?i=a1(c):(n&=o,n!==0&&(i=a1(n)))}else o=r&~s,o!==0?i=a1(o):n!==0&&(i=a1(n));if(i===0)return 0;if(t!==0&&t!==i&&!(t&s)&&(s=i&-i,n=t&-t,s>=n||s===16&&(n&4194240)!==0))return t;if(i&4&&(i|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0r;r++)t.push(e);return t}function O1(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ph(t),e[t]=r}function MJ(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=h1),L5=\" \",k5=!1;function eN(e,t){switch(e){case\"keyup\":return ttt.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function rN(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var E_=!1;function rtt(e,t){switch(e){case\"compositionend\":return rN(t);case\"keypress\":return t.which!==32?null:(k5=!0,L5);case\"textInput\":return e=t.data,e===L5&&k5?null:e;default:return null}}function itt(e,t){if(E_)return e===\"compositionend\"||!_k&&eN(e,t)?(e=Jz(),PT=Ak=vA=null,E_=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=i}t:{for(;r;){if(r.nextSibling){r=r.nextSibling;break t}r=r.parentNode}r=void 0}r=O5(r)}}function oN(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?oN(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function aN(){for(var e=window,t=FT();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href==\"string\"}catch{r=!1}if(r)e=t.contentWindow;else break;t=FT(e.document)}return t}function yk(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}function ftt(e){var t=aN(),r=e.focusedElem,i=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&oN(r.ownerDocument.documentElement,r)){if(i!==null&&yk(r)){if(t=i.start,e=i.end,e===void 0&&(e=t),\"selectionStart\"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=r.textContent.length,n=Math.min(i.start,s);i=i.end===void 0?n:Math.min(i.end,s),!e.extend&&n>i&&(s=i,i=n,n=s),s=B5(r,n);var o=B5(r,i);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),n>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus==\"function\"&&r.focus(),r=0;r=document.documentMode,P_=null,LL=null,d1=null,kL=!1;function F5(e,t,r){var i=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;kL||P_==null||P_!==FT(i)||(i=P_,\"selectionStart\"in i&&yk(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),d1&&T1(d1,i)||(d1=i,i=WT(LL,\"onSelect\"),0L_||(e.current=zL[L_],zL[L_]=null,L_--)}function Fn(e,t){L_++,zL[L_]=e.current,e.current=t}var LA={},Qa=RA(LA),Yl=RA(!1),x0=LA;function W_(e,t){var r=e.type.contextTypes;if(!r)return LA;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var s={},n;for(n in r)s[n]=t[n];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Ql(e){return e=e.childContextTypes,e!=null}function qT(){Hn(Yl),Hn(Qa)}function q5(e,t,r){if(Qa.current!==LA)throw Error(Ee(168));Fn(Qa,t),Fn(Yl,r)}function mN(e,t,r){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=\"function\")return r;i=i.getChildContext();for(var s in i)if(!(s in t))throw Error(Ee(108,aJ(e)||\"Unknown\",s));return ps({},r,i)}function ZT(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||LA,x0=Qa.current,Fn(Qa,e),Fn(Yl,Yl.current),!0}function Z5(e,t,r){var i=e.stateNode;if(!i)throw Error(Ee(169));r?(e=mN(e,t,x0),i.__reactInternalMemoizedMergedChildContext=e,Hn(Yl),Hn(Qa),Fn(Qa,e)):Hn(Yl),Fn(Yl,r)}var jd=null,fM=!1,iL=!1;function gN(e){jd===null?jd=[e]:jd.push(e)}function btt(e){fM=!0,gN(e)}function DA(){if(!iL&&jd!==null){iL=!0;var e=0,t=mn;try{var r=jd;for(mn=1;e>=o,s-=o,Gd=1<<32-Ph(t)+s|r<Zt?(le=Kt,Kt=null):le=Kt.sibling;var ue=R($,Kt,tt[Zt],ut);if(ue===null){Kt===null&&(Kt=le);break}e&&Kt&&ue.alternate===null&&t($,Kt),K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue,Kt=le}if(Zt===tt.length)return r($,Kt),es&&p0($,Zt),Pt;if(Kt===null){for(;ZtZt?(le=Kt,Kt=null):le=Kt.sibling;var Ge=R($,Kt,ue.value,ut);if(Ge===null){Kt===null&&(Kt=le);break}e&&Kt&&Ge.alternate===null&&t($,Kt),K=n(Ge,K,Zt),Ot===null?Pt=Ge:Ot.sibling=Ge,Ot=Ge,Kt=le}if(ue.done)return r($,Kt),es&&p0($,Zt),Pt;if(Kt===null){for(;!ue.done;Zt++,ue=tt.next())ue=C($,ue.value,ut),ue!==null&&(K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue);return es&&p0($,Zt),Pt}for(Kt=i($,Kt);!ue.done;Zt++,ue=tt.next())ue=N(Kt,$,Zt,ue.value,ut),ue!==null&&(e&&ue.alternate!==null&&Kt.delete(ue.key===null?Zt:ue.key),K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue);return e&&Kt.forEach(function(tr){return t($,tr)}),es&&p0($,Zt),Pt}function rt($,K,tt,ut){if(typeof tt==\"object\"&&tt!==null&&tt.type===M_&&tt.key===null&&(tt=tt.props.children),typeof tt==\"object\"&&tt!==null){switch(tt.$$typeof){case lT:t:{for(var Pt=tt.key,Ot=K;Ot!==null;){if(Ot.key===Pt){if(Pt=tt.type,Pt===M_){if(Ot.tag===7){r($,Ot.sibling),K=s(Ot,tt.props.children),K.return=$,$=K;break t}}else if(Ot.elementType===Pt||typeof Pt==\"object\"&&Pt!==null&&Pt.$$typeof===mA&&tz(Pt)===Ot.type){r($,Ot.sibling),K=s(Ot,tt.props),K.ref=e1($,Ot,tt),K.return=$,$=K;break t}r($,Ot);break}else t($,Ot);Ot=Ot.sibling}tt.type===M_?(K=v0(tt.props.children,$.mode,ut,tt.key),K.return=$,$=K):(ut=BT(tt.type,tt.key,tt.props,null,$.mode,ut),ut.ref=e1($,K,tt),ut.return=$,$=ut)}return o($);case T_:t:{for(Ot=tt.key;K!==null;){if(K.key===Ot)if(K.tag===4&&K.stateNode.containerInfo===tt.containerInfo&&K.stateNode.implementation===tt.implementation){r($,K.sibling),K=s(K,tt.children||[]),K.return=$,$=K;break t}else{r($,K);break}else t($,K);K=K.sibling}K=hL(tt,$.mode,ut),K.return=$,$=K}return o($);case mA:return Ot=tt._init,rt($,K,Ot(tt._payload),ut)}if(o1(tt))return j($,K,tt,ut);if(Xx(tt))return Y($,K,tt,ut);wT($,tt)}return typeof tt==\"string\"&&tt!==\"\"||typeof tt==\"number\"?(tt=\"\"+tt,K!==null&&K.tag===6?(r($,K.sibling),K=s(K,tt),K.return=$,$=K):(r($,K),K=uL(tt,$.mode,ut),K.return=$,$=K),o($)):r($,K)}return rt}var q_=TN(!0),MN=TN(!1),z1={},kf=RA(z1),I1=RA(z1),C1=RA(z1);function _0(e){if(e===z1)throw Error(Ee(174));return e}function Pk(e,t){switch(Fn(C1,t),Fn(I1,e),Fn(kf,z1),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:xL(null,\"\");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=xL(t,e)}Hn(kf),Fn(kf,t)}function Z_(){Hn(kf),Hn(I1),Hn(C1)}function EN(e){_0(C1.current);var t=_0(kf.current),r=xL(t,e.type);t!==r&&(Fn(I1,e),Fn(kf,r))}function Ik(e){I1.current===e&&(Hn(kf),Hn(I1))}var fs=RA(0);function JT(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data===\"$?\"||r.data===\"$!\"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var nL=[];function Ck(){for(var e=0;er?r:4,e(!0);var i=sL.transition;sL.transition={};try{e(!1),t()}finally{mn=r,sL.transition=i}}function GN(){return Mu().memoizedState}function Mtt(e,t,r){var i=PA(e);if(r={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null},WN(e))HN(t,r);else if(r=xN(e,t,r,i),r!==null){var s=vl();Ih(r,e,i,s),qN(r,t,i)}}function Ett(e,t,r){var i=PA(e),s={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null};if(WN(e))HN(t,s);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var o=t.lastRenderedState,c=n(o,r);if(s.hasEagerState=!0,s.eagerState=c,Ch(c,o)){var f=t.interleaved;f===null?(s.next=s,Mk(t)):(s.next=f.next,f.next=s),t.interleaved=s;return}}catch{}finally{}r=xN(e,t,s,i),r!==null&&(s=vl(),Ih(r,e,i,s),qN(r,t,i))}}function WN(e){var t=e.alternate;return e===ds||t!==null&&t===ds}function HN(e,t){p1=tM=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function qN(e,t,r){if(r&4194240){var i=t.lanes;i&=e.pendingLanes,r|=i,t.lanes=r,fk(e,r)}}var eM={readContext:Tu,useCallback:qa,useContext:qa,useEffect:qa,useImperativeHandle:qa,useInsertionEffect:qa,useLayoutEffect:qa,useMemo:qa,useReducer:qa,useRef:qa,useState:qa,useDebugValue:qa,useDeferredValue:qa,useTransition:qa,useMutableSource:qa,useSyncExternalStore:qa,useId:qa,unstable_isNewReconciler:!1},Ptt={readContext:Tu,useCallback:function(e,t){return If().memoizedState=[e,t===void 0?null:t],e},useContext:Tu,useEffect:rz,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,kT(4194308,4,zN.bind(null,t,e),r)},useLayoutEffect:function(e,t){return kT(4194308,4,e,t)},useInsertionEffect:function(e,t){return kT(4,2,e,t)},useMemo:function(e,t){var r=If();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var i=If();return t=r!==void 0?r(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=Mtt.bind(null,ds,e),[i.memoizedState,e]},useRef:function(e){var t=If();return e={current:e},t.memoizedState=e},useState:ez,useDebugValue:Ok,useDeferredValue:function(e){return If().memoizedState=e},useTransition:function(){var e=ez(!1),t=e[0];return e=Ttt.bind(null,e[1]),If().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var i=ds,s=If();if(es){if(r===void 0)throw Error(Ee(407));r=r()}else{if(r=t(),Xo===null)throw Error(Ee(349));w0&30||CN(i,t,r)}s.memoizedState=r;var n={value:r,getSnapshot:t};return s.queue=n,rz(kN.bind(null,i,n,e),[e]),i.flags|=2048,R1(9,LN.bind(null,i,n,r,t),void 0,null),r},useId:function(){var e=If(),t=Xo.identifierPrefix;if(es){var r=Wd,i=Gd;r=(i&~(1<<32-Ph(i)-1)).toString(32)+r,t=\":\"+t+\"R\"+r,r=L1++,0<\\/script>\",e=e.removeChild(e.firstChild)):typeof i.is==\"string\"?e=o.createElement(r,{is:i.is}):(e=o.createElement(r),r===\"select\"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,r),e[Cf]=t,e[P1]=i,e8(e,t,!1,!1),t.stateNode=e;t:{switch(o=wL(r,i),r){case\"dialog\":Wn(\"cancel\",e),Wn(\"close\",e),s=i;break;case\"iframe\":case\"object\":case\"embed\":Wn(\"load\",e),s=i;break;case\"video\":case\"audio\":for(s=0;sQ_&&(t.flags|=128,i=!0,r1(n,!1),t.lanes=4194304)}else{if(!i)if(e=JT(o),e!==null){if(t.flags|=128,i=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),r1(n,!0),n.tail===null&&n.tailMode===\"hidden\"&&!o.alternate&&!es)return Za(t),null}else 2*qs()-n.renderingStartTime>Q_&&r!==1073741824&&(t.flags|=128,i=!0,r1(n,!1),t.lanes=4194304);n.isBackwards?(o.sibling=t.child,t.child=o):(r=n.last,r!==null?r.sibling=o:t.child=o,n.last=o)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=qs(),t.sibling=null,r=fs.current,Fn(fs,i?r&1|2:r&1),t):(Za(t),null);case 22:case 23:return Vk(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Nc&1073741824&&(Za(t),t.subtreeFlags&6&&(t.flags|=8192)):Za(t),null;case 24:return null;case 25:return null}throw Error(Ee(156,t.tag))}function Btt(e,t){switch(xk(t),t.tag){case 1:return Ql(t.type)&&qT(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Z_(),Hn(Yl),Hn(Qa),Ck(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ik(t),null;case 13:if(Hn(fs),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ee(340));H_()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Hn(fs),null;case 4:return Z_(),null;case 10:return Tk(t.type._context),null;case 22:case 23:return Vk(),null;case 24:return null;default:return null}}var TT=!1,Ya=!1,Ftt=typeof WeakSet==\"function\"?WeakSet:Set,cr=null;function O_(e,t){var r=e.ref;if(r!==null)if(typeof r==\"function\")try{r(null)}catch(i){Is(e,t,i)}else r.current=null}function $L(e,t,r){try{r()}catch(i){Is(e,t,i)}}var hz=!1;function ztt(e,t){if(RL=jT,e=aN(),yk(e)){if(\"selectionStart\"in e)var r={start:e.selectionStart,end:e.selectionEnd};else t:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var s=i.anchorOffset,n=i.focusNode;i=i.focusOffset;try{r.nodeType,n.nodeType}catch{r=null;break t}var o=0,c=-1,f=-1,_=0,w=0,C=e,R=null;e:for(;;){for(var N;C!==r||s!==0&&C.nodeType!==3||(c=o+s),C!==n||i!==0&&C.nodeType!==3||(f=o+i),C.nodeType===3&&(o+=C.nodeValue.length),(N=C.firstChild)!==null;)R=C,C=N;for(;;){if(C===e)break e;if(R===r&&++_===s&&(c=o),R===n&&++w===i&&(f=o),(N=C.nextSibling)!==null)break;C=R,R=C.parentNode}C=N}r=c===-1||f===-1?null:{start:c,end:f}}else r=null}r=r||{start:0,end:0}}else r=null;for(DL={focusedElem:e,selectionRange:r},jT=!1,cr=t;cr!==null;)if(t=cr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,cr=e;else for(;cr!==null;){t=cr;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var Y=j.memoizedProps,rt=j.memoizedState,$=t.stateNode,K=$.getSnapshotBeforeUpdate(t.elementType===t.type?Y:Th(t.type,Y),rt);$.__reactInternalSnapshotBeforeUpdate=K}break;case 3:var tt=t.stateNode.containerInfo;tt.nodeType===1?tt.textContent=\"\":tt.nodeType===9&&tt.documentElement&&tt.removeChild(tt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ee(163))}}catch(ut){Is(t,t.return,ut)}if(e=t.sibling,e!==null){e.return=t.return,cr=e;break}cr=t.return}return j=hz,hz=!1,j}function A1(e,t,r){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var s=i=i.next;do{if((s.tag&e)===e){var n=s.destroy;s.destroy=void 0,n!==void 0&&$L(t,r,n)}s=s.next}while(s!==i)}}function AM(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var i=r.create;r.destroy=i()}r=r.next}while(r!==t)}}function XL(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t==\"function\"?t(e):t.current=e}}function n8(e){var t=e.alternate;t!==null&&(e.alternate=null,n8(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Cf],delete t[P1],delete t[FL],delete t[vtt],delete t[xtt])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function s8(e){return e.tag===5||e.tag===3||e.tag===4}function fz(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||s8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function KL(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=HT));else if(i!==4&&(e=e.child,e!==null))for(KL(e,t,r),e=e.sibling;e!==null;)KL(e,t,r),e=e.sibling}function JL(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(JL(e,t,r),e=e.sibling;e!==null;)JL(e,t,r),e=e.sibling}var Aa=null,Mh=!1;function AA(e,t,r){for(r=r.child;r!==null;)o8(e,t,r),r=r.sibling}function o8(e,t,r){if(Lf&&typeof Lf.onCommitFiberUnmount==\"function\")try{Lf.onCommitFiberUnmount(aM,r)}catch{}switch(r.tag){case 5:Ya||O_(r,t);case 6:var i=Aa,s=Mh;Aa=null,AA(e,t,r),Aa=i,Mh=s,Aa!==null&&(Mh?(e=Aa,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Aa.removeChild(r.stateNode));break;case 18:Aa!==null&&(Mh?(e=Aa,r=r.stateNode,e.nodeType===8?rL(e.parentNode,r):e.nodeType===1&&rL(e,r),w1(e)):rL(Aa,r.stateNode));break;case 4:i=Aa,s=Mh,Aa=r.stateNode.containerInfo,Mh=!0,AA(e,t,r),Aa=i,Mh=s;break;case 0:case 11:case 14:case 15:if(!Ya&&(i=r.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){s=i=i.next;do{var n=s,o=n.destroy;n=n.tag,o!==void 0&&(n&2||n&4)&&$L(r,t,o),s=s.next}while(s!==i)}AA(e,t,r);break;case 1:if(!Ya&&(O_(r,t),i=r.stateNode,typeof i.componentWillUnmount==\"function\"))try{i.props=r.memoizedProps,i.state=r.memoizedState,i.componentWillUnmount()}catch(c){Is(r,t,c)}AA(e,t,r);break;case 21:AA(e,t,r);break;case 22:r.mode&1?(Ya=(i=Ya)||r.memoizedState!==null,AA(e,t,r),Ya=i):AA(e,t,r);break;default:AA(e,t,r)}}function dz(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Ftt),t.forEach(function(i){var s=Ztt.bind(null,e,i);r.has(i)||(r.add(i),i.then(s,s))})}}function Sh(e,t){var r=t.deletions;if(r!==null)for(var i=0;is&&(s=o),i&=~n}if(i=s,i=qs()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Utt(i/1960))-i,10e?16:e,xA===null)var i=!1;else{if(e=xA,xA=null,nM=0,Wi&6)throw Error(Ee(331));var s=Wi;for(Wi|=4,cr=e.current;cr!==null;){var n=cr,o=n.child;if(cr.flags&16){var c=n.deletions;if(c!==null){for(var f=0;fqs()-Nk?y0(e,0):zk|=r),$l(e,t)}function p8(e,t){t===0&&(e.mode&1?(t=fT,fT<<=1,!(fT&130023424)&&(fT=4194304)):t=1);var r=vl();e=Yd(e,t),e!==null&&(O1(e,t,r),$l(e,r))}function qtt(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),p8(e,r)}function Ztt(e,t){var r=0;switch(e.tag){case 13:var i=e.stateNode,s=e.memoizedState;s!==null&&(r=s.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(Ee(314))}i!==null&&i.delete(t),p8(e,r)}var A8;A8=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Yl.current)Zl=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Zl=!1,Dtt(e,t,r);Zl=!!(e.flags&131072)}else Zl=!1,es&&t.flags&1048576&&_N(t,QT,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;RT(e,t),e=t.pendingProps;var s=W_(t,Qa.current);V_(t,r),s=kk(null,t,i,e,s,r);var n=Rk();return t.flags|=1,typeof s==\"object\"&&s!==null&&typeof s.render==\"function\"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ql(i)?(n=!0,ZT(t)):n=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Ek(t),s.updater=dM,t.stateNode=s,s._reactInternals=t,GL(t,i,e,r),t=qL(null,t,i,!0,n,r)):(t.tag=0,es&&n&&vk(t),yl(null,t,s,r),t=t.child),t;case 16:i=t.elementType;t:{switch(RT(e,t),e=t.pendingProps,s=i._init,i=s(i._payload),t.type=i,s=t.tag=Qtt(i),e=Th(i,e),s){case 0:t=HL(null,t,i,e,r);break t;case 1:t=lz(null,t,i,e,r);break t;case 11:t=oz(null,t,i,e,r);break t;case 14:t=az(null,t,i,Th(i.type,e),r);break t}throw Error(Ee(306,i,\"\"))}return t;case 0:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),HL(e,t,i,s,r);case 1:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),lz(e,t,i,s,r);case 3:t:{if(KN(t),e===null)throw Error(Ee(387));i=t.pendingProps,n=t.memoizedState,s=n.element,bN(e,t),KT(t,i,null,r);var o=t.memoizedState;if(i=o.element,n.isDehydrated)if(n={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){s=Y_(Error(Ee(423)),t),t=cz(e,t,i,r,s);break t}else if(i!==s){s=Y_(Error(Ee(424)),t),t=cz(e,t,i,r,s);break t}else for(Uc=TA(t.stateNode.containerInfo.firstChild),Vc=t,es=!0,Eh=null,r=MN(t,null,i,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(H_(),i===s){t=Qd(e,t,r);break t}yl(e,t,i,r)}t=t.child}return t;case 5:return EN(t),e===null&&UL(t),i=t.type,s=t.pendingProps,n=e!==null?e.memoizedProps:null,o=s.children,OL(i,s)?o=null:n!==null&&OL(i,n)&&(t.flags|=32),XN(e,t),yl(e,t,o,r),t.child;case 6:return e===null&&UL(t),null;case 13:return JN(e,t,r);case 4:return Pk(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=q_(t,null,i,r):yl(e,t,i,r),t.child;case 11:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),oz(e,t,i,s,r);case 7:return yl(e,t,t.pendingProps,r),t.child;case 8:return yl(e,t,t.pendingProps.children,r),t.child;case 12:return yl(e,t,t.pendingProps.children,r),t.child;case 10:t:{if(i=t.type._context,s=t.pendingProps,n=t.memoizedProps,o=s.value,Fn($T,i._currentValue),i._currentValue=o,n!==null)if(Ch(n.value,o)){if(n.children===s.children&&!Yl.current){t=Qd(e,t,r);break t}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var c=n.dependencies;if(c!==null){o=n.child;for(var f=c.firstContext;f!==null;){if(f.context===i){if(n.tag===1){f=Hd(-1,r&-r),f.tag=2;var _=n.updateQueue;if(_!==null){_=_.shared;var w=_.pending;w===null?f.next=f:(f.next=w.next,w.next=f),_.pending=f}}n.lanes|=r,f=n.alternate,f!==null&&(f.lanes|=r),VL(n.return,r,t),c.lanes|=r;break}f=f.next}}else if(n.tag===10)o=n.type===t.type?null:n.child;else if(n.tag===18){if(o=n.return,o===null)throw Error(Ee(341));o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),VL(o,r,t),o=n.sibling}else o=n.child;if(o!==null)o.return=n;else for(o=n;o!==null;){if(o===t){o=null;break}if(n=o.sibling,n!==null){n.return=o.return,o=n;break}o=o.return}n=o}yl(e,t,s.children,r),t=t.child}return t;case 9:return s=t.type,i=t.pendingProps.children,V_(t,r),s=Tu(s),i=i(s),t.flags|=1,yl(e,t,i,r),t.child;case 14:return i=t.type,s=Th(i,t.pendingProps),s=Th(i.type,s),az(e,t,i,s,r);case 15:return QN(e,t,t.type,t.pendingProps,r);case 17:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),RT(e,t),t.tag=1,Ql(i)?(e=!0,ZT(t)):e=!1,V_(t,r),SN(t,i,s),GL(t,i,s,r),qL(null,t,i,!0,e,r);case 19:return t8(e,t,r);case 22:return $N(e,t,r)}throw Error(Ee(156,t.tag))};function m8(e,t){return jz(e,t)}function Ytt(e,t,r,i){this.tag=e,this.key=r,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=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wu(e,t,r,i){return new Ytt(e,t,r,i)}function Gk(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Qtt(e){if(typeof e==\"function\")return Gk(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lk)return 11;if(e===ck)return 14}return 2}function IA(e,t){var r=e.alternate;return r===null?(r=wu(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function BT(e,t,r,i,s,n){var o=2;if(i=e,typeof e==\"function\")Gk(e)&&(o=1);else if(typeof e==\"string\")o=5;else t:switch(e){case M_:return v0(r.children,s,n,t);case ak:o=8,s|=8;break;case dL:return e=wu(12,r,t,s|2),e.elementType=dL,e.lanes=n,e;case pL:return e=wu(13,r,t,s),e.elementType=pL,e.lanes=n,e;case AL:return e=wu(19,r,t,s),e.elementType=AL,e.lanes=n,e;case Tz:return gM(r,s,n,t);default:if(typeof e==\"object\"&&e!==null)switch(e.$$typeof){case wz:o=10;break t;case Sz:o=9;break t;case lk:o=11;break t;case ck:o=14;break t;case mA:o=16,i=null;break t}throw Error(Ee(130,e==null?e:typeof e,\"\"))}return t=wu(o,r,t,s),t.elementType=e,t.type=i,t.lanes=n,t}function v0(e,t,r,i){return e=wu(7,e,i,t),e.lanes=r,e}function gM(e,t,r,i){return e=wu(22,e,i,t),e.elementType=Tz,e.lanes=r,e.stateNode={isHidden:!1},e}function uL(e,t,r){return e=wu(6,e,null,t),e.lanes=r,e}function hL(e,t,r){return t=wu(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $tt(e,t,r,i,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=YC(0),this.expirationTimes=YC(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=YC(0),this.identifierPrefix=i,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Wk(e,t,r,i,s,n,o,c,f){return e=new $tt(e,t,r,c,f),t===1?(t=1,n===!0&&(t|=8)):t=0,n=wu(3,null,null,t),e.current=n,n.stateNode=e,n.memoizedState={element:i,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ek(n),e}function Xtt(e,t,r){var i=3{\"use strict\";function x8(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(x8)}catch(e){console.error(e)}}x8(),b8.exports=v8()});var S8=Br(Yk=>{\"use strict\";var w8=bM();Yk.createRoot=w8.createRoot,Yk.hydrateRoot=w8.hydrateRoot;var Jxt});var U8=Br((s4,o4)=>{(function(e,t){typeof s4==\"object\"&&typeof o4<\"u\"?o4.exports=t():(e=typeof globalThis<\"u\"?globalThis:e||self,e.maplibregl=t())})(s4,function(){\"use strict\";var e,t,r;function i(n,o){if(!e)e=o;else if(!t)t=o;else{var c=\"var sharedChunk = {}; (\"+e+\")(sharedChunk); (\"+t+\")(sharedChunk);\",f={};e(f),r=o(f),typeof window<\"u\"&&(r.workerUrl=window.URL.createObjectURL(new Blob([c],{type:\"text/javascript\"})))}}i([\"exports\"],function(n){\"use strict\";function o(u,a,h,A){return new(h||(h=Promise))(function(x,E){function P(V){try{F(A.next(V))}catch(q){E(q)}}function D(V){try{F(A.throw(V))}catch(q){E(q)}}function F(V){var q;V.done?x(V.value):(q=V.value,q instanceof h?q:new h(function(X){X(q)})).then(P,D)}F((A=A.apply(u,a||[])).next())})}function c(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,\"default\")?u.default:u}typeof SuppressedError==\"function\"&&SuppressedError;var f=_;function _(u,a){this.x=u,this.y=a}_.prototype={clone:function(){return new _(this.x,this.y)},add:function(u){return this.clone()._add(u)},sub:function(u){return this.clone()._sub(u)},multByPoint:function(u){return this.clone()._multByPoint(u)},divByPoint:function(u){return this.clone()._divByPoint(u)},mult:function(u){return this.clone()._mult(u)},div:function(u){return this.clone()._div(u)},rotate:function(u){return this.clone()._rotate(u)},rotateAround:function(u,a){return this.clone()._rotateAround(u,a)},matMult:function(u){return this.clone()._matMult(u)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(u){return this.x===u.x&&this.y===u.y},dist:function(u){return Math.sqrt(this.distSqr(u))},distSqr:function(u){var a=u.x-this.x,h=u.y-this.y;return a*a+h*h},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(u){return Math.atan2(this.y-u.y,this.x-u.x)},angleWith:function(u){return this.angleWithSep(u.x,u.y)},angleWithSep:function(u,a){return Math.atan2(this.x*a-this.y*u,this.x*u+this.y*a)},_matMult:function(u){var a=u[2]*this.x+u[3]*this.y;return this.x=u[0]*this.x+u[1]*this.y,this.y=a,this},_add:function(u){return this.x+=u.x,this.y+=u.y,this},_sub:function(u){return this.x-=u.x,this.y-=u.y,this},_mult:function(u){return this.x*=u,this.y*=u,this},_div:function(u){return this.x/=u,this.y/=u,this},_multByPoint:function(u){return this.x*=u.x,this.y*=u.y,this},_divByPoint:function(u){return this.x/=u.x,this.y/=u.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var u=this.y;return this.y=this.x,this.x=-u,this},_rotate:function(u){var a=Math.cos(u),h=Math.sin(u),A=h*this.x+a*this.y;return this.x=a*this.x-h*this.y,this.y=A,this},_rotateAround:function(u,a){var h=Math.cos(u),A=Math.sin(u),x=a.y+A*(this.x-a.x)+h*(this.y-a.y);return this.x=a.x+h*(this.x-a.x)-A*(this.y-a.y),this.y=x,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},_.convert=function(u){return u instanceof _?u:Array.isArray(u)?new _(u[0],u[1]):u};var w=c(f),C=R;function R(u,a,h,A){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(A-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=a,this.p2x=h,this.p2y=A}R.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,a){if(a===void 0&&(a=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,A=0;A<8;A++){var x=this.sampleCurveX(h)-u;if(Math.abs(x)x?P=h:D=h,h=.5*(D-P)+P;return h},solve:function(u,a){return this.sampleCurveY(this.solveCurveX(u,a))}};var N=c(C);let j,Y;function rt(){return j==null&&(j=typeof OffscreenCanvas<\"u\"&&new OffscreenCanvas(1,1).getContext(\"2d\")&&typeof createImageBitmap==\"function\"),j}function $(){if(Y==null&&(Y=!1,rt())){let a=new OffscreenCanvas(5,5).getContext(\"2d\",{willReadFrequently:!0});if(a){for(let A=0;A<5*5;A++){let x=4*A;a.fillStyle=`rgb(${x},${x+1},${x+2})`,a.fillRect(A%5,Math.floor(A/5),1,1)}let h=a.getImageData(0,0,5,5).data;for(let A=0;A<5*5*4;A++)if(A%4!=3&&h[A]!==A){Y=!0;break}}}return Y||!1}function K(u,a,h,A){let x=new N(u,a,h,A);return function(E){return x.solve(E)}}let tt=K(.25,.1,.25,1);function ut(u,a,h){return Math.min(h,Math.max(a,u))}function Pt(u,a,h){let A=h-a,x=((u-a)%A+A)%A+a;return x===a?h:x}function Ot(u,...a){for(let h of a)for(let A in h)u[A]=h[A];return u}let Kt=1;function Zt(u,a,h){let A={};for(let x in u)A[x]=a.call(h||this,u[x],x,u);return A}function le(u,a,h){let A={};for(let x in u)a.call(h||this,u[x],x,u)&&(A[x]=u[x]);return A}function ue(u){return Array.isArray(u)?u.map(ue):typeof u==\"object\"&&u?Zt(u,ue):u}let Ge={};function tr(u){Ge[u]||(typeof console<\"u\"&&console.warn(u),Ge[u]=!0)}function er(u,a,h){return(h.y-u.y)*(a.x-u.x)>(a.y-u.y)*(h.x-u.x)}function Lr(u){let a=0;for(let h,A,x=0,E=u.length,P=E-1;x\"u\")throw new Error(\"VideoFrame not supported\");let E=new VideoFrame(u,{timestamp:0});try{let P=E?.format;if(!P||!P.startsWith(\"BGR\")&&!P.startsWith(\"RGB\"))throw new Error(`Unrecognized format ${P}`);let D=P.startsWith(\"BGR\"),F=new Uint8ClampedArray(A*x*4);if(yield E.copyTo(F,function(V,q,X,et,at){let ct=4*Math.max(-q,0),mt=(Math.max(0,X)-X)*et*4+ct,bt=4*et,Et=Math.max(0,q),Vt=Math.max(0,X);return{rect:{x:Et,y:Vt,width:Math.min(V.width,q+et)-Et,height:Math.min(V.height,X+at)-Vt},layout:[{offset:mt,stride:bt}]}}(u,a,h,A,x)),D)for(let V=0;VcancelAnimationFrame(a)}},getImageData(u,a=0){return this.getImageCanvasContext(u).getImageData(-a,-a,u.width+2*a,u.height+2*a)},getImageCanvasContext(u){let a=window.document.createElement(\"canvas\"),h=a.getContext(\"2d\",{willReadFrequently:!0});if(!h)throw new Error(\"failed to create canvas 2d context\");return a.width=u.width,a.height=u.height,h.drawImage(u,0,0,u.width,u.height),h},resolveURL:u=>(Ds||(Ds=document.createElement(\"a\")),Ds.href=u,Ds.href),hardwareConcurrency:typeof navigator<\"u\"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(sl==null&&(sl=matchMedia(\"(prefers-reduced-motion: reduce)\")),sl.matches)}},Cc={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:\"\"};class Zi extends Error{constructor(a,h,A,x){super(`AJAXError: ${h} (${a}): ${A}`),this.status=a,this.statusText=h,this.url=A,this.body=x}}let $n=zi()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol===\"blob:\"?window.parent:window).location.href,Ii=u=>Cc.REGISTERED_PROTOCOLS[u.substring(0,u.indexOf(\"://\"))];function Xn(u,a){let h=new AbortController,A=new Request(u.url,{method:u.method||\"GET\",body:u.body,credentials:u.credentials,headers:u.headers,cache:u.cache,referrer:$n(),signal:h.signal}),x=!1,E=!1;return u.type===\"json\"&&A.headers.set(\"Accept\",\"application/json\"),E||fetch(A).then(P=>P.ok?(D=>{(u.type===\"arrayBuffer\"||u.type===\"image\"?D.arrayBuffer():u.type===\"json\"?D.json():D.text()).then(F=>{E||(x=!0,a(null,F,D.headers.get(\"Cache-Control\"),D.headers.get(\"Expires\")))}).catch(F=>{E||a(new Error(F.message))})})(P):P.blob().then(D=>a(new Zi(P.status,P.statusText,u.url,D)))).catch(P=>{P.code!==20&&a(new Error(P.message))}),{cancel:()=>{E=!0,x||h.abort()}}}let No=function(u,a){if(/:\\/\\//.test(u.url)&&!/^https?:|^file:/.test(u.url)){if(zi()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a);if(!zi())return(Ii(u.url)||Xn)(u,a)}if(!(/^file:/.test(h=u.url)||/^file:/.test($n())&&!/^\\w+:/.test(h))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return Xn(u,a);if(zi()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a,void 0,!0)}var h;return function(A,x){let E=new XMLHttpRequest;E.open(A.method||\"GET\",A.url,!0),A.type!==\"arrayBuffer\"&&A.type!==\"image\"||(E.responseType=\"arraybuffer\");for(let P in A.headers)E.setRequestHeader(P,A.headers[P]);return A.type===\"json\"&&(E.responseType=\"text\",E.setRequestHeader(\"Accept\",\"application/json\")),E.withCredentials=A.credentials===\"include\",E.onerror=()=>{x(new Error(E.statusText))},E.onload=()=>{if((E.status>=200&&E.status<300||E.status===0)&&E.response!==null){let P=E.response;if(A.type===\"json\")try{P=JSON.parse(E.response)}catch(D){return x(D)}x(null,P,E.getResponseHeader(\"Cache-Control\"),E.getResponseHeader(\"Expires\"))}else{let P=new Blob([E.response],{type:E.getResponseHeader(\"Content-Type\")});x(new Zi(E.status,E.statusText,A.url,P))}},E.send(A.body),{cancel:()=>E.abort()}}(u,a)},ol=function(u,a){return No(Ot(u,{type:\"arrayBuffer\"}),a)};function fo(u){if(!u||u.indexOf(\"://\")<=0||u.indexOf(\"data:image/\")===0||u.indexOf(\"blob:\")===0)return!0;let a=new URL(u),h=window.location;return a.protocol===h.protocol&&a.host===h.host}function Ea(u,a,h){h[u]&&h[u].indexOf(a)!==-1||(h[u]=h[u]||[],h[u].push(a))}function na(u,a,h){if(h&&h[u]){let A=h[u].indexOf(a);A!==-1&&h[u].splice(A,1)}}class ss{constructor(a,h={}){Ot(this,h),this.type=a}}class to extends ss{constructor(a,h={}){super(\"error\",Ot({error:a},h))}}class Ol{on(a,h){return this._listeners=this._listeners||{},Ea(a,h,this._listeners),this}off(a,h){return na(a,h,this._listeners),na(a,h,this._oneTimeListeners),this}once(a,h){return h?(this._oneTimeListeners=this._oneTimeListeners||{},Ea(a,h,this._oneTimeListeners),this):new Promise(A=>this.once(a,A))}fire(a,h){typeof a==\"string\"&&(a=new ss(a,h||{}));let A=a.type;if(this.listens(A)){a.target=this;let x=this._listeners&&this._listeners[A]?this._listeners[A].slice():[];for(let D of x)D.call(this,a);let E=this._oneTimeListeners&&this._oneTimeListeners[A]?this._oneTimeListeners[A].slice():[];for(let D of E)na(A,D,this._oneTimeListeners),D.call(this,a);let P=this._eventedParent;P&&(Ot(a,typeof this._eventedParentData==\"function\"?this._eventedParentData():this._eventedParentData),P.fire(a))}else a instanceof to&&console.error(a.error);return this}listens(a){return this._listeners&&this._listeners[a]&&this._listeners[a].length>0||this._oneTimeListeners&&this._oneTimeListeners[a]&&this._oneTimeListeners[a].length>0||this._eventedParent&&this._eventedParent.listens(a)}setEventedParent(a,h){return this._eventedParent=a,this._eventedParentData=h,this}}var te={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},terrain:{type:\"terrain\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"sprite\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{},custom:{}},default:\"mapbox\"},redFactor:{type:\"number\",default:1},blueFactor:{type:\"number\",default:1},greenFactor:{type:\"number\",default:1},baseShift:{type:\"number\",default:0},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{required:!0,type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},filter:{type:\"*\"},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!1},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterMinPoints:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"!\":\"icon-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"padding\",default:[2],units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},\"viewport-glyph\":{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-variable-anchor-offset\":{type:\"variableAnchorOffsetCollection\",requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\",{\"!\":\"text-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{},within:{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},terrain:{source:{type:\"string\",required:!0},exaggeration:{type:\"number\",minimum:0,default:1}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}};let os=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"];function fn(u,a){let h={};for(let A in u)A!==\"ref\"&&(h[A]=u[A]);return os.forEach(A=>{A in a&&(h[A]=a[A])}),h}function gi(u,a){if(Array.isArray(u)){if(!Array.isArray(a)||u.length!==a.length)return!1;for(let h=0;h`:u.itemType.kind===\"value\"?\"array\":`array<${a}>`}return u.kind}let _t=[Ia,Se,Dr,mr,Os,gt,Ca,vt(Tr),J,nt,ht];function Dt(u,a){if(a.kind===\"error\")return null;if(u.kind===\"array\"){if(a.kind===\"array\"&&(a.N===0&&a.itemType.kind===\"value\"||!Dt(u.itemType,a.itemType))&&(typeof u.N!=\"number\"||u.N===a.N))return null}else{if(u.kind===a.kind)return null;if(u.kind===\"value\"){for(let h of _t)if(!Dt(h,a))return null}}return`Expected ${xt(u)} but found ${xt(a)} instead.`}function Mt(u,a){return a.some(h=>h.kind===u.kind)}function Ut(u,a){return a.some(h=>h===\"null\"?u===null:h===\"array\"?Array.isArray(u):h===\"object\"?u&&!Array.isArray(u)&&typeof u==\"object\":h===typeof u)}function re(u,a){return u.kind===\"array\"&&a.kind===\"array\"?u.itemType.kind===a.itemType.kind&&typeof u.N==\"number\":u.kind===a.kind}let ne=.96422,oe=.82521,ar=4/29,_r=6/29,Ye=3*_r*_r,lr=_r*_r*_r,xr=Math.PI/180,vi=180/Math.PI;function Bi(u){return(u%=360)<0&&(u+=360),u}function ni([u,a,h,A]){let x,E,P=Un((.2225045*(u=Hr(u))+.7168786*(a=Hr(a))+.0606169*(h=Hr(h)))/1);u===a&&a===h?x=E=P:(x=Un((.4360747*u+.3850649*a+.1430804*h)/ne),E=Un((.0139322*u+.0971045*a+.7141733*h)/oe));let D=116*P-16;return[D<0?0:D,500*(x-P),200*(P-E),A]}function Hr(u){return u<=.04045?u/12.92:Math.pow((u+.055)/1.055,2.4)}function Un(u){return u>lr?Math.pow(u,1/3):u/Ye+ar}function Li([u,a,h,A]){let x=(u+16)/116,E=isNaN(a)?x:x+a/500,P=isNaN(h)?x:x-h/200;return x=1*Kn(x),E=ne*Kn(E),P=oe*Kn(P),[gn(3.1338561*E-1.6168667*x-.4906146*P),gn(-.9787684*E+1.9161415*x+.033454*P),gn(.0719453*E-.2289914*x+1.4052427*P),A]}function gn(u){return(u=u<=.00304?12.92*u:1.055*Math.pow(u,1/2.4)-.055)<0?0:u>1?1:u}function Kn(u){return u>_r?u*u*u:Ye*(u-ar)}function oa(u){return parseInt(u.padEnd(2,u),16)/255}function Om(u,a){return Fl(a?u/100:u,0,1)}function Fl(u,a,h){return Math.min(Math.max(a,u),h)}function ws(u){return!u.some(Number.isNaN)}let ih={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],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],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],rebeccapurple:[102,51,153],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]};class ai{constructor(a,h,A,x=1,E=!0){this.r=a,this.g=h,this.b=A,this.a=x,E||(this.r*=x,this.g*=x,this.b*=x,x||this.overwriteGetter(\"rgb\",[a,h,A,x]))}static parse(a){if(a instanceof ai)return a;if(typeof a!=\"string\")return;let h=function(A){if((A=A.toLowerCase().trim())===\"transparent\")return[0,0,0,0];let x=ih[A];if(x){let[P,D,F]=x;return[P/255,D/255,F/255,1]}if(A.startsWith(\"#\")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(A)){let P=A.length<6?1:2,D=1;return[oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+P)||\"ff\")]}if(A.startsWith(\"rgb\")){let P=A.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(P){let[D,F,V,q,X,et,at,ct,mt,bt,Et,Vt]=P,kt=[q||\" \",at||\" \",bt].join(\"\");if(kt===\" \"||kt===\" /\"||kt===\",,\"||kt===\",,,\"){let jt=[V,et,mt].join(\"\"),qt=jt===\"%%%\"?100:jt===\"\"?255:0;if(qt){let ae=[Fl(+F/qt,0,1),Fl(+X/qt,0,1),Fl(+ct/qt,0,1),Et?Om(+Et,Vt):1];if(ws(ae))return ae}}return}}let E=A.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(E){let[P,D,F,V,q,X,et,at,ct]=E,mt=[F||\" \",q||\" \",et].join(\"\");if(mt===\" \"||mt===\" /\"||mt===\",,\"||mt===\",,,\"){let bt=[+D,Fl(+V,0,100),Fl(+X,0,100),at?Om(+at,ct):1];if(ws(bt))return function([Et,Vt,kt,jt]){function qt(ae){let Be=(ae+Et/30)%12,Je=Vt*Math.min(kt,1-kt);return kt-Je*Math.max(-1,Math.min(Be-3,9-Be,1))}return Et=Bi(Et),Vt/=100,kt/=100,[qt(0),qt(8),qt(4),jt]}(bt)}}}(a);return h?new ai(...h,!1):void 0}get rgb(){let{r:a,g:h,b:A,a:x}=this,E=x||1/0;return this.overwriteGetter(\"rgb\",[a/E,h/E,A/E,x])}get hcl(){return this.overwriteGetter(\"hcl\",function(a){let[h,A,x,E]=ni(a),P=Math.sqrt(A*A+x*x);return[Math.round(1e4*P)?Bi(Math.atan2(x,A)*vi):NaN,P,h,E]}(this.rgb))}get lab(){return this.overwriteGetter(\"lab\",ni(this.rgb))}overwriteGetter(a,h){return Object.defineProperty(this,a,{value:h}),h}toString(){let[a,h,A,x]=this.rgb;return`rgba(${[a,h,A].map(E=>Math.round(255*E)).join(\",\")},${x})`}}ai.black=new ai(0,0,0,1),ai.white=new ai(1,1,1,1),ai.transparent=new ai(0,0,0,0),ai.red=new ai(1,0,0,1);class La{constructor(a,h,A){this.sensitivity=a?h?\"variant\":\"case\":h?\"accent\":\"base\",this.locale=A,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"})}compare(a,h){return this.collator.compare(a,h)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Lc{constructor(a,h,A,x,E){this.text=a,this.image=h,this.scale=A,this.fontStack=x,this.textColor=E}}class on{constructor(a){this.sections=a}static fromString(a){return new on([new Lc(a,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(a=>a.text.length!==0||a.image&&a.image.name.length!==0)}static factory(a){return a instanceof on?a:on.fromString(a)}toString(){return this.sections.length===0?\"\":this.sections.map(a=>a.text).join(\"\")}}class kn{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof kn)return a;if(typeof a==\"number\")return new kn([a,a,a,a]);if(Array.isArray(a)&&!(a.length<1||a.length>4)){for(let h of a)if(typeof h!=\"number\")return;switch(a.length){case 1:a=[a[0],a[0],a[0],a[0]];break;case 2:a=[a[0],a[1],a[0],a[1]];break;case 3:a=[a[0],a[1],a[2],a[1]]}return new kn(a)}}toString(){return JSON.stringify(this.values)}}let Bm=new Set([\"center\",\"left\",\"right\",\"top\",\"bottom\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]);class Vo{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof Vo)return a;if(Array.isArray(a)&&!(a.length<1)&&a.length%2==0){for(let h=0;h=0&&u<=255&&typeof a==\"number\"&&a>=0&&a<=255&&typeof h==\"number\"&&h>=0&&h<=255?A===void 0||typeof A==\"number\"&&A>=0&&A<=1?null:`Invalid rgba value [${[u,a,h,A].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof A==\"number\"?[u,a,h,A]:[u,a,h]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function zl(u){if(u===null||typeof u==\"string\"||typeof u==\"boolean\"||typeof u==\"number\"||u instanceof ai||u instanceof La||u instanceof on||u instanceof kn||u instanceof Vo||u instanceof Vn)return!0;if(Array.isArray(u)){for(let a of u)if(!zl(a))return!1;return!0}if(typeof u==\"object\"){for(let a in u)if(!zl(u[a]))return!1;return!0}return!1}function Yi(u){if(u===null)return Ia;if(typeof u==\"string\")return Dr;if(typeof u==\"boolean\")return mr;if(typeof u==\"number\")return Se;if(u instanceof ai)return Os;if(u instanceof La)return sa;if(u instanceof on)return gt;if(u instanceof kn)return J;if(u instanceof Vo)return ht;if(u instanceof Vn)return nt;if(Array.isArray(u)){let a=u.length,h;for(let A of u){let x=Yi(A);if(h){if(h===x)continue;h=Tr;break}h=x}return vt(h||Tr,a)}return Ca}function _i(u){let a=typeof u;return u===null?\"\":a===\"string\"||a===\"number\"||a===\"boolean\"?String(u):u instanceof ai||u instanceof on||u instanceof kn||u instanceof Vo||u instanceof Vn?u.toString():JSON.stringify(u)}class Nl{constructor(a,h){this.type=a,this.value=h}static parse(a,h){if(a.length!==2)return h.error(`'literal' expression requires exactly one argument, but found ${a.length-1} instead.`);if(!zl(a[1]))return h.error(\"invalid value\");let A=a[1],x=Yi(A),E=h.expectedType;return x.kind!==\"array\"||x.N!==0||!E||E.kind!==\"array\"||typeof E.N==\"number\"&&E.N!==0||(x=E),new Nl(x,A)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class an{constructor(a){this.name=\"ExpressionEvaluationError\",this.message=a}toJSON(){return this.message}}let hu={string:Dr,number:Se,boolean:mr,object:Ca};class Jn{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A,x=1,E=a[0];if(E===\"array\"){let D,F;if(a.length>2){let V=a[1];if(typeof V!=\"string\"||!(V in hu)||V===\"object\")return h.error('The item type argument of \"array\" must be one of string, number, boolean',1);D=hu[V],x++}else D=Tr;if(a.length>3){if(a[2]!==null&&(typeof a[2]!=\"number\"||a[2]<0||a[2]!==Math.floor(a[2])))return h.error('The length argument to \"array\" must be a positive integer literal',2);F=a[2],x++}A=vt(D,F)}else{if(!hu[E])throw new Error(`Types doesn't contain name = ${E}`);A=hu[E]}let P=[];for(;xa.outputDefined())}}let Up={\"to-boolean\":mr,\"to-color\":Os,\"to-number\":Se,\"to-string\":Dr};class Ul{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[0];if(!Up[A])throw new Error(`Can't parse ${A} as it is not part of the known types`);if((A===\"to-boolean\"||A===\"to-string\")&&a.length!==2)return h.error(\"Expected one argument.\");let x=Up[A],E=[];for(let P=1;P4?`Invalid rbga value ${JSON.stringify(h)}: expected an array containing either three or four numeric values.`:mo(h[0],h[1],h[2],h[3]),!A))return new ai(h[0]/255,h[1]/255,h[2]/255,h[3])}throw new an(A||`Could not parse color from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"padding\":{let h;for(let A of this.args){h=A.evaluate(a);let x=kn.parse(h);if(x)return x}throw new an(`Could not parse padding from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"variableAnchorOffsetCollection\":{let h;for(let A of this.args){h=A.evaluate(a);let x=Vo.parse(h);if(x)return x}throw new an(`Could not parse variableAnchorOffsetCollection from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"number\":{let h=null;for(let A of this.args){if(h=A.evaluate(a),h===null)return 0;let x=Number(h);if(!isNaN(x))return x}throw new an(`Could not convert ${JSON.stringify(h)} to number.`)}case\"formatted\":return on.fromString(_i(this.args[0].evaluate(a)));case\"resolvedImage\":return Vn.fromString(_i(this.args[0].evaluate(a)));default:return _i(this.args[0].evaluate(a))}}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}let md=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class gd{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&\"id\"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==\"number\"?md[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(a){let h=this._parseColorCache[a];return h||(h=this._parseColorCache[a]=ai.parse(a)),h}}class _d{constructor(a,h,A=[],x,E=new Bl,P=[]){this.registry=a,this.path=A,this.key=A.map(D=>`[${D}]`).join(\"\"),this.scope=E,this.errors=P,this.expectedType=x,this._isConstant=h}parse(a,h,A,x,E={}){return h?this.concat(h,A,x)._parse(a,E):this._parse(a,E)}_parse(a,h){function A(x,E,P){return P===\"assert\"?new Jn(E,[x]):P===\"coerce\"?new Ul(E,[x]):x}if(a!==null&&typeof a!=\"string\"&&typeof a!=\"boolean\"&&typeof a!=\"number\"||(a=[\"literal\",a]),Array.isArray(a)){if(a.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');let x=a[0];if(typeof x!=\"string\")return this.error(`Expression name must be a string, but found ${typeof x} instead. If you wanted a literal array, use [\"literal\", [...]].`,0),null;let E=this.registry[x];if(E){let P=E.parse(a,this);if(!P)return null;if(this.expectedType){let D=this.expectedType,F=P.type;if(D.kind!==\"string\"&&D.kind!==\"number\"&&D.kind!==\"boolean\"&&D.kind!==\"object\"&&D.kind!==\"array\"||F.kind!==\"value\")if(D.kind!==\"color\"&&D.kind!==\"formatted\"&&D.kind!==\"resolvedImage\"||F.kind!==\"value\"&&F.kind!==\"string\")if(D.kind!==\"padding\"||F.kind!==\"value\"&&F.kind!==\"number\"&&F.kind!==\"array\")if(D.kind!==\"variableAnchorOffsetCollection\"||F.kind!==\"value\"&&F.kind!==\"array\"){if(this.checkSubtype(D,F))return null}else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"assert\")}if(!(P instanceof Nl)&&P.type.kind!==\"resolvedImage\"&&this._isConstant(P)){let D=new gd;try{P=new Nl(P.type,P.evaluate(D))}catch(F){return this.error(F.message),null}}return P}return this.error(`Unknown expression \"${x}\". If you wanted a literal array, use [\"literal\", [...]].`,0)}return this.error(a===void 0?\"'undefined' value invalid. Use null instead.\":typeof a==\"object\"?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof a} instead.`)}concat(a,h,A){let x=typeof a==\"number\"?this.path.concat(a):this.path,E=A?this.scope.concat(A):this.scope;return new _d(this.registry,this._isConstant,x,h||null,E,this.errors)}error(a,...h){let A=`${this.key}${h.map(x=>`[${x}]`).join(\"\")}`;this.errors.push(new dn(A,a))}checkSubtype(a,h){let A=Dt(a,h);return A&&this.error(A),A}}class yd{constructor(a,h,A){this.type=sa,this.locale=A,this.caseSensitive=a,this.diacriticSensitive=h}static parse(a,h){if(a.length!==2)return h.error(\"Expected one argument.\");let A=a[1];if(typeof A!=\"object\"||Array.isArray(A))return h.error(\"Collator options argument must be an object.\");let x=h.parse(A[\"case-sensitive\"]!==void 0&&A[\"case-sensitive\"],1,mr);if(!x)return null;let E=h.parse(A[\"diacritic-sensitive\"]!==void 0&&A[\"diacritic-sensitive\"],1,mr);if(!E)return null;let P=null;return A.locale&&(P=h.parse(A.locale,1,Dr),!P)?null:new yd(x,E,P)}evaluate(a){return new La(this.caseSensitive.evaluate(a),this.diacriticSensitive.evaluate(a),this.locale?this.locale.evaluate(a):null)}eachChild(a){a(this.caseSensitive),a(this.diacriticSensitive),this.locale&&a(this.locale)}outputDefined(){return!1}}let lt=8192;function ft(u,a){u[0]=Math.min(u[0],a[0]),u[1]=Math.min(u[1],a[1]),u[2]=Math.max(u[2],a[0]),u[3]=Math.max(u[3],a[1])}function Lt(u,a){return!(u[0]<=a[0]||u[2]>=a[2]||u[1]<=a[1]||u[3]>=a[3])}function $t(u,a){let h=(180+u[0])/360,A=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u[1]*Math.PI/360)))/360,x=Math.pow(2,a.z);return[Math.round(h*x*lt),Math.round(A*x*lt)]}function ge(u,a,h){let A=u[0]-a[0],x=u[1]-a[1],E=u[0]-h[0],P=u[1]-h[1];return A*P-E*x==0&&A*E<=0&&x*P<=0}function qe(u,a){let h=!1;for(let P=0,D=a.length;P(A=u)[1]!=(E=F[V+1])[1]>A[1]&&A[0]<(E[0]-x[0])*(A[1]-x[1])/(E[1]-x[1])+x[0]&&(h=!h)}}var A,x,E;return h}function ti(u,a){for(let h=0;h0&&D<0||P<0&&D>0}function Ss(u,a,h){for(let V of h)for(let q=0;qh[2]){let x=.5*A,E=u[0]-h[0]>x?-A:h[0]-u[0]>x?A:0;E===0&&(E=u[0]-h[2]>x?-A:h[2]-u[0]>x?A:0),u[0]+=E}ft(a,u)}function Xg(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let D of u)for(let F of D){let V=[F.x+E[0],F.y+E[1]];Ex(V,a,h,x),P.push(V)}return P}function Kg(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let F of u){let V=[];for(let q of F){let X=[q.x+E[0],q.y+E[1]];ft(a,X),V.push(X)}P.push(V)}if(a[2]-a[0]<=x/2){(D=a)[0]=D[1]=1/0,D[2]=D[3]=-1/0;for(let F of P)for(let V of F)Ex(V,a,h,x)}var D;return P}class Af{constructor(a,h){this.type=mr,this.geojson=a,this.geometries=h}static parse(a,h){if(a.length!==2)return h.error(`'within' expression requires exactly one argument, but found ${a.length-1} instead.`);if(zl(a[1])){let A=a[1];if(A.type===\"FeatureCollection\")for(let x=0;x!Array.isArray(V)||V.length===a.length-1),F=null;for(let[V,q]of D){F=new _d(h.registry,Nm,h.path,null,h.scope);let X=[],et=!1;for(let at=1;at{return et=X,Array.isArray(et)?`(${et.map(xt).join(\", \")})`:`(${xt(et.type)}...)`;var et}).join(\" | \"),q=[];for(let X=1;X{h=a?h&&Nm(A):h&&A instanceof Nl}),!!h&&Um(u)&&Vm(u,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Um(u){if(u instanceof cl&&(u.name===\"get\"&&u.args.length===1||u.name===\"feature-state\"||u.name===\"has\"&&u.args.length===1||u.name===\"properties\"||u.name===\"geometry-type\"||u.name===\"id\"||/^filter-/.test(u.name))||u instanceof Af)return!1;let a=!0;return u.eachChild(h=>{a&&!Um(h)&&(a=!1)}),a}function Vp(u){if(u instanceof cl&&u.name===\"feature-state\")return!1;let a=!0;return u.eachChild(h=>{a&&!Vp(h)&&(a=!1)}),a}function Vm(u,a){if(u instanceof cl&&a.indexOf(u.name)>=0)return!1;let h=!0;return u.eachChild(A=>{h&&!Vm(A,a)&&(h=!1)}),h}function vd(u,a){let h=u.length-1,A,x,E=0,P=h,D=0;for(;E<=P;)if(D=Math.floor((E+P)/2),A=u[D],x=u[D+1],A<=a){if(D===h||aa))throw new an(\"Input is not a number.\");P=D-1}return 0}class nh{constructor(a,h,A){this.type=a,this.input=h,this.labels=[],this.outputs=[];for(let[x,E]of A)this.labels.push(x),this.outputs.push(E)}static parse(a,h){if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");let A=h.parse(a[1],1,Se);if(!A)return null;let x=[],E=null;h.expectedType&&h.expectedType.kind!==\"value\"&&(E=h.expectedType);for(let P=1;P=D)return h.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',V);let X=h.parse(F,q,E);if(!X)return null;E=E||X.type,x.push([D,X])}return new nh(E,A,x)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;return x>=h[E-1]?A[E-1].evaluate(a):A[vd(h,x)].evaluate(a)}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function ui(u,a,h){return u+h*(a-u)}function jm(u,a,h){return u.map((A,x)=>ui(A,a[x],h))}let Ra={number:ui,color:function(u,a,h,A=\"rgb\"){switch(A){case\"rgb\":{let[x,E,P,D]=jm(u.rgb,a.rgb,h);return new ai(x,E,P,D,!1)}case\"hcl\":{let[x,E,P,D]=u.hcl,[F,V,q,X]=a.hcl,et,at;if(isNaN(x)||isNaN(F))isNaN(x)?isNaN(F)?et=NaN:(et=F,P!==1&&P!==0||(at=V)):(et=x,q!==1&&q!==0||(at=E));else{let Vt=F-x;F>x&&Vt>180?Vt-=360:F180&&(Vt+=360),et=x+h*Vt}let[ct,mt,bt,Et]=function([Vt,kt,jt,qt]){return Vt=isNaN(Vt)?0:Vt*xr,Li([jt,Math.cos(Vt)*kt,Math.sin(Vt)*kt,qt])}([et,at??ui(E,V,h),ui(P,q,h),ui(D,X,h)]);return new ai(ct,mt,bt,Et,!1)}case\"lab\":{let[x,E,P,D]=Li(jm(u.lab,a.lab,h));return new ai(x,E,P,D,!1)}}},array:jm,padding:function(u,a,h){return new kn(jm(u.values,a.values,h))},variableAnchorOffsetCollection:function(u,a,h){let A=u.values,x=a.values;if(A.length!==x.length)throw new an(`Cannot interpolate values of different length. from: ${u.toString()}, to: ${a.toString()}`);let E=[];for(let P=0;Ptypeof q!=\"number\"||q<0||q>1))return h.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);x={name:\"cubic-bezier\",controlPoints:V}}}if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");if(E=h.parse(E,2,Se),!E)return null;let D=[],F=null;A===\"interpolate-hcl\"||A===\"interpolate-lab\"?F=Os:h.expectedType&&h.expectedType.kind!==\"value\"&&(F=h.expectedType);for(let V=0;V=q)return h.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',et);let ct=h.parse(X,at,F);if(!ct)return null;F=F||ct.type,D.push([q,ct])}return re(F,Se)||re(F,Os)||re(F,J)||re(F,ht)||re(F,vt(Se))?new Da(F,A,x,E,D):h.error(`Type ${xt(F)} is not interpolatable.`)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;if(x>=h[E-1])return A[E-1].evaluate(a);let P=vd(h,x),D=Da.interpolationFactor(this.interpolation,x,h[P],h[P+1]),F=A[P].evaluate(a),V=A[P+1].evaluate(a);switch(this.operator){case\"interpolate\":return Ra[this.type.kind](F,V,D);case\"interpolate-hcl\":return Ra.color(F,V,D,\"hcl\");case\"interpolate-lab\":return Ra.color(F,V,D,\"lab\")}}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function Jg(u,a,h,A){let x=A-h,E=u-h;return x===0?0:a===1?E/x:(Math.pow(a,E)-1)/(Math.pow(a,x)-1)}class Gm{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expectected at least one argument.\");let A=null,x=h.expectedType;x&&x.kind!==\"value\"&&(A=x);let E=[];for(let D of a.slice(1)){let F=h.parse(D,1+E.length,A,void 0,{typeAnnotation:\"omit\"});if(!F)return null;A=A||F.type,E.push(F)}if(!A)throw new Error(\"No output type\");let P=x&&E.some(D=>Dt(x,D.type));return new Gm(P?Tr:A,E)}evaluate(a){let h,A=null,x=0;for(let E of this.args)if(x++,A=E.evaluate(a),A&&A instanceof Vn&&!A.available&&(h||(h=A.name),A=null,x===this.args.length&&(A=h)),A!==null)break;return A}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}class Wm{constructor(a,h){this.type=h.type,this.bindings=[].concat(a),this.result=h}evaluate(a){return this.result.evaluate(a)}eachChild(a){for(let h of this.bindings)a(h[1]);a(this.result)}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found ${a.length-1} instead.`);let A=[];for(let E=1;E=A.length)throw new an(`Array index out of bounds: ${h} > ${A.length-1}.`);if(h!==Math.floor(h))throw new an(`Array index must be an integer, but found ${h} instead.`);return A[h]}eachChild(a){a(this.index),a(this.input)}outputDefined(){return!1}}class Hm{constructor(a,h){this.type=mr,this.needle=a,this.haystack=h}static parse(a,h){if(a.length!==3)return h.error(`Expected 2 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Tr);return A&&x?Mt(A.type,[mr,Dr,Se,Ia,Tr])?new Hm(A,x):h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`):null}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!A)return!1;if(!Ut(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Yi(h))} instead.`);if(!Ut(A,[\"string\",\"array\"]))throw new an(`Expected second argument to be of type array or string, but found ${xt(Yi(A))} instead.`);return A.indexOf(h)>=0}eachChild(a){a(this.needle),a(this.haystack)}outputDefined(){return!0}}class Gp{constructor(a,h,A){this.type=Se,this.needle=a,this.haystack=h,this.fromIndex=A}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Tr);if(!A||!x)return null;if(!Mt(A.type,[mr,Dr,Se,Ia,Tr]))return h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Se);return E?new Gp(A,x,E):null}return new Gp(A,x)}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!Ut(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Yi(h))} instead.`);if(!Ut(A,[\"string\",\"array\"]))throw new an(`Expected second argument to be of type array or string, but found ${xt(Yi(A))} instead.`);if(this.fromIndex){let x=this.fromIndex.evaluate(a);return A.indexOf(h,x)}return A.indexOf(h)}eachChild(a){a(this.needle),a(this.haystack),this.fromIndex&&a(this.fromIndex)}outputDefined(){return!1}}class xd{constructor(a,h,A,x,E,P){this.inputType=a,this.type=h,this.input=A,this.cases=x,this.outputs=E,this.otherwise=P}static parse(a,h){if(a.length<5)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if(a.length%2!=1)return h.error(\"Expected an even number of arguments.\");let A,x;h.expectedType&&h.expectedType.kind!==\"value\"&&(x=h.expectedType);let E={},P=[];for(let V=2;VNumber.MAX_SAFE_INTEGER)return et.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof ct==\"number\"&&Math.floor(ct)!==ct)return et.error(\"Numeric branch labels must be integer values.\");if(A){if(et.checkSubtype(A,Yi(ct)))return null}else A=Yi(ct);if(E[String(ct)]!==void 0)return et.error(\"Branch labels must be unique.\");E[String(ct)]=P.length}let at=h.parse(X,V,x);if(!at)return null;x=x||at.type,P.push(at)}let D=h.parse(a[1],1,Tr);if(!D)return null;let F=h.parse(a[a.length-1],a.length-1,x);return F?D.type.kind!==\"value\"&&h.concat(1).checkSubtype(A,D.type)?null:new xd(A,x,D,E,P,F):null}evaluate(a){let h=this.input.evaluate(a);return(Yi(h)===this.inputType&&this.outputs[this.cases[h]]||this.otherwise).evaluate(a)}eachChild(a){a(this.input),this.outputs.forEach(a),a(this.otherwise)}outputDefined(){return this.outputs.every(a=>a.outputDefined())&&this.otherwise.outputDefined()}}class Wp{constructor(a,h,A){this.type=a,this.branches=h,this.otherwise=A}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found only ${a.length-1}.`);if(a.length%2!=0)return h.error(\"Expected an odd number of arguments.\");let A;h.expectedType&&h.expectedType.kind!==\"value\"&&(A=h.expectedType);let x=[];for(let P=1;Ph.outputDefined())&&this.otherwise.outputDefined()}}class bd{constructor(a,h,A,x){this.type=a,this.input=h,this.beginIndex=A,this.endIndex=x}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Se);if(!A||!x)return null;if(!Mt(A.type,[vt(Tr),Dr,Tr]))return h.error(`Expected first argument to be of type array or string, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Se);return E?new bd(A.type,A,x,E):null}return new bd(A.type,A,x)}evaluate(a){let h=this.input.evaluate(a),A=this.beginIndex.evaluate(a);if(!Ut(h,[\"string\",\"array\"]))throw new an(`Expected first argument to be of type array or string, but found ${xt(Yi(h))} instead.`);if(this.endIndex){let x=this.endIndex.evaluate(a);return h.slice(A,x)}return h.slice(A)}eachChild(a){a(this.input),a(this.beginIndex),this.endIndex&&a(this.endIndex)}outputDefined(){return!1}}function qm(u,a){return u===\"==\"||u===\"!=\"?a.kind===\"boolean\"||a.kind===\"string\"||a.kind===\"number\"||a.kind===\"null\"||a.kind===\"value\":a.kind===\"string\"||a.kind===\"number\"||a.kind===\"value\"}function wd(u,a,h,A){return A.compare(a,h)===0}function fu(u,a,h){let A=u!==\"==\"&&u!==\"!=\";return class N8{constructor(E,P,D){this.type=mr,this.lhs=E,this.rhs=P,this.collator=D,this.hasUntypedArgument=E.type.kind===\"value\"||P.type.kind===\"value\"}static parse(E,P){if(E.length!==3&&E.length!==4)return P.error(\"Expected two or three arguments.\");let D=E[0],F=P.parse(E[1],1,Tr);if(!F)return null;if(!qm(D,F.type))return P.concat(1).error(`\"${D}\" comparisons are not supported for type '${xt(F.type)}'.`);let V=P.parse(E[2],2,Tr);if(!V)return null;if(!qm(D,V.type))return P.concat(2).error(`\"${D}\" comparisons are not supported for type '${xt(V.type)}'.`);if(F.type.kind!==V.type.kind&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(`Cannot compare types '${xt(F.type)}' and '${xt(V.type)}'.`);A&&(F.type.kind===\"value\"&&V.type.kind!==\"value\"?F=new Jn(V.type,[F]):F.type.kind!==\"value\"&&V.type.kind===\"value\"&&(V=new Jn(F.type,[V])));let q=null;if(E.length===4){if(F.type.kind!==\"string\"&&V.type.kind!==\"string\"&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(\"Cannot use collator to compare non-string types.\");if(q=P.parse(E[3],3,sa),!q)return null}return new N8(F,V,q)}evaluate(E){let P=this.lhs.evaluate(E),D=this.rhs.evaluate(E);if(A&&this.hasUntypedArgument){let F=Yi(P),V=Yi(D);if(F.kind!==V.kind||F.kind!==\"string\"&&F.kind!==\"number\")throw new an(`Expected arguments for \"${u}\" to be (string, string) or (number, number), but found (${F.kind}, ${V.kind}) instead.`)}if(this.collator&&!A&&this.hasUntypedArgument){let F=Yi(P),V=Yi(D);if(F.kind!==\"string\"||V.kind!==\"string\")return a(E,P,D)}return this.collator?h(E,P,D,this.collator.evaluate(E)):a(E,P,D)}eachChild(E){E(this.lhs),E(this.rhs),this.collator&&E(this.collator)}outputDefined(){return!0}}}let sh=fu(\"==\",function(u,a,h){return a===h},wd),Ht=fu(\"!=\",function(u,a,h){return a!==h},function(u,a,h,A){return!wd(0,a,h,A)}),fe=fu(\"<\",function(u,a,h){return a\",function(u,a,h){return a>h},function(u,a,h,A){return A.compare(a,h)>0}),vr=fu(\"<=\",function(u,a,h){return a<=h},function(u,a,h,A){return A.compare(a,h)<=0}),g=fu(\">=\",function(u,a,h){return a>=h},function(u,a,h,A){return A.compare(a,h)>=0});class Ni{constructor(a,h,A,x,E){this.type=Dr,this.number=a,this.locale=h,this.currency=A,this.minFractionDigits=x,this.maxFractionDigits=E}static parse(a,h){if(a.length!==3)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Se);if(!A)return null;let x=a[2];if(typeof x!=\"object\"||Array.isArray(x))return h.error(\"NumberFormat options argument must be an object.\");let E=null;if(x.locale&&(E=h.parse(x.locale,1,Dr),!E))return null;let P=null;if(x.currency&&(P=h.parse(x.currency,1,Dr),!P))return null;let D=null;if(x[\"min-fraction-digits\"]&&(D=h.parse(x[\"min-fraction-digits\"],1,Se),!D))return null;let F=null;return x[\"max-fraction-digits\"]&&(F=h.parse(x[\"max-fraction-digits\"],1,Se),!F)?null:new Ni(A,E,P,D,F)}evaluate(a){return new Intl.NumberFormat(this.locale?this.locale.evaluate(a):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(a):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(a):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(a):void 0}).format(this.number.evaluate(a))}eachChild(a){a(this.number),this.locale&&a(this.locale),this.currency&&a(this.currency),this.minFractionDigits&&a(this.minFractionDigits),this.maxFractionDigits&&a(this.maxFractionDigits)}outputDefined(){return!1}}class Si{constructor(a){this.type=gt,this.sections=a}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[1];if(!Array.isArray(A)&&typeof A==\"object\")return h.error(\"First argument must be an image or text section.\");let x=[],E=!1;for(let P=1;P<=a.length-1;++P){let D=a[P];if(E&&typeof D==\"object\"&&!Array.isArray(D)){E=!1;let F=null;if(D[\"font-scale\"]&&(F=h.parse(D[\"font-scale\"],1,Se),!F))return null;let V=null;if(D[\"text-font\"]&&(V=h.parse(D[\"text-font\"],1,vt(Dr)),!V))return null;let q=null;if(D[\"text-color\"]&&(q=h.parse(D[\"text-color\"],1,Os),!q))return null;let X=x[x.length-1];X.scale=F,X.font=V,X.textColor=q}else{let F=h.parse(a[P],1,Tr);if(!F)return null;let V=F.type.kind;if(V!==\"string\"&&V!==\"value\"&&V!==\"null\"&&V!==\"resolvedImage\")return h.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");E=!0,x.push({content:F,scale:null,font:null,textColor:null})}}return new Si(x)}evaluate(a){return new on(this.sections.map(h=>{let A=h.content.evaluate(a);return Yi(A)===nt?new Lc(\"\",A,null,null,null):new Lc(_i(A),null,h.scale?h.scale.evaluate(a):null,h.font?h.font.evaluate(a).join(\",\"):null,h.textColor?h.textColor.evaluate(a):null)}))}eachChild(a){for(let h of this.sections)a(h.content),h.scale&&a(h.scale),h.font&&a(h.font),h.textColor&&a(h.textColor)}outputDefined(){return!1}}class Tt{constructor(a){this.type=nt,this.input=a}static parse(a,h){if(a.length!==2)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Dr);return A?new Tt(A):h.error(\"No image name provided.\")}evaluate(a){let h=this.input.evaluate(a),A=Vn.fromString(h);return A&&a.availableImages&&(A.available=a.availableImages.indexOf(h)>-1),A}eachChild(a){a(this.input)}outputDefined(){return!1}}class Ts{constructor(a){this.type=Se,this.input=a}static parse(a,h){if(a.length!==2)return h.error(`Expected 1 argument, but found ${a.length-1} instead.`);let A=h.parse(a[1],1);return A?A.type.kind!==\"array\"&&A.type.kind!==\"string\"&&A.type.kind!==\"value\"?h.error(`Expected argument of type string or array, but found ${xt(A.type)} instead.`):new Ts(A):null}evaluate(a){let h=this.input.evaluate(a);if(typeof h==\"string\"||Array.isArray(h))return h.length;throw new an(`Expected value to be of type string or array, but found ${xt(Yi(h))} instead.`)}eachChild(a){a(this.input)}outputDefined(){return!1}}let as={\"==\":sh,\"!=\":Ht,\">\":De,\"<\":fe,\">=\":g,\"<=\":vr,array:Jn,at:jp,boolean:Jn,case:Wp,coalesce:Gm,collator:yd,format:Si,image:Tt,in:Hm,\"index-of\":Gp,interpolate:Da,\"interpolate-hcl\":Da,\"interpolate-lab\":Da,length:Ts,let:Wm,literal:Nl,match:xd,number:Jn,\"number-format\":Ni,object:Jn,slice:bd,step:nh,string:Jn,\"to-boolean\":Ul,\"to-color\":Ul,\"to-number\":Ul,\"to-string\":Ul,var:zm,within:Af};function li(u,[a,h,A,x]){a=a.evaluate(u),h=h.evaluate(u),A=A.evaluate(u);let E=x?x.evaluate(u):1,P=mo(a,h,A,E);if(P)throw new an(P);return new ai(a/255,h/255,A/255,E,!1)}function _n(u,a){return u in a}function ul(u,a){let h=a[u];return h===void 0?null:h}function Ur(u){return{type:u}}function hi(u){return{result:\"success\",value:u}}function go(u){return{result:\"error\",value:u}}function mf(u){return u[\"property-type\"]===\"data-driven\"||u[\"property-type\"]===\"cross-faded-data-driven\"}function t_(u){return!!u.expression&&u.expression.parameters.indexOf(\"zoom\")>-1}function Sd(u){return!!u.expression&&u.expression.interpolated}function qr(u){return u instanceof Number?\"number\":u instanceof String?\"string\":u instanceof Boolean?\"boolean\":Array.isArray(u)?\"array\":u===null?\"null\":typeof u}function Qi(u){return typeof u==\"object\"&&u!==null&&!Array.isArray(u)}function kc(u){return u}function ci(u,a){let h=a.type===\"color\",A=u.stops&&typeof u.stops[0][0]==\"object\",x=A||!(A||u.property!==void 0),E=u.type||(Sd(a)?\"exponential\":\"interval\");if(h||a.type===\"padding\"){let q=h?ai.parse:kn.parse;(u=Uo({},u)).stops&&(u.stops=u.stops.map(X=>[X[0],q(X[1])])),u.default=q(u.default?u.default:a.default)}if(u.colorSpace&&(P=u.colorSpace)!==\"rgb\"&&P!==\"hcl\"&&P!==\"lab\")throw new Error(`Unknown color space: \"${u.colorSpace}\"`);var P;let D,F,V;if(E===\"exponential\")D=Ti;else if(E===\"interval\")D=It;else if(E===\"categorical\"){D=$e,F=Object.create(null);for(let q of u.stops)F[q[0]]=q[1];V=typeof u.stops[0][0]}else{if(E!==\"identity\")throw new Error(`Unknown function type \"${E}\"`);D=Zm}if(A){let q={},X=[];for(let ct=0;ctct[0]),evaluate:({zoom:ct},mt)=>Ti({stops:et,base:u.base},a,ct).evaluate(ct,mt)}}if(x){let q=E===\"exponential\"?{name:\"exponential\",base:u.base!==void 0?u.base:1}:null;return{kind:\"camera\",interpolationType:q,interpolationFactor:Da.interpolationFactor.bind(void 0,q),zoomStops:u.stops.map(X=>X[0]),evaluate:({zoom:X})=>D(u,a,X,F,V)}}return{kind:\"source\",evaluate(q,X){let et=X&&X.properties?X.properties[u.property]:void 0;return et===void 0?aa(u.default,a.default):D(u,a,et,F,V)}}}function aa(u,a,h){return u!==void 0?u:a!==void 0?a:h!==void 0?h:void 0}function $e(u,a,h,A,x){return aa(typeof h===x?A[h]:void 0,u.default,a.default)}function It(u,a,h){if(qr(h)!==\"number\")return aa(u.default,a.default);let A=u.stops.length;if(A===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[A-1][0])return u.stops[A-1][1];let x=vd(u.stops.map(E=>E[0]),h);return u.stops[x][1]}function Ti(u,a,h){let A=u.base!==void 0?u.base:1;if(qr(h)!==\"number\")return aa(u.default,a.default);let x=u.stops.length;if(x===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[x-1][0])return u.stops[x-1][1];let E=vd(u.stops.map(q=>q[0]),h),P=function(q,X,et,at){let ct=at-et,mt=q-et;return ct===0?0:X===1?mt/ct:(Math.pow(X,mt)-1)/(Math.pow(X,ct)-1)}(h,A,u.stops[E][0],u.stops[E+1][0]),D=u.stops[E][1],F=u.stops[E+1][1],V=Ra[a.type]||kc;return typeof D.evaluate==\"function\"?{evaluate(...q){let X=D.evaluate.apply(void 0,q),et=F.evaluate.apply(void 0,q);if(X!==void 0&&et!==void 0)return V(X,et,P,u.colorSpace)}}:V(D,F,P,u.colorSpace)}function Zm(u,a,h){switch(a.type){case\"color\":h=ai.parse(h);break;case\"formatted\":h=on.fromString(h.toString());break;case\"resolvedImage\":h=Vn.fromString(h.toString());break;case\"padding\":h=kn.parse(h);break;default:qr(h)===a.type||a.type===\"enum\"&&a.values[h]||(h=void 0)}return aa(h,u.default,a.default)}cl.register(as,{error:[{kind:\"error\"},[Dr],(u,[a])=>{throw new an(a.evaluate(u))}],typeof:[Dr,[Tr],(u,[a])=>xt(Yi(a.evaluate(u)))],\"to-rgba\":[vt(Se,4),[Os],(u,[a])=>{let[h,A,x,E]=a.evaluate(u).rgb;return[255*h,255*A,255*x,E]}],rgb:[Os,[Se,Se,Se],li],rgba:[Os,[Se,Se,Se,Se],li],has:{type:mr,overloads:[[[Dr],(u,[a])=>_n(a.evaluate(u),u.properties())],[[Dr,Ca],(u,[a,h])=>_n(a.evaluate(u),h.evaluate(u))]]},get:{type:Tr,overloads:[[[Dr],(u,[a])=>ul(a.evaluate(u),u.properties())],[[Dr,Ca],(u,[a,h])=>ul(a.evaluate(u),h.evaluate(u))]]},\"feature-state\":[Tr,[Dr],(u,[a])=>ul(a.evaluate(u),u.featureState||{})],properties:[Ca,[],u=>u.properties()],\"geometry-type\":[Dr,[],u=>u.geometryType()],id:[Tr,[],u=>u.id()],zoom:[Se,[],u=>u.globals.zoom],\"heatmap-density\":[Se,[],u=>u.globals.heatmapDensity||0],\"line-progress\":[Se,[],u=>u.globals.lineProgress||0],accumulated:[Tr,[],u=>u.globals.accumulated===void 0?null:u.globals.accumulated],\"+\":[Se,Ur(Se),(u,a)=>{let h=0;for(let A of a)h+=A.evaluate(u);return h}],\"*\":[Se,Ur(Se),(u,a)=>{let h=1;for(let A of a)h*=A.evaluate(u);return h}],\"-\":{type:Se,overloads:[[[Se,Se],(u,[a,h])=>a.evaluate(u)-h.evaluate(u)],[[Se],(u,[a])=>-a.evaluate(u)]]},\"/\":[Se,[Se,Se],(u,[a,h])=>a.evaluate(u)/h.evaluate(u)],\"%\":[Se,[Se,Se],(u,[a,h])=>a.evaluate(u)%h.evaluate(u)],ln2:[Se,[],()=>Math.LN2],pi:[Se,[],()=>Math.PI],e:[Se,[],()=>Math.E],\"^\":[Se,[Se,Se],(u,[a,h])=>Math.pow(a.evaluate(u),h.evaluate(u))],sqrt:[Se,[Se],(u,[a])=>Math.sqrt(a.evaluate(u))],log10:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))/Math.LN10],ln:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))],log2:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))/Math.LN2],sin:[Se,[Se],(u,[a])=>Math.sin(a.evaluate(u))],cos:[Se,[Se],(u,[a])=>Math.cos(a.evaluate(u))],tan:[Se,[Se],(u,[a])=>Math.tan(a.evaluate(u))],asin:[Se,[Se],(u,[a])=>Math.asin(a.evaluate(u))],acos:[Se,[Se],(u,[a])=>Math.acos(a.evaluate(u))],atan:[Se,[Se],(u,[a])=>Math.atan(a.evaluate(u))],min:[Se,Ur(Se),(u,a)=>Math.min(...a.map(h=>h.evaluate(u)))],max:[Se,Ur(Se),(u,a)=>Math.max(...a.map(h=>h.evaluate(u)))],abs:[Se,[Se],(u,[a])=>Math.abs(a.evaluate(u))],round:[Se,[Se],(u,[a])=>{let h=a.evaluate(u);return h<0?-Math.round(-h):Math.round(h)}],floor:[Se,[Se],(u,[a])=>Math.floor(a.evaluate(u))],ceil:[Se,[Se],(u,[a])=>Math.ceil(a.evaluate(u))],\"filter-==\":[mr,[Dr,Tr],(u,[a,h])=>u.properties()[a.value]===h.value],\"filter-id-==\":[mr,[Tr],(u,[a])=>u.id()===a.value],\"filter-type-==\":[mr,[Dr],(u,[a])=>u.geometryType()===a.value],\"filter-<\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A{let h=u.id(),A=a.value;return typeof h==typeof A&&h\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>x}],\"filter-id->\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>A}],\"filter-<=\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A<=x}],\"filter-id-<=\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h<=A}],\"filter->=\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>=x}],\"filter-id->=\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>=A}],\"filter-has\":[mr,[Tr],(u,[a])=>a.value in u.properties()],\"filter-has-id\":[mr,[],u=>u.id()!==null&&u.id()!==void 0],\"filter-type-in\":[mr,[vt(Dr)],(u,[a])=>a.value.indexOf(u.geometryType())>=0],\"filter-id-in\":[mr,[vt(Tr)],(u,[a])=>a.value.indexOf(u.id())>=0],\"filter-in-small\":[mr,[Dr,vt(Tr)],(u,[a,h])=>h.value.indexOf(u.properties()[a.value])>=0],\"filter-in-large\":[mr,[Dr,vt(Tr)],(u,[a,h])=>function(A,x,E,P){for(;E<=P;){let D=E+P>>1;if(x[D]===A)return!0;x[D]>A?P=D-1:E=D+1}return!1}(u.properties()[a.value],h.value,0,h.value.length-1)],all:{type:mr,overloads:[[[mr,mr],(u,[a,h])=>a.evaluate(u)&&h.evaluate(u)],[Ur(mr),(u,a)=>{for(let h of a)if(!h.evaluate(u))return!1;return!0}]]},any:{type:mr,overloads:[[[mr,mr],(u,[a,h])=>a.evaluate(u)||h.evaluate(u)],[Ur(mr),(u,a)=>{for(let h of a)if(h.evaluate(u))return!0;return!1}]]},\"!\":[mr,[mr],(u,[a])=>!a.evaluate(u)],\"is-supported-script\":[mr,[Dr],(u,[a])=>{let h=u.globals&&u.globals.isSupportedScript;return!h||h(a.evaluate(u))}],upcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toUpperCase()],downcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toLowerCase()],concat:[Dr,Ur(Tr),(u,a)=>a.map(h=>_i(h.evaluate(u))).join(\"\")],\"resolved-locale\":[Dr,[sa],(u,[a])=>a.evaluate(u).resolvedLocale()]});class Ym{constructor(a,h){var A;this.expression=a,this._warningHistory={},this._evaluator=new gd,this._defaultValue=h?(A=h).type===\"color\"&&Qi(A.default)?new ai(0,0,0,0):A.type===\"color\"?ai.parse(A.default)||null:A.type===\"padding\"?kn.parse(A.default)||null:A.type===\"variableAnchorOffsetCollection\"?Vo.parse(A.default)||null:A.default===void 0?null:A.default:null,this._enumValues=h&&h.type===\"enum\"?h.values:null}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._evaluator.globals=a,this._evaluator.feature=h,this._evaluator.featureState=A,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P,this.expression.evaluate(this._evaluator)}evaluate(a,h,A,x,E,P){this._evaluator.globals=a,this._evaluator.feature=h||null,this._evaluator.featureState=A||null,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P||null;try{let D=this.expression.evaluate(this._evaluator);if(D==null||typeof D==\"number\"&&D!=D)return this._defaultValue;if(this._enumValues&&!(D in this._enumValues))throw new an(`Expected value to be one of ${Object.keys(this._enumValues).map(F=>JSON.stringify(F)).join(\", \")}, but found ${JSON.stringify(D)} instead.`);return D}catch(D){return this._warningHistory[D.message]||(this._warningHistory[D.message]=!0,typeof console<\"u\"&&console.warn(D.message)),this._defaultValue}}}function Hp(u){return Array.isArray(u)&&u.length>0&&typeof u[0]==\"string\"&&u[0]in as}function qp(u,a){let h=new _d(as,Nm,[],a?function(x){let E={color:Os,string:Dr,number:Se,enum:Dr,boolean:mr,formatted:gt,padding:J,resolvedImage:nt,variableAnchorOffsetCollection:ht};return x.type===\"array\"?vt(E[x.value]||Tr,x.length):E[x.type]}(a):void 0),A=h.parse(u,void 0,void 0,void 0,a&&a.type===\"string\"?{typeAnnotation:\"coerce\"}:void 0);return A?hi(new Ym(A,a)):go(h.errors)}class Qm{constructor(a,h){this.kind=a,this._styleExpression=h,this.isStateDependent=a!==\"constant\"&&!Vp(h.expression)}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}}class wt{constructor(a,h,A,x){this.kind=a,this.zoomStops=A,this._styleExpression=h,this.isStateDependent=a!==\"camera\"&&!Vp(h.expression),this.interpolationType=x}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}interpolationFactor(a,h,A){return this.interpolationType?Da.interpolationFactor(this.interpolationType,a,h,A):0}}function $m(u,a){let h=qp(u,a);if(h.result===\"error\")return h;let A=h.value.expression,x=Um(A);if(!x&&!mf(a))return go([new dn(\"\",\"data expressions not supported\")]);let E=Vm(A,[\"zoom\"]);if(!E&&!t_(a))return go([new dn(\"\",\"zoom expressions not supported\")]);let P=Md(A);return P||E?P instanceof dn?go([P]):P instanceof Da&&!Sd(a)?go([new dn(\"\",'\"interpolate\" expressions cannot be used with this property')]):hi(P?new wt(x?\"camera\":\"composite\",h.value,P.labels,P instanceof Da?P.interpolation:void 0):new Qm(x?\"constant\":\"source\",h.value)):go([new dn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class Td{constructor(a,h){this._parameters=a,this._specification=h,Uo(this,ci(this._parameters,this._specification))}static deserialize(a){return new Td(a._parameters,a._specification)}static serialize(a){return{_parameters:a._parameters,_specification:a._specification}}}function Md(u){let a=null;if(u instanceof Wm)a=Md(u.result);else if(u instanceof Gm){for(let h of u.args)if(a=Md(h),a)break}else(u instanceof nh||u instanceof Da)&&u.input instanceof cl&&u.input.name===\"zoom\"&&(a=u);return a instanceof dn||u.eachChild(h=>{let A=Md(h);A instanceof dn?a=A:!a&&A?a=new dn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):a&&A&&a!==A&&(a=new dn(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'))}),a}function Ed(u){if(u===!0||u===!1)return!0;if(!Array.isArray(u)||u.length===0)return!1;switch(u[0]){case\"has\":return u.length>=2&&u[1]!==\"$id\"&&u[1]!==\"$type\";case\"in\":return u.length>=3&&(typeof u[1]!=\"string\"||Array.isArray(u[2]));case\"!in\":case\"!has\":case\"none\":return!1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return u.length!==3||Array.isArray(u[1])||Array.isArray(u[2]);case\"any\":case\"all\":for(let a of u.slice(1))if(!Ed(a)&&typeof a!=\"boolean\")return!1;return!0;default:return!0}}let Px={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Xm(u){if(u==null)return{filter:()=>!0,needGeometry:!1};Ed(u)||(u=gf(u));let a=qp(u,Px);if(a.result===\"error\")throw new Error(a.value.map(h=>`${h.key}: ${h.message}`).join(\", \"));return{filter:(h,A,x)=>a.value.evaluate(h,A,{},x),needGeometry:r_(u)}}function e_(u,a){return ua?1:0}function r_(u){if(!Array.isArray(u))return!1;if(u[0]===\"within\")return!0;for(let a=1;a\"||a===\"<=\"||a===\">=\"?Oa(u[1],u[2],a):a===\"any\"?(h=u.slice(1),[\"any\"].concat(h.map(gf))):a===\"all\"?[\"all\"].concat(u.slice(1).map(gf)):a===\"none\"?[\"all\"].concat(u.slice(1).map(gf).map(Pd)):a===\"in\"?jn(u[1],u.slice(2)):a===\"!in\"?Pd(jn(u[1],u.slice(2))):a===\"has\"?i_(u[1]):a===\"!has\"?Pd(i_(u[1])):a!==\"within\"||u;var h}function Oa(u,a,h){switch(u){case\"$type\":return[`filter-type-${h}`,a];case\"$id\":return[`filter-id-${h}`,a];default:return[`filter-${h}`,u,a]}}function jn(u,a){if(a.length===0)return!1;switch(u){case\"$type\":return[\"filter-type-in\",[\"literal\",a]];case\"$id\":return[\"filter-id-in\",[\"literal\",a]];default:return a.length>200&&!a.some(h=>typeof h!=typeof a[0])?[\"filter-in-large\",u,[\"literal\",a.sort(e_)]]:[\"filter-in-small\",u,[\"literal\",a]]}}function i_(u){switch(u){case\"$type\":return!0;case\"$id\":return[\"filter-has-id\"];default:return[\"filter-has\",u]}}function Pd(u){return[\"!\",u]}function Zp(u){let a=typeof u;if(a===\"number\"||a===\"boolean\"||a===\"string\"||u==null)return JSON.stringify(u);if(Array.isArray(u)){let x=\"[\";for(let E of u)x+=`${Zp(E)},`;return`${x}]`}let h=Object.keys(u).sort(),A=\"{\";for(let x=0;xA.maximum?[new ve(a,h,`${h} is greater than the maximum value ${A.maximum}`)]:[]}function Qp(u){let a=u.valueSpec,h=Pn(u.value.type),A,x,E,P={},D=h!==\"categorical\"&&u.value.property===void 0,F=!D,V=qr(u.value.stops)===\"array\"&&qr(u.value.stops[0])===\"array\"&&qr(u.value.stops[0][0])===\"object\",q=fi({key:u.key,value:u.value,valueSpec:u.styleSpec.function,validateSpec:u.validateSpec,style:u.style,styleSpec:u.styleSpec,objectElementValidators:{stops:function(at){if(h===\"identity\")return[new ve(at.key,at.value,'identity function may not have a \"stops\" property')];let ct=[],mt=at.value;return ct=ct.concat(du({key:at.key,value:mt,valueSpec:at.valueSpec,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,arrayElementValidator:X})),qr(mt)===\"array\"&&mt.length===0&&ct.push(new ve(at.key,mt,\"array must have at least one stop\")),ct},default:function(at){return at.validateSpec({key:at.key,value:at.value,valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec})}}});return h===\"identity\"&&D&&q.push(new ve(u.key,u.value,'missing required property \"property\"')),h===\"identity\"||u.value.stops||q.push(new ve(u.key,u.value,'missing required property \"stops\"')),h===\"exponential\"&&u.valueSpec.expression&&!Sd(u.valueSpec)&&q.push(new ve(u.key,u.value,\"exponential functions not supported\")),u.styleSpec.$version>=8&&(F&&!mf(u.valueSpec)?q.push(new ve(u.key,u.value,\"property functions not supported\")):D&&!t_(u.valueSpec)&&q.push(new ve(u.key,u.value,\"zoom functions not supported\"))),h!==\"categorical\"&&!V||u.value.property!==void 0||q.push(new ve(u.key,u.value,'\"property\" property is required')),q;function X(at){let ct=[],mt=at.value,bt=at.key;if(qr(mt)!==\"array\")return[new ve(bt,mt,`array expected, ${qr(mt)} found`)];if(mt.length!==2)return[new ve(bt,mt,`array length 2 expected, length ${mt.length} found`)];if(V){if(qr(mt[0])!==\"object\")return[new ve(bt,mt,`object expected, ${qr(mt[0])} found`)];if(mt[0].zoom===void 0)return[new ve(bt,mt,\"object stop key must have zoom\")];if(mt[0].value===void 0)return[new ve(bt,mt,\"object stop key must have value\")];if(E&&E>Pn(mt[0].zoom))return[new ve(bt,mt[0].zoom,\"stop zoom values must appear in ascending order\")];Pn(mt[0].zoom)!==E&&(E=Pn(mt[0].zoom),x=void 0,P={}),ct=ct.concat(fi({key:`${bt}[0]`,value:mt[0],valueSpec:{zoom:{}},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,objectElementValidators:{zoom:_f,value:et}}))}else ct=ct.concat(et({key:`${bt}[0]`,value:mt[0],valueSpec:{},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec},mt));return Hp(oh(mt[1]))?ct.concat([new ve(`${bt}[1]`,mt[1],\"expressions are not allowed in function stops.\")]):ct.concat(at.validateSpec({key:`${bt}[1]`,value:mt[1],valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec}))}function et(at,ct){let mt=qr(at.value),bt=Pn(at.value),Et=at.value!==null?at.value:ct;if(A){if(mt!==A)return[new ve(at.key,Et,`${mt} stop domain type must match previous stop domain type ${A}`)]}else A=mt;if(mt!==\"number\"&&mt!==\"string\"&&mt!==\"boolean\")return[new ve(at.key,Et,\"stop domain value must be a number, string, or boolean\")];if(mt!==\"number\"&&h!==\"categorical\"){let Vt=`number expected, ${mt} found`;return mf(a)&&h===void 0&&(Vt+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new ve(at.key,Et,Vt)]}return h!==\"categorical\"||mt!==\"number\"||isFinite(bt)&&Math.floor(bt)===bt?h!==\"categorical\"&&mt===\"number\"&&x!==void 0&&btnew ve(`${u.key}${A.key}`,u.value,A.message));let h=a.value.expression||a.value._styleExpression.expression;if(u.expressionContext===\"property\"&&u.propertyKey===\"text-font\"&&!h.outputDefined())return[new ve(u.key,u.value,`Invalid data expression for \"${u.propertyKey}\". Output values must be contained as literals within the expression.`)];if(u.expressionContext===\"property\"&&u.propertyType===\"layout\"&&!Vp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(u.expressionContext===\"filter\"&&!Vp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with filters.')];if(u.expressionContext&&u.expressionContext.indexOf(\"cluster\")===0){if(!Vm(h,[\"zoom\",\"feature-state\"]))return[new ve(u.key,u.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(u.expressionContext===\"cluster-initial\"&&!Um(h))return[new ve(u.key,u.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return[]}function Id(u){let a=u.key,h=u.value,A=u.valueSpec,x=[];return Array.isArray(A.values)?A.values.indexOf(Pn(h))===-1&&x.push(new ve(a,h,`expected one of [${A.values.join(\", \")}], ${JSON.stringify(h)} found`)):Object.keys(A.values).indexOf(Pn(h))===-1&&x.push(new ve(a,h,`expected one of [${Object.keys(A.values).join(\", \")}], ${JSON.stringify(h)} found`)),x}function lh(u){return Ed(oh(u.value))?ah(Uo({},u,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):$p(u)}function $p(u){let a=u.value,h=u.key;if(qr(a)!==\"array\")return[new ve(h,a,`array expected, ${qr(a)} found`)];let A=u.styleSpec,x,E=[];if(a.length<1)return[new ve(h,a,\"filter array must have at least 1 element\")];switch(E=E.concat(Id({key:`${h}[0]`,value:a[0],valueSpec:A.filter_operator,style:u.style,styleSpec:u.styleSpec})),Pn(a[0])){case\"<\":case\"<=\":case\">\":case\">=\":a.length>=2&&Pn(a[1])===\"$type\"&&E.push(new ve(h,a,`\"$type\" cannot be use with operator \"${a[0]}\"`));case\"==\":case\"!=\":a.length!==3&&E.push(new ve(h,a,`filter array for operator \"${a[0]}\" must have 3 elements`));case\"in\":case\"!in\":a.length>=2&&(x=qr(a[1]),x!==\"string\"&&E.push(new ve(`${h}[1]`,a[1],`string expected, ${x} found`)));for(let P=2;P{V in h&&a.push(new ve(A,h[V],`\"${V}\" is prohibited for ref layers`))}),x.layers.forEach(V=>{Pn(V.id)===D&&(F=V)}),F?F.ref?a.push(new ve(A,h.ref,\"ref cannot reference another ref layer\")):P=Pn(F.type):a.push(new ve(A,h.ref,`ref layer \"${D}\" not found`))}else if(P!==\"background\")if(h.source){let F=x.sources&&x.sources[h.source],V=F&&Pn(F.type);F?V===\"vector\"&&P===\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster source`)):V!==\"raster-dem\"&&P===\"hillshade\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster-dem source`)):V===\"raster\"&&P!==\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a vector source`)):V!==\"vector\"||h[\"source-layer\"]?V===\"raster-dem\"&&P!==\"hillshade\"?a.push(new ve(A,h.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):P!==\"line\"||!h.paint||!h.paint[\"line-gradient\"]||V===\"geojson\"&&F.lineMetrics||a.push(new ve(A,h,`layer \"${h.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):a.push(new ve(A,h,`layer \"${h.id}\" must specify a \"source-layer\"`)):a.push(new ve(A,h.source,`source \"${h.source}\" not found`))}else a.push(new ve(A,h,'missing required property \"source\"'));return a=a.concat(fi({key:A,value:h,valueSpec:E.layer,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,objectElementValidators:{\"*\":()=>[],type:()=>u.validateSpec({key:`${A}.type`,value:h.type,valueSpec:E.layer.type,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,object:h,objectKey:\"type\"}),filter:lh,layout:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>s_(Uo({layerType:P},V))}}),paint:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>n_(Uo({layerType:P},V))}})}})),a}function hl(u){let a=u.value,h=u.key,A=qr(a);return A!==\"string\"?[new ve(h,a,`string expected, ${A} found`)]:[]}let ch={promoteId:function({key:u,value:a}){if(qr(a)===\"string\")return hl({key:u,value:a});{let h=[];for(let A in a)h.push(...hl({key:`${u}.${A}`,value:a[A]}));return h}}};function la(u){let a=u.value,h=u.key,A=u.styleSpec,x=u.style,E=u.validateSpec;if(!a.type)return[new ve(h,a,'\"type\" is required')];let P=Pn(a.type),D;switch(P){case\"vector\":case\"raster\":return D=fi({key:h,value:a,valueSpec:A[`source_${P.replace(\"-\",\"_\")}`],style:u.style,styleSpec:A,objectElementValidators:ch,validateSpec:E}),D;case\"raster-dem\":return D=function(F){var V;let q=(V=F.sourceName)!==null&&V!==void 0?V:\"\",X=F.value,et=F.styleSpec,at=et.source_raster_dem,ct=F.style,mt=[],bt=qr(X);if(X===void 0)return mt;if(bt!==\"object\")return mt.push(new ve(\"source_raster_dem\",X,`object expected, ${bt} found`)),mt;let Et=Pn(X.encoding)===\"custom\",Vt=[\"redFactor\",\"greenFactor\",\"blueFactor\",\"baseShift\"],kt=F.value.encoding?`\"${F.value.encoding}\"`:\"Default\";for(let jt in X)!Et&&Vt.includes(jt)?mt.push(new ve(jt,X[jt],`In \"${q}\": \"${jt}\" is only valid when \"encoding\" is set to \"custom\". ${kt} encoding found`)):at[jt]?mt=mt.concat(F.validateSpec({key:jt,value:X[jt],valueSpec:at[jt],validateSpec:F.validateSpec,style:ct,styleSpec:et})):mt.push(new ve(jt,X[jt],`unknown property \"${jt}\"`));return mt}({sourceName:h,value:a,style:u.style,styleSpec:A,validateSpec:E}),D;case\"geojson\":if(D=fi({key:h,value:a,valueSpec:A.source_geojson,style:x,styleSpec:A,validateSpec:E,objectElementValidators:ch}),a.cluster)for(let F in a.clusterProperties){let[V,q]=a.clusterProperties[F],X=typeof V==\"string\"?[V,[\"accumulated\"],[\"get\",F]]:V;D.push(...ah({key:`${h}.${F}.map`,value:q,validateSpec:E,expressionContext:\"cluster-map\"})),D.push(...ah({key:`${h}.${F}.reduce`,value:X,validateSpec:E,expressionContext:\"cluster-reduce\"}))}return D;case\"video\":return fi({key:h,value:a,valueSpec:A.source_video,style:x,validateSpec:E,styleSpec:A});case\"image\":return fi({key:h,value:a,valueSpec:A.source_image,style:x,validateSpec:E,styleSpec:A});case\"canvas\":return[new ve(h,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Id({key:`${h}.type`,value:a.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:x,validateSpec:E,styleSpec:A})}}function Cd(u){let a=u.value,h=u.styleSpec,A=h.light,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"light\",a,`object expected, ${P} found`)]),E;for(let D in a){let F=D.match(/^(.*)-transition$/);E=E.concat(F&&A[F[1]]&&A[F[1]].transition?u.validateSpec({key:D,value:a[D],valueSpec:h.transition,validateSpec:u.validateSpec,style:x,styleSpec:h}):A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)])}return E}function o_(u){let a=u.value,h=u.styleSpec,A=h.terrain,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"terrain\",a,`object expected, ${P} found`)]),E;for(let D in a)E=E.concat(A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)]);return E}function Fs(u){let a=[],h=u.value,A=u.key;if(Array.isArray(h)){let x=[],E=[];for(let P in h)h[P].id&&x.includes(h[P].id)&&a.push(new ve(A,h,`all the sprites' ids must be unique, but ${h[P].id} is duplicated`)),x.push(h[P].id),h[P].url&&E.includes(h[P].url)&&a.push(new ve(A,h,`all the sprites' URLs must be unique, but ${h[P].url} is duplicated`)),E.push(h[P].url),a=a.concat(fi({key:`${A}[${P}]`,value:h[P],valueSpec:{id:{type:\"string\",required:!0},url:{type:\"string\",required:!0}},validateSpec:u.validateSpec}));return a}return hl({key:A,value:h})}let pu={\"*\":()=>[],array:du,boolean:function(u){let a=u.value,h=u.key,A=qr(a);return A!==\"boolean\"?[new ve(h,a,`boolean expected, ${A} found`)]:[]},number:_f,color:function(u){let a=u.key,h=u.value,A=qr(h);return A!==\"string\"?[new ve(a,h,`color expected, ${A} found`)]:ai.parse(String(h))?[]:[new ve(a,h,`color expected, \"${h}\" found`)]},constants:Km,enum:Id,filter:lh,function:Qp,layer:Jm,object:fi,source:la,light:Cd,terrain:o_,string:hl,formatted:function(u){return hl(u).length===0?[]:ah(u)},resolvedImage:function(u){return hl(u).length===0?[]:ah(u)},padding:function(u){let a=u.key,h=u.value;if(qr(h)===\"array\"){if(h.length<1||h.length>4)return[new ve(a,h,`padding requires 1 to 4 values; ${h.length} values found`)];let A={type:\"number\"},x=[];for(let E=0;E[]}})),u.constants&&(h=h.concat(Km({key:\"constants\",value:u.constants,style:u,styleSpec:a,validateSpec:In}))),Ld(h)}function Ba(u){return function(a){return u({...a,validateSpec:In})}}function Ld(u){return[].concat(u).sort((a,h)=>a.line-h.line)}function fl(u){return function(...a){return Ld(u.apply(this,a))}}ca.source=fl(Ba(la)),ca.sprite=fl(Ba(Fs)),ca.glyphs=fl(Ba(Kp)),ca.light=fl(Ba(Cd)),ca.terrain=fl(Ba(o_)),ca.layer=fl(Ba(Jm)),ca.filter=fl(Ba(lh)),ca.paintProperty=fl(Ba(n_)),ca.layoutProperty=fl(Ba(s_));let Fa=ca,uh=Fa.light,Jp=Fa.paintProperty,t0=Fa.layoutProperty;function hh(u,a){let h=!1;if(a&&a.length)for(let A of a)u.fire(new to(new Error(A.message))),h=!0;return h}class za{constructor(a,h,A){let x=this.cells=[];if(a instanceof ArrayBuffer){this.arrayBuffer=a;let P=new Int32Array(this.arrayBuffer);a=P[0],this.d=(h=P[1])+2*(A=P[2]);for(let F=0;F=X[ct+0]&&x>=X[ct+1])?(D[at]=!0,P.push(q[at])):D[at]=!1}}}}_forEachCell(a,h,A,x,E,P,D,F){let V=this._convertToCellCoord(a),q=this._convertToCellCoord(h),X=this._convertToCellCoord(A),et=this._convertToCellCoord(x);for(let at=V;at<=X;at++)for(let ct=q;ct<=et;ct++){let mt=this.d*ct+at;if((!F||F(this._convertFromCellCoord(at),this._convertFromCellCoord(ct),this._convertFromCellCoord(at+1),this._convertFromCellCoord(ct+1)))&&E.call(this,a,h,A,x,mt,P,D,F))return}}_convertFromCellCoord(a){return(a-this.padding)/this.scale}_convertToCellCoord(a){return Math.max(0,Math.min(this.d-1,Math.floor(a*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let a=this.cells,h=3+this.cells.length+1+1,A=0;for(let P=0;P=0)continue;let P=u[E];x[E]=ro[A].shallow.indexOf(E)>=0?P:Vl(P,a)}u instanceof Error&&(x.message=u.message)}if(x.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return A!==\"Object\"&&(x.$name=A),x}throw new Error(\"can't serialize object of type \"+typeof u)}function yf(u){if(u==null||typeof u==\"boolean\"||typeof u==\"number\"||typeof u==\"string\"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob||kd(u)||Pc(u)||ArrayBuffer.isView(u)||u instanceof ImageData)return u;if(Array.isArray(u))return u.map(yf);if(typeof u==\"object\"){let a=u.$name||\"Object\";if(!ro[a])throw new Error(`can't deserialize unregistered class ${a}`);let{klass:h}=ro[a];if(!h)throw new Error(`can't deserialize unregistered class ${a}`);if(h.deserialize)return h.deserialize(u);let A=Object.create(h.prototype);for(let x of Object.keys(u)){if(x===\"$name\")continue;let E=u[x];A[x]=ro[a].shallow.indexOf(x)>=0?E:yf(E)}return A}throw new Error(\"can't deserialize object of type \"+typeof u)}class a_{constructor(){this.first=!0}update(a,h){let A=Math.floor(a);return this.first?(this.first=!1,this.lastIntegerZoom=A,this.lastIntegerZoomTime=0,this.lastZoom=a,this.lastFloorZoom=A,!0):(this.lastFloorZoom>A?(this.lastIntegerZoom=A+1,this.lastIntegerZoomTime=h):this.lastFloorZoomu>=128&&u<=255,Arabic:u=>u>=1536&&u<=1791,\"Arabic Supplement\":u=>u>=1872&&u<=1919,\"Arabic Extended-A\":u=>u>=2208&&u<=2303,\"Hangul Jamo\":u=>u>=4352&&u<=4607,\"Unified Canadian Aboriginal Syllabics\":u=>u>=5120&&u<=5759,Khmer:u=>u>=6016&&u<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":u=>u>=6320&&u<=6399,\"General Punctuation\":u=>u>=8192&&u<=8303,\"Letterlike Symbols\":u=>u>=8448&&u<=8527,\"Number Forms\":u=>u>=8528&&u<=8591,\"Miscellaneous Technical\":u=>u>=8960&&u<=9215,\"Control Pictures\":u=>u>=9216&&u<=9279,\"Optical Character Recognition\":u=>u>=9280&&u<=9311,\"Enclosed Alphanumerics\":u=>u>=9312&&u<=9471,\"Geometric Shapes\":u=>u>=9632&&u<=9727,\"Miscellaneous Symbols\":u=>u>=9728&&u<=9983,\"Miscellaneous Symbols and Arrows\":u=>u>=11008&&u<=11263,\"CJK Radicals Supplement\":u=>u>=11904&&u<=12031,\"Kangxi Radicals\":u=>u>=12032&&u<=12255,\"Ideographic Description Characters\":u=>u>=12272&&u<=12287,\"CJK Symbols and Punctuation\":u=>u>=12288&&u<=12351,Hiragana:u=>u>=12352&&u<=12447,Katakana:u=>u>=12448&&u<=12543,Bopomofo:u=>u>=12544&&u<=12591,\"Hangul Compatibility Jamo\":u=>u>=12592&&u<=12687,Kanbun:u=>u>=12688&&u<=12703,\"Bopomofo Extended\":u=>u>=12704&&u<=12735,\"CJK Strokes\":u=>u>=12736&&u<=12783,\"Katakana Phonetic Extensions\":u=>u>=12784&&u<=12799,\"Enclosed CJK Letters and Months\":u=>u>=12800&&u<=13055,\"CJK Compatibility\":u=>u>=13056&&u<=13311,\"CJK Unified Ideographs Extension A\":u=>u>=13312&&u<=19903,\"Yijing Hexagram Symbols\":u=>u>=19904&&u<=19967,\"CJK Unified Ideographs\":u=>u>=19968&&u<=40959,\"Yi Syllables\":u=>u>=40960&&u<=42127,\"Yi Radicals\":u=>u>=42128&&u<=42191,\"Hangul Jamo Extended-A\":u=>u>=43360&&u<=43391,\"Hangul Syllables\":u=>u>=44032&&u<=55215,\"Hangul Jamo Extended-B\":u=>u>=55216&&u<=55295,\"Private Use Area\":u=>u>=57344&&u<=63743,\"CJK Compatibility Ideographs\":u=>u>=63744&&u<=64255,\"Arabic Presentation Forms-A\":u=>u>=64336&&u<=65023,\"Vertical Forms\":u=>u>=65040&&u<=65055,\"CJK Compatibility Forms\":u=>u>=65072&&u<=65103,\"Small Form Variants\":u=>u>=65104&&u<=65135,\"Arabic Presentation Forms-B\":u=>u>=65136&&u<=65279,\"Halfwidth and Fullwidth Forms\":u=>u>=65280&&u<=65519};function e0(u){for(let a of u)if(fh(a.charCodeAt(0)))return!0;return!1}function r0(u){for(let a of u)if(!Ix(a.charCodeAt(0)))return!1;return!0}function Ix(u){return!(Re.Arabic(u)||Re[\"Arabic Supplement\"](u)||Re[\"Arabic Extended-A\"](u)||Re[\"Arabic Presentation Forms-A\"](u)||Re[\"Arabic Presentation Forms-B\"](u))}function fh(u){return!(u!==746&&u!==747&&(u<4352||!(Re[\"Bopomofo Extended\"](u)||Re.Bopomofo(u)||Re[\"CJK Compatibility Forms\"](u)&&!(u>=65097&&u<=65103)||Re[\"CJK Compatibility Ideographs\"](u)||Re[\"CJK Compatibility\"](u)||Re[\"CJK Radicals Supplement\"](u)||Re[\"CJK Strokes\"](u)||!(!Re[\"CJK Symbols and Punctuation\"](u)||u>=12296&&u<=12305||u>=12308&&u<=12319||u===12336)||Re[\"CJK Unified Ideographs Extension A\"](u)||Re[\"CJK Unified Ideographs\"](u)||Re[\"Enclosed CJK Letters and Months\"](u)||Re[\"Hangul Compatibility Jamo\"](u)||Re[\"Hangul Jamo Extended-A\"](u)||Re[\"Hangul Jamo Extended-B\"](u)||Re[\"Hangul Jamo\"](u)||Re[\"Hangul Syllables\"](u)||Re.Hiragana(u)||Re[\"Ideographic Description Characters\"](u)||Re.Kanbun(u)||Re[\"Kangxi Radicals\"](u)||Re[\"Katakana Phonetic Extensions\"](u)||Re.Katakana(u)&&u!==12540||!(!Re[\"Halfwidth and Fullwidth Forms\"](u)||u===65288||u===65289||u===65293||u>=65306&&u<=65310||u===65339||u===65341||u===65343||u>=65371&&u<=65503||u===65507||u>=65512&&u<=65519)||!(!Re[\"Small Form Variants\"](u)||u>=65112&&u<=65118||u>=65123&&u<=65126)||Re[\"Unified Canadian Aboriginal Syllabics\"](u)||Re[\"Unified Canadian Aboriginal Syllabics Extended\"](u)||Re[\"Vertical Forms\"](u)||Re[\"Yijing Hexagram Symbols\"](u)||Re[\"Yi Syllables\"](u)||Re[\"Yi Radicals\"](u))))}function l_(u){return!(fh(u)||function(a){return!!(Re[\"Latin-1 Supplement\"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Re[\"General Punctuation\"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Re[\"Letterlike Symbols\"](a)||Re[\"Number Forms\"](a)||Re[\"Miscellaneous Technical\"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Re[\"Control Pictures\"](a)&&a!==9251||Re[\"Optical Character Recognition\"](a)||Re[\"Enclosed Alphanumerics\"](a)||Re[\"Geometric Shapes\"](a)||Re[\"Miscellaneous Symbols\"](a)&&!(a>=9754&&a<=9759)||Re[\"Miscellaneous Symbols and Arrows\"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Re[\"CJK Symbols and Punctuation\"](a)||Re.Katakana(a)||Re[\"Private Use Area\"](a)||Re[\"CJK Compatibility Forms\"](a)||Re[\"Small Form Variants\"](a)||Re[\"Halfwidth and Fullwidth Forms\"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(u))}function i0(u){return u>=1424&&u<=2303||Re[\"Arabic Presentation Forms-A\"](u)||Re[\"Arabic Presentation Forms-B\"](u)}function n0(u,a){return!(!a&&i0(u)||u>=2304&&u<=3583||u>=3840&&u<=4255||Re.Khmer(u))}function vf(u){for(let a of u)if(i0(a.charCodeAt(0)))return!0;return!1}let s0=\"deferred\",tA=\"loading\",eA=\"loaded\",dh=null,ls=\"unavailable\",Au=null,Rc=function(u){u&&typeof u==\"string\"&&u.indexOf(\"NetworkError\")>-1&&(ls=\"error\"),dh&&dh(u)};function o0(){Rd.fire(new ss(\"pluginStateChange\",{pluginStatus:ls,pluginURL:Au}))}let Rd=new Ol,a0=function(){return ls},c_=function(){if(ls!==s0||!Au)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");ls=tA,o0(),Au&&ol({url:Au},u=>{u?Rc(u):(ls=eA,o0())})},ua={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ls===eA||ua.applyArabicShaping!=null,isLoading:()=>ls===tA,setState(u){if(!zi())throw new Error(\"Cannot set the state of the rtl-text-plugin when not in the web-worker context\");ls=u.pluginStatus,Au=u.pluginURL},isParsed(){if(!zi())throw new Error(\"rtl-text-plugin is only parsed on the worker-threads\");return ua.applyArabicShaping!=null&&ua.processBidirectionalText!=null&&ua.processStyledBidirectionalText!=null},getPluginURL(){if(!zi())throw new Error(\"rtl-text-plugin url can only be queried from the worker threads\");return Au}};class ln{constructor(a,h){this.zoom=a,h?(this.now=h.now,this.fadeDuration=h.fadeDuration,this.zoomHistory=h.zoomHistory,this.transition=h.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new a_,this.transition={})}isSupportedScript(a){return function(h,A){for(let x of h)if(!n0(x.charCodeAt(0),A))return!1;return!0}(a,ua.isLoaded())}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let a=this.zoom,h=a-Math.floor(a),A=this.crossFadingFactor();return a>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:h+(1-h)*A}:{fromScale:.5,toScale:1,t:1-(1-A)*h}}}class rA{constructor(a,h){this.property=a,this.value=h,this.expression=function(A,x){if(Qi(A))return new Td(A,x);if(Hp(A)){let E=$m(A,x);if(E.result===\"error\")throw new Error(E.value.map(P=>`${P.key}: ${P.message}`).join(\", \"));return E.value}{let E=A;return x.type===\"color\"&&typeof A==\"string\"?E=ai.parse(A):x.type!==\"padding\"||typeof A!=\"number\"&&!Array.isArray(A)?x.type===\"variableAnchorOffsetCollection\"&&Array.isArray(A)&&(E=Vo.parse(A)):E=kn.parse(A),{kind:\"constant\",evaluate:()=>E}}}(h===void 0?a.specification.default:h,a.specification)}isDataDriven(){return this.expression.kind===\"source\"||this.expression.kind===\"composite\"}possiblyEvaluate(a,h,A){return this.property.possiblyEvaluate(this,a,h,A)}}class l0{constructor(a){this.property=a,this.value=new rA(a,void 0)}transitioned(a,h){return new u_(this.property,this.value,h,Ot({},a.transition,this.transition),a.now)}untransitioned(){return new u_(this.property,this.value,null,{},0)}}class ph{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitionablePropertyValues)}getValue(a){return ue(this._values[a].value.value)}setValue(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new l0(this._values[a].property)),this._values[a].value=new rA(this._values[a].property,h===null?void 0:ue(h))}getTransition(a){return ue(this._values[a].transition)}setTransition(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new l0(this._values[a].property)),this._values[a].transition=ue(h)||void 0}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A);let x=this.getTransition(h);x!==void 0&&(a[`${h}-transition`]=x)}return a}transitioned(a,h){let A=new h_(this._properties);for(let x of Object.keys(this._values))A._values[x]=this._values[x].transitioned(a,h._values[x]);return A}untransitioned(){let a=new h_(this._properties);for(let h of Object.keys(this._values))a._values[h]=this._values[h].untransitioned();return a}}class u_{constructor(a,h,A,x,E){this.property=a,this.value=h,this.begin=E+x.delay||0,this.end=this.begin+x.duration||0,a.specification.transition&&(x.delay||x.duration)&&(this.prior=A)}possiblyEvaluate(a,h,A){let x=a.now||0,E=this.value.possiblyEvaluate(a,h,A),P=this.prior;if(P){if(x>this.end)return this.prior=null,E;if(this.value.isDataDriven())return this.prior=null,E;if(x=1)return 1;let V=F*F,q=V*F;return 4*(F<.5?q:3*(F-V)+q-.75)}(D))}}return E}}class h_{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitioningPropertyValues)}possiblyEvaluate(a,h,A){let x=new iA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}hasTransition(){for(let a of Object.keys(this._values))if(this._values[a].prior)return!0;return!1}}class Cx{constructor(a){this._properties=a,this._values=Object.create(a.defaultPropertyValues)}hasValue(a){return this._values[a].value!==void 0}getValue(a){return ue(this._values[a].value)}setValue(a,h){this._values[a]=new rA(this._values[a].property,h===null?void 0:ue(h))}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A)}return a}possiblyEvaluate(a,h,A){let x=new iA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}}class _o{constructor(a,h,A){this.property=a,this.value=h,this.parameters=A}isConstant(){return this.value.kind===\"constant\"}constantOr(a){return this.value.kind===\"constant\"?this.value.value:a}evaluate(a,h,A,x){return this.property.evaluate(this.value,this.parameters,a,h,A,x)}}class iA{constructor(a){this._properties=a,this._values=Object.create(a.defaultPossiblyEvaluatedValues)}get(a){return this._values[a]}}class rr{constructor(a){this.specification=a}possiblyEvaluate(a,h){if(a.isDataDriven())throw new Error(\"Value should not be data driven\");return a.expression.evaluate(h)}interpolate(a,h,A){let x=Ra[this.specification.type];return x?x(a,h,A):a}}class fr{constructor(a,h){this.specification=a,this.overrides=h}possiblyEvaluate(a,h,A,x){return new _o(this,a.expression.kind===\"constant\"||a.expression.kind===\"camera\"?{kind:\"constant\",value:a.expression.evaluate(h,null,{},A,x)}:a.expression,h)}interpolate(a,h,A){if(a.value.kind!==\"constant\"||h.value.kind!==\"constant\")return a;if(a.value.value===void 0||h.value.value===void 0)return new _o(this,{kind:\"constant\",value:void 0},a.parameters);let x=Ra[this.specification.type];if(x){let E=x(a.value.value,h.value.value,A);return new _o(this,{kind:\"constant\",value:E},a.parameters)}return a}evaluate(a,h,A,x,E,P){return a.kind===\"constant\"?a.value:a.evaluate(h,A,x,E,P)}}class xf extends fr{possiblyEvaluate(a,h,A,x){if(a.value===void 0)return new _o(this,{kind:\"constant\",value:void 0},h);if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x),P=a.property.specification.type===\"resolvedImage\"&&typeof E!=\"string\"?E.name:E,D=this._calculate(P,P,P,h);return new _o(this,{kind:\"constant\",value:D},h)}if(a.expression.kind===\"camera\"){let E=this._calculate(a.expression.evaluate({zoom:h.zoom-1}),a.expression.evaluate({zoom:h.zoom}),a.expression.evaluate({zoom:h.zoom+1}),h);return new _o(this,{kind:\"constant\",value:E},h)}return new _o(this,a.expression,h)}evaluate(a,h,A,x,E,P){if(a.kind===\"source\"){let D=a.evaluate(h,A,x,E,P);return this._calculate(D,D,D,h)}return a.kind===\"composite\"?this._calculate(a.evaluate({zoom:Math.floor(h.zoom)-1},A,x),a.evaluate({zoom:Math.floor(h.zoom)},A,x),a.evaluate({zoom:Math.floor(h.zoom)+1},A,x),h):a.value}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class nA{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){if(a.value!==void 0){if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x);return this._calculate(E,E,E,h)}return this._calculate(a.expression.evaluate(new ln(Math.floor(h.zoom-1),h)),a.expression.evaluate(new ln(Math.floor(h.zoom),h)),a.expression.evaluate(new ln(Math.floor(h.zoom+1),h)),h)}}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class Dd{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){return!!a.expression.evaluate(h,null,{},A,x)}interpolate(){return!1}}class Gn{constructor(a){this.properties=a,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let h in a){let A=a[h];A.specification.overridable&&this.overridableProperties.push(h);let x=this.defaultPropertyValues[h]=new rA(A,void 0),E=this.defaultTransitionablePropertyValues[h]=new l0(A);this.defaultTransitioningPropertyValues[h]=E.untransitioned(),this.defaultPossiblyEvaluatedValues[h]=x.possiblyEvaluate({})}}}Ue(\"DataDrivenProperty\",fr),Ue(\"DataConstantProperty\",rr),Ue(\"CrossFadedDataDrivenProperty\",xf),Ue(\"CrossFadedProperty\",nA),Ue(\"ColorRampProperty\",Dd);let io=\"-transition\";class Ui extends Ol{constructor(a,h){if(super(),this.id=a.id,this.type=a.type,this._featureFilter={filter:()=>!0,needGeometry:!1},a.type!==\"custom\"&&(this.metadata=a.metadata,this.minzoom=a.minzoom,this.maxzoom=a.maxzoom,a.type!==\"background\"&&(this.source=a.source,this.sourceLayer=a[\"source-layer\"],this.filter=a.filter),h.layout&&(this._unevaluatedLayout=new Cx(h.layout)),h.paint)){this._transitionablePaint=new ph(h.paint);for(let A in a.paint)this.setPaintProperty(A,a.paint[A],{validate:!1});for(let A in a.layout)this.setLayoutProperty(A,a.layout[A],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new iA(h.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(a){return a===\"visibility\"?this.visibility:this._unevaluatedLayout.getValue(a)}setLayoutProperty(a,h,A={}){h!=null&&this._validate(t0,`layers.${this.id}.layout.${a}`,a,h,A)||(a!==\"visibility\"?this._unevaluatedLayout.setValue(a,h):this.visibility=h)}getPaintProperty(a){return a.endsWith(io)?this._transitionablePaint.getTransition(a.slice(0,-11)):this._transitionablePaint.getValue(a)}setPaintProperty(a,h,A={}){if(h!=null&&this._validate(Jp,`layers.${this.id}.paint.${a}`,a,h,A))return!1;if(a.endsWith(io))return this._transitionablePaint.setTransition(a.slice(0,-11),h||void 0),!1;{let x=this._transitionablePaint._values[a],E=x.property.specification[\"property-type\"]===\"cross-faded-data-driven\",P=x.value.isDataDriven(),D=x.value;this._transitionablePaint.setValue(a,h),this._handleSpecialPaintPropertyUpdate(a);let F=this._transitionablePaint._values[a].value;return F.isDataDriven()||P||E||this._handleOverridablePaintPropertyUpdate(a,D,F)}}_handleSpecialPaintPropertyUpdate(a){}_handleOverridablePaintPropertyUpdate(a,h,A){return!1}isHidden(a){return!!(this.minzoom&&a=this.maxzoom)||this.visibility===\"none\"}updateTransitions(a){this._transitioningPaint=this._transitionablePaint.transitioned(a,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(a,h){a.getCrossfadeParameters&&(this._crossfadeParameters=a.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(a,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(a,void 0,h)}serialize(){let a={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(a.layout=a.layout||{},a.layout.visibility=this.visibility),le(a,(h,A)=>!(h===void 0||A===\"layout\"&&!Object.keys(h).length||A===\"paint\"&&!Object.keys(h).length))}_validate(a,h,A,x,E={}){return(!E||E.validate!==!1)&&hh(this,a.call(Fa,{key:h,layerType:this.type,objectKey:A,value:x,styleSpec:te,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let a in this.paint._values){let h=this.paint.get(a);if(h instanceof _o&&mf(h.property.specification)&&(h.value.kind===\"source\"||h.value.kind===\"composite\")&&h.value.isStateDependent)return!0}return!1}}let f_={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Ah{constructor(a,h){this._structArray=a,this._pos1=h*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Cn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(a,h){return a._trim(),h&&(a.isTransferred=!0,h.push(a.arrayBuffer)),{length:a.length,arrayBuffer:a.arrayBuffer}}static deserialize(a){let h=Object.create(this.prototype);return h.arrayBuffer=a.arrayBuffer,h.length=a.length,h.capacity=a.arrayBuffer.byteLength/h.bytesPerElement,h._refreshViews(),h}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(a){this.reserve(a),this.length=a}reserve(a){if(a>this.capacity){this.capacity=Math.max(a,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let h=this.uint8;this._refreshViews(),h&&this.uint8.set(h)}}_refreshViews(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")}}function yn(u,a=1){let h=0,A=0;return{members:u.map(x=>{let E=f_[x.type].BYTES_PER_ELEMENT,P=h=bf(h,Math.max(a,E)),D=x.components||1;return A=Math.max(A,E),h+=E*D,{name:x.name,type:x.type,components:D,offset:P}}),size:bf(h,Math.max(A,a)),alignment:a}}function bf(u,a){return Math.ceil(u/a)*a}class Ms extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.int16[x+0]=h,this.int16[x+1]=A,a}}Ms.prototype.bytesPerElement=4,Ue(\"StructArrayLayout2i4\",Ms);class mh extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.int16[E+0]=h,this.int16[E+1]=A,this.int16[E+2]=x,a}}mh.prototype.bytesPerElement=6,Ue(\"StructArrayLayout3i6\",mh);class jo extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.int16[P+0]=h,this.int16[P+1]=A,this.int16[P+2]=x,this.int16[P+3]=E,a}}jo.prototype.bytesPerElement=8,Ue(\"StructArrayLayout4i8\",jo);class c0 extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}c0.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2i4i12\",c0);class Od extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=4*a,V=8*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.uint8[V+4]=x,this.uint8[V+5]=E,this.uint8[V+6]=P,this.uint8[V+7]=D,a}}Od.prototype.bytesPerElement=8,Ue(\"StructArrayLayout2i4ub8\",Od);class wf extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.float32[x+0]=h,this.float32[x+1]=A,a}}wf.prototype.bytesPerElement=8,Ue(\"StructArrayLayout2f8\",wf);class Go extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q){let X=this.length;return this.resize(X+1),this.emplace(X,a,h,A,x,E,P,D,F,V,q)}emplace(a,h,A,x,E,P,D,F,V,q,X){let et=10*a;return this.uint16[et+0]=h,this.uint16[et+1]=A,this.uint16[et+2]=x,this.uint16[et+3]=E,this.uint16[et+4]=P,this.uint16[et+5]=D,this.uint16[et+6]=F,this.uint16[et+7]=V,this.uint16[et+8]=q,this.uint16[et+9]=X,a}}Go.prototype.bytesPerElement=20,Ue(\"StructArrayLayout10ui20\",Go);class sA extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et){let at=this.length;return this.resize(at+1),this.emplace(at,a,h,A,x,E,P,D,F,V,q,X,et)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at){let ct=12*a;return this.int16[ct+0]=h,this.int16[ct+1]=A,this.int16[ct+2]=x,this.int16[ct+3]=E,this.uint16[ct+4]=P,this.uint16[ct+5]=D,this.uint16[ct+6]=F,this.uint16[ct+7]=V,this.int16[ct+8]=q,this.int16[ct+9]=X,this.int16[ct+10]=et,this.int16[ct+11]=at,a}}sA.prototype.bytesPerElement=24,Ue(\"StructArrayLayout4i4ui4i24\",sA);class xi extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.float32[E+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}xi.prototype.bytesPerElement=12,Ue(\"StructArrayLayout3f12\",xi);class T extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint32[1*a+0]=h,a}}T.prototype.bytesPerElement=4,Ue(\"StructArrayLayout1ul4\",T);class l extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V){let q=this.length;return this.resize(q+1),this.emplace(q,a,h,A,x,E,P,D,F,V)}emplace(a,h,A,x,E,P,D,F,V,q){let X=10*a,et=5*a;return this.int16[X+0]=h,this.int16[X+1]=A,this.int16[X+2]=x,this.int16[X+3]=E,this.int16[X+4]=P,this.int16[X+5]=D,this.uint32[et+3]=F,this.uint16[X+8]=V,this.uint16[X+9]=q,a}}l.prototype.bytesPerElement=20,Ue(\"StructArrayLayout6i1ul2ui20\",l);class d extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}d.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2i2i2i12\",d);class v extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E){let P=this.length;return this.resize(P+1),this.emplace(P,a,h,A,x,E)}emplace(a,h,A,x,E,P){let D=4*a,F=8*a;return this.float32[D+0]=h,this.float32[D+1]=A,this.float32[D+2]=x,this.int16[F+6]=E,this.int16[F+7]=P,a}}v.prototype.bytesPerElement=16,Ue(\"StructArrayLayout2f1f2i16\",v);class b extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=12*a,D=3*a;return this.uint8[P+0]=h,this.uint8[P+1]=A,this.float32[D+1]=x,this.float32[D+2]=E,a}}b.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2ub2f12\",b);class M extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[E+0]=h,this.uint16[E+1]=A,this.uint16[E+2]=x,a}}M.prototype.bytesPerElement=6,Ue(\"StructArrayLayout3ui6\",M);class O extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et){let Vt=this.length;return this.resize(Vt+1),this.emplace(Vt,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt){let kt=24*a,jt=12*a,qt=48*a;return this.int16[kt+0]=h,this.int16[kt+1]=A,this.uint16[kt+2]=x,this.uint16[kt+3]=E,this.uint32[jt+2]=P,this.uint32[jt+3]=D,this.uint32[jt+4]=F,this.uint16[kt+10]=V,this.uint16[kt+11]=q,this.uint16[kt+12]=X,this.float32[jt+7]=et,this.float32[jt+8]=at,this.uint8[qt+36]=ct,this.uint8[qt+37]=mt,this.uint8[qt+38]=bt,this.uint32[jt+10]=Et,this.int16[kt+22]=Vt,a}}O.prototype.bytesPerElement=48,Ue(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",O);class B extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He){let Pe=this.length;return this.resize(Pe+1),this.emplace(Pe,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He,Pe){let Ae=32*a,ur=16*a;return this.int16[Ae+0]=h,this.int16[Ae+1]=A,this.int16[Ae+2]=x,this.int16[Ae+3]=E,this.int16[Ae+4]=P,this.int16[Ae+5]=D,this.int16[Ae+6]=F,this.int16[Ae+7]=V,this.uint16[Ae+8]=q,this.uint16[Ae+9]=X,this.uint16[Ae+10]=et,this.uint16[Ae+11]=at,this.uint16[Ae+12]=ct,this.uint16[Ae+13]=mt,this.uint16[Ae+14]=bt,this.uint16[Ae+15]=Et,this.uint16[Ae+16]=Vt,this.uint16[Ae+17]=kt,this.uint16[Ae+18]=jt,this.uint16[Ae+19]=qt,this.uint16[Ae+20]=ae,this.uint16[Ae+21]=Be,this.uint16[Ae+22]=Je,this.uint32[ur+12]=Oe,this.float32[ur+13]=ke,this.float32[ur+14]=Te,this.uint16[Ae+30]=He,this.uint16[Ae+31]=Pe,a}}B.prototype.bytesPerElement=64,Ue(\"StructArrayLayout8i15ui1ul2f2ui64\",B);class U extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.float32[1*a+0]=h,a}}U.prototype.bytesPerElement=4,Ue(\"StructArrayLayout1f4\",U);class W extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[6*a+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}W.prototype.bytesPerElement=12,Ue(\"StructArrayLayout1ui2f12\",W);class Z extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=4*a;return this.uint32[2*a+0]=h,this.uint16[E+2]=A,this.uint16[E+3]=x,a}}Z.prototype.bytesPerElement=8,Ue(\"StructArrayLayout1ul2ui8\",Z);class Q extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.uint16[x+0]=h,this.uint16[x+1]=A,a}}Q.prototype.bytesPerElement=4,Ue(\"StructArrayLayout2ui4\",Q);class st extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint16[1*a+0]=h,a}}st.prototype.bytesPerElement=2,Ue(\"StructArrayLayout1ui2\",st);class At extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.float32[P+0]=h,this.float32[P+1]=A,this.float32[P+2]=x,this.float32[P+3]=E,a}}At.prototype.bytesPerElement=16,Ue(\"StructArrayLayout4f16\",At);class pt extends Ah{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new w(this.anchorPointX,this.anchorPointY)}}pt.prototype.size=20;class yt extends l{get(a){return new pt(this,a)}}Ue(\"CollisionBoxArray\",yt);class dt extends Ah{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(a){this._structArray.uint8[this._pos1+37]=a}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(a){this._structArray.uint8[this._pos1+38]=a}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(a){this._structArray.uint32[this._pos4+10]=a}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}dt.prototype.size=48;class Ft extends O{get(a){return new dt(this,a)}}Ue(\"PlacedSymbolArray\",Ft);class Wt extends Ah{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(a){this._structArray.uint32[this._pos4+12]=a}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}Wt.prototype.size=64;class St extends B{get(a){return new Wt(this,a)}}Ue(\"SymbolInstanceArray\",St);class Bt extends U{getoffsetX(a){return this.float32[1*a+0]}}Ue(\"GlyphOffsetArray\",Bt);class Yt extends mh{getx(a){return this.int16[3*a+0]}gety(a){return this.int16[3*a+1]}gettileUnitDistanceFromAnchor(a){return this.int16[3*a+2]}}Ue(\"SymbolLineVertexArray\",Yt);class Qt extends Ah{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}Qt.prototype.size=12;class se extends W{get(a){return new Qt(this,a)}}Ue(\"TextAnchorOffsetArray\",se);class pe extends Ah{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}pe.prototype.size=8;class he extends Z{get(a){return new pe(this,a)}}Ue(\"FeatureIndexArray\",he);class xe extends Ms{}class We extends Ms{}class Kr extends Ms{}class Me extends c0{}class dr extends Od{}class Xe extends wf{}class Vi extends Go{}class Jr extends sA{}class Vr extends xi{}class ei extends T{}class Rn extends d{}class $i extends b{}class zs extends M{}class cs extends Q{}let Dn=yn([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:Wo}=Dn;class jr{constructor(a=[]){this.segments=a}prepareSegment(a,h,A,x){let E=this.segments[this.segments.length-1];return a>jr.MAX_VERTEX_ARRAY_LENGTH&&tr(`Max vertices per segment is ${jr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${a}`),(!E||E.vertexLength+a>jr.MAX_VERTEX_ARRAY_LENGTH||E.sortKey!==x)&&(E={vertexOffset:h.length,primitiveOffset:A.length,vertexLength:0,primitiveLength:0},x!==void 0&&(E.sortKey=x),this.segments.push(E)),E}get(){return this.segments}destroy(){for(let a of this.segments)for(let h in a.vaos)a.vaos[h].destroy()}static simpleSegment(a,h,A,x){return new jr([{vertexOffset:a,primitiveOffset:h,vertexLength:A,primitiveLength:x,vaos:{},sortKey:0}])}}function jl(u,a){return 256*(u=ut(Math.floor(u),0,255))+ut(Math.floor(a),0,255)}jr.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ue(\"SegmentVector\",jr);let Gl=yn([{name:\"a_pattern_from\",components:4,type:\"Uint16\"},{name:\"a_pattern_to\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio_from\",components:1,type:\"Uint16\"},{name:\"a_pixel_ratio_to\",components:1,type:\"Uint16\"}]);var mu={exports:{}},gu={exports:{}};gu.exports=function(u,a){var h,A,x,E,P,D,F,V;for(A=u.length-(h=3&u.length),x=a,P=3432918353,D=461845907,V=0;V>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295)<<13|x>>>19))+((5*(x>>>16)&65535)<<16)&4294967295))+((58964+(E>>>16)&65535)<<16);switch(F=0,h){case 3:F^=(255&u.charCodeAt(V+2))<<16;case 2:F^=(255&u.charCodeAt(V+1))<<8;case 1:x^=F=(65535&(F=(F=(65535&(F^=255&u.charCodeAt(V)))*P+(((F>>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295}return x^=u.length,x=2246822507*(65535&(x^=x>>>16))+((2246822507*(x>>>16)&65535)<<16)&4294967295,x=3266489909*(65535&(x^=x>>>13))+((3266489909*(x>>>16)&65535)<<16)&4294967295,(x^=x>>>16)>>>0};var gh=gu.exports,Ns={exports:{}};Ns.exports=function(u,a){for(var h,A=u.length,x=a^A,E=0;A>=4;)h=1540483477*(65535&(h=255&u.charCodeAt(E)|(255&u.charCodeAt(++E))<<8|(255&u.charCodeAt(++E))<<16|(255&u.charCodeAt(++E))<<24))+((1540483477*(h>>>16)&65535)<<16),x=1540483477*(65535&x)+((1540483477*(x>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),A-=4,++E;switch(A){case 3:x^=(255&u.charCodeAt(E+2))<<16;case 2:x^=(255&u.charCodeAt(E+1))<<8;case 1:x=1540483477*(65535&(x^=255&u.charCodeAt(E)))+((1540483477*(x>>>16)&65535)<<16)}return x=1540483477*(65535&(x^=x>>>13))+((1540483477*(x>>>16)&65535)<<16),(x^=x>>>15)>>>0};var Es=gh,yo=Ns.exports;mu.exports=Es,mu.exports.murmur3=Es,mu.exports.murmur2=yo;var _h=c(mu.exports);class On{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(a,h,A,x){this.ids.push(us(a)),this.positions.push(h,A,x)}getPositions(a){if(!this.indexed)throw new Error(\"Trying to get index, but feature positions are not indexed\");let h=us(a),A=0,x=this.ids.length-1;for(;A>1;this.ids[P]>=h?x=P:A=P+1}let E=[];for(;this.ids[A]===h;)E.push({index:this.positions[3*A],start:this.positions[3*A+1],end:this.positions[3*A+2]}),A++;return E}static serialize(a,h){let A=new Float64Array(a.ids),x=new Uint32Array(a.positions);return Ho(A,x,0,A.length-1),h&&h.push(A.buffer,x.buffer),{ids:A,positions:x}}static deserialize(a){let h=new On;return h.ids=a.ids,h.positions=a.positions,h.indexed=!0,h}}function us(u){let a=+u;return!isNaN(a)&&a<=Number.MAX_SAFE_INTEGER?a:_h(String(u))}function Ho(u,a,h,A){for(;h>1],E=h-1,P=A+1;for(;;){do E++;while(u[E]x);if(E>=P)break;pn(u,E,P),pn(a,3*E,3*P),pn(a,3*E+1,3*P+1),pn(a,3*E+2,3*P+2)}P-h`u_${x}`),this.type=A}setUniform(a,h,A){a.set(A.constantOr(this.value))}getBinding(a,h,A){return this.type===\"color\"?new d_(a,h):new Gr(a,h)}}class qo{constructor(a,h){this.uniformNames=h.map(A=>`u_${A}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(a,h){this.pixelRatioFrom=h.pixelRatio,this.pixelRatioTo=a.pixelRatio,this.patternFrom=h.tlbr,this.patternTo=a.tlbr}setUniform(a,h,A,x){let E=x===\"u_pattern_to\"?this.patternTo:x===\"u_pattern_from\"?this.patternFrom:x===\"u_pixel_ratio_to\"?this.pixelRatioTo:x===\"u_pixel_ratio_from\"?this.pixelRatioFrom:null;E&&a.set(E)}getBinding(a,h,A){return A.substr(0,9)===\"u_pattern\"?new Na(a,h):new Gr(a,h)}}class me{constructor(a,h,A,x){this.expression=a,this.type=A,this.maxValue=0,this.paintVertexAttributes=h.map(E=>({name:`a_${E}`,type:\"Float32\",components:A===\"color\"?2:1,offset:0})),this.paintVertexArray=new x}populatePaintArray(a,h,A,x,E){let P=this.paintVertexArray.length,D=this.expression.evaluate(new ln(0),h,{},x,[],E);this.paintVertexArray.resize(a),this._setPaintValue(P,a,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:0},A,x);this._setPaintValue(a,h,E)}_setPaintValue(a,h,A){if(this.type===\"color\"){let x=oA(A);for(let E=a;E`u_${D}_t`),this.type=A,this.useIntegerZoom=x,this.zoom=E,this.maxValue=0,this.paintVertexAttributes=h.map(D=>({name:`a_${D}`,type:\"Float32\",components:A===\"color\"?4:2,offset:0})),this.paintVertexArray=new P}populatePaintArray(a,h,A,x,E){let P=this.expression.evaluate(new ln(this.zoom),h,{},x,[],E),D=this.expression.evaluate(new ln(this.zoom+1),h,{},x,[],E),F=this.paintVertexArray.length;this.paintVertexArray.resize(a),this._setPaintValue(F,a,P,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:this.zoom},A,x),P=this.expression.evaluate({zoom:this.zoom+1},A,x);this._setPaintValue(a,h,E,P)}_setPaintValue(a,h,A,x){if(this.type===\"color\"){let E=oA(A),P=oA(x);for(let D=a;D`#define HAS_UNIFORM_${x}`))}return a}getBinderAttributes(){let a=[];for(let h in this.binders){let A=this.binders[h];if(A instanceof me||A instanceof Le)for(let x=0;x!0){this.programConfigurations={};for(let x of a)this.programConfigurations[x.id]=new Sf(x,h,A);this.needsUpload=!1,this._featureMap=new On,this._bufferOffset=0}populatePaintArrays(a,h,A,x,E,P){for(let D in this.programConfigurations)this.programConfigurations[D].populatePaintArrays(a,h,x,E,P);h.id!==void 0&&this._featureMap.add(h.id,A,this._bufferOffset,a),this._bufferOffset=a,this.needsUpload=!0}updatePaintArrays(a,h,A,x){for(let E of A)this.needsUpload=this.programConfigurations[E.id].updatePaintArrays(a,this._featureMap,h,E,x)||this.needsUpload}get(a){return this.programConfigurations[a]}upload(a){if(this.needsUpload){for(let h in this.programConfigurations)this.programConfigurations[h].upload(a);this.needsUpload=!1}}destroy(){for(let a in this.programConfigurations)this.programConfigurations[a].destroy()}}function Dc(u,a){return{\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"]}[u]||[u.replace(`${a}-`,\"\").replace(/-/g,\"_\")]}function Lx(u,a,h){let A={color:{source:wf,composite:At},number:{source:U,composite:wf}},x=function(E){return{\"line-pattern\":{source:Vi,composite:Vi},\"fill-pattern\":{source:Vi,composite:Vi},\"fill-extrusion-pattern\":{source:Vi,composite:Vi}}[E]}(u);return x&&x[h]||A[a][h]}Ue(\"ConstantBinder\",Wl),Ue(\"CrossFadedConstantBinder\",qo),Ue(\"SourceExpressionBinder\",me),Ue(\"CrossFadedCompositeBinder\",dl),Ue(\"CompositeExpressionBinder\",Le),Ue(\"ProgramConfiguration\",Sf,{omit:[\"_buffers\"]}),Ue(\"ProgramConfigurationSet\",Ua);let Xi=8192,p=Math.pow(2,14)-1,m=-p-1;function y(u){let a=Xi/u.extent,h=u.loadGeometry();for(let A=0;AP.x+1||FP.y+1)&&tr(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\")}}return h}function S(u,a){return{type:u.type,id:u.id,properties:u.properties,geometry:a?y(u):[]}}function I(u,a,h,A,x){u.emplaceBack(2*a+(A+1)/2,2*h+(x+1)/2)}class k{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new We,this.indexArray=new zs,this.segments=new jr,this.programConfigurations=new Ua(a.layers,a.zoom),this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){let x=this.layers[0],E=[],P=null,D=!1;x.type===\"circle\"&&(P=x.layout.get(\"circle-sort-key\"),D=!P.isConstant());for(let{feature:F,id:V,index:q,sourceLayerIndex:X}of a){let et=this.layers[0]._featureFilter.needGeometry,at=S(F,et);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),at,A))continue;let ct=D?P.evaluate(at,{},A):void 0,mt={id:V,properties:F.properties,type:F.type,sourceLayerIndex:X,index:q,geometry:et?at.geometry:y(F),patterns:{},sortKey:ct};E.push(mt)}D&&E.sort((F,V)=>F.sortKey-V.sortKey);for(let F of E){let{geometry:V,index:q,sourceLayerIndex:X}=F,et=a[q].feature;this.addFeature(F,V,q,A),h.featureIndex.insert(et,V,q,X,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,Wo),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(a,h,A,x){for(let E of h)for(let P of E){let D=P.x,F=P.y;if(D<0||D>=Xi||F<0||F>=Xi)continue;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,a.sortKey),q=V.vertexLength;I(this.layoutVertexArray,D,F,-1,-1),I(this.layoutVertexArray,D,F,1,-1),I(this.layoutVertexArray,D,F,1,1),I(this.layoutVertexArray,D,F,-1,1),this.indexArray.emplaceBack(q,q+1,q+2),this.indexArray.emplaceBack(q,q+3,q+2),V.vertexLength+=4,V.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,{},x)}}function L(u,a){for(let h=0;h1){if(ot(u,a))return!0;for(let A=0;A1?h:h.sub(a)._mult(x)._add(a))}function ee(u,a){let h,A,x,E=!1;for(let P=0;Pa.y!=x.y>a.y&&a.x<(x.x-A.x)*(a.y-A.y)/(x.y-A.y)+A.x&&(E=!E)}return E}function ie(u,a){let h=!1;for(let A=0,x=u.length-1;Aa.y!=P.y>a.y&&a.x<(P.x-E.x)*(a.y-E.y)/(P.y-E.y)+E.x&&(h=!h)}return h}function Ce(u,a,h){let A=h[0],x=h[2];if(u.xx.x&&a.x>x.x||u.yx.y&&a.y>x.y)return!1;let E=er(u,a,h[0]);return E!==er(u,a,h[1])||E!==er(u,a,h[2])||E!==er(u,a,h[3])}function Ve(u,a,h){let A=a.paint.get(u).value;return A.kind===\"constant\"?A.value:h.programConfigurations.get(a.id).getMaxValue(u)}function Jt(u){return Math.sqrt(u[0]*u[0]+u[1]*u[1])}function _e(u,a,h,A,x){if(!a[0]&&!a[1])return u;let E=w.convert(a)._mult(x);h===\"viewport\"&&E._rotate(-A);let P=[];for(let D=0;DAn(bt,mt))}(V,F),at=X?q*D:q;for(let ct of x)for(let mt of ct){let bt=X?mt:An(mt,F),Et=at,Vt=Ei([],[mt.x,mt.y,0,1],F);if(this.paint.get(\"circle-pitch-scale\")===\"viewport\"&&this.paint.get(\"circle-pitch-alignment\")===\"map\"?Et*=Vt[3]/P.cameraToCenterDistance:this.paint.get(\"circle-pitch-scale\")===\"map\"&&this.paint.get(\"circle-pitch-alignment\")===\"viewport\"&&(Et*=P.cameraToCenterDistance/Vt[3]),z(et,bt,Et))return!0}return!1}}function An(u,a){let h=Ei([],[u.x,u.y,0,1],a);return new w(h[0]/h[3],h[1]/h[3])}class Or extends k{}let b6;Ue(\"HeatmapBucket\",Or,{omit:[\"layers\"]});var Y$={get paint(){return b6=b6||new Gn({\"heatmap-radius\":new fr(te.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new fr(te.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new rr(te.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new Dd(te.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new rr(te.paint_heatmap[\"heatmap-opacity\"])})}};function HI(u,{width:a,height:h},A,x){if(x){if(x instanceof Uint8ClampedArray)x=new Uint8Array(x.buffer);else if(x.length!==a*h*A)throw new RangeError(`mismatched image size. expected: ${x.length} but got: ${a*h*A}`)}else x=new Uint8Array(a*h*A);return u.width=a,u.height=h,u.data=x,u}function w6(u,{width:a,height:h},A){if(a===u.width&&h===u.height)return;let x=HI({},{width:a,height:h},A);qI(u,x,{x:0,y:0},{x:0,y:0},{width:Math.min(u.width,a),height:Math.min(u.height,h)},A),u.width=a,u.height=h,u.data=x.data}function qI(u,a,h,A,x,E){if(x.width===0||x.height===0)return a;if(x.width>u.width||x.height>u.height||h.x>u.width-x.width||h.y>u.height-x.height)throw new RangeError(\"out of range source coordinates for image copy\");if(x.width>a.width||x.height>a.height||A.x>a.width-x.width||A.y>a.height-x.height)throw new RangeError(\"out of range destination coordinates for image copy\");let P=u.data,D=a.data;if(P===D)throw new Error(\"srcData equals dstData, so image is already copied\");for(let F=0;F{a[u.evaluationKey]=F;let V=u.expression.evaluate(a);x.data[P+D+0]=Math.floor(255*V.r/V.a),x.data[P+D+1]=Math.floor(255*V.g/V.a),x.data[P+D+2]=Math.floor(255*V.b/V.a),x.data[P+D+3]=Math.floor(255*V.a)};if(u.clips)for(let P=0,D=0;P80*h){A=E=u[0],x=P=u[1];for(var ct=h;ctE&&(E=D),F>P&&(P=F);V=(V=Math.max(E-A,P-x))!==0?32767/V:0}return Rx(et,at,h,A,x,V,0),at}function M6(u,a,h,A,x){var E,P;if(x===$I(u,a,h,A)>0)for(E=a;E=a;E-=A)P=I6(E,u[E],u[E+1],P);return P&&zS(P,P.next)&&(Ox(P),P=P.next),P}function u0(u,a){if(!u)return u;a||(a=u);var h,A=u;do if(h=!1,A.steiner||!zS(A,A.next)&&hs(A.prev,A,A.next)!==0)A=A.next;else{if(Ox(A),(A=a=A.prev)===A.next)break;h=!0}while(h||A!==a);return a}function Rx(u,a,h,A,x,E,P){if(u){!P&&E&&function(q,X,et,at){var ct=q;do ct.z===0&&(ct.z=YI(ct.x,ct.y,X,et,at)),ct.prevZ=ct.prev,ct.nextZ=ct.next,ct=ct.next;while(ct!==q);ct.prevZ.nextZ=null,ct.prevZ=null,function(mt){var bt,Et,Vt,kt,jt,qt,ae,Be,Je=1;do{for(Et=mt,mt=null,jt=null,qt=0;Et;){for(qt++,Vt=Et,ae=0,bt=0;bt0||Be>0&&Vt;)ae!==0&&(Be===0||!Vt||Et.z<=Vt.z)?(kt=Et,Et=Et.nextZ,ae--):(kt=Vt,Vt=Vt.nextZ,Be--),jt?jt.nextZ=kt:mt=kt,kt.prevZ=jt,jt=kt;Et=Vt}jt.nextZ=null,Je*=2}while(qt>1)}(ct)}(u,A,x,E);for(var D,F,V=u;u.prev!==u.next;)if(D=u.prev,F=u.next,E?eX(u,A,x,E):tX(u))a.push(D.i/h|0),a.push(u.i/h|0),a.push(F.i/h|0),Ox(u),u=F.next,V=F.next;else if((u=F)===V){P?P===1?Rx(u=rX(u0(u),a,h),a,h,A,x,E,2):P===2&&iX(u,a,h,A,x,E):Rx(u0(u),a,h,A,x,E,1);break}}}function tX(u){var a=u.prev,h=u,A=u.next;if(hs(a,h,A)>=0)return!1;for(var x=a.x,E=h.x,P=A.x,D=a.y,F=h.y,V=A.y,q=xE?x>P?x:P:E>P?E:P,at=D>F?D>V?D:V:F>V?F:V,ct=A.next;ct!==a;){if(ct.x>=q&&ct.x<=et&&ct.y>=X&&ct.y<=at&&p_(x,D,E,F,P,V,ct.x,ct.y)&&hs(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function eX(u,a,h,A){var x=u.prev,E=u,P=u.next;if(hs(x,E,P)>=0)return!1;for(var D=x.x,F=E.x,V=P.x,q=x.y,X=E.y,et=P.y,at=DF?D>V?D:V:F>V?F:V,bt=q>X?q>et?q:et:X>et?X:et,Et=YI(at,ct,a,h,A),Vt=YI(mt,bt,a,h,A),kt=u.prevZ,jt=u.nextZ;kt&&kt.z>=Et&&jt&&jt.z<=Vt;){if(kt.x>=at&&kt.x<=mt&&kt.y>=ct&&kt.y<=bt&&kt!==x&&kt!==P&&p_(D,q,F,X,V,et,kt.x,kt.y)&&hs(kt.prev,kt,kt.next)>=0||(kt=kt.prevZ,jt.x>=at&&jt.x<=mt&&jt.y>=ct&&jt.y<=bt&&jt!==x&&jt!==P&&p_(D,q,F,X,V,et,jt.x,jt.y)&&hs(jt.prev,jt,jt.next)>=0))return!1;jt=jt.nextZ}for(;kt&&kt.z>=Et;){if(kt.x>=at&&kt.x<=mt&&kt.y>=ct&&kt.y<=bt&&kt!==x&&kt!==P&&p_(D,q,F,X,V,et,kt.x,kt.y)&&hs(kt.prev,kt,kt.next)>=0)return!1;kt=kt.prevZ}for(;jt&&jt.z<=Vt;){if(jt.x>=at&&jt.x<=mt&&jt.y>=ct&&jt.y<=bt&&jt!==x&&jt!==P&&p_(D,q,F,X,V,et,jt.x,jt.y)&&hs(jt.prev,jt,jt.next)>=0)return!1;jt=jt.nextZ}return!0}function rX(u,a,h){var A=u;do{var x=A.prev,E=A.next.next;!zS(x,E)&&E6(x,A,A.next,E)&&Dx(x,E)&&Dx(E,x)&&(a.push(x.i/h|0),a.push(A.i/h|0),a.push(E.i/h|0),Ox(A),Ox(A.next),A=u=E),A=A.next}while(A!==u);return u0(A)}function iX(u,a,h,A,x,E){var P=u;do{for(var D=P.next.next;D!==P.prev;){if(P.i!==D.i&&lX(P,D)){var F=P6(P,D);return P=u0(P,P.next),F=u0(F,F.next),Rx(P,a,h,A,x,E,0),void Rx(F,a,h,A,x,E,0)}D=D.next}P=P.next}while(P!==u)}function nX(u,a){return u.x-a.x}function sX(u,a){var h=function(x,E){var P,D=E,F=x.x,V=x.y,q=-1/0;do{if(V<=D.y&&V>=D.next.y&&D.next.y!==D.y){var X=D.x+(V-D.y)*(D.next.x-D.x)/(D.next.y-D.y);if(X<=F&&X>q&&(q=X,P=D.x=D.x&&D.x>=ct&&F!==D.x&&p_(VP.x||D.x===P.x&&oX(P,D)))&&(P=D,bt=et)),D=D.next;while(D!==at);return P}(u,a);if(!h)return a;var A=P6(h,u);return u0(A,A.next),u0(h,h.next)}function oX(u,a){return hs(u.prev,u,a.prev)<0&&hs(a.next,u,u.next)<0}function YI(u,a,h,A,x){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=(u-h)*x|0)|u<<8))|u<<4))|u<<2))|u<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-A)*x|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function aX(u){var a=u,h=u;do(a.x=(u-P)*(E-D)&&(u-P)*(A-D)>=(h-P)*(a-D)&&(h-P)*(E-D)>=(x-P)*(A-D)}function lX(u,a){return u.next.i!==a.i&&u.prev.i!==a.i&&!function(h,A){var x=h;do{if(x.i!==h.i&&x.next.i!==h.i&&x.i!==A.i&&x.next.i!==A.i&&E6(x,x.next,h,A))return!0;x=x.next}while(x!==h);return!1}(u,a)&&(Dx(u,a)&&Dx(a,u)&&function(h,A){var x=h,E=!1,P=(h.x+A.x)/2,D=(h.y+A.y)/2;do x.y>D!=x.next.y>D&&x.next.y!==x.y&&P<(x.next.x-x.x)*(D-x.y)/(x.next.y-x.y)+x.x&&(E=!E),x=x.next;while(x!==h);return E}(u,a)&&(hs(u.prev,u,a.prev)||hs(u,a.prev,a))||zS(u,a)&&hs(u.prev,u,u.next)>0&&hs(a.prev,a,a.next)>0)}function hs(u,a,h){return(a.y-u.y)*(h.x-a.x)-(a.x-u.x)*(h.y-a.y)}function zS(u,a){return u.x===a.x&&u.y===a.y}function E6(u,a,h,A){var x=US(hs(u,a,h)),E=US(hs(u,a,A)),P=US(hs(h,A,u)),D=US(hs(h,A,a));return x!==E&&P!==D||!(x!==0||!NS(u,h,a))||!(E!==0||!NS(u,A,a))||!(P!==0||!NS(h,u,A))||!(D!==0||!NS(h,a,A))}function NS(u,a,h){return a.x<=Math.max(u.x,h.x)&&a.x>=Math.min(u.x,h.x)&&a.y<=Math.max(u.y,h.y)&&a.y>=Math.min(u.y,h.y)}function US(u){return u>0?1:u<0?-1:0}function Dx(u,a){return hs(u.prev,u,u.next)<0?hs(u,a,u.next)>=0&&hs(u,u.prev,a)>=0:hs(u,a,u.prev)<0||hs(u,u.next,a)<0}function P6(u,a){var h=new QI(u.i,u.x,u.y),A=new QI(a.i,a.x,a.y),x=u.next,E=a.prev;return u.next=a,a.prev=u,h.next=x,x.prev=h,A.next=h,h.prev=A,E.next=A,A.prev=E,A}function I6(u,a,h,A){var x=new QI(u,a,h);return A?(x.next=A.next,x.prev=A,A.next.prev=x,A.next=x):(x.prev=x,x.next=x),x}function Ox(u){u.next.prev=u.prev,u.prev.next=u.next,u.prevZ&&(u.prevZ.nextZ=u.nextZ),u.nextZ&&(u.nextZ.prevZ=u.prevZ)}function QI(u,a,h){this.i=u,this.x=a,this.y=h,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function $I(u,a,h,A){for(var x=0,E=a,P=h-A;E0&&h.holes.push(A+=u[x-1].length)}return h};var C6=c(ZI.exports);function cX(u,a,h,A,x){L6(u,a,h||0,A||u.length-1,x||uX)}function L6(u,a,h,A,x){for(;A>h;){if(A-h>600){var E=A-h+1,P=a-h+1,D=Math.log(E),F=.5*Math.exp(2*D/3),V=.5*Math.sqrt(D*F*(E-F)/E)*(P-E/2<0?-1:1);L6(u,a,Math.max(h,Math.floor(a-P*F/E+V)),Math.min(A,Math.floor(a+(E-P)*F/E+V)),x)}var q=u[a],X=h,et=A;for(Bx(u,h,a),x(u[A],q)>0&&Bx(u,h,A);X0;)et--}x(u[h],q)===0?Bx(u,h,et):Bx(u,++et,A),et<=a&&(h=et+1),a<=et&&(A=et-1)}}function Bx(u,a,h){var A=u[a];u[a]=u[h],u[h]=A}function uX(u,a){return ua?1:0}function XI(u,a){let h=u.length;if(h<=1)return[u];let A=[],x,E;for(let P=0;P1)for(let P=0;Ph.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Kr,this.indexArray=new zs,this.indexArray2=new cs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.segments2=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=KI(\"fill\",this.layers,h);let x=this.layers[0].layout.get(\"fill-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,et=S(D,X);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),et,A))continue;let at=E?x.evaluate(et,{},A,h.availableImages):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?et.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=JI(\"fill\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,J$),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.indexBuffer2=a.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(a,h,A,x,E){for(let P of XI(h,500)){let D=0;for(let at of P)D+=at.length;let F=this.segments.prepareSegment(D,this.layoutVertexArray,this.indexArray),V=F.vertexLength,q=[],X=[];for(let at of P){if(at.length===0)continue;at!==P[0]&&X.push(q.length/2);let ct=this.segments2.prepareSegment(at.length,this.layoutVertexArray,this.indexArray2),mt=ct.vertexLength;this.layoutVertexArray.emplaceBack(at[0].x,at[0].y),this.indexArray2.emplaceBack(mt+at.length-1,mt),q.push(at[0].x),q.push(at[0].y);for(let bt=1;bt>3}if(x--,A===1||A===2)E+=u.readSVarint(),P+=u.readSVarint(),A===1&&(a&&D.push(a),a=[]),a.push(new gX(E,P));else{if(A!==7)throw new Error(\"unknown command \"+A);a&&a.push(a[0].clone())}}return a&&D.push(a),D},A_.prototype.bbox=function(){var u=this._pbf;u.pos=this._geometry;for(var a=u.readVarint()+u.pos,h=1,A=0,x=0,E=0,P=1/0,D=-1/0,F=1/0,V=-1/0;u.pos>3}if(A--,h===1||h===2)(x+=u.readSVarint())D&&(D=x),(E+=u.readSVarint())V&&(V=E);else if(h!==7)throw new Error(\"unknown command \"+h)}return[P,F,D,V]},A_.prototype.toGeoJSON=function(u,a,h){var A,x,E=this.extent*Math.pow(2,h),P=this.extent*u,D=this.extent*a,F=this.loadGeometry(),V=A_.types[this.type];function q(at){for(var ct=0;ct>3;x=P===1?A.readString():P===2?A.readFloat():P===3?A.readDouble():P===4?A.readVarint64():P===5?A.readVarint():P===6?A.readSVarint():P===7?A.readBoolean():null}return x}(h))}B6.prototype.feature=function(u){if(u<0||u>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[u];var a=this._pbf.readVarint()+this._pbf.pos;return new vX(this._pbf,a,this.extent,this._keys,this._values)};var bX=O6;function wX(u,a,h){if(u===3){var A=new bX(h,h.readVarint()+h.pos);A.length&&(a[A.name]=A)}}aA.VectorTile=function(u,a){this.layers=u.readFields(wX,{},a)},aA.VectorTileFeature=D6,aA.VectorTileLayer=O6;let SX=aA.VectorTileFeature.types,eC=Math.pow(2,13);function Fx(u,a,h,A,x,E,P,D){u.emplaceBack(a,h,2*Math.floor(A*eC)+P,x*eC*2,E*eC*2,Math.round(D))}class rC{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new Me,this.centroidVertexArray=new xe,this.indexArray=new zs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.features=[],this.hasPattern=KI(\"fill-extrusion\",this.layers,h);for(let{feature:x,id:E,index:P,sourceLayerIndex:D}of a){let F=this.layers[0]._featureFilter.needGeometry,V=S(x,F);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),V,A))continue;let q={id:E,sourceLayerIndex:D,index:P,geometry:F?V.geometry:y(x),properties:x.properties,type:x.type,patterns:{}};this.hasPattern?this.features.push(JI(\"fill-extrusion\",this.layers,q,this.zoom,h)):this.addFeature(q,q.geometry,P,A,{}),h.featureIndex.insert(x,q.geometry,P,D,this.index,!0)}}addFeatures(a,h,A){for(let x of this.features){let{geometry:E}=x;this.addFeature(x,E,x.index,h,A)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,mX),this.centroidVertexBuffer=a.createVertexBuffer(this.centroidVertexArray,AX.members,!0),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(a,h,A,x,E){let P={x:0,y:0,vertexCount:0};for(let D of XI(h,500)){let F=0;for(let ct of D)F+=ct.length;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(let ct of D){if(ct.length===0||MX(ct))continue;let mt=0;for(let bt=0;bt=1){let Vt=ct[bt-1];if(!TX(Et,Vt)){V.vertexLength+4>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let kt=Et.sub(Vt)._perp()._unit(),jt=Vt.dist(Et);mt+jt>32768&&(mt=0),Fx(this.layoutVertexArray,Et.x,Et.y,kt.x,kt.y,0,0,mt),Fx(this.layoutVertexArray,Et.x,Et.y,kt.x,kt.y,0,1,mt),P.x+=2*Et.x,P.y+=2*Et.y,P.vertexCount+=2,mt+=jt,Fx(this.layoutVertexArray,Vt.x,Vt.y,kt.x,kt.y,0,0,mt),Fx(this.layoutVertexArray,Vt.x,Vt.y,kt.x,kt.y,0,1,mt),P.x+=2*Vt.x,P.y+=2*Vt.y,P.vertexCount+=2;let qt=V.vertexLength;this.indexArray.emplaceBack(qt,qt+2,qt+1),this.indexArray.emplaceBack(qt+1,qt+2,qt+3),V.vertexLength+=4,V.primitiveLength+=2}}}}if(V.vertexLength+F>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(F,this.layoutVertexArray,this.indexArray)),SX[a.type]!==\"Polygon\")continue;let q=[],X=[],et=V.vertexLength;for(let ct of D)if(ct.length!==0){ct!==D[0]&&X.push(q.length/2);for(let mt=0;mtXi)||u.y===a.y&&(u.y<0||u.y>Xi)}function MX(u){return u.every(a=>a.x<0)||u.every(a=>a.x>Xi)||u.every(a=>a.y<0)||u.every(a=>a.y>Xi)}let F6;Ue(\"FillExtrusionBucket\",rC,{omit:[\"layers\",\"features\"]});var EX={get paint(){return F6=F6||new Gn({\"fill-extrusion-opacity\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new xf(te[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})}};class PX extends Ui{constructor(a){super(a,EX)}createBucket(a){return new rC(a)}queryRadius(){return Jt(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return!0}queryIntersectsFeature(a,h,A,x,E,P,D,F){let V=_e(a,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),P.angle,D),q=this.paint.get(\"fill-extrusion-height\").evaluate(h,A),X=this.paint.get(\"fill-extrusion-base\").evaluate(h,A),et=function(ct,mt,bt,Et){let Vt=[];for(let kt of ct){let jt=[kt.x,kt.y,0,1];Ei(jt,jt,mt),Vt.push(new w(jt[0]/jt[3],jt[1]/jt[3]))}return Vt}(V,F),at=function(ct,mt,bt,Et){let Vt=[],kt=[],jt=Et[8]*mt,qt=Et[9]*mt,ae=Et[10]*mt,Be=Et[11]*mt,Je=Et[8]*bt,Oe=Et[9]*bt,ke=Et[10]*bt,Te=Et[11]*bt;for(let He of ct){let Pe=[],Ae=[];for(let ur of He){let ir=ur.x,ri=ur.y,xn=Et[0]*ir+Et[4]*ri+Et[12],Ln=Et[1]*ir+Et[5]*ri+Et[13],Vs=Et[2]*ir+Et[6]*ri+Et[14],Hl=Et[3]*ir+Et[7]*ri+Et[15],Va=Vs+ae,Ps=Hl+Be,vo=xn+Je,Yo=Ln+Oe,ja=Vs+ke,Ga=Hl+Te,js=new w((xn+jt)/Ps,(Ln+qt)/Ps);js.z=Va/Ps,Pe.push(js);let Gs=new w(vo/Ga,Yo/Ga);Gs.z=ja/Ga,Ae.push(Gs)}Vt.push(Pe),kt.push(Ae)}return[Vt,kt]}(x,X,q,F);return function(ct,mt,bt){let Et=1/0;H(bt,mt)&&(Et=z6(bt,mt[0]));for(let Vt=0;Vth.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(h=>{this.gradients[h.id]={}}),this.layoutVertexArray=new dr,this.layoutVertexArray2=new Xe,this.indexArray=new zs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=KI(\"line\",this.layers,h);let x=this.layers[0].layout.get(\"line-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,et=S(D,X);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),et,A))continue;let at=E?x.evaluate(et,{},A):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?et.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=JI(\"line\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=a.createVertexBuffer(this.layoutVertexArray2,kX)),this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,CX),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(a){if(a.properties&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_start\")&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_end\"))return{start:+a.properties.mapbox_clip_start,end:+a.properties.mapbox_clip_end}}addFeature(a,h,A,x,E){let P=this.layers[0].layout,D=P.get(\"line-join\").evaluate(a,{}),F=P.get(\"line-cap\"),V=P.get(\"line-miter-limit\"),q=P.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(a);for(let X of h)this.addLine(X,a,D,F,V,q);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}addLine(a,h,A,x,E,P){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let Et=0;Et=2&&a[F-1].equals(a[F-2]);)F--;let V=0;for(;V0;if(Be&&Et>V){let Te=et.dist(at);if(Te>2*q){let He=et.sub(et.sub(at)._mult(q/Te)._round());this.updateDistance(at,He),this.addCurrentVertex(He,mt,0,0,X),at=He}}let Oe=at&&ct,ke=Oe?A:D?\"butt\":x;if(Oe&&ke===\"round\"&&(qtE&&(ke=\"bevel\"),ke===\"bevel\"&&(qt>2&&(ke=\"flipbevel\"),qt100)Vt=bt.mult(-1);else{let Te=qt*mt.add(bt).mag()/mt.sub(bt).mag();Vt._perp()._mult(Te*(Je?-1:1))}this.addCurrentVertex(et,Vt,0,0,X),this.addCurrentVertex(et,Vt.mult(-1),0,0,X)}else if(ke===\"bevel\"||ke===\"fakeround\"){let Te=-Math.sqrt(qt*qt-1),He=Je?Te:0,Pe=Je?0:Te;if(at&&this.addCurrentVertex(et,mt,He,Pe,X),ke===\"fakeround\"){let Ae=Math.round(180*ae/Math.PI/20);for(let ur=1;ur2*q){let He=et.add(ct.sub(et)._mult(q/Te)._round());this.updateDistance(et,He),this.addCurrentVertex(He,bt,0,0,X),et=He}}}}addCurrentVertex(a,h,A,x,E,P=!1){let D=h.y*x-h.x,F=-h.y-h.x*x;this.addHalfVertex(a,h.x+h.y*A,h.y-h.x*A,P,!1,A,E),this.addHalfVertex(a,D,F,P,!0,-x,E),this.distance>N6/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(a,h,A,x,E,P))}addHalfVertex({x:a,y:h},A,x,E,P,D,F){let V=.5*(this.lineClips?this.scaledDistance*(N6-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((a<<1)+(E?1:0),(h<<1)+(P?1:0),Math.round(63*A)+128,Math.round(63*x)+128,1+(D===0?0:D<0?-1:1)|(63&V)<<2,V>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);let q=F.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,q),F.primitiveLength++),P?this.e2=q:this.e1=q}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(a,h){this.distance+=a.dist(h),this.updateScaledDistance()}}let U6,V6;Ue(\"LineBucket\",iC,{omit:[\"layers\",\"patternFeatures\"]});var j6={get paint(){return V6=V6||new Gn({\"line-opacity\":new fr(te.paint_line[\"line-opacity\"]),\"line-color\":new fr(te.paint_line[\"line-color\"]),\"line-translate\":new rr(te.paint_line[\"line-translate\"]),\"line-translate-anchor\":new rr(te.paint_line[\"line-translate-anchor\"]),\"line-width\":new fr(te.paint_line[\"line-width\"]),\"line-gap-width\":new fr(te.paint_line[\"line-gap-width\"]),\"line-offset\":new fr(te.paint_line[\"line-offset\"]),\"line-blur\":new fr(te.paint_line[\"line-blur\"]),\"line-dasharray\":new nA(te.paint_line[\"line-dasharray\"]),\"line-pattern\":new xf(te.paint_line[\"line-pattern\"]),\"line-gradient\":new Dd(te.paint_line[\"line-gradient\"])})},get layout(){return U6=U6||new Gn({\"line-cap\":new rr(te.layout_line[\"line-cap\"]),\"line-join\":new fr(te.layout_line[\"line-join\"]),\"line-miter-limit\":new rr(te.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new rr(te.layout_line[\"line-round-limit\"]),\"line-sort-key\":new fr(te.layout_line[\"line-sort-key\"])})}};class OX extends fr{possiblyEvaluate(a,h){return h=new ln(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),super.possiblyEvaluate(a,h)}evaluate(a,h,A,x){return h=Ot({},h,{zoom:Math.floor(h.zoom)}),super.evaluate(a,h,A,x)}}let VS;class BX extends Ui{constructor(a){super(a,j6),this.gradientVersion=0,VS||(VS=new OX(j6.paint.properties[\"line-width\"].specification),VS.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(a){if(a===\"line-gradient\"){let h=this.gradientExpression();this.stepInterpolant=!!function(A){return A._styleExpression!==void 0}(h)&&h._styleExpression.expression instanceof nh,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}recalculate(a,h){super.recalculate(a,h),this.paint._values[\"line-floorwidth\"]=VS.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,a)}createBucket(a){return new iC(a)}queryRadius(a){let h=a,A=G6(Ve(\"line-width\",this,h),Ve(\"line-gap-width\",this,h)),x=Ve(\"line-offset\",this,h);return A/2+Math.abs(x)+Jt(this.paint.get(\"line-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D){let F=_e(a,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),P.angle,D),V=D/2*G6(this.paint.get(\"line-width\").evaluate(h,A),this.paint.get(\"line-gap-width\").evaluate(h,A)),q=this.paint.get(\"line-offset\").evaluate(h,A);return q&&(x=function(X,et){let at=[];for(let ct=0;ct=3){for(let bt=0;bt0?a+2*u:u}let FX=yn([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),zX=yn([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);yn([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);let NX=yn([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);yn([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);let W6=yn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),UX=yn([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function VX(u,a,h){return u.sections.forEach(A=>{A.text=function(x,E,P){let D=E.layout.get(\"text-transform\").evaluate(P,{});return D===\"uppercase\"?x=x.toLocaleUpperCase():D===\"lowercase\"&&(x=x.toLocaleLowerCase()),ua.applyArabicShaping&&(x=ua.applyArabicShaping(x)),x}(A.text,a,h)}),u}yn([{name:\"triangle\",components:3,type:\"Uint16\"}]),yn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),yn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",name:\"collisionCircleDiameter\"},{type:\"Uint16\",name:\"textAnchorOffsetStartIndex\"},{type:\"Uint16\",name:\"textAnchorOffsetEndIndex\"}]),yn([{type:\"Float32\",name:\"offsetX\"}]),yn([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]),yn([{type:\"Uint16\",name:\"textAnchor\"},{type:\"Float32\",components:2,name:\"textOffset\"}]);let Nx={\"!\":\"\\uFE15\",\"#\":\"\\uFF03\",$:\"\\uFF04\",\"%\":\"\\uFF05\",\"&\":\"\\uFF06\",\"(\":\"\\uFE35\",\")\":\"\\uFE36\",\"*\":\"\\uFF0A\",\"+\":\"\\uFF0B\",\",\":\"\\uFE10\",\"-\":\"\\uFE32\",\".\":\"\\u30FB\",\"/\":\"\\uFF0F\",\":\":\"\\uFE13\",\";\":\"\\uFE14\",\"<\":\"\\uFE3F\",\"=\":\"\\uFF1D\",\">\":\"\\uFE40\",\"?\":\"\\uFE16\",\"@\":\"\\uFF20\",\"[\":\"\\uFE47\",\"\\\\\":\"\\uFF3C\",\"]\":\"\\uFE48\",\"^\":\"\\uFF3E\",_:\"\\uFE33\",\"`\":\"\\uFF40\",\"{\":\"\\uFE37\",\"|\":\"\\u2015\",\"}\":\"\\uFE38\",\"~\":\"\\uFF5E\",\"\\xA2\":\"\\uFFE0\",\"\\xA3\":\"\\uFFE1\",\"\\xA5\":\"\\uFFE5\",\"\\xA6\":\"\\uFFE4\",\"\\xAC\":\"\\uFFE2\",\"\\xAF\":\"\\uFFE3\",\"\\u2013\":\"\\uFE32\",\"\\u2014\":\"\\uFE31\",\"\\u2018\":\"\\uFE43\",\"\\u2019\":\"\\uFE44\",\"\\u201C\":\"\\uFE41\",\"\\u201D\":\"\\uFE42\",\"\\u2026\":\"\\uFE19\",\"\\u2027\":\"\\u30FB\",\"\\u20A9\":\"\\uFFE6\",\"\\u3001\":\"\\uFE11\",\"\\u3002\":\"\\uFE12\",\"\\u3008\":\"\\uFE3F\",\"\\u3009\":\"\\uFE40\",\"\\u300A\":\"\\uFE3D\",\"\\u300B\":\"\\uFE3E\",\"\\u300C\":\"\\uFE41\",\"\\u300D\":\"\\uFE42\",\"\\u300E\":\"\\uFE43\",\"\\u300F\":\"\\uFE44\",\"\\u3010\":\"\\uFE3B\",\"\\u3011\":\"\\uFE3C\",\"\\u3014\":\"\\uFE39\",\"\\u3015\":\"\\uFE3A\",\"\\u3016\":\"\\uFE17\",\"\\u3017\":\"\\uFE18\",\"\\uFF01\":\"\\uFE15\",\"\\uFF08\":\"\\uFE35\",\"\\uFF09\":\"\\uFE36\",\"\\uFF0C\":\"\\uFE10\",\"\\uFF0D\":\"\\uFE32\",\"\\uFF0E\":\"\\u30FB\",\"\\uFF1A\":\"\\uFE13\",\"\\uFF1B\":\"\\uFE14\",\"\\uFF1C\":\"\\uFE3F\",\"\\uFF1E\":\"\\uFE40\",\"\\uFF1F\":\"\\uFE16\",\"\\uFF3B\":\"\\uFE47\",\"\\uFF3D\":\"\\uFE48\",\"\\uFF3F\":\"\\uFE33\",\"\\uFF5B\":\"\\uFE37\",\"\\uFF5C\":\"\\u2015\",\"\\uFF5D\":\"\\uFE38\",\"\\uFF5F\":\"\\uFE35\",\"\\uFF60\":\"\\uFE36\",\"\\uFF61\":\"\\uFE12\",\"\\uFF62\":\"\\uFE41\",\"\\uFF63\":\"\\uFE42\"};var Us=24,H6=Ki,q6=function(u,a,h,A,x){var E,P,D=8*x-A-1,F=(1<>1,q=-7,X=h?x-1:0,et=h?-1:1,at=u[a+X];for(X+=et,E=at&(1<<-q)-1,at>>=-q,q+=D;q>0;E=256*E+u[a+X],X+=et,q-=8);for(P=E&(1<<-q)-1,E>>=-q,q+=A;q>0;P=256*P+u[a+X],X+=et,q-=8);if(E===0)E=1-V;else{if(E===F)return P?NaN:1/0*(at?-1:1);P+=Math.pow(2,A),E-=V}return(at?-1:1)*P*Math.pow(2,E-A)},Z6=function(u,a,h,A,x,E){var P,D,F,V=8*E-x-1,q=(1<>1,et=x===23?Math.pow(2,-24)-Math.pow(2,-77):0,at=A?0:E-1,ct=A?1:-1,mt=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(D=isNaN(a)?1:0,P=q):(P=Math.floor(Math.log(a)/Math.LN2),a*(F=Math.pow(2,-P))<1&&(P--,F*=2),(a+=P+X>=1?et/F:et*Math.pow(2,1-X))*F>=2&&(P++,F/=2),P+X>=q?(D=0,P=q):P+X>=1?(D=(a*F-1)*Math.pow(2,x),P+=X):(D=a*Math.pow(2,X-1)*Math.pow(2,x),P=0));x>=8;u[h+at]=255&D,at+=ct,D/=256,x-=8);for(P=P<0;u[h+at]=255&P,at+=ct,P/=256,V-=8);u[h+at-ct]|=128*mt};function Ki(u){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(u)?u:new Uint8Array(u||0),this.pos=0,this.type=0,this.length=this.buf.length}Ki.Varint=0,Ki.Fixed64=1,Ki.Bytes=2,Ki.Fixed32=5;var nC=4294967296,Y6=1/nC,Q6=typeof TextDecoder>\"u\"?null:new TextDecoder(\"utf8\");function Fd(u){return u.type===Ki.Bytes?u.readVarint()+u.pos:u.pos+1}function m_(u,a,h){return h?4294967296*a+(u>>>0):4294967296*(a>>>0)+(u>>>0)}function $6(u,a,h){var A=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));h.realloc(A);for(var x=h.pos-1;x>=u;x--)h.buf[x+A]=h.buf[x]}function jX(u,a){for(var h=0;h>>8,u[h+2]=a>>>16,u[h+3]=a>>>24}function X6(u,a){return(u[a]|u[a+1]<<8|u[a+2]<<16)+(u[a+3]<<24)}Ki.prototype={destroy:function(){this.buf=null},readFields:function(u,a,h){for(h=h||this.length;this.pos>3,E=this.pos;this.type=7&A,u(x,a,this),this.pos===E&&this.skip(A)}return a},readMessage:function(u,a){return this.readFields(u,a,this.readVarint()+this.pos)},readFixed32:function(){var u=jS(this.buf,this.pos);return this.pos+=4,u},readSFixed32:function(){var u=X6(this.buf,this.pos);return this.pos+=4,u},readFixed64:function(){var u=jS(this.buf,this.pos)+jS(this.buf,this.pos+4)*nC;return this.pos+=8,u},readSFixed64:function(){var u=jS(this.buf,this.pos)+X6(this.buf,this.pos+4)*nC;return this.pos+=8,u},readFloat:function(){var u=q6(this.buf,this.pos,!0,23,4);return this.pos+=4,u},readDouble:function(){var u=q6(this.buf,this.pos,!0,52,8);return this.pos+=8,u},readVarint:function(u){var a,h,A=this.buf;return a=127&(h=A[this.pos++]),h<128?a:(a|=(127&(h=A[this.pos++]))<<7,h<128?a:(a|=(127&(h=A[this.pos++]))<<14,h<128?a:(a|=(127&(h=A[this.pos++]))<<21,h<128?a:function(x,E,P){var D,F,V=P.buf;if(D=(112&(F=V[P.pos++]))>>4,F<128||(D|=(127&(F=V[P.pos++]))<<3,F<128)||(D|=(127&(F=V[P.pos++]))<<10,F<128)||(D|=(127&(F=V[P.pos++]))<<17,F<128)||(D|=(127&(F=V[P.pos++]))<<24,F<128)||(D|=(1&(F=V[P.pos++]))<<31,F<128))return m_(x,D,E);throw new Error(\"Expected varint not more than 10 bytes\")}(a|=(15&(h=A[this.pos]))<<28,u,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var u=this.readVarint();return u%2==1?(u+1)/-2:u/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var u=this.readVarint()+this.pos,a=this.pos;return this.pos=u,u-a>=12&&Q6?function(h,A,x){return Q6.decode(h.subarray(A,x))}(this.buf,a,u):function(h,A,x){for(var E=\"\",P=A;P239?4:q>223?3:q>191?2:1;if(P+et>x)break;et===1?q<128&&(X=q):et===2?(192&(D=h[P+1]))==128&&(X=(31&q)<<6|63&D)<=127&&(X=null):et===3?(F=h[P+2],(192&(D=h[P+1]))==128&&(192&F)==128&&((X=(15&q)<<12|(63&D)<<6|63&F)<=2047||X>=55296&&X<=57343)&&(X=null)):et===4&&(F=h[P+2],V=h[P+3],(192&(D=h[P+1]))==128&&(192&F)==128&&(192&V)==128&&((X=(15&q)<<18|(63&D)<<12|(63&F)<<6|63&V)<=65535||X>=1114112)&&(X=null)),X===null?(X=65533,et=1):X>65535&&(X-=65536,E+=String.fromCharCode(X>>>10&1023|55296),X=56320|1023&X),E+=String.fromCharCode(X),P+=et}return E}(this.buf,a,u)},readBytes:function(){var u=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,u);return this.pos=u,a},readPackedVarint:function(u,a){if(this.type!==Ki.Bytes)return u.push(this.readVarint(a));var h=Fd(this);for(u=u||[];this.pos127;);else if(a===Ki.Bytes)this.pos=this.readVarint()+this.pos;else if(a===Ki.Fixed32)this.pos+=4;else{if(a!==Ki.Fixed64)throw new Error(\"Unimplemented type: \"+a);this.pos+=8}},writeTag:function(u,a){this.writeVarint(u<<3|a)},realloc:function(u){for(var a=this.length||16;a268435455||u<0?function(a,h){var A,x;if(a>=0?(A=a%4294967296|0,x=a/4294967296|0):(x=~(-a/4294967296),4294967295^(A=~(-a%4294967296))?A=A+1|0:(A=0,x=x+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error(\"Given varint doesn't fit into 10 bytes\");h.realloc(10),function(E,P,D){D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,D.buf[D.pos]=127&(E>>>=7)}(A,0,h),function(E,P){var D=(7&E)<<4;P.buf[P.pos++]|=D|((E>>>=3)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E)))))}(x,h)}(u,this):(this.realloc(4),this.buf[this.pos++]=127&u|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=u>>>7&127))))},writeSVarint:function(u){this.writeVarint(u<0?2*-u-1:2*u)},writeBoolean:function(u){this.writeVarint(!!u)},writeString:function(u){u=String(u),this.realloc(4*u.length),this.pos++;var a=this.pos;this.pos=function(A,x,E){for(var P,D,F=0;F55295&&P<57344){if(!D){P>56319||F+1===x.length?(A[E++]=239,A[E++]=191,A[E++]=189):D=P;continue}if(P<56320){A[E++]=239,A[E++]=191,A[E++]=189,D=P;continue}P=D-55296<<10|P-56320|65536,D=null}else D&&(A[E++]=239,A[E++]=191,A[E++]=189,D=null);P<128?A[E++]=P:(P<2048?A[E++]=P>>6|192:(P<65536?A[E++]=P>>12|224:(A[E++]=P>>18|240,A[E++]=P>>12&63|128),A[E++]=P>>6&63|128),A[E++]=63&P|128)}return E}(this.buf,u,this.pos);var h=this.pos-a;h>=128&&$6(a,h,this),this.pos=a-1,this.writeVarint(h),this.pos+=h},writeFloat:function(u){this.realloc(4),Z6(this.buf,u,this.pos,!0,23,4),this.pos+=4},writeDouble:function(u){this.realloc(8),Z6(this.buf,u,this.pos,!0,52,8),this.pos+=8},writeBytes:function(u){var a=u.length;this.writeVarint(a),this.realloc(a);for(var h=0;h=128&&$6(h,A,this),this.pos=h-1,this.writeVarint(A),this.pos+=A},writeMessage:function(u,a,h){this.writeTag(u,Ki.Bytes),this.writeRawMessage(a,h)},writePackedVarint:function(u,a){a.length&&this.writeMessage(u,jX,a)},writePackedSVarint:function(u,a){a.length&&this.writeMessage(u,GX,a)},writePackedBoolean:function(u,a){a.length&&this.writeMessage(u,qX,a)},writePackedFloat:function(u,a){a.length&&this.writeMessage(u,WX,a)},writePackedDouble:function(u,a){a.length&&this.writeMessage(u,HX,a)},writePackedFixed32:function(u,a){a.length&&this.writeMessage(u,ZX,a)},writePackedSFixed32:function(u,a){a.length&&this.writeMessage(u,YX,a)},writePackedFixed64:function(u,a){a.length&&this.writeMessage(u,QX,a)},writePackedSFixed64:function(u,a){a.length&&this.writeMessage(u,$X,a)},writeBytesField:function(u,a){this.writeTag(u,Ki.Bytes),this.writeBytes(a)},writeFixed32Field:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeSFixed64(a)},writeVarintField:function(u,a){this.writeTag(u,Ki.Varint),this.writeVarint(a)},writeSVarintField:function(u,a){this.writeTag(u,Ki.Varint),this.writeSVarint(a)},writeStringField:function(u,a){this.writeTag(u,Ki.Bytes),this.writeString(a)},writeFloatField:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeFloat(a)},writeDoubleField:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeDouble(a)},writeBooleanField:function(u,a){this.writeVarintField(u,!!a)}};var sC=c(H6);let oC=3;function XX(u,a,h){u===1&&h.readMessage(KX,a)}function KX(u,a,h){if(u===3){let{id:A,bitmap:x,width:E,height:P,left:D,top:F,advance:V}=h.readMessage(JX,{});a.push({id:A,bitmap:new kx({width:E+2*oC,height:P+2*oC},x),metrics:{width:E,height:P,left:D,top:F,advance:V}})}}function JX(u,a,h){u===1?a.id=h.readVarint():u===2?a.bitmap=h.readBytes():u===3?a.width=h.readVarint():u===4?a.height=h.readVarint():u===5?a.left=h.readSVarint():u===6?a.top=h.readSVarint():u===7&&(a.advance=h.readVarint())}let K6=oC;function J6(u){let a=0,h=0;for(let P of u)a+=P.w*P.h,h=Math.max(h,P.w);u.sort((P,D)=>D.h-P.h);let A=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),h),h:1/0}],x=0,E=0;for(let P of u)for(let D=A.length-1;D>=0;D--){let F=A[D];if(!(P.w>F.w||P.h>F.h)){if(P.x=F.x,P.y=F.y,E=Math.max(E,P.y+P.h),x=Math.max(x,P.x+P.w),P.w===F.w&&P.h===F.h){let V=A.pop();D=0&&A>=a&&WS[this.text.charCodeAt(A)];A--)h--;this.text=this.text.substring(a,h),this.sectionIndex=this.sectionIndex.slice(a,h)}substring(a,h){let A=new __;return A.text=this.text.substring(a,h),A.sectionIndex=this.sectionIndex.slice(a,h),A.sections=this.sections,A}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((a,h)=>Math.max(a,this.sections[h].scale),0)}addTextSection(a,h){this.text+=a.text,this.sections.push(Vx.forText(a.scale,a.fontStack||h));let A=this.sections.length-1;for(let x=0;x=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function GS(u,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt){let bt=__.fromFeature(u,x),Et;X===n.ai.vertical&&bt.verticalizePunctuation();let{processBidirectionalText:Vt,processStyledBidirectionalText:kt}=ua;if(Vt&&bt.sections.length===1){Et=[];let ae=Vt(bt.toString(),lC(bt,V,E,a,A,at,ct));for(let Be of ae){let Je=new __;Je.text=Be,Je.sections=bt.sections;for(let Oe=0;Oe0&&Nd>Al&&(Al=Nd)}else{let Fc=Je[di.fontStack],gl=Fc&&Fc[Qo];if(gl&&gl.rect)yh=gl.rect,_u=gl.metrics;else{let Nd=Be[di.fontStack],qx=Nd&&Nd[Qo];if(!qx)continue;_u=qx.metrics}Hs=(Gs-di.scale)*Us}yu?(ae.verticalizable=!0,fa.push({glyph:Qo,imageName:vh,x:xn,y:Ln+Hs,vertical:yu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:_u,rect:yh}),xn+=zd*di.scale+ur):(fa.push({glyph:Qo,imageName:vh,x:xn,y:Ln+Hs,vertical:yu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:_u,rect:yh}),xn+=_u.advance*di.scale+ur)}fa.length!==0&&(Vs=Math.max(xn-ur,Vs),rK(fa,0,fa.length-1,Va,Al)),xn=0;let ml=Te*Gs+Al;Wa.lineOffset=Math.max(Al,ha),Ln+=ml,Hl=Math.max(ml,Hl),++Ps}var vo;let Yo=Ln-Ux,{horizontalAlign:ja,verticalAlign:Ga}=cC(He);(function(js,Gs,ha,Wa,fa,Al,ml,Ws,di){let da=(Gs-ha)*fa,Qo=0;Qo=Al!==ml?-Ws*Wa-Ux:(-Wa*di+.5)*ml;for(let Hs of js)for(let _u of Hs.positionedGlyphs)_u.x+=da,_u.y+=Qo})(ae.positionedLines,Va,ja,Ga,Vs,Hl,Te,Yo,ke.length),ae.top+=-Ga*Yo,ae.bottom=ae.top+Yo,ae.left+=-ja*Vs,ae.right=ae.left+Vs}(qt,a,h,A,Et,P,D,F,X,V,et,mt),!function(ae){for(let Be of ae)if(Be.positionedGlyphs.length!==0)return!1;return!0}(jt)&&qt}let WS={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},tK={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function eF(u,a,h,A,x,E){if(a.imageName){let P=A[a.imageName];return P?P.displaySize[0]*a.scale*Us/E+x:0}{let P=h[a.fontStack],D=P&&P[u];return D?D.metrics.advance*a.scale+x:0}}function rF(u,a,h,A){let x=Math.pow(u-a,2);return A?u=0,q=0;for(let et=0;etP.id),this.index=a.index,this.pixelRatio=a.pixelRatio,this.sourceLayerIndex=a.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Zr([]),this.placementViewportMatrix=Zr([]);let h=this.layers[0]._unevaluatedLayout._values;this.textSizeData=oF(this.zoom,h[\"text-size\"]),this.iconSizeData=oF(this.zoom,h[\"icon-size\"]);let A=this.layers[0].layout,x=A.get(\"symbol-sort-key\"),E=A.get(\"symbol-z-order\");this.canOverlap=uC(A,\"text-overlap\",\"text-allow-overlap\")!==\"never\"||uC(A,\"icon-overlap\",\"icon-allow-overlap\")!==\"never\"||A.get(\"text-ignore-placement\")||A.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=E!==\"viewport-y\"&&!x.isConstant(),this.sortFeaturesByY=(E===\"viewport-y\"||E===\"auto\"&&!this.sortFeaturesByKey)&&this.canOverlap,A.get(\"symbol-placement\")===\"point\"&&(this.writingModes=A.get(\"text-writing-mode\").map(P=>n.ai[P])),this.stateDependentLayerIds=this.layers.filter(P=>P.isStateDependent()).map(P=>P.id),this.sourceID=a.sourceID}createArrays(){this.text=new fC(new Ua(this.layers,this.zoom,a=>/^text/.test(a))),this.icon=new fC(new Ua(this.layers,this.zoom,a=>/^icon/.test(a))),this.glyphOffsetArray=new Bt,this.lineVertexArray=new Yt,this.symbolInstances=new St,this.textAnchorOffsets=new se}calculateGlyphDependencies(a,h,A,x,E){for(let P=0;P0)&&(P.value.kind!==\"constant\"||P.value.value.length>0),q=F.value.kind!==\"constant\"||!!F.value.value||Object.keys(F.parameters).length>0,X=E.get(\"symbol-sort-key\");if(this.features=[],!V&&!q)return;let et=h.iconDependencies,at=h.glyphDependencies,ct=h.availableImages,mt=new ln(this.zoom);for(let{feature:bt,id:Et,index:Vt,sourceLayerIndex:kt}of a){let jt=x._featureFilter.needGeometry,qt=S(bt,jt);if(!x._featureFilter.filter(mt,qt,A))continue;let ae,Be;if(jt||(qt.geometry=y(bt)),V){let Oe=x.getValueAndResolveTokens(\"text-field\",qt,A,ct),ke=on.factory(Oe);oK(ke)&&(this.hasRTLText=!0),(!this.hasRTLText||a0()===\"unavailable\"||this.hasRTLText&&ua.isParsed())&&(ae=VX(ke,x,qt))}if(q){let Oe=x.getValueAndResolveTokens(\"icon-image\",qt,A,ct);Be=Oe instanceof Vn?Oe:Vn.fromString(Oe)}if(!ae&&!Be)continue;let Je=this.sortFeaturesByKey?X.evaluate(qt,{},A):void 0;if(this.features.push({id:Et,text:ae,icon:Be,index:Vt,sourceLayerIndex:kt,geometry:qt.geometry,properties:bt.properties,type:nK[bt.type],sortKey:Je}),Be&&(et[Be.name]=!0),ae){let Oe=P.evaluate(qt,{},A).join(\",\"),ke=E.get(\"text-rotation-alignment\")!==\"viewport\"&&E.get(\"symbol-placement\")!==\"point\";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(n.ai.vertical)>=0;for(let Te of ae.sections)if(Te.image)et[Te.image.name]=!0;else{let He=e0(ae.toString()),Pe=Te.fontStack||Oe,Ae=at[Pe]=at[Pe]||{};this.calculateGlyphDependencies(Te.text,Ae,ke,this.allowVerticalPlacement,He)}}}E.get(\"symbol-placement\")===\"line\"&&(this.features=function(bt){let Et={},Vt={},kt=[],jt=0;function qt(Oe){kt.push(bt[Oe]),jt++}function ae(Oe,ke,Te){let He=Vt[Oe];return delete Vt[Oe],Vt[ke]=He,kt[He].geometry[0].pop(),kt[He].geometry[0]=kt[He].geometry[0].concat(Te[0]),He}function Be(Oe,ke,Te){let He=Et[ke];return delete Et[ke],Et[Oe]=He,kt[He].geometry[0].shift(),kt[He].geometry[0]=Te[0].concat(kt[He].geometry[0]),He}function Je(Oe,ke,Te){let He=Te?ke[0][ke[0].length-1]:ke[0][0];return`${Oe}:${He.x}:${He.y}`}for(let Oe=0;OeOe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((bt,Et)=>bt.sortKey-Et.sortKey)}update(a,h,A){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(a,h,this.layers,A),this.icon.programConfigurations.updatePaintArrays(a,h,this.layers,A))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(a){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(a),this.iconCollisionBox.upload(a)),this.text.upload(a,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(a,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(a,h){let A=this.lineVertexArray.length;if(a.segment!==void 0){let x=a.dist(h[a.segment+1]),E=a.dist(h[a.segment]),P={};for(let D=a.segment+1;D=0;D--)P[D]={x:h[D].x,y:h[D].y,tileUnitDistanceFromAnchor:E},D>0&&(E+=h[D-1].dist(h[D]));for(let D=0;D0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(a,h){let A=a.placedSymbolArray.get(h),x=A.vertexStartIndex+4*A.numGlyphs;for(let E=A.vertexStartIndex;Ex[D]-x[F]||E[F]-E[D]),P}addToSortKeyRanges(a,h){let A=this.sortKeyRanges[this.sortKeyRanges.length-1];A&&A.sortKey===h?A.symbolInstanceEnd=a+1:this.sortKeyRanges.push({sortKey:h,symbolInstanceStart:a,symbolInstanceEnd:a+1})}sortFeatures(a){if(this.sortFeaturesByY&&this.sortedAngle!==a&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(a),this.sortedAngle=a,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let h of this.symbolInstanceIndexes){let A=this.symbolInstances.get(h);this.featureSortOrder.push(A.featureIndex),[A.rightJustifiedTextSymbolIndex,A.centerJustifiedTextSymbolIndex,A.leftJustifiedTextSymbolIndex].forEach((x,E,P)=>{x>=0&&P.indexOf(x)===E&&this.addIndicesForPlacedSymbol(this.text,x)}),A.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,A.verticalPlacedTextSymbolIndex),A.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.placedIconSymbolIndex),A.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let aF,lF;Ue(\"SymbolBucket\",y_,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),y_.MAX_GLYPHS=65535,y_.addDynamicAttributes=hC;var pC={get paint(){return lF=lF||new Gn({\"icon-opacity\":new fr(te.paint_symbol[\"icon-opacity\"]),\"icon-color\":new fr(te.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new fr(te.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new fr(te.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new fr(te.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new rr(te.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new rr(te.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new fr(te.paint_symbol[\"text-opacity\"]),\"text-color\":new fr(te.paint_symbol[\"text-color\"],{runtimeType:Os,getOverride:u=>u.textColor,hasOverride:u=>!!u.textColor}),\"text-halo-color\":new fr(te.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new fr(te.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new fr(te.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new rr(te.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new rr(te.paint_symbol[\"text-translate-anchor\"])})},get layout(){return aF=aF||new Gn({\"symbol-placement\":new rr(te.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new rr(te.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new rr(te.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new fr(te.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new rr(te.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new rr(te.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new rr(te.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new rr(te.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new rr(te.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new rr(te.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new fr(te.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new rr(te.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new rr(te.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new fr(te.layout_symbol[\"icon-image\"]),\"icon-rotate\":new fr(te.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new fr(te.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new rr(te.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new fr(te.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new fr(te.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new rr(te.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new rr(te.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new rr(te.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new fr(te.layout_symbol[\"text-field\"]),\"text-font\":new fr(te.layout_symbol[\"text-font\"]),\"text-size\":new fr(te.layout_symbol[\"text-size\"]),\"text-max-width\":new fr(te.layout_symbol[\"text-max-width\"]),\"text-line-height\":new rr(te.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new fr(te.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new fr(te.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new fr(te.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new rr(te.layout_symbol[\"text-variable-anchor\"]),\"text-variable-anchor-offset\":new fr(te.layout_symbol[\"text-variable-anchor-offset\"]),\"text-anchor\":new fr(te.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new rr(te.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new rr(te.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new fr(te.layout_symbol[\"text-rotate\"]),\"text-padding\":new rr(te.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new rr(te.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new fr(te.layout_symbol[\"text-transform\"]),\"text-offset\":new fr(te.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new rr(te.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new rr(te.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new rr(te.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new rr(te.layout_symbol[\"text-optional\"])})}};class cF{constructor(a){if(a.property.overrides===void 0)throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");this.type=a.property.overrides?a.property.overrides.runtimeType:Ia,this.defaultValue=a}evaluate(a){if(a.formattedSection){let h=this.defaultValue.property.overrides;if(h&&h.hasOverride(a.formattedSection))return h.getOverride(a.formattedSection)}return a.feature&&a.featureState?this.defaultValue.evaluate(a.feature,a.featureState):this.defaultValue.property.specification.default}eachChild(a){this.defaultValue.isConstant()||a(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Ue(\"FormatSectionOverride\",cF,{omit:[\"defaultValue\"]});class qS extends Ui{constructor(a){super(a,pC)}recalculate(a,h){if(super.recalculate(a,h),this.layout.get(\"icon-rotation-alignment\")===\"auto\"&&(this.layout._values[\"icon-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-rotation-alignment\")===\"auto\"&&(this.layout._values[\"text-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-pitch-alignment\")===\"auto\"&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")===\"map\"?\"map\":\"viewport\"),this.layout.get(\"icon-pitch-alignment\")===\"auto\"&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),this.layout.get(\"symbol-placement\")===\"point\"){let A=this.layout.get(\"text-writing-mode\");if(A){let x=[];for(let E of A)x.indexOf(E)<0&&x.push(E);this.layout._values[\"text-writing-mode\"]=x}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"]}this._setPaintOverrides()}getValueAndResolveTokens(a,h,A,x){let E=this.layout.get(a).evaluate(h,{},A,x),P=this._unevaluatedLayout._values[a];return P.isDataDriven()||Hp(P.value)||!E?E:function(D,F){return F.replace(/{([^{}]+)}/g,(V,q)=>D&&q in D?String(D[q]):\"\")}(h.properties,E)}createBucket(a){return new y_(a)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(let a of pC.paint.overridableProperties){if(!qS.hasPaintOverride(this.layout,a))continue;let h=this.paint.get(a),A=new cF(h),x=new Ym(A,h.property.specification),E=null;E=h.value.kind===\"constant\"||h.value.kind===\"source\"?new Qm(\"source\",x):new wt(\"composite\",x,h.value.zoomStops),this.paint._values[a]=new _o(h.property,E,h.parameters)}}_handleOverridablePaintPropertyUpdate(a,h,A){return!(!this.layout||h.isDataDriven()||A.isDataDriven())&&qS.hasPaintOverride(this.layout,a)}static hasPaintOverride(a,h){let A=a.get(\"text-field\"),x=pC.paint.properties[h],E=!1,P=D=>{for(let F of D)if(x.overrides&&x.overrides.hasOverride(F))return void(E=!0)};if(A.value.kind===\"constant\"&&A.value.value instanceof on)P(A.value.value.sections);else if(A.value.kind===\"source\"){let D=V=>{E||(V instanceof Nl&&Yi(V.value)===gt?P(V.value.sections):V instanceof Si?P(V.sections):V.eachChild(D))},F=A.value;F._styleExpression&&D(F._styleExpression.expression)}return E}}let uF;var aK={get paint(){return uF=uF||new Gn({\"background-color\":new rr(te.paint_background[\"background-color\"]),\"background-pattern\":new nA(te.paint_background[\"background-pattern\"]),\"background-opacity\":new rr(te.paint_background[\"background-opacity\"])})}};class lK extends Ui{constructor(a){super(a,aK)}}let hF;var cK={get paint(){return hF=hF||new Gn({\"raster-opacity\":new rr(te.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new rr(te.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new rr(te.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new rr(te.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new rr(te.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new rr(te.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new rr(te.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new rr(te.paint_raster[\"raster-fade-duration\"])})}};class uK extends Ui{constructor(a){super(a,cK)}}class hK extends Ui{constructor(a){super(a,{}),this.onAdd=h=>{this.implementation.onAdd&&this.implementation.onAdd(h,h.painter.context.gl)},this.onRemove=h=>{this.implementation.onRemove&&this.implementation.onRemove(h,h.painter.context.gl)},this.implementation=a}is3D(){return this.implementation.renderingMode===\"3d\"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error(\"Custom layers cannot be serialized\")}}class fK{constructor(a){this._callback=a,this._triggered=!1,typeof MessageChannel<\"u\"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){delete this._channel,this._callback=()=>{}}}let AC=63710088e-1;class uA{constructor(a,h){if(isNaN(a)||isNaN(h))throw new Error(`Invalid LngLat object: (${a}, ${h})`);if(this.lng=+a,this.lat=+h,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new uA(Pt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(a){let h=Math.PI/180,A=this.lat*h,x=a.lat*h,E=Math.sin(A)*Math.sin(x)+Math.cos(A)*Math.cos(x)*Math.cos((a.lng-this.lng)*h);return AC*Math.acos(Math.min(E,1))}static convert(a){if(a instanceof uA)return a;if(Array.isArray(a)&&(a.length===2||a.length===3))return new uA(Number(a[0]),Number(a[1]));if(!Array.isArray(a)&&typeof a==\"object\"&&a!==null)return new uA(Number(\"lng\"in a?a.lng:a.lon),Number(a.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\")}}let fF=2*Math.PI*AC;function dF(u){return fF*Math.cos(u*Math.PI/180)}function pF(u){return(180+u)/360}function AF(u){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u*Math.PI/360)))/360}function mF(u,a){return u/dF(a)}function gF(u){return 360*u-180}function mC(u){return 360/Math.PI*Math.atan(Math.exp((180-360*u)*Math.PI/180))-90}class ZS{constructor(a,h,A=0){this.x=+a,this.y=+h,this.z=+A}static fromLngLat(a,h=0){let A=uA.convert(a);return new ZS(pF(A.lng),AF(A.lat),mF(h,A.lat))}toLngLat(){return new uA(gF(this.x),mC(this.y))}toAltitude(){return this.z*dF(mC(this.y))}meterInMercatorCoordinateUnits(){return 1/fF*(a=mC(this.y),1/Math.cos(a*Math.PI/180));var a}}function _F(u,a,h){var A=2*Math.PI*6378137/256/Math.pow(2,h);return[u*A-2*Math.PI*6378137/2,a*A-2*Math.PI*6378137/2]}class gC{constructor(a,h,A){if(a<0||a>25||A<0||A>=Math.pow(2,a)||h<0||h>=Math.pow(2,a))throw new Error(`x=${h}, y=${A}, z=${a} outside of bounds. 0<=x<${Math.pow(2,a)}, 0<=y<${Math.pow(2,a)} 0<=z<=25 `);this.z=a,this.x=h,this.y=A,this.key=Gx(0,a,a,h,A)}equals(a){return this.z===a.z&&this.x===a.x&&this.y===a.y}url(a,h,A){let x=(P=this.y,D=this.z,F=_F(256*(E=this.x),256*(P=Math.pow(2,D)-P-1),D),V=_F(256*(E+1),256*(P+1),D),F[0]+\",\"+F[1]+\",\"+V[0]+\",\"+V[1]);var E,P,D,F,V;let q=function(X,et,at){let ct,mt=\"\";for(let bt=X;bt>0;bt--)ct=1<1?\"@2x\":\"\").replace(/{quadkey}/g,q).replace(/{bbox-epsg-3857}/g,x)}isChildOf(a){let h=this.z-a.z;return h>0&&a.x===this.x>>h&&a.y===this.y>>h}getTilePoint(a){let h=Math.pow(2,this.z);return new w((a.x*h-this.x)*Xi,(a.y*h-this.y)*Xi)}toString(){return`${this.z}/${this.x}/${this.y}`}}class yF{constructor(a,h){this.wrap=a,this.canonical=h,this.key=Gx(a,h.z,h.z,h.x,h.y)}}class Bc{constructor(a,h,A,x,E){if(a= z; overscaledZ = ${a}; z = ${A}`);this.overscaledZ=a,this.wrap=h,this.canonical=new gC(A,+x,+E),this.key=Gx(h,a,A,x,E)}clone(){return new Bc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(a){return this.overscaledZ===a.overscaledZ&&this.wrap===a.wrap&&this.canonical.equals(a.canonical)}scaledTo(a){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let h=this.canonical.z-a;return a>this.canonical.z?new Bc(a,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Bc(a,this.wrap,a,this.canonical.x>>h,this.canonical.y>>h)}calculateScaledKey(a,h){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let A=this.canonical.z-a;return a>this.canonical.z?Gx(this.wrap*+h,a,this.canonical.z,this.canonical.x,this.canonical.y):Gx(this.wrap*+h,a,a,this.canonical.x>>A,this.canonical.y>>A)}isChildOf(a){if(a.wrap!==this.wrap)return!1;let h=this.canonical.z-a.canonical.z;return a.overscaledZ===0||a.overscaledZ>h&&a.canonical.y===this.canonical.y>>h}children(a){if(this.overscaledZ>=a)return[new Bc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let h=this.canonical.z+1,A=2*this.canonical.x,x=2*this.canonical.y;return[new Bc(h,this.wrap,h,A,x),new Bc(h,this.wrap,h,A+1,x),new Bc(h,this.wrap,h,A,x+1),new Bc(h,this.wrap,h,A+1,x+1)]}isLessThan(a){return this.wrapa.wrap)&&(this.overscaledZa.overscaledZ)&&(this.canonical.xa.canonical.x)&&this.canonical.ythis.max&&(this.max=X),X=this.dim+1||h<-1||h>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return(h+1)*this.stride+(a+1)}unpack(a,h,A){return a*this.redFactor+h*this.greenFactor+A*this.blueFactor-this.baseShift}getPixels(){return new Oc({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(a,h,A){if(this.dim!==a.dim)throw new Error(\"dem dimension mismatch\");let x=h*this.dim,E=h*this.dim+this.dim,P=A*this.dim,D=A*this.dim+this.dim;switch(h){case-1:x=E-1;break;case 1:E=x+1}switch(A){case-1:P=D-1;break;case 1:D=P+1}let F=-h*this.dim,V=-A*this.dim;for(let q=P;q=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${a} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[a]}}class bF{constructor(a,h,A,x,E){this.type=\"Feature\",this._vectorTileFeature=a,a._z=h,a._x=A,a._y=x,this.properties=a.properties,this.id=E}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(a){this._geometry=a}toJSON(){let a={geometry:this.geometry};for(let h in this)h!==\"_geometry\"&&h!==\"_vectorTileFeature\"&&(a[h]=this[h]);return a}}class wF{constructor(a,h){this.tileID=a,this.x=a.canonical.x,this.y=a.canonical.y,this.z=a.canonical.z,this.grid=new za(Xi,16,0),this.grid3D=new za(Xi,16,0),this.featureIndexArray=new he,this.promoteId=h}insert(a,h,A,x,E,P){let D=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(A,x,E);let F=P?this.grid3D:this.grid;for(let V=0;V=0&&X[3]>=0&&F.insert(D,X[0],X[1],X[2],X[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new aA.VectorTile(new sC(this.rawTileData)).layers,this.sourceLayerCoder=new xF(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(a,h,A,x){this.loadVTLayers();let E=a.params||{},P=Xi/a.tileSize/a.scale,D=Xm(E.filter),F=a.queryGeometry,V=a.queryPadding*P,q=TF(F),X=this.grid.query(q.minX-V,q.minY-V,q.maxX+V,q.maxY+V),et=TF(a.cameraQueryGeometry),at=this.grid3D.query(et.minX-V,et.minY-V,et.maxX+V,et.maxY+V,(bt,Et,Vt,kt)=>function(jt,qt,ae,Be,Je){for(let ke of jt)if(qt<=ke.x&&ae<=ke.y&&Be>=ke.x&&Je>=ke.y)return!0;let Oe=[new w(qt,ae),new w(qt,Je),new w(Be,Je),new w(Be,ae)];if(jt.length>2){for(let ke of Oe)if(ie(jt,ke))return!0}for(let ke=0;ke(kt||(kt=y(jt)),qt.queryIntersectsFeature(F,jt,ae,kt,this.z,a.transform,P,a.pixelPosMatrix)))}return ct}loadMatchingFeature(a,h,A,x,E,P,D,F,V,q,X){let et=this.bucketLayerIDs[h];if(P&&!function(bt,Et){for(let Vt=0;Vt=0)return!0;return!1}(P,et))return;let at=this.sourceLayerCoder.decode(A),ct=this.vtLayers[at].feature(x);if(E.needGeometry){let bt=S(ct,!0);if(!E.filter(new ln(this.tileID.overscaledZ),bt,this.tileID.canonical))return}else if(!E.filter(new ln(this.tileID.overscaledZ),ct))return;let mt=this.getId(ct,at);for(let bt=0;bt{let D=a instanceof iA?a.get(P):null;return D&&D.evaluate?D.evaluate(h,A,x):D})}function TF(u){let a=1/0,h=1/0,A=-1/0,x=-1/0;for(let E of u)a=Math.min(a,E.x),h=Math.min(h,E.y),A=Math.max(A,E.x),x=Math.max(x,E.y);return{minX:a,minY:h,maxX:A,maxY:x}}function dK(u,a){return a-u}function MF(u,a,h,A,x){let E=[];for(let P=0;P=A&&X.x>=A||(q.x>=A?q=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round():X.x>=A&&(X=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round()),q.y>=x&&X.y>=x||(q.y>=x?q=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round():X.y>=x&&(X=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round()),F&&q.equals(F[F.length-1])||(F=[q],E.push(F)),F.push(X)))))}}return E}Ue(\"FeatureIndex\",wF,{omit:[\"rawTileData\",\"sourceLayerCoder\"]});class hA extends w{constructor(a,h,A,x){super(a,h),this.angle=A,x!==void 0&&(this.segment=x)}clone(){return new hA(this.x,this.y,this.angle,this.segment)}}function EF(u,a,h,A,x){if(a.segment===void 0||h===0)return!0;let E=a,P=a.segment+1,D=0;for(;D>-h/2;){if(P--,P<0)return!1;D-=u[P].dist(E),E=u[P]}D+=u[P].dist(u[P+1]),P++;let F=[],V=0;for(;DA;)V-=F.shift().angleDelta;if(V>x)return!1;P++,D+=q.dist(X)}return!0}function PF(u){let a=0;for(let h=0;hV){let ct=(V-F)/at,mt=Ra.number(X.x,et.x,ct),bt=Ra.number(X.y,et.y,ct),Et=new hA(mt,bt,et.angleTo(X),q);return Et._round(),!P||EF(u,Et,D,P,a)?Et:void 0}F+=at}}function AK(u,a,h,A,x,E,P,D,F){let V=IF(A,E,P),q=CF(A,x),X=q*P,et=u[0].x===0||u[0].x===F||u[0].y===0||u[0].y===F;return a-X
=0&&jt=0&&qt=0&&et+V<=q){let ae=new hA(jt,qt,Vt,ct);ae._round(),A&&!EF(u,ae,E,A,x)||at.push(ae)}}X+=Et}return D||at.length||P||(at=LF(u,X/2,h,A,x,E,P,!0,F)),at}Ue(\"Anchor\",hA);let v_=pl;function kF(u,a,h,A){let x=[],E=u.image,P=E.pixelRatio,D=E.paddedRect.w-2*v_,F=E.paddedRect.h-2*v_,V=u.right-u.left,q=u.bottom-u.top,X=E.stretchX||[[0,D]],et=E.stretchY||[[0,F]],at=(Te,He)=>Te+He[1]-He[0],ct=X.reduce(at,0),mt=et.reduce(at,0),bt=D-ct,Et=F-mt,Vt=0,kt=ct,jt=0,qt=mt,ae=0,Be=bt,Je=0,Oe=Et;if(E.content&&A){let Te=E.content;Vt=YS(X,0,Te[0]),jt=YS(et,0,Te[1]),kt=YS(X,Te[0],Te[2]),qt=YS(et,Te[1],Te[3]),ae=Te[0]-Vt,Je=Te[1]-jt,Be=Te[2]-Te[0]-kt,Oe=Te[3]-Te[1]-qt}let ke=(Te,He,Pe,Ae)=>{let ur=QS(Te.stretch-Vt,kt,V,u.left),ir=$S(Te.fixed-ae,Be,Te.stretch,ct),ri=QS(He.stretch-jt,qt,q,u.top),xn=$S(He.fixed-Je,Oe,He.stretch,mt),Ln=QS(Pe.stretch-Vt,kt,V,u.left),Vs=$S(Pe.fixed-ae,Be,Pe.stretch,ct),Hl=QS(Ae.stretch-jt,qt,q,u.top),Va=$S(Ae.fixed-Je,Oe,Ae.stretch,mt),Ps=new w(ur,ri),vo=new w(Ln,ri),Yo=new w(Ln,Hl),ja=new w(ur,Hl),Ga=new w(ir/P,xn/P),js=new w(Vs/P,Va/P),Gs=a*Math.PI/180;if(Gs){let fa=Math.sin(Gs),Al=Math.cos(Gs),ml=[Al,-fa,fa,Al];Ps._matMult(ml),vo._matMult(ml),ja._matMult(ml),Yo._matMult(ml)}let ha=Te.stretch+Te.fixed,Wa=He.stretch+He.fixed;return{tl:Ps,tr:vo,bl:ja,br:Yo,tex:{x:E.paddedRect.x+v_+ha,y:E.paddedRect.y+v_+Wa,w:Pe.stretch+Pe.fixed-ha,h:Ae.stretch+Ae.fixed-Wa},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Ga,pixelOffsetBR:js,minFontScaleX:Be/P/V,minFontScaleY:Oe/P/q,isSDF:h}};if(A&&(E.stretchX||E.stretchY)){let Te=RF(X,bt,ct),He=RF(et,Et,mt);for(let Pe=0;Pe0&&(ct=Math.max(10,ct),this.circleDiameter=ct)}else{let X=P.top*D-F[0],et=P.bottom*D+F[2],at=P.left*D-F[3],ct=P.right*D+F[1],mt=P.collisionPadding;if(mt&&(at-=mt[0]*D,X-=mt[1]*D,ct+=mt[2]*D,et+=mt[3]*D),q){let bt=new w(at,X),Et=new w(ct,X),Vt=new w(at,et),kt=new w(ct,et),jt=q*Math.PI/180;bt._rotate(jt),Et._rotate(jt),Vt._rotate(jt),kt._rotate(jt),at=Math.min(bt.x,Et.x,Vt.x,kt.x),ct=Math.max(bt.x,Et.x,Vt.x,kt.x),X=Math.min(bt.y,Et.y,Vt.y,kt.y),et=Math.max(bt.y,Et.y,Vt.y,kt.y)}a.emplaceBack(h.x,h.y,at,X,ct,et,A,x,E)}this.boxEndIndex=a.length}}class mK{constructor(a=[],h=gK){if(this.data=a,this.length=this.data.length,this.compare=h,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(a){this.data.push(a),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let a=this.data[0],h=this.data.pop();return this.length--,this.length>0&&(this.data[0]=h,this._down(0)),a}peek(){return this.data[0]}_up(a){let{data:h,compare:A}=this,x=h[a];for(;a>0;){let E=a-1>>1,P=h[E];if(A(x,P)>=0)break;h[a]=P,a=E}h[a]=x}_down(a){let{data:h,compare:A}=this,x=this.length>>1,E=h[a];for(;a=0)break;h[a]=D,a=P}h[a]=E}}function gK(u,a){return ua?1:0}function _K(u,a=1,h=!1){let A=1/0,x=1/0,E=-1/0,P=-1/0,D=u[0];for(let at=0;atE)&&(E=ct.x),(!at||ct.y>P)&&(P=ct.y)}let F=Math.min(E-A,P-x),V=F/2,q=new mK([],yK);if(F===0)return new w(A,x);for(let at=A;atX.d||!X.d)&&(X=at,h&&console.log(\"found best %d after %d probes\",Math.round(1e4*at.d)/1e4,et)),at.max-X.d<=a||(V=at.h/2,q.push(new x_(at.p.x-V,at.p.y-V,V,u)),q.push(new x_(at.p.x+V,at.p.y-V,V,u)),q.push(new x_(at.p.x-V,at.p.y+V,V,u)),q.push(new x_(at.p.x+V,at.p.y+V,V,u)),et+=4)}return h&&(console.log(`num probes: ${et}`),console.log(`best distance: ${X.d}`)),X.p}function yK(u,a){return a.max-u.max}function x_(u,a,h,A){this.p=new w(u,a),this.h=h,this.d=function(x,E){let P=!1,D=1/0;for(let F=0;Fx.y!=ct.y>x.y&&x.x<(ct.x-at.x)*(x.y-at.y)/(ct.y-at.y)+at.x&&(P=!P),D=Math.min(D,Gt(x,at,ct))}}return(P?1:-1)*Math.sqrt(D)}(this.p,A),this.max=this.d+this.h*Math.SQRT2}var Zo;n.aq=void 0,(Zo=n.aq||(n.aq={}))[Zo.center=1]=\"center\",Zo[Zo.left=2]=\"left\",Zo[Zo.right=3]=\"right\",Zo[Zo.top=4]=\"top\",Zo[Zo.bottom=5]=\"bottom\",Zo[Zo[\"top-left\"]=6]=\"top-left\",Zo[Zo[\"top-right\"]=7]=\"top-right\",Zo[Zo[\"bottom-left\"]=8]=\"bottom-left\",Zo[Zo[\"bottom-right\"]=9]=\"bottom-right\";let fA=7,_C=Number.POSITIVE_INFINITY;function DF(u,a){return a[1]!==_C?function(h,A,x){let E=0,P=0;switch(A=Math.abs(A),x=Math.abs(x),h){case\"top-right\":case\"top-left\":case\"top\":P=x-fA;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":P=-x+fA}switch(h){case\"top-right\":case\"bottom-right\":case\"right\":E=-A;break;case\"top-left\":case\"bottom-left\":case\"left\":E=A}return[E,P]}(u,a[0],a[1]):function(h,A){let x=0,E=0;A<0&&(A=0);let P=A/Math.SQRT2;switch(h){case\"top-right\":case\"top-left\":E=P-fA;break;case\"bottom-right\":case\"bottom-left\":E=-P+fA;break;case\"bottom\":E=-A+fA;break;case\"top\":E=A-fA}switch(h){case\"top-right\":case\"bottom-right\":x=-P;break;case\"top-left\":case\"bottom-left\":x=P;break;case\"left\":x=A;break;case\"right\":x=-A}return[x,E]}(u,a[0])}function OF(u,a,h){var A;let x=u.layout,E=(A=x.get(\"text-variable-anchor-offset\"))===null||A===void 0?void 0:A.evaluate(a,{},h);if(E){let D=E.values,F=[];for(let V=0;Vet*Us);q.startsWith(\"top\")?X[1]-=fA:q.startsWith(\"bottom\")&&(X[1]+=fA),F[V+1]=X}return new Vo(F)}let P=x.get(\"text-variable-anchor\");if(P){let D;D=u._unevaluatedLayout.getValue(\"text-radial-offset\")!==void 0?[x.get(\"text-radial-offset\").evaluate(a,{},h)*Us,_C]:x.get(\"text-offset\").evaluate(a,{},h).map(V=>V*Us);let F=[];for(let V of P)F.push(V,DF(V,D));return new Vo(F)}return null}function yC(u){switch(u){case\"right\":case\"top-right\":case\"bottom-right\":return\"right\";case\"left\":case\"top-left\":case\"bottom-left\":return\"left\"}return\"center\"}function vK(u,a,h,A,x,E,P,D,F,V,q){let X=E.textMaxSize.evaluate(a,{});X===void 0&&(X=P);let et=u.layers[0].layout,at=et.get(\"icon-offset\").evaluate(a,{},q),ct=FF(h.horizontal),mt=P/24,bt=u.tilePixelRatio*mt,Et=u.tilePixelRatio*X/24,Vt=u.tilePixelRatio*D,kt=u.tilePixelRatio*et.get(\"symbol-spacing\"),jt=et.get(\"text-padding\")*u.tilePixelRatio,qt=function(Ae,ur,ir,ri=1){let xn=Ae.get(\"icon-padding\").evaluate(ur,{},ir),Ln=xn&&xn.values;return[Ln[0]*ri,Ln[1]*ri,Ln[2]*ri,Ln[3]*ri]}(et,a,q,u.tilePixelRatio),ae=et.get(\"text-max-angle\")/180*Math.PI,Be=et.get(\"text-rotation-alignment\")!==\"viewport\"&&et.get(\"symbol-placement\")!==\"point\",Je=et.get(\"icon-rotation-alignment\")===\"map\"&&et.get(\"symbol-placement\")!==\"point\",Oe=et.get(\"symbol-placement\"),ke=kt/2,Te=et.get(\"icon-text-fit\"),He;A&&Te!==\"none\"&&(u.allowVerticalPlacement&&h.vertical&&(He=sF(A,h.vertical,Te,et.get(\"icon-text-fit-padding\"),at,mt)),ct&&(A=sF(A,ct,Te,et.get(\"icon-text-fit-padding\"),at,mt)));let Pe=(Ae,ur)=>{ur.x<0||ur.x>=Xi||ur.y<0||ur.y>=Xi||function(ir,ri,xn,Ln,Vs,Hl,Va,Ps,vo,Yo,ja,Ga,js,Gs,ha,Wa,fa,Al,ml,Ws,di,da,Qo,Hs,_u){let yh=ir.addToLineVertexArray(ri,xn),vh,zd,yu,Fc,gl=0,Nd=0,qx=0,VF=0,EC=-1,PC=-1,Ud={},jF=_h(\"\");if(ir.allowVerticalPlacement&&Ln.vertical){let pa=Ps.layout.get(\"text-rotate\").evaluate(di,{},Hs)+90;yu=new XS(vo,ri,Yo,ja,Ga,Ln.vertical,js,Gs,ha,pa),Va&&(Fc=new XS(vo,ri,Yo,ja,Ga,Va,fa,Al,ha,pa))}if(Vs){let pa=Ps.layout.get(\"icon-rotate\").evaluate(di,{}),zc=Ps.layout.get(\"icon-text-fit\")!==\"none\",h0=kF(Vs,pa,Qo,zc),bh=Va?kF(Va,pa,Qo,zc):void 0;zd=new XS(vo,ri,Yo,ja,Ga,Vs,fa,Al,!1,pa),gl=4*h0.length;let f0=ir.iconSizeData,Mf=null;f0.kind===\"source\"?(Mf=[Tf*Ps.layout.get(\"icon-size\").evaluate(di,{})],Mf[0]>cA&&tr(`${ir.layerIds[0]}: Value for \"icon-size\" is >= ${jx}. Reduce your \"icon-size\".`)):f0.kind===\"composite\"&&(Mf=[Tf*da.compositeIconSizes[0].evaluate(di,{},Hs),Tf*da.compositeIconSizes[1].evaluate(di,{},Hs)],(Mf[0]>cA||Mf[1]>cA)&&tr(`${ir.layerIds[0]}: Value for \"icon-size\" is >= ${jx}. Reduce your \"icon-size\".`)),ir.addSymbols(ir.icon,h0,Mf,Ws,ml,di,n.ai.none,ri,yh.lineStartIndex,yh.lineLength,-1,Hs),EC=ir.icon.placedSymbolArray.length-1,bh&&(Nd=4*bh.length,ir.addSymbols(ir.icon,bh,Mf,Ws,ml,di,n.ai.vertical,ri,yh.lineStartIndex,yh.lineLength,-1,Hs),PC=ir.icon.placedSymbolArray.length-1)}let GF=Object.keys(Ln.horizontal);for(let pa of GF){let zc=Ln.horizontal[pa];if(!vh){jF=_h(zc.text);let bh=Ps.layout.get(\"text-rotate\").evaluate(di,{},Hs);vh=new XS(vo,ri,Yo,ja,Ga,zc,js,Gs,ha,bh)}let h0=zc.positionedLines.length===1;if(qx+=BF(ir,ri,zc,Hl,Ps,ha,di,Wa,yh,Ln.vertical?n.ai.horizontal:n.ai.horizontalOnly,h0?GF:[pa],Ud,EC,da,Hs),h0)break}Ln.vertical&&(VF+=BF(ir,ri,Ln.vertical,Hl,Ps,ha,di,Wa,yh,n.ai.vertical,[\"vertical\"],Ud,PC,da,Hs));let wK=vh?vh.boxStartIndex:ir.collisionBoxArray.length,SK=vh?vh.boxEndIndex:ir.collisionBoxArray.length,TK=yu?yu.boxStartIndex:ir.collisionBoxArray.length,MK=yu?yu.boxEndIndex:ir.collisionBoxArray.length,EK=zd?zd.boxStartIndex:ir.collisionBoxArray.length,PK=zd?zd.boxEndIndex:ir.collisionBoxArray.length,IK=Fc?Fc.boxStartIndex:ir.collisionBoxArray.length,CK=Fc?Fc.boxEndIndex:ir.collisionBoxArray.length,xh=-1,JS=(pa,zc)=>pa&&pa.circleDiameter?Math.max(pa.circleDiameter,zc):zc;xh=JS(vh,xh),xh=JS(yu,xh),xh=JS(zd,xh),xh=JS(Fc,xh);let WF=xh>-1?1:0;WF&&(xh*=_u/Us),ir.glyphOffsetArray.length>=y_.MAX_GLYPHS&&tr(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),di.sortKey!==void 0&&ir.addToSortKeyRanges(ir.symbolInstances.length,di.sortKey);let LK=OF(Ps,di,Hs),[kK,RK]=function(pa,zc){let h0=pa.length,bh=zc?.values;if(bh?.length>0)for(let f0=0;f0=0?Ud.right:-1,Ud.center>=0?Ud.center:-1,Ud.left>=0?Ud.left:-1,Ud.vertical||-1,EC,PC,jF,wK,SK,TK,MK,EK,PK,IK,CK,Yo,qx,VF,gl,Nd,WF,0,js,xh,kK,RK)}(u,ur,Ae,h,A,x,He,u.layers[0],u.collisionBoxArray,a.index,a.sourceLayerIndex,u.index,bt,[jt,jt,jt,jt],Be,F,Vt,qt,Je,at,a,E,V,q,P)};if(Oe===\"line\")for(let Ae of MF(a.geometry,0,0,Xi,Xi)){let ur=AK(Ae,kt,ae,h.vertical||ct,A,24,Et,u.overscaling,Xi);for(let ir of ur)ct&&xK(u,ct.text,ke,ir)||Pe(Ae,ir)}else if(Oe===\"line-center\"){for(let Ae of a.geometry)if(Ae.length>1){let ur=pK(Ae,ae,h.vertical||ct,A,24,Et);ur&&Pe(Ae,ur)}}else if(a.type===\"Polygon\")for(let Ae of XI(a.geometry,0)){let ur=_K(Ae,16);Pe(Ae[0],new hA(ur.x,ur.y,0))}else if(a.type===\"LineString\")for(let Ae of a.geometry)Pe(Ae,new hA(Ae[0].x,Ae[0].y,0));else if(a.type===\"Point\")for(let Ae of a.geometry)for(let ur of Ae)Pe([ur],new hA(ur.x,ur.y,0))}function BF(u,a,h,A,x,E,P,D,F,V,q,X,et,at,ct){let mt=function(Vt,kt,jt,qt,ae,Be,Je,Oe){let ke=qt.layout.get(\"text-rotate\").evaluate(Be,{})*Math.PI/180,Te=[];for(let He of kt.positionedLines)for(let Pe of He.positionedGlyphs){if(!Pe.rect)continue;let Ae=Pe.rect||{},ur=K6+1,ir=!0,ri=1,xn=0,Ln=(ae||Oe)&&Pe.vertical,Vs=Pe.metrics.advance*Pe.scale/2;if(Oe&&kt.verticalizable&&(xn=He.lineOffset/2-(Pe.imageName?-(Us-Pe.metrics.width*Pe.scale)/2:(Pe.scale-1)*Us)),Pe.imageName){let Ws=Je[Pe.imageName];ir=Ws.sdf,ri=Ws.pixelRatio,ur=pl/ri}let Hl=ae?[Pe.x+Vs,Pe.y]:[0,0],Va=ae?[0,0]:[Pe.x+Vs+jt[0],Pe.y+jt[1]-xn],Ps=[0,0];Ln&&(Ps=Va,Va=[0,0]);let vo=Pe.metrics.isDoubleResolution?2:1,Yo=(Pe.metrics.left-ur)*Pe.scale-Vs+Va[0],ja=(-Pe.metrics.top-ur)*Pe.scale+Va[1],Ga=Yo+Ae.w/vo*Pe.scale/ri,js=ja+Ae.h/vo*Pe.scale/ri,Gs=new w(Yo,ja),ha=new w(Ga,ja),Wa=new w(Yo,js),fa=new w(Ga,js);if(Ln){let Ws=new w(-Vs,Vs-Ux),di=-Math.PI/2,da=Us/2-Vs,Qo=new w(5-Ux-da,-(Pe.imageName?da:0)),Hs=new w(...Ps);Gs._rotateAround(di,Ws)._add(Qo)._add(Hs),ha._rotateAround(di,Ws)._add(Qo)._add(Hs),Wa._rotateAround(di,Ws)._add(Qo)._add(Hs),fa._rotateAround(di,Ws)._add(Qo)._add(Hs)}if(ke){let Ws=Math.sin(ke),di=Math.cos(ke),da=[di,-Ws,Ws,di];Gs._matMult(da),ha._matMult(da),Wa._matMult(da),fa._matMult(da)}let Al=new w(0,0),ml=new w(0,0);Te.push({tl:Gs,tr:ha,bl:Wa,br:fa,tex:Ae,writingMode:kt.writingMode,glyphOffset:Hl,sectionIndex:Pe.sectionIndex,isSDF:ir,pixelOffsetTL:Al,pixelOffsetBR:ml,minFontScaleX:0,minFontScaleY:0})}return Te}(0,h,D,x,E,P,A,u.allowVerticalPlacement),bt=u.textSizeData,Et=null;bt.kind===\"source\"?(Et=[Tf*x.layout.get(\"text-size\").evaluate(P,{})],Et[0]>cA&&tr(`${u.layerIds[0]}: Value for \"text-size\" is >= ${jx}. Reduce your \"text-size\".`)):bt.kind===\"composite\"&&(Et=[Tf*at.compositeTextSizes[0].evaluate(P,{},ct),Tf*at.compositeTextSizes[1].evaluate(P,{},ct)],(Et[0]>cA||Et[1]>cA)&&tr(`${u.layerIds[0]}: Value for \"text-size\" is >= ${jx}. Reduce your \"text-size\".`)),u.addSymbols(u.text,mt,Et,D,E,P,V,a,F.lineStartIndex,F.lineLength,et,ct);for(let Vt of q)X[Vt]=u.text.placedSymbolArray.length-1;return 4*mt.length}function FF(u){for(let a in u)return u[a];return null}function xK(u,a,h,A){let x=u.compareText;if(a in x){let E=x[a];for(let P=E.length-1;P>=0;P--)if(A.dist(E[P])>4;if(x!==1)throw new Error(`Got v${x} data when expected v1.`);let E=zF[15&A];if(!E)throw new Error(\"Unrecognized array type.\");let[P]=new Uint16Array(a,2,1),[D]=new Uint32Array(a,4,1);return new vC(D,P,E,a)}constructor(a,h=64,A=Float64Array,x){if(isNaN(a)||a<0)throw new Error(`Unpexpected numItems value: ${a}.`);this.numItems=+a,this.nodeSize=Math.min(Math.max(+h,2),65535),this.ArrayType=A,this.IndexArrayType=a<65536?Uint16Array:Uint32Array;let E=zF.indexOf(this.ArrayType),P=2*a*this.ArrayType.BYTES_PER_ELEMENT,D=a*this.IndexArrayType.BYTES_PER_ELEMENT,F=(8-D%8)%8;if(E<0)throw new Error(`Unexpected typed array class: ${A}.`);x&&x instanceof ArrayBuffer?(this.data=x,this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=2*a,this._finished=!0):(this.data=new ArrayBuffer(8+P+D+F),this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+E]),new Uint16Array(this.data,2,1)[0]=h,new Uint32Array(this.data,4,1)[0]=a)}add(a,h){let A=this._pos>>1;return this.ids[A]=A,this.coords[this._pos++]=a,this.coords[this._pos++]=h,A}finish(){let a=this._pos>>1;if(a!==this.numItems)throw new Error(`Added ${a} items when expected ${this.numItems}.`);return xC(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(a,h,A,x){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:E,coords:P,nodeSize:D}=this,F=[0,E.length-1,0],V=[];for(;F.length;){let q=F.pop()||0,X=F.pop()||0,et=F.pop()||0;if(X-et<=D){for(let bt=et;bt<=X;bt++){let Et=P[2*bt],Vt=P[2*bt+1];Et>=a&&Et<=A&&Vt>=h&&Vt<=x&&V.push(E[bt])}continue}let at=et+X>>1,ct=P[2*at],mt=P[2*at+1];ct>=a&&ct<=A&&mt>=h&&mt<=x&&V.push(E[at]),(q===0?a<=ct:h<=mt)&&(F.push(et),F.push(at-1),F.push(1-q)),(q===0?A>=ct:x>=mt)&&(F.push(at+1),F.push(X),F.push(1-q))}return V}within(a,h,A){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:x,coords:E,nodeSize:P}=this,D=[0,x.length-1,0],F=[],V=A*A;for(;D.length;){let q=D.pop()||0,X=D.pop()||0,et=D.pop()||0;if(X-et<=P){for(let bt=et;bt<=X;bt++)UF(E[2*bt],E[2*bt+1],a,h)<=V&&F.push(x[bt]);continue}let at=et+X>>1,ct=E[2*at],mt=E[2*at+1];UF(ct,mt,a,h)<=V&&F.push(x[at]),(q===0?a-A<=ct:h-A<=mt)&&(D.push(et),D.push(at-1),D.push(1-q)),(q===0?a+A>=ct:h+A>=mt)&&(D.push(at+1),D.push(X),D.push(1-q))}return F}}function xC(u,a,h,A,x,E){if(x-A<=h)return;let P=A+x>>1;NF(u,a,P,A,x,E),xC(u,a,h,A,P-1,1-E),xC(u,a,h,P+1,x,1-E)}function NF(u,a,h,A,x,E){for(;x>A;){if(x-A>600){let V=x-A+1,q=h-A+1,X=Math.log(V),et=.5*Math.exp(2*X/3),at=.5*Math.sqrt(X*et*(V-et)/V)*(q-V/2<0?-1:1);NF(u,a,h,Math.max(A,Math.floor(h-q*et/V+at)),Math.min(x,Math.floor(h+(V-q)*et/V+at)),E)}let P=a[2*h+E],D=A,F=x;for(Wx(u,a,A,h),a[2*x+E]>P&&Wx(u,a,A,x);DP;)F--}a[2*A+E]===P?Wx(u,a,A,F):(F++,Wx(u,a,F,x)),F<=h&&(A=F+1),h<=F&&(x=F-1)}}function Wx(u,a,h,A){bC(u,h,A),bC(a,2*h,2*A),bC(a,2*h+1,2*A+1)}function bC(u,a,h){let A=u[a];u[a]=u[h],u[h]=A}function UF(u,a,h,A){let x=u-h,E=a-A;return x*x+E*E}var wC;n.bh=void 0,(wC=n.bh||(n.bh={})).create=\"create\",wC.load=\"load\",wC.fullLoad=\"fullLoad\";let KS=null,Hx=[],SC=1e3/60,TC=\"loadTime\",MC=\"fullLoadTime\",bK={mark(u){performance.mark(u)},frame(u){let a=u;KS!=null&&Hx.push(a-KS),KS=a},clearMetrics(){KS=null,Hx=[],performance.clearMeasures(TC),performance.clearMeasures(MC);for(let u in n.bh)performance.clearMarks(n.bh[u])},getPerformanceMetrics(){performance.measure(TC,n.bh.create,n.bh.load),performance.measure(MC,n.bh.create,n.bh.fullLoad);let u=performance.getEntriesByName(TC)[0].duration,a=performance.getEntriesByName(MC)[0].duration,h=Hx.length,A=1/(Hx.reduce((E,P)=>E+P,0)/h/1e3),x=Hx.filter(E=>E>SC).reduce((E,P)=>E+(P-SC)/SC,0);return{loadTime:u,fullLoadTime:a,fps:A,percentDroppedFrames:x/(h+x)*100,totalFrames:h}}};n.$=function(u,a,h){var A,x,E,P,D,F,V,q,X,et,at,ct,mt=h[0],bt=h[1],Et=h[2];return a===u?(u[12]=a[0]*mt+a[4]*bt+a[8]*Et+a[12],u[13]=a[1]*mt+a[5]*bt+a[9]*Et+a[13],u[14]=a[2]*mt+a[6]*bt+a[10]*Et+a[14],u[15]=a[3]*mt+a[7]*bt+a[11]*Et+a[15]):(x=a[1],E=a[2],P=a[3],D=a[4],F=a[5],V=a[6],q=a[7],X=a[8],et=a[9],at=a[10],ct=a[11],u[0]=A=a[0],u[1]=x,u[2]=E,u[3]=P,u[4]=D,u[5]=F,u[6]=V,u[7]=q,u[8]=X,u[9]=et,u[10]=at,u[11]=ct,u[12]=A*mt+D*bt+X*Et+a[12],u[13]=x*mt+F*bt+et*Et+a[13],u[14]=E*mt+V*bt+at*Et+a[14],u[15]=P*mt+q*bt+ct*Et+a[15]),u},n.A=ze,n.B=Ra,n.C=class{constructor(u,a,h){this.receive=A=>{let x=A.data,E=x.id;if(E&&(!x.targetMapId||this.mapId===x.targetMapId))if(x.type===\"\"){delete this.tasks[E];let P=this.cancelCallbacks[E];delete this.cancelCallbacks[E],P&&P()}else zi()||x.mustQueue?(this.tasks[E]=x,this.taskQueue.push(E),this.invoker.trigger()):this.processTask(E,x)},this.process=()=>{if(!this.taskQueue.length)return;let A=this.taskQueue.shift(),x=this.tasks[A];delete this.tasks[A],this.taskQueue.length&&this.invoker.trigger(),x&&this.processTask(A,x)},this.target=u,this.parent=a,this.mapId=h,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new fK(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=zi()?u:window}send(u,a,h,A,x=!1){let E=Math.round(1e18*Math.random()).toString(36).substring(0,10);h&&(this.callbacks[E]=h);let P=[],D={id:E,type:u,hasCallback:!!h,targetMapId:A,mustQueue:x,sourceMapId:this.mapId,data:Vl(a,P)};return this.target.postMessage(D,{transfer:P}),{cancel:()=>{h&&delete this.callbacks[E],this.target.postMessage({id:E,type:\"\",targetMapId:A,sourceMapId:this.mapId})}}}processTask(u,a){if(a.type===\"\"){let h=this.callbacks[u];delete this.callbacks[u],h&&(a.error?h(yf(a.error)):h(null,yf(a.data)))}else{let h=!1,A=[],x=a.hasCallback?(D,F)=>{h=!0,delete this.cancelCallbacks[u];let V={id:u,type:\"\",sourceMapId:this.mapId,error:D?Vl(D):null,data:Vl(F,A)};this.target.postMessage(V,{transfer:A})}:D=>{h=!0},E=null,P=yf(a.data);if(this.parent[a.type])E=this.parent[a.type](a.sourceMapId,P,x);else if(\"getWorkerSource\"in this.parent){let D=a.type.split(\".\");E=this.parent.getWorkerSource(a.sourceMapId,D[0],P.source)[D[1]](P,x)}else x(new Error(`Could not find function ${a.type}`));!h&&E&&E.cancel&&(this.cancelCallbacks[u]=E.cancel)}}remove(){this.invoker.remove(),this.target.removeEventListener(\"message\",this.receive,!1)}},n.D=rr,n.E=Ol,n.F=function(u,a){let h={};for(let A=0;A{}}},n.Y=ve,n.Z=function(){var u=new ze(16);return ze!=Float32Array&&(u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=0,u[12]=0,u[13]=0,u[14]=0),u[0]=1,u[5]=1,u[10]=1,u[15]=1,u},n._=o,n.a=Pc,n.a$=class extends st{},n.a0=function(u,a,h){var A=h[0],x=h[1],E=h[2];return u[0]=a[0]*A,u[1]=a[1]*A,u[2]=a[2]*A,u[3]=a[3]*A,u[4]=a[4]*x,u[5]=a[5]*x,u[6]=a[6]*x,u[7]=a[7]*x,u[8]=a[8]*E,u[9]=a[9]*E,u[10]=a[10]*E,u[11]=a[11]*E,u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.a1=Gi,n.a2=function(){return Kt++},n.a3=yt,n.a4=y_,n.a5=function(){ua.isLoading()||ua.isLoaded()||a0()!==\"deferred\"||c_()},n.a6=Xm,n.a7=S,n.a8=ln,n.a9=bF,n.aA=Rc,n.aB=function(u){u=u.slice();let a=Object.create(null);for(let h=0;h{A[P.source]?h.push({command:oi.removeLayer,args:[P.id]}):E.push(P)}),h=h.concat(x),function(P,D,F){D=D||[];let V=(P=P||[]).map(Pa),q=D.map(Pa),X=P.reduce(Ao,{}),et=D.reduce(Ao,{}),at=V.slice(),ct=Object.create(null),mt,bt,Et,Vt,kt,jt,qt;for(mt=0,bt=0;mt@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,(h,A,x,E)=>{let P=x||E;return a[A]=!P||P.toLowerCase(),\"\"}),a[\"max-age\"]){let h=parseInt(a[\"max-age\"],10);isNaN(h)?delete a[\"max-age\"]:a[\"max-age\"]=h}return a},n.ab=function(u,a){let h=[];for(let A in u)A in a||h.push(A);return h},n.ac=function(u){if(Bo==null){let a=u.navigator?u.navigator.userAgent:null;Bo=!!u.safari||!(!a||!(/\\b(iPad|iPhone|iPod)\\b/.test(a)||a.match(\"Safari\")&&!a.match(\"Chrome\")))}return Bo},n.ad=ut,n.ae=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[0],P=a[1],D=a[2],F=a[3],V=a[4],q=a[5],X=a[6],et=a[7];return a!==u&&(u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[0]=E*x+V*A,u[1]=P*x+q*A,u[2]=D*x+X*A,u[3]=F*x+et*A,u[4]=V*x-E*A,u[5]=q*x-P*A,u[6]=X*x-D*A,u[7]=et*x-F*A,u},n.af=function(u){var a=new ze(16);return a[0]=u[0],a[1]=u[1],a[2]=u[2],a[3]=u[3],a[4]=u[4],a[5]=u[5],a[6]=u[6],a[7]=u[7],a[8]=u[8],a[9]=u[9],a[10]=u[10],a[11]=u[11],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15],a},n.ag=Ei,n.ah=function(u,a){let h=0,A=0;if(u.kind===\"constant\")A=u.layoutSize;else if(u.kind!==\"source\"){let{interpolationType:x,minZoom:E,maxZoom:P}=u,D=x?ut(Da.interpolationFactor(x,a,E,P),0,1):0;u.kind===\"camera\"?A=Ra.number(u.minSize,u.maxSize,D):h=D}return{uSizeT:h,uSize:A}},n.aj=function(u,{uSize:a,uSizeT:h},{lowerSize:A,upperSize:x}){return u.kind===\"source\"?A/Tf:u.kind===\"composite\"?Ra.number(A/Tf,x/Tf,h):a},n.ak=hC,n.al=function(u,a,h,A){let x=a.y-u.y,E=a.x-u.x,P=A.y-h.y,D=A.x-h.x,F=P*E-D*x;if(F===0)return null;let V=(D*(u.y-h.y)-P*(u.x-h.x))/F;return new w(u.x+V*E,u.y+V*x)},n.am=MF,n.an=L,n.ao=Zr,n.ap=Us,n.ar=uC,n.as=function(u,a){var h=a[0],A=a[1],x=a[2],E=a[3],P=a[4],D=a[5],F=a[6],V=a[7],q=a[8],X=a[9],et=a[10],at=a[11],ct=a[12],mt=a[13],bt=a[14],Et=a[15],Vt=h*D-A*P,kt=h*F-x*P,jt=h*V-E*P,qt=A*F-x*D,ae=A*V-E*D,Be=x*V-E*F,Je=q*mt-X*ct,Oe=q*bt-et*ct,ke=q*Et-at*ct,Te=X*bt-et*mt,He=X*Et-at*mt,Pe=et*Et-at*bt,Ae=Vt*Pe-kt*He+jt*Te+qt*ke-ae*Oe+Be*Je;return Ae?(u[0]=(D*Pe-F*He+V*Te)*(Ae=1/Ae),u[1]=(x*He-A*Pe-E*Te)*Ae,u[2]=(mt*Be-bt*ae+Et*qt)*Ae,u[3]=(et*ae-X*Be-at*qt)*Ae,u[4]=(F*ke-P*Pe-V*Oe)*Ae,u[5]=(h*Pe-x*ke+E*Oe)*Ae,u[6]=(bt*jt-ct*Be-Et*kt)*Ae,u[7]=(q*Be-et*jt+at*kt)*Ae,u[8]=(P*He-D*ke+V*Je)*Ae,u[9]=(A*ke-h*He-E*Je)*Ae,u[10]=(ct*ae-mt*jt+Et*Vt)*Ae,u[11]=(X*jt-q*ae-at*Vt)*Ae,u[12]=(D*Oe-P*Te-F*Je)*Ae,u[13]=(h*Te-A*Oe+x*Je)*Ae,u[14]=(mt*kt-ct*qt-bt*Vt)*Ae,u[15]=(q*qt-X*kt+et*Vt)*Ae,u):null},n.at=yC,n.au=cC,n.av=vC,n.aw=function(){let u={},a=te.$version;for(let h in te.$root){let A=te.$root[h];if(A.required){let x=null;x=h===\"version\"?a:A.type===\"array\"?[]:{},x!=null&&(u[h]=x)}}return u},n.ax=oi,n.ay=a_,n.az=$n,n.b=function(u,a){let h=new Blob([new Uint8Array(u)],{type:\"image/png\"});createImageBitmap(h).then(A=>{a(null,A)}).catch(A=>{a(new Error(`Could not load image because of ${A.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})},n.b0=zs,n.b1=function(u,a){var h=u[0],A=u[1],x=u[2],E=u[3],P=u[4],D=u[5],F=u[6],V=u[7],q=u[8],X=u[9],et=u[10],at=u[11],ct=u[12],mt=u[13],bt=u[14],Et=u[15],Vt=a[0],kt=a[1],jt=a[2],qt=a[3],ae=a[4],Be=a[5],Je=a[6],Oe=a[7],ke=a[8],Te=a[9],He=a[10],Pe=a[11],Ae=a[12],ur=a[13],ir=a[14],ri=a[15];return Math.abs(h-Vt)<=be*Math.max(1,Math.abs(h),Math.abs(Vt))&&Math.abs(A-kt)<=be*Math.max(1,Math.abs(A),Math.abs(kt))&&Math.abs(x-jt)<=be*Math.max(1,Math.abs(x),Math.abs(jt))&&Math.abs(E-qt)<=be*Math.max(1,Math.abs(E),Math.abs(qt))&&Math.abs(P-ae)<=be*Math.max(1,Math.abs(P),Math.abs(ae))&&Math.abs(D-Be)<=be*Math.max(1,Math.abs(D),Math.abs(Be))&&Math.abs(F-Je)<=be*Math.max(1,Math.abs(F),Math.abs(Je))&&Math.abs(V-Oe)<=be*Math.max(1,Math.abs(V),Math.abs(Oe))&&Math.abs(q-ke)<=be*Math.max(1,Math.abs(q),Math.abs(ke))&&Math.abs(X-Te)<=be*Math.max(1,Math.abs(X),Math.abs(Te))&&Math.abs(et-He)<=be*Math.max(1,Math.abs(et),Math.abs(He))&&Math.abs(at-Pe)<=be*Math.max(1,Math.abs(at),Math.abs(Pe))&&Math.abs(ct-Ae)<=be*Math.max(1,Math.abs(ct),Math.abs(Ae))&&Math.abs(mt-ur)<=be*Math.max(1,Math.abs(mt),Math.abs(ur))&&Math.abs(bt-ir)<=be*Math.max(1,Math.abs(bt),Math.abs(ir))&&Math.abs(Et-ri)<=be*Math.max(1,Math.abs(Et),Math.abs(ri))},n.b2=function(u,a){return u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[4]=a[4],u[5]=a[5],u[6]=a[6],u[7]=a[7],u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.b3=function(u,a,h){return u[0]=a[0]*h[0],u[1]=a[1]*h[1],u[2]=a[2]*h[2],u[3]=a[3]*h[3],u},n.b4=function(u,a){return u[0]*a[0]+u[1]*a[1]+u[2]*a[2]+u[3]*a[3]},n.b5=Pt,n.b6=yF,n.b7=mF,n.b8=function(u,a,h,A,x){var E,P=1/Math.tan(a/2);return u[0]=P/h,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=P,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=-1,u[12]=0,u[13]=0,u[15]=0,x!=null&&x!==1/0?(u[10]=(x+A)*(E=1/(A-x)),u[14]=2*x*A*E):(u[10]=-1,u[14]=-2*A),u},n.b9=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[4],P=a[5],D=a[6],F=a[7],V=a[8],q=a[9],X=a[10],et=a[11];return a!==u&&(u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[4]=E*x+V*A,u[5]=P*x+q*A,u[6]=D*x+X*A,u[7]=F*x+et*A,u[8]=V*x-E*A,u[9]=q*x-P*A,u[10]=X*x-D*A,u[11]=et*x-F*A,u},n.bA=f,n.bB=H6,n.bC=qp,n.bD=ua,n.ba=K,n.bb=tt,n.bc=function(u,a){return u[0]=a[0],u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=a[1],u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=a[2],u[11]=0,u[12]=0,u[13]=0,u[14]=0,u[15]=1,u},n.bd=class extends mh{},n.be=AC,n.bf=gF,n.bg=bK,n.bi=Zi,n.bj=function(u,a,h=!1){if(ls===s0||ls===tA||ls===eA)throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");Au=Ic.resolveURL(u),ls=s0,dh=a,o0(),h||c_()},n.bk=a0,n.bl=function(u,a){let h={};for(let x=0;xAe*Us)}let Oe=P?\"center\":h.get(\"text-justify\").evaluate(V,{},u.canonical),ke=h.get(\"symbol-placement\"),Te=ke===\"point\"?h.get(\"text-max-width\").evaluate(V,{},u.canonical)*Us:0,He=()=>{u.bucket.allowVerticalPlacement&&e0(jt)&&(ct.vertical=GS(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Te,E,Be,\"left\",ae,Et,n.ai.vertical,!0,ke,et,X))};if(!P&&Je){let Pe=new Set;if(Oe===\"auto\")for(let ur=0;ur{a(null,h),URL.revokeObjectURL(h.src),h.onload=null,window.requestAnimationFrame(()=>{h.src=Fo})},h.onerror=()=>a(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));let A=new Blob([new Uint8Array(u)],{type:\"image/png\"});h.src=u.byteLength?URL.createObjectURL(A):Fo},n.e=Ot,n.f=function(u,a){return No(Ot(u,{type:\"json\"}),a)},n.g=Ii,n.h=Ic,n.i=zi,n.j=to,n.k=ss,n.l=ol,n.m=No,n.n=function(u){return new sC(u).readFields(XX,[])},n.o=function(u,a,h){if(!u.length)return h(null,[]);let A=u.length,x=new Array(u.length),E=null;u.forEach((P,D)=>{a(P,(F,V)=>{F&&(E=F),x[D]=V,--A==0&&h(E,x)})})},n.p=J6,n.q=kx,n.r=Gn,n.s=fo,n.t=uh,n.u=Re,n.v=te,n.w=tr,n.x=hh,n.y=Fa,n.z=function([u,a,h]){return a+=90,a*=Math.PI/180,h*=Math.PI/180,{x:u*Math.cos(a)*Math.sin(h),y:u*Math.sin(a)*Math.sin(h),z:u*Math.cos(h)}}}),i([\"./shared\"],function(n){\"use strict\";class o{constructor(J){this.keyCache={},J&&this.replace(J)}replace(J){this._layerConfigs={},this._layers={},this.update(J,[])}update(J,nt){for(let vt of J){this._layerConfigs[vt.id]=vt;let xt=this._layers[vt.id]=n.aC(vt);xt._featureFilter=n.a6(xt.filter),this.keyCache[vt.id]&&delete this.keyCache[vt.id]}for(let vt of nt)delete this.keyCache[vt],delete this._layerConfigs[vt],delete this._layers[vt];this.familiesBySource={};let ht=n.bl(Object.values(this._layerConfigs),this.keyCache);for(let vt of ht){let xt=vt.map(ne=>this._layers[ne.id]),_t=xt[0];if(_t.visibility===\"none\")continue;let Dt=_t.source||\"\",Mt=this.familiesBySource[Dt];Mt||(Mt=this.familiesBySource[Dt]={});let Ut=_t.sourceLayer||\"_geojsonTileLayer\",re=Mt[Ut];re||(re=Mt[Ut]=[]),re.push(xt)}}}class c{constructor(J){let nt={},ht=[];for(let Dt in J){let Mt=J[Dt],Ut=nt[Dt]={};for(let re in Mt){let ne=Mt[+re];if(!ne||ne.bitmap.width===0||ne.bitmap.height===0)continue;let oe={x:0,y:0,w:ne.bitmap.width+2,h:ne.bitmap.height+2};ht.push(oe),Ut[re]={rect:oe,metrics:ne.metrics}}}let{w:vt,h:xt}=n.p(ht),_t=new n.q({width:vt||1,height:xt||1});for(let Dt in J){let Mt=J[Dt];for(let Ut in Mt){let re=Mt[+Ut];if(!re||re.bitmap.width===0||re.bitmap.height===0)continue;let ne=nt[Dt][Ut].rect;n.q.copy(re.bitmap,_t,{x:0,y:0},{x:ne.x+1,y:ne.y+1},re.bitmap)}}this.image=_t,this.positions=nt}}n.bm(\"GlyphAtlas\",c);class f{constructor(J){this.tileID=new n.O(J.tileID.overscaledZ,J.tileID.wrap,J.tileID.canonical.z,J.tileID.canonical.x,J.tileID.canonical.y),this.uid=J.uid,this.zoom=J.zoom,this.pixelRatio=J.pixelRatio,this.tileSize=J.tileSize,this.source=J.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=J.showCollisionBoxes,this.collectResourceTiming=!!J.collectResourceTiming,this.returnDependencies=!!J.returnDependencies,this.promoteId=J.promoteId,this.inFlightDependencies=[],this.dependencySentinel=-1}parse(J,nt,ht,vt,xt){this.status=\"parsing\",this.data=J,this.collisionBoxArray=new n.a3;let _t=new n.bn(Object.keys(J.layers).sort()),Dt=new n.bo(this.tileID,this.promoteId);Dt.bucketLayerIDs=[];let Mt={},Ut={featureIndex:Dt,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:ht},re=nt.familiesBySource[this.source];for(let ni in re){let Hr=J.layers[ni];if(!Hr)continue;Hr.version===1&&n.w(`Vector tile source \"${this.source}\" layer \"${ni}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);let Un=_t.encode(ni),Li=[];for(let gn=0;gn=Kn.maxzoom||Kn.visibility!==\"none\"&&(_(gn,this.zoom,ht),(Mt[Kn.id]=Kn.createBucket({index:Dt.bucketLayerIDs.length,layers:gn,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Un,sourceID:this.source})).populate(Li,Ut,this.tileID.canonical),Dt.bucketLayerIDs.push(gn.map(oa=>oa.id)))}}let ne,oe,ar,_r,Ye=n.aH(Ut.glyphDependencies,ni=>Object.keys(ni).map(Number));this.inFlightDependencies.forEach(ni=>ni?.cancel()),this.inFlightDependencies=[];let lr=++this.dependencySentinel;Object.keys(Ye).length?this.inFlightDependencies.push(vt.send(\"getGlyphs\",{uid:this.uid,stacks:Ye,source:this.source,tileID:this.tileID,type:\"glyphs\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,oe=Hr,Bi.call(this)))})):oe={};let xr=Object.keys(Ut.iconDependencies);xr.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:xr,source:this.source,tileID:this.tileID,type:\"icons\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,ar=Hr,Bi.call(this)))})):ar={};let vi=Object.keys(Ut.patternDependencies);function Bi(){if(ne)return xt(ne);if(oe&&ar&&_r){let ni=new c(oe),Hr=new n.bp(ar,_r);for(let Un in Mt){let Li=Mt[Un];Li instanceof n.a4?(_(Li.layers,this.zoom,ht),n.bq({bucket:Li,glyphMap:oe,glyphPositions:ni.positions,imageMap:ar,imagePositions:Hr.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Li.hasPattern&&(Li instanceof n.br||Li instanceof n.bs||Li instanceof n.bt)&&(_(Li.layers,this.zoom,ht),Li.addFeatures(Ut,this.tileID.canonical,Hr.patternPositions))}this.status=\"done\",xt(null,{buckets:Object.values(Mt).filter(Un=>!Un.isEmpty()),featureIndex:Dt,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ni.image,imageAtlas:Hr,glyphMap:this.returnDependencies?oe:null,iconMap:this.returnDependencies?ar:null,glyphPositions:this.returnDependencies?ni.positions:null})}}vi.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:vi,source:this.source,tileID:this.tileID,type:\"patterns\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,_r=Hr,Bi.call(this)))})):_r={},Bi.call(this)}}function _(gt,J,nt){let ht=new n.a8(J);for(let vt of gt)vt.recalculate(ht,nt)}function w(gt,J){let nt=n.l(gt.request,(ht,vt,xt,_t)=>{if(ht)J(ht);else if(vt)try{let Dt=new n.bw.VectorTile(new n.bv(vt));J(null,{vectorTile:Dt,rawData:vt,cacheControl:xt,expires:_t})}catch(Dt){let Mt=new Uint8Array(vt),Ut=`Unable to parse the tile at ${gt.request.url}, `;Ut+=Mt[0]===31&&Mt[1]===139?\"please make sure the data is not gzipped and that you have configured the relevant header in the server\":`got error: ${Dt.messge}`,J(new Error(Ut))}});return()=>{nt.cancel(),J()}}class C{constructor(J,nt,ht,vt){this.actor=J,this.layerIndex=nt,this.availableImages=ht,this.loadVectorData=vt||w,this.fetching={},this.loading={},this.loaded={}}loadTile(J,nt){let ht=J.uid;this.loading||(this.loading={});let vt=!!(J&&J.request&&J.request.collectResourceTiming)&&new n.bu(J.request),xt=this.loading[ht]=new f(J);xt.abort=this.loadVectorData(J,(_t,Dt)=>{if(delete this.loading[ht],_t||!Dt)return xt.status=\"done\",this.loaded[ht]=xt,nt(_t);let Mt=Dt.rawData,Ut={};Dt.expires&&(Ut.expires=Dt.expires),Dt.cacheControl&&(Ut.cacheControl=Dt.cacheControl);let re={};if(vt){let ne=vt.finish();ne&&(re.resourceTiming=JSON.parse(JSON.stringify(ne)))}xt.vectorTile=Dt.vectorTile,xt.parse(Dt.vectorTile,this.layerIndex,this.availableImages,this.actor,(ne,oe)=>{if(delete this.fetching[ht],ne||!oe)return nt(ne);nt(null,n.e({rawTileData:Mt.slice(0)},oe,Ut,re))}),this.loaded=this.loaded||{},this.loaded[ht]=xt,this.fetching[ht]={rawTileData:Mt,cacheControl:Ut,resourceTiming:re}})}reloadTile(J,nt){let ht=this.loaded,vt=J.uid;if(ht&&ht[vt]){let xt=ht[vt];xt.showCollisionBoxes=J.showCollisionBoxes,xt.status===\"parsing\"?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,(_t,Dt)=>{if(_t||!Dt)return nt(_t,Dt);let Mt;if(this.fetching[vt]){let{rawTileData:Ut,cacheControl:re,resourceTiming:ne}=this.fetching[vt];delete this.fetching[vt],Mt=n.e({rawTileData:Ut.slice(0)},Dt,re,ne)}else Mt=Dt;nt(null,Mt)}):xt.status===\"done\"&&(xt.vectorTile?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,nt):nt())}}abortTile(J,nt){let ht=this.loading,vt=J.uid;ht&&ht[vt]&&ht[vt].abort&&(ht[vt].abort(),delete ht[vt]),nt()}removeTile(J,nt){let ht=this.loaded,vt=J.uid;ht&&ht[vt]&&delete ht[vt],nt()}}class R{constructor(){this.loaded={}}loadTile(J,nt){return n._(this,void 0,void 0,function*(){let{uid:ht,encoding:vt,rawImageData:xt,redFactor:_t,greenFactor:Dt,blueFactor:Mt,baseShift:Ut}=J,re=xt.width+2,ne=xt.height+2,oe=n.a(xt)?new n.R({width:re,height:ne},yield n.bx(xt,-1,-1,re,ne)):xt,ar=new n.by(ht,oe,vt,_t,Dt,Mt,Ut);this.loaded=this.loaded||{},this.loaded[ht]=ar,nt(null,ar)})}removeTile(J){let nt=this.loaded,ht=J.uid;nt&&nt[ht]&&delete nt[ht]}}function N(gt,J){if(gt.length!==0){j(gt[0],J);for(var nt=1;nt=Math.abs(Dt)?nt-Mt+Dt:Dt-Mt+nt,nt=Mt}nt+ht>=0!=!!J&>.reverse()}var Y=n.bz(function gt(J,nt){var ht,vt=J&&J.type;if(vt===\"FeatureCollection\")for(ht=0;ht>31}function zi(gt,J){for(var nt=gt.loadGeometry(),ht=gt.type,vt=0,xt=0,_t=nt.length,Dt=0;Dt<_t;Dt++){var Mt=nt[Dt],Ut=1;ht===1&&(Ut=Mt.length),J.writeVarint(er(1,Ut));for(var re=ht===3?Mt.length-1:Mt.length,ne=0;negt},rh=Math.fround||(zo=new Float32Array(1),gt=>(zo[0]=+gt,zo[0]));var zo;let wi=3,Ds=5,sl=6;class Ic{constructor(J){this.options=Object.assign(Object.create(Fo),J),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(J){let{log:nt,minZoom:ht,maxZoom:vt}=this.options;nt&&console.time(\"total time\");let xt=`prepare ${J.length} points`;nt&&console.time(xt),this.points=J;let _t=[];for(let Mt=0;Mt=ht;Mt--){let Ut=+Date.now();Dt=this.trees[Mt]=this._createTree(this._cluster(Dt,Mt)),nt&&console.log(\"z%d: %d clusters in %dms\",Mt,Dt.numItems,+Date.now()-Ut)}return nt&&console.timeEnd(\"total time\"),this}getClusters(J,nt){let ht=((J[0]+180)%360+360)%360-180,vt=Math.max(-90,Math.min(90,J[1])),xt=J[2]===180?180:((J[2]+180)%360+360)%360-180,_t=Math.max(-90,Math.min(90,J[3]));if(J[2]-J[0]>=360)ht=-180,xt=180;else if(ht>xt){let ne=this.getClusters([ht,vt,180,_t],nt),oe=this.getClusters([-180,vt,xt,_t],nt);return ne.concat(oe)}let Dt=this.trees[this._limitZoom(nt)],Mt=Dt.range($n(ht),Ii(_t),$n(xt),Ii(vt)),Ut=Dt.data,re=[];for(let ne of Mt){let oe=this.stride*ne;re.push(Ut[oe+Ds]>1?Cc(Ut,oe,this.clusterProps):this.points[Ut[oe+wi]])}return re}getChildren(J){let nt=this._getOriginId(J),ht=this._getOriginZoom(J),vt=\"No cluster with the specified id.\",xt=this.trees[ht];if(!xt)throw new Error(vt);let _t=xt.data;if(nt*this.stride>=_t.length)throw new Error(vt);let Dt=this.options.radius/(this.options.extent*Math.pow(2,ht-1)),Mt=xt.within(_t[nt*this.stride],_t[nt*this.stride+1],Dt),Ut=[];for(let re of Mt){let ne=re*this.stride;_t[ne+4]===J&&Ut.push(_t[ne+Ds]>1?Cc(_t,ne,this.clusterProps):this.points[_t[ne+wi]])}if(Ut.length===0)throw new Error(vt);return Ut}getLeaves(J,nt,ht){let vt=[];return this._appendLeaves(vt,J,nt=nt||10,ht=ht||0,0),vt}getTile(J,nt,ht){let vt=this.trees[this._limitZoom(J)],xt=Math.pow(2,J),{extent:_t,radius:Dt}=this.options,Mt=Dt/_t,Ut=(ht-Mt)/xt,re=(ht+1+Mt)/xt,ne={features:[]};return this._addTileFeatures(vt.range((nt-Mt)/xt,Ut,(nt+1+Mt)/xt,re),vt.data,nt,ht,xt,ne),nt===0&&this._addTileFeatures(vt.range(1-Mt/xt,Ut,1,re),vt.data,xt,ht,xt,ne),nt===xt-1&&this._addTileFeatures(vt.range(0,Ut,Mt/xt,re),vt.data,-1,ht,xt,ne),ne.features.length?ne:null}getClusterExpansionZoom(J){let nt=this._getOriginZoom(J)-1;for(;nt<=this.options.maxZoom;){let ht=this.getChildren(J);if(nt++,ht.length!==1)break;J=ht[0].properties.cluster_id}return nt}_appendLeaves(J,nt,ht,vt,xt){let _t=this.getChildren(nt);for(let Dt of _t){let Mt=Dt.properties;if(Mt&&Mt.cluster?xt+Mt.point_count<=vt?xt+=Mt.point_count:xt=this._appendLeaves(J,Mt.cluster_id,ht,vt,xt):xt1,re,ne,oe;if(Ut)re=Zi(nt,Mt,this.clusterProps),ne=nt[Mt],oe=nt[Mt+1];else{let Ye=this.points[nt[Mt+wi]];re=Ye.properties;let[lr,xr]=Ye.geometry.coordinates;ne=$n(lr),oe=Ii(xr)}let ar={type:1,geometry:[[Math.round(this.options.extent*(ne*xt-ht)),Math.round(this.options.extent*(oe*xt-vt))]],tags:re},_r;_r=Ut||this.options.generateId?nt[Mt+wi]:this.points[nt[Mt+wi]].id,_r!==void 0&&(ar.id=_r),_t.features.push(ar)}}_limitZoom(J){return Math.max(this.options.minZoom,Math.min(Math.floor(+J),this.options.maxZoom+1))}_cluster(J,nt){let{radius:ht,extent:vt,reduce:xt,minPoints:_t}=this.options,Dt=ht/(vt*Math.pow(2,nt)),Mt=J.data,Ut=[],re=this.stride;for(let ne=0;nent&&(lr+=Mt[vi+Ds])}if(lr>Ye&&lr>=_t){let xr,vi=oe*Ye,Bi=ar*Ye,ni=-1,Hr=((ne/re|0)<<5)+(nt+1)+this.points.length;for(let Un of _r){let Li=Un*re;if(Mt[Li+2]<=nt)continue;Mt[Li+2]=nt;let gn=Mt[Li+Ds];vi+=Mt[Li]*gn,Bi+=Mt[Li+1]*gn,Mt[Li+4]=Hr,xt&&(xr||(xr=this._map(Mt,ne,!0),ni=this.clusterProps.length,this.clusterProps.push(xr)),xt(xr,this._map(Mt,Li)))}Mt[ne+4]=Hr,Ut.push(vi/lr,Bi/lr,1/0,Hr,-1,lr),xt&&Ut.push(ni)}else{for(let xr=0;xr1)for(let xr of _r){let vi=xr*re;if(!(Mt[vi+2]<=nt)){Mt[vi+2]=nt;for(let Bi=0;Bi>5}_getOriginZoom(J){return(J-this.points.length)%32}_map(J,nt,ht){if(J[nt+Ds]>1){let _t=this.clusterProps[J[nt+sl]];return ht?Object.assign({},_t):_t}let vt=this.points[J[nt+wi]].properties,xt=this.options.map(vt);return ht&&xt===vt?Object.assign({},xt):xt}}function Cc(gt,J,nt){return{type:\"Feature\",id:gt[J+wi],properties:Zi(gt,J,nt),geometry:{type:\"Point\",coordinates:[(ht=gt[J],360*(ht-.5)),Xn(gt[J+1])]}};var ht}function Zi(gt,J,nt){let ht=gt[J+Ds],vt=ht>=1e4?`${Math.round(ht/1e3)}k`:ht>=1e3?Math.round(ht/100)/10+\"k\":ht,xt=gt[J+sl],_t=xt===-1?{}:Object.assign({},nt[xt]);return Object.assign(_t,{cluster:!0,cluster_id:gt[J+wi],point_count:ht,point_count_abbreviated:vt})}function $n(gt){return gt/360+.5}function Ii(gt){let J=Math.sin(gt*Math.PI/180),nt=.5-.25*Math.log((1+J)/(1-J))/Math.PI;return nt<0?0:nt>1?1:nt}function Xn(gt){let J=(180-360*gt)*Math.PI/180;return 360*Math.atan(Math.exp(J))/Math.PI-90}function No(gt,J,nt,ht){for(var vt,xt=ht,_t=nt-J>>1,Dt=nt-J,Mt=gt[J],Ut=gt[J+1],re=gt[nt],ne=gt[nt+1],oe=J+3;oext)vt=oe,xt=ar;else if(ar===xt){var _r=Math.abs(oe-_t);_rht&&(vt-J>3&&No(gt,J,vt,ht),gt[vt+2]=xt,nt-vt>3&&No(gt,vt,nt,ht))}function ol(gt,J,nt,ht,vt,xt){var _t=vt-nt,Dt=xt-ht;if(_t!==0||Dt!==0){var Mt=((gt-nt)*_t+(J-ht)*Dt)/(_t*_t+Dt*Dt);Mt>1?(nt=vt,ht=xt):Mt>0&&(nt+=_t*Mt,ht+=Dt*Mt)}return(_t=gt-nt)*_t+(Dt=J-ht)*Dt}function fo(gt,J,nt,ht){var vt={id:gt===void 0?null:gt,type:J,geometry:nt,tags:ht,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(xt){var _t=xt.geometry,Dt=xt.type;if(Dt===\"Point\"||Dt===\"MultiPoint\"||Dt===\"LineString\")Ea(xt,_t);else if(Dt===\"Polygon\"||Dt===\"MultiLineString\")for(var Mt=0;Mt<_t.length;Mt++)Ea(xt,_t[Mt]);else if(Dt===\"MultiPolygon\")for(Mt=0;Mt<_t.length;Mt++)for(var Ut=0;Ut<_t[Mt].length;Ut++)Ea(xt,_t[Mt][Ut])}(vt),vt}function Ea(gt,J){for(var nt=0;nt0&&(_t+=ht?(vt*Ut-Mt*xt)/2:Math.sqrt(Math.pow(Mt-vt,2)+Math.pow(Ut-xt,2))),vt=Mt,xt=Ut}var re=J.length-3;J[2]=1,No(J,0,re,nt),J[re+2]=1,J.size=Math.abs(_t),J.start=0,J.end=J.size}function Ol(gt,J,nt,ht){for(var vt=0;vt1?1:nt}function fn(gt,J,nt,ht,vt,xt,_t,Dt){if(ht/=J,xt>=(nt/=J)&&_t=ht)return null;for(var Mt=[],Ut=0;Ut=nt&&_r=ht)){var Ye=[];if(oe===\"Point\"||oe===\"MultiPoint\")gi(ne,Ye,nt,ht,vt);else if(oe===\"LineString\")oi(ne,Ye,nt,ht,vt,!1,Dt.lineMetrics);else if(oe===\"MultiLineString\")uu(ne,Ye,nt,ht,vt,!1);else if(oe===\"Polygon\")uu(ne,Ye,nt,ht,vt,!0);else if(oe===\"MultiPolygon\")for(var lr=0;lr=nt&&_t<=ht&&(J.push(gt[xt]),J.push(gt[xt+1]),J.push(gt[xt+2]))}}function oi(gt,J,nt,ht,vt,xt,_t){for(var Dt,Mt,Ut=eo(gt),re=vt===0?po:ll,ne=gt.start,oe=0;oent&&(Mt=re(Ut,ar,_r,lr,xr,nt),_t&&(Ut.start=ne+Dt*Mt)):vi>ht?Bi=nt&&(Mt=re(Ut,ar,_r,lr,xr,nt),ni=!0),Bi>ht&&vi<=ht&&(Mt=re(Ut,ar,_r,lr,xr,ht),ni=!0),!xt&&ni&&(_t&&(Ut.end=ne+Dt*Mt),J.push(Ut),Ut=eo(gt)),_t&&(ne+=Dt)}var Hr=gt.length-3;ar=gt[Hr],_r=gt[Hr+1],Ye=gt[Hr+2],(vi=vt===0?ar:_r)>=nt&&vi<=ht&&al(Ut,ar,_r,Ye),Hr=Ut.length-3,xt&&Hr>=3&&(Ut[Hr]!==Ut[0]||Ut[Hr+1]!==Ut[1])&&al(Ut,Ut[0],Ut[1],Ut[2]),Ut.length&&J.push(Ut)}function eo(gt){var J=[];return J.size=gt.size,J.start=gt.start,J.end=gt.end,J}function uu(gt,J,nt,ht,vt,xt){for(var _t=0;_t_t.maxX&&(_t.maxX=re),ne>_t.maxY&&(_t.maxY=ne)}return _t}function Bl(gt,J,nt,ht){var vt=J.geometry,xt=J.type,_t=[];if(xt===\"Point\"||xt===\"MultiPoint\")for(var Dt=0;Dt0&&J.size<(vt?_t:ht))nt.numPoints+=J.length/3;else{for(var Dt=[],Mt=0;Mt_t)&&(nt.numSimplified++,Dt.push(J[Mt]),Dt.push(J[Mt+1])),nt.numPoints++;vt&&function(Ut,re){for(var ne=0,oe=0,ar=Ut.length,_r=ar-2;oe0===re)for(oe=0,ar=Ut.length;oe24)throw new Error(\"maxZoom should be in the 0-24 range\");if(J.promoteId&&J.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var ht=function(vt,xt){var _t=[];if(vt.type===\"FeatureCollection\")for(var Dt=0;Dt1&&console.time(\"creation\"),oe=this.tiles[ne]=dn(gt,J,nt,ht,Mt),this.tileCoords.push({z:J,x:nt,y:ht}),Ut)){Ut>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",J,nt,ht,oe.numFeatures,oe.numPoints,oe.numSimplified),console.timeEnd(\"creation\"));var ar=\"z\"+J;this.stats[ar]=(this.stats[ar]||0)+1,this.total++}if(oe.source=gt,vt){if(J===Mt.maxZoom||J===vt)continue;var _r=1<1&&console.time(\"clipping\");var Ye,lr,xr,vi,Bi,ni,Hr=.5*Mt.buffer/Mt.extent,Un=.5-Hr,Li=.5+Hr,gn=1+Hr;Ye=lr=xr=vi=null,Bi=fn(gt,re,nt-Hr,nt+Li,0,oe.minX,oe.maxX,Mt),ni=fn(gt,re,nt+Un,nt+gn,0,oe.minX,oe.maxX,Mt),gt=null,Bi&&(Ye=fn(Bi,re,ht-Hr,ht+Li,1,oe.minY,oe.maxY,Mt),lr=fn(Bi,re,ht+Un,ht+gn,1,oe.minY,oe.maxY,Mt),Bi=null),ni&&(xr=fn(ni,re,ht-Hr,ht+Li,1,oe.minY,oe.maxY,Mt),vi=fn(ni,re,ht+Un,ht+gn,1,oe.minY,oe.maxY,Mt),ni=null),Ut>1&&console.timeEnd(\"clipping\"),Dt.push(Ye||[],J+1,2*nt,2*ht),Dt.push(lr||[],J+1,2*nt,2*ht+1),Dt.push(xr||[],J+1,2*nt+1,2*ht),Dt.push(vi||[],J+1,2*nt+1,2*ht+1)}}},Se.prototype.getTile=function(gt,J,nt){var ht=this.options,vt=ht.extent,xt=ht.debug;if(gt<0||gt>24)return null;var _t=1<1&&console.log(\"drilling down to z%d-%d-%d\",gt,J,nt);for(var Mt,Ut=gt,re=J,ne=nt;!Mt&&Ut>0;)Ut--,re=Math.floor(re/2),ne=Math.floor(ne/2),Mt=this.tiles[Dr(Ut,re,ne)];return Mt&&Mt.source?(xt>1&&console.log(\"found parent tile z%d-%d-%d\",Ut,re,ne),xt>1&&console.time(\"drilling down\"),this.splitTile(Mt.source,Ut,re,ne,gt,J,nt),xt>1&&console.timeEnd(\"drilling down\"),this.tiles[Dt]?ve(this.tiles[Dt],vt):null):null};class Tr extends C{constructor(J,nt,ht,vt){super(J,nt,ht),this._dataUpdateable=new Map,this.loadGeoJSON=(xt,_t)=>{let{promoteId:Dt}=xt;if(xt.request)return n.f(xt.request,(Mt,Ut,re,ne)=>{this._dataUpdateable=Os(Ut,Dt)?Ca(Ut,Dt):void 0,_t(Mt,Ut,re,ne)});if(typeof xt.data==\"string\")try{let Mt=JSON.parse(xt.data);this._dataUpdateable=Os(Mt,Dt)?Ca(Mt,Dt):void 0,_t(null,Mt)}catch{_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`))}else xt.dataDiff?this._dataUpdateable?(function(Mt,Ut,re){var ne,oe,ar,_r;if(Ut.removeAll&&Mt.clear(),Ut.remove)for(let Ye of Ut.remove)Mt.delete(Ye);if(Ut.add)for(let Ye of Ut.add){let lr=mr(Ye,re);lr!=null&&Mt.set(lr,Ye)}if(Ut.update)for(let Ye of Ut.update){let lr=Mt.get(Ye.id);if(lr==null)continue;let xr=!Ye.removeAllProperties&&(((ne=Ye.removeProperties)===null||ne===void 0?void 0:ne.length)>0||((oe=Ye.addOrUpdateProperties)===null||oe===void 0?void 0:oe.length)>0);if((Ye.newGeometry||Ye.removeAllProperties||xr)&&(lr=Object.assign({},lr),Mt.set(Ye.id,lr),xr&&(lr.properties=Object.assign({},lr.properties))),Ye.newGeometry&&(lr.geometry=Ye.newGeometry),Ye.removeAllProperties)lr.properties={};else if(((ar=Ye.removeProperties)===null||ar===void 0?void 0:ar.length)>0)for(let vi of Ye.removeProperties)Object.prototype.hasOwnProperty.call(lr.properties,vi)&&delete lr.properties[vi];if(((_r=Ye.addOrUpdateProperties)===null||_r===void 0?void 0:_r.length)>0)for(let{key:vi,value:Bi}of Ye.addOrUpdateProperties)lr.properties[vi]=Bi}}(this._dataUpdateable,xt.dataDiff,Dt),_t(null,{type:\"FeatureCollection\",features:Array.from(this._dataUpdateable.values())})):_t(new Error(`Cannot update existing geojson data in ${xt.source}`)):_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`));return{cancel:()=>{}}},this.loadVectorData=this.loadGeoJSONTile,vt&&(this.loadGeoJSON=vt)}loadGeoJSONTile(J,nt){let ht=J.tileID.canonical;if(!this._geoJSONIndex)return nt(null,null);let vt=this._geoJSONIndex.getTile(ht.z,ht.x,ht.y);if(!vt)return nt(null,null);let xt=new class{constructor(Dt){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=n.N,this.length=Dt.length,this._features=Dt}feature(Dt){return new class{constructor(Mt){this._feature=Mt,this.extent=n.N,this.type=Mt.type,this.properties=Mt.tags,\"id\"in Mt&&!isNaN(Mt.id)&&(this.id=parseInt(Mt.id,10))}loadGeometry(){if(this._feature.type===1){let Mt=[];for(let Ut of this._feature.geometry)Mt.push([new n.P(Ut[0],Ut[1])]);return Mt}{let Mt=[];for(let Ut of this._feature.geometry){let re=[];for(let ne of Ut)re.push(new n.P(ne[0],ne[1]));Mt.push(re)}return Mt}}toGeoJSON(Mt,Ut,re){return rt.call(this,Mt,Ut,re)}}(this._features[Dt])}}(vt.features),_t=Pc(xt);_t.byteOffset===0&&_t.byteLength===_t.buffer.byteLength||(_t=new Uint8Array(_t)),nt(null,{vectorTile:xt,rawData:_t.buffer})}loadData(J,nt){var ht;(ht=this._pendingRequest)===null||ht===void 0||ht.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});let vt=!!(J&&J.request&&J.request.collectResourceTiming)&&new n.bu(J.request);this._pendingCallback=nt,this._pendingRequest=this.loadGeoJSON(J,(xt,_t)=>{if(delete this._pendingCallback,delete this._pendingRequest,xt||!_t)return nt(xt);if(typeof _t!=\"object\")return nt(new Error(`Input data given to '${J.source}' is not a valid GeoJSON object.`));{Y(_t,!0);try{if(J.filter){let Mt=n.bC(J.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(Mt.result===\"error\")throw new Error(Mt.value.map(re=>`${re.key}: ${re.message}`).join(\", \"));_t={type:\"FeatureCollection\",features:_t.features.filter(re=>Mt.value.evaluate({zoom:0},re))}}this._geoJSONIndex=J.cluster?new Ic(function({superclusterOptions:Mt,clusterProperties:Ut}){if(!Ut||!Mt)return Mt;let re={},ne={},oe={accumulated:null,zoom:0},ar={properties:null},_r=Object.keys(Ut);for(let Ye of _r){let[lr,xr]=Ut[Ye],vi=n.bC(xr),Bi=n.bC(typeof lr==\"string\"?[lr,[\"accumulated\"],[\"get\",Ye]]:lr);re[Ye]=vi.value,ne[Ye]=Bi.value}return Mt.map=Ye=>{ar.properties=Ye;let lr={};for(let xr of _r)lr[xr]=re[xr].evaluate(oe,ar);return lr},Mt.reduce=(Ye,lr)=>{ar.properties=lr;for(let xr of _r)oe.accumulated=Ye[xr],Ye[xr]=ne[xr].evaluate(oe,ar)},Mt}(J)).load(_t.features):function(Mt,Ut){return new Se(Mt,Ut)}(_t,J.geojsonVtOptions)}catch(Mt){return nt(Mt)}this.loaded={};let Dt={};if(vt){let Mt=vt.finish();Mt&&(Dt.resourceTiming={},Dt.resourceTiming[J.source]=JSON.parse(JSON.stringify(Mt)))}nt(null,Dt)}})}reloadTile(J,nt){let ht=this.loaded;return ht&&ht[J.uid]?super.reloadTile(J,nt):this.loadTile(J,nt)}removeSource(J,nt){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),nt()}getClusterExpansionZoom(J,nt){try{nt(null,this._geoJSONIndex.getClusterExpansionZoom(J.clusterId))}catch(ht){nt(ht)}}getClusterChildren(J,nt){try{nt(null,this._geoJSONIndex.getChildren(J.clusterId))}catch(ht){nt(ht)}}getClusterLeaves(J,nt){try{nt(null,this._geoJSONIndex.getLeaves(J.clusterId,J.limit,J.offset))}catch(ht){nt(ht)}}}class sa{constructor(J){this.self=J,this.actor=new n.C(J,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:C,geojson:Tr},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(nt,ht)=>{if(this.workerSourceTypes[nt])throw new Error(`Worker source with name \"${nt}\" already registered.`);this.workerSourceTypes[nt]=ht},this.self.registerRTLTextPlugin=nt=>{if(n.bD.isParsed())throw new Error(\"RTL text plugin already registered.\");n.bD.applyArabicShaping=nt.applyArabicShaping,n.bD.processBidirectionalText=nt.processBidirectionalText,n.bD.processStyledBidirectionalText=nt.processStyledBidirectionalText}}setReferrer(J,nt){this.referrer=nt}setImages(J,nt,ht){this.availableImages[J]=nt;for(let vt in this.workerSources[J]){let xt=this.workerSources[J][vt];for(let _t in xt)xt[_t].availableImages=nt}ht()}setLayers(J,nt,ht){this.getLayerIndex(J).replace(nt),ht()}updateLayers(J,nt,ht){this.getLayerIndex(J).update(nt.layers,nt.removedIds),ht()}loadTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).loadTile(nt,ht)}loadDEMTile(J,nt,ht){this.getDEMWorkerSource(J,nt.source).loadTile(nt,ht)}reloadTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).reloadTile(nt,ht)}abortTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).abortTile(nt,ht)}removeTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).removeTile(nt,ht)}removeDEMTile(J,nt){this.getDEMWorkerSource(J,nt.source).removeTile(nt)}removeSource(J,nt,ht){if(!this.workerSources[J]||!this.workerSources[J][nt.type]||!this.workerSources[J][nt.type][nt.source])return;let vt=this.workerSources[J][nt.type][nt.source];delete this.workerSources[J][nt.type][nt.source],vt.removeSource!==void 0?vt.removeSource(nt,ht):ht()}loadWorkerSource(J,nt,ht){try{this.self.importScripts(nt.url),ht()}catch(vt){ht(vt.toString())}}syncRTLPluginState(J,nt,ht){try{n.bD.setState(nt);let vt=n.bD.getPluginURL();if(n.bD.isLoaded()&&!n.bD.isParsed()&&vt!=null){this.self.importScripts(vt);let xt=n.bD.isParsed();ht(xt?void 0:new Error(`RTL Text Plugin failed to import scripts from ${vt}`),xt)}}catch(vt){ht(vt.toString())}}getAvailableImages(J){let nt=this.availableImages[J];return nt||(nt=[]),nt}getLayerIndex(J){let nt=this.layerIndexes[J];return nt||(nt=this.layerIndexes[J]=new o),nt}getWorkerSource(J,nt,ht){return this.workerSources[J]||(this.workerSources[J]={}),this.workerSources[J][nt]||(this.workerSources[J][nt]={}),this.workerSources[J][nt][ht]||(this.workerSources[J][nt][ht]=new this.workerSourceTypes[nt]({send:(vt,xt,_t)=>{this.actor.send(vt,xt,_t,J)}},this.getLayerIndex(J),this.getAvailableImages(J))),this.workerSources[J][nt][ht]}getDEMWorkerSource(J,nt){return this.demWorkerSources[J]||(this.demWorkerSources[J]={}),this.demWorkerSources[J][nt]||(this.demWorkerSources[J][nt]=new R),this.demWorkerSources[J][nt]}}return n.i()&&(self.worker=new sa(self)),sa}),i([\"./shared\"],function(n){\"use strict\";var o=\"3.6.2\";class c{static testProp(l){if(!c.docStyle)return l[0];for(let d=0;d{window.removeEventListener(\"click\",c.suppressClickInternal,!0)},0)}static mousePos(l,d){let v=l.getBoundingClientRect();return new n.P(d.clientX-v.left-l.clientLeft,d.clientY-v.top-l.clientTop)}static touchPos(l,d){let v=l.getBoundingClientRect(),b=[];for(let M=0;M{l=[],d=0,v=0,b={}},T.addThrottleControl=W=>{let Z=v++;return b[Z]=W,Z},T.removeThrottleControl=W=>{delete b[W],B()},T.getImage=(W,Z,Q=!0)=>{f.supported&&(W.headers||(W.headers={}),W.headers.accept=\"image/webp,*/*\");let st={requestParameters:W,supportImageRefresh:Q,callback:Z,cancelled:!1,completed:!1,cancel:()=>{st.completed||st.cancelled||(st.cancelled=!0,st.innerRequest&&(st.innerRequest.cancel(),d--),B())}};return l.push(st),B(),st};let M=W=>{let{requestParameters:Z,supportImageRefresh:Q,callback:st}=W;return n.e(Z,{type:\"image\"}),(Q!==!1||n.i()||n.g(Z.url)||Z.headers&&!Object.keys(Z.headers).reduce((At,pt)=>At&&pt===\"accept\",!0)?n.m:U)(Z,(At,pt,yt,dt)=>{O(W,st,At,pt,yt,dt)})},O=(W,Z,Q,st,At,pt)=>{Q?Z(Q):st instanceof HTMLImageElement||n.a(st)?Z(null,st):st&&((yt,dt)=>{typeof createImageBitmap==\"function\"?n.b(yt,dt):n.d(yt,dt)})(st,(yt,dt)=>{yt!=null?Z(yt):dt!=null&&Z(null,dt,{cacheControl:At,expires:pt})}),W.cancelled||(W.completed=!0,d--,B())},B=()=>{let W=(()=>{let Z=Object.keys(b),Q=!1;if(Z.length>0){for(let st of Z)if(Q=b[st](),Q)break}return Q})()?n.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:n.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let Z=d;Z0;Z++){let Q=l.shift();if(Q.cancelled){Z--;continue}let st=M(Q);d++,Q.innerRequest=st}},U=(W,Z)=>{let Q=new Image,st=W.url,At=!1,pt=W.credentials;return pt&&pt===\"include\"?Q.crossOrigin=\"use-credentials\":(pt&&pt===\"same-origin\"||!n.s(st))&&(Q.crossOrigin=\"anonymous\"),Q.fetchPriority=\"high\",Q.onload=()=>{Z(null,Q),Q.onerror=Q.onload=null},Q.onerror=()=>{At||Z(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\")),Q.onerror=Q.onload=null},Q.src=st,{cancel:()=>{At=!0,Q.src=\"\"}}}}(j||(j={})),j.resetRequestQueue(),function(T){T.Glyphs=\"Glyphs\",T.Image=\"Image\",T.Source=\"Source\",T.SpriteImage=\"SpriteImage\",T.SpriteJSON=\"SpriteJSON\",T.Style=\"Style\",T.Tile=\"Tile\",T.Unknown=\"Unknown\"}(Y||(Y={}));class rt{constructor(l){this._transformRequestFn=l}transformRequest(l,d){return this._transformRequestFn&&this._transformRequestFn(l,d)||{url:l}}normalizeSpriteURL(l,d,v){let b=function(M){let O=M.match($);if(!O)throw new Error(`Unable to parse URL \"${M}\"`);return{protocol:O[1],authority:O[2],path:O[3]||\"/\",params:O[4]?O[4].split(\"&\"):[]}}(l);return b.path+=`${d}${v}`,function(M){let O=M.params.length?`?${M.params.join(\"&\")}`:\"\";return`${M.protocol}://${M.authority}${M.path}${O}`}(b)}setTransformRequest(l){this._transformRequestFn=l}}let $=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function K(T){var l=new n.A(3);return l[0]=T[0],l[1]=T[1],l[2]=T[2],l}var tt,ut=function(T,l,d){return T[0]=l[0]-d[0],T[1]=l[1]-d[1],T[2]=l[2]-d[2],T};tt=new n.A(3),n.A!=Float32Array&&(tt[0]=0,tt[1]=0,tt[2]=0);var Pt=function(T){var l=T[0],d=T[1];return l*l+d*d};function Ot(T){let l=[];if(typeof T==\"string\")l.push({id:\"default\",url:T});else if(T&&T.length>0){let d=[];for(let{id:v,url:b}of T){let M=`${v}${b}`;d.indexOf(M)===-1&&(d.push(M),l.push({id:v,url:b}))}}return l}function Kt(T,l,d,v,b){if(v)return void T(v);if(b!==Object.values(l).length||b!==Object.values(d).length)return;let M={};for(let O in l){M[O]={};let B=n.h.getImageCanvasContext(d[O]),U=l[O];for(let W in U){let{width:Z,height:Q,x:st,y:At,sdf:pt,pixelRatio:yt,stretchX:dt,stretchY:Ft,content:Wt}=U[W];M[O][W]={data:null,pixelRatio:yt,sdf:pt,stretchX:dt,stretchY:Ft,content:Wt,spriteData:{width:Z,height:Q,x:st,y:At,context:B}}}}T(null,M)}(function(){var T=new n.A(2);n.A!=Float32Array&&(T[0]=0,T[1]=0)})();class Zt{constructor(l,d,v,b){this.context=l,this.format=v,this.texture=l.gl.createTexture(),this.update(d,b)}update(l,d,v){let{width:b,height:M}=l,O=!(this.size&&this.size[0]===b&&this.size[1]===M||v),{context:B}=this,{gl:U}=B;if(this.useMipmap=!!(d&&d.useMipmap),U.bindTexture(U.TEXTURE_2D,this.texture),B.pixelStoreUnpackFlipY.set(!1),B.pixelStoreUnpack.set(1),B.pixelStoreUnpackPremultiplyAlpha.set(this.format===U.RGBA&&(!d||d.premultiply!==!1)),O)this.size=[b,M],l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texImage2D(U.TEXTURE_2D,0,this.format,this.format,U.UNSIGNED_BYTE,l):U.texImage2D(U.TEXTURE_2D,0,this.format,b,M,0,this.format,U.UNSIGNED_BYTE,l.data);else{let{x:W,y:Z}=v||{x:0,y:0};l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texSubImage2D(U.TEXTURE_2D,0,W,Z,U.RGBA,U.UNSIGNED_BYTE,l):U.texSubImage2D(U.TEXTURE_2D,0,W,Z,b,M,U.RGBA,U.UNSIGNED_BYTE,l.data)}this.useMipmap&&this.isSizePowerOfTwo()&&U.generateMipmap(U.TEXTURE_2D)}bind(l,d,v){let{context:b}=this,{gl:M}=b;M.bindTexture(M.TEXTURE_2D,this.texture),v!==M.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(v=M.LINEAR),l!==this.filter&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MAG_FILTER,l),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MIN_FILTER,v||l),this.filter=l),d!==this.wrap&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_S,d),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_T,d),this.wrap=d)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:l}=this.context;l.deleteTexture(this.texture),this.texture=null}}function le(T){let{userImage:l}=T;return!!(l&&l.render&&l.render())&&(T.data.replace(new Uint8Array(l.data.buffer)),!0)}class ue extends n.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new n.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(l){if(this.loaded!==l&&(this.loaded=l,l)){for(let{ids:d,callback:v}of this.requestors)this._notify(d,v);this.requestors=[]}}getImage(l){let d=this.images[l];if(d&&!d.data&&d.spriteData){let v=d.spriteData;d.data=new n.R({width:v.width,height:v.height},v.context.getImageData(v.x,v.y,v.width,v.height).data),d.spriteData=null}return d}addImage(l,d){if(this.images[l])throw new Error(`Image id ${l} already exist, use updateImage instead`);this._validate(l,d)&&(this.images[l]=d)}_validate(l,d){let v=!0,b=d.data||d.spriteData;return this._validateStretch(d.stretchX,b&&b.width)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchX\" value`))),v=!1),this._validateStretch(d.stretchY,b&&b.height)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchY\" value`))),v=!1),this._validateContent(d.content,d)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"content\" value`))),v=!1),v}_validateStretch(l,d){if(!l)return!0;let v=0;for(let b of l){if(b[0]-1);U++,M[U]=B,O[U]=W,O[U+1]=Ge}for(let B=0,U=0;B{let B=this.entries[b];B||(B=this.entries[b]={glyphs:{},requests:{},ranges:{}});let U=B.glyphs[M];if(U!==void 0)return void O(null,{stack:b,id:M,glyph:U});if(U=this._tinySDF(B,b,M),U)return B.glyphs[M]=U,void O(null,{stack:b,id:M,glyph:U});let W=Math.floor(M/256);if(256*W>65535)return void O(new Error(\"glyphs > 65535 not supported\"));if(B.ranges[W])return void O(null,{stack:b,id:M,glyph:U});if(!this.url)return void O(new Error(\"glyphsUrl is not set\"));let Z=B.requests[W];Z||(Z=B.requests[W]=[],Lr.loadGlyphRange(b,W,this.url,this.requestManager,(Q,st)=>{if(st){for(let At in st)this._doesCharSupportLocalGlyph(+At)||(B.glyphs[+At]=st[+At]);B.ranges[W]=!0}for(let At of Z)At(Q,st);delete B.requests[W]})),Z.push((Q,st)=>{Q?O(Q):st&&O(null,{stack:b,id:M,glyph:st[M]||null})})},(b,M)=>{if(b)d(b);else if(M){let O={};for(let{stack:B,id:U,glyph:W}of M)(O[B]||(O[B]={}))[U]=W&&{id:W.id,bitmap:W.bitmap.clone(),metrics:W.metrics};d(null,O)}})}_doesCharSupportLocalGlyph(l){return!!this.localIdeographFontFamily&&(n.u[\"CJK Unified Ideographs\"](l)||n.u[\"Hangul Syllables\"](l)||n.u.Hiragana(l)||n.u.Katakana(l))}_tinySDF(l,d,v){let b=this.localIdeographFontFamily;if(!b||!this._doesCharSupportLocalGlyph(v))return;let M=l.tinySDF;if(!M){let B=\"400\";/bold/i.test(d)?B=\"900\":/medium/i.test(d)?B=\"500\":/light/i.test(d)&&(B=\"200\"),M=l.tinySDF=new Lr.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:b,fontWeight:B})}let O=M.draw(String.fromCharCode(v));return{id:v,bitmap:new n.q({width:O.width||60,height:O.height||60},O.data),metrics:{width:O.glyphWidth/2||24,height:O.glyphHeight/2||24,left:O.glyphLeft/2+.5||0,top:O.glyphTop/2-27.5||-8,advance:O.glyphAdvance/2||24,isDoubleResolution:!0}}}}Lr.loadGlyphRange=function(T,l,d,v,b){let M=256*l,O=M+255,B=v.transformRequest(d.replace(\"{fontstack}\",T).replace(\"{range}\",`${M}-${O}`),Y.Glyphs);n.l(B,(U,W)=>{if(U)b(U);else if(W){let Z={};for(let Q of n.n(W))Z[Q.id]=Q;b(null,Z)}})},Lr.TinySDF=class{constructor({fontSize:T=24,buffer:l=3,radius:d=8,cutoff:v=.25,fontFamily:b=\"sans-serif\",fontWeight:M=\"normal\",fontStyle:O=\"normal\"}={}){this.buffer=l,this.cutoff=v,this.radius=d;let B=this.size=T+4*l,U=this._createCanvas(B),W=this.ctx=U.getContext(\"2d\",{willReadFrequently:!0});W.font=`${O} ${M} ${T}px ${b}`,W.textBaseline=\"alphabetic\",W.textAlign=\"left\",W.fillStyle=\"black\",this.gridOuter=new Float64Array(B*B),this.gridInner=new Float64Array(B*B),this.f=new Float64Array(B),this.z=new Float64Array(B+1),this.v=new Uint16Array(B)}_createCanvas(T){let l=document.createElement(\"canvas\");return l.width=l.height=T,l}draw(T){let{width:l,actualBoundingBoxAscent:d,actualBoundingBoxDescent:v,actualBoundingBoxLeft:b,actualBoundingBoxRight:M}=this.ctx.measureText(T),O=Math.ceil(d),B=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(M-b))),U=Math.min(this.size-this.buffer,O+Math.ceil(v)),W=B+2*this.buffer,Z=U+2*this.buffer,Q=Math.max(W*Z,0),st=new Uint8ClampedArray(Q),At={data:st,width:W,height:Z,glyphWidth:B,glyphHeight:U,glyphTop:O,glyphLeft:0,glyphAdvance:l};if(B===0||U===0)return At;let{ctx:pt,buffer:yt,gridInner:dt,gridOuter:Ft}=this;pt.clearRect(yt,yt,B,U),pt.fillText(T,yt,yt+O);let Wt=pt.getImageData(yt,yt,B,U);Ft.fill(Ge,0,Q),dt.fill(0,0,Q);for(let St=0;St0?se*se:0,dt[Qt]=se<0?se*se:0}}tr(Ft,0,0,W,Z,W,this.f,this.v,this.z),tr(dt,yt,yt,B,U,W,this.f,this.v,this.z);for(let St=0;St1&&(U=l[++B]);let Z=Math.abs(W-U.left),Q=Math.abs(W-U.right),st=Math.min(Z,Q),At,pt=M/v*(b+1);if(U.isDash){let yt=b-Math.abs(pt);At=Math.sqrt(st*st+yt*yt)}else At=b-Math.sqrt(st*st+pt*pt);this.data[O+W]=Math.max(0,Math.min(255,At+128))}}}addRegularDash(l){for(let B=l.length-1;B>=0;--B){let U=l[B],W=l[B+1];U.zeroLength?l.splice(B,1):W&&W.isDash===U.isDash&&(W.left=U.left,l.splice(B,1))}let d=l[0],v=l[l.length-1];d.isDash===v.isDash&&(d.left=v.left-this.width,v.right=d.right+this.width);let b=this.width*this.nextRow,M=0,O=l[M];for(let B=0;B1&&(O=l[++M]);let U=Math.abs(B-O.left),W=Math.abs(B-O.right),Z=Math.min(U,W);this.data[b+B]=Math.max(0,Math.min(255,(O.isDash?Z:-Z)+128))}}addDash(l,d){let v=d?7:0,b=2*v+1;if(this.nextRow+b>this.height)return n.w(\"LineAtlas out of space\"),null;let M=0;for(let B=0;B{b.send(l,d,M)},v=v||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(l=!0){this.actors.forEach(d=>{d.remove()}),this.actors=[],l&&this.workerPool.release(this.id)}}function zo(T,l,d){let v=function(b,M){if(b)return d(b);if(M){let O=n.F(n.e(M,T),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);M.vector_layers&&(O.vectorLayers=M.vector_layers,O.vectorLayerIds=O.vectorLayers.map(B=>B.id)),d(null,O)}};return T.url?n.f(l.transformRequest(T.url,Y.Source),v):n.h.frame(()=>v(null,T))}class wi{constructor(l,d){l&&(d?this.setSouthWest(l).setNorthEast(d):Array.isArray(l)&&(l.length===4?this.setSouthWest([l[0],l[1]]).setNorthEast([l[2],l[3]]):this.setSouthWest(l[0]).setNorthEast(l[1])))}setNorthEast(l){return this._ne=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}setSouthWest(l){return this._sw=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}extend(l){let d=this._sw,v=this._ne,b,M;if(l instanceof n.L)b=l,M=l;else{if(!(l instanceof wi))return Array.isArray(l)?l.length===4||l.every(Array.isArray)?this.extend(wi.convert(l)):this.extend(n.L.convert(l)):l&&(\"lng\"in l||\"lon\"in l)&&\"lat\"in l?this.extend(n.L.convert(l)):this;if(b=l._sw,M=l._ne,!b||!M)return this}return d||v?(d.lng=Math.min(b.lng,d.lng),d.lat=Math.min(b.lat,d.lat),v.lng=Math.max(M.lng,v.lng),v.lat=Math.max(M.lat,v.lat)):(this._sw=new n.L(b.lng,b.lat),this._ne=new n.L(M.lng,M.lat)),this}getCenter(){return new n.L((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new n.L(this.getWest(),this.getNorth())}getSouthEast(){return new n.L(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(l){let{lng:d,lat:v}=n.L.convert(l),b=this._sw.lng<=d&&d<=this._ne.lng;return this._sw.lng>this._ne.lng&&(b=this._sw.lng>=d&&d>=this._ne.lng),this._sw.lat<=v&&v<=this._ne.lat&&b}static convert(l){return l instanceof wi?l:l&&new wi(l)}static fromLngLat(l,d=0){let v=360*d/40075017,b=v/Math.cos(Math.PI/180*l.lat);return new wi(new n.L(l.lng-b,l.lat-v),new n.L(l.lng+b,l.lat+v))}}class Ds{constructor(l,d,v){this.bounds=wi.convert(this.validateBounds(l)),this.minzoom=d||0,this.maxzoom=v||24}validateBounds(l){return Array.isArray(l)&&l.length===4?[Math.max(-180,l[0]),Math.max(-90,l[1]),Math.min(180,l[2]),Math.min(90,l[3])]:[-180,-90,180,90]}contains(l){let d=Math.pow(2,l.z),v=Math.floor(n.G(this.bounds.getWest())*d),b=Math.floor(n.H(this.bounds.getNorth())*d),M=Math.ceil(n.G(this.bounds.getEast())*d),O=Math.ceil(n.H(this.bounds.getSouth())*d);return l.x>=v&&l.x=b&&l.y{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=zo(this._options,this.map._requestManager,(M,O)=>{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),M?this.fire(new n.j(M)):O&&(n.e(this,O),O.bounds&&(this.tileBounds=new Ds(O.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})},this.serialize=()=>n.e({},this._options),this.id=l,this.dispatcher=v,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=n.e({type:\"vector\"},d),this._collectResourceTiming=d.collectResourceTiming,this.tileSize!==512)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(b)}loaded(){return this._loaded}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}onAdd(l){this.map=l,this.load()}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}setUrl(l){return this.setSourceProperty(()=>{this.url=l,this._options.url=l}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b={request:this.map._requestManager.transformRequest(v,Y.Tile),uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,tileSize:this.tileSize*l.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function M(O,B){return delete l.request,l.aborted?d(null):O&&O.status!==404?d(O):(B&&B.resourceTiming&&(l.resourceTiming=B.resourceTiming),this.map._refreshExpiredTiles&&B&&l.setExpiryData(B),l.loadVectorData(B,this.map.painter),d(null),void(l.reloadCallback&&(this.loadTile(l,l.reloadCallback),l.reloadCallback=null)))}b.request.collectResourceTiming=this._collectResourceTiming,l.actor&&l.state!==\"expired\"?l.state===\"loading\"?l.reloadCallback=d:l.request=l.actor.send(\"reloadTile\",b,M.bind(this)):(l.actor=this.dispatcher.getActor(),l.request=l.actor.send(\"loadTile\",b,M.bind(this)))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.actor&&l.actor.send(\"abortTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}unloadTile(l){l.unloadVectorData(),l.actor&&l.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}hasTransition(){return!1}}class Ic extends n.E{constructor(l,d,v,b){super(),this.id=l,this.dispatcher=v,this.setEventedParent(b),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=n.e({type:\"raster\"},d),n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\"]))}load(){this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=zo(this._options,this.map._requestManager,(l,d)=>{this._tileJSONRequest=null,this._loaded=!0,l?this.fire(new n.j(l)):d&&(n.e(this,d),d.bounds&&(this.tileBounds=new Ds(d.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})}loaded(){return this._loaded}onAdd(l){this.map=l,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}serialize(){return n.e({},this._options)}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);l.request=j.getImage(this.map._requestManager.transformRequest(v,Y.Tile),(b,M,O)=>{if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(b)l.state=\"errored\",d(b);else if(M){this.map._refreshExpiredTiles&&O&&l.setExpiryData(O);let B=this.map.painter.context,U=B.gl;l.texture=this.map.painter.getTileTexture(M.width),l.texture?l.texture.update(M,{useMipmap:!0}):(l.texture=new Zt(B,M,U.RGBA,{useMipmap:!0}),l.texture.bind(U.LINEAR,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST),B.extTextureFilterAnisotropic&&U.texParameterf(U.TEXTURE_2D,B.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,B.extTextureFilterAnisotropicMax)),l.state=\"loaded\",d(null)}},this.map._refreshExpiredTiles)}abortTile(l,d){l.request&&(l.request.cancel(),delete l.request),d()}unloadTile(l,d){l.texture&&this.map.painter.saveTileTexture(l.texture),d()}hasTransition(){return!1}}class Cc extends Ic{constructor(l,d,v,b){super(l,d,v,b),this.type=\"raster-dem\",this.maxzoom=22,this._options=n.e({type:\"raster-dem\"},d),this.encoding=d.encoding||\"mapbox\",this.redFactor=d.redFactor,this.greenFactor=d.greenFactor,this.blueFactor=d.blueFactor,this.baseShift=d.baseShift}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b=this.map._requestManager.transformRequest(v,Y.Tile);function M(O,B){O&&(l.state=\"errored\",d(O)),B&&(l.dem=B,l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0,l.state=\"loaded\",d(null))}l.neighboringTiles=this._getNeighboringTiles(l.tileID),l.request=j.getImage(b,(O,B,U)=>n._(this,void 0,void 0,function*(){if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(O)l.state=\"errored\",d(O);else if(B){this.map._refreshExpiredTiles&&l.setExpiryData(U);let W=n.a(B)&&n.J()?B:yield function(Q){return n._(this,void 0,void 0,function*(){if(typeof VideoFrame<\"u\"&&n.K()){let st=Q.width+2,At=Q.height+2;try{return new n.R({width:st,height:At},yield n.M(Q,-1,-1,st,At))}catch{}}return n.h.getImageData(Q,1)})}(B),Z={uid:l.uid,coord:l.tileID,source:this.id,rawImageData:W,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};l.actor&&l.state!==\"expired\"||(l.actor=this.dispatcher.getActor(),l.actor.send(\"loadDEMTile\",Z,M))}}),this.map._refreshExpiredTiles)}_getNeighboringTiles(l){let d=l.canonical,v=Math.pow(2,d.z),b=(d.x-1+v)%v,M=d.x===0?l.wrap-1:l.wrap,O=(d.x+1+v)%v,B=d.x+1===v?l.wrap+1:l.wrap,U={};return U[new n.O(l.overscaledZ,M,d.z,b,d.y).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y).key]={backfilled:!1},d.y>0&&(U[new n.O(l.overscaledZ,M,d.z,b,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,l.wrap,d.z,d.x,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y-1).key]={backfilled:!1}),d.y+1{this._updateWorkerData()},this.serialize=()=>n.e({},this._options,{type:this.type,data:this._data}),this.id=l,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=v.getActor(),this.setEventedParent(b),this._data=d.data,this._options=n.e({},d),this._collectResourceTiming=d.collectResourceTiming,d.maxzoom!==void 0&&(this.maxzoom=d.maxzoom),d.type&&(this.type=d.type),d.attribution&&(this.attribution=d.attribution),this.promoteId=d.promoteId;let M=n.N/this.tileSize;this.workerOptions=n.e({source:this.id,cluster:d.cluster||!1,geojsonVtOptions:{buffer:(d.buffer!==void 0?d.buffer:128)*M,tolerance:(d.tolerance!==void 0?d.tolerance:.375)*M,extent:n.N,maxZoom:this.maxzoom,lineMetrics:d.lineMetrics||!1,generateId:d.generateId||!1},superclusterOptions:{maxZoom:d.clusterMaxZoom!==void 0?d.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,d.clusterMinPoints||2),extent:n.N,radius:(d.clusterRadius||50)*M,log:!1,generateId:d.generateId||!1},clusterProperties:d.clusterProperties,filter:d.filter},d.workerOptions),typeof this.promoteId==\"string\"&&(this.workerOptions.promoteId=this.promoteId)}onAdd(l){this.map=l,this.load()}setData(l){return this._data=l,this._updateWorkerData(),this}updateData(l){return this._updateWorkerData(l),this}setClusterOptions(l){return this.workerOptions.cluster=l.cluster,l&&(l.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=l.clusterRadius),l.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=l.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(l,d){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:l,source:this.id},d),this}getClusterChildren(l,d){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:l,source:this.id},d),this}getClusterLeaves(l,d,v,b){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,clusterId:l,limit:d,offset:v},b),this}_updateWorkerData(l){let d=n.e({},this.workerOptions);l?d.dataDiff=l:typeof this._data==\"string\"?(d.request=this.map._requestManager.transformRequest(n.h.resolveURL(this._data),Y.Source),d.request.collectResourceTiming=this._collectResourceTiming):d.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.actor.send(`${this.type}.loadData`,d,(v,b)=>{if(this._pendingLoads--,this._removed||b&&b.abandoned)return void this.fire(new n.k(\"dataabort\",{dataType:\"source\"}));let M=null;if(b&&b.resourceTiming&&b.resourceTiming[this.id]&&(M=b.resourceTiming[this.id].slice(0)),v)return void this.fire(new n.j(v));let O={dataType:\"source\"};this._collectResourceTiming&&M&&M.length>0&&n.e(O,{resourceTiming:M}),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"metadata\"}))),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"content\"})))})}loaded(){return this._pendingLoads===0}loadTile(l,d){let v=l.actor?\"reloadTile\":\"loadTile\";l.actor=this.actor;let b={type:this.type,uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};l.request=this.actor.send(v,b,(M,O)=>(delete l.request,l.unloadVectorData(),l.aborted?d(null):M?d(M):(l.loadVectorData(O,this.map.painter,v===\"reloadTile\"),d(null))))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.aborted=!0}unloadTile(l){l.unloadVectorData(),this.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id})}onRemove(){this._removed=!0,this.actor.send(\"removeSource\",{type:this.type,source:this.id})}hasTransition(){return!1}}var $n=n.Q([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class Ii extends n.E{constructor(l,d,v,b){super(),this.load=(M,O)=>{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,this._request=j.getImage(this.map._requestManager.transformRequest(this.url,Y.Image),(B,U)=>{this._request=null,this._loaded=!0,B?this.fire(new n.j(B)):U&&(this.image=U,M&&(this.coordinates=M),O&&O(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||!this.image)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture||(this.texture=new Zt(M,this.image,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"image\",url:this.options.url,coordinates:this.coordinates}),this.id=l,this.dispatcher=v,this.coordinates=d.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(b),this.options=d}loaded(){return this._loaded}updateImage(l){return l.url?(this._request&&(this._request.cancel(),this._request=null),this.options.url=l.url,this.load(l.coordinates,()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})))}onAdd(l){this.map=l,this.load()}onRemove(){this._request&&(this._request.cancel(),this._request=null)}setCoordinates(l){this.coordinates=l;let d=l.map(n.U.fromLngLat);this.tileID=function(b){let M=1/0,O=1/0,B=-1/0,U=-1/0;for(let st of b)M=Math.min(M,st.x),O=Math.min(O,st.y),B=Math.max(B,st.x),U=Math.max(U,st.y);let W=Math.max(B-M,U-O),Z=Math.max(0,Math.floor(-Math.log(W)/Math.LN2)),Q=Math.pow(2,Z);return new n.W(Z,Math.floor((M+B)/2*Q),Math.floor((O+U)/2*Q))}(d),this.minzoom=this.maxzoom=this.tileID.z;let v=d.map(b=>this.tileID.getTilePoint(b)._round());return this._boundsArray=new n.V,this._boundsArray.emplaceBack(v[0].x,v[0].y,0,0),this._boundsArray.emplaceBack(v[1].x,v[1].y,n.N,0),this._boundsArray.emplaceBack(v[3].x,v[3].y,0,n.N),this._boundsArray.emplaceBack(v[2].x,v[2].y,n.N,n.N),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}loadTile(l,d){this.tileID&&this.tileID.equals(l.tileID.canonical)?(this.tiles[String(l.tileID.wrap)]=l,l.buckets={},d(null)):(l.state=\"errored\",d(null))}hasTransition(){return!1}}class Xn extends Ii{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!1;let M=this.options;this.urls=[];for(let O of M.urls)this.urls.push(this.map._requestManager.transformRequest(O,Y.Source).url);n.X(this.urls,(O,B)=>{this._loaded=!0,O?this.fire(new n.j(O)):B&&(this.video=B,this.video.loop=!0,this.video.addEventListener(\"playing\",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE),O.texSubImage2D(O.TEXTURE_2D,0,0,0,O.RGBA,O.UNSIGNED_BYTE,this.video)):(this.texture=new Zt(M,this.video,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"video\",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type=\"video\",this.options=d}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(l){if(this.video){let d=this.video.seekable;ld.end(0)?this.fire(new n.j(new n.Y(`sources.${this.id}`,null,`Playback for this video can be set only between the ${d.start(0)} and ${d.end(0)}-second mark.`))):this.video.currentTime=l}}getVideo(){return this.video}onAdd(l){this.map||(this.map=l,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}hasTransition(){return this.video&&!this.video.paused}}class No extends Ii{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new n.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},this.prepare=()=>{let M=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,M=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,M=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let O=this.map.painter.context,B=O.gl;this.boundsBuffer||(this.boundsBuffer=O.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?(M||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new Zt(O,this.canvas,B.RGBA,{premultiply:!0});let U=!1;for(let W in this.tiles){let Z=this.tiles[W];Z.state!==\"loaded\"&&(Z.state=\"loaded\",Z.texture=this.texture,U=!0)}U&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"canvas\",coordinates:this.coordinates}),d.coordinates?Array.isArray(d.coordinates)&&d.coordinates.length===4&&!d.coordinates.some(M=>!Array.isArray(M)||M.length!==2||M.some(O=>typeof O!=\"number\"))||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"coordinates\"'))),d.animate&&typeof d.animate!=\"boolean\"&&this.fire(new n.j(new n.Y(`sources.${l}`,null,'optional \"animate\" property must be a boolean value'))),d.canvas?typeof d.canvas==\"string\"||d.canvas instanceof HTMLCanvasElement||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"canvas\"'))),this.options=d,this.animate=d.animate===void 0||d.animate}getCanvas(){return this.canvas}onAdd(l){this.map=l,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let l of[this.canvas.width,this.canvas.height])if(isNaN(l)||l<=0)return!0;return!1}}let ol={},fo=T=>{switch(T){case\"geojson\":return Zi;case\"image\":return Ii;case\"raster\":return Ic;case\"raster-dem\":return Cc;case\"vector\":return sl;case\"video\":return Xn;case\"canvas\":return No}return ol[T]};function Ea(T,l){let d=n.Z();return n.$(d,d,[1,1,0]),n.a0(d,d,[.5*T.width,.5*T.height,1]),n.a1(d,d,T.calculatePosMatrix(l.toUnwrapped()))}function na(T,l,d,v,b,M){let O=function(Q,st,At){if(Q)for(let pt of Q){let yt=st[pt];if(yt&&yt.source===At&&yt.type===\"fill-extrusion\")return!0}else for(let pt in st){let yt=st[pt];if(yt.source===At&&yt.type===\"fill-extrusion\")return!0}return!1}(b&&b.layers,l,T.id),B=M.maxPitchScaleFactor(),U=T.tilesIn(v,B,O);U.sort(ss);let W=[];for(let Q of U)W.push({wrappedTileID:Q.tileID.wrapped().key,queryResults:Q.tile.queryRenderedFeatures(l,d,T._state,Q.queryGeometry,Q.cameraQueryGeometry,Q.scale,b,M,B,Ea(T.transform,Q.tileID))});let Z=function(Q){let st={},At={};for(let pt of Q){let yt=pt.queryResults,dt=pt.wrappedTileID,Ft=At[dt]=At[dt]||{};for(let Wt in yt){let St=yt[Wt],Bt=Ft[Wt]=Ft[Wt]||{},Yt=st[Wt]=st[Wt]||[];for(let Qt of St)Bt[Qt.featureIndex]||(Bt[Qt.featureIndex]=!0,Yt.push(Qt))}}return st}(W);for(let Q in Z)Z[Q].forEach(st=>{let At=st.feature,pt=T.getFeatureState(At.layer[\"source-layer\"],At.id);At.source=At.layer.source,At.layer[\"source-layer\"]&&(At.sourceLayer=At.layer[\"source-layer\"]),At.state=pt});return Z}function ss(T,l){let d=T.tileID,v=l.tileID;return d.overscaledZ-v.overscaledZ||d.canonical.y-v.canonical.y||d.wrap-v.wrap||d.canonical.x-v.canonical.x}class to{constructor(l,d){this.timeAdded=0,this.fadeEndTime=0,this.tileID=l,this.uid=n.a2(),this.uses=0,this.tileSize=d,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state=\"loading\"}registerFadeDuration(l){let d=l+this.timeAdded;dM.getLayer(W)).filter(Boolean);if(U.length!==0){B.layers=U,B.stateDependentLayerIds&&(B.stateDependentLayers=B.stateDependentLayerIds.map(W=>U.filter(Z=>Z.id===W)[0]));for(let W of U)O[W.id]=B}}return O}(l.buckets,d.style),this.hasSymbolBuckets=!1;for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4){if(this.hasSymbolBuckets=!0,!v)break;M.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4&&M.hasRTLText){this.hasRTLText=!0,n.a5();break}}this.queryPadding=0;for(let b in this.buckets){let M=this.buckets[b];this.queryPadding=Math.max(this.queryPadding,d.style.getLayer(b).queryRadius(M))}l.imageAtlas&&(this.imageAtlas=l.imageAtlas),l.glyphAtlasImage&&(this.glyphAtlasImage=l.glyphAtlasImage)}else this.collisionBoxArray=new n.a3}unloadVectorData(){for(let l in this.buckets)this.buckets[l].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\"}getBucket(l){return this.buckets[l.id]}upload(l){for(let v in this.buckets){let b=this.buckets[v];b.uploadPending()&&b.upload(l)}let d=l.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Zt(l,this.imageAtlas.image,d.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Zt(l,this.glyphAtlasImage,d.ALPHA),this.glyphAtlasImage=null)}prepare(l){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(l,this.imageAtlasTexture)}queryRenderedFeatures(l,d,v,b,M,O,B,U,W,Z){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:b,cameraQueryGeometry:M,scale:O,tileSize:this.tileSize,pixelPosMatrix:Z,transform:U,params:B,queryPadding:this.queryPadding*W},l,d,v):{}}querySourceFeatures(l,d){let v=this.latestFeatureIndex;if(!v||!v.rawTileData)return;let b=v.loadVTLayers(),M=d&&d.sourceLayer?d.sourceLayer:\"\",O=b._geojsonTileLayer||b[M];if(!O)return;let B=n.a6(d&&d.filter),{z:U,x:W,y:Z}=this.tileID.canonical,Q={z:U,x:W,y:Z};for(let st=0;stv)b=!1;else if(d)if(this.expirationTime{this.remove(l,M)},v)),this.data[b].push(M),this.order.push(b),this.order.length>this.max){let O=this._getAndRemoveByKey(this.order[0]);O&&this.onRemove(O)}return this}has(l){return l.wrapped().key in this.data}getAndRemove(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null}_getAndRemoveByKey(l){let d=this.data[l].shift();return d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),d.value}getByKey(l){let d=this.data[l];return d?d[0].value:null}get(l){return this.has(l)?this.data[l.wrapped().key][0].value:null}remove(l,d){if(!this.has(l))return this;let v=l.wrapped().key,b=d===void 0?0:this.data[v].indexOf(d),M=this.data[v][b];return this.data[v].splice(b,1),M.timeout&&clearTimeout(M.timeout),this.data[v].length===0&&delete this.data[v],this.onRemove(M.value),this.order.splice(this.order.indexOf(v),1),this}setMaxSize(l){for(this.max=l;this.order.length>this.max;){let d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this}filter(l){let d=[];for(let v in this.data)for(let b of this.data[v])l(b.value)||d.push(b);for(let v of d)this.remove(v.value.tileID,v)}}class te{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(l,d,v){let b=String(d);if(this.stateChanges[l]=this.stateChanges[l]||{},this.stateChanges[l][b]=this.stateChanges[l][b]||{},n.e(this.stateChanges[l][b],v),this.deletedStates[l]===null){this.deletedStates[l]={};for(let M in this.state[l])M!==b&&(this.deletedStates[l][M]=null)}else if(this.deletedStates[l]&&this.deletedStates[l][b]===null){this.deletedStates[l][b]={};for(let M in this.state[l][b])v[M]||(this.deletedStates[l][b][M]=null)}else for(let M in v)this.deletedStates[l]&&this.deletedStates[l][b]&&this.deletedStates[l][b][M]===null&&delete this.deletedStates[l][b][M]}removeFeatureState(l,d,v){if(this.deletedStates[l]===null)return;let b=String(d);if(this.deletedStates[l]=this.deletedStates[l]||{},v&&d!==void 0)this.deletedStates[l][b]!==null&&(this.deletedStates[l][b]=this.deletedStates[l][b]||{},this.deletedStates[l][b][v]=null);else if(d!==void 0)if(this.stateChanges[l]&&this.stateChanges[l][b])for(v in this.deletedStates[l][b]={},this.stateChanges[l][b])this.deletedStates[l][b][v]=null;else this.deletedStates[l][b]=null;else this.deletedStates[l]=null}getState(l,d){let v=String(d),b=n.e({},(this.state[l]||{})[v],(this.stateChanges[l]||{})[v]);if(this.deletedStates[l]===null)return{};if(this.deletedStates[l]){let M=this.deletedStates[l][d];if(M===null)return{};for(let O in M)delete b[O]}return b}initializeTileState(l,d){l.setFeatureState(this.state,d)}coalesceChanges(l,d){let v={};for(let b in this.stateChanges){this.state[b]=this.state[b]||{};let M={};for(let O in this.stateChanges[b])this.state[b][O]||(this.state[b][O]={}),n.e(this.state[b][O],this.stateChanges[b][O]),M[O]=this.state[b][O];v[b]=M}for(let b in this.deletedStates){this.state[b]=this.state[b]||{};let M={};if(this.deletedStates[b]===null)for(let O in this.state[b])M[O]={},this.state[b][O]={};else for(let O in this.deletedStates[b]){if(this.deletedStates[b][O]===null)this.state[b][O]={};else for(let B of Object.keys(this.deletedStates[b][O]))delete this.state[b][O][B];M[O]=this.state[b][O]}v[b]=v[b]||{},n.e(v[b],M)}if(this.stateChanges={},this.deletedStates={},Object.keys(v).length!==0)for(let b in l)l[b].setFeatureState(v,d)}}class os extends n.E{constructor(l,d,v){super(),this.id=l,this.dispatcher=v,this.on(\"data\",b=>{b.dataType===\"source\"&&b.sourceDataType===\"metadata\"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&b.dataType===\"source\"&&b.sourceDataType===\"content\"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on(\"dataloading\",()=>{this._sourceErrored=!1}),this.on(\"error\",()=>{this._sourceErrored=this._source.loaded()}),this._source=((b,M,O,B)=>{let U=new(fo(M.type))(b,M,O,B);if(U.id!==b)throw new Error(`Expected Source id to be ${b} instead of ${U.id}`);return U})(l,d,v,this),this._tiles={},this._cache=new Ol(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new te,this._didEmitContent=!1,this._updated=!1}onAdd(l){this.map=l,this._maxTileCacheSize=l?l._maxTileCacheSize:null,this._maxTileCacheZoomLevels=l?l._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(l)}onRemove(l){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(l)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(let l in this._tiles){let d=this._tiles[l];if(d.state!==\"loaded\"&&d.state!==\"errored\")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let l=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,l&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(l,d){return this._source.loadTile(l,d)}_unloadTile(l){if(this._source.unloadTile)return this._source.unloadTile(l,()=>{})}_abortTile(l){this._source.abortTile&&this._source.abortTile(l,()=>{}),this._source.fire(new n.k(\"dataabort\",{tile:l,coord:l.tileID,dataType:\"source\"}))}serialize(){return this._source.serialize()}prepare(l){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(let d in this._tiles){let v=this._tiles[d];v.upload(l),v.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(l=>l.tileID).sort(fn).map(l=>l.key)}getRenderableIds(l){let d=[];for(let v in this._tiles)this._isIdRenderable(v,l)&&d.push(this._tiles[v]);return l?d.sort((v,b)=>{let M=v.tileID,O=b.tileID,B=new n.P(M.canonical.x,M.canonical.y)._rotate(this.transform.angle),U=new n.P(O.canonical.x,O.canonical.y)._rotate(this.transform.angle);return M.overscaledZ-O.overscaledZ||U.y-B.y||U.x-B.x}).map(v=>v.tileID.key):d.map(v=>v.tileID).sort(fn).map(v=>v.key)}hasRenderableParent(l){let d=this.findLoadedParent(l,0);return!!d&&this._isIdRenderable(d.tileID.key)}_isIdRenderable(l,d){return this._tiles[l]&&this._tiles[l].hasData()&&!this._coveredTiles[l]&&(d||!this._tiles[l].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let l in this._tiles)this._tiles[l].state!==\"errored\"&&this._reloadTile(l,\"reloading\")}}_reloadTile(l,d){let v=this._tiles[l];v&&(v.state!==\"loading\"&&(v.state=d),this._loadTile(v,this._tileLoaded.bind(this,v,l,d)))}_tileLoaded(l,d,v,b){if(b)return l.state=\"errored\",void(b.status!==404?this._source.fire(new n.j(b,{tile:l})):this.update(this.transform,this.terrain));l.timeAdded=n.h.now(),v===\"expired\"&&(l.refreshedUponExpiration=!0),this._setTileReloadTimer(d,l),this.getSource().type===\"raster-dem\"&&l.dem&&this._backfillDEM(l),this._state.initializeTileState(l,this.map?this.map.painter:null),l.aborted||this._source.fire(new n.k(\"data\",{dataType:\"source\",tile:l,coord:l.tileID}))}_backfillDEM(l){let d=this.getRenderableIds();for(let b=0;b1||(Math.abs(O)>1&&(Math.abs(O+U)===1?O+=U:Math.abs(O-U)===1&&(O-=U)),M.dem&&b.dem&&(b.dem.backfillBorder(M.dem,O,B),b.neighboringTiles&&b.neighboringTiles[W]&&(b.neighboringTiles[W].backfilled=!0)))}}getTile(l){return this.getTileByID(l.key)}getTileByID(l){return this._tiles[l]}_retainLoadedChildren(l,d,v,b){for(let M in this._tiles){let O=this._tiles[M];if(b[M]||!O.hasData()||O.tileID.overscaledZ<=d||O.tileID.overscaledZ>v)continue;let B=O.tileID;for(;O&&O.tileID.overscaledZ>d+1;){let W=O.tileID.scaledTo(O.tileID.overscaledZ-1);O=this._tiles[W.key],O&&O.hasData()&&(B=W)}let U=B;for(;U.overscaledZ>d;)if(U=U.scaledTo(U.overscaledZ-1),l[U.key]){b[B.key]=B;break}}}findLoadedParent(l,d){if(l.key in this._loadedParentTiles){let v=this._loadedParentTiles[l.key];return v&&v.tileID.overscaledZ>=d?v:null}for(let v=l.overscaledZ-1;v>=d;v--){let b=l.scaledTo(v),M=this._getLoadedTile(b);if(M)return M}}_getLoadedTile(l){let d=this._tiles[l.key];return d&&d.hasData()?d:this._cache.getByKey(l.wrapped().key)}updateCacheSize(l){let d=Math.ceil(l.width/this._source.tileSize)+1,v=Math.ceil(l.height/this._source.tileSize)+1,b=Math.floor(d*v*(this._maxTileCacheZoomLevels===null?n.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),M=typeof this._maxTileCacheSize==\"number\"?Math.min(this._maxTileCacheSize,b):b;this._cache.setMaxSize(M)}handleWrapJump(l){let d=Math.round((l-(this._prevLng===void 0?l:this._prevLng))/360);if(this._prevLng=l,d){let v={};for(let b in this._tiles){let M=this._tiles[b];M.tileID=M.tileID.unwrapTo(M.tileID.wrap+d),v[M.tileID.key]=M}this._tiles=v;for(let b in this._timers)clearTimeout(this._timers[b]),delete this._timers[b];for(let b in this._tiles)this._setTileReloadTimer(b,this._tiles[b])}}update(l,d){if(this.transform=l,this.terrain=d,!this._sourceLoaded||this._paused)return;let v;this.updateCacheSize(l),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?v=l.getVisibleUnwrappedCoordinates(this._source.tileID).map(Z=>new n.O(Z.canonical.z,Z.wrap,Z.canonical.z,Z.canonical.x,Z.canonical.y)):(v=l.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:d}),this._source.hasTile&&(v=v.filter(Z=>this._source.hasTile(Z)))):v=[];let b=l.coveringZoomLevel(this._source),M=Math.max(b-os.maxOverzooming,this._source.minzoom),O=Math.max(b+os.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){let Z={};for(let Q of v)if(Q.canonical.z>this._source.minzoom){let st=Q.scaledTo(Q.canonical.z-1);Z[st.key]=st;let At=Q.scaledTo(Math.max(this._source.minzoom,Math.min(Q.canonical.z,5)));Z[At.key]=At}v=v.concat(Object.values(Z))}let B=v.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,B&&this.fire(new n.k(\"data\",{sourceDataType:\"idle\",dataType:\"source\",sourceId:this.id}));let U=this._updateRetainedTiles(v,b);if(gi(this._source.type)){let Z={},Q={},st=Object.keys(U),At=n.h.now();for(let pt of st){let yt=U[pt],dt=this._tiles[pt];if(!dt||dt.fadeEndTime!==0&&dt.fadeEndTime<=At)continue;let Ft=this.findLoadedParent(yt,M);Ft&&(this._addTile(Ft.tileID),Z[Ft.tileID.key]=Ft.tileID),Q[pt]=yt}this._retainLoadedChildren(Q,b,O,U);for(let pt in Z)U[pt]||(this._coveredTiles[pt]=!0,U[pt]=Z[pt]);if(d){let pt={},yt={};for(let dt of v)this._tiles[dt.key].hasData()?pt[dt.key]=dt:yt[dt.key]=dt;for(let dt in yt){let Ft=yt[dt].children(this._source.maxzoom);this._tiles[Ft[0].key]&&this._tiles[Ft[1].key]&&this._tiles[Ft[2].key]&&this._tiles[Ft[3].key]&&(pt[Ft[0].key]=U[Ft[0].key]=Ft[0],pt[Ft[1].key]=U[Ft[1].key]=Ft[1],pt[Ft[2].key]=U[Ft[2].key]=Ft[2],pt[Ft[3].key]=U[Ft[3].key]=Ft[3],delete yt[dt])}for(let dt in yt){let Ft=this.findLoadedParent(yt[dt],this._source.minzoom);if(Ft){pt[Ft.tileID.key]=U[Ft.tileID.key]=Ft.tileID;for(let Wt in pt)pt[Wt].isChildOf(Ft.tileID)&&delete pt[Wt]}}for(let dt in this._tiles)pt[dt]||(this._coveredTiles[dt]=!0)}}for(let Z in U)this._tiles[Z].clearFadeHold();let W=n.ab(this._tiles,U);for(let Z of W){let Q=this._tiles[Z];Q.hasSymbolBuckets&&!Q.holdingForFade()?Q.setHoldDuration(this.map._fadeDuration):Q.hasSymbolBuckets&&!Q.symbolFadeFinished()||this._removeTile(Z)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(let l in this._tiles)this._tiles[l].holdingForFade()&&this._removeTile(l)}_updateRetainedTiles(l,d){let v={},b={},M=Math.max(d-os.maxOverzooming,this._source.minzoom),O=Math.max(d+os.maxUnderzooming,this._source.minzoom),B={};for(let U of l){let W=this._addTile(U);v[U.key]=U,W.hasData()||dthis._source.maxzoom){let Q=U.children(this._source.maxzoom)[0],st=this.getTile(Q);if(st&&st.hasData()){v[Q.key]=Q;continue}}else{let Q=U.children(this._source.maxzoom);if(v[Q[0].key]&&v[Q[1].key]&&v[Q[2].key]&&v[Q[3].key])continue}let Z=W.wasRequested();for(let Q=U.overscaledZ-1;Q>=M;--Q){let st=U.scaledTo(Q);if(b[st.key])break;if(b[st.key]=!0,W=this.getTile(st),!W&&Z&&(W=this._addTile(st)),W){let At=W.hasData();if((Z||At)&&(v[st.key]=st),Z=W.wasRequested(),At)break}}}return v}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let l in this._tiles){let d=[],v,b=this._tiles[l].tileID;for(;b.overscaledZ>0;){if(b.key in this._loadedParentTiles){v=this._loadedParentTiles[b.key];break}d.push(b.key);let M=b.scaledTo(b.overscaledZ-1);if(v=this._getLoadedTile(M),v)break;b=M}for(let M of d)this._loadedParentTiles[M]=v}}_addTile(l){let d=this._tiles[l.key];if(d)return d;d=this._cache.getAndRemove(l),d&&(this._setTileReloadTimer(l.key,d),d.tileID=l,this._state.initializeTileState(d,this.map?this.map.painter:null),this._cacheTimers[l.key]&&(clearTimeout(this._cacheTimers[l.key]),delete this._cacheTimers[l.key],this._setTileReloadTimer(l.key,d)));let v=d;return d||(d=new to(l,this._source.tileSize*l.overscaleFactor()),this._loadTile(d,this._tileLoaded.bind(this,d,l.key,d.state))),d.uses++,this._tiles[l.key]=d,v||this._source.fire(new n.k(\"dataloading\",{tile:d,coord:d.tileID,dataType:\"source\"})),d}_setTileReloadTimer(l,d){l in this._timers&&(clearTimeout(this._timers[l]),delete this._timers[l]);let v=d.getExpiryTimeout();v&&(this._timers[l]=setTimeout(()=>{this._reloadTile(l,\"expired\"),delete this._timers[l]},v))}_removeTile(l){let d=this._tiles[l];d&&(d.uses--,delete this._tiles[l],this._timers[l]&&(clearTimeout(this._timers[l]),delete this._timers[l]),d.uses>0||(d.hasData()&&d.state!==\"reloading\"?this._cache.add(d.tileID,d,d.getExpiryTimeout()):(d.aborted=!0,this._abortTile(d),this._unloadTile(d))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let l in this._tiles)this._removeTile(l);this._cache.reset()}tilesIn(l,d,v){let b=[],M=this.transform;if(!M)return b;let O=v?M.getCameraQueryGeometry(l):l,B=l.map(pt=>M.pointCoordinate(pt,this.terrain)),U=O.map(pt=>M.pointCoordinate(pt,this.terrain)),W=this.getIds(),Z=1/0,Q=1/0,st=-1/0,At=-1/0;for(let pt of U)Z=Math.min(Z,pt.x),Q=Math.min(Q,pt.y),st=Math.max(st,pt.x),At=Math.max(At,pt.y);for(let pt=0;pt=0&&St[1].y+Wt>=0){let Bt=B.map(Qt=>dt.getTilePoint(Qt)),Yt=U.map(Qt=>dt.getTilePoint(Qt));b.push({tile:yt,tileID:dt,queryGeometry:Bt,cameraQueryGeometry:Yt,scale:Ft})}}return b}getVisibleCoordinates(l){let d=this.getRenderableIds(l).map(v=>this._tiles[v].tileID);for(let v of d)v.posMatrix=this.transform.calculatePosMatrix(v.toUnwrapped());return d}hasTransition(){if(this._source.hasTransition())return!0;if(gi(this._source.type)){let l=n.h.now();for(let d in this._tiles)if(this._tiles[d].fadeEndTime>=l)return!0}return!1}setFeatureState(l,d,v){this._state.updateState(l=l||\"_geojsonTileLayer\",d,v)}removeFeatureState(l,d,v){this._state.removeFeatureState(l=l||\"_geojsonTileLayer\",d,v)}getFeatureState(l,d){return this._state.getState(l=l||\"_geojsonTileLayer\",d)}setDependencies(l,d,v){let b=this._tiles[l];b&&b.setDependencies(d,v)}reloadTilesForDependencies(l,d){for(let v in this._tiles)this._tiles[v].hasDependency(l,d)&&this._reloadTile(v,\"reloading\");this._cache.filter(v=>!v.hasDependency(l,d))}}function fn(T,l){let d=Math.abs(2*T.wrap)-+(T.wrap<0),v=Math.abs(2*l.wrap)-+(l.wrap<0);return T.overscaledZ-l.overscaledZ||v-d||l.canonical.y-T.canonical.y||l.canonical.x-T.canonical.x}function gi(T){return T===\"raster\"||T===\"image\"||T===\"video\"}os.maxOverzooming=10,os.maxUnderzooming=3;let oi=\"mapboxgl_preloaded_worker_pool\";class eo{constructor(){this.active={}}acquire(l){if(!this.workers)for(this.workers=[];this.workers.length{d.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[oi]}numActive(){return Object.keys(this.active).length}}let uu=Math.floor(n.h.hardwareConcurrency/2),al;function po(){return al||(al=new eo),al}eo.workerCount=n.ac(globalThis)?Math.max(Math.min(uu,3),1):1;class ll{constructor(l,d){this.reset(l,d)}reset(l,d){this.points=l||[],this._distances=[0];for(let v=1;v0?(b-O)/B:0;return this.points[M].mult(1-U).add(this.points[d].mult(U))}}function Pa(T,l){let d=!0;return T===\"always\"||T!==\"never\"&&l!==\"never\"||(d=!1),d}class Ao{constructor(l,d,v){let b=this.boxCells=[],M=this.circleCells=[];this.xCellCount=Math.ceil(l/v),this.yCellCount=Math.ceil(d/v);for(let O=0;Othis.width||b<0||d>this.height)return[];let U=[];if(l<=0&&d<=0&&this.width<=v&&this.height<=b){if(M)return[{key:null,x1:l,y1:d,x2:v,y2:b}];for(let W=0;W0}hitTestCircle(l,d,v,b,M){let O=l-v,B=l+v,U=d-v,W=d+v;if(B<0||O>this.width||W<0||U>this.height)return!1;let Z=[];return this._forEachCell(O,U,B,W,this._queryCellCircle,Z,{hitTest:!0,overlapMode:b,circle:{x:l,y:d,radius:v},seenUids:{box:{},circle:{}}},M),Z.length>0}_queryCell(l,d,v,b,M,O,B,U){let{seenUids:W,hitTest:Z,overlapMode:Q}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!W.box[yt]){W.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(l<=pt[dt+2]&&d<=pt[dt+3]&&v>=pt[dt+0]&&b>=pt[dt+1]&&(!U||U(Ft))&&(!Z||!Pa(Q,Ft.overlapMode))&&(O.push({key:Ft,x1:pt[dt],y1:pt[dt+1],x2:pt[dt+2],y2:pt[dt+3]}),Z))return!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!W.circle[yt]){W.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circleAndRectCollide(pt[dt],pt[dt+1],pt[dt+2],l,d,v,b)&&(!U||U(Ft))&&(!Z||!Pa(Q,Ft.overlapMode))){let Wt=pt[dt],St=pt[dt+1],Bt=pt[dt+2];if(O.push({key:Ft,x1:Wt-Bt,y1:St-Bt,x2:Wt+Bt,y2:St+Bt}),Z)return!0}}}return!1}_queryCellCircle(l,d,v,b,M,O,B,U){let{circle:W,seenUids:Z,overlapMode:Q}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!Z.box[yt]){Z.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(this._circleAndRectCollide(W.x,W.y,W.radius,pt[dt+0],pt[dt+1],pt[dt+2],pt[dt+3])&&(!U||U(Ft))&&!Pa(Q,Ft.overlapMode))return O.push(!0),!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!Z.circle[yt]){Z.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circlesCollide(pt[dt],pt[dt+1],pt[dt+2],W.x,W.y,W.radius)&&(!U||U(Ft))&&!Pa(Q,Ft.overlapMode))return O.push(!0),!0}}}_forEachCell(l,d,v,b,M,O,B,U){let W=this._convertToXCellCoord(l),Z=this._convertToYCellCoord(d),Q=this._convertToXCellCoord(v),st=this._convertToYCellCoord(b);for(let At=W;At<=Q;At++)for(let pt=Z;pt<=st;pt++)if(M.call(this,l,d,v,b,this.xCellCount*pt+At,O,B,U))return}_convertToXCellCoord(l){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(l*this.xScale)))}_convertToYCellCoord(l){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(l*this.yScale)))}_circlesCollide(l,d,v,b,M,O){let B=b-l,U=M-d,W=v+O;return W*W>B*B+U*U}_circleAndRectCollide(l,d,v,b,M,O,B){let U=(O-b)/2,W=Math.abs(l-(b+U));if(W>U+v)return!1;let Z=(B-M)/2,Q=Math.abs(d-(M+Z));if(Q>Z+v)return!1;if(W<=U||Q<=Z)return!0;let st=W-U,At=Q-Z;return st*st+At*At<=v*v}}function ve(T,l,d,v,b){let M=n.Z();return l?(n.a0(M,M,[1/b,1/b,1]),d||n.ae(M,M,v.angle)):n.a1(M,v.labelPlaneMatrix,T),M}function Uo(T,l,d,v,b){if(l){let M=n.af(T);return n.a0(M,M,[b,b,1]),d||n.ae(M,M,-v.angle),M}return v.glCoordMatrix}function dn(T,l,d){let v;d?(v=[T.x,T.y,d(T.x,T.y),1],n.ag(v,v,l)):(v=[T.x,T.y,0,1],vt(v,v,l));let b=v[3];return{point:new n.P(v[0]/b,v[1]/b),signedDistanceFromCamera:b}}function Bl(T,l){return .5+T/l*.5}function Ia(T,l){let d=T[0]/T[3],v=T[1]/T[3];return d>=-l[0]&&d<=l[0]&&v>=-l[1]&&v<=l[1]}function Se(T,l,d,v,b,M,O,B,U,W){let Z=v?T.textSizeData:T.iconSizeData,Q=n.ah(Z,d.transform.zoom),st=[256/d.width*2+1,256/d.height*2+1],At=v?T.text.dynamicLayoutVertexArray:T.icon.dynamicLayoutVertexArray;At.clear();let pt=T.lineVertexArray,yt=v?T.text.placedSymbolArray:T.icon.placedSymbolArray,dt=d.transform.width/d.transform.height,Ft=!1;for(let Wt=0;WtMath.abs(d.x-l.x)*v?{useVertical:!0}:(T===n.ai.vertical?l.yd.x)?{needsFlipping:!0}:null}function Os(T,l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt){let dt=l/24,Ft=T.lineOffsetX*dt,Wt=T.lineOffsetY*dt,St;if(T.numGlyphs>1){let Bt=T.glyphStartIndex+T.numGlyphs,Yt=T.lineStartIndex,Qt=T.lineStartIndex+T.lineLength,se=Dr(dt,B,Ft,Wt,d,Z,Q,T,U,M,st,pt,yt);if(!se)return{notEnoughRoom:!0};let pe=dn(se.first.point,O,yt).point,he=dn(se.last.point,O,yt).point;if(v&&!d){let xe=mr(T.writingMode,pe,he,At);if(xe)return xe}St=[se.first];for(let xe=T.glyphStartIndex+1;xe0?pe.point:Ca(Q,se,Yt,1,b,yt),xe=mr(T.writingMode,Yt,he,At);if(xe)return xe}let Bt=J(dt*B.getoffsetX(T.glyphStartIndex),Ft,Wt,d,Z,Q,T.segment,T.lineStartIndex,T.lineStartIndex+T.lineLength,U,M,st,pt,yt);if(!Bt)return{notEnoughRoom:!0};St=[Bt]}for(let Bt of St)n.ak(W,Bt.point,Bt.angle);return{}}function Ca(T,l,d,v,b,M){let O=dn(T.add(T.sub(l)._unit()),b,M).point,B=d.sub(O);return d.add(B._mult(v/B.mag()))}function Tr(T,l){let{projectionCache:d,lineVertexArray:v,labelPlaneMatrix:b,tileAnchorPoint:M,distanceFromAnchor:O,getElevation:B,previousVertex:U,direction:W,absOffsetX:Z}=l;if(d.projections[T])return d.projections[T];let Q=new n.P(v.getx(T),v.gety(T)),st=dn(Q,b,B);if(st.signedDistanceFromCamera>0)return d.projections[T]=st.point,st.point;let At=T-W;return Ca(O===0?M:new n.P(v.getx(At),v.gety(At)),Q,U,Z-O+1,b,B)}function sa(T,l,d){return T._unit()._perp()._mult(l*d)}function gt(T,l,d,v,b,M,O,B){let{projectionCache:U,direction:W}=B;if(U.offsets[T])return U.offsets[T];let Z=d.add(l);if(T+W=b)return U.offsets[T]=Z,Z;let Q=Tr(T+W,B),st=sa(Q.sub(d),O,W),At=d.add(st),pt=Q.add(st);return U.offsets[T]=n.al(M,Z,At,pt)||Z,U.offsets[T]}function J(T,l,d,v,b,M,O,B,U,W,Z,Q,st,At){let pt=v?T-l:T+l,yt=pt>0?1:-1,dt=0;v&&(yt*=-1,dt=Math.PI),yt<0&&(dt+=Math.PI);let Ft,Wt,St=yt>0?B+O:B+O+1,Bt=b,Yt=b,Qt=0,se=0,pe=Math.abs(pt),he=[],xe;for(;Qt+se<=pe;){if(St+=yt,St=U)return null;Qt+=se,Yt=Bt,Wt=Ft;let Me={projectionCache:Q,lineVertexArray:W,labelPlaneMatrix:Z,tileAnchorPoint:M,distanceFromAnchor:Qt,getElevation:At,previousVertex:Yt,direction:yt,absOffsetX:pe};if(Bt=Tr(St,Me),d===0)he.push(Yt),xe=Bt.sub(Yt);else{let dr,Xe=Bt.sub(Yt);dr=Xe.mag()===0?sa(Tr(St+yt,Me).sub(Bt),d,yt):sa(Xe,d,yt),Wt||(Wt=Yt.add(dr)),Ft=gt(St,dr,Bt,B,U,Wt,d,Me),he.push(Wt),xe=Ft.sub(Wt)}se=xe.mag()}let We=xe._mult((pe-Qt)/se)._add(Wt||Yt),Kr=dt+Math.atan2(Bt.y-Yt.y,Bt.x-Yt.x);return he.push(We),{point:We,angle:st?Kr:0,path:he}}let nt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ht(T,l){for(let d=0;d=1;Vr--)Xe.push(Me.path[Vr]);for(let Vr=1;Vrdn(ei,U,pt));Xe=Vr.some(ei=>ei.signedDistanceFromCamera<=0)?[]:Vr.map(ei=>ei.point)}let Jr=[];if(Xe.length>0){let Vr=Xe[0].clone(),ei=Xe[0].clone();for(let Rn=1;Rn=xe.x&&ei.x<=We.x&&Vr.y>=xe.y&&ei.y<=We.y?[Xe]:ei.xWe.x||ei.yWe.y?[]:n.am([Xe],xe.x,xe.y,We.x,We.y)}for(let Vr of Jr){Kr.reset(Vr,.25*he);let ei=0;ei=Kr.length<=.5*he?1:Math.ceil(Kr.paddedLength/Vi)+1;for(let Rn=0;Rn=this.screenRightBoundary||bthis.screenBottomBoundary}isInsideGrid(l,d,v,b){return v>=0&&l=0&&dv.collisionGroupID===d}}return this.collisionGroups[l]}}function _r(T,l,d,v,b){let{horizontalAlign:M,verticalAlign:O}=n.au(T);return new n.P(-(M-.5)*l+v[0]*b,-(O-.5)*d+v[1]*b)}function Ye(T,l,d,v,b,M){let{x1:O,x2:B,y1:U,y2:W,anchorPointX:Z,anchorPointY:Q}=T,st=new n.P(l,d);return v&&st._rotate(b?M:-M),{x1:O+st.x,y1:U+st.y,x2:B+st.x,y2:W+st.y,anchorPointX:Z,anchorPointY:Q}}class lr{constructor(l,d,v,b,M){this.transform=l.clone(),this.terrain=d,this.collisionIndex=new _t(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=v,this.retainedQueryData={},this.collisionGroups=new ar(b),this.collisionCircleArrays={},this.prevPlacement=M,M&&(M.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(l,d,v,b){let M=v.getBucket(d),O=v.latestFeatureIndex;if(!M||!O||d.id!==M.layerIds[0])return;let B=v.collisionBoxArray,U=M.layers[0].layout,W=Math.pow(2,this.transform.zoom-v.tileID.overscaledZ),Z=v.tileSize/n.N,Q=this.transform.calculatePosMatrix(v.tileID.toUnwrapped()),st=U.get(\"text-pitch-alignment\")===\"map\",At=U.get(\"text-rotation-alignment\")===\"map\",pt=Dt(v,1,this.transform.zoom),yt=ve(Q,st,At,this.transform,pt),dt=null;if(st){let Wt=Uo(Q,st,At,this.transform,pt);dt=n.a1([],this.transform.labelPlaneMatrix,Wt)}this.retainedQueryData[M.bucketInstanceId]=new oe(M.bucketInstanceId,O,M.sourceLayerIndex,M.index,v.tileID);let Ft={bucket:M,layout:U,posMatrix:Q,textLabelPlaneMatrix:yt,labelToScreenMatrix:dt,scale:W,textPixelRatio:Z,holdingForFade:v.holdingForFade(),collisionBoxArray:B,partiallyEvaluatedTextSize:n.ah(M.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(M.sourceID)};if(b)for(let Wt of M.sortKeyRanges){let{sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Yt}=Wt;l.push({sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Yt,parameters:Ft})}else l.push({symbolInstanceStart:0,symbolInstanceEnd:M.symbolInstances.length,parameters:Ft})}attemptAnchorPlacement(l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt,dt){let Ft=n.aq[l.textAnchor],Wt=[l.textOffset0,l.textOffset1],St=_r(Ft,v,b,Wt,M),Bt=this.collisionIndex.placeCollisionBox(Ye(d,St.x,St.y,O,B,this.transform.angle),Q,U,W,Z.predicate,dt);if((!yt||this.collisionIndex.placeCollisionBox(Ye(yt,St.x,St.y,O,B,this.transform.angle),Q,U,W,Z.predicate,dt).box.length!==0)&&Bt.box.length>0){let Yt;if(this.prevPlacement&&this.prevPlacement.variableOffsets[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID].text&&(Yt=this.prevPlacement.variableOffsets[st.crossTileID].anchor),st.crossTileID===0)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[st.crossTileID]={textOffset:Wt,width:v,height:b,anchor:Ft,textBoxScale:M,prevAnchor:Yt},this.markUsedJustification(At,Ft,st,pt),At.allowVerticalPlacement&&(this.markUsedOrientation(At,pt,st),this.placedOrientations[st.crossTileID]=pt),{shift:St,placedGlyphBoxes:Bt}}}placeLayerBucketPart(l,d,v){let{bucket:b,layout:M,posMatrix:O,textLabelPlaneMatrix:B,labelToScreenMatrix:U,textPixelRatio:W,holdingForFade:Z,collisionBoxArray:Q,partiallyEvaluatedTextSize:st,collisionGroup:At}=l.parameters,pt=M.get(\"text-optional\"),yt=M.get(\"icon-optional\"),dt=n.ar(M,\"text-overlap\",\"text-allow-overlap\"),Ft=dt===\"always\",Wt=n.ar(M,\"icon-overlap\",\"icon-allow-overlap\"),St=Wt===\"always\",Bt=M.get(\"text-rotation-alignment\")===\"map\",Yt=M.get(\"text-pitch-alignment\")===\"map\",Qt=M.get(\"icon-text-fit\")!==\"none\",se=M.get(\"symbol-z-order\")===\"viewport-y\",pe=Ft&&(St||!b.hasIconData()||yt),he=St&&(Ft||!b.hasTextData()||pt);!b.collisionArrays&&Q&&b.deserializeCollisionBoxes(Q);let xe=this.retainedQueryData[b.bucketInstanceId].tileID,We=this.terrain?(Me,dr)=>this.terrain.getElevation(xe,Me,dr):null,Kr=(Me,dr)=>{var Xe,Vi;if(d[Me.crossTileID])return;if(Z)return void(this.placements[Me.crossTileID]=new re(!1,!1,!1));let Jr=!1,Vr=!1,ei=!0,Rn=null,$i={box:null,offscreen:null},zs={box:null,offscreen:null},cs=null,Dn=null,Wo=null,jr=0,jl=0,Gl=0;dr.textFeatureIndex?jr=dr.textFeatureIndex:Me.useRuntimeCollisionCircles&&(jr=Me.featureIndex),dr.verticalTextFeatureIndex&&(jl=dr.verticalTextFeatureIndex);let mu=dr.textBox;if(mu){let Ns=On=>{let us=n.ai.horizontal;if(b.allowVerticalPlacement&&!On&&this.prevPlacement){let Ho=this.prevPlacement.placedOrientations[Me.crossTileID];Ho&&(this.placedOrientations[Me.crossTileID]=Ho,us=Ho,this.markUsedOrientation(b,us,Me))}return us},Es=(On,us)=>{if(b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&dr.verticalTextBox){for(let Ho of b.writingModes)if(Ho===n.ai.vertical?($i=us(),zs=$i):$i=On(),$i&&$i.box&&$i.box.length)break}else $i=On()},yo=Me.textAnchorOffsetStartIndex,_h=Me.textAnchorOffsetEndIndex;if(_h===yo){let On=(us,Ho)=>{let pn=this.collisionIndex.placeCollisionBox(us,dt,W,O,At.predicate,We);return pn&&pn.box&&pn.box.length&&(this.markUsedOrientation(b,Ho,Me),this.placedOrientations[Me.crossTileID]=Ho),pn};Es(()=>On(mu,n.ai.horizontal),()=>{let us=dr.verticalTextBox;return b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&us?On(us,n.ai.vertical):{box:null,offscreen:null}}),Ns($i&&$i.box&&$i.box.length)}else{let On=n.aq[(Vi=(Xe=this.prevPlacement)===null||Xe===void 0?void 0:Xe.variableOffsets[Me.crossTileID])===null||Vi===void 0?void 0:Vi.anchor],us=(pn,no,Gr)=>{let Na=pn.x2-pn.x1,d_=pn.y2-pn.y1,Bd=Me.textBoxScale,oA=Qt&&Wt===\"never\"?no:null,Wl={box:[],offscreen:!1},qo=dt===\"never\"?1:2,me=\"never\";On&&qo++;for(let Le=0;Leus(mu,dr.iconBox,n.ai.horizontal),()=>{let pn=dr.verticalTextBox;return b.allowVerticalPlacement&&!($i&&$i.box&&$i.box.length)&&Me.numVerticalGlyphVertices>0&&pn?us(pn,dr.verticalIconBox,n.ai.vertical):{box:null,offscreen:null}}),$i&&(Jr=$i.box,ei=$i.offscreen);let Ho=Ns($i&&$i.box);if(!Jr&&this.prevPlacement){let pn=this.prevPlacement.variableOffsets[Me.crossTileID];pn&&(this.variableOffsets[Me.crossTileID]=pn,this.markUsedJustification(b,pn.anchor,Me,Ho))}}}if(cs=$i,Jr=cs&&cs.box&&cs.box.length>0,ei=cs&&cs.offscreen,Me.useRuntimeCollisionCircles){let Ns=b.text.placedSymbolArray.get(Me.centerJustifiedTextSymbolIndex),Es=n.aj(b.textSizeData,st,Ns),yo=M.get(\"text-padding\");Dn=this.collisionIndex.placeCollisionCircles(dt,Ns,b.lineVertexArray,b.glyphOffsetArray,Es,O,B,U,v,Yt,At.predicate,Me.collisionCircleDiameter,yo,We),Dn.circles.length&&Dn.collisionDetected&&!v&&n.w(\"Collisions detected, but collision boxes are not shown\"),Jr=Ft||Dn.circles.length>0&&!Dn.collisionDetected,ei=ei&&Dn.offscreen}if(dr.iconFeatureIndex&&(Gl=dr.iconFeatureIndex),dr.iconBox){let Ns=Es=>{let yo=Qt&&Rn?Ye(Es,Rn.x,Rn.y,Bt,Yt,this.transform.angle):Es;return this.collisionIndex.placeCollisionBox(yo,Wt,W,O,At.predicate,We)};zs&&zs.box&&zs.box.length&&dr.verticalIconBox?(Wo=Ns(dr.verticalIconBox),Vr=Wo.box.length>0):(Wo=Ns(dr.iconBox),Vr=Wo.box.length>0),ei=ei&&Wo.offscreen}let gu=pt||Me.numHorizontalGlyphVertices===0&&Me.numVerticalGlyphVertices===0,gh=yt||Me.numIconVertices===0;if(gu||gh?gh?gu||(Vr=Vr&&Jr):Jr=Vr&&Jr:Vr=Jr=Vr&&Jr,Jr&&cs&&cs.box&&this.collisionIndex.insertCollisionBox(cs.box,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,zs&&zs.box&&jl?jl:jr,At.ID),Vr&&Wo&&this.collisionIndex.insertCollisionBox(Wo.box,Wt,M.get(\"icon-ignore-placement\"),b.bucketInstanceId,Gl,At.ID),Dn&&(Jr&&this.collisionIndex.insertCollisionCircles(Dn.circles,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,jr,At.ID),v)){let Ns=b.bucketInstanceId,Es=this.collisionCircleArrays[Ns];Es===void 0&&(Es=this.collisionCircleArrays[Ns]=new ne);for(let yo=0;yo=0;--dr){let Xe=Me[dr];Kr(b.symbolInstances.get(Xe),b.collisionArrays[Xe])}}else for(let Me=l.symbolInstanceStart;Me=0&&(l.text.placedSymbolArray.get(B).crossTileID=M>=0&&B!==M?0:v.crossTileID)}markUsedOrientation(l,d,v){let b=d===n.ai.horizontal||d===n.ai.horizontalOnly?d:0,M=d===n.ai.vertical?d:0,O=[v.leftJustifiedTextSymbolIndex,v.centerJustifiedTextSymbolIndex,v.rightJustifiedTextSymbolIndex];for(let B of O)l.text.placedSymbolArray.get(B).placedOrientation=b;v.verticalPlacedTextSymbolIndex&&(l.text.placedSymbolArray.get(v.verticalPlacedTextSymbolIndex).placedOrientation=M)}commit(l){this.commitTime=l,this.zoomAtLastRecencyCheck=this.transform.zoom;let d=this.prevPlacement,v=!1;this.prevZoomAdjustment=d?d.zoomAdjustment(this.transform.zoom):0;let b=d?d.symbolFadeChange(l):1,M=d?d.opacities:{},O=d?d.variableOffsets:{},B=d?d.placedOrientations:{};for(let U in this.placements){let W=this.placements[U],Z=M[U];Z?(this.opacities[U]=new Ut(Z,b,W.text,W.icon),v=v||W.text!==Z.text.placed||W.icon!==Z.icon.placed):(this.opacities[U]=new Ut(null,b,W.text,W.icon,W.skipFade),v=v||W.text||W.icon)}for(let U in M){let W=M[U];if(!this.opacities[U]){let Z=new Ut(W,b,!1,!1);Z.isHidden()||(this.opacities[U]=Z,v=v||W.text.placed||W.icon.placed)}}for(let U in O)this.variableOffsets[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.variableOffsets[U]=O[U]);for(let U in B)this.placedOrientations[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.placedOrientations[U]=B[U]);if(d&&d.lastPlacementChangeTime===void 0)throw new Error(\"Last placement time for previous placement is not defined\");v?this.lastPlacementChangeTime=l:typeof this.lastPlacementChangeTime!=\"number\"&&(this.lastPlacementChangeTime=d?d.lastPlacementChangeTime:l)}updateLayerOpacities(l,d){let v={};for(let b of d){let M=b.getBucket(l);M&&b.latestFeatureIndex&&l.id===M.layerIds[0]&&this.updateBucketOpacities(M,v,b.collisionBoxArray)}}updateBucketOpacities(l,d,v){l.hasTextData()&&(l.text.opacityVertexArray.clear(),l.text.hasVisibleVertices=!1),l.hasIconData()&&(l.icon.opacityVertexArray.clear(),l.icon.hasVisibleVertices=!1),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexArray.clear(),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexArray.clear();let b=l.layers[0],M=b.layout,O=new Ut(null,0,!1,!1,!0),B=M.get(\"text-allow-overlap\"),U=M.get(\"icon-allow-overlap\"),W=b._unevaluatedLayout.hasValue(\"text-variable-anchor\")||b._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"),Z=M.get(\"text-rotation-alignment\")===\"map\",Q=M.get(\"text-pitch-alignment\")===\"map\",st=M.get(\"icon-text-fit\")!==\"none\",At=new Ut(null,0,B&&(U||!l.hasIconData()||M.get(\"icon-optional\")),U&&(B||!l.hasTextData()||M.get(\"text-optional\")),!0);!l.collisionArrays&&v&&(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData())&&l.deserializeCollisionBoxes(v);let pt=(yt,dt,Ft)=>{for(let Wt=0;Wt
0,Qt=this.placedOrientations[dt.crossTileID],se=Qt===n.ai.vertical,pe=Qt===n.ai.horizontal||Qt===n.ai.horizontalOnly;if(Ft>0||Wt>0){let he=Kn(Bt.text);pt(l.text,Ft,se?oa:he),pt(l.text,Wt,pe?oa:he);let xe=Bt.text.isHidden();[dt.rightJustifiedTextSymbolIndex,dt.centerJustifiedTextSymbolIndex,dt.leftJustifiedTextSymbolIndex].forEach(Me=>{Me>=0&&(l.text.placedSymbolArray.get(Me).hidden=xe||se?1:0)}),dt.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(dt.verticalPlacedTextSymbolIndex).hidden=xe||pe?1:0);let We=this.variableOffsets[dt.crossTileID];We&&this.markUsedJustification(l,We.anchor,dt,Qt);let Kr=this.placedOrientations[dt.crossTileID];Kr&&(this.markUsedJustification(l,\"left\",dt,Kr),this.markUsedOrientation(l,Kr,dt))}if(Yt){let he=Kn(Bt.icon),xe=!(st&&dt.verticalPlacedIconSymbolIndex&&se);dt.placedIconSymbolIndex>=0&&(pt(l.icon,dt.numIconVertices,xe?he:oa),l.icon.placedSymbolArray.get(dt.placedIconSymbolIndex).hidden=Bt.icon.isHidden()),dt.verticalPlacedIconSymbolIndex>=0&&(pt(l.icon,dt.numVerticalIconVertices,xe?oa:he),l.icon.placedSymbolArray.get(dt.verticalPlacedIconSymbolIndex).hidden=Bt.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){let he=l.collisionArrays[yt];if(he){let xe=new n.P(0,0);if(he.textBox||he.verticalTextBox){let Kr=!0;if(W){let Me=this.variableOffsets[St];Me?(xe=_r(Me.anchor,Me.width,Me.height,Me.textOffset,Me.textBoxScale),Z&&xe._rotate(Q?this.transform.angle:-this.transform.angle)):Kr=!1}he.textBox&&xr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||se,xe.x,xe.y),he.verticalTextBox&&xr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||pe,xe.x,xe.y)}let We=!!(!pe&&he.verticalIconBox);he.iconBox&&xr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,We,st?xe.x:0,st?xe.y:0),he.verticalIconBox&&xr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,!We,st?xe.x:0,st?xe.y:0)}}}if(l.sortFeatures(this.transform.angle),this.retainedQueryData[l.bucketInstanceId]&&(this.retainedQueryData[l.bucketInstanceId].featureSortOrder=l.featureSortOrder),l.hasTextData()&&l.text.opacityVertexBuffer&&l.text.opacityVertexBuffer.updateData(l.text.opacityVertexArray),l.hasIconData()&&l.icon.opacityVertexBuffer&&l.icon.opacityVertexBuffer.updateData(l.icon.opacityVertexArray),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexBuffer&&l.iconCollisionBox.collisionVertexBuffer.updateData(l.iconCollisionBox.collisionVertexArray),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexBuffer&&l.textCollisionBox.collisionVertexBuffer.updateData(l.textCollisionBox.collisionVertexArray),l.text.opacityVertexArray.length!==l.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${l.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${l.text.layoutVertexArray.length}) / 4`);if(l.icon.opacityVertexArray.length!==l.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${l.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${l.icon.layoutVertexArray.length}) / 4`);if(l.bucketInstanceId in this.collisionCircleArrays){let yt=this.collisionCircleArrays[l.bucketInstanceId];l.placementInvProjMatrix=yt.invProjMatrix,l.placementViewportMatrix=yt.viewportMatrix,l.collisionCircleArray=yt.circles,delete this.collisionCircleArrays[l.bucketInstanceId]}}symbolFadeChange(l){return this.fadeDuration===0?1:(l-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(l){return Math.max(0,(this.transform.zoom-l)/1.5)}hasTransitions(l){return this.stale||l-this.lastPlacementChangeTimel}setStale(){this.stale=!0}}function xr(T,l,d,v,b){T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0)}let vi=Math.pow(2,25),Bi=Math.pow(2,24),ni=Math.pow(2,17),Hr=Math.pow(2,16),Un=Math.pow(2,9),Li=Math.pow(2,8),gn=Math.pow(2,1);function Kn(T){if(T.opacity===0&&!T.placed)return 0;if(T.opacity===1&&T.placed)return 4294967295;let l=T.placed?1:0,d=Math.floor(127*T.opacity);return d*vi+l*Bi+d*ni+l*Hr+d*Un+l*Li+d*gn+l}let oa=0;class Om{constructor(l){this._sortAcrossTiles=l.layout.get(\"symbol-z-order\")!==\"viewport-y\"&&!l.layout.get(\"symbol-sort-key\").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(l,d,v,b,M){let O=this._bucketParts;for(;this._currentTileIndexB.sortKey-U.sortKey));this._currentPartIndex!this._forceFullPlacement&&n.h.now()-b>2;for(;this._currentPlacementIndex>=0;){let O=d[l[this._currentPlacementIndex]],B=this.placement.collisionIndex.transform.zoom;if(O.type===\"symbol\"&&(!O.minzoom||O.minzoom<=B)&&(!O.maxzoom||O.maxzoom>B)){if(this._inProgressLayer||(this._inProgressLayer=new Om(O)),this._inProgressLayer.continuePlacement(v[O.source],this.placement,this._showCollisionBoxes,O,M))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(l){return this.placement.commit(l),this.placement}}let ws=512/n.N/2;class ih{constructor(l,d,v){this.tileID=l,this.bucketInstanceId=v,this._symbolsByKey={};let b=new Map;for(let M=0;M({x:Math.floor(U.anchorX*ws),y:Math.floor(U.anchorY*ws)})),crossTileIDs:O.map(U=>U.crossTileID)};if(B.positions.length>128){let U=new n.av(B.positions.length,16,Uint16Array);for(let{x:W,y:Z}of B.positions)U.add(W,Z);U.finish(),delete B.positions,B.index=U}this._symbolsByKey[M]=B}}getScaledCoordinates(l,d){let{x:v,y:b,z:M}=this.tileID.canonical,{x:O,y:B,z:U}=d.canonical,W=ws/Math.pow(2,U-M),Z=(B*n.N+l.anchorY)*W,Q=b*n.N*ws;return{x:Math.floor((O*n.N+l.anchorX)*W-v*n.N*ws),y:Math.floor(Z-Q)}}findMatches(l,d,v){let b=this.tileID.canonical.zl)}}class ai{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class La{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(l){let d=Math.round((l-this.lng)/360);if(d!==0)for(let v in this.indexes){let b=this.indexes[v],M={};for(let O in b){let B=b[O];B.tileID=B.tileID.unwrapTo(B.tileID.wrap+d),M[B.tileID.key]=B}this.indexes[v]=M}this.lng=l}addBucket(l,d,v){if(this.indexes[l.overscaledZ]&&this.indexes[l.overscaledZ][l.key]){if(this.indexes[l.overscaledZ][l.key].bucketInstanceId===d.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(l.overscaledZ,this.indexes[l.overscaledZ][l.key])}for(let M=0;Ml.overscaledZ)for(let B in O){let U=O[B];U.tileID.isChildOf(l)&&U.findMatches(d.symbolInstances,l,b)}else{let B=O[l.scaledTo(Number(M)).key];B&&B.findMatches(d.symbolInstances,l,b)}}for(let M=0;M{d[v]=!0});for(let v in this.layerIndexes)d[v]||delete this.layerIndexes[v]}}let on=(T,l)=>n.x(T,l&&l.filter(d=>d.identifier!==\"source.canvas\")),kn=n.F(n.ax,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\",\"setGlyphs\",\"setSprite\"]),Bm=n.F(n.ax,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),Vo=n.aw();class Vn extends n.E{constructor(l,d={}){super(),this.map=l,this.dispatcher=new rh(po(),this,l._getMapId()),this.imageManager=new ue,this.imageManager.setEventedParent(this),this.glyphManager=new Lr(l._requestManager,d.localIdeographFontFamily),this.lineAtlas=new Fo(256,512),this.crossTileSymbolIndex=new Lc,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new n.ay,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",n.az());let v=this;this._rtlTextPluginCallback=Vn.registerForPluginStateChange(b=>{v.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:b.pluginStatus,pluginURL:b.pluginURL},(M,O)=>{if(n.aA(M),O&&O.every(B=>B))for(let B in v.sourceCaches){let U=v.sourceCaches[B].getSource().type;U!==\"vector\"&&U!==\"geojson\"||v.sourceCaches[B].reload()}})}),this.on(\"data\",b=>{if(b.dataType!==\"source\"||b.sourceDataType!==\"metadata\")return;let M=this.sourceCaches[b.sourceId];if(!M)return;let O=M.getSource();if(O&&O.vectorLayerIds)for(let B in this._layers){let U=this._layers[B];U.source===O.id&&this._validateLayer(U)}})}loadURL(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),d.validate=typeof d.validate!=\"boolean\"||d.validate;let b=this.map._requestManager.transformRequest(l,Y.Style);this._request=n.f(b,(M,O)=>{this._request=null,M?this.fire(new n.j(M)):O&&this._load(O,d,v)})}loadJSON(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._request=n.h.frame(()=>{this._request=null,d.validate=d.validate!==!1,this._load(l,d,v)})}loadEmpty(){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._load(Vo,{validate:!1})}_load(l,d,v){var b;let M=d.transformStyle?d.transformStyle(v,l):l;if(!d.validate||!on(this,n.y(M))){this._loaded=!0,this.stylesheet=M;for(let O in M.sources)this.addSource(O,M.sources[O],{validate:!1});M.sprite?this._loadSprite(M.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(M.glyphs),this._createLayers(),this.light=new Pc(this.stylesheet.light),this.map.setTerrain((b=this.stylesheet.terrain)!==null&&b!==void 0?b:null),this.fire(new n.k(\"data\",{dataType:\"style\"})),this.fire(new n.k(\"style.load\"))}}_createLayers(){let l=n.aB(this.stylesheet.layers);this.dispatcher.broadcast(\"setLayers\",l),this._order=l.map(d=>d.id),this._layers={},this._serializedLayers=null;for(let d of l){let v=n.aC(d);v.setEventedParent(this,{layer:{id:d.id}}),this._layers[d.id]=v}}_loadSprite(l,d=!1,v=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(b,M,O,B){let U=Ot(b),W=U.length,Z=O>1?\"@2x\":\"\",Q={},st={},At={};for(let{id:pt,url:yt}of U){let dt=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".json\"),Y.SpriteJSON),Ft=`${pt}_${dt.url}`;Q[Ft]=n.f(dt,(Bt,Yt)=>{delete Q[Ft],st[pt]=Yt,Kt(B,st,At,Bt,W)});let Wt=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".png\"),Y.SpriteImage),St=`${pt}_${Wt.url}`;Q[St]=j.getImage(Wt,(Bt,Yt)=>{delete Q[St],At[pt]=Yt,Kt(B,st,At,Bt,W)})}return{cancel(){for(let pt of Object.values(Q))pt.cancel()}}}(l,this.map._requestManager,this.map.getPixelRatio(),(b,M)=>{if(this._spriteRequest=null,b)this.fire(new n.j(b));else if(M)for(let O in M){this._spritesImagesIds[O]=[];let B=this._spritesImagesIds[O]?this._spritesImagesIds[O].filter(U=>!(U in M)):[];for(let U of B)this.imageManager.removeImage(U),this._changedImages[U]=!0;for(let U in M[O]){let W=O===\"default\"?U:`${O}:${U}`;this._spritesImagesIds[O].push(W),W in this.imageManager.images?this.imageManager.updateImage(W,M[O][U],!1):this.imageManager.addImage(W,M[O][U]),d&&(this._changedImages[W]=!0)}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),d&&(this._changed=!0),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"})),v&&v(b)})}_unloadSprite(){for(let l of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(l),this._changedImages[l]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}_validateLayer(l){let d=this.sourceCaches[l.source];if(!d)return;let v=l.sourceLayer;if(!v)return;let b=d.getSource();(b.type===\"geojson\"||b.vectorLayerIds&&b.vectorLayerIds.indexOf(v)===-1)&&this.fire(new n.j(new Error(`Source layer \"${v}\" does not exist on source \"${b.id}\" as specified by style layer \"${l.id}\".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let l in this.sourceCaches)if(!this.sourceCaches[l].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(l){let d=this._serializedAllLayers();if(!l||l.length===0)return Object.values(d);let v=[];for(let b of l)d[b]&&v.push(d[b]);return v}_serializedAllLayers(){let l=this._serializedLayers;if(l)return l;l=this._serializedLayers={};let d=Object.keys(this._layers);for(let v of d){let b=this._layers[v];b.type!==\"custom\"&&(l[v]=b.serialize())}return l}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(let l in this.sourceCaches)if(this.sourceCaches[l].hasTransition())return!0;for(let l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading.\")}update(l){if(!this._loaded)return;let d=this._changed;if(this._changed){let b=Object.keys(this._updatedLayers),M=Object.keys(this._removedLayers);(b.length||M.length)&&this._updateWorkerLayers(b,M);for(let O in this._updatedSources){let B=this._updatedSources[O];if(B===\"reload\")this._reloadSource(O);else{if(B!==\"clear\")throw new Error(`Invalid action ${B}`);this._clearSource(O)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let O in this._updatedPaintProps)this._layers[O].updateTransitions(l);this.light.updateTransitions(l),this._resetUpdates()}let v={};for(let b in this.sourceCaches){let M=this.sourceCaches[b];v[b]=M.used,M.used=!1}for(let b of this._order){let M=this._layers[b];M.recalculate(l,this._availableImages),!M.isHidden(l.zoom)&&M.source&&(this.sourceCaches[M.source].used=!0)}for(let b in v){let M=this.sourceCaches[b];v[b]!==M.used&&M.fire(new n.k(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:b}))}this.light.recalculate(l),this.z=l.zoom,d&&this.fire(new n.k(\"data\",{dataType:\"style\"}))}_updateTilesForChangedImages(){let l=Object.keys(this._changedImages);if(l.length){for(let d in this.sourceCaches)this.sourceCaches[d].reloadTilesForDependencies([\"icons\",\"patterns\"],l);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let l in this.sourceCaches)this.sourceCaches[l].reloadTilesForDependencies([\"glyphs\"],[\"\"]);this._glyphsDidChange=!1}}_updateWorkerLayers(l,d){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeByIds(l),removedIds:d})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(l,d={}){this._checkLoaded();let v=this.serialize();if(l=d.transformStyle?d.transformStyle(v,l):l,on(this,n.y(l)))return!1;(l=n.aD(l)).layers=n.aB(l.layers);let b=n.aE(v,l).filter(O=>!(O.command in Bm));if(b.length===0)return!1;let M=b.filter(O=>!(O.command in kn));if(M.length>0)throw new Error(`Unimplemented: ${M.map(O=>O.command).join(\", \")}.`);for(let O of b)O.command!==\"setTransition\"&&this[O.command].apply(this,O.args);return this.stylesheet=l,this._serializedLayers=null,!0}addImage(l,d){if(this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" already exists.`)));this.imageManager.addImage(l,d),this._afterImageUpdated(l)}updateImage(l,d){this.imageManager.updateImage(l,d)}getImage(l){return this.imageManager.getImage(l)}removeImage(l){if(!this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" does not exist.`)));this.imageManager.removeImage(l),this._afterImageUpdated(l)}_afterImageUpdated(l){this._availableImages=this.imageManager.listImages(),this._changedImages[l]=!0,this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(l,d,v={}){if(this._checkLoaded(),this.sourceCaches[l]!==void 0)throw new Error(`Source \"${l}\" already exists.`);if(!d.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(d).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(d.type)>=0&&this._validate(n.y.source,`sources.${l}`,d,null,v))return;this.map&&this.map._collectResourceTiming&&(d.collectResourceTiming=!0);let b=this.sourceCaches[l]=new os(l,d,this.dispatcher);b.style=this,b.setEventedParent(this,()=>({isSourceLoaded:b.loaded(),source:b.serialize(),sourceId:l})),b.onAdd(this.map),this._changed=!0}removeSource(l){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(\"There is no source with this ID\");for(let v in this._layers)if(this._layers[v].source===l)return this.fire(new n.j(new Error(`Source \"${l}\" cannot be removed while layer \"${v}\" is using it.`)));let d=this.sourceCaches[l];delete this.sourceCaches[l],delete this._updatedSources[l],d.fire(new n.k(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:l})),d.setEventedParent(null),d.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(l,d){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(`There is no source with this ID=${l}`);let v=this.sourceCaches[l].getSource();if(v.type!==\"geojson\")throw new Error(`geojsonSource.type is ${v.type}, which is !== 'geojson`);v.setData(d),this._changed=!0}getSource(l){return this.sourceCaches[l]&&this.sourceCaches[l].getSource()}addLayer(l,d,v={}){this._checkLoaded();let b=l.id;if(this.getLayer(b))return void this.fire(new n.j(new Error(`Layer \"${b}\" already exists on this map.`)));let M;if(l.type===\"custom\"){if(on(this,n.aF(l)))return;M=n.aC(l)}else{if(\"source\"in l&&typeof l.source==\"object\"&&(this.addSource(b,l.source),l=n.aD(l),l=n.e(l,{source:b})),this._validate(n.y.layer,`layers.${b}`,l,{arrayIndex:-1},v))return;M=n.aC(l),this._validateLayer(M),M.setEventedParent(this,{layer:{id:b}})}let O=d?this._order.indexOf(d):this._order.length;if(d&&O===-1)this.fire(new n.j(new Error(`Cannot add layer \"${b}\" before non-existing layer \"${d}\".`)));else{if(this._order.splice(O,0,b),this._layerOrderChanged=!0,this._layers[b]=M,this._removedLayers[b]&&M.source&&M.type!==\"custom\"){let B=this._removedLayers[b];delete this._removedLayers[b],B.type!==M.type?this._updatedSources[M.source]=\"clear\":(this._updatedSources[M.source]=\"reload\",this.sourceCaches[M.source].pause())}this._updateLayer(M),M.onAdd&&M.onAdd(this.map)}}moveLayer(l,d){if(this._checkLoaded(),this._changed=!0,!this._layers[l])return void this.fire(new n.j(new Error(`The layer '${l}' does not exist in the map's style and cannot be moved.`)));if(l===d)return;let v=this._order.indexOf(l);this._order.splice(v,1);let b=d?this._order.indexOf(d):this._order.length;d&&b===-1?this.fire(new n.j(new Error(`Cannot move layer \"${l}\" before non-existing layer \"${d}\".`))):(this._order.splice(b,0,l),this._layerOrderChanged=!0)}removeLayer(l){this._checkLoaded();let d=this._layers[l];if(!d)return void this.fire(new n.j(new Error(`Cannot remove non-existing layer \"${l}\".`)));d.setEventedParent(null);let v=this._order.indexOf(l);this._order.splice(v,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[l]=d,delete this._layers[l],this._serializedLayers&&delete this._serializedLayers[l],delete this._updatedLayers[l],delete this._updatedPaintProps[l],d.onRemove&&d.onRemove(this.map)}getLayer(l){return this._layers[l]}getLayersOrder(){return[...this._order]}hasLayer(l){return l in this._layers}setLayerZoomRange(l,d,v){this._checkLoaded();let b=this.getLayer(l);b?b.minzoom===d&&b.maxzoom===v||(d!=null&&(b.minzoom=d),v!=null&&(b.maxzoom=v),this._updateLayer(b)):this.fire(new n.j(new Error(`Cannot set the zoom range of non-existing layer \"${l}\".`)))}setFilter(l,d,v={}){this._checkLoaded();let b=this.getLayer(l);if(b){if(!n.aG(b.filter,d))return d==null?(b.filter=void 0,void this._updateLayer(b)):void(this._validate(n.y.filter,`layers.${b.id}.filter`,d,null,v)||(b.filter=n.aD(d),this._updateLayer(b)))}else this.fire(new n.j(new Error(`Cannot filter non-existing layer \"${l}\".`)))}getFilter(l){return n.aD(this.getLayer(l).filter)}setLayoutProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getLayoutProperty(d),v)||(M.setLayoutProperty(d,v,b),this._updateLayer(M)):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getLayoutProperty(l,d){let v=this.getLayer(l);if(v)return v.getLayoutProperty(d);this.fire(new n.j(new Error(`Cannot get style of non-existing layer \"${l}\".`)))}setPaintProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getPaintProperty(d),v)||(M.setPaintProperty(d,v,b)&&this._updateLayer(M),this._changed=!0,this._updatedPaintProps[l]=!0):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getPaintProperty(l,d){return this.getLayer(l).getPaintProperty(d)}setFeatureState(l,d){this._checkLoaded();let v=l.source,b=l.sourceLayer,M=this.sourceCaches[v];if(M===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let O=M.getSource().type;O===\"geojson\"&&b?this.fire(new n.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):O!==\"vector\"||b?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),M.setFeatureState(b,l.id,d)):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}removeFeatureState(l,d){this._checkLoaded();let v=l.source,b=this.sourceCaches[v];if(b===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let M=b.getSource().type,O=M===\"vector\"?l.sourceLayer:void 0;M!==\"vector\"||O?d&&typeof l.id!=\"string\"&&typeof l.id!=\"number\"?this.fire(new n.j(new Error(\"A feature id is required to remove its specific state property.\"))):b.removeFeatureState(O,l.id,d):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}getFeatureState(l){this._checkLoaded();let d=l.source,v=l.sourceLayer,b=this.sourceCaches[d];if(b!==void 0)return b.getSource().type!==\"vector\"||v?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),b.getFeatureState(v,l.id)):void this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));this.fire(new n.j(new Error(`The source '${d}' does not exist in the map's style.`)))}getTransition(){return n.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;let l=n.aH(this.sourceCaches,M=>M.serialize()),d=this._serializeByIds(this._order),v=this.map.getTerrain()||void 0,b=this.stylesheet;return n.aI({version:b.version,name:b.name,metadata:b.metadata,light:b.light,center:b.center,zoom:b.zoom,bearing:b.bearing,pitch:b.pitch,sprite:b.sprite,glyphs:b.glyphs,transition:b.transition,sources:l,layers:d,terrain:v},M=>M!==void 0)}_updateLayer(l){this._updatedLayers[l.id]=!0,l.source&&!this._updatedSources[l.source]&&this.sourceCaches[l.source].getSource().type!==\"raster\"&&(this._updatedSources[l.source]=\"reload\",this.sourceCaches[l.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(l){let d=O=>this._layers[O].type===\"fill-extrusion\",v={},b=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B)){v[B]=O;for(let U of l){let W=U[B];if(W)for(let Z of W)b.push(Z)}}}b.sort((O,B)=>B.intersectionZ-O.intersectionZ);let M=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B))for(let U=b.length-1;U>=0;U--){let W=b[U].feature;if(v[W.layer.id]{let pe=Ft.featureSortOrder;if(pe){let he=pe.indexOf(Qt.featureIndex);return pe.indexOf(se.featureIndex)-he}return se.featureIndex-Qt.featureIndex});for(let Qt of Yt)Bt.push(Qt)}}for(let Ft in pt)pt[Ft].forEach(Wt=>{let St=Wt.feature,Bt=W[B[Ft].source].getFeatureState(St.layer[\"source-layer\"],St.id);St.source=St.layer.source,St.layer[\"source-layer\"]&&(St.sourceLayer=St.layer[\"source-layer\"]),St.state=Bt});return pt}(this._layers,O,this.sourceCaches,l,d,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(M)}querySourceFeatures(l,d){d&&d.filter&&this._validate(n.y.filter,\"querySourceFeatures.filter\",d.filter,null,d);let v=this.sourceCaches[l];return v?function(b,M){let O=b.getRenderableIds().map(W=>b.getTileByID(W)),B=[],U={};for(let W=0;W{ol[b]=M})(l,d),d.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:l,url:d.workerSourceURL},v):v(null,null))}getLight(){return this.light.getLight()}setLight(l,d={}){this._checkLoaded();let v=this.light.getLight(),b=!1;for(let O in l)if(!n.aG(l[O],v[O])){b=!0;break}if(!b)return;let M={now:n.h.now(),transition:n.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(l,d),this.light.updateTransitions(M)}_validate(l,d,v,b,M={}){return(!M||M.validate!==!1)&&on(this,l.call(n.y,n.e({key:d,style:this.serialize(),value:v,styleSpec:n.v},b)))}_remove(l=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),n.aJ.off(\"pluginStateChange\",this._rtlTextPluginCallback);for(let d in this._layers)this._layers[d].setEventedParent(null);for(let d in this.sourceCaches){let v=this.sourceCaches[d];v.setEventedParent(null),v.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(l)}_clearSource(l){this.sourceCaches[l].clearTiles()}_reloadSource(l){this.sourceCaches[l].resume(),this.sourceCaches[l].reload()}_updateSources(l){for(let d in this.sourceCaches)this.sourceCaches[d].update(l,this.map.terrain)}_generateCollisionBoxes(){for(let l in this.sourceCaches)this._reloadSource(l)}_updatePlacement(l,d,v,b,M=!1){let O=!1,B=!1,U={};for(let W of this._order){let Z=this._layers[W];if(Z.type!==\"symbol\")continue;if(!U[Z.source]){let st=this.sourceCaches[Z.source];U[Z.source]=st.getRenderableIds(!0).map(At=>st.getTileByID(At)).sort((At,pt)=>pt.tileID.overscaledZ-At.tileID.overscaledZ||(At.tileID.isLessThan(pt.tileID)?-1:1))}let Q=this.crossTileSymbolIndex.addLayer(Z,U[Z.source],l.center.lng);O=O||Q}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((M=M||this._layerOrderChanged||v===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(n.h.now(),l.zoom))&&(this.pauseablePlacement=new Fl(l,this.map.terrain,this._order,M,d,v,b,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,U),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(n.h.now()),B=!0),O&&this.pauseablePlacement.placement.setStale()),B||O)for(let W of this._order){let Z=this._layers[W];Z.type===\"symbol\"&&this.placement.updateLayerOpacities(Z,U[Z.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(n.h.now())}_releaseSymbolFadeTiles(){for(let l in this.sourceCaches)this.sourceCaches[l].releaseSymbolFadeTiles()}getImages(l,d,v){this.imageManager.getImages(d.icons,v),this._updateTilesForChangedImages();let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,d.icons)}getGlyphs(l,d,v){this.glyphManager.getGlyphs(d.stacks,v);let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,[\"\"])}getResource(l,d,v){return n.m(d,v)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(l,d={}){this._checkLoaded(),l&&this._validate(n.y.glyphs,\"glyphs\",l,null,d)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=l,this.glyphManager.entries={},this.glyphManager.setURL(l))}addSprite(l,d,v={},b){this._checkLoaded();let M=[{id:l,url:d}],O=[...Ot(this.stylesheet.sprite),...M];this._validate(n.y.sprite,\"sprite\",O,null,v)||(this.stylesheet.sprite=O,this._loadSprite(M,!0,b))}removeSprite(l){this._checkLoaded();let d=Ot(this.stylesheet.sprite);if(d.find(v=>v.id===l)){if(this._spritesImagesIds[l])for(let v of this._spritesImagesIds[l])this.imageManager.removeImage(v),this._changedImages[v]=!0;d.splice(d.findIndex(v=>v.id===l),1),this.stylesheet.sprite=d.length>0?d:void 0,delete this._spritesImagesIds[l],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}else this.fire(new n.j(new Error(`Sprite \"${l}\" doesn't exists on this map.`)))}getSprite(){return Ot(this.stylesheet.sprite)}setSprite(l,d={},v){this._checkLoaded(),l&&this._validate(n.y.sprite,\"sprite\",l,null,d)||(this.stylesheet.sprite=l,l?this._loadSprite(l,!0,v):(this._unloadSprite(),v&&v(null)))}}Vn.registerForPluginStateChange=n.aK;var mo=n.Q([{name:\"a_pos\",type:\"Int16\",components:2}]),zl=\"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\";let Yi={prelude:_i(`#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n`,`#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}`),background:_i(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),backgroundPattern:_i(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),circle:_i(`varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:_i(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:_i(`uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:_i(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),collisionBox:_i(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),collisionCircle:_i(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\",\"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:_i(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\",\"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"),fill:_i(`#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:_i(`varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:_i(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:_i(`varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:_i(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:_i(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),line:_i(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),lineGradient:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),linePattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:_i(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),symbolIcon:_i(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:_i(`#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:_i(`#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:_i(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",zl),terrainDepth:_i(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\",zl),terrainCoords:_i(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\",zl)};function _i(T,l){let d=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,v=l.match(/attribute ([\\w]+) ([\\w]+)/g),b=T.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),M=l.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),O=M?M.concat(b):b,B={};return{fragmentSource:T=T.replace(d,(U,W,Z,Q,st)=>(B[st]=!0,W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nvarying ${Z} ${Q} ${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`)),vertexSource:l=l.replace(d,(U,W,Z,Q,st)=>{let At=Q===\"float\"?\"vec2\":\"vec4\",pt=st.match(/color/)?\"color\":At;return B[st]?W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\nvarying ${Z} ${Q} ${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = a_${st};\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = a_${st};\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`}),staticAttributes:v,staticUniforms:O}}class Nl{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(l,d,v,b,M,O,B,U,W){this.context=l;let Z=this.boundPaintVertexBuffers.length!==b.length;for(let Q=0;!Z&&Q({u_depth:new n.aL(Qt,se.u_depth),u_terrain:new n.aL(Qt,se.u_terrain),u_terrain_dim:new n.aM(Qt,se.u_terrain_dim),u_terrain_matrix:new n.aN(Qt,se.u_terrain_matrix),u_terrain_unpack:new n.aO(Qt,se.u_terrain_unpack),u_terrain_exaggeration:new n.aM(Qt,se.u_terrain_exaggeration)}))(l,Yt),this.binderUniforms=v?v.getUniforms(l,Yt):[]}draw(l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt,dt,Ft,Wt){let St=l.gl;if(this.failedToCreate)return;if(l.program.set(this.program),l.setDepthMode(v),l.setStencilMode(b),l.setColorMode(M),l.setCullFace(O),U){l.activeTexture.set(St.TEXTURE2),St.bindTexture(St.TEXTURE_2D,U.depthTexture),l.activeTexture.set(St.TEXTURE3),St.bindTexture(St.TEXTURE_2D,U.texture);for(let Yt in this.terrainUniforms)this.terrainUniforms[Yt].set(U[Yt])}for(let Yt in this.fixedUniforms)this.fixedUniforms[Yt].set(B[Yt]);yt&&yt.setUniforms(l,this.binderUniforms,At,{zoom:pt});let Bt=0;switch(d){case St.LINES:Bt=2;break;case St.TRIANGLES:Bt=3;break;case St.LINE_STRIP:Bt=1}for(let Yt of st.get()){let Qt=Yt.vaos||(Yt.vaos={});(Qt[W]||(Qt[W]=new Nl)).bind(l,this,Z,yt?yt.getPaintVertexBuffers():[],Q,Yt.vertexOffset,dt,Ft,Wt),St.drawElements(d,Yt.primitiveLength*Bt,St.UNSIGNED_SHORT,Yt.primitiveOffset*Bt*2)}}}function Jn(T,l,d){let v=1/Dt(d,1,l.transform.tileZoom),b=Math.pow(2,d.tileID.overscaledZ),M=d.tileSize*Math.pow(2,l.transform.tileZoom)/b,O=M*(d.tileID.canonical.x+d.tileID.wrap*b),B=M*d.tileID.canonical.y;return{u_image:0,u_texsize:d.imageAtlasTexture.size,u_scale:[v,T.fromScale,T.toScale],u_fade:T.t,u_pixel_coord_upper:[O>>16,B>>16],u_pixel_coord_lower:[65535&O,65535&B]}}let Up=(T,l,d,v)=>{let b=l.style.light,M=b.properties.get(\"position\"),O=[M.x,M.y,M.z],B=function(){var W=new n.A(9);return n.A!=Float32Array&&(W[1]=0,W[2]=0,W[3]=0,W[5]=0,W[6]=0,W[7]=0),W[0]=1,W[4]=1,W[8]=1,W}();b.properties.get(\"anchor\")===\"viewport\"&&function(W,Z){var Q=Math.sin(Z),st=Math.cos(Z);W[0]=st,W[1]=Q,W[2]=0,W[3]=-Q,W[4]=st,W[5]=0,W[6]=0,W[7]=0,W[8]=1}(B,-l.transform.angle),function(W,Z,Q){var st=Z[0],At=Z[1],pt=Z[2];W[0]=st*Q[0]+At*Q[3]+pt*Q[6],W[1]=st*Q[1]+At*Q[4]+pt*Q[7],W[2]=st*Q[2]+At*Q[5]+pt*Q[8]}(O,O,B);let U=b.properties.get(\"color\");return{u_matrix:T,u_lightpos:O,u_lightintensity:b.properties.get(\"intensity\"),u_lightcolor:[U.r,U.g,U.b],u_vertical_gradient:+d,u_opacity:v}},Ul=(T,l,d,v,b,M,O)=>n.e(Up(T,l,d,v),Jn(M,l,O),{u_height_factor:-Math.pow(2,b.overscaledZ)/O.tileSize/8}),md=T=>({u_matrix:T}),gd=(T,l,d,v)=>n.e(md(T),Jn(d,l,v)),_d=(T,l)=>({u_matrix:T,u_world:l}),yd=(T,l,d,v,b)=>n.e(gd(T,l,d,v),{u_world:b}),lt=(T,l,d,v)=>{let b=T.transform,M,O;if(v.paint.get(\"circle-pitch-alignment\")===\"map\"){let B=Dt(d,1,b.zoom);M=!0,O=[B,B]}else M=!1,O=b.pixelsToGLUnits;return{u_camera_to_center_distance:b.cameraToCenterDistance,u_scale_with_map:+(v.paint.get(\"circle-pitch-scale\")===\"map\"),u_matrix:T.translatePosMatrix(l.posMatrix,d,v.paint.get(\"circle-translate\"),v.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+M,u_device_pixel_ratio:T.pixelRatio,u_extrude_scale:O}},ft=(T,l,d)=>{let v=Dt(d,1,l.zoom),b=Math.pow(2,l.zoom-d.tileID.overscaledZ),M=d.tileID.overscaleFactor();return{u_matrix:T,u_camera_to_center_distance:l.cameraToCenterDistance,u_pixels_to_tile_units:v,u_extrude_scale:[l.pixelsToGLUnits[0]/(v*b),l.pixelsToGLUnits[1]/(v*b)],u_overscale_factor:M}},Lt=(T,l,d=1)=>({u_matrix:T,u_color:l,u_overlay:0,u_overlay_scale:d}),$t=T=>({u_matrix:T}),ge=(T,l,d,v)=>({u_matrix:T,u_extrude_scale:Dt(l,1,d),u_intensity:v});function qe(T,l){let d=Math.pow(2,l.canonical.z),v=l.canonical.y;return[new n.U(0,v/d).toLngLat().lat,new n.U(0,(v+1)/d).toLngLat().lat]}let ti=(T,l,d,v)=>{let b=T.transform;return{u_matrix:Fm(T,l,d,v),u_ratio:1/Dt(l,1,b.zoom),u_device_pixel_ratio:T.pixelRatio,u_units_to_pixels:[1/b.pixelsToGLUnits[0],1/b.pixelsToGLUnits[1]]}},ts=(T,l,d,v,b)=>n.e(ti(T,l,d,b),{u_image:0,u_image_height:v}),Ss=(T,l,d,v,b)=>{let M=T.transform,O=ka(l,M);return{u_matrix:Fm(T,l,d,b),u_texsize:l.imageAtlasTexture.size,u_ratio:1/Dt(l,1,M.zoom),u_device_pixel_ratio:T.pixelRatio,u_image:0,u_scale:[O,v.fromScale,v.toScale],u_fade:v.t,u_units_to_pixels:[1/M.pixelsToGLUnits[0],1/M.pixelsToGLUnits[1]]}},Bs=(T,l,d,v,b,M)=>{let O=T.lineAtlas,B=ka(l,T.transform),U=d.layout.get(\"line-cap\")===\"round\",W=O.getDash(v.from,U),Z=O.getDash(v.to,U),Q=W.width*b.fromScale,st=Z.width*b.toScale;return n.e(ti(T,l,d,M),{u_patternscale_a:[B/Q,-W.height/2],u_patternscale_b:[B/st,-Z.height/2],u_sdfgamma:O.width/(256*Math.min(Q,st)*T.pixelRatio)/2,u_image:0,u_tex_y_a:W.y,u_tex_y_b:Z.y,u_mix:b.t})};function ka(T,l){return 1/Dt(T,1,l.tileZoom)}function Fm(T,l,d,v){return T.translatePosMatrix(v?v.posMatrix:l.tileID.posMatrix,l,d.paint.get(\"line-translate\"),d.paint.get(\"line-translate-anchor\"))}let Mx=(T,l,d,v,b)=>{return{u_matrix:T,u_tl_parent:l,u_scale_parent:d,u_buffer_scale:1,u_fade_t:v.mix,u_opacity:v.opacity*b.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:b.paint.get(\"raster-brightness-min\"),u_brightness_high:b.paint.get(\"raster-brightness-max\"),u_saturation_factor:(O=b.paint.get(\"raster-saturation\"),O>0?1-1/(1.001-O):-O),u_contrast_factor:(M=b.paint.get(\"raster-contrast\"),M>0?1/(1-M):1+M),u_spin_weights:Ex(b.paint.get(\"raster-hue-rotate\"))};var M,O};function Ex(T){T*=Math.PI/180;let l=Math.sin(T),d=Math.cos(T);return[(2*d+1)/3,(-Math.sqrt(3)*l-d+1)/3,(Math.sqrt(3)*l-d+1)/3]}let Xg=(T,l,d,v,b,M,O,B,U,W)=>{let Z=b.transform;return{u_is_size_zoom_constant:+(T===\"constant\"||T===\"source\"),u_is_size_feature_constant:+(T===\"constant\"||T===\"camera\"),u_size_t:l?l.uSizeT:0,u_size:l?l.uSize:0,u_camera_to_center_distance:Z.cameraToCenterDistance,u_pitch:Z.pitch/360*2*Math.PI,u_rotate_symbol:+d,u_aspect_ratio:Z.width/Z.height,u_fade_change:b.options.fadeDuration?b.symbolFadeChange:1,u_matrix:M,u_label_plane_matrix:O,u_coord_matrix:B,u_is_text:+U,u_pitch_with_map:+v,u_texsize:W,u_texture:0}},Kg=(T,l,d,v,b,M,O,B,U,W,Z)=>{let Q=b.transform;return n.e(Xg(T,l,d,v,b,M,O,B,U,W),{u_gamma_scale:v?Math.cos(Q._pitch)*Q.cameraToCenterDistance:1,u_device_pixel_ratio:b.pixelRatio,u_is_halo:+Z})},Af=(T,l,d,v,b,M,O,B,U,W)=>n.e(Kg(T,l,d,v,b,M,O,B,!0,U,!0),{u_texsize_icon:W,u_texture_icon:1}),zm=(T,l,d)=>({u_matrix:T,u_opacity:l,u_color:d}),cl=(T,l,d,v,b,M)=>n.e(function(O,B,U,W){let Z=U.imageManager.getPattern(O.from.toString()),Q=U.imageManager.getPattern(O.to.toString()),{width:st,height:At}=U.imageManager.getPixelSize(),pt=Math.pow(2,W.tileID.overscaledZ),yt=W.tileSize*Math.pow(2,U.transform.tileZoom)/pt,dt=yt*(W.tileID.canonical.x+W.tileID.wrap*pt),Ft=yt*W.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Z.tl,u_pattern_br_a:Z.br,u_pattern_tl_b:Q.tl,u_pattern_br_b:Q.br,u_texsize:[st,At],u_mix:B.t,u_pattern_size_a:Z.displaySize,u_pattern_size_b:Q.displaySize,u_scale_a:B.fromScale,u_scale_b:B.toScale,u_tile_units_to_pixels:1/Dt(W,1,U.transform.tileZoom),u_pixel_coord_upper:[dt>>16,Ft>>16],u_pixel_coord_lower:[65535&dt,65535&Ft]}}(v,M,d,b),{u_matrix:T,u_opacity:l}),Nm={fillExtrusion:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_lightpos:new n.aP(T,l.u_lightpos),u_lightintensity:new n.aM(T,l.u_lightintensity),u_lightcolor:new n.aP(T,l.u_lightcolor),u_vertical_gradient:new n.aM(T,l.u_vertical_gradient),u_opacity:new n.aM(T,l.u_opacity)}),fillExtrusionPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_lightpos:new n.aP(T,l.u_lightpos),u_lightintensity:new n.aM(T,l.u_lightintensity),u_lightcolor:new n.aP(T,l.u_lightcolor),u_vertical_gradient:new n.aM(T,l.u_vertical_gradient),u_height_factor:new n.aM(T,l.u_height_factor),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade),u_opacity:new n.aM(T,l.u_opacity)}),fill:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix)}),fillPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),fillOutline:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world)}),fillOutlinePattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),circle:(T,l)=>({u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_scale_with_map:new n.aL(T,l.u_scale_with_map),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_extrude_scale:new n.aQ(T,l.u_extrude_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_matrix:new n.aN(T,l.u_matrix)}),collisionBox:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pixels_to_tile_units:new n.aM(T,l.u_pixels_to_tile_units),u_extrude_scale:new n.aQ(T,l.u_extrude_scale),u_overscale_factor:new n.aM(T,l.u_overscale_factor)}),collisionCircle:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_inv_matrix:new n.aN(T,l.u_inv_matrix),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_viewport_size:new n.aQ(T,l.u_viewport_size)}),debug:(T,l)=>({u_color:new n.aR(T,l.u_color),u_matrix:new n.aN(T,l.u_matrix),u_overlay:new n.aL(T,l.u_overlay),u_overlay_scale:new n.aM(T,l.u_overlay_scale)}),clippingMask:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix)}),heatmap:(T,l)=>({u_extrude_scale:new n.aM(T,l.u_extrude_scale),u_intensity:new n.aM(T,l.u_intensity),u_matrix:new n.aN(T,l.u_matrix)}),heatmapTexture:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world),u_image:new n.aL(T,l.u_image),u_color_ramp:new n.aL(T,l.u_color_ramp),u_opacity:new n.aM(T,l.u_opacity)}),hillshade:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_latrange:new n.aQ(T,l.u_latrange),u_light:new n.aQ(T,l.u_light),u_shadow:new n.aR(T,l.u_shadow),u_highlight:new n.aR(T,l.u_highlight),u_accent:new n.aR(T,l.u_accent)}),hillshadePrepare:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_dimension:new n.aQ(T,l.u_dimension),u_zoom:new n.aM(T,l.u_zoom),u_unpack:new n.aO(T,l.u_unpack)}),line:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels)}),lineGradient:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_image:new n.aL(T,l.u_image),u_image_height:new n.aM(T,l.u_image_height)}),linePattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texsize:new n.aQ(T,l.u_texsize),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_image:new n.aL(T,l.u_image),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),lineSDF:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_patternscale_a:new n.aQ(T,l.u_patternscale_a),u_patternscale_b:new n.aQ(T,l.u_patternscale_b),u_sdfgamma:new n.aM(T,l.u_sdfgamma),u_image:new n.aL(T,l.u_image),u_tex_y_a:new n.aM(T,l.u_tex_y_a),u_tex_y_b:new n.aM(T,l.u_tex_y_b),u_mix:new n.aM(T,l.u_mix)}),raster:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_tl_parent:new n.aQ(T,l.u_tl_parent),u_scale_parent:new n.aM(T,l.u_scale_parent),u_buffer_scale:new n.aM(T,l.u_buffer_scale),u_fade_t:new n.aM(T,l.u_fade_t),u_opacity:new n.aM(T,l.u_opacity),u_image0:new n.aL(T,l.u_image0),u_image1:new n.aL(T,l.u_image1),u_brightness_low:new n.aM(T,l.u_brightness_low),u_brightness_high:new n.aM(T,l.u_brightness_high),u_saturation_factor:new n.aM(T,l.u_saturation_factor),u_contrast_factor:new n.aM(T,l.u_contrast_factor),u_spin_weights:new n.aP(T,l.u_spin_weights)}),symbolIcon:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texture:new n.aL(T,l.u_texture)}),symbolSDF:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texture:new n.aL(T,l.u_texture),u_gamma_scale:new n.aM(T,l.u_gamma_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_is_halo:new n.aL(T,l.u_is_halo)}),symbolTextAndIcon:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texsize_icon:new n.aQ(T,l.u_texsize_icon),u_texture:new n.aL(T,l.u_texture),u_texture_icon:new n.aL(T,l.u_texture_icon),u_gamma_scale:new n.aM(T,l.u_gamma_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_is_halo:new n.aL(T,l.u_is_halo)}),background:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_opacity:new n.aM(T,l.u_opacity),u_color:new n.aR(T,l.u_color)}),backgroundPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_opacity:new n.aM(T,l.u_opacity),u_image:new n.aL(T,l.u_image),u_pattern_tl_a:new n.aQ(T,l.u_pattern_tl_a),u_pattern_br_a:new n.aQ(T,l.u_pattern_br_a),u_pattern_tl_b:new n.aQ(T,l.u_pattern_tl_b),u_pattern_br_b:new n.aQ(T,l.u_pattern_br_b),u_texsize:new n.aQ(T,l.u_texsize),u_mix:new n.aM(T,l.u_mix),u_pattern_size_a:new n.aQ(T,l.u_pattern_size_a),u_pattern_size_b:new n.aQ(T,l.u_pattern_size_b),u_scale_a:new n.aM(T,l.u_scale_a),u_scale_b:new n.aM(T,l.u_scale_b),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_tile_units_to_pixels:new n.aM(T,l.u_tile_units_to_pixels)}),terrain:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texture:new n.aL(T,l.u_texture),u_ele_delta:new n.aM(T,l.u_ele_delta)}),terrainDepth:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ele_delta:new n.aM(T,l.u_ele_delta)}),terrainCoords:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texture:new n.aL(T,l.u_texture),u_terrain_coords_id:new n.aM(T,l.u_terrain_coords_id),u_ele_delta:new n.aM(T,l.u_ele_delta)})};class Um{constructor(l,d,v){this.context=l;let b=l.gl;this.buffer=b.createBuffer(),this.dynamicDraw=!!v,this.context.unbindVAO(),l.bindElementBuffer.set(this.buffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?b.DYNAMIC_DRAW:b.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(l){let d=this.context.gl;if(!this.dynamicDraw)throw new Error(\"Attempted to update data while not in dynamic mode.\");this.context.unbindVAO(),this.bind(),d.bufferSubData(d.ELEMENT_ARRAY_BUFFER,0,l.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}let Vp={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Vm{constructor(l,d,v,b){this.length=d.length,this.attributes=v,this.itemSize=d.bytesPerElement,this.dynamicDraw=b,this.context=l;let M=l.gl;this.buffer=M.createBuffer(),l.bindVertexBuffer.set(this.buffer),M.bufferData(M.ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?M.DYNAMIC_DRAW:M.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(l){if(l.length!==this.length)throw new Error(`Length of new data is ${l.length}, which doesn't match current length of ${this.length}`);let d=this.context.gl;this.bind(),d.bufferSubData(d.ARRAY_BUFFER,0,l.arrayBuffer)}enableAttributes(l,d){for(let v=0;v0){let xe=n.Z(),We=se;n.aU(xe,Qt.placementInvProjMatrix,T.transform.glCoordMatrix),n.aU(xe,xe,Qt.placementViewportMatrix),Z.push({circleArray:he,circleOffset:st,transform:We,invTransform:xe,coord:Bt}),Q+=he.length/4,st=Q}pe&&W.draw(B,U.LINES,ci.disabled,$e.disabled,T.colorModeForRenderPass(),It.disabled,ft(se,T.transform,Yt),T.style.map.terrain&&T.style.map.terrain.getTerrainData(Bt),d.id,pe.layoutVertexBuffer,pe.indexBuffer,pe.segments,null,T.transform.zoom,null,null,pe.collisionVertexBuffer)}if(!O||!Z.length)return;let At=T.useProgram(\"collisionCircle\"),pt=new n.aV;pt.resize(4*Q),pt._trim();let yt=0;for(let St of Z)for(let Bt=0;Bt=0&&(pt[dt.associatedIconIndex]={shiftedAnchor:Kr,angle:Me})}else ht(dt.numGlyphs,st)}if(W){At.clear();let yt=T.icon.placedSymbolArray;for(let dt=0;dtT.style.map.terrain.getElevation(pe,Ho,pn):null,us=d.layout.get(\"text-rotation-alignment\")===\"map\";Se(xe,pe.posMatrix,T,b,jr,jl,dt,W,us,On)}let gu=T.translatePosMatrix(pe.posMatrix,he,M,O),gh=Ft||b&&Qt||mu?Ym:jr,Ns=T.translatePosMatrix(jl,he,M,O,!0),Es=Me&&d.paint.get(b?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,yo;yo=Me?xe.iconsInText?Af(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,ei,cs):Kg(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,b,ei,!0):Xg(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,b,ei);let _h={program:Vi,buffers:We,uniformValues:yo,atlasTexture:Rn,atlasTextureIcon:Dn,atlasInterpolation:$i,atlasInterpolationIcon:zs,isSDF:Me,hasHalo:Es};if(St&&xe.canOverlap){Bt=!0;let On=We.segments.get();for(let us of On)se.push({segments:new n.S([us]),sortKey:us.sortKey,state:_h,terrainData:Vr})}else se.push({segments:We.segments,sortKey:0,state:_h,terrainData:Vr})}Bt&&se.sort((pe,he)=>pe.sortKey-he.sortKey);for(let pe of se){let he=pe.state;if(st.activeTexture.set(At.TEXTURE0),he.atlasTexture.bind(he.atlasInterpolation,At.CLAMP_TO_EDGE),he.atlasTextureIcon&&(st.activeTexture.set(At.TEXTURE1),he.atlasTextureIcon&&he.atlasTextureIcon.bind(he.atlasInterpolationIcon,At.CLAMP_TO_EDGE)),he.isSDF){let xe=he.uniformValues;he.hasHalo&&(xe.u_is_halo=1,$m(he.buffers,pe.segments,d,T,he.program,Yt,Z,Q,xe,pe.terrainData)),xe.u_is_halo=0}$m(he.buffers,pe.segments,d,T,he.program,Yt,Z,Q,he.uniformValues,pe.terrainData)}}function $m(T,l,d,v,b,M,O,B,U,W){let Z=v.context;b.draw(Z,Z.gl.TRIANGLES,M,O,B,It.disabled,U,W,d.id,T.layoutVertexBuffer,T.indexBuffer,l,d.paint,v.transform.zoom,T.programConfigurations.get(d.id),T.dynamicLayoutVertexBuffer,T.opacityVertexBuffer)}function Td(T,l,d,v,b){if(!d||!v||!v.imageAtlas)return;let M=v.imageAtlas.patternPositions,O=M[d.to.toString()],B=M[d.from.toString()];if(!O&&B&&(O=B),!B&&O&&(B=O),!O||!B){let U=b.getPaintProperty(l);O=M[U],B=M[U]}O&&B&&T.setConstantPatternPositions(O,B)}function Md(T,l,d,v,b,M,O){let B=T.context.gl,U=\"fill-pattern\",W=d.paint.get(U),Z=W&&W.constantOr(1),Q=d.getCrossfadeParameters(),st,At,pt,yt,dt;O?(At=Z&&!d.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",st=B.LINES):(At=Z?\"fillPattern\":\"fill\",st=B.TRIANGLES);let Ft=W.constantOr(null);for(let Wt of v){let St=l.getTile(Wt);if(Z&&!St.patternsLoaded())continue;let Bt=St.getBucket(d);if(!Bt)continue;let Yt=Bt.programConfigurations.get(d.id),Qt=T.useProgram(At,Yt),se=T.style.map.terrain&&T.style.map.terrain.getTerrainData(Wt);Z&&(T.context.activeTexture.set(B.TEXTURE0),St.imageAtlasTexture.bind(B.LINEAR,B.CLAMP_TO_EDGE),Yt.updatePaintBuffers(Q)),Td(Yt,U,Ft,St,d);let pe=se?Wt:null,he=T.translatePosMatrix(pe?pe.posMatrix:Wt.posMatrix,St,d.paint.get(\"fill-translate\"),d.paint.get(\"fill-translate-anchor\"));if(O){yt=Bt.indexBuffer2,dt=Bt.segments2;let xe=[B.drawingBufferWidth,B.drawingBufferHeight];pt=At===\"fillOutlinePattern\"&&Z?yd(he,T,Q,St,xe):_d(he,xe)}else yt=Bt.indexBuffer,dt=Bt.segments,pt=Z?gd(he,T,Q,St):md(he);Qt.draw(T.context,st,b,T.stencilModeForClipping(Wt),M,It.disabled,pt,se,d.id,Bt.layoutVertexBuffer,yt,dt,d.paint,T.transform.zoom,Yt)}}function Ed(T,l,d,v,b,M,O){let B=T.context,U=B.gl,W=\"fill-extrusion-pattern\",Z=d.paint.get(W),Q=Z.constantOr(1),st=d.getCrossfadeParameters(),At=d.paint.get(\"fill-extrusion-opacity\"),pt=Z.constantOr(null);for(let yt of v){let dt=l.getTile(yt),Ft=dt.getBucket(d);if(!Ft)continue;let Wt=T.style.map.terrain&&T.style.map.terrain.getTerrainData(yt),St=Ft.programConfigurations.get(d.id),Bt=T.useProgram(Q?\"fillExtrusionPattern\":\"fillExtrusion\",St);Q&&(T.context.activeTexture.set(U.TEXTURE0),dt.imageAtlasTexture.bind(U.LINEAR,U.CLAMP_TO_EDGE),St.updatePaintBuffers(st)),Td(St,W,pt,dt,d);let Yt=T.translatePosMatrix(yt.posMatrix,dt,d.paint.get(\"fill-extrusion-translate\"),d.paint.get(\"fill-extrusion-translate-anchor\")),Qt=d.paint.get(\"fill-extrusion-vertical-gradient\"),se=Q?Ul(Yt,T,Qt,At,yt,st,dt):Up(Yt,T,Qt,At);Bt.draw(B,B.gl.TRIANGLES,b,M,O,It.backCCW,se,Wt,d.id,Ft.layoutVertexBuffer,Ft.indexBuffer,Ft.segments,d.paint,T.transform.zoom,St,T.style.map.terrain&&Ft.centroidVertexBuffer)}}function Px(T,l,d,v,b,M,O){let B=T.context,U=B.gl,W=d.fbo;if(!W)return;let Z=T.useProgram(\"hillshade\"),Q=T.style.map.terrain&&T.style.map.terrain.getTerrainData(l);B.activeTexture.set(U.TEXTURE0),U.bindTexture(U.TEXTURE_2D,W.colorAttachment.get()),Z.draw(B,U.TRIANGLES,b,M,O,It.disabled,((st,At,pt,yt)=>{let dt=pt.paint.get(\"hillshade-shadow-color\"),Ft=pt.paint.get(\"hillshade-highlight-color\"),Wt=pt.paint.get(\"hillshade-accent-color\"),St=pt.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);pt.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(St-=st.transform.angle);let Bt=!st.options.moving;return{u_matrix:yt?yt.posMatrix:st.transform.calculatePosMatrix(At.tileID.toUnwrapped(),Bt),u_image:0,u_latrange:qe(0,At.tileID),u_light:[pt.paint.get(\"hillshade-exaggeration\"),St],u_shadow:dt,u_highlight:Ft,u_accent:Wt}})(T,d,v,Q?l:null),Q,v.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments)}function Xm(T,l,d,v,b,M){let O=T.context,B=O.gl,U=l.dem;if(U&&U.data){let W=U.dim,Z=U.stride,Q=U.getPixels();if(O.activeTexture.set(B.TEXTURE1),O.pixelStoreUnpackPremultiplyAlpha.set(!1),l.demTexture=l.demTexture||T.getTileTexture(Z),l.demTexture){let At=l.demTexture;At.update(Q,{premultiply:!1}),At.bind(B.NEAREST,B.CLAMP_TO_EDGE)}else l.demTexture=new Zt(O,Q,B.RGBA,{premultiply:!1}),l.demTexture.bind(B.NEAREST,B.CLAMP_TO_EDGE);O.activeTexture.set(B.TEXTURE0);let st=l.fbo;if(!st){let At=new Zt(O,{width:W,height:W,data:null},B.RGBA);At.bind(B.LINEAR,B.CLAMP_TO_EDGE),st=l.fbo=O.createFramebuffer(W,W,!0,!1),st.colorAttachment.set(At.texture)}O.bindFramebuffer.set(st.framebuffer),O.viewport.set([0,0,W,W]),T.useProgram(\"hillshadePrepare\").draw(O,B.TRIANGLES,v,b,M,It.disabled,((At,pt)=>{let yt=pt.stride,dt=n.Z();return n.aS(dt,0,n.N,-n.N,0,0,1),n.$(dt,dt,[0,-n.N,0]),{u_matrix:dt,u_image:1,u_dimension:[yt,yt],u_zoom:At.overscaledZ,u_unpack:pt.getUnpackVector()}})(l.tileID,U),null,d.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments),l.needsHillshadePrepare=!1}}function e_(T,l,d,v,b,M){let O=v.paint.get(\"raster-fade-duration\");if(!M&&O>0){let B=n.h.now(),U=(B-T.timeAdded)/O,W=l?(B-l.timeAdded)/O:-1,Z=d.getSource(),Q=b.coveringZoomLevel({tileSize:Z.tileSize,roundZoom:Z.roundZoom}),st=!l||Math.abs(l.tileID.overscaledZ-Q)>Math.abs(T.tileID.overscaledZ-Q),At=st&&T.refreshedUponExpiration?1:n.ad(st?U:1-W,0,1);return T.refreshedUponExpiration&&U>=1&&(T.refreshedUponExpiration=!1),l?{opacity:1,mix:1-At}:{opacity:At,mix:0}}return{opacity:1,mix:0}}let r_=new n.aT(1,0,0,1),gf=new n.aT(0,1,0,1),Oa=new n.aT(0,0,1,1),jn=new n.aT(1,0,1,1),i_=new n.aT(0,1,1,1);function Pd(T,l,d,v){Yp(T,0,l+d/2,T.transform.width,d,v)}function Zp(T,l,d,v){Yp(T,l-d/2,0,d,T.transform.height,v)}function Yp(T,l,d,v,b,M){let O=T.context,B=O.gl;B.enable(B.SCISSOR_TEST),B.scissor(l*T.pixelRatio,d*T.pixelRatio,v*T.pixelRatio,b*T.pixelRatio),O.clear({color:M}),B.disable(B.SCISSOR_TEST)}function Km(T,l,d){let v=T.context,b=v.gl,M=d.posMatrix,O=T.useProgram(\"debug\"),B=ci.disabled,U=$e.disabled,W=T.colorModeForRenderPass(),Z=\"$debug\",Q=T.style.map.terrain&&T.style.map.terrain.getTerrainData(d);v.activeTexture.set(b.TEXTURE0);let st=l.getTileByID(d.key).latestRawTileData,At=Math.floor((st&&st.byteLength||0)/1024),pt=l.getTile(d).tileSize,yt=512/Math.min(pt,512)*(d.overscaledZ/T.transform.zoom)*.5,dt=d.canonical.toString();d.overscaledZ!==d.canonical.z&&(dt+=` => ${d.overscaledZ}`),function(Ft,Wt){Ft.initDebugOverlayCanvas();let St=Ft.debugOverlayCanvas,Bt=Ft.context.gl,Yt=Ft.debugOverlayCanvas.getContext(\"2d\");Yt.clearRect(0,0,St.width,St.height),Yt.shadowColor=\"white\",Yt.shadowBlur=2,Yt.lineWidth=1.5,Yt.strokeStyle=\"white\",Yt.textBaseline=\"top\",Yt.font=\"bold 36px Open Sans, sans-serif\",Yt.fillText(Wt,5,5),Yt.strokeText(Wt,5,5),Ft.debugOverlayTexture.update(St),Ft.debugOverlayTexture.bind(Bt.LINEAR,Bt.CLAMP_TO_EDGE)}(T,`${dt} ${At}kB`),O.draw(v,b.TRIANGLES,B,U,Qi.alphaBlended,It.disabled,Lt(M,n.aT.transparent,yt),null,Z,T.debugBuffer,T.quadTriangleIndexBuffer,T.debugSegments),O.draw(v,b.LINE_STRIP,B,U,W,It.disabled,Lt(M,n.aT.red),Q,Z,T.debugBuffer,T.tileBorderIndexBuffer,T.debugSegments)}function Pn(T,l,d){let v=T.context,b=v.gl,M=T.colorModeForRenderPass(),O=new ci(b.LEQUAL,ci.ReadWrite,T.depthRangeFor3D),B=T.useProgram(\"terrain\"),U=l.getTerrainMesh();v.bindFramebuffer.set(null),v.viewport.set([0,0,T.width,T.height]);for(let W of d){let Z=T.renderToTexture.getTexture(W),Q=l.getTerrainData(W.tileID);v.activeTexture.set(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,Z.texture);let st={u_matrix:T.transform.calculatePosMatrix(W.tileID.toUnwrapped()),u_texture:0,u_ele_delta:l.getMeshFrameDelta(T.transform.zoom)};B.draw(v,b.TRIANGLES,O,$e.disabled,M,It.backCCW,st,Q,\"terrain\",U.vertexBuffer,U.indexBuffer,U.segments)}}class oh{constructor(l,d){this.context=new kc(l),this.transform=d,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:n.Z(),renderTime:0},this.setup(),this.numSublayers=os.maxUnderzooming+os.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Lc}resize(l,d,v){if(this.width=Math.floor(l*v),this.height=Math.floor(d*v),this.pixelRatio=v,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let b of this.style._order)this.style._layers[b].resize()}setup(){let l=this.context,d=new n.a_;d.emplaceBack(0,0),d.emplaceBack(n.N,0),d.emplaceBack(0,n.N),d.emplaceBack(n.N,n.N),this.tileExtentBuffer=l.createVertexBuffer(d,mo.members),this.tileExtentSegments=n.S.simpleSegment(0,0,4,2);let v=new n.a_;v.emplaceBack(0,0),v.emplaceBack(n.N,0),v.emplaceBack(0,n.N),v.emplaceBack(n.N,n.N),this.debugBuffer=l.createVertexBuffer(v,mo.members),this.debugSegments=n.S.simpleSegment(0,0,4,5);let b=new n.V;b.emplaceBack(0,0,0,0),b.emplaceBack(n.N,0,n.N,0),b.emplaceBack(0,n.N,0,n.N),b.emplaceBack(n.N,n.N,n.N,n.N),this.rasterBoundsBuffer=l.createVertexBuffer(b,$n.members),this.rasterBoundsSegments=n.S.simpleSegment(0,0,4,2);let M=new n.a_;M.emplaceBack(0,0),M.emplaceBack(1,0),M.emplaceBack(0,1),M.emplaceBack(1,1),this.viewportBuffer=l.createVertexBuffer(M,mo.members),this.viewportSegments=n.S.simpleSegment(0,0,4,2);let O=new n.a$;O.emplaceBack(0),O.emplaceBack(1),O.emplaceBack(3),O.emplaceBack(2),O.emplaceBack(0),this.tileBorderIndexBuffer=l.createIndexBuffer(O);let B=new n.b0;B.emplaceBack(0,1,2),B.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=l.createIndexBuffer(B);let U=this.context.gl;this.stencilClearMode=new $e({func:U.ALWAYS,mask:0},0,255,U.ZERO,U.ZERO,U.ZERO)}clearStencil(){let l=this.context,d=l.gl;this.nextStencilID=1,this.currentStencilSource=void 0;let v=n.Z();n.aS(v,0,this.width,this.height,0,0,1),n.a0(v,v,[d.drawingBufferWidth,d.drawingBufferHeight,0]),this.useProgram(\"clippingMask\").draw(l,d.TRIANGLES,ci.disabled,this.stencilClearMode,Qi.disabled,It.disabled,$t(v),null,\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(l,d){if(this.currentStencilSource===l.source||!l.isTileClipped()||!d||!d.length)return;this.currentStencilSource=l.source;let v=this.context,b=v.gl;this.nextStencilID+d.length>256&&this.clearStencil(),v.setColorMode(Qi.disabled),v.setDepthMode(ci.disabled);let M=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let O of d){let B=this._tileClippingMaskIDs[O.key]=this.nextStencilID++,U=this.style.map.terrain&&this.style.map.terrain.getTerrainData(O);M.draw(v,b.TRIANGLES,ci.disabled,new $e({func:b.ALWAYS,mask:0},B,255,b.KEEP,b.KEEP,b.REPLACE),Qi.disabled,It.disabled,$t(O.posMatrix),U,\"$clipping\",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let l=this.nextStencilID++,d=this.context.gl;return new $e({func:d.NOTEQUAL,mask:255},l,255,d.KEEP,d.KEEP,d.REPLACE)}stencilModeForClipping(l){let d=this.context.gl;return new $e({func:d.EQUAL,mask:255},this._tileClippingMaskIDs[l.key],0,d.KEEP,d.KEEP,d.REPLACE)}stencilConfigForOverlap(l){let d=this.context.gl,v=l.sort((O,B)=>B.overscaledZ-O.overscaledZ),b=v[v.length-1].overscaledZ,M=v[0].overscaledZ-b+1;if(M>1){this.currentStencilSource=void 0,this.nextStencilID+M>256&&this.clearStencil();let O={};for(let B=0;B=0;this.currentLayer--){let U=this.style._layers[v[this.currentLayer]],W=b[U.source],Z=M[U.source];this._renderTileClippingMasks(U,Z),this.renderLayer(this,W,U,Z)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerdt.source&&!dt.isHidden(Z)?[W.sourceCaches[dt.source]]:[]),At=st.filter(dt=>dt.getSource().type===\"vector\"),pt=st.filter(dt=>dt.getSource().type!==\"vector\"),yt=dt=>{(!Q||Q.getSource().maxzoomyt(dt)),Q||pt.forEach(dt=>yt(dt)),Q}(this.style,this.transform.zoom);U&&function(W,Z,Q){for(let st=0;stAt.style.map.terrain.getElevation(Qt,dr,Xe):null)}}}(U,M,B,O,B.layout.get(\"text-rotation-alignment\"),B.layout.get(\"text-pitch-alignment\"),W),B.paint.get(\"icon-opacity\").constantOr(1)!==0&&wt(M,O,B,U,!1,B.paint.get(\"icon-translate\"),B.paint.get(\"icon-translate-anchor\"),B.layout.get(\"icon-rotation-alignment\"),B.layout.get(\"icon-pitch-alignment\"),B.layout.get(\"icon-keep-upright\"),Z,Q),B.paint.get(\"text-opacity\").constantOr(1)!==0&&wt(M,O,B,U,!0,B.paint.get(\"text-translate\"),B.paint.get(\"text-translate-anchor\"),B.layout.get(\"text-rotation-alignment\"),B.layout.get(\"text-pitch-alignment\"),B.layout.get(\"text-keep-upright\"),Z,Q),O.map.showCollisionBoxes&&(Zm(M,O,B,U,B.paint.get(\"text-translate\"),B.paint.get(\"text-translate-anchor\"),!0),Zm(M,O,B,U,B.paint.get(\"icon-translate\"),B.paint.get(\"icon-translate-anchor\"),!1))})(l,d,v,b,this.style.placement.variableOffsets);break;case\"circle\":(function(M,O,B,U){if(M.renderPass!==\"translucent\")return;let W=B.paint.get(\"circle-opacity\"),Z=B.paint.get(\"circle-stroke-width\"),Q=B.paint.get(\"circle-stroke-opacity\"),st=!B.layout.get(\"circle-sort-key\").isConstant();if(W.constantOr(1)===0&&(Z.constantOr(1)===0||Q.constantOr(1)===0))return;let At=M.context,pt=At.gl,yt=M.depthModeForSublayer(0,ci.ReadOnly),dt=$e.disabled,Ft=M.colorModeForRenderPass(),Wt=[];for(let St=0;StSt.sortKey-Bt.sortKey);for(let St of Wt){let{programConfiguration:Bt,program:Yt,layoutVertexBuffer:Qt,indexBuffer:se,uniformValues:pe,terrainData:he}=St.state;Yt.draw(At,pt.TRIANGLES,yt,dt,Ft,It.disabled,pe,he,B.id,Qt,se,St.segments,B.paint,M.transform.zoom,Bt)}})(l,d,v,b);break;case\"heatmap\":(function(M,O,B,U){if(B.paint.get(\"heatmap-opacity\")!==0)if(M.renderPass===\"offscreen\"){let W=M.context,Z=W.gl,Q=$e.disabled,st=new Qi([Z.ONE,Z.ONE],n.aT.transparent,[!0,!0,!0,!0]);(function(At,pt,yt){let dt=At.gl;At.activeTexture.set(dt.TEXTURE1),At.viewport.set([0,0,pt.width/4,pt.height/4]);let Ft=yt.heatmapFbo;if(Ft)dt.bindTexture(dt.TEXTURE_2D,Ft.colorAttachment.get()),At.bindFramebuffer.set(Ft.framebuffer);else{let Wt=dt.createTexture();dt.bindTexture(dt.TEXTURE_2D,Wt),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_WRAP_S,dt.CLAMP_TO_EDGE),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_WRAP_T,dt.CLAMP_TO_EDGE),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_MIN_FILTER,dt.LINEAR),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_MAG_FILTER,dt.LINEAR),Ft=yt.heatmapFbo=At.createFramebuffer(pt.width/4,pt.height/4,!1,!1),function(St,Bt,Yt,Qt){var se,pe;let he=St.gl,xe=(se=St.HALF_FLOAT)!==null&&se!==void 0?se:he.UNSIGNED_BYTE,We=(pe=St.RGBA16F)!==null&&pe!==void 0?pe:he.RGBA;he.texImage2D(he.TEXTURE_2D,0,We,Bt.width/4,Bt.height/4,0,he.RGBA,xe,null),Qt.colorAttachment.set(Yt)}(At,pt,Wt,Ft)}})(W,M,B),W.clear({color:n.aT.transparent});for(let At=0;At{let St=n.Z();n.aS(St,0,yt.width,yt.height,0,0,1);let Bt=yt.context.gl;return{u_matrix:St,u_world:[Bt.drawingBufferWidth,Bt.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:dt.paint.get(\"heatmap-opacity\")}})(W,Z),null,Z.id,W.viewportBuffer,W.quadTriangleIndexBuffer,W.viewportSegments,Z.paint,W.transform.zoom)}(M,B))})(l,d,v,b);break;case\"line\":(function(M,O,B,U){if(M.renderPass!==\"translucent\")return;let W=B.paint.get(\"line-opacity\"),Z=B.paint.get(\"line-width\");if(W.constantOr(1)===0||Z.constantOr(1)===0)return;let Q=M.depthModeForSublayer(0,ci.ReadOnly),st=M.colorModeForRenderPass(),At=B.paint.get(\"line-dasharray\"),pt=B.paint.get(\"line-pattern\"),yt=pt.constantOr(1),dt=B.paint.get(\"line-gradient\"),Ft=B.getCrossfadeParameters(),Wt=yt?\"linePattern\":At?\"lineSDF\":dt?\"lineGradient\":\"line\",St=M.context,Bt=St.gl,Yt=!0;for(let Qt of U){let se=O.getTile(Qt);if(yt&&!se.patternsLoaded())continue;let pe=se.getBucket(B);if(!pe)continue;let he=pe.programConfigurations.get(B.id),xe=M.context.program.get(),We=M.useProgram(Wt,he),Kr=Yt||We.program!==xe,Me=M.style.map.terrain&&M.style.map.terrain.getTerrainData(Qt),dr=pt.constantOr(null);if(dr&&se.imageAtlas){let Jr=se.imageAtlas,Vr=Jr.patternPositions[dr.to.toString()],ei=Jr.patternPositions[dr.from.toString()];Vr&&ei&&he.setConstantPatternPositions(Vr,ei)}let Xe=Me?Qt:null,Vi=yt?Ss(M,se,B,Ft,Xe):At?Bs(M,se,B,At,Ft,Xe):dt?ts(M,se,B,pe.lineClipsArray.length,Xe):ti(M,se,B,Xe);if(yt)St.activeTexture.set(Bt.TEXTURE0),se.imageAtlasTexture.bind(Bt.LINEAR,Bt.CLAMP_TO_EDGE),he.updatePaintBuffers(Ft);else if(At&&(Kr||M.lineAtlas.dirty))St.activeTexture.set(Bt.TEXTURE0),M.lineAtlas.bind(St);else if(dt){let Jr=pe.gradients[B.id],Vr=Jr.texture;if(B.gradientVersion!==Jr.version){let ei=256;if(B.stepInterpolant){let Rn=O.getSource().maxzoom,$i=Qt.canonical.z===Rn?Math.ceil(1<0?d.pop():null}isPatternMissing(l){if(!l)return!1;if(!l.from||!l.to)return!0;let d=this.imageManager.getPattern(l.from.toString()),v=this.imageManager.getPattern(l.to.toString());return!d||!v}useProgram(l,d){this.cache=this.cache||{};let v=l+(d?d.cacheKey:\"\")+(this._showOverdrawInspector?\"/overdraw\":\"\")+(this.style.map.terrain?\"/terrain\":\"\");return this.cache[v]||(this.cache[v]=new hu(this.context,Yi[l],d,Nm[l],this._showOverdrawInspector,this.style.map.terrain)),this.cache[v]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let l=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(l.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement(\"canvas\"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Zt(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){let{drawingBufferWidth:l,drawingBufferHeight:d}=this.context.gl;return this.width!==l||this.height!==d}}class fi{constructor(l,d){this.points=l,this.planes=d}static fromInvProjectionMatrix(l,d,v){let b=Math.pow(2,v),M=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(B=>{let U=1/(B=n.ag([],B,l))[3]/d*b;return n.b3(B,B,[U,U,1/B[3],U])}),O=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(B=>{let U=function(st,At){var pt=At[0],yt=At[1],dt=At[2],Ft=pt*pt+yt*yt+dt*dt;return Ft>0&&(Ft=1/Math.sqrt(Ft)),st[0]=At[0]*Ft,st[1]=At[1]*Ft,st[2]=At[2]*Ft,st}([],function(st,At,pt){var yt=At[0],dt=At[1],Ft=At[2],Wt=pt[0],St=pt[1],Bt=pt[2];return st[0]=dt*Bt-Ft*St,st[1]=Ft*Wt-yt*Bt,st[2]=yt*St-dt*Wt,st}([],ut([],M[B[0]],M[B[1]]),ut([],M[B[2]],M[B[1]]))),W=-((Z=U)[0]*(Q=M[B[1]])[0]+Z[1]*Q[1]+Z[2]*Q[2]);var Z,Q;return U.concat(W)});return new fi(M,O)}}class du{constructor(l,d){this.min=l,this.max=d,this.center=function(v,b,M){return v[0]=.5*b[0],v[1]=.5*b[1],v[2]=.5*b[2],v}([],function(v,b,M){return v[0]=b[0]+M[0],v[1]=b[1]+M[1],v[2]=b[2]+M[2],v}([],this.min,this.max))}quadrant(l){let d=[l%2==0,l<2],v=K(this.min),b=K(this.max);for(let M=0;M=0&&O++;if(O===0)return 0;O!==d.length&&(v=!1)}if(v)return 2;for(let b=0;b<3;b++){let M=Number.MAX_VALUE,O=-Number.MAX_VALUE;for(let B=0;Bthis.max[b]-this.min[b])return 0}return 1}}class _f{constructor(l=0,d=0,v=0,b=0){if(isNaN(l)||l<0||isNaN(d)||d<0||isNaN(v)||v<0||isNaN(b)||b<0)throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");this.top=l,this.bottom=d,this.left=v,this.right=b}interpolate(l,d,v){return d.top!=null&&l.top!=null&&(this.top=n.B.number(l.top,d.top,v)),d.bottom!=null&&l.bottom!=null&&(this.bottom=n.B.number(l.bottom,d.bottom,v)),d.left!=null&&l.left!=null&&(this.left=n.B.number(l.left,d.left,v)),d.right!=null&&l.right!=null&&(this.right=n.B.number(l.right,d.right,v)),this}getCenter(l,d){let v=n.ad((this.left+l-this.right)/2,0,l),b=n.ad((this.top+d-this.bottom)/2,0,d);return new n.P(v,b)}equals(l){return this.top===l.top&&this.bottom===l.bottom&&this.left===l.left&&this.right===l.right}clone(){return new _f(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class Qp{constructor(l,d,v,b,M){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=M===void 0||!!M,this._minZoom=l||0,this._maxZoom=d||22,this._minPitch=v??0,this._maxPitch=b??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new n.L(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new _f,this._posMatrixCache={},this._alignedPosMatrixCache={},this._minEleveationForCurrentTile=0}clone(){let l=new Qp(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return l.apply(this),l}apply(l){this.tileSize=l.tileSize,this.latRange=l.latRange,this.width=l.width,this.height=l.height,this._center=l._center,this._elevation=l._elevation,this._minEleveationForCurrentTile=l._minEleveationForCurrentTile,this.zoom=l.zoom,this.angle=l.angle,this._fov=l._fov,this._pitch=l._pitch,this._unmodified=l._unmodified,this._edgeInsets=l._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(l){this._minZoom!==l&&(this._minZoom=l,this.zoom=Math.max(this.zoom,l))}get maxZoom(){return this._maxZoom}set maxZoom(l){this._maxZoom!==l&&(this._maxZoom=l,this.zoom=Math.min(this.zoom,l))}get minPitch(){return this._minPitch}set minPitch(l){this._minPitch!==l&&(this._minPitch=l,this.pitch=Math.max(this.pitch,l))}get maxPitch(){return this._maxPitch}set maxPitch(l){this._maxPitch!==l&&(this._maxPitch=l,this.pitch=Math.min(this.pitch,l))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(l){l===void 0?l=!0:l===null&&(l=!1),this._renderWorldCopies=l}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new n.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(l){let d=-n.b5(l,-180,180)*Math.PI/180;this.angle!==d&&(this._unmodified=!1,this.angle=d,this._calcMatrices(),this.rotationMatrix=function(){var v=new n.A(4);return n.A!=Float32Array&&(v[1]=0,v[2]=0),v[0]=1,v[3]=1,v}(),function(v,b,M){var O=b[0],B=b[1],U=b[2],W=b[3],Z=Math.sin(M),Q=Math.cos(M);v[0]=O*Q+U*Z,v[1]=B*Q+W*Z,v[2]=O*-Z+U*Q,v[3]=B*-Z+W*Q}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(l){let d=n.ad(l,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==d&&(this._unmodified=!1,this._pitch=d,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(l){l=Math.max(.01,Math.min(60,l)),this._fov!==l&&(this._unmodified=!1,this._fov=l/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(l){let d=Math.min(Math.max(l,this.minZoom),this.maxZoom);this._zoom!==d&&(this._unmodified=!1,this._zoom=d,this.tileZoom=Math.max(0,Math.floor(d)),this.scale=this.zoomScale(d),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(l){l.lat===this._center.lat&&l.lng===this._center.lng||(this._unmodified=!1,this._center=l,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(l){l!==this._elevation&&(this._elevation=l,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(l){this._edgeInsets.equals(l)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,l,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(l){return this._edgeInsets.equals(l)}interpolatePadding(l,d,v){this._unmodified=!1,this._edgeInsets.interpolate(l,d,v),this._constrain(),this._calcMatrices()}coveringZoomLevel(l){let d=(l.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/l.tileSize));return Math.max(0,d)}getVisibleUnwrappedCoordinates(l){let d=[new n.b6(0,l)];if(this._renderWorldCopies){let v=this.pointCoordinate(new n.P(0,0)),b=this.pointCoordinate(new n.P(this.width,0)),M=this.pointCoordinate(new n.P(this.width,this.height)),O=this.pointCoordinate(new n.P(0,this.height)),B=Math.floor(Math.min(v.x,b.x,M.x,O.x)),U=Math.floor(Math.max(v.x,b.x,M.x,O.x)),W=1;for(let Z=B-W;Z<=U+W;Z++)Z!==0&&d.push(new n.b6(Z,l))}return d}coveringTiles(l){var d,v;let b=this.coveringZoomLevel(l),M=b;if(l.minzoom!==void 0&&bl.maxzoom&&(b=l.maxzoom);let O=this.pointCoordinate(this.getCameraPoint()),B=n.U.fromLngLat(this.center),U=Math.pow(2,b),W=[U*O.x,U*O.y,0],Z=[U*B.x,U*B.y,0],Q=fi.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,b),st=l.minzoom||0;!l.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(st=b);let At=l.terrain?2/Math.min(this.tileSize,l.tileSize)*this.tileSize:3,pt=St=>({aabb:new du([St*U,0,0],[(St+1)*U,U,0]),zoom:0,x:0,y:0,wrap:St,fullyVisible:!1}),yt=[],dt=[],Ft=b,Wt=l.reparseOverscaled?M:b;if(this._renderWorldCopies)for(let St=1;St<=3;St++)yt.push(pt(-St)),yt.push(pt(St));for(yt.push(pt(0));yt.length>0;){let St=yt.pop(),Bt=St.x,Yt=St.y,Qt=St.fullyVisible;if(!Qt){let We=St.aabb.intersects(Q);if(We===0)continue;Qt=We===2}let se=l.terrain?W:Z,pe=St.aabb.distanceX(se),he=St.aabb.distanceY(se),xe=Math.max(Math.abs(pe),Math.abs(he));if(St.zoom===Ft||xe>At+(1<=st){let We=Ft-St.zoom,Kr=W[0]-.5-(Bt<>1),dr=St.zoom+1,Xe=St.aabb.quadrant(We);if(l.terrain){let Vi=new n.O(dr,St.wrap,dr,Kr,Me),Jr=l.terrain.getMinMaxElevation(Vi),Vr=(d=Jr.minElevation)!==null&&d!==void 0?d:this.elevation,ei=(v=Jr.maxElevation)!==null&&v!==void 0?v:this.elevation;Xe=new du([Xe.min[0],Xe.min[1],Vr],[Xe.max[0],Xe.max[1],ei])}yt.push({aabb:Xe,zoom:dr,x:Kr,y:Me,wrap:St.wrap,fullyVisible:Qt})}}return dt.sort((St,Bt)=>St.distanceSq-Bt.distanceSq).map(St=>St.tileID)}resize(l,d){this.width=l,this.height=d,this.pixelsToGLUnits=[2/l,-2/d],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(l){return Math.pow(2,l)}scaleZoom(l){return Math.log(l)/Math.LN2}project(l){let d=n.ad(l.lat,-this.maxValidLatitude,this.maxValidLatitude);return new n.P(n.G(l.lng)*this.worldSize,n.H(d)*this.worldSize)}unproject(l){return new n.U(l.x/this.worldSize,l.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(l){let d=this.pointLocation(this.centerPoint,l),v=l.getElevationForLngLatZoom(d,this.tileZoom);if(!(this.elevation-v))return;let b=this.getCameraPosition(),M=n.U.fromLngLat(b.lngLat,b.altitude),O=n.U.fromLngLat(d,v),B=M.x-O.x,U=M.y-O.y,W=M.z-O.z,Z=Math.sqrt(B*B+U*U+W*W),Q=this.scaleZoom(this.cameraToCenterDistance/Z/this.tileSize);this._elevation=v,this._center=d,this.zoom=Q}setLocationAtPoint(l,d){let v=this.pointCoordinate(d),b=this.pointCoordinate(this.centerPoint),M=this.locationCoordinate(l),O=new n.U(M.x-(v.x-b.x),M.y-(v.y-b.y));this.center=this.coordinateLocation(O),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(l,d){return d?this.coordinatePoint(this.locationCoordinate(l),d.getElevationForLngLatZoom(l,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(l))}pointLocation(l,d){return this.coordinateLocation(this.pointCoordinate(l,d))}locationCoordinate(l){return n.U.fromLngLat(l)}coordinateLocation(l){return l&&l.toLngLat()}pointCoordinate(l,d){if(d){let st=d.pointCoordinate(l);if(st!=null)return st}let v=[l.x,l.y,0,1],b=[l.x,l.y,1,1];n.ag(v,v,this.pixelMatrixInverse),n.ag(b,b,this.pixelMatrixInverse);let M=v[3],O=b[3],B=v[1]/M,U=b[1]/O,W=v[2]/M,Z=b[2]/O,Q=W===Z?0:(0-W)/(Z-W);return new n.U(n.B.number(v[0]/M,b[0]/O,Q)/this.worldSize,n.B.number(B,U,Q)/this.worldSize)}coordinatePoint(l,d=0,v=this.pixelMatrix){let b=[l.x*this.worldSize,l.y*this.worldSize,d,1];return n.ag(b,b,v),new n.P(b[0]/b[3],b[1]/b[3])}getBounds(){let l=Math.max(0,this.height/2-this.getHorizon());return new wi().extend(this.pointLocation(new n.P(0,l))).extend(this.pointLocation(new n.P(this.width,l))).extend(this.pointLocation(new n.P(this.width,this.height))).extend(this.pointLocation(new n.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new wi([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(l){l?(this.lngRange=[l.getWest(),l.getEast()],this.latRange=[l.getSouth(),l.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])}calculatePosMatrix(l,d=!1){let v=l.key,b=d?this._alignedPosMatrixCache:this._posMatrixCache;if(b[v])return b[v];let M=l.canonical,O=this.worldSize/this.zoomScale(M.z),B=M.x+Math.pow(2,M.z)*l.wrap,U=n.ao(new Float64Array(16));return n.$(U,U,[B*O,M.y*O,0]),n.a0(U,U,[O/n.N,O/n.N,1]),n.a1(U,d?this.alignedProjMatrix:this.projMatrix,U),b[v]=new Float32Array(U),b[v]}customLayerMatrix(){return this.mercatorMatrix.slice()}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let l,d,v,b,M=-90,O=90,B=-180,U=180,W=this.size,Z=this._unmodified;if(this.latRange){let At=this.latRange;M=n.H(At[1])*this.worldSize,O=n.H(At[0])*this.worldSize,l=O-MO&&(b=O-pt)}if(this.lngRange){let At=(B+U)/2,pt=n.b5(Q.x,At-this.worldSize/2,At+this.worldSize/2),yt=W.x/2;pt-ytU&&(v=U-yt)}v===void 0&&b===void 0||(this.center=this.unproject(new n.P(v!==void 0?v:Q.x,b!==void 0?b:Q.y)).wrap()),this._unmodified=Z,this._constraining=!1}_calcMatrices(){if(!this.height)return;let l=this.centerOffset,d=this.point.x,v=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=n.b7(1,this.center.lat)*this.worldSize;let b=n.ao(new Float64Array(16));n.a0(b,b,[this.width/2,-this.height/2,1]),n.$(b,b,[1,-1,0]),this.labelPlaneMatrix=b,b=n.ao(new Float64Array(16)),n.a0(b,b,[1,-1,1]),n.$(b,b,[-1,-1,0]),n.a0(b,b,[2/this.width,2/this.height,1]),this.glCoordMatrix=b;let M=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),O=Math.min(this.elevation,this._minEleveationForCurrentTile),B=M-O*this._pixelPerMeter/Math.cos(this._pitch),U=O<0?B:M,W=Math.PI/2+this._pitch,Z=this._fov*(.5+l.y/this.height),Q=Math.sin(Z)*U/Math.sin(n.ad(Math.PI-W-Z,.01,Math.PI-.01)),st=this.getHorizon(),At=2*Math.atan(st/this.cameraToCenterDistance)*(.5+l.y/(2*st)),pt=Math.sin(At)*U/Math.sin(n.ad(Math.PI-W-At,.01,Math.PI-.01)),yt=Math.min(Q,pt),dt=1.01*(Math.cos(Math.PI/2-this._pitch)*yt+U),Ft=this.height/50;b=new Float64Array(16),n.b8(b,this._fov,this.width/this.height,Ft,dt),b[8]=2*-l.x/this.width,b[9]=2*l.y/this.height,n.a0(b,b,[1,-1,1]),n.$(b,b,[0,0,-this.cameraToCenterDistance]),n.b9(b,b,this._pitch),n.ae(b,b,this.angle),n.$(b,b,[-d,-v,0]),this.mercatorMatrix=n.a0([],b,[this.worldSize,this.worldSize,this.worldSize]),n.a0(b,b,[1,1,this._pixelPerMeter]),this.pixelMatrix=n.a1(new Float64Array(16),this.labelPlaneMatrix,b),n.$(b,b,[0,0,-this.elevation]),this.projMatrix=b,this.invProjMatrix=n.as([],b),this.pixelMatrix3D=n.a1(new Float64Array(16),this.labelPlaneMatrix,b);let Wt=this.width%2/2,St=this.height%2/2,Bt=Math.cos(this.angle),Yt=Math.sin(this.angle),Qt=d-Math.round(d)+Bt*Wt+Yt*St,se=v-Math.round(v)+Bt*St+Yt*Wt,pe=new Float64Array(b);if(n.$(pe,pe,[Qt>.5?Qt-1:Qt,se>.5?se-1:se,0]),this.alignedProjMatrix=pe,b=n.as(new Float64Array(16),this.pixelMatrix),!b)throw new Error(\"failed to invert matrix\");this.pixelMatrixInverse=b,this._posMatrixCache={},this._alignedPosMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;let l=this.pointCoordinate(new n.P(0,0)),d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.ag(d,d,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){let l=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new n.P(0,l))}getCameraQueryGeometry(l){let d=this.getCameraPoint();if(l.length===1)return[l[0],d];{let v=d.x,b=d.y,M=d.x,O=d.y;for(let B of l)v=Math.min(v,B.x),b=Math.min(b,B.y),M=Math.max(M,B.x),O=Math.max(O,B.y);return[new n.P(v,b),new n.P(M,b),new n.P(M,O),new n.P(v,O),new n.P(v,b)]}}}function ah(T,l){let d,v=!1,b=null,M=null,O=()=>{b=null,v&&(T.apply(M,d),b=setTimeout(O,l),v=!1)};return(...B)=>(v=!0,M=this,d=B,b||O(),b)}class Id{constructor(l){this._getCurrentHash=()=>{let d=window.location.hash.replace(\"#\",\"\");if(this._hashName){let v;return d.split(\"&\").map(b=>b.split(\"=\")).forEach(b=>{b[0]===this._hashName&&(v=b)}),(v&&v[1]||\"\").split(\"/\")}return d.split(\"/\")},this._onHashChange=()=>{let d=this._getCurrentHash();if(d.length>=3&&!d.some(v=>isNaN(v))){let v=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(d[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+d[2],+d[1]],zoom:+d[0],bearing:v,pitch:+(d[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{let d=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,d)}catch{}},this._updateHash=ah(this._updateHashUnthrottled,300),this._hashName=l&&encodeURIComponent(l)}addTo(l){return this._map=l,addEventListener(\"hashchange\",this._onHashChange,!1),this._map.on(\"moveend\",this._updateHash),this}remove(){return removeEventListener(\"hashchange\",this._onHashChange,!1),this._map.off(\"moveend\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(l){let d=this._map.getCenter(),v=Math.round(100*this._map.getZoom())/100,b=Math.ceil((v*Math.LN2+Math.log(512/360/.5))/Math.LN10),M=Math.pow(10,b),O=Math.round(d.lng*M)/M,B=Math.round(d.lat*M)/M,U=this._map.getBearing(),W=this._map.getPitch(),Z=\"\";if(Z+=l?`/${O}/${B}/${v}`:`${v}/${B}/${O}`,(U||W)&&(Z+=\"/\"+Math.round(10*U)/10),W&&(Z+=`/${Math.round(W)}`),this._hashName){let Q=this._hashName,st=!1,At=window.location.hash.slice(1).split(\"&\").map(pt=>{let yt=pt.split(\"=\")[0];return yt===Q?(st=!0,`${yt}=${Z}`):pt}).filter(pt=>pt);return st||At.push(`${Q}=${Z}`),`#${At.join(\"&\")}`}return`#${Z}`}}let lh={linearity:.3,easing:n.ba(0,0,.3,1)},$p=n.e({deceleration:2500,maxSpeed:1400},lh),Xp=n.e({deceleration:20,maxSpeed:1400},lh),n_=n.e({deceleration:1e3,maxSpeed:360},lh),s_=n.e({deceleration:1e3,maxSpeed:90},lh);class Jm{constructor(l){this._map=l,this.clear()}clear(){this._inertiaBuffer=[]}record(l){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:n.h.now(),settings:l})}_drainInertiaBuffer(){let l=this._inertiaBuffer,d=n.h.now();for(;l.length>0&&d-l[0].time>160;)l.shift()}_onMoveEnd(l){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let d={zoom:0,bearing:0,pitch:0,pan:new n.P(0,0),pinchAround:void 0,around:void 0};for(let{settings:M}of this._inertiaBuffer)d.zoom+=M.zoomDelta||0,d.bearing+=M.bearingDelta||0,d.pitch+=M.pitchDelta||0,M.panDelta&&d.pan._add(M.panDelta),M.around&&(d.around=M.around),M.pinchAround&&(d.pinchAround=M.pinchAround);let v=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,b={};if(d.pan.mag()){let M=ch(d.pan.mag(),v,n.e({},$p,l||{}));b.offset=d.pan.mult(M.amount/d.pan.mag()),b.center=this._map.transform.center,hl(b,M)}if(d.zoom){let M=ch(d.zoom,v,Xp);b.zoom=this._map.transform.zoom+M.amount,hl(b,M)}if(d.bearing){let M=ch(d.bearing,v,n_);b.bearing=this._map.transform.bearing+n.ad(M.amount,-179,179),hl(b,M)}if(d.pitch){let M=ch(d.pitch,v,s_);b.pitch=this._map.transform.pitch+M.amount,hl(b,M)}if(b.zoom||b.bearing){let M=d.pinchAround===void 0?d.around:d.pinchAround;b.around=M?this._map.unproject(M):this._map.getCenter()}return this.clear(),n.e(b,{noMoveStart:!0})}}function hl(T,l){(!T.duration||T.durationd.unproject(U)),B=M.reduce((U,W,Z,Q)=>U.add(W.div(Q.length)),new n.P(0,0));super(l,{points:M,point:B,lngLats:O,lngLat:d.unproject(B),originalEvent:v}),this._defaultPrevented=!1}}class o_ extends n.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(l,d,v){super(l,{originalEvent:v}),this._defaultPrevented=!1}}class Fs{constructor(l,d){this._map=l,this._clickTolerance=d.clickTolerance}reset(){delete this._mousedownPos}wheel(l){return this._firePreventable(new o_(l.type,this._map,l))}mousedown(l,d){return this._mousedownPos=d,this._firePreventable(new la(l.type,this._map,l))}mouseup(l){this._map.fire(new la(l.type,this._map,l))}click(l,d){this._mousedownPos&&this._mousedownPos.dist(d)>=this._clickTolerance||this._map.fire(new la(l.type,this._map,l))}dblclick(l){return this._firePreventable(new la(l.type,this._map,l))}mouseover(l){this._map.fire(new la(l.type,this._map,l))}mouseout(l){this._map.fire(new la(l.type,this._map,l))}touchstart(l){return this._firePreventable(new Cd(l.type,this._map,l))}touchmove(l){this._map.fire(new Cd(l.type,this._map,l))}touchend(l){this._map.fire(new Cd(l.type,this._map,l))}touchcancel(l){this._map.fire(new Cd(l.type,this._map,l))}_firePreventable(l){if(this._map.fire(l),l.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class pu{constructor(l){this._map=l}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(l){this._map.fire(new la(l.type,this._map,l))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new la(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(l){this._delayContextMenu?this._contextMenuEvent=l:this._ignoreContextMenu||this._map.fire(new la(l.type,this._map,l)),this._map.listens(\"contextmenu\")&&l.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class In{constructor(l){this._map=l}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(l){return this.transform.pointLocation(n.P.convert(l),this._map.terrain)}}class Kp{constructor(l,d){this._map=l,this._tr=new In(l),this._el=l.getCanvasContainer(),this._container=l.getContainer(),this._clickTolerance=d.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(l,d){this.isEnabled()&&l.shiftKey&&l.button===0&&(c.disableDrag(),this._startPos=this._lastPos=d,this._active=!0)}mousemoveWindow(l,d){if(!this._active)return;let v=d;if(this._lastPos.equals(v)||!this._box&&v.dist(this._startPos)M.fitScreenCoordinates(v,b,this._tr.bearing,{linear:!0})};this._fireEvent(\"boxzoomcancel\",l)}keydown(l){this._active&&l.keyCode===27&&(this.reset(),this._fireEvent(\"boxzoomcancel\",l))}reset(){this._active=!1,this._container.classList.remove(\"maplibregl-crosshair\"),this._box&&(c.remove(this._box),this._box=null),c.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(l,d){return this._map.fire(new n.k(l,{originalEvent:d}))}}function ca(T,l){if(T.length!==l.length)throw new Error(`The number of touches and points are not equal - touches ${T.length}, points ${l.length}`);let d={};for(let v=0;vthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=l.timeStamp),v.length===this.numTouches&&(this.centroid=function(b){let M=new n.P(0,0);for(let O of b)M._add(O);return M.div(b.length)}(d),this.touches=ca(v,d)))}touchmove(l,d,v){if(this.aborted||!this.centroid)return;let b=ca(v,d);for(let M in this.touches){let O=b[M];(!O||O.dist(this.touches[M])>30)&&(this.aborted=!0)}}touchend(l,d,v){if((!this.centroid||l.timeStamp-this.startTime>500)&&(this.aborted=!0),v.length===0){let b=!this.aborted&&this.centroid;if(this.reset(),b)return b}}}class Ld{constructor(l){this.singleTap=new Ba(l),this.numTaps=l.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(l,d,v){this.singleTap.touchstart(l,d,v)}touchmove(l,d,v){this.singleTap.touchmove(l,d,v)}touchend(l,d,v){let b=this.singleTap.touchend(l,d,v);if(b){let M=l.timeStamp-this.lastTime<500,O=!this.lastTap||this.lastTap.dist(b)<30;if(M&&O||this.reset(),this.count++,this.lastTime=l.timeStamp,this.lastTap=b,this.count===this.numTaps)return this.reset(),b}}}class fl{constructor(l){this._tr=new In(l),this._zoomIn=new Ld({numTouches:1,numTaps:2}),this._zoomOut=new Ld({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(l,d,v){this._zoomIn.touchstart(l,d,v),this._zoomOut.touchstart(l,d,v)}touchmove(l,d,v){this._zoomIn.touchmove(l,d,v),this._zoomOut.touchmove(l,d,v)}touchend(l,d,v){let b=this._zoomIn.touchend(l,d,v),M=this._zoomOut.touchend(l,d,v),O=this._tr;return b?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:B=>B.easeTo({duration:300,zoom:O.zoom+1,around:O.unproject(b)},{originalEvent:l})}):M?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:B=>B.easeTo({duration:300,zoom:O.zoom-1,around:O.unproject(M)},{originalEvent:l})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Fa{constructor(l){this._enabled=!!l.enable,this._moveStateManager=l.moveStateManager,this._clickTolerance=l.clickTolerance||1,this._moveFunction=l.move,this._activateOnStart=!!l.activateOnStart,l.assignEvents(this),this.reset()}reset(l){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(l)}_move(...l){let d=this._moveFunction(...l);if(d.bearingDelta||d.pitchDelta||d.around||d.panDelta)return this._active=!0,d}dragStart(l,d){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(l)&&(this._moveStateManager.startMove(l),this._lastPoint=d.length?d[0]:d,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(l,d){if(!this.isEnabled())return;let v=this._lastPoint;if(!v)return;if(l.preventDefault(),!this._moveStateManager.isValidMoveEvent(l))return void this.reset(l);let b=d.length?d[0]:d;return!this._moved&&b.dist(v){T.mousedown=T.dragStart,T.mousemoveWindow=T.dragMove,T.mouseup=T.dragEnd,T.contextmenu=function(l){l.preventDefault()}},za=({enable:T,clickTolerance:l,bearingDegreesPerPixelMoved:d=.8})=>{let v=new Jp({checkCorrectEvent:b=>c.mouseButton(b)===0&&b.ctrlKey||c.mouseButton(b)===2});return new Fa({clickTolerance:l,move:(b,M)=>({bearingDelta:(M.x-b.x)*d}),moveStateManager:v,enable:T,assignEvents:hh})},ro=({enable:T,clickTolerance:l,pitchDegreesPerPixelMoved:d=-.5})=>{let v=new Jp({checkCorrectEvent:b=>c.mouseButton(b)===0&&b.ctrlKey||c.mouseButton(b)===2});return new Fa({clickTolerance:l,move:(b,M)=>({pitchDelta:(M.y-b.y)*d}),moveStateManager:v,enable:T,assignEvents:hh})};class Ue{constructor(l,d){this._minTouches=l.cooperativeGestures?2:1,this._clickTolerance=l.clickTolerance||1,this._map=d,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new n.P(0,0),setTimeout(()=>{this._cancelCooperativeMessage=!1},200)}touchstart(l,d,v){return this._calculateTransform(l,d,v)}touchmove(l,d,v){if(this._map._cooperativeGestures&&(this._minTouches===2&&v.length<2&&!this._cancelCooperativeMessage?this._map._onCooperativeGesture(l,!1,v.length):this._cancelCooperativeMessage||(this._cancelCooperativeMessage=!0)),this._active&&!(v.length0&&(this._active=!0);let b=ca(v,d),M=new n.P(0,0),O=new n.P(0,0),B=0;for(let W in b){let Z=b[W],Q=this._touches[W];Q&&(M._add(Z),O._add(Z.sub(Q)),B++,b[W]=Z)}if(this._touches=b,BMath.abs(T.x)}class Ix extends kd{constructor(l){super(),this._map=l}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(l,d,v){super.touchstart(l,d,v),this._currentTouchCount=v.length}_start(l){this._lastPoints=l,r0(l[0].sub(l[1]))&&(this._valid=!1)}_move(l,d,v){if(this._map._cooperativeGestures&&this._currentTouchCount<3)return;let b=l[0].sub(this._lastPoints[0]),M=l[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(b,M,v.timeStamp),this._valid?(this._lastPoints=l,this._active=!0,{pitchDelta:(b.y+M.y)/2*-.5}):void 0}gestureBeginsVertically(l,d,v){if(this._valid!==void 0)return this._valid;let b=l.mag()>=2,M=d.mag()>=2;if(!b&&!M)return;if(!b||!M)return this._firstMove===void 0&&(this._firstMove=v),v-this._firstMove<100&&void 0;let O=l.y>0==d.y>0;return r0(l)&&r0(d)&&O}}let fh={panStep:100,bearingStep:15,pitchStep:10};class l_{constructor(l){this._tr=new In(l);let d=fh;this._panStep=d.panStep,this._bearingStep=d.bearingStep,this._pitchStep=d.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(l){if(l.altKey||l.ctrlKey||l.metaKey)return;let d=0,v=0,b=0,M=0,O=0;switch(l.keyCode){case 61:case 107:case 171:case 187:d=1;break;case 189:case 109:case 173:d=-1;break;case 37:l.shiftKey?v=-1:(l.preventDefault(),M=-1);break;case 39:l.shiftKey?v=1:(l.preventDefault(),M=1);break;case 38:l.shiftKey?b=1:(l.preventDefault(),O=-1);break;case 40:l.shiftKey?b=-1:(l.preventDefault(),O=1);break;default:return}return this._rotationDisabled&&(v=0,b=0),{cameraAnimation:B=>{let U=this._tr;B.easeTo({duration:300,easeId:\"keyboardHandler\",easing:i0,zoom:d?Math.round(U.zoom)+d*(l.shiftKey?2:1):U.zoom,bearing:U.bearing+v*this._bearingStep,pitch:U.pitch+b*this._pitchStep,offset:[-M*this._panStep,-O*this._panStep],center:U.center},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function i0(T){return T*(2-T)}let n0=4.000244140625;class vf{constructor(l,d){this._onTimeout=v=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(v)},this._map=l,this._tr=new In(l),this._el=l.getCanvasContainer(),this._triggerRenderFrame=d,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(l){this._defaultZoomRate=l}setWheelZoomRate(l){this._wheelZoomRate=l}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(l){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!l&&l.around===\"center\")}disable(){this.isEnabled()&&(this._enabled=!1)}wheel(l){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!l[this._map._metaKey])return;l.preventDefault()}let d=l.deltaMode===WheelEvent.DOM_DELTA_LINE?40*l.deltaY:l.deltaY,v=n.h.now(),b=v-(this._lastWheelEventTime||0);this._lastWheelEventTime=v,d!==0&&d%n0==0?this._type=\"wheel\":d!==0&&Math.abs(d)<4?this._type=\"trackpad\":b>400?(this._type=null,this._lastValue=d,this._timeout=setTimeout(this._onTimeout,40,l)):this._type||(this._type=Math.abs(b*d)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,d+=this._lastValue)),l.shiftKey&&d&&(d/=4),this._type&&(this._lastWheelEvent=l,this._delta-=d,this._active||this._start(l)),l.preventDefault()}_start(l){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let d=c.mousePos(this._el,l),v=this._tr;this._around=n.L.convert(this._aroundCenter?v.center:v.unproject(d)),this._aroundPoint=v.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let l=this._tr.transform;if(this._delta!==0){let B=this._type===\"wheel\"&&Math.abs(this._delta)>n0?this._wheelZoomRate:this._defaultZoomRate,U=2/(1+Math.exp(-Math.abs(this._delta*B)));this._delta<0&&U!==0&&(U=1/U);let W=typeof this._targetZoom==\"number\"?l.zoomScale(this._targetZoom):l.scale;this._targetZoom=Math.min(l.maxZoom,Math.max(l.minZoom,l.scaleZoom(W*U))),this._type===\"wheel\"&&(this._startZoom=l.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}let d=typeof this._targetZoom==\"number\"?this._targetZoom:l.zoom,v=this._startZoom,b=this._easing,M,O=!1;if(this._type===\"wheel\"&&v&&b){let B=Math.min((n.h.now()-this._lastWheelEventTime)/200,1),U=b(B);M=n.B.number(v,d,U),B<1?this._frameId||(this._frameId=!0):O=!0}else M=d,O=!0;return this._active=!0,O&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!O,zoomDelta:M-l.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(l){let d=n.bb;if(this._prevEase){let v=this._prevEase,b=(n.h.now()-v.start)/v.duration,M=v.easing(b+.01)-v.easing(b),O=.27/Math.sqrt(M*M+1e-4)*.01,B=Math.sqrt(.0729-O*O);d=n.ba(O,B,.25,1)}return this._prevEase={start:n.h.now(),duration:l,easing:d},d}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class s0{constructor(l,d){this._clickZoom=l,this._tapZoom=d}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class tA{constructor(l){this._tr=new In(l),this.reset()}reset(){this._active=!1}dblclick(l,d){return l.preventDefault(),{cameraAnimation:v=>{v.easeTo({duration:300,zoom:this._tr.zoom+(l.shiftKey?-1:1),around:this._tr.unproject(d)},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class eA{constructor(){this._tap=new Ld({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(l,d,v){if(!this._swipePoint)if(this._tapTime){let b=d[0],M=l.timeStamp-this._tapTime<500,O=this._tapPoint.dist(b)<30;M&&O?v.length>0&&(this._swipePoint=b,this._swipeTouch=v[0].identifier):this.reset()}else this._tap.touchstart(l,d,v)}touchmove(l,d,v){if(this._tapTime){if(this._swipePoint){if(v[0].identifier!==this._swipeTouch)return;let b=d[0],M=b.y-this._swipePoint.y;return this._swipePoint=b,l.preventDefault(),this._active=!0,{zoomDelta:M/128}}}else this._tap.touchmove(l,d,v)}touchend(l,d,v){if(this._tapTime)this._swipePoint&&v.length===0&&this.reset();else{let b=this._tap.touchend(l,d,v);b&&(this._tapTime=l.timeStamp,this._tapPoint=b)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class dh{constructor(l,d,v){this._el=l,this._mousePan=d,this._touchPan=v}enable(l){this._inertiaOptions=l||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(\"maplibregl-touch-drag-pan\")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"maplibregl-touch-drag-pan\")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class ls{constructor(l,d,v){this._pitchWithRotate=l.pitchWithRotate,this._mouseRotate=d,this._mousePitch=v}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Au{constructor(l,d,v,b){this._el=l,this._touchZoom=d,this._touchRotate=v,this._tapDragZoom=b,this._rotationDisabled=!1,this._enabled=!0}enable(l){this._touchZoom.enable(l),this._rotationDisabled||this._touchRotate.enable(l),this._tapDragZoom.enable(),this._el.classList.add(\"maplibregl-touch-zoom-rotate\")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"maplibregl-touch-zoom-rotate\")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}let Rc=T=>T.zoom||T.drag||T.pitch||T.rotate;class o0 extends n.k{}function Rd(T){return T.panDelta&&T.panDelta.mag()||T.zoomDelta||T.bearingDelta||T.pitchDelta}class a0{constructor(l,d){this.handleWindowEvent=b=>{this.handleEvent(b,`${b.type}Window`)},this.handleEvent=(b,M)=>{if(b.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let O=b.type===\"renderFrame\"?void 0:b,B={needsRenderFrame:!1},U={},W={},Z=b.touches,Q=Z?this._getMapTouches(Z):void 0,st=Q?c.touchPos(this._el,Q):c.mousePos(this._el,b);for(let{handlerName:yt,handler:dt,allowed:Ft}of this._handlers){if(!dt.isEnabled())continue;let Wt;this._blockedByActive(W,Ft,yt)?dt.reset():dt[M||b.type]&&(Wt=dt[M||b.type](b,st,Q),this.mergeHandlerResult(B,U,Wt,yt,O),Wt&&Wt.needsRenderFrame&&this._triggerRenderFrame()),(Wt||dt.isActive())&&(W[yt]=dt)}let At={};for(let yt in this._previousActiveHandlers)W[yt]||(At[yt]=O);this._previousActiveHandlers=W,(Object.keys(At).length||Rd(B))&&(this._changes.push([B,U,At]),this._triggerRenderFrame()),(Object.keys(W).length||Rd(B))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:pt}=B;pt&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],pt(this._map))},this._map=l,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Jm(l),this._bearingSnap=d.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(d);let v=this._el;this._listeners=[[v,\"touchstart\",{passive:!0}],[v,\"touchmove\",{passive:!1}],[v,\"touchend\",void 0],[v,\"touchcancel\",void 0],[v,\"mousedown\",void 0],[v,\"mousemove\",void 0],[v,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[v,\"mouseover\",void 0],[v,\"mouseout\",void 0],[v,\"dblclick\",void 0],[v,\"click\",void 0],[v,\"keydown\",{capture:!1}],[v,\"keyup\",void 0],[v,\"wheel\",{passive:!1}],[v,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(let[b,M,O]of this._listeners)c.addEventListener(b,M,b===document?this.handleWindowEvent:this.handleEvent,O)}destroy(){for(let[l,d,v]of this._listeners)c.removeEventListener(l,d,l===document?this.handleWindowEvent:this.handleEvent,v)}_addDefaultHandlers(l){let d=this._map,v=d.getCanvasContainer();this._add(\"mapEvent\",new Fs(d,l));let b=d.boxZoom=new Kp(d,l);this._add(\"boxZoom\",b),l.interactive&&l.boxZoom&&b.enable();let M=new fl(d),O=new tA(d);d.doubleClickZoom=new s0(O,M),this._add(\"tapZoom\",M),this._add(\"clickZoom\",O),l.interactive&&l.doubleClickZoom&&d.doubleClickZoom.enable();let B=new eA;this._add(\"tapDragZoom\",B);let U=d.touchPitch=new Ix(d);this._add(\"touchPitch\",U),l.interactive&&l.touchPitch&&d.touchPitch.enable(l.touchPitch);let W=za(l),Z=ro(l);d.dragRotate=new ls(l,W,Z),this._add(\"mouseRotate\",W,[\"mousePitch\"]),this._add(\"mousePitch\",Z,[\"mouseRotate\"]),l.interactive&&l.dragRotate&&d.dragRotate.enable();let Q=(({enable:Ft,clickTolerance:Wt})=>{let St=new Jp({checkCorrectEvent:Bt=>c.mouseButton(Bt)===0&&!Bt.ctrlKey});return new Fa({clickTolerance:Wt,move:(Bt,Yt)=>({around:Yt,panDelta:Yt.sub(Bt)}),activateOnStart:!0,moveStateManager:St,enable:Ft,assignEvents:hh})})(l),st=new Ue(l,d);d.dragPan=new dh(v,Q,st),this._add(\"mousePan\",Q),this._add(\"touchPan\",st,[\"touchZoom\",\"touchRotate\"]),l.interactive&&l.dragPan&&d.dragPan.enable(l.dragPan);let At=new e0,pt=new a_;d.touchZoomRotate=new Au(v,pt,At,B),this._add(\"touchRotate\",At,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",pt,[\"touchPan\",\"touchRotate\"]),l.interactive&&l.touchZoomRotate&&d.touchZoomRotate.enable(l.touchZoomRotate);let yt=d.scrollZoom=new vf(d,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",yt,[\"mousePan\"]),l.interactive&&l.scrollZoom&&d.scrollZoom.enable(l.scrollZoom);let dt=d.keyboard=new l_(d);this._add(\"keyboard\",dt),l.interactive&&l.keyboard&&d.keyboard.enable(),this._add(\"blockableMapEvent\",new pu(d))}_add(l,d,v){this._handlers.push({handlerName:l,handler:d,allowed:v}),this._handlersById[l]=d}stop(l){if(!this._updatingCamera){for(let{handler:d}of this._handlers)d.reset();this._inertia.clear(),this._fireEvents({},{},l),this._changes=[]}}isActive(){for(let{handler:l}of this._handlers)if(l.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Rc(this._eventsInProgress)||this.isZooming()}_blockedByActive(l,d,v){for(let b in l)if(b!==v&&(!d||d.indexOf(b)<0))return!0;return!1}_getMapTouches(l){let d=[];for(let v of l)this._el.contains(v.target)&&d.push(v);return d}mergeHandlerResult(l,d,v,b,M){if(!v)return;n.e(l,v);let O={handlerName:b,originalEvent:v.originalEvent||M};v.zoomDelta!==void 0&&(d.zoom=O),v.panDelta!==void 0&&(d.drag=O),v.pitchDelta!==void 0&&(d.pitch=O),v.bearingDelta!==void 0&&(d.rotate=O)}_applyChanges(){let l={},d={},v={};for(let[b,M,O]of this._changes)b.panDelta&&(l.panDelta=(l.panDelta||new n.P(0,0))._add(b.panDelta)),b.zoomDelta&&(l.zoomDelta=(l.zoomDelta||0)+b.zoomDelta),b.bearingDelta&&(l.bearingDelta=(l.bearingDelta||0)+b.bearingDelta),b.pitchDelta&&(l.pitchDelta=(l.pitchDelta||0)+b.pitchDelta),b.around!==void 0&&(l.around=b.around),b.pinchAround!==void 0&&(l.pinchAround=b.pinchAround),b.noInertia&&(l.noInertia=b.noInertia),n.e(d,M),n.e(v,O);this._updateMapTransform(l,d,v),this._changes=[]}_updateMapTransform(l,d,v){let b=this._map,M=b._getTransformForUpdate(),O=b.terrain;if(!(Rd(l)||O&&this._terrainMovement))return this._fireEvents(d,v,!0);let{panDelta:B,zoomDelta:U,bearingDelta:W,pitchDelta:Z,around:Q,pinchAround:st}=l;st!==void 0&&(Q=st),b._stop(!0),Q=Q||b.transform.centerPoint;let At=M.pointLocation(B?Q.sub(B):Q);W&&(M.bearing+=W),Z&&(M.pitch+=Z),U&&(M.zoom+=U),O?this._terrainMovement||!d.drag&&!d.zoom?d.drag&&this._terrainMovement?M.center=M.pointLocation(M.centerPoint.sub(B)):M.setLocationAtPoint(At,Q):(this._terrainMovement=!0,this._map._elevationFreeze=!0,M.setLocationAtPoint(At,Q),this._map.once(\"moveend\",()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,M.recalculateZoom(b.terrain)})):M.setLocationAtPoint(At,Q),b._applyUpdatedTransform(M),this._map._update(),l.noInertia||this._inertia.record(l),this._fireEvents(d,v,!0)}_fireEvents(l,d,v){let b=Rc(this._eventsInProgress),M=Rc(l),O={};for(let Z in l){let{originalEvent:Q}=l[Z];this._eventsInProgress[Z]||(O[`${Z}start`]=Q),this._eventsInProgress[Z]=l[Z]}!b&&M&&this._fireEvent(\"movestart\",M.originalEvent);for(let Z in O)this._fireEvent(Z,O[Z]);M&&this._fireEvent(\"move\",M.originalEvent);for(let Z in l){let{originalEvent:Q}=l[Z];this._fireEvent(Z,Q)}let B={},U;for(let Z in this._eventsInProgress){let{handlerName:Q,originalEvent:st}=this._eventsInProgress[Z];this._handlersById[Q].isActive()||(delete this._eventsInProgress[Z],U=d[Q]||st,B[`${Z}end`]=U)}for(let Z in B)this._fireEvent(Z,B[Z]);let W=Rc(this._eventsInProgress);if(v&&(b||M)&&!W){this._updatingCamera=!0;let Z=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),Q=st=>st!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new o0(\"renderFrame\",{timeStamp:l})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class c_ extends n.E{constructor(l,d){super(),this._renderFrameCallback=()=>{let v=Math.min((n.h.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(v)),v<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=l,this._bearingSnap=d.bearingSnap,this.on(\"moveend\",()=>{delete this._requestedCameraState})}getCenter(){return new n.L(this.transform.center.lng,this.transform.center.lat)}setCenter(l,d){return this.jumpTo({center:l},d)}panBy(l,d,v){return l=n.P.convert(l).mult(-1),this.panTo(this.transform.center,n.e({offset:l},d),v)}panTo(l,d,v){return this.easeTo(n.e({center:l},d),v)}getZoom(){return this.transform.zoom}setZoom(l,d){return this.jumpTo({zoom:l},d),this}zoomTo(l,d,v){return this.easeTo(n.e({zoom:l},d),v)}zoomIn(l,d){return this.zoomTo(this.getZoom()+1,l,d),this}zoomOut(l,d){return this.zoomTo(this.getZoom()-1,l,d),this}getBearing(){return this.transform.bearing}setBearing(l,d){return this.jumpTo({bearing:l},d),this}getPadding(){return this.transform.padding}setPadding(l,d){return this.jumpTo({padding:l},d),this}rotateTo(l,d,v){return this.easeTo(n.e({bearing:l},d),v)}resetNorth(l,d){return this.rotateTo(0,n.e({duration:1e3},l),d),this}resetNorthPitch(l,d){return this.easeTo(n.e({bearing:0,pitch:0,duration:1e3},l),d),this}snapToNorth(l,d){return Math.abs(this.getBearing()){if(this._zooming&&(v.zoom=n.B.number(b,U,Qt)),this._rotating&&(v.bearing=n.B.number(M,W,Qt)),this._pitching&&(v.pitch=n.B.number(O,Z,Qt)),this._padding&&(v.interpolatePadding(B,Q,Qt),At=v.centerPoint.add(st)),this.terrain&&!l.freezeElevation&&this._updateElevation(Qt),St)v.setLocationAtPoint(St,Bt);else{let se=v.zoomScale(v.zoom-b),pe=U>b?Math.min(2,Wt):Math.max(.5,Wt),he=Math.pow(pe,1-Qt),xe=v.unproject(dt.add(Ft.mult(Qt*he)).mult(se));v.setLocationAtPoint(v.renderWorldCopies?xe.wrap():xe,At)}this._applyUpdatedTransform(v),this._fireMoveEvents(d)},Qt=>{this.terrain&&this._finalizeElevation(),this._afterEase(d,Qt)},l),this}_prepareEase(l,d,v={}){this._moving=!0,d||v.moving||this.fire(new n.k(\"movestart\",l)),this._zooming&&!v.zooming&&this.fire(new n.k(\"zoomstart\",l)),this._rotating&&!v.rotating&&this.fire(new n.k(\"rotatestart\",l)),this._pitching&&!v.pitching&&this.fire(new n.k(\"pitchstart\",l))}_prepareElevation(l){this._elevationCenter=l,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(l,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(l){this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);let d=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(l<1&&d!==this._elevationTarget){let v=this._elevationTarget-this._elevationStart;this._elevationStart+=l*(v-(d-(v*l+this._elevationStart))/(1-l)),this._elevationTarget=d}this.transform.elevation=n.B.number(this._elevationStart,this._elevationTarget,l)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(l){if(!this.transformCameraUpdate)return;let d=l.clone(),{center:v,zoom:b,pitch:M,bearing:O,elevation:B}=this.transformCameraUpdate(d);v&&(d.center=v),b!==void 0&&(d.zoom=b),M!==void 0&&(d.pitch=M),O!==void 0&&(d.bearing=O),B!==void 0&&(d.elevation=B),this.transform.apply(d)}_fireMoveEvents(l){this.fire(new n.k(\"move\",l)),this._zooming&&this.fire(new n.k(\"zoom\",l)),this._rotating&&this.fire(new n.k(\"rotate\",l)),this._pitching&&this.fire(new n.k(\"pitch\",l))}_afterEase(l,d){if(this._easeId&&d&&this._easeId===d)return;delete this._easeId;let v=this._zooming,b=this._rotating,M=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,v&&this.fire(new n.k(\"zoomend\",l)),b&&this.fire(new n.k(\"rotateend\",l)),M&&this.fire(new n.k(\"pitchend\",l)),this.fire(new n.k(\"moveend\",l))}flyTo(l,d){if(!l.essential&&n.h.prefersReducedMotion){let Xe=n.F(l,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Xe,d)}this.stop(),l=n.e({offset:[0,0],speed:1.2,curve:1.42,easing:n.bb},l);let v=this._getTransformForUpdate(),b=this.getZoom(),M=this.getBearing(),O=this.getPitch(),B=this.getPadding(),U=\"zoom\"in l?n.ad(+l.zoom,v.minZoom,v.maxZoom):b,W=\"bearing\"in l?this._normalizeBearing(l.bearing,M):M,Z=\"pitch\"in l?+l.pitch:O,Q=\"padding\"in l?l.padding:v.padding,st=v.zoomScale(U-b),At=n.P.convert(l.offset),pt=v.centerPoint.add(At),yt=v.pointLocation(pt),dt=n.L.convert(l.center||yt);this._normalizeCenter(dt);let Ft=v.project(yt),Wt=v.project(dt).sub(Ft),St=l.curve,Bt=Math.max(v.width,v.height),Yt=Bt/st,Qt=Wt.mag();if(\"minZoom\"in l){let Xe=n.ad(Math.min(l.minZoom,b,U),v.minZoom,v.maxZoom),Vi=Bt/v.zoomScale(Xe-b);St=Math.sqrt(Vi/Qt*2)}let se=St*St;function pe(Xe){let Vi=(Yt*Yt-Bt*Bt+(Xe?-1:1)*se*se*Qt*Qt)/(2*(Xe?Yt:Bt)*se*Qt);return Math.log(Math.sqrt(Vi*Vi+1)-Vi)}function he(Xe){return(Math.exp(Xe)-Math.exp(-Xe))/2}function xe(Xe){return(Math.exp(Xe)+Math.exp(-Xe))/2}let We=pe(!1),Kr=function(Xe){return xe(We)/xe(We+St*Xe)},Me=function(Xe){return Bt*((xe(We)*(he(Vi=We+St*Xe)/xe(Vi))-he(We))/se)/Qt;var Vi},dr=(pe(!0)-We)/St;if(Math.abs(Qt)<1e-6||!isFinite(dr)){if(Math.abs(Bt-Yt)<1e-6)return this.easeTo(l,d);let Xe=Ytl.maxDuration&&(l.duration=0),this._zooming=!0,this._rotating=M!==W,this._pitching=Z!==O,this._padding=!v.isPaddingEqual(Q),this._prepareEase(d,!1),this.terrain&&this._prepareElevation(dt),this._ease(Xe=>{let Vi=Xe*dr,Jr=1/Kr(Vi);v.zoom=Xe===1?U:b+v.scaleZoom(Jr),this._rotating&&(v.bearing=n.B.number(M,W,Xe)),this._pitching&&(v.pitch=n.B.number(O,Z,Xe)),this._padding&&(v.interpolatePadding(B,Q,Xe),pt=v.centerPoint.add(At)),this.terrain&&!l.freezeElevation&&this._updateElevation(Xe);let Vr=Xe===1?dt:v.unproject(Ft.add(Wt.mult(Me(Vi))).mult(Jr));v.setLocationAtPoint(v.renderWorldCopies?Vr.wrap():Vr,pt),this._applyUpdatedTransform(v),this._fireMoveEvents(d)},()=>{this.terrain&&this._finalizeElevation(),this._afterEase(d)},l),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(l,d){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let v=this._onEaseEnd;delete this._onEaseEnd,v.call(this,d)}if(!l){let v=this.handlers;v&&v.stop(!1)}return this}_ease(l,d,v){v.animate===!1||v.duration===0?(l(1),d()):(this._easeStart=n.h.now(),this._easeOptions=v,this._onEaseFrame=l,this._onEaseEnd=d,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(l,d){l=n.b5(l,-180,180);let v=Math.abs(l-d);return Math.abs(l-360-d)180?-360:v<-180?360:0}queryTerrainElevation(l){return this.terrain?this.terrain.getElevationForLngLatZoom(n.L.convert(l),this.transform.tileZoom)-this.transform.elevation:null}}class ua{constructor(l={}){this._toggleAttribution=()=>{this._container.classList.contains(\"maplibregl-compact\")&&(this._container.classList.contains(\"maplibregl-compact-show\")?(this._container.setAttribute(\"open\",\"\"),this._container.classList.remove(\"maplibregl-compact-show\")):(this._container.classList.add(\"maplibregl-compact-show\"),this._container.removeAttribute(\"open\")))},this._updateData=d=>{!d||d.sourceDataType!==\"metadata\"&&d.sourceDataType!==\"visibility\"&&d.dataType!==\"style\"&&d.type!==\"terrain\"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute(\"open\",\"\"):this._container.classList.contains(\"maplibregl-compact\")||this._container.classList.contains(\"maplibregl-attrib-empty\")||(this._container.setAttribute(\"open\",\"\"),this._container.classList.add(\"maplibregl-compact\",\"maplibregl-compact-show\")):(this._container.setAttribute(\"open\",\"\"),this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.remove(\"maplibregl-compact\",\"maplibregl-compact-show\"))},this._updateCompactMinimize=()=>{this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.contains(\"maplibregl-compact-show\")&&this._container.classList.remove(\"maplibregl-compact-show\")},this.options=l}getDefaultPosition(){return\"bottom-right\"}onAdd(l){return this._map=l,this._compact=this.options&&this.options.compact,this._container=c.create(\"details\",\"maplibregl-ctrl maplibregl-ctrl-attrib\"),this._compactButton=c.create(\"summary\",\"maplibregl-ctrl-attrib-button\",this._container),this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._setElementTitle(this._compactButton,\"ToggleAttribution\"),this._innerContainer=c.create(\"div\",\"maplibregl-ctrl-attrib-inner\",this._container),this._updateAttributions(),this._updateCompact(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"terrain\",this._updateData),this._map.on(\"resize\",this._updateCompact),this._map.on(\"drag\",this._updateCompactMinimize),this._container}onRemove(){c.remove(this._container),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"terrain\",this._updateData),this._map.off(\"resize\",this._updateCompact),this._map.off(\"drag\",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(l,d){let v=this._map._getUIString(`AttributionControl.${d}`);l.title=v,l.setAttribute(\"aria-label\",v)}_updateAttributions(){if(!this._map.style)return;let l=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?l=l.concat(this.options.customAttribution.map(b=>typeof b!=\"string\"?\"\":b)):typeof this.options.customAttribution==\"string\"&&l.push(this.options.customAttribution)),this._map.style.stylesheet){let b=this._map.style.stylesheet;this.styleOwner=b.owner,this.styleId=b.id}let d=this._map.style.sourceCaches;for(let b in d){let M=d[b];if(M.used||M.usedForTerrain){let O=M.getSource();O.attribution&&l.indexOf(O.attribution)<0&&l.push(O.attribution)}}l=l.filter(b=>String(b).trim()),l.sort((b,M)=>b.length-M.length),l=l.filter((b,M)=>{for(let O=M+1;O=0)return!1;return!0});let v=l.join(\" | \");v!==this._attribHTML&&(this._attribHTML=v,l.length?(this._innerContainer.innerHTML=v,this._container.classList.remove(\"maplibregl-attrib-empty\")):this._container.classList.add(\"maplibregl-attrib-empty\"),this._updateCompact(),this._editLink=null)}}class ln{constructor(l={}){this._updateCompact=()=>{let d=this._container.children;if(d.length){let v=d[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&v.classList.add(\"maplibregl-compact\"):v.classList.remove(\"maplibregl-compact\")}},this.options=l}getDefaultPosition(){return\"bottom-left\"}onAdd(l){this._map=l,this._compact=this.options&&this.options.compact,this._container=c.create(\"div\",\"maplibregl-ctrl\");let d=c.create(\"a\",\"maplibregl-ctrl-logo\");return d.target=\"_blank\",d.rel=\"noopener nofollow\",d.href=\"https://maplibre.org/\",d.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),d.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(d),this._container.style.display=\"block\",this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container}onRemove(){c.remove(this._container),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._compact=void 0}}class rA{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(l){let d=++this._id;return this._queue.push({callback:l,id:d,cancelled:!1}),d}remove(l){let d=this._currentlyRunning,v=d?this._queue.concat(d):this._queue;for(let b of v)if(b.id===l)return void(b.cancelled=!0)}run(l=0){if(this._currentlyRunning)throw new Error(\"Attempting to run(), but is already running.\");let d=this._currentlyRunning=this._queue;this._queue=[];for(let v of d)if(!v.cancelled&&(v.callback(l),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}let l0={\"AttributionControl.ToggleAttribution\":\"Toggle attribution\",\"AttributionControl.MapFeedback\":\"Map feedback\",\"FullscreenControl.Enter\":\"Enter fullscreen\",\"FullscreenControl.Exit\":\"Exit fullscreen\",\"GeolocateControl.FindMyLocation\":\"Find my location\",\"GeolocateControl.LocationNotAvailable\":\"Location not available\",\"LogoControl.Title\":\"Mapbox logo\",\"NavigationControl.ResetBearing\":\"Reset bearing to north\",\"NavigationControl.ZoomIn\":\"Zoom in\",\"NavigationControl.ZoomOut\":\"Zoom out\",\"ScaleControl.Feet\":\"ft\",\"ScaleControl.Meters\":\"m\",\"ScaleControl.Kilometers\":\"km\",\"ScaleControl.Miles\":\"mi\",\"ScaleControl.NauticalMiles\":\"nm\",\"TerrainControl.enableTerrain\":\"Enable terrain\",\"TerrainControl.disableTerrain\":\"Disable terrain\"};var ph=n.Q([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class u_ extends n.E{constructor(l){super(),this.sourceCache=l,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,l.usedForTerrain=!0,l.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(l,d){this.sourceCache.update(l,d),this._renderableTilesKeys=[];let v={};for(let b of l.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:d}))v[b.key]=!0,this._renderableTilesKeys.push(b.key),this._tiles[b.key]||(b.posMatrix=new Float64Array(16),n.aS(b.posMatrix,0,n.N,0,n.N,0,1),this._tiles[b.key]=new to(b,this.tileSize));for(let b in this._tiles)v[b]||delete this._tiles[b]}freeRtt(l){for(let d in this._tiles){let v=this._tiles[d];(!l||v.tileID.equals(l)||v.tileID.isChildOf(l)||l.isChildOf(v.tileID))&&(v.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(l=>this.getTileByID(l))}getTileByID(l){return this._tiles[l]}getTerrainCoords(l){let d={};for(let v of this._renderableTilesKeys){let b=this._tiles[v].tileID;if(b.canonical.equals(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16),n.aS(M.posMatrix,0,n.N,0,n.N,0,1),d[v]=M}else if(b.canonical.isChildOf(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=b.canonical.z-l.canonical.z,B=b.canonical.x-(b.canonical.x>>O<>O<>O;n.aS(M.posMatrix,0,W,0,W,0,1),n.$(M.posMatrix,M.posMatrix,[-B*W,-U*W,0]),d[v]=M}else if(l.canonical.isChildOf(b.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=l.canonical.z-b.canonical.z,B=l.canonical.x-(l.canonical.x>>O<>O<>O;n.aS(M.posMatrix,0,n.N,0,n.N,0,1),n.$(M.posMatrix,M.posMatrix,[B*W,U*W,0]),n.a0(M.posMatrix,M.posMatrix,[1/2**O,1/2**O,0]),d[v]=M}}return d}getSourceTile(l,d){let v=this.sourceCache._source,b=l.overscaledZ-this.deltaZoom;if(b>v.maxzoom&&(b=v.maxzoom),b=v.minzoom&&(!M||!M.dem);)M=this.sourceCache.getTileByID(l.scaledTo(b--).key);return M}tilesAfterTime(l=Date.now()){return Object.values(this._tiles).filter(d=>d.timeAdded>=l)}}class h_{constructor(l,d,v){this.painter=l,this.sourceCache=new u_(d),this.options=v,this.exaggeration=typeof v.exaggeration==\"number\"?v.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(l,d,v,b=n.N){var M;if(!(d>=0&&d=0&&vl.canonical.z&&(l.canonical.z>=b?M=l.canonical.z-b:n.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let O=l.canonical.x-(l.canonical.x>>M<>M<>8<<4|M>>8,d[O+3]=0;let v=new n.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(d.buffer)),b=new Zt(l,v,l.gl.RGBA,{premultiply:!1});return b.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._coordsTexture=b,b}pointCoordinate(l){let d=new Uint8Array(4),v=this.painter.context,b=v.gl;v.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),b.readPixels(l.x,this.painter.height/devicePixelRatio-l.y-1,1,1,b.RGBA,b.UNSIGNED_BYTE,d),v.bindFramebuffer.set(null);let M=d[0]+(d[2]>>4<<8),O=d[1]+((15&d[2])<<8),B=this.coordsIndex[255-d[3]],U=B&&this.sourceCache.getTileByID(B);if(!U)return null;let W=this._coordsTextureSize,Z=(1<0&&Math.sign(M)<0||!v&&Math.sign(b)<0&&Math.sign(M)>0?(b=360*Math.sign(M)+b,n.G(b)):d}}class Cx{constructor(l,d,v){this._context=l,this._size=d,this._tileSize=v,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(let l of this._objects)l.texture.destroy(),l.fbo.destroy()}_createObject(l){let d=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),v=new Zt(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return v.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),d.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),d.colorAttachment.set(v.texture),{id:l,fbo:d,texture:v,stamp:-1,inUse:!1}}getObjectForId(l){return this._objects[l]}useObject(l){l.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(d=>l.id!==d),this._recentlyUsed.push(l.id)}stampObject(l){l.stamp=++this._stamp}getOrCreateFreeObject(){for(let d of this._recentlyUsed)if(!this._objects[d].inUse)return this._objects[d];if(this._objects.length>=this._size)throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");let l=this._createObject(this._objects.length);return this._objects.push(l),l}freeObject(l){l.inUse=!1}freeAllObjects(){for(let l of this._objects)this.freeObject(l)}isFull(){return!(this._objects.length!l.inUse)===!1}}let _o={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class iA{constructor(l,d){this.painter=l,this.terrain=d,this.pool=new Cx(l.context,30,d.sourceCache.tileSize*d.qualityFactor)}destruct(){this.pool.destruct()}getTexture(l){return this.pool.getObjectForId(l.rtt[this._stacks.length-1].id).texture}prepareForRender(l,d){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=l._order.filter(v=>!l._layers[v].isHidden(d)),this._coordsDescendingInv={};for(let v in l.sourceCaches){this._coordsDescendingInv[v]={};let b=l.sourceCaches[v].getVisibleCoordinates();for(let M of b){let O=this.terrain.sourceCache.getTerrainCoords(M);for(let B in O)this._coordsDescendingInv[v][B]||(this._coordsDescendingInv[v][B]=[]),this._coordsDescendingInv[v][B].push(O[B])}}this._coordsDescendingInvStr={};for(let v of l._order){let b=l._layers[v],M=b.source;if(_o[b.type]&&!this._coordsDescendingInvStr[M]){this._coordsDescendingInvStr[M]={};for(let O in this._coordsDescendingInv[M])this._coordsDescendingInvStr[M][O]=this._coordsDescendingInv[M][O].map(B=>B.key).sort().join()}}for(let v of this._renderableTiles)for(let b in this._coordsDescendingInvStr){let M=this._coordsDescendingInvStr[b][v.tileID.key];M&&M!==v.rttCoords[b]&&(v.rtt=[])}}renderLayer(l){if(l.isHidden(this.painter.transform.zoom))return!1;let d=l.type,v=this.painter,b=this._renderableLayerIds[this._renderableLayerIds.length-1]===l.id;if(_o[d]&&(this._prevType&&_o[this._prevType]||this._stacks.push([]),this._prevType=d,this._stacks[this._stacks.length-1].push(l.id),!b))return!0;if(_o[this._prevType]||_o[d]&&b){this._prevType=d;let M=this._stacks.length-1,O=this._stacks[M]||[];for(let B of this._renderableTiles){if(this.pool.isFull()&&(Pn(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(B),B.rtt[M]){let W=this.pool.getObjectForId(B.rtt[M].id);if(W.stamp===B.rtt[M].stamp){this.pool.useObject(W);continue}}let U=this.pool.getOrCreateFreeObject();this.pool.useObject(U),this.pool.stampObject(U),B.rtt[M]={id:U.id,stamp:U.stamp},v.context.bindFramebuffer.set(U.fbo.framebuffer),v.context.clear({color:n.aT.transparent,stencil:0}),v.currentStencilSource=void 0;for(let W=0;W{T.touchstart=T.dragStart,T.touchmoveWindow=T.dragMove,T.touchend=T.dragEnd},nA={showCompass:!0,showZoom:!0,visualizePitch:!1};class Dd{constructor(l,d,v=!1){this.mousedown=O=>{this.startMouse(n.e({},O,{ctrlKey:!0,preventDefault:()=>O.preventDefault()}),c.mousePos(this.element,O)),c.addEventListener(window,\"mousemove\",this.mousemove),c.addEventListener(window,\"mouseup\",this.mouseup)},this.mousemove=O=>{this.moveMouse(O,c.mousePos(this.element,O))},this.mouseup=O=>{this.mouseRotate.dragEnd(O),this.mousePitch&&this.mousePitch.dragEnd(O),this.offTemp()},this.touchstart=O=>{O.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=c.touchPos(this.element,O.targetTouches)[0],this.startTouch(O,this._startPos),c.addEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.addEventListener(window,\"touchend\",this.touchend))},this.touchmove=O=>{O.targetTouches.length!==1?this.reset():(this._lastPos=c.touchPos(this.element,O.targetTouches)[0],this.moveTouch(O,this._lastPos))},this.touchend=O=>{O.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;let b=l.dragRotate._mouseRotate.getClickTolerance(),M=l.dragRotate._mousePitch.getClickTolerance();this.element=d,this.mouseRotate=za({clickTolerance:b,enable:!0}),this.touchRotate=(({enable:O,clickTolerance:B,bearingDegreesPerPixelMoved:U=.8})=>{let W=new t0;return new Fa({clickTolerance:B,move:(Z,Q)=>({bearingDelta:(Q.x-Z.x)*U}),moveStateManager:W,enable:O,assignEvents:xf})})({clickTolerance:b,enable:!0}),this.map=l,v&&(this.mousePitch=ro({clickTolerance:M,enable:!0}),this.touchPitch=(({enable:O,clickTolerance:B,pitchDegreesPerPixelMoved:U=-.5})=>{let W=new t0;return new Fa({clickTolerance:B,move:(Z,Q)=>({pitchDelta:(Q.y-Z.y)*U}),moveStateManager:W,enable:O,assignEvents:xf})})({clickTolerance:M,enable:!0})),c.addEventListener(d,\"mousedown\",this.mousedown),c.addEventListener(d,\"touchstart\",this.touchstart,{passive:!1}),c.addEventListener(d,\"touchcancel\",this.reset)}startMouse(l,d){this.mouseRotate.dragStart(l,d),this.mousePitch&&this.mousePitch.dragStart(l,d),c.disableDrag()}startTouch(l,d){this.touchRotate.dragStart(l,d),this.touchPitch&&this.touchPitch.dragStart(l,d),c.disableDrag()}moveMouse(l,d){let v=this.map,{bearingDelta:b}=this.mouseRotate.dragMove(l,d)||{};if(b&&v.setBearing(v.getBearing()+b),this.mousePitch){let{pitchDelta:M}=this.mousePitch.dragMove(l,d)||{};M&&v.setPitch(v.getPitch()+M)}}moveTouch(l,d){let v=this.map,{bearingDelta:b}=this.touchRotate.dragMove(l,d)||{};if(b&&v.setBearing(v.getBearing()+b),this.touchPitch){let{pitchDelta:M}=this.touchPitch.dragMove(l,d)||{};M&&v.setPitch(v.getPitch()+M)}}off(){let l=this.element;c.removeEventListener(l,\"mousedown\",this.mousedown),c.removeEventListener(l,\"touchstart\",this.touchstart,{passive:!1}),c.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.removeEventListener(window,\"touchend\",this.touchend),c.removeEventListener(l,\"touchcancel\",this.reset),this.offTemp()}offTemp(){c.enableDrag(),c.removeEventListener(window,\"mousemove\",this.mousemove),c.removeEventListener(window,\"mouseup\",this.mouseup),c.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.removeEventListener(window,\"touchend\",this.touchend)}}let Gn;function io(T,l,d){if(T=new n.L(T.lng,T.lat),l){let v=new n.L(T.lng-360,T.lat),b=new n.L(T.lng+360,T.lat),M=d.locationPoint(T).distSqr(l);d.locationPoint(v).distSqr(l)180;){let v=d.locationPoint(T);if(v.x>=0&&v.y>=0&&v.x<=d.width&&v.y<=d.height)break;T.lng>d.center.lng?T.lng-=360:T.lng+=360}return T}let Ui={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};function f_(T,l,d){let v=T.classList;for(let b in Ui)v.remove(`maplibregl-${d}-anchor-${b}`);v.add(`maplibregl-${d}-anchor-${l}`)}class Ah extends n.E{constructor(l){if(super(),this._onKeyPress=d=>{let v=d.code,b=d.charCode||d.keyCode;v!==\"Space\"&&v!==\"Enter\"&&b!==32&&b!==13||this.togglePopup()},this._onMapClick=d=>{let v=d.originalEvent.target,b=this._element;this._popup&&(v===b||b.contains(v))&&this.togglePopup()},this._update=d=>{if(!this._map)return;let v=this._map.loaded()&&!this._map.isMoving();(d?.type===\"terrain\"||d?.type===\"render\"&&!v)&&this._map.once(\"render\",this._update),this._map.transform.renderWorldCopies&&(this._lngLat=io(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let b=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?b=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(b=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let M=\"\";this._pitchAlignment===\"viewport\"||this._pitchAlignment===\"auto\"?M=\"rotateX(0deg)\":this._pitchAlignment===\"map\"&&(M=`rotateX(${this._map.getPitch()}deg)`),d&&d.type!==\"moveend\"||(this._pos=this._pos.round()),c.setTransform(this._element,`${Ui[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${M} ${b}`),this._map.terrain&&!this._opacityTimeout&&(this._opacityTimeout=setTimeout(()=>{let O=this._map.unproject(this._pos),B=40075016686e-3*Math.abs(Math.cos(this._lngLat.lat*Math.PI/180))/Math.pow(2,this._map.transform.tileZoom+8);this._element.style.opacity=O.distanceTo(this._lngLat)>20*B?\"0.2\":\"1.0\",this._opacityTimeout=null},100))},this._onMove=d=>{if(!this._isDragging){let v=this._clickTolerance||this._map._clickTolerance;this._isDragging=d.point.dist(this._pointerdownPos)>=v}this._isDragging&&(this._pos=d.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",this._state===\"pending\"&&(this._state=\"active\",this.fire(new n.k(\"dragstart\"))),this.fire(new n.k(\"drag\")))},this._onUp=()=>{this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),this._state===\"active\"&&this.fire(new n.k(\"dragend\")),this._state=\"inactive\"},this._addDragHandler=d=>{this._element.contains(d.originalEvent.target)&&(d.preventDefault(),this._positionDelta=d.point.sub(this._pos).add(this._offset),this._pointerdownPos=d.point,this._state=\"pending\",this._map.on(\"mousemove\",this._onMove),this._map.on(\"touchmove\",this._onMove),this._map.once(\"mouseup\",this._onUp),this._map.once(\"touchend\",this._onUp))},this._anchor=l&&l.anchor||\"center\",this._color=l&&l.color||\"#3FB1CE\",this._scale=l&&l.scale||1,this._draggable=l&&l.draggable||!1,this._clickTolerance=l&&l.clickTolerance||0,this._isDragging=!1,this._state=\"inactive\",this._rotation=l&&l.rotation||0,this._rotationAlignment=l&&l.rotationAlignment||\"auto\",this._pitchAlignment=l&&l.pitchAlignment&&l.pitchAlignment!==\"auto\"?l.pitchAlignment:this._rotationAlignment,l&&l.element)this._element=l.element,this._offset=n.P.convert(l&&l.offset||[0,0]);else{this._defaultMarker=!0,this._element=c.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");let d=c.createNS(\"http://www.w3.org/2000/svg\",\"svg\"),v=41,b=27;d.setAttributeNS(null,\"display\",\"block\"),d.setAttributeNS(null,\"height\",`${v}px`),d.setAttributeNS(null,\"width\",`${b}px`),d.setAttributeNS(null,\"viewBox\",`0 0 ${b} ${v}`);let M=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");M.setAttributeNS(null,\"stroke\",\"none\"),M.setAttributeNS(null,\"stroke-width\",\"1\"),M.setAttributeNS(null,\"fill\",\"none\"),M.setAttributeNS(null,\"fill-rule\",\"evenodd\");let O=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");O.setAttributeNS(null,\"fill-rule\",\"nonzero\");let B=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");B.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),B.setAttributeNS(null,\"fill\",\"#000000\");let U=[{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"9.5\",ry:\"4.77275007\"},{rx:\"8.5\",ry:\"4.29549936\"},{rx:\"7.5\",ry:\"3.81822308\"},{rx:\"6.5\",ry:\"3.34094679\"},{rx:\"5.5\",ry:\"2.86367051\"},{rx:\"4.5\",ry:\"2.38636864\"}];for(let Ft of U){let Wt=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");Wt.setAttributeNS(null,\"opacity\",\"0.04\"),Wt.setAttributeNS(null,\"cx\",\"10.5\"),Wt.setAttributeNS(null,\"cy\",\"5.80029008\"),Wt.setAttributeNS(null,\"rx\",Ft.rx),Wt.setAttributeNS(null,\"ry\",Ft.ry),B.appendChild(Wt)}let W=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");W.setAttributeNS(null,\"fill\",this._color);let Z=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Z.setAttributeNS(null,\"d\",\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"),W.appendChild(Z);let Q=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Q.setAttributeNS(null,\"opacity\",\"0.25\"),Q.setAttributeNS(null,\"fill\",\"#000000\");let st=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");st.setAttributeNS(null,\"d\",\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"),Q.appendChild(st);let At=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");At.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),At.setAttributeNS(null,\"fill\",\"#FFFFFF\");let pt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");pt.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");let yt=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");yt.setAttributeNS(null,\"fill\",\"#000000\"),yt.setAttributeNS(null,\"opacity\",\"0.25\"),yt.setAttributeNS(null,\"cx\",\"5.5\"),yt.setAttributeNS(null,\"cy\",\"5.5\"),yt.setAttributeNS(null,\"r\",\"5.4999962\");let dt=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");dt.setAttributeNS(null,\"fill\",\"#FFFFFF\"),dt.setAttributeNS(null,\"cx\",\"5.5\"),dt.setAttributeNS(null,\"cy\",\"5.5\"),dt.setAttributeNS(null,\"r\",\"5.4999962\"),pt.appendChild(yt),pt.appendChild(dt),O.appendChild(B),O.appendChild(W),O.appendChild(Q),O.appendChild(At),O.appendChild(pt),d.appendChild(O),d.setAttributeNS(null,\"height\",v*this._scale+\"px\"),d.setAttributeNS(null,\"width\",b*this._scale+\"px\"),this._element.appendChild(d),this._offset=n.P.convert(l&&l.offset||[0,-14])}if(this._element.classList.add(\"maplibregl-marker\"),this._element.addEventListener(\"dragstart\",d=>{d.preventDefault()}),this._element.addEventListener(\"mousedown\",d=>{d.preventDefault()}),f_(this._element,this._anchor,\"marker\"),l&&l.className)for(let d of l.className.split(\" \"))this._element.classList.add(d);this._popup=null}addTo(l){return this.remove(),this._map=l,l.getCanvasContainer().appendChild(this._element),l.on(\"move\",this._update),l.on(\"moveend\",this._update),l.on(\"terrain\",this._update),this.setDraggable(this._draggable),this._update(),this._map.on(\"click\",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off(\"click\",this._onMapClick),this._map.off(\"move\",this._update),this._map.off(\"moveend\",this._update),this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler),this._map.off(\"mouseup\",this._onUp),this._map.off(\"touchend\",this._onUp),this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),delete this._map),c.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(l){return this._lngLat=n.L.convert(l),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(l){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),l){if(!(\"offset\"in l.options)){let b=Math.abs(13.5)/Math.SQRT2;l.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-38.1],\"bottom-left\":[b,-1*(38.1-13.5+b)],\"bottom-right\":[-b,-1*(38.1-13.5+b)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=l,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress)}return this}getPopup(){return this._popup}togglePopup(){let l=this._popup;return l?(l.isOpen()?l.remove():l.addTo(this._map),this):this}getOffset(){return this._offset}setOffset(l){return this._offset=n.P.convert(l),this._update(),this}addClassName(l){this._element.classList.add(l)}removeClassName(l){this._element.classList.remove(l)}toggleClassName(l){return this._element.classList.toggle(l)}setDraggable(l){return this._draggable=!!l,this._map&&(l?(this._map.on(\"mousedown\",this._addDragHandler),this._map.on(\"touchstart\",this._addDragHandler)):(this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(l){return this._rotation=l||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(l){return this._rotationAlignment=l||\"auto\",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(l){return this._pitchAlignment=l&&l!==\"auto\"?l:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}let Cn={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},yn=0,bf=!1,Ms={maxWidth:100,unit:\"metric\"};function mh(T,l,d){let v=d&&d.maxWidth||100,b=T._container.clientHeight/2,M=T.unproject([0,b]),O=T.unproject([v,b]),B=M.distanceTo(O);if(d&&d.unit===\"imperial\"){let U=3.2808*B;U>5280?jo(l,v,U/5280,T._getUIString(\"ScaleControl.Miles\")):jo(l,v,U,T._getUIString(\"ScaleControl.Feet\"))}else d&&d.unit===\"nautical\"?jo(l,v,B/1852,T._getUIString(\"ScaleControl.NauticalMiles\")):B>=1e3?jo(l,v,B/1e3,T._getUIString(\"ScaleControl.Kilometers\")):jo(l,v,B,T._getUIString(\"ScaleControl.Meters\"))}function jo(T,l,d,v){let b=function(M){let O=Math.pow(10,`${Math.floor(M)}`.length-1),B=M/O;return B=B>=10?10:B>=5?5:B>=3?3:B>=2?2:B>=1?1:function(U){let W=Math.pow(10,Math.ceil(-Math.log(U)/Math.LN10));return Math.round(U*W)/W}(B),O*B}(d);T.style.width=l*(b/d)+\"px\",T.innerHTML=`${b} ${v}`}let c0={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},Od=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function wf(T){if(T){if(typeof T==\"number\"){let l=Math.round(Math.abs(T)/Math.SQRT2);return{center:new n.P(0,0),top:new n.P(0,T),\"top-left\":new n.P(l,l),\"top-right\":new n.P(-l,l),bottom:new n.P(0,-T),\"bottom-left\":new n.P(l,-l),\"bottom-right\":new n.P(-l,-l),left:new n.P(T,0),right:new n.P(-T,0)}}if(T instanceof n.P||Array.isArray(T)){let l=n.P.convert(T);return{center:l,top:l,\"top-left\":l,\"top-right\":l,bottom:l,\"bottom-left\":l,\"bottom-right\":l,left:l,right:l}}return{center:n.P.convert(T.center||[0,0]),top:n.P.convert(T.top||[0,0]),\"top-left\":n.P.convert(T[\"top-left\"]||[0,0]),\"top-right\":n.P.convert(T[\"top-right\"]||[0,0]),bottom:n.P.convert(T.bottom||[0,0]),\"bottom-left\":n.P.convert(T[\"bottom-left\"]||[0,0]),\"bottom-right\":n.P.convert(T[\"bottom-right\"]||[0,0]),left:n.P.convert(T.left||[0,0]),right:n.P.convert(T.right||[0,0])}}return wf(new n.P(0,0))}let Go={extend:(T,...l)=>n.e(T,...l),run(T){T()},logToElement(T,l=!1,d=\"log\"){let v=window.document.getElementById(d);v&&(l&&(v.innerHTML=\"\"),v.innerHTML+=`
${T}`)}},sA=o;class xi{static get version(){return sA}static get workerCount(){return eo.workerCount}static set workerCount(l){eo.workerCount=l}static get maxParallelImageRequests(){return n.c.MAX_PARALLEL_IMAGE_REQUESTS}static set maxParallelImageRequests(l){n.c.MAX_PARALLEL_IMAGE_REQUESTS=l}static get workerUrl(){return n.c.WORKER_URL}static set workerUrl(l){n.c.WORKER_URL=l}static addProtocol(l,d){n.c.REGISTERED_PROTOCOLS[l]=d}static removeProtocol(l){delete n.c.REGISTERED_PROTOCOLS[l]}}return xi.Map=class extends c_{constructor(T){if(n.bg.mark(n.bh.create),(T=n.e({},fr,T)).minZoom!=null&&T.maxZoom!=null&&T.minZoom>T.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(T.minPitch!=null&&T.maxPitch!=null&&T.minPitch>T.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(T.minPitch!=null&&T.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T.maxPitch!=null&&T.maxPitch>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(super(new Qp(T.minZoom,T.maxZoom,T.minPitch,T.maxPitch,T.renderWorldCopies),{bearingSnap:T.bearingSnap}),this._cooperativeGesturesOnWheel=l=>{this._onCooperativeGesture(l,l[this._metaKey],1)},this._contextLost=l=>{l.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new n.k(\"webglcontextlost\",{originalEvent:l}))},this._contextRestored=l=>{this._setupPainter(),this.resize(),this._update(),this.fire(new n.k(\"webglcontextrestored\",{originalEvent:l}))},this._onMapScroll=l=>{if(l.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=T.interactive,this._cooperativeGestures=T.cooperativeGestures,this._metaKey=navigator.platform.indexOf(\"Mac\")===0?\"metaKey\":\"ctrlKey\",this._maxTileCacheSize=T.maxTileCacheSize,this._maxTileCacheZoomLevels=T.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=T.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=T.preserveDrawingBuffer,this._antialias=T.antialias,this._trackResize=T.trackResize,this._bearingSnap=T.bearingSnap,this._refreshExpiredTiles=T.refreshExpiredTiles,this._fadeDuration=T.fadeDuration,this._crossSourceCollisions=T.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=T.collectResourceTiming,this._renderTaskQueue=new rA,this._controls=[],this._mapId=n.a2(),this._locale=n.e({},l0,T.locale),this._clickTolerance=T.clickTolerance,this._overridePixelRatio=T.pixelRatio,this._maxCanvasSize=T.maxCanvasSize,this.transformCameraUpdate=T.transformCameraUpdate,this._imageQueueHandle=j.addThrottleControl(()=>this.isMoving()),this._requestManager=new rt(T.transformRequest),typeof T.container==\"string\"){if(this._container=document.getElementById(T.container),!this._container)throw new Error(`Container '${T.container}' not found.`)}else{if(!(T.container instanceof HTMLElement))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=T.container}if(T.maxBounds&&this.setMaxBounds(T.maxBounds),this._setupContainer(),this._setupPainter(),this.on(\"move\",()=>this._update(!1)),this.on(\"moveend\",()=>this._update(!1)),this.on(\"zoom\",()=>this._update(!0)),this.on(\"terrain\",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once(\"idle\",()=>{this._idleTriggered=!0}),typeof window<\"u\"){addEventListener(\"online\",this._onWindowOnline,!1);let l=!1,d=ah(v=>{this._trackResize&&!this._removed&&this.resize(v)._update()},50);this._resizeObserver=new ResizeObserver(v=>{l?d(v):l=!0}),this._resizeObserver.observe(this._container)}this.handlers=new a0(this,T),this._cooperativeGestures&&this._setupCooperativeGestures(),this._hash=T.hash&&new Id(typeof T.hash==\"string\"&&T.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:T.center,zoom:T.zoom,bearing:T.bearing,pitch:T.pitch}),T.bounds&&(this.resize(),this.fitBounds(T.bounds,n.e({},T.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=T.localIdeographFontFamily,this._validateStyle=T.validateStyle,T.style&&this.setStyle(T.style,{localIdeographFontFamily:T.localIdeographFontFamily}),T.attributionControl&&this.addControl(new ua({customAttribution:T.customAttribution})),T.maplibreLogo&&this.addControl(new ln,T.logoPosition),this.on(\"style.load\",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on(\"data\",l=>{this._update(l.dataType===\"style\"),this.fire(new n.k(`${l.dataType}data`,l))}),this.on(\"dataloading\",l=>{this.fire(new n.k(`${l.dataType}dataloading`,l))}),this.on(\"dataabort\",l=>{this.fire(new n.k(\"sourcedataabort\",l))})}_getMapId(){return this._mapId}addControl(T,l){if(l===void 0&&(l=T.getDefaultPosition?T.getDefaultPosition():\"top-right\"),!T||!T.onAdd)return this.fire(new n.j(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));let d=T.onAdd(this);this._controls.push(T);let v=this._controlPositions[l];return l.indexOf(\"bottom\")!==-1?v.insertBefore(d,v.firstChild):v.appendChild(d),this}removeControl(T){if(!T||!T.onRemove)return this.fire(new n.j(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));let l=this._controls.indexOf(T);return l>-1&&this._controls.splice(l,1),T.onRemove(this),this}hasControl(T){return this._controls.indexOf(T)>-1}calculateCameraOptionsFromTo(T,l,d,v){return v==null&&this.terrain&&(v=this.terrain.getElevationForLngLatZoom(d,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(T,l,d,v)}resize(T){var l;let d=this._containerDimensions(),v=d[0],b=d[1],M=this._getClampedPixelRatio(v,b);if(this._resizeCanvas(v,b,M),this.painter.resize(v,b,M),this.painter.overLimit()){let B=this.painter.context.gl;this._maxCanvasSize=[B.drawingBufferWidth,B.drawingBufferHeight];let U=this._getClampedPixelRatio(v,b);this._resizeCanvas(v,b,U),this.painter.resize(v,b,U)}this.transform.resize(v,b),(l=this._requestedCameraState)===null||l===void 0||l.resize(v,b);let O=!this._moving;return O&&(this.stop(),this.fire(new n.k(\"movestart\",T)).fire(new n.k(\"move\",T))),this.fire(new n.k(\"resize\",T)),O&&this.fire(new n.k(\"moveend\",T)),this}_getClampedPixelRatio(T,l){let{0:d,1:v}=this._maxCanvasSize,b=this.getPixelRatio(),M=T*b,O=l*b;return Math.min(M>d?d/M:1,O>v?v/O:1)*b}getPixelRatio(){var T;return(T=this._overridePixelRatio)!==null&&T!==void 0?T:devicePixelRatio}setPixelRatio(T){this._overridePixelRatio=T,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(T){return this.transform.setMaxBounds(wi.convert(T)),this._update()}setMinZoom(T){if((T=T??-2)>=-2&&T<=this.transform.maxZoom)return this.transform.minZoom=T,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=T,this._update(),this.getZoom()>T&&this.setZoom(T),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(T){if((T=T??0)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T>=0&&T<=this.transform.maxPitch)return this.transform.minPitch=T,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(T>=this.transform.minPitch)return this.transform.maxPitch=T,this._update(),this.getPitch()>T&&this.setPitch(T),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(T){return this.transform.renderWorldCopies=T,this._update()}getCooperativeGestures(){return this._cooperativeGestures}setCooperativeGestures(T){return this._cooperativeGestures=T,this._cooperativeGestures?this._setupCooperativeGestures():this._destroyCooperativeGestures(),this}project(T){return this.transform.locationPoint(n.L.convert(T),this.style&&this.terrain)}unproject(T){return this.transform.pointLocation(n.P.convert(T),this.terrain)}isMoving(){var T;return this._moving||((T=this.handlers)===null||T===void 0?void 0:T.isMoving())}isZooming(){var T;return this._zooming||((T=this.handlers)===null||T===void 0?void 0:T.isZooming())}isRotating(){var T;return this._rotating||((T=this.handlers)===null||T===void 0?void 0:T.isRotating())}_createDelegatedListener(T,l,d){if(T===\"mouseenter\"||T===\"mouseover\"){let v=!1;return{layer:l,listener:d,delegates:{mousemove:M=>{let O=this.getLayer(l)?this.queryRenderedFeatures(M.point,{layers:[l]}):[];O.length?v||(v=!0,d.call(this,new la(T,this,M.originalEvent,{features:O}))):v=!1},mouseout:()=>{v=!1}}}}if(T===\"mouseleave\"||T===\"mouseout\"){let v=!1;return{layer:l,listener:d,delegates:{mousemove:O=>{(this.getLayer(l)?this.queryRenderedFeatures(O.point,{layers:[l]}):[]).length?v=!0:v&&(v=!1,d.call(this,new la(T,this,O.originalEvent)))},mouseout:O=>{v&&(v=!1,d.call(this,new la(T,this,O.originalEvent)))}}}}{let v=b=>{let M=this.getLayer(l)?this.queryRenderedFeatures(b.point,{layers:[l]}):[];M.length&&(b.features=M,d.call(this,b),delete b.features)};return{layer:l,listener:d,delegates:{[T]:v}}}}on(T,l,d){if(d===void 0)return super.on(T,l);let v=this._createDelegatedListener(T,l,d);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[T]=this._delegatedListeners[T]||[],this._delegatedListeners[T].push(v);for(let b in v.delegates)this.on(b,v.delegates[b]);return this}once(T,l,d){if(d===void 0)return super.once(T,l);let v=this._createDelegatedListener(T,l,d);for(let b in v.delegates)this.once(b,v.delegates[b]);return this}off(T,l,d){return d===void 0?super.off(T,l):(this._delegatedListeners&&this._delegatedListeners[T]&&(v=>{let b=this._delegatedListeners[T];for(let M=0;Mthis._updateStyle(T,l));let d=this.style&&l.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!T)),T?(this.style=new Vn(this,l||{}),this.style.setEventedParent(this,{style:this.style}),typeof T==\"string\"?this.style.loadURL(T,l,d):this.style.loadJSON(T,l,d),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Vn(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(T,l){if(typeof T==\"string\"){let d=this._requestManager.transformRequest(T,Y.Style);n.f(d,(v,b)=>{v?this.fire(new n.j(v)):b&&this._updateDiff(b,l)})}else typeof T==\"object\"&&this._updateDiff(T,l)}_updateDiff(T,l){try{this.style.setState(T,l)&&this._update(!0)}catch(d){n.w(`Unable to perform style diff: ${d.message||d.error||d}. Rebuilding the style from scratch.`),this._updateStyle(T,l)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():n.w(\"There is no style added to the map.\")}addSource(T,l){return this._lazyInitEmptyStyle(),this.style.addSource(T,l),this._update(!0)}isSourceLoaded(T){let l=this.style&&this.style.sourceCaches[T];if(l!==void 0)return l.loaded();this.fire(new n.j(new Error(`There is no source with ID '${T}'`)))}setTerrain(T){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),T){let l=this.style.sourceCaches[T.source];if(!l)throw new Error(`cannot load terrain, because there exists no source with ID: ${T.source}`);for(let d in this.style._layers){let v=this.style._layers[d];v.type===\"hillshade\"&&v.source===T.source&&n.w(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\")}this.terrain=new h_(this.painter,l,T),this.painter.renderToTexture=new iA(this.painter,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=d=>{d.dataType===\"style\"?this.terrain.sourceCache.freeRtt():d.dataType===\"source\"&&d.tile&&(d.sourceId!==T.source||this._elevationFreeze||(this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(d.tile.tileID))},this.style.on(\"data\",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0;return this.fire(new n.k(\"terrain\",{terrain:T})),this}getTerrain(){var T,l;return(l=(T=this.terrain)===null||T===void 0?void 0:T.options)!==null&&l!==void 0?l:null}areTilesLoaded(){let T=this.style&&this.style.sourceCaches;for(let l in T){let d=T[l]._tiles;for(let v in d){let b=d[v];if(b.state!==\"loaded\"&&b.state!==\"errored\")return!1}}return!0}addSourceType(T,l,d){return this._lazyInitEmptyStyle(),this.style.addSourceType(T,l,d)}removeSource(T){return this.style.removeSource(T),this._update(!0)}getSource(T){return this.style.getSource(T)}addImage(T,l,d={}){let{pixelRatio:v=1,sdf:b=!1,stretchX:M,stretchY:O,content:B}=d;if(this._lazyInitEmptyStyle(),!(l instanceof HTMLImageElement||n.a(l))){if(l.width===void 0||l.height===void 0)return this.fire(new n.j(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));{let{width:U,height:W,data:Z}=l,Q=l;return this.style.addImage(T,{data:new n.R({width:U,height:W},new Uint8Array(Z)),pixelRatio:v,stretchX:M,stretchY:O,content:B,sdf:b,version:0,userImage:Q}),Q.onAdd&&Q.onAdd(this,T),this}}{let{width:U,height:W,data:Z}=n.h.getImageData(l);this.style.addImage(T,{data:new n.R({width:U,height:W},Z),pixelRatio:v,stretchX:M,stretchY:O,content:B,sdf:b,version:0})}}updateImage(T,l){let d=this.style.getImage(T);if(!d)return this.fire(new n.j(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));let v=l instanceof HTMLImageElement||n.a(l)?n.h.getImageData(l):l,{width:b,height:M,data:O}=v;if(b===void 0||M===void 0)return this.fire(new n.j(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(b!==d.data.width||M!==d.data.height)return this.fire(new n.j(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));let B=!(l instanceof HTMLImageElement||n.a(l));return d.data.replace(O,B),this.style.updateImage(T,d),this}getImage(T){return this.style.getImage(T)}hasImage(T){return T?!!this.style.getImage(T):(this.fire(new n.j(new Error(\"Missing required image id\"))),!1)}removeImage(T){this.style.removeImage(T)}loadImage(T,l){j.getImage(this._requestManager.transformRequest(T,Y.Image),l)}listImages(){return this.style.listImages()}addLayer(T,l){return this._lazyInitEmptyStyle(),this.style.addLayer(T,l),this._update(!0)}moveLayer(T,l){return this.style.moveLayer(T,l),this._update(!0)}removeLayer(T){return this.style.removeLayer(T),this._update(!0)}getLayer(T){return this.style.getLayer(T)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(T,l,d){return this.style.setLayerZoomRange(T,l,d),this._update(!0)}setFilter(T,l,d={}){return this.style.setFilter(T,l,d),this._update(!0)}getFilter(T){return this.style.getFilter(T)}setPaintProperty(T,l,d,v={}){return this.style.setPaintProperty(T,l,d,v),this._update(!0)}getPaintProperty(T,l){return this.style.getPaintProperty(T,l)}setLayoutProperty(T,l,d,v={}){return this.style.setLayoutProperty(T,l,d,v),this._update(!0)}getLayoutProperty(T,l){return this.style.getLayoutProperty(T,l)}setGlyphs(T,l={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(T,l),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(T,l,d={}){return this._lazyInitEmptyStyle(),this.style.addSprite(T,l,d,v=>{v||this._update(!0)}),this}removeSprite(T){return this._lazyInitEmptyStyle(),this.style.removeSprite(T),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(T,l={}){return this._lazyInitEmptyStyle(),this.style.setSprite(T,l,d=>{d||this._update(!0)}),this}setLight(T,l={}){return this._lazyInitEmptyStyle(),this.style.setLight(T,l),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(T,l){return this.style.setFeatureState(T,l),this._update()}removeFeatureState(T,l){return this.style.removeFeatureState(T,l),this._update()}getFeatureState(T){return this.style.getFeatureState(T)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let T=0,l=0;return this._container&&(T=this._container.clientWidth||400,l=this._container.clientHeight||300),[T,l]}_setupContainer(){let T=this._container;T.classList.add(\"maplibregl-map\");let l=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",T);this._interactive&&l.classList.add(\"maplibregl-interactive\"),this._canvas=c.create(\"canvas\",\"maplibregl-canvas\",l),this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"tabindex\",\"0\"),this._canvas.setAttribute(\"aria-label\",\"Map\"),this._canvas.setAttribute(\"role\",\"region\");let d=this._containerDimensions(),v=this._getClampedPixelRatio(d[0],d[1]);this._resizeCanvas(d[0],d[1],v);let b=this._controlContainer=c.create(\"div\",\"maplibregl-control-container\",T),M=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(O=>{M[O]=c.create(\"div\",`maplibregl-ctrl-${O} `,b)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_setupCooperativeGestures(){this._cooperativeGesturesScreen=c.create(\"div\",\"maplibregl-cooperative-gesture-screen\",this._container);let T=typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.windowsHelpText?this._cooperativeGestures.windowsHelpText:\"Use Ctrl + scroll to zoom the map\";navigator.platform.indexOf(\"Mac\")===0&&(T=typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.macHelpText?this._cooperativeGestures.macHelpText:\"Use \\u2318 + scroll to zoom the map\"),this._cooperativeGesturesScreen.innerHTML=`\n
${T}
\n
${typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.mobileHelpText?this._cooperativeGestures.mobileHelpText:\"Use two fingers to move the map\"}
\n `,this._cooperativeGesturesScreen.setAttribute(\"aria-hidden\",\"true\"),this._canvasContainer.addEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.add(\"maplibregl-cooperative-gestures\")}_destroyCooperativeGestures(){c.remove(this._cooperativeGesturesScreen),this._canvasContainer.removeEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.remove(\"maplibregl-cooperative-gestures\")}_resizeCanvas(T,l,d){this._canvas.width=Math.floor(d*T),this._canvas.height=Math.floor(d*l),this._canvas.style.width=`${T}px`,this._canvas.style.height=`${l}px`}_setupPainter(){let T={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1},l=null;this._canvas.addEventListener(\"webglcontextcreationerror\",v=>{l={requestedAttributes:T},v&&(l.statusMessage=v.statusMessage,l.type=v.type)},{once:!0});let d=this._canvas.getContext(\"webgl2\",T)||this._canvas.getContext(\"webgl\",T);if(!d){let v=\"Failed to initialize WebGL\";throw l?(l.message=v,new Error(JSON.stringify(l))):new Error(v)}this.painter=new oh(d,this.transform),f.testSupport(d)}_onCooperativeGesture(T,l,d){return!l&&d<2&&(this._cooperativeGesturesScreen.classList.add(\"maplibregl-show\"),setTimeout(()=>{this._cooperativeGesturesScreen.classList.remove(\"maplibregl-show\")},100)),!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(T){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||T,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(T){return this._update(),this._renderTaskQueue.add(T)}_cancelRenderFrame(T){this._renderTaskQueue.remove(T)}_render(T){let l=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(T),this._removed)return;let d=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let b=this.transform.zoom,M=n.h.now();this.style.zoomHistory.update(b,M);let O=new n.a8(b,{now:M,fadeDuration:l,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),B=O.crossFadingFactor();B===1&&B===this._crossFadingFactor||(d=!0,this._crossFadingFactor=B),this.style.update(O)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,l,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:l,showPadding:this.showPadding}),this.fire(new n.k(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,n.bg.mark(n.bh.load),this.fire(new n.k(\"load\"))),this.style&&(this.style.hasTransitions()||d)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let v=this._sourcesDirty||this._styleDirty||this._placementDirty;return v||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new n.k(\"idle\")),!this._loaded||this._fullyLoaded||v||(this._fullyLoaded=!0,n.bg.mark(n.bh.fullLoad)),this}redraw(){return this.style&&(this._frame&&(this._frame.cancel(),this._frame=null),this._render(0)),this}remove(){var T;this._hash&&this._hash.remove();for(let d of this._controls)d.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<\"u\"&&removeEventListener(\"online\",this._onWindowOnline,!1),j.removeThrottleControl(this._imageQueueHandle),(T=this._resizeObserver)===null||T===void 0||T.disconnect();let l=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");l&&l.loseContext(),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),c.remove(this._canvasContainer),c.remove(this._controlContainer),this._cooperativeGestures&&this._destroyCooperativeGestures(),this._container.classList.remove(\"maplibregl-map\"),n.bg.clearMetrics(),this._removed=!0,this.fire(new n.k(\"remove\"))}triggerRepaint(){this.style&&!this._frame&&(this._frame=n.h.frame(T=>{n.bg.frame(T),this._frame=null,this._render(T)}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(T){this._showTileBoundaries!==T&&(this._showTileBoundaries=T,this._update())}get showPadding(){return!!this._showPadding}set showPadding(T){this._showPadding!==T&&(this._showPadding=T,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(T){this._showCollisionBoxes!==T&&(this._showCollisionBoxes=T,T?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(T){this._showOverdrawInspector!==T&&(this._showOverdrawInspector=T,this._update())}get repaint(){return!!this._repaint}set repaint(T){this._repaint!==T&&(this._repaint=T,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(T){this._vertices=T,this._update()}get version(){return rr}getCameraTargetElevation(){return this.transform.elevation}},xi.NavigationControl=class{constructor(T){this._updateZoomButtons=()=>{let l=this._map.getZoom(),d=l===this._map.getMaxZoom(),v=l===this._map.getMinZoom();this._zoomInButton.disabled=d,this._zoomOutButton.disabled=v,this._zoomInButton.setAttribute(\"aria-disabled\",d.toString()),this._zoomOutButton.setAttribute(\"aria-disabled\",v.toString())},this._rotateCompassArrow=()=>{let l=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=l},this._setButtonTitle=(l,d)=>{let v=this._map._getUIString(`NavigationControl.${d}`);l.title=v,l.setAttribute(\"aria-label\",v)},this.options=n.e({},nA,T),this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",l=>l.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton(\"maplibregl-ctrl-zoom-in\",l=>this._map.zoomIn({},{originalEvent:l})),c.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"maplibregl-ctrl-zoom-out\",l=>this._map.zoomOut({},{originalEvent:l})),c.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(this._compass=this._createButton(\"maplibregl-ctrl-compass\",l=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:l}):this._map.resetNorth({},{originalEvent:l})}),this._compassIcon=c.create(\"span\",\"maplibregl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"))}onAdd(T){return this._map=T,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),this._map.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&this._map.on(\"pitch\",this._rotateCompassArrow),this._map.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Dd(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){c.remove(this._container),this.options.showZoom&&this._map.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(\"pitch\",this._rotateCompassArrow),this._map.off(\"rotate\",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(T,l){let d=c.create(\"button\",T,this._container);return d.type=\"button\",d.addEventListener(\"click\",l),d}},xi.GeolocateControl=class extends n.E{constructor(T){super(),this._onSuccess=l=>{if(this._map){if(this._isOutOfMapMaxBounds(l))return this._setErrorState(),this.fire(new n.k(\"outofmaxbounds\",l)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=l,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!==\"OFF\"&&this._updateMarker(l),this.options.trackUserLocation&&this._watchState!==\"ACTIVE_LOCK\"||this._updateCamera(l),this.options.showUserLocation&&this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\"),this.fire(new n.k(\"geolocate\",l)),this._finish()}},this._updateCamera=l=>{let d=new n.L(l.coords.longitude,l.coords.latitude),v=l.coords.accuracy,b=this._map.getBearing(),M=n.e({bearing:b},this.options.fitBoundsOptions),O=wi.fromLngLat(d,v);this._map.fitBounds(O,M,{geolocateSource:!0})},this._updateMarker=l=>{if(l){let d=new n.L(l.coords.longitude,l.coords.latitude);this._accuracyCircleMarker.setLngLat(d).addTo(this._map),this._userLocationDotMarker.setLngLat(d).addTo(this._map),this._accuracy=l.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=l=>{if(this._map){if(this.options.trackUserLocation)if(l.code===1){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;let d=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(l.code===3&&bf)return;this._setErrorState()}this._watchState!==\"OFF\"&&this.options.showUserLocation&&this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"),this.fire(new n.k(\"error\",l)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=l=>{if(this._map){if(this._container.addEventListener(\"contextmenu\",d=>d.preventDefault()),this._geolocateButton=c.create(\"button\",\"maplibregl-ctrl-geolocate\",this._container),c.create(\"span\",\"maplibregl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",\"true\"),this._geolocateButton.type=\"button\",l===!1){n.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");let d=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d)}else{let d=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=c.create(\"div\",\"maplibregl-user-location-dot\"),this._userLocationDotMarker=new Ah({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Ah({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",d=>{d.geolocateSource||this._watchState!==\"ACTIVE_LOCK\"||d.originalEvent&&d.originalEvent.type===\"resize\"||(this._watchState=\"BACKGROUND\",this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this.fire(new n.k(\"trackuserlocationend\")))})}},this.options=n.e({},Cn,T)}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),function(l,d=!1){Gn===void 0||d?window.navigator.permissions!==void 0?window.navigator.permissions.query({name:\"geolocation\"}).then(v=>{Gn=v.state!==\"denied\",l(Gn)}).catch(()=>{Gn=!!window.navigator.geolocation,l(Gn)}):(Gn=!!window.navigator.geolocation,l(Gn)):l(Gn)}(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),c.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,yn=0,bf=!1}_isOutOfMapMaxBounds(T){let l=this._map.getMaxBounds(),d=T.coords;return l&&(d.longitudel.getEast()||d.latitudel.getNorth())}_setErrorState(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"ACTIVE_ERROR\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){let T=this._map.getBounds(),l=T.getSouthEast(),d=T.getNorthEast(),v=l.distanceTo(d),b=Math.ceil(this._accuracy/(v/this._map._container.clientHeight)*2);this._circleElement.style.width=`${b}px`,this._circleElement.style.height=`${b}px`}trigger(){if(!this._setup)return n.w(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new n.k(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":yn--,bf=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this.fire(new n.k(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new n.k(\"trackuserlocationstart\"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"OFF\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState===\"OFF\"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let T;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),yn++,yn>1?(T={maximumAge:6e5,timeout:0},bf=!0):(T=this.options.positionOptions,bf=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,T)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null)}},xi.AttributionControl=ua,xi.LogoControl=ln,xi.ScaleControl=class{constructor(T){this._onMove=()=>{mh(this._map,this._container,this.options)},this.setUnit=l=>{this.options.unit=l,mh(this._map,this._container,this.options)},this.options=n.e({},Ms,T)}getDefaultPosition(){return\"bottom-left\"}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",T.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container}onRemove(){c.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0}},xi.FullscreenControl=class extends n.E{constructor(T={}){super(),this._onFullscreenChange=()=>{(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,T&&T.container&&(T.container instanceof HTMLElement?this._container=T.container:n.w(\"Full screen control 'container' must be a DOM element.\")),\"onfullscreenchange\"in document?this._fullscreenchange=\"fullscreenchange\":\"onmozfullscreenchange\"in document?this._fullscreenchange=\"mozfullscreenchange\":\"onwebkitfullscreenchange\"in document?this._fullscreenchange=\"webkitfullscreenchange\":\"onmsfullscreenchange\"in document&&(this._fullscreenchange=\"MSFullscreenChange\")}onAdd(T){return this._map=T,this._container||(this._container=this._map.getContainer()),this._controlContainer=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),this._controlContainer}onRemove(){c.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){let T=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",T).setAttribute(\"aria-hidden\",\"true\"),T.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let T=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",T),this._fullscreenButton.title=T}_getTitle(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"),this._updateTitle(),this._fullscreen?(this.fire(new n.k(\"fullscreenstart\")),this._map._cooperativeGestures&&(this._prevCooperativeGestures=this._map._cooperativeGestures,this._map.setCooperativeGestures())):(this.fire(new n.k(\"fullscreenend\")),this._prevCooperativeGestures&&(this._map.setCooperativeGestures(this._prevCooperativeGestures),delete this._prevCooperativeGestures))}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"),this._handleFullscreenChange(),this._map.resize()}},xi.TerrainControl=class{constructor(T){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"),this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"),this._map.terrain?(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.disableTerrain\")):(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.enableTerrain\"))},this.options=T}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._terrainButton=c.create(\"button\",\"maplibregl-ctrl-terrain\",this._container),c.create(\"span\",\"maplibregl-ctrl-icon\",this._terrainButton).setAttribute(\"aria-hidden\",\"true\"),this._terrainButton.type=\"button\",this._terrainButton.addEventListener(\"click\",this._toggleTerrain),this._updateTerrainIcon(),this._map.on(\"terrain\",this._updateTerrainIcon),this._container}onRemove(){c.remove(this._container),this._map.off(\"terrain\",this._updateTerrainIcon),this._map=void 0}},xi.Popup=class extends n.E{constructor(T){super(),this.remove=()=>(this._content&&c.remove(this._content),this._container&&(c.remove(this._container),delete this._container),this._map&&(this._map.off(\"move\",this._update),this._map.off(\"move\",this._onClose),this._map.off(\"click\",this._onClose),this._map.off(\"remove\",this.remove),this._map.off(\"mousemove\",this._onMouseMove),this._map.off(\"mouseup\",this._onMouseUp),this._map.off(\"drag\",this._onDrag),delete this._map),this.fire(new n.k(\"close\")),this),this._onMouseUp=l=>{this._update(l.point)},this._onMouseMove=l=>{this._update(l.point)},this._onDrag=l=>{this._update(l.point)},this._update=l=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=c.create(\"div\",\"maplibregl-popup\",this._map.getContainer()),this._tip=c.create(\"div\",\"maplibregl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className)for(let O of this.options.className.split(\" \"))this._container.classList.add(O);this._trackPointer&&this._container.classList.add(\"maplibregl-popup-track-pointer\")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=io(this._lngLat,this._pos,this._map.transform)),this._trackPointer&&!l)return;let d=this._pos=this._trackPointer&&l?l:this._map.project(this._lngLat),v=this.options.anchor,b=wf(this.options.offset);if(!v){let O=this._container.offsetWidth,B=this._container.offsetHeight,U;U=d.y+b.bottom.ythis._map.transform.height-B?[\"bottom\"]:[],d.xthis._map.transform.width-O/2&&U.push(\"right\"),v=U.length===0?\"bottom\":U.join(\"-\")}let M=d.add(b[v]).round();c.setTransform(this._container,`${Ui[v]} translate(${M.x}px,${M.y}px)`),f_(this._container,v,\"popup\")},this._onClose=()=>{this.remove()},this.options=n.e(Object.create(c0),T)}addTo(T){return this._map&&this.remove(),this._map=T,this.options.closeOnClick&&this._map.on(\"click\",this._onClose),this.options.closeOnMove&&this._map.on(\"move\",this._onClose),this._map.on(\"remove\",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"mouseup\",this._onMouseUp),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new n.k(\"open\")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(T){return this._lngLat=n.L.convert(T),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(\"move\",this._update),this._map.off(\"mousemove\",this._onMouseMove),this._container&&this._container.classList.remove(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off(\"move\",this._update),this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"drag\",this._onDrag),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")),this}getElement(){return this._container}setText(T){return this.setDOMContent(document.createTextNode(T))}setHTML(T){let l=document.createDocumentFragment(),d=document.createElement(\"body\"),v;for(d.innerHTML=T;v=d.firstChild,v;)l.appendChild(v);return this.setDOMContent(l)}getMaxWidth(){var T;return(T=this._container)===null||T===void 0?void 0:T.style.maxWidth}setMaxWidth(T){return this.options.maxWidth=T,this._update(),this}setDOMContent(T){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=c.create(\"div\",\"maplibregl-popup-content\",this._container);return this._content.appendChild(T),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(T){this._container&&this._container.classList.add(T)}removeClassName(T){this._container&&this._container.classList.remove(T)}setOffset(T){return this.options.offset=T,this._update(),this}toggleClassName(T){if(this._container)return this._container.classList.toggle(T)}_createCloseButton(){this.options.closeButton&&(this._closeButton=c.create(\"button\",\"maplibregl-popup-close-button\",this._content),this._closeButton.type=\"button\",this._closeButton.setAttribute(\"aria-label\",\"Close popup\"),this._closeButton.innerHTML=\"×\",this._closeButton.addEventListener(\"click\",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let T=this._container.querySelector(Od);T&&T.focus()}},xi.Marker=Ah,xi.Style=Vn,xi.LngLat=n.L,xi.LngLatBounds=wi,xi.Point=n.P,xi.MercatorCoordinate=n.U,xi.Evented=n.E,xi.AJAXError=n.bi,xi.config=n.c,xi.CanvasSource=No,xi.GeoJSONSource=Zi,xi.ImageSource=Ii,xi.RasterDEMTileSource=Cc,xi.RasterTileSource=Ic,xi.VectorTileSource=sl,xi.VideoSource=Xn,xi.setRTLTextPlugin=n.bj,xi.getRTLTextPluginStatus=n.bk,xi.prewarm=function(){po().acquire(oi)},xi.clearPrewarmedResources=function(){let T=al;T&&(T.isPreloaded()&&T.numActive()===1?(T.release(oi),al=null):console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"))},Go.extend(xi,{isSafari:n.ac,getPerformanceMetrics:n.bg.getPerformanceMetrics}),xi});var s=r;return s})});var eG=Br((d6t,GE)=>{(function(e,t,r,i){\"use strict\";var s=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],n=t.createElement(\"div\"),o=\"function\",c=Math.round,f=Math.abs,_=Date.now;function w(lt,ft,Lt){return setTimeout(K(lt,Lt),ft)}function C(lt,ft,Lt){return Array.isArray(lt)?(R(lt,Lt[ft],Lt),!0):!1}function R(lt,ft,Lt){var $t;if(lt)if(lt.forEach)lt.forEach(ft,Lt);else if(lt.length!==i)for($t=0;$t\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",ti=e.console&&(e.console.warn||e.console.log);return ti&&ti.call(e.console,$t,qe),lt.apply(this,arguments)}}var j;typeof Object.assign!=\"function\"?j=function(ft){if(ft===i||ft===null)throw new TypeError(\"Cannot convert undefined or null to object\");for(var Lt=Object(ft),$t=1;$t-1}function le(lt){return lt.trim().split(/\\s+/g)}function ue(lt,ft,Lt){if(lt.indexOf&&!Lt)return lt.indexOf(ft);for(var $t=0;$tBs[ft]}):$t=$t.sort()),$t}function er(lt,ft){for(var Lt,$t,ge=ft[0].toUpperCase()+ft.slice(1),qe=0;qe1&&!Lt.firstMultiple?Lt.firstMultiple=po(ft):ge===1&&(Lt.firstMultiple=!1);var qe=Lt.firstInput,ti=Lt.firstMultiple,ts=ti?ti.center:qe.center,Ss=ft.center=ll($t);ft.timeStamp=_(),ft.deltaTime=ft.timeStamp-qe.timeStamp,ft.angle=Uo(ts,Ss),ft.distance=ve(ts,Ss),uu(Lt,ft),ft.offsetDirection=Ao(ft.deltaX,ft.deltaY);var Bs=Pa(ft.deltaTime,ft.deltaX,ft.deltaY);ft.overallVelocityX=Bs.x,ft.overallVelocityY=Bs.y,ft.overallVelocity=f(Bs.x)>f(Bs.y)?Bs.x:Bs.y,ft.scale=ti?Bl(ti.pointers,$t):1,ft.rotation=ti?dn(ti.pointers,$t):0,ft.maxPointers=Lt.prevInput?ft.pointers.length>Lt.prevInput.maxPointers?ft.pointers.length:Lt.prevInput.maxPointers:ft.pointers.length,al(Lt,ft);var ka=lt.element;Kt(ft.srcEvent.target,ka)&&(ka=ft.srcEvent.target),ft.target=ka}function uu(lt,ft){var Lt=ft.center,$t=lt.offsetDelta||{},ge=lt.prevDelta||{},qe=lt.prevInput||{};(ft.eventType===Zi||qe.eventType===Ii)&&(ge=lt.prevDelta={x:qe.deltaX||0,y:qe.deltaY||0},$t=lt.offsetDelta={x:Lt.x,y:Lt.y}),ft.deltaX=ge.x+(Lt.x-$t.x),ft.deltaY=ge.y+(Lt.y-$t.y)}function al(lt,ft){var Lt=lt.lastInterval||ft,$t=ft.timeStamp-Lt.timeStamp,ge,qe,ti,ts;if(ft.eventType!=Xn&&($t>Cc||Lt.velocity===i)){var Ss=ft.deltaX-Lt.deltaX,Bs=ft.deltaY-Lt.deltaY,ka=Pa($t,Ss,Bs);qe=ka.x,ti=ka.y,ge=f(ka.x)>f(ka.y)?ka.x:ka.y,ts=Ao(Ss,Bs),lt.lastInterval=ft}else ge=Lt.velocity,qe=Lt.velocityX,ti=Lt.velocityY,ts=Lt.direction;ft.velocity=ge,ft.velocityX=qe,ft.velocityY=ti,ft.direction=ts}function po(lt){for(var ft=[],Lt=0;Lt=f(ft)?lt<0?ol:fo:ft<0?Ea:na}function ve(lt,ft,Lt){Lt||(Lt=te);var $t=ft[Lt[0]]-lt[Lt[0]],ge=ft[Lt[1]]-lt[Lt[1]];return Math.sqrt($t*$t+ge*ge)}function Uo(lt,ft,Lt){Lt||(Lt=te);var $t=ft[Lt[0]]-lt[Lt[0]],ge=ft[Lt[1]]-lt[Lt[1]];return Math.atan2(ge,$t)*180/Math.PI}function dn(lt,ft){return Uo(ft[1],ft[0],os)+Uo(lt[1],lt[0],os)}function Bl(lt,ft){return ve(ft[0],ft[1],os)/ve(lt[0],lt[1],os)}var Ia={mousedown:Zi,mousemove:$n,mouseup:Ii},Se=\"mousedown\",Dr=\"mousemove mouseup\";function mr(){this.evEl=Se,this.evWin=Dr,this.pressed=!1,fn.apply(this,arguments)}$(mr,fn,{handler:function(ft){var Lt=Ia[ft.type];Lt&Zi&&ft.button===0&&(this.pressed=!0),Lt&$n&&ft.which!==1&&(Lt=Ii),this.pressed&&(Lt&Ii&&(this.pressed=!1),this.callback(this.manager,Lt,{pointers:[ft],changedPointers:[ft],pointerType:sl,srcEvent:ft}))}});var Os={pointerdown:Zi,pointermove:$n,pointerup:Ii,pointercancel:Xn,pointerout:Xn},Ca={2:wi,3:Ds,4:sl,5:Ic},Tr=\"pointerdown\",sa=\"pointermove pointerup pointercancel\";e.MSPointerEvent&&!e.PointerEvent&&(Tr=\"MSPointerDown\",sa=\"MSPointerMove MSPointerUp MSPointerCancel\");function gt(){this.evEl=Tr,this.evWin=sa,fn.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}$(gt,fn,{handler:function(ft){var Lt=this.store,$t=!1,ge=ft.type.toLowerCase().replace(\"ms\",\"\"),qe=Os[ge],ti=Ca[ft.pointerType]||ft.pointerType,ts=ti==wi,Ss=ue(Lt,ft.pointerId,\"pointerId\");qe&Zi&&(ft.button===0||ts)?Ss<0&&(Lt.push(ft),Ss=Lt.length-1):qe&(Ii|Xn)&&($t=!0),!(Ss<0)&&(Lt[Ss]=ft,this.callback(this.manager,qe,{pointers:Lt,changedPointers:[ft],pointerType:ti,srcEvent:ft}),$t&&Lt.splice(Ss,1))}});var J={touchstart:Zi,touchmove:$n,touchend:Ii,touchcancel:Xn},nt=\"touchstart\",ht=\"touchstart touchmove touchend touchcancel\";function vt(){this.evTarget=nt,this.evWin=ht,this.started=!1,fn.apply(this,arguments)}$(vt,fn,{handler:function(ft){var Lt=J[ft.type];if(Lt===Zi&&(this.started=!0),!!this.started){var $t=xt.call(this,ft,Lt);Lt&(Ii|Xn)&&$t[0].length-$t[1].length===0&&(this.started=!1),this.callback(this.manager,Lt,{pointers:$t[0],changedPointers:$t[1],pointerType:wi,srcEvent:ft})}}});function xt(lt,ft){var Lt=Ge(lt.touches),$t=Ge(lt.changedTouches);return ft&(Ii|Xn)&&(Lt=tr(Lt.concat($t),\"identifier\",!0)),[Lt,$t]}var _t={touchstart:Zi,touchmove:$n,touchend:Ii,touchcancel:Xn},Dt=\"touchstart touchmove touchend touchcancel\";function Mt(){this.evTarget=Dt,this.targetIds={},fn.apply(this,arguments)}$(Mt,fn,{handler:function(ft){var Lt=_t[ft.type],$t=Ut.call(this,ft,Lt);$t&&this.callback(this.manager,Lt,{pointers:$t[0],changedPointers:$t[1],pointerType:wi,srcEvent:ft})}});function Ut(lt,ft){var Lt=Ge(lt.touches),$t=this.targetIds;if(ft&(Zi|$n)&&Lt.length===1)return $t[Lt[0].identifier]=!0,[Lt,Lt];var ge,qe,ti=Ge(lt.changedTouches),ts=[],Ss=this.target;if(qe=Lt.filter(function(Bs){return Kt(Bs.target,Ss)}),ft===Zi)for(ge=0;ge-1&&$t.splice(qe,1)};setTimeout(ge,re)}}function Ye(lt){for(var ft=lt.srcEvent.clientX,Lt=lt.srcEvent.clientY,$t=0;$t-1&&this.requireFail.splice(ft,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(lt){return!!this.simultaneous[lt.id]},emit:function(lt){var ft=this,Lt=this.state;function $t(ge){ft.manager.emit(ge,lt)}Lt=ai&&$t(ft.options.event+Bm(Lt))},tryEmit:function(lt){if(this.canEmit())return this.emit(lt);this.state=on},canEmit:function(){for(var lt=0;ltft.threshold&&ge&ft.direction},attrTest:function(lt){return mo.prototype.attrTest.call(this,lt)&&(this.state&ws||!(this.state&ws)&&this.directionTest(lt))},emit:function(lt){this.pX=lt.deltaX,this.pY=lt.deltaY;var ft=Vo(lt.direction);ft&&(lt.additionalEvent=this.options.event+ft),this._super.emit.call(this,lt)}});function Yi(){mo.apply(this,arguments)}$(Yi,mo,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[Hr]},attrTest:function(lt){return this._super.attrTest.call(this,lt)&&(Math.abs(lt.scale-1)>this.options.threshold||this.state&ws)},emit:function(lt){if(lt.scale!==1){var ft=lt.scale<1?\"in\":\"out\";lt.additionalEvent=this.options.event+ft}this._super.emit.call(this,lt)}});function _i(){kn.apply(this,arguments),this._timer=null,this._input=null}$(_i,kn,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Bi]},process:function(lt){var ft=this.options,Lt=lt.pointers.length===ft.pointers,$t=lt.distanceft.time;if(this._input=lt,!$t||!Lt||lt.eventType&(Ii|Xn)&&!ge)this.reset();else if(lt.eventType&Zi)this.reset(),this._timer=w(function(){this.state=La,this.tryEmit()},ft.time,this);else if(lt.eventType&Ii)return La;return on},reset:function(){clearTimeout(this._timer)},emit:function(lt){this.state===La&&(lt&<.eventType&Ii?this.manager.emit(this.options.event+\"up\",lt):(this._input.timeStamp=_(),this.manager.emit(this.options.event,this._input)))}});function Nl(){mo.apply(this,arguments)}$(Nl,mo,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[Hr]},attrTest:function(lt){return this._super.attrTest.call(this,lt)&&(Math.abs(lt.rotation)>this.options.threshold||this.state&ws)}});function an(){mo.apply(this,arguments)}$(an,mo,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:ss|to,pointers:1},getTouchAction:function(){return zl.prototype.getTouchAction.call(this)},attrTest:function(lt){var ft=this.options.direction,Lt;return ft&(ss|to)?Lt=lt.overallVelocity:ft&ss?Lt=lt.overallVelocityX:ft&to&&(Lt=lt.overallVelocityY),this._super.attrTest.call(this,lt)&&ft<.offsetDirection&<.distance>this.options.threshold&<.maxPointers==this.options.pointers&&f(Lt)>this.options.velocity&<.eventType&Ii},emit:function(lt){var ft=Vo(lt.offsetDirection);ft&&this.manager.emit(this.options.event+ft,lt),this.manager.emit(this.options.event,lt)}});function hu(){kn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}$(hu,kn,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ni]},process:function(lt){var ft=this.options,Lt=lt.pointers.length===ft.pointers,$t=lt.distance{\"use strict\";QO.exports=b3;QO.exports.default=b3;function b3(e,t,r){r=r||2;var i=t&&t.length,s=i?t[0]*r:e.length,n=GH(e,0,s,r,!0),o=[];if(!n||n.next===n.prev)return o;var c,f,_,w,C,R,N;if(i&&(n=Sdt(e,t,n,r)),e.length>80*r){c=_=e[0],f=w=e[1];for(var j=r;j_&&(_=C),R>w&&(w=R);N=Math.max(_-c,w-f),N=N!==0?32767/N:0}return z2(n,o,r,c,f,N,0),o}function GH(e,t,r,i,s){var n,o;if(s===YO(e,t,r,i)>0)for(n=t;n=t;n-=i)o=jH(n,e[n],e[n+1],o);return o&&w3(o,o.next)&&(U2(o),o=o.next),o}function Rg(e,t){if(!e)return e;t||(t=e);var r=e,i;do if(i=!1,!r.steiner&&(w3(r,r.next)||_s(r.prev,r,r.next)===0)){if(U2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function z2(e,t,r,i,s,n,o){if(e){!o&&n&&Idt(e,i,s,n);for(var c=e,f,_;e.prev!==e.next;){if(f=e.prev,_=e.next,n?xdt(e,i,s,n):vdt(e)){t.push(f.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),U2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=bdt(Rg(e),t,r),z2(e,t,r,i,s,n,2)):o===2&&wdt(e,t,r,i,s,n):z2(Rg(e),t,r,i,s,n,1);break}}}}function vdt(e){var t=e.prev,r=e,i=e.next;if(_s(t,r,i)>=0)return!1;for(var s=t.x,n=r.x,o=i.x,c=t.y,f=r.y,_=i.y,w=sn?s>o?s:o:n>o?n:o,N=c>f?c>_?c:_:f>_?f:_,j=i.next;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=C&&j.y<=N&&jv(s,c,n,f,o,_,j.x,j.y)&&_s(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function xdt(e,t,r,i){var s=e.prev,n=e,o=e.next;if(_s(s,n,o)>=0)return!1;for(var c=s.x,f=n.x,_=o.x,w=s.y,C=n.y,R=o.y,N=cf?c>_?c:_:f>_?f:_,rt=w>C?w>R?w:R:C>R?C:R,$=qO(N,j,t,r,i),K=qO(Y,rt,t,r,i),tt=e.prevZ,ut=e.nextZ;tt&&tt.z>=$&&ut&&ut.z<=K;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&jv(c,w,f,C,_,R,tt.x,tt.y)&&_s(tt.prev,tt,tt.next)>=0||(tt=tt.prevZ,ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&jv(c,w,f,C,_,R,ut.x,ut.y)&&_s(ut.prev,ut,ut.next)>=0))return!1;ut=ut.nextZ}for(;tt&&tt.z>=$;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&jv(c,w,f,C,_,R,tt.x,tt.y)&&_s(tt.prev,tt,tt.next)>=0)return!1;tt=tt.prevZ}for(;ut&&ut.z<=K;){if(ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&jv(c,w,f,C,_,R,ut.x,ut.y)&&_s(ut.prev,ut,ut.next)>=0)return!1;ut=ut.nextZ}return!0}function bdt(e,t,r){var i=e;do{var s=i.prev,n=i.next.next;!w3(s,n)&&WH(s,i,i.next,n)&&N2(s,n)&&N2(n,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(n.i/r|0),U2(i),U2(i.next),i=e=n),i=i.next}while(i!==e);return Rg(i)}function wdt(e,t,r,i,s,n){var o=e;do{for(var c=o.next.next;c!==o.prev;){if(o.i!==c.i&&kdt(o,c)){var f=HH(o,c);o=Rg(o,o.next),f=Rg(f,f.next),z2(o,t,r,i,s,n,0),z2(f,t,r,i,s,n,0);return}c=c.next}o=o.next}while(o!==e)}function Sdt(e,t,r,i){var s=[],n,o,c,f,_;for(n=0,o=t.length;n=r.next.y&&r.next.y!==r.y){var c=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(c<=i&&c>n&&(n=c,o=r.x=r.x&&r.x>=_&&i!==r.x&&jv(so.x||r.x===o.x&&Pdt(o,r)))&&(o=r,C=R)),r=r.next;while(r!==f);return o}function Pdt(e,t){return _s(e.prev,e,t.prev)<0&&_s(t.next,e,e.next)<0}function Idt(e,t,r,i){var s=e;do s.z===0&&(s.z=qO(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,Cdt(s)}function Cdt(e){var t,r,i,s,n,o,c,f,_=1;do{for(r=e,e=null,n=null,o=0;r;){for(o++,i=r,c=0,t=0;t<_&&(c++,i=i.nextZ,!!i);t++);for(f=_;c>0||f>0&&i;)c!==0&&(f===0||!i||r.z<=i.z)?(s=r,r=r.nextZ,c--):(s=i,i=i.nextZ,f--),n?n.nextZ=s:e=s,s.prevZ=n,n=s;r=i}n.nextZ=null,_*=2}while(o>1);return e}function qO(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Ldt(e){var t=e,r=e;do(t.x=(e-o)*(n-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(n-c)>=(s-o)*(i-c)}function kdt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Rdt(e,t)&&(N2(e,t)&&N2(t,e)&&Ddt(e,t)&&(_s(e.prev,e,t.prev)||_s(e,t.prev,t))||w3(e,t)&&_s(e.prev,e,e.next)>0&&_s(t.prev,t,t.next)>0)}function _s(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function w3(e,t){return e.x===t.x&&e.y===t.y}function WH(e,t,r,i){var s=x3(_s(e,t,r)),n=x3(_s(e,t,i)),o=x3(_s(r,i,e)),c=x3(_s(r,i,t));return!!(s!==n&&o!==c||s===0&&v3(e,r,t)||n===0&&v3(e,i,t)||o===0&&v3(r,e,i)||c===0&&v3(r,t,i))}function v3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function x3(e){return e>0?1:e<0?-1:0}function Rdt(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&WH(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function N2(e,t){return _s(e.prev,e,e.next)<0?_s(e,t,e.next)>=0&&_s(e,e.prev,t)>=0:_s(e,t,e.prev)<0||_s(e,e.next,t)<0}function Ddt(e,t){var r=e,i=!1,s=(e.x+t.x)/2,n=(e.y+t.y)/2;do r.y>n!=r.next.y>n&&r.next.y!==r.y&&s<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function HH(e,t){var r=new ZO(e.i,e.x,e.y),i=new ZO(t.i,t.x,t.y),s=e.next,n=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,n.next=i,i.prev=n,i}function jH(e,t,r,i){var s=new ZO(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function U2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function ZO(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}b3.deviation=function(e,t,r,i){var s=t&&t.length,n=s?t[0]*r:e.length,o=Math.abs(YO(e,0,n,r));if(s)for(var c=0,f=t.length;c0&&(i+=e[s-1].length,r.holes.push(i))}return r}});var jB=Br(Ax=>{\"use strict\";Object.defineProperty(Ax,\"__esModule\",{value:!0});Ax.DefaultSerializer=Ax.extendSerializer=void 0;function W_t(e,t){let r=e.deserialize.bind(e),i=e.serialize.bind(e);return{deserialize(s){return t.deserialize(s,r)},serialize(s){return t.serialize(s,i)}}}Ax.extendSerializer=W_t;var DQ={deserialize(e){return Object.assign(Error(e.message),{name:e.name,stack:e.stack})},serialize(e){return{__error_marker:\"$$error\",message:e.message,name:e.name,stack:e.stack}}},H_t=e=>e&&typeof e==\"object\"&&\"__error_marker\"in e&&e.__error_marker===\"$$error\";Ax.DefaultSerializer={deserialize(e){return H_t(e)?DQ.deserialize(e):e},serialize(e){return e instanceof Error?DQ.serialize(e):e}}});var mx=Br(Em=>{\"use strict\";Object.defineProperty(Em,\"__esModule\",{value:!0});Em.serialize=Em.deserialize=Em.registerSerializer=void 0;var OQ=jB(),vI=OQ.DefaultSerializer;function q_t(e){vI=OQ.extendSerializer(vI,e)}Em.registerSerializer=q_t;function Z_t(e){return vI.deserialize(e)}Em.deserialize=Z_t;function Y_t(e){return vI.serialize(e)}Em.serialize=Y_t});var FQ=Br(gx=>{\"use strict\";Object.defineProperty(gx,\"__esModule\",{value:!0});gx.getBundleURL=gx.getBaseURL=void 0;var GB;function Q_t(){return GB||(GB=$_t()),GB}gx.getBundleURL=Q_t;function $_t(){try{throw new Error}catch(e){let t=(\"\"+e.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);if(t)return BQ(t[0])}return\"/\"}function BQ(e){return(\"\"+e).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/,\"$1\")+\"/\"}gx.getBaseURL=BQ});var HB=Br(Pm=>{\"use strict\";Object.defineProperty(Pm,\"__esModule\",{value:!0});Pm.isWorkerRuntime=Pm.getWorkerImplementation=Pm.defaultPoolSize=void 0;var zQ=FQ();Pm.defaultPoolSize=typeof navigator<\"u\"&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:4;var NQ=e=>/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.test(e);function UQ(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function X_t(){if(typeof Worker>\"u\")return class{constructor(){throw Error(\"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.\")}};class e extends Worker{constructor(i,s){var n,o;typeof i==\"string\"&&s&&s._baseURL?i=new URL(i,s._baseURL):typeof i==\"string\"&&!NQ(i)&&zQ.getBundleURL().match(/^file:\\/\\//i)&&(i=new URL(i,zQ.getBundleURL().replace(/\\/[^\\/]+$/,\"/\")),(!((n=s?.CORSWorkaround)!==null&&n!==void 0)||n)&&(i=UQ(`importScripts(${JSON.stringify(i)});`))),typeof i==\"string\"&&NQ(i)&&(!((o=s?.CORSWorkaround)!==null&&o!==void 0)||o)&&(i=UQ(`importScripts(${JSON.stringify(i)});`)),super(i,s)}}class t extends e{constructor(i,s){let n=window.URL.createObjectURL(i);super(n,s)}static fromText(i,s){let n=new window.Blob([i],{type:\"text/javascript\"});return new t(n,s)}}return{blob:t,default:e}}var WB;function K_t(){return WB||(WB=X_t()),WB}Pm.getWorkerImplementation=K_t;function J_t(){let e=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!e)}Pm.isWorkerRuntime=J_t});var jQ=Br((Qoe,VQ)=>{var _x=1e3,yx=_x*60,vx=yx*60,qg=vx*24,tyt=qg*7,eyt=qg*365.25;VQ.exports=function(e,t){t=t||{};var r=typeof e;if(r===\"string\"&&e.length>0)return ryt(e);if(r===\"number\"&&isFinite(e))return t.long?nyt(e):iyt(e);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(e))};function ryt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),i=(t[2]||\"ms\").toLowerCase();switch(i){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return r*eyt;case\"weeks\":case\"week\":case\"w\":return r*tyt;case\"days\":case\"day\":case\"d\":return r*qg;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return r*vx;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return r*yx;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return r*_x;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return r;default:return}}}}function iyt(e){var t=Math.abs(e);return t>=qg?Math.round(e/qg)+\"d\":t>=vx?Math.round(e/vx)+\"h\":t>=yx?Math.round(e/yx)+\"m\":t>=_x?Math.round(e/_x)+\"s\":e+\"ms\"}function nyt(e){var t=Math.abs(e);return t>=qg?xI(e,t,qg,\"day\"):t>=vx?xI(e,t,vx,\"hour\"):t>=yx?xI(e,t,yx,\"minute\"):t>=_x?xI(e,t,_x,\"second\"):e+\" ms\"}function xI(e,t,r,i){var s=t>=r*1.5;return Math.round(e/r)+\" \"+i+(s?\"s\":\"\")}});var WQ=Br(($oe,GQ)=>{function syt(e){r.debug=r,r.default=r,r.coerce=f,r.disable=n,r.enable=s,r.enabled=o,r.humanize=jQ(),r.destroy=_,Object.keys(e).forEach(w=>{r[w]=e[w]}),r.names=[],r.skips=[],r.formatters={};function t(w){let C=0;for(let R=0;R{if(Ot===\"%%\")return\"%\";ut++;let Zt=r.formatters[Kt];if(typeof Zt==\"function\"){let le=rt[ut];Ot=Zt.call($,le),rt.splice(ut,1),ut--}return Ot}),r.formatArgs.call($,rt),($.log||r.log).apply($,rt)}return Y.namespace=w,Y.useColors=r.useColors(),Y.color=r.selectColor(w),Y.extend=i,Y.destroy=r.destroy,Object.defineProperty(Y,\"enabled\",{enumerable:!0,configurable:!1,get:()=>R!==null?R:(N!==r.namespaces&&(N=r.namespaces,j=r.enabled(w)),j),set:rt=>{R=rt}}),typeof r.init==\"function\"&&r.init(Y),Y}function i(w,C){let R=r(this.namespace+(typeof C>\"u\"?\":\":C)+w);return R.log=this.log,R}function s(w){r.save(w),r.namespaces=w,r.names=[],r.skips=[];let C,R=(typeof w==\"string\"?w:\"\").split(/[\\s,]+/),N=R.length;for(C=0;C\"-\"+C)].join(\",\");return r.enable(\"\"),w}function o(w){if(w[w.length-1]===\"*\")return!0;let C,R;for(C=0,R=r.skips.length;C{lu.formatArgs=ayt;lu.save=lyt;lu.load=cyt;lu.useColors=oyt;lu.storage=uyt();lu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})();lu.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function oyt(){return typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs)?!0:typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function ayt(e){if(e[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+e[0]+(this.useColors?\"%c \":\" \")+\"+\"+bI.exports.humanize(this.diff),!this.useColors)return;let t=\"color: \"+this.color;e.splice(1,0,t,\"color: inherit\");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!==\"%%\"&&(r++,s===\"%c\"&&(i=r))}),e.splice(i,0,t)}lu.log=console.debug||console.log||(()=>{});function lyt(e){try{e?lu.storage.setItem(\"debug\",e):lu.storage.removeItem(\"debug\")}catch{}}function cyt(){let e;try{e=lu.storage.getItem(\"debug\")}catch{}return!e&&typeof process<\"u\"&&\"env\"in process&&(e=process.env.DEBUG),e}function uyt(){try{return localStorage}catch{}}bI.exports=WQ()(lu);var{formatters:hyt}=bI.exports;hyt.j=function(e){try{return JSON.stringify(e)}catch(t){return\"[UnexpectedJSONParseError]: \"+t.message}}});var _S=Br(xx=>{\"use strict\";var fyt=xx&&xx.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(xx,\"__esModule\",{value:!0});xx.AsyncSerialScheduler=void 0;var qB=class{constructor(t){this._baseObserver=t,this._pendingPromises=new Set}complete(){Promise.all(this._pendingPromises).then(()=>this._baseObserver.complete()).catch(t=>this._baseObserver.error(t))}error(t){this._baseObserver.error(t)}schedule(t){let r=Promise.all(this._pendingPromises),i=[],s=o=>i.push(o),n=Promise.resolve().then(()=>fyt(this,void 0,void 0,function*(){yield r,yield t(s),this._pendingPromises.delete(n);for(let o of i)this._baseObserver.next(o)})).catch(o=>{this._pendingPromises.delete(n),this._baseObserver.error(o)});this._pendingPromises.add(n)}};xx.AsyncSerialScheduler=qB});var qQ=Br(HQ=>{\"use strict\";Object.defineProperty(HQ,\"__esModule\",{value:!0})});var ZB=Br(Rl=>{\"use strict\";Object.defineProperty(Rl,\"__esModule\",{value:!0});Rl.registerObservableSymbol=Rl.getSymbol=Rl.hasSymbol=Rl.hasSymbols=void 0;var dyt=()=>typeof Symbol==\"function\";Rl.hasSymbols=dyt;var pyt=e=>Rl.hasSymbols()&&!!Symbol[e];Rl.hasSymbol=pyt;var Ayt=e=>Rl.hasSymbol(e)?Symbol[e]:\"@@\"+e;Rl.getSymbol=Ayt;function myt(){Rl.hasSymbols()&&!Rl.hasSymbol(\"observable\")&&(Symbol.observable=Symbol(\"observable\"))}Rl.registerObservableSymbol=myt;Rl.hasSymbol(\"asyncIterator\")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for(\"Symbol.asyncIterator\"))});var Ad=Br(Fp=>{\"use strict\";Object.defineProperty(Fp,\"__esModule\",{value:!0});Fp.Observable=Fp.SubscriptionObserver=Fp.Subscription=void 0;qQ();var vS=ZB(),gyt=vS.getSymbol(\"iterator\"),QB=vS.getSymbol(\"observable\"),ZQ=vS.getSymbol(\"species\");function TI(e,t){let r=e[t];if(r!=null){if(typeof r!=\"function\")throw new TypeError(r+\" is not a function\");return r}}function yS(e){let t=e.constructor;return t!==void 0&&(t=t[ZQ],t===null&&(t=void 0)),t!==void 0?t:Zg}function _yt(e){return e instanceof Zg}function bx(e){bx.log?bx.log(e):setTimeout(()=>{throw e},0)}function SI(e){Promise.resolve().then(()=>{try{e()}catch(t){bx(t)}})}function YQ(e){let t=e._cleanup;if(t!==void 0&&(e._cleanup=void 0,!!t))try{if(typeof t==\"function\")t();else{let r=TI(t,\"unsubscribe\");r&&r.call(t)}}catch(r){bx(r)}}function $B(e){e._observer=void 0,e._queue=void 0,e._state=\"closed\"}function yyt(e){let t=e._queue;if(t){e._queue=void 0,e._state=\"ready\";for(let r of t)if(QQ(e,r.type,r.value),e._state===\"closed\")break}}function QQ(e,t,r){e._state=\"running\";let i=e._observer;try{let s=i?TI(i,t):void 0;switch(t){case\"next\":s&&s.call(i,r);break;case\"error\":if($B(e),s)s.call(i,r);else throw r;break;case\"complete\":$B(e),s&&s.call(i);break}}catch(s){bx(s)}e._state===\"closed\"?YQ(e):e._state===\"running\"&&(e._state=\"ready\")}function YB(e,t,r){if(e._state!==\"closed\"){if(e._state===\"buffering\"){e._queue=e._queue||[],e._queue.push({type:t,value:r});return}if(e._state!==\"ready\"){e._state=\"buffering\",e._queue=[{type:t,value:r}],SI(()=>yyt(e));return}QQ(e,t,r)}}var MI=class{constructor(t,r){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state=\"initializing\";let i=new EI(this);try{this._cleanup=r.call(void 0,i)}catch(s){i.error(s)}this._state===\"initializing\"&&(this._state=\"ready\")}get closed(){return this._state===\"closed\"}unsubscribe(){this._state!==\"closed\"&&($B(this),YQ(this))}};Fp.Subscription=MI;var EI=class{constructor(t){this._subscription=t}get closed(){return this._subscription._state===\"closed\"}next(t){YB(this._subscription,\"next\",t)}error(t){YB(this._subscription,\"error\",t)}complete(){YB(this._subscription,\"complete\")}};Fp.SubscriptionObserver=EI;var Zg=class e{constructor(t){if(!(this instanceof e))throw new TypeError(\"Observable cannot be called as a function\");if(typeof t!=\"function\")throw new TypeError(\"Observable initializer must be a function\");this._subscriber=t}subscribe(t,r,i){return(typeof t!=\"object\"||t===null)&&(t={next:t,error:r,complete:i}),new MI(t,this._subscriber)}pipe(t,...r){let i=this;for(let s of[t,...r])i=s(i);return i}tap(t,r,i){let s=typeof t!=\"object\"||t===null?{next:t,error:r,complete:i}:t;return new e(n=>this.subscribe({next(o){s.next&&s.next(o),n.next(o)},error(o){s.error&&s.error(o),n.error(o)},complete(){s.complete&&s.complete(),n.complete()},start(o){s.start&&s.start(o)}}))}forEach(t){return new Promise((r,i)=>{if(typeof t!=\"function\"){i(new TypeError(t+\" is not a function\"));return}function s(){n.unsubscribe(),r(void 0)}let n=this.subscribe({next(o){try{t(o,s)}catch(c){i(c),n.unsubscribe()}},error(o){i(o)},complete(){r(void 0)}})})}map(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>this.subscribe({next(s){let n=s;try{n=t(s)}catch(o){return i.error(o)}i.next(n)},error(s){i.error(s)},complete(){i.complete()}}))}filter(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>this.subscribe({next(s){try{if(!t(s))return}catch(n){return i.error(n)}i.next(s)},error(s){i.error(s)},complete(){i.complete()}}))}reduce(t,r){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let i=yS(this),s=arguments.length>1,n=!1,o=r;return new i(c=>this.subscribe({next(f){let _=!n;if(n=!0,!_||s)try{o=t(o,f)}catch(w){return c.error(w)}else o=f},error(f){c.error(f)},complete(){if(!n&&!s)return c.error(new TypeError(\"Cannot reduce an empty sequence\"));c.next(o),c.complete()}}))}concat(...t){let r=yS(this);return new r(i=>{let s,n=0;function o(c){s=c.subscribe({next(f){i.next(f)},error(f){i.error(f)},complete(){n===t.length?(s=void 0,i.complete()):o(r.from(t[n++]))}})}return o(this),()=>{s&&(s.unsubscribe(),s=void 0)}})}flatMap(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>{let s=[],n=this.subscribe({next(c){let f;if(t)try{f=t(c)}catch(w){return i.error(w)}else f=c;let _=r.from(f).subscribe({next(w){i.next(w)},error(w){i.error(w)},complete(){let w=s.indexOf(_);w>=0&&s.splice(w,1),o()}});s.push(_)},error(c){i.error(c)},complete(){o()}});function o(){n.closed&&s.length===0&&i.complete()}return()=>{s.forEach(c=>c.unsubscribe()),n.unsubscribe()}})}[(Symbol.observable,QB)](){return this}static from(t){let r=typeof this==\"function\"?this:e;if(t==null)throw new TypeError(t+\" is not an object\");let i=TI(t,QB);if(i){let s=i.call(t);if(Object(s)!==s)throw new TypeError(s+\" is not an object\");return _yt(s)&&s.constructor===r?s:new r(n=>s.subscribe(n))}if(vS.hasSymbol(\"iterator\")){let s=TI(t,gyt);if(s)return new r(n=>{SI(()=>{if(!n.closed){for(let o of s.call(t))if(n.next(o),n.closed)return;n.complete()}})})}if(Array.isArray(t))return new r(s=>{SI(()=>{if(!s.closed){for(let n of t)if(s.next(n),s.closed)return;s.complete()}})});throw new TypeError(t+\" is not observable\")}static of(...t){let r=typeof this==\"function\"?this:e;return new r(i=>{SI(()=>{if(!i.closed){for(let s of t)if(i.next(s),i.closed)return;i.complete()}})})}static get[ZQ](){return this}};Fp.Observable=Zg;vS.hasSymbols()&&Object.defineProperty(Zg,Symbol(\"extensions\"),{value:{symbol:QB,hostReportError:bx},configurable:!0});Fp.default=Zg});var Im=Br(XB=>{\"use strict\";Object.defineProperty(XB,\"__esModule\",{value:!0});function vyt(e){typeof e==\"function\"?e():e&&typeof e.unsubscribe==\"function\"&&e.unsubscribe()}XB.default=vyt});var $Q=Br(xS=>{\"use strict\";var xyt=xS&&xS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(xS,\"__esModule\",{value:!0});var byt=_S(),wyt=Ad(),Syt=Im();function Tyt(e){return t=>new wyt.default(r=>{let i=new byt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>xyt(this,void 0,void 0,function*(){(yield e(n))&&o(n)}))}});return()=>Syt.default(s)})}xS.default=Tyt});var KQ=Br(wx=>{\"use strict\";Object.defineProperty(wx,\"__esModule\",{value:!0});wx.isIterator=wx.isAsyncIterator=void 0;var XQ=ZB();function Myt(e){return e&&XQ.hasSymbol(\"asyncIterator\")&&e[Symbol.asyncIterator]}wx.isAsyncIterator=Myt;function Eyt(e){return e&&XQ.hasSymbol(\"iterator\")&&e[Symbol.iterator]}wx.isIterator=Eyt});var t$=Br(Yg=>{\"use strict\";var Pyt=Yg&&Yg.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},Iyt=Yg&&Yg.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==\"function\"?__values(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(n){r[n]=e[n]&&function(o){return new Promise(function(c,f){o=e[n](o),s(c,f,o.done,o.value)})}}function s(n,o,c,f){Promise.resolve(f).then(function(_){n({value:_,done:c})},o)}};Object.defineProperty(Yg,\"__esModule\",{value:!0});var Cyt=_S(),JQ=KQ(),Lyt=Ad(),kyt=Im();function Ryt(e){return t=>new Lyt.default(r=>{let i=new Cyt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>Pyt(this,void 0,void 0,function*(){var c,f;let _=yield e(n);if(JQ.isIterator(_)||JQ.isAsyncIterator(_))try{for(var w=Iyt(_),C;C=yield w.next(),!C.done;){let R=C.value;o(R)}}catch(R){c={error:R}}finally{try{C&&!C.done&&(f=w.return)&&(yield f.call(w))}finally{if(c)throw c.error}}else _.map(R=>o(R))}))}});return()=>kyt.default(s)})}Yg.default=Ryt});var e$=Br(KB=>{\"use strict\";Object.defineProperty(KB,\"__esModule\",{value:!0});var Dyt=Ad();function Oyt(e){return new Dyt.Observable(t=>{let r=0,i=setInterval(()=>{t.next(r++)},e);return()=>clearInterval(i)})}KB.default=Oyt});var r$=Br(bS=>{\"use strict\";var Byt=bS&&bS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(bS,\"__esModule\",{value:!0});var Fyt=_S(),zyt=Ad(),Nyt=Im();function Uyt(e){return t=>new zyt.default(r=>{let i=new Fyt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>Byt(this,void 0,void 0,function*(){let c=yield e(n);o(c)}))}});return()=>Nyt.default(s)})}bS.default=Uyt});var n$=Br(JB=>{\"use strict\";Object.defineProperty(JB,\"__esModule\",{value:!0});var i$=Ad(),Vyt=Im();function jyt(...e){return e.length===0?i$.Observable.from([]):new i$.Observable(t=>{let r=0,i=e.map(n=>n.subscribe({error(o){t.error(o),s()},next(o){t.next(o)},complete(){++r===e.length&&(t.complete(),s())}})),s=()=>{i.forEach(n=>Vyt.default(n))};return s})}JB.default=jyt});var r6=Br(e6=>{\"use strict\";Object.defineProperty(e6,\"__esModule\",{value:!0});var Gyt=Ad(),t6=class extends Gyt.default{constructor(){super(t=>(this._observers.add(t),()=>this._observers.delete(t))),this._observers=new Set}next(t){for(let r of this._observers)r.next(t)}error(t){for(let r of this._observers)r.error(t)}complete(){for(let t of this._observers)t.complete()}};e6.default=t6});var s$=Br(i6=>{\"use strict\";Object.defineProperty(i6,\"__esModule\",{value:!0});var Wyt=Ad(),Hyt=r6(),qyt=Im();function Zyt(e){let t=new Hyt.default,r,i=0;return new Wyt.default(s=>{r||(r=e.subscribe(t));let n=t.subscribe(s);return i++,()=>{i--,n.unsubscribe(),i===0&&(qyt.default(r),r=void 0)}})}i6.default=Zyt});var o$=Br(wS=>{\"use strict\";var Yyt=wS&&wS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(wS,\"__esModule\",{value:!0});var Qyt=_S(),$yt=Ad(),Xyt=Im();function Kyt(e,t){return r=>new $yt.default(i=>{let s,n=0,o=new Qyt.AsyncSerialScheduler(i),c=r.subscribe({complete(){o.complete()},error(f){o.error(f)},next(f){o.schedule(_=>Yyt(this,void 0,void 0,function*(){s=yield e(n===0?typeof t>\"u\"?f:t:s,f,n++),_(s)}))}});return()=>Xyt.default(c)})}wS.default=Kyt});var a$=Br(Rs=>{\"use strict\";Object.defineProperty(Rs,\"__esModule\",{value:!0});Rs.unsubscribe=Rs.Subject=Rs.scan=Rs.Observable=Rs.multicast=Rs.merge=Rs.map=Rs.interval=Rs.flatMap=Rs.filter=void 0;var Jyt=$Q();Object.defineProperty(Rs,\"filter\",{enumerable:!0,get:function(){return Jyt.default}});var tvt=t$();Object.defineProperty(Rs,\"flatMap\",{enumerable:!0,get:function(){return tvt.default}});var evt=e$();Object.defineProperty(Rs,\"interval\",{enumerable:!0,get:function(){return evt.default}});var rvt=r$();Object.defineProperty(Rs,\"map\",{enumerable:!0,get:function(){return rvt.default}});var ivt=n$();Object.defineProperty(Rs,\"merge\",{enumerable:!0,get:function(){return ivt.default}});var nvt=s$();Object.defineProperty(Rs,\"multicast\",{enumerable:!0,get:function(){return nvt.default}});var svt=Ad();Object.defineProperty(Rs,\"Observable\",{enumerable:!0,get:function(){return svt.default}});var ovt=o$();Object.defineProperty(Rs,\"scan\",{enumerable:!0,get:function(){return ovt.default}});var avt=r6();Object.defineProperty(Rs,\"Subject\",{enumerable:!0,get:function(){return avt.default}});var lvt=Im();Object.defineProperty(Rs,\"unsubscribe\",{enumerable:!0,get:function(){return lvt.default}})});var SS=Br((fae,l$)=>{l$.exports=a$()});var c$=Br(PI=>{\"use strict\";Object.defineProperty(PI,\"__esModule\",{value:!0});PI.allSettled=void 0;function cvt(e){return Promise.all(e.map(t=>{let r=n=>({status:\"fulfilled\",value:n}),i=n=>({status:\"rejected\",reason:n}),s=Promise.resolve(t);try{return s.then(r,i)}catch(n){return Promise.reject(n)}}))}PI.allSettled=cvt});var u$=Br(TS=>{\"use strict\";Object.defineProperty(TS,\"__esModule\",{value:!0});TS.PoolEventType=void 0;var uvt;(function(e){e.initialized=\"initialized\",e.taskCanceled=\"taskCanceled\",e.taskCompleted=\"taskCompleted\",e.taskFailed=\"taskFailed\",e.taskQueued=\"taskQueued\",e.taskQueueDrained=\"taskQueueDrained\",e.taskStart=\"taskStart\",e.terminated=\"terminated\"})(uvt=TS.PoolEventType||(TS.PoolEventType={}))});var MS=Br(th=>{\"use strict\";Object.defineProperty(th,\"__esModule\",{value:!0});th.$worker=th.$transferable=th.$terminate=th.$events=th.$errors=void 0;th.$errors=Symbol(\"thread.errors\");th.$events=Symbol(\"thread.events\");th.$terminate=Symbol(\"thread.terminate\");th.$transferable=Symbol(\"thread.transferable\");th.$worker=Symbol(\"thread.worker\")});var s6=Br(II=>{\"use strict\";Object.defineProperty(II,\"__esModule\",{value:!0});II.Thread=void 0;var n6=MS();function h$(e){throw Error(e)}II.Thread={errors(e){return e[n6.$errors]||h$(\"Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},events(e){return e[n6.$events]||h$(\"Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},terminate(e){return e[n6.$terminate]()}}});var A$=Br(eh=>{\"use strict\";var Qg=eh&&eh.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},hvt=eh&&eh.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(eh,\"__esModule\",{value:!0});eh.Pool=eh.Thread=eh.PoolEventType=void 0;var fvt=hvt(wI()),o6=SS(),f$=c$(),dvt=HB(),ia=u$();Object.defineProperty(eh,\"PoolEventType\",{enumerable:!0,get:function(){return ia.PoolEventType}});var d$=s6();Object.defineProperty(eh,\"Thread\",{enumerable:!0,get:function(){return d$.Thread}});var pvt=1;function Avt(e){let t=[];for(let r=0;rsetTimeout(t,e))}function gvt(e,t){return e.reduce((r,i)=>[...r,...t(i)],[])}function _vt(e){return e.replace(/\\W/g,\" \").trim().replace(/\\s+/g,\"-\")}function yvt(e,t){return Avt(t).map(()=>({init:e(),runningTasks:[]}))}var CI=class{constructor(t,r){this.eventSubject=new o6.Subject,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];let i=typeof r==\"number\"?{size:r}:r||{},{size:s=dvt.defaultPoolSize}=i;this.debug=fvt.default(`threads:pool:${_vt(i.name||String(pvt++))}`),this.options=i,this.workers=yvt(t,s),this.eventObservable=o6.multicast(o6.Observable.from(this.eventSubject)),Promise.all(this.workers.map(n=>n.init)).then(()=>this.eventSubject.next({type:ia.PoolEventType.initialized,size:this.workers.length}),n=>{this.debug(\"Error while initializing pool worker:\",n),this.eventSubject.error(n),this.initErrors.push(n)})}findIdlingWorker(){let{concurrency:t=1}=this.options;return this.workers.find(r=>r.runningTasks.length{t.runningTasks=t.runningTasks.filter(n=>n!==i)};yield mvt(0);try{yield this.runPoolTask(t,r)}finally{s(),this.isClosing||this.scheduleWork()}});t.runningTasks.push(i)})}scheduleWork(){this.debug(\"Attempt de-queueing a task in order to run it...\");let t=this.findIdlingWorker();if(!t)return;let r=this.taskQueue.shift();if(!r){this.debug(\"Task queue is empty\"),this.eventSubject.next({type:ia.PoolEventType.taskQueueDrained});return}this.run(t,r)}taskCompletion(t){return new Promise((r,i)=>{let s=this.events().subscribe(n=>{n.type===ia.PoolEventType.taskCompleted&&n.taskID===t?(s.unsubscribe(),r(n.returnValue)):n.type===ia.PoolEventType.taskFailed&&n.taskID===t?(s.unsubscribe(),i(n.error)):n.type===ia.PoolEventType.terminated&&(s.unsubscribe(),i(Error(\"Pool has been terminated before task was run.\")))})})}settled(t=!1){return Qg(this,void 0,void 0,function*(){let r=()=>gvt(this.workers,n=>n.runningTasks),i=[],s=this.eventObservable.subscribe(n=>{n.type===ia.PoolEventType.taskFailed&&i.push(n.error)});return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&this.taskQueue.length===0?(yield f$.allSettled(r()),i):(yield new Promise((n,o)=>{let c=this.eventObservable.subscribe({next(f){f.type===ia.PoolEventType.taskQueueDrained&&(c.unsubscribe(),n(void 0))},error:o})}),yield f$.allSettled(r()),s.unsubscribe(),i)})}completed(t=!1){return Qg(this,void 0,void 0,function*(){let r=this.settled(t),i=new Promise((n,o)=>{let c=this.eventObservable.subscribe({next(f){f.type===ia.PoolEventType.taskQueueDrained?(c.unsubscribe(),n(r)):f.type===ia.PoolEventType.taskFailed&&(c.unsubscribe(),o(f.error))},error:o})}),s=yield Promise.race([r,i]);if(s.length>0)throw s[0]})}events(){return this.eventObservable}queue(t){let{maxQueuedJobs:r=1/0}=this.options;if(this.isClosing)throw Error(\"Cannot schedule pool tasks after terminate() has been called.\");if(this.initErrors.length>0)throw this.initErrors[0];let i=this.nextTaskID++,s=this.taskCompletion(i);s.catch(o=>{this.debug(`Task #${i} errored:`,o)});let n={id:i,run:t,cancel:()=>{this.taskQueue.indexOf(n)!==-1&&(this.taskQueue=this.taskQueue.filter(o=>o!==n),this.eventSubject.next({type:ia.PoolEventType.taskCanceled,taskID:n.id}))},then:s.then.bind(s)};if(this.taskQueue.length>=r)throw Error(`Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.`);return this.debug(`Queueing task #${n.id}...`),this.taskQueue.push(n),this.eventSubject.next({type:ia.PoolEventType.taskQueued,taskID:n.id}),this.scheduleWork(),n}terminate(t){return Qg(this,void 0,void 0,function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:ia.PoolEventType.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map(r=>Qg(this,void 0,void 0,function*(){return d$.Thread.terminate(yield r.init)})))})}};CI.EventType=ia.PoolEventType;function p$(e,t){return new CI(e,t)}p$.EventType=ia.PoolEventType;eh.Pool=p$});var m$=Br(LI=>{\"use strict\";Object.defineProperty(LI,\"__esModule\",{value:!0});LI.createPromiseWithResolver=void 0;var vvt=()=>{};function xvt(){let e=!1,t,r=vvt;return[new Promise(n=>{e?n(t):r=n}),n=>{e=!0,t=n,r(t)}]}LI.createPromiseWithResolver=xvt});var g$=Br(ES=>{\"use strict\";Object.defineProperty(ES,\"__esModule\",{value:!0});ES.WorkerEventType=void 0;var yae=MS(),bvt;(function(e){e.internalError=\"internalError\",e.message=\"message\",e.termination=\"termination\"})(bvt=ES.WorkerEventType||(ES.WorkerEventType={}))});var y$=Br(kI=>{\"use strict\";Object.defineProperty(kI,\"__esModule\",{value:!0});kI.ObservablePromise=void 0;var wvt=SS(),Svt=()=>{},Tvt=e=>e,_$=e=>Promise.resolve().then(e);function Mvt(e){throw e}function Evt(e){return e&&typeof e.then==\"function\"}var a6=class e extends wvt.Observable{constructor(t){super(r=>{let i=this,s=Object.assign(Object.assign({},r),{complete(){r.complete(),i.onCompletion()},error(n){r.error(n),i.onError(n)},next(n){r.next(n),i.onNext(n)}});try{return this.initHasRun=!0,t(s)}catch(n){s.error(n)}}),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state=\"pending\"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state=\"rejected\",this.rejection=t;for(let r of this.rejectionCallbacks)_$(()=>r(t))}onCompletion(){this.state=\"fulfilled\";for(let t of this.fulfillmentCallbacks)_$(()=>t(this.firstValue))}then(t,r){let i=t||Tvt,s=r||Mvt,n=!1;return new Promise((o,c)=>{let f=w=>{if(!n){n=!0;try{o(s(w))}catch(C){c(C)}}},_=w=>{try{o(i(w))}catch(C){f(C)}};if(this.initHasRun||this.subscribe({error:f}),this.state===\"fulfilled\")return o(i(this.firstValue));if(this.state===\"rejected\")return n=!0,o(s(this.rejection));this.fulfillmentCallbacks.push(_),this.rejectionCallbacks.push(f)})}catch(t){return this.then(void 0,t)}finally(t){let r=t||Svt;return this.then(i=>(r(),i),()=>r())}static from(t){return Evt(t)?new e(r=>{let i=n=>{r.next(n),r.complete()},s=n=>{r.error(n)};t.then(i,s)}):super.from(t)}};kI.ObservablePromise=a6});var PS=Br(Sx=>{\"use strict\";Object.defineProperty(Sx,\"__esModule\",{value:!0});Sx.Transfer=Sx.isTransferDescriptor=void 0;var v$=MS();function Pvt(e){return!(!e||typeof e!=\"object\")}function Ivt(e){return e&&typeof e==\"object\"&&e[v$.$transferable]}Sx.isTransferDescriptor=Ivt;function Cvt(e,t){if(!t){if(!Pvt(e))throw Error();t=[e]}return{[v$.$transferable]:!0,send:e,transferables:t}}Sx.Transfer=Cvt});var l6=Br(Cm=>{\"use strict\";Object.defineProperty(Cm,\"__esModule\",{value:!0});Cm.WorkerMessageType=Cm.MasterMessageType=void 0;var Lvt;(function(e){e.cancel=\"cancel\",e.run=\"run\"})(Lvt=Cm.MasterMessageType||(Cm.MasterMessageType={}));var kvt;(function(e){e.error=\"error\",e.init=\"init\",e.result=\"result\",e.running=\"running\",e.uncaughtError=\"uncaughtError\"})(kvt=Cm.WorkerMessageType||(Cm.WorkerMessageType={}))});var T$=Br(Lm=>{\"use strict\";var Rvt=Lm&&Lm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Lm,\"__esModule\",{value:!0});Lm.createProxyModule=Lm.createProxyFunction=void 0;var Dvt=Rvt(wI()),b$=SS(),IS=mx(),x$=y$(),Ovt=PS(),CS=l6(),w$=Dvt.default(\"threads:master:messages\"),Bvt=1,Fvt=e=>Array.from(new Set(e)),zvt=e=>e&&e.type===CS.WorkerMessageType.error,Nvt=e=>e&&e.type===CS.WorkerMessageType.result,Uvt=e=>e&&e.type===CS.WorkerMessageType.running;function Vvt(e,t){return new b$.Observable(r=>{let i,s=n=>{if(w$(\"Message from worker:\",n.data),!(!n.data||n.data.uid!==t)){if(Uvt(n.data))i=n.data.resultType;else if(Nvt(n.data))i===\"promise\"?(typeof n.data.payload<\"u\"&&r.next(IS.deserialize(n.data.payload)),r.complete(),e.removeEventListener(\"message\",s)):(n.data.payload&&r.next(IS.deserialize(n.data.payload)),n.data.complete&&(r.complete(),e.removeEventListener(\"message\",s)));else if(zvt(n.data)){let o=IS.deserialize(n.data.error);r.error(o),e.removeEventListener(\"message\",s)}}};return e.addEventListener(\"message\",s),()=>{if(i===\"observable\"||!i){let n={type:CS.MasterMessageType.cancel,uid:t};e.postMessage(n)}e.removeEventListener(\"message\",s)}})}function jvt(e){if(e.length===0)return{args:[],transferables:[]};let t=[],r=[];for(let i of e)Ovt.isTransferDescriptor(i)?(t.push(IS.serialize(i.send)),r.push(...i.transferables)):t.push(IS.serialize(i));return{args:t,transferables:r.length===0?r:Fvt(r)}}function S$(e,t){return(...r)=>{let i=Bvt++,{args:s,transferables:n}=jvt(r),o={type:CS.MasterMessageType.run,uid:i,method:t,args:s};w$(\"Sending command to run function to worker:\",o);try{e.postMessage(o,n)}catch(c){return x$.ObservablePromise.from(Promise.reject(c))}return x$.ObservablePromise.from(b$.multicast(Vvt(e,i)))}}Lm.createProxyFunction=S$;function Gvt(e,t){let r={};for(let i of t)r[i]=S$(e,i);return r}Lm.createProxyModule=Gvt});var I$=Br(km=>{\"use strict\";var c6=km&&km.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},Wvt=km&&km.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(km,\"__esModule\",{value:!0});km.spawn=void 0;var u6=Wvt(wI()),Hvt=SS(),qvt=mx(),Zvt=m$(),RI=MS(),DI=g$(),M$=T$(),Yvt=u6.default(\"threads:master:messages\"),Qvt=u6.default(\"threads:master:spawn\"),P$=u6.default(\"threads:master:thread-utils\"),$vt=e=>e&&e.type===\"init\",Xvt=e=>e&&e.type===\"uncaughtError\",Kvt=typeof process<\"u\"&&process.env.THREADS_WORKER_INIT_TIMEOUT?Number.parseInt(process.env.THREADS_WORKER_INIT_TIMEOUT,10):1e4;function Jvt(e,t,r){return c6(this,void 0,void 0,function*(){let i,s=new Promise((o,c)=>{i=setTimeout(()=>c(Error(r)),t)}),n=yield Promise.race([e,s]);return clearTimeout(i),n})}function txt(e){return new Promise((t,r)=>{let i=s=>{Yvt(\"Message from worker before finishing initialization:\",s.data),$vt(s.data)?(e.removeEventListener(\"message\",i),t(s.data)):Xvt(s.data)&&(e.removeEventListener(\"message\",i),r(qvt.deserialize(s.data.error)))};e.addEventListener(\"message\",i)})}function ext(e,t){return new Hvt.Observable(r=>{let i=n=>{let o={type:DI.WorkerEventType.message,data:n.data};r.next(o)},s=n=>{P$(\"Unhandled promise rejection event in thread:\",n);let o={type:DI.WorkerEventType.internalError,error:Error(n.reason)};r.next(o)};e.addEventListener(\"message\",i),e.addEventListener(\"unhandledrejection\",s),t.then(()=>{let n={type:DI.WorkerEventType.termination};e.removeEventListener(\"message\",i),e.removeEventListener(\"unhandledrejection\",s),r.next(n),r.complete()})})}function rxt(e){let[t,r]=Zvt.createPromiseWithResolver();return{terminate:()=>c6(this,void 0,void 0,function*(){P$(\"Terminating worker\"),yield e.terminate(),r()}),termination:t}}function E$(e,t,r,i){let s=r.filter(n=>n.type===DI.WorkerEventType.internalError).map(n=>n.error);return Object.assign(e,{[RI.$errors]:s,[RI.$events]:r,[RI.$terminate]:i,[RI.$worker]:t})}function ixt(e,t){return c6(this,void 0,void 0,function*(){Qvt(\"Initializing new thread\");let r=t&&t.timeout?t.timeout:Kvt,s=(yield Jvt(txt(e),r,`Timeout: Did not receive an init message from worker after ${r}ms. Make sure the worker calls expose().`)).exposed,{termination:n,terminate:o}=rxt(e),c=ext(e,n);if(s.type===\"function\"){let f=M$.createProxyFunction(e);return E$(f,e,c,o)}else if(s.type===\"module\"){let f=M$.createProxyModule(e,s.methods);return E$(f,e,c,o)}else{let f=s.type;throw Error(`Worker init message states unexpected type of expose(): ${f}`)}})}km.spawn=ixt});var C$=Br(Mc=>{\"use strict\";Object.defineProperty(Mc,\"__esModule\",{value:!0});Mc.Worker=Mc.BlobWorker=Mc.isWorkerRuntime=Mc.Thread=Mc.spawn=Mc.Pool=void 0;var h6=HB();Object.defineProperty(Mc,\"isWorkerRuntime\",{enumerable:!0,get:function(){return h6.isWorkerRuntime}});var nxt=A$();Object.defineProperty(Mc,\"Pool\",{enumerable:!0,get:function(){return nxt.Pool}});var sxt=I$();Object.defineProperty(Mc,\"spawn\",{enumerable:!0,get:function(){return sxt.spawn}});var oxt=s6();Object.defineProperty(Mc,\"Thread\",{enumerable:!0,get:function(){return oxt.Thread}});Mc.BlobWorker=h6.getWorkerImplementation().blob;Mc.Worker=h6.getWorkerImplementation().default});var k$=Br((Eae,L$)=>{\"use strict\";L$.exports=e=>e?typeof Symbol.observable==\"symbol\"&&typeof e[Symbol.observable]==\"function\"?e===e[Symbol.observable]():typeof e[\"@@observable\"]==\"function\"?e===e[\"@@observable\"]():!1:!1});var R$=Br(f6=>{\"use strict\";Object.defineProperty(f6,\"__esModule\",{value:!0});var axt=function(){let t=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!t)},lxt=function(t,r){self.postMessage(t,r)},cxt=function(t){let r=s=>{t(s.data)},i=()=>{self.removeEventListener(\"message\",r)};return self.addEventListener(\"message\",r),i};f6.default={isWorkerRuntime:axt,postMessageToMaster:lxt,subscribeToMasterMessages:cxt}});var U$=Br(Ec=>{\"use strict\";var uxt=Ec&&Ec.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},z$=Ec&&Ec.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ec,\"__esModule\",{value:!0});Ec.expose=Ec.isWorkerRuntime=Ec.Transfer=Ec.registerSerializer=void 0;var hxt=z$(k$()),Rm=mx(),fxt=PS(),Dm=l6(),cu=z$(R$()),dxt=mx();Object.defineProperty(Ec,\"registerSerializer\",{enumerable:!0,get:function(){return dxt.registerSerializer}});var pxt=PS();Object.defineProperty(Ec,\"Transfer\",{enumerable:!0,get:function(){return pxt.Transfer}});Ec.isWorkerRuntime=cu.default.isWorkerRuntime;var D$=!1,LS=new Map,Axt=e=>e&&e.type===Dm.MasterMessageType.cancel,O$=e=>e&&e.type===Dm.MasterMessageType.run,B$=e=>hxt.default(e)||mxt(e);function mxt(e){return e&&typeof e==\"object\"&&typeof e.subscribe==\"function\"}function N$(e){return fxt.isTransferDescriptor(e)?{payload:e.send,transferables:e.transferables}:{payload:e,transferables:void 0}}function gxt(){let e={type:Dm.WorkerMessageType.init,exposed:{type:\"function\"}};cu.default.postMessageToMaster(e)}function _xt(e){let t={type:Dm.WorkerMessageType.init,exposed:{type:\"module\",methods:e}};cu.default.postMessageToMaster(t)}function d6(e,t){let{payload:r,transferables:i}=N$(t),s={type:Dm.WorkerMessageType.error,uid:e,error:Rm.serialize(r)};cu.default.postMessageToMaster(s,i)}function p6(e,t,r){let{payload:i,transferables:s}=N$(r),n={type:Dm.WorkerMessageType.result,uid:e,complete:t?!0:void 0,payload:i};cu.default.postMessageToMaster(n,s)}function yxt(e,t){let r={type:Dm.WorkerMessageType.running,uid:e,resultType:t};cu.default.postMessageToMaster(r)}function OI(e){try{let t={type:Dm.WorkerMessageType.uncaughtError,error:Rm.serialize(e)};cu.default.postMessageToMaster(t)}catch(t){console.error(`Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:`,t,`\nOriginal error:`,e)}}function F$(e,t,r){return uxt(this,void 0,void 0,function*(){let i;try{i=t(...r)}catch(n){return d6(e,n)}let s=B$(i)?\"observable\":\"promise\";if(yxt(e,s),B$(i)){let n=i.subscribe(o=>p6(e,!1,Rm.serialize(o)),o=>{d6(e,Rm.serialize(o)),LS.delete(e)},()=>{p6(e,!0),LS.delete(e)});LS.set(e,n)}else try{let n=yield i;p6(e,!0,Rm.serialize(n))}catch(n){d6(e,Rm.serialize(n))}})}function vxt(e){if(!cu.default.isWorkerRuntime())throw Error(\"expose() called in the master thread.\");if(D$)throw Error(\"expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.\");if(D$=!0,typeof e==\"function\")cu.default.subscribeToMasterMessages(t=>{O$(t)&&!t.method&&F$(t.uid,e,t.args.map(Rm.deserialize))}),gxt();else if(typeof e==\"object\"&&e){cu.default.subscribeToMasterMessages(r=>{O$(r)&&r.method&&F$(r.uid,e[r.method],r.args.map(Rm.deserialize))});let t=Object.keys(e).filter(r=>typeof e[r]==\"function\");_xt(t)}else throw Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${e}`);cu.default.subscribeToMasterMessages(t=>{if(Axt(t)){let r=t.uid,i=LS.get(r);i&&(i.unsubscribe(),LS.delete(r))}})}Ec.expose=vxt;typeof self<\"u\"&&typeof self.addEventListener==\"function\"&&cu.default.isWorkerRuntime()&&(self.addEventListener(\"error\",e=>{setTimeout(()=>OI(e.error||e),250)}),self.addEventListener(\"unhandledrejection\",e=>{let t=e.reason;t&&typeof t.message==\"string\"&&setTimeout(()=>OI(t),250)}));typeof process<\"u\"&&typeof process.on==\"function\"&&cu.default.isWorkerRuntime()&&(process.on(\"uncaughtException\",e=>{setTimeout(()=>OI(e),250)}),process.on(\"unhandledRejection\",e=>{e&&typeof e.message==\"string\"&&setTimeout(()=>OI(e),250)}))});var V$=Br(Dl=>{\"use strict\";var xxt=Dl&&Dl.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),bxt=Dl&&Dl.__exportStar||function(e,t){for(var r in e)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r)&&xxt(t,e,r)};Object.defineProperty(Dl,\"__esModule\",{value:!0});Dl.Transfer=Dl.DefaultSerializer=Dl.expose=Dl.registerSerializer=void 0;var wxt=mx();Object.defineProperty(Dl,\"registerSerializer\",{enumerable:!0,get:function(){return wxt.registerSerializer}});bxt(C$(),Dl);var Sxt=U$();Object.defineProperty(Dl,\"expose\",{enumerable:!0,get:function(){return Sxt.expose}});var Txt=jB();Object.defineProperty(Dl,\"DefaultSerializer\",{enumerable:!0,get:function(){return Txt.DefaultSerializer}});var Mxt=PS();Object.defineProperty(Dl,\"Transfer\",{enumerable:!0,get:function(){return Mxt.Transfer}})});var WI=ki(Ji(),1),$g=ki(Ji(),1);var Xl=ki(Ji(),1),T8=ki(S8(),1),M8=Xl.createContext(null);function Qk(){let e=Xl.useContext(M8);if(!e)throw new Error(\"Model not found\");return e}function P0(e){let t=Qk(),[r,i]=Xl.useState(t.get(e));return Xl.useEffect(()=>{let s=()=>i(t.get(e));return t.on(`change:${e}`,s),()=>t.off(`change:${e}`,s)},[t,e]),[r,s=>{t.set(e,s),t.save_changes()}]}function E8(e){return({model:t,el:r})=>{let i=T8.createRoot(r);return i.render(Xl.createElement(Xl.StrictMode,null,Xl.createElement(M8.Provider,{value:t},Xl.createElement(e)))),()=>i.unmount()}}var V8=ki(Ji());var K_=ki(Ji()),Hc=ki(Ji());var $k=ki(Ji()),wM=ki(Ji());var P8=$k.createContext(null);function I8(e,t){let r=Array.isArray(e)?e[0]:e?e.x:0,i=Array.isArray(e)?e[1]:e?e.y:0,s=Array.isArray(t)?t[0]:t?t.x:0,n=Array.isArray(t)?t[1]:t?t.y:0;return r===s&&i===n}function Kl(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r{let s=null;\"interactive\"in i&&(s=Object.assign({},i),delete s.interactive);let n=t[i.ref];if(n){s=s||Object.assign({},i),delete s.ref;for(let o of ret)o in n&&(s[o]=n[o])}return s||i});return{...e,layers:r}}var L8={version:8,sources:{},layers:[]},k8={mousedown:\"onMouseDown\",mouseup:\"onMouseUp\",mouseover:\"onMouseOver\",mousemove:\"onMouseMove\",click:\"onClick\",dblclick:\"onDblClick\",mouseenter:\"onMouseEnter\",mouseleave:\"onMouseLeave\",mouseout:\"onMouseOut\",contextmenu:\"onContextMenu\",touchstart:\"onTouchStart\",touchend:\"onTouchEnd\",touchmove:\"onTouchMove\",touchcancel:\"onTouchCancel\"},e4={movestart:\"onMoveStart\",move:\"onMove\",moveend:\"onMoveEnd\",dragstart:\"onDragStart\",drag:\"onDrag\",dragend:\"onDragEnd\",zoomstart:\"onZoomStart\",zoom:\"onZoom\",zoomend:\"onZoomEnd\",rotatestart:\"onRotateStart\",rotate:\"onRotate\",rotateend:\"onRotateEnd\",pitchstart:\"onPitchStart\",pitch:\"onPitch\",pitchend:\"onPitchEnd\"},R8={wheel:\"onWheel\",boxzoomstart:\"onBoxZoomStart\",boxzoomend:\"onBoxZoomEnd\",boxzoomcancel:\"onBoxZoomCancel\",resize:\"onResize\",load:\"onLoad\",render:\"onRender\",idle:\"onIdle\",remove:\"onRemove\",data:\"onData\",styledata:\"onStyleData\",sourcedata:\"onSourceData\",error:\"onError\"},iet=[\"minZoom\",\"maxZoom\",\"minPitch\",\"maxPitch\",\"maxBounds\",\"projection\",\"renderWorldCopies\"],net=[\"scrollZoom\",\"boxZoom\",\"dragRotate\",\"dragPan\",\"keyboard\",\"doubleClickZoom\",\"touchZoomRotate\",\"touchPitch\"],I0=class e{constructor(t,r,i){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=s=>{let n=this.props[R8[s.type]];n?n(s):s.type===\"error\"&&console.error(s.error)},this._onPointerEvent=s=>{(s.type===\"mousemove\"||s.type===\"mouseout\")&&this._updateHover(s);let n=this.props[k8[s.type]];n&&(this.props.interactiveLayerIds&&s.type!==\"mouseover\"&&s.type!==\"mouseout\"&&(s.features=this._hoveredFeatures||this._queryRenderedFeatures(s.point)),n(s),delete s.features)},this._onCameraEvent=s=>{if(!this._internalUpdate){let n=this.props[e4[s.type]];n&&n(s)}s.type in this._deferredEvents&&(this._deferredEvents[s.type]=!1)},this._MapClass=t,this.props=r,this._initialize(i)}get map(){return this._map}get transform(){return this._renderTransform}setProps(t){let r=this.props;this.props=t;let i=this._updateSettings(t,r);i&&this._createShadowTransform(this._map);let s=this._updateSize(t),n=this._updateViewState(t,!0);this._updateStyle(t,r),this._updateStyleComponents(t,r),this._updateHandlers(t,r),(i||s||n&&!this._map.isMoving())&&this.redraw()}static reuse(t,r){let i=e.savedMaps.pop();if(!i)return null;let s=i.map,n=s.getContainer();for(r.className=n.className;n.childNodes.length>0;)r.appendChild(n.childNodes[0]);s._container=r;let o=s._resizeObserver;o&&(o.disconnect(),o.observe(r)),i.setProps({...t,styleDiffing:!1}),s.resize();let{initialViewState:c}=t;return c&&(c.bounds?s.fitBounds(c.bounds,{...c.fitBoundsOptions,duration:0}):i._updateViewState(c,!1)),s.isStyleLoaded()?s.fire(\"load\"):s.once(\"styledata\",()=>s.fire(\"load\")),s._update(),i}_initialize(t){let{props:r}=this,{mapStyle:i=L8}=r,s={...r,...r.initialViewState,accessToken:r.mapboxAccessToken||set()||null,container:t,style:t4(i)},n=s.initialViewState||s.viewState||s;if(Object.assign(s,{center:[n.longitude||0,n.latitude||0],zoom:n.zoom||0,pitch:n.pitch||0,bearing:n.bearing||0}),r.gl){let w=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=w,r.gl)}let o=new this._MapClass(s);n.padding&&o.setPadding(n.padding),r.cursor&&(o.getCanvas().style.cursor=r.cursor),this._createShadowTransform(o);let c=o._render;o._render=w=>{this._inRender=!0,c.call(o,w),this._inRender=!1};let f=o._renderTaskQueue.run;o._renderTaskQueue.run=w=>{f.call(o._renderTaskQueue,w),this._onBeforeRepaint()},o.on(\"render\",()=>this._onAfterRepaint());let _=o.fire;o.fire=this._fireEvent.bind(this,_),o.on(\"resize\",()=>{this._renderTransform.resize(o.transform.width,o.transform.height)}),o.on(\"styledata\",()=>{this._updateStyleComponents(this.props,{}),Xk(o.transform,this._renderTransform)}),o.on(\"sourcedata\",()=>this._updateStyleComponents(this.props,{}));for(let w in k8)o.on(w,this._onPointerEvent);for(let w in e4)o.on(w,this._onCameraEvent);for(let w in R8)o.on(w,this._onEvent);this._map=o}recycle(){let r=this.map.getContainer().querySelector(\"[mapboxgl-children]\");r?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let t=this._map;!this._inRender&&t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}_createShadowTransform(t){let r=C8(t.transform);t.painter.transform=r,this._renderTransform=r}_updateSize(t){let{viewState:r}=t;if(r){let i=this._map;if(r.width!==i.transform.width||r.height!==i.transform.height)return i.resize(),!0}return!1}_updateViewState(t,r){if(this._internalUpdate)return!1;let i=this._map,s=this._renderTransform,{zoom:n,pitch:o,bearing:c}=s,f=i.isMoving();f&&(s.cameraElevationReference=\"sea\");let _=Jk(s,{...Kk(i.transform),...t});if(f&&(s.cameraElevationReference=\"ground\"),_&&r){let w=this._deferredEvents;w.move=!0,w.zoom||(w.zoom=n!==s.zoom),w.rotate||(w.rotate=c!==s.bearing),w.pitch||(w.pitch=o!==s.pitch)}return f||Jk(i.transform,t),_}_updateSettings(t,r){let i=this._map,s=!1;for(let n of iet)if(n in t&&!Kl(t[n],r[n])){s=!0;let o=i[`set${n[0].toUpperCase()}${n.slice(1)}`];o?.call(i,t[n])}return s}_updateStyle(t,r){if(t.cursor!==r.cursor&&(this._map.getCanvas().style.cursor=t.cursor||\"\"),t.mapStyle!==r.mapStyle){let{mapStyle:i=L8,styleDiffing:s=!0}=t,n={diff:s};return\"localIdeographFontFamily\"in t&&(n.localIdeographFontFamily=t.localIdeographFontFamily),this._map.setStyle(t4(i),n),!0}return!1}_updateStyleComponents(t,r){let i=this._map,s=!1;return i.isStyleLoaded()&&(\"light\"in t&&i.setLight&&!Kl(t.light,r.light)&&(s=!0,i.setLight(t.light)),\"fog\"in t&&i.setFog&&!Kl(t.fog,r.fog)&&(s=!0,i.setFog(t.fog)),\"terrain\"in t&&i.setTerrain&&!Kl(t.terrain,r.terrain)&&(!t.terrain||i.getSource(t.terrain.source))&&(s=!0,i.setTerrain(t.terrain))),s}_updateHandlers(t,r){var i,s;let n=this._map,o=!1;for(let c of net){let f=(i=t[c])!==null&&i!==void 0?i:!0,_=(s=r[c])!==null&&s!==void 0?s:!0;Kl(f,_)||(o=!0,f?n[c].enable(f):n[c].disable())}return o}_queryRenderedFeatures(t){let r=this._map,i=r.transform,{interactiveLayerIds:s=[]}=this.props;try{return r.transform=this._renderTransform,r.queryRenderedFeatures(t,{layers:s.filter(r.getLayer.bind(r))})}catch{return[]}finally{r.transform=i}}_updateHover(t){var r;let{props:i}=this;if(i.interactiveLayerIds&&(i.onMouseMove||i.onMouseEnter||i.onMouseLeave)){let n=t.type,o=((r=this._hoveredFeatures)===null||r===void 0?void 0:r.length)>0,c=this._queryRenderedFeatures(t.point),f=c.length>0;!f&&o&&(t.type=\"mouseleave\",this._onPointerEvent(t)),this._hoveredFeatures=c,f&&!o&&(t.type=\"mouseenter\",this._onPointerEvent(t)),t.type=n}else this._hoveredFeatures=null}_fireEvent(t,r,i){let s=this._map,n=s.transform,o=typeof r==\"string\"?r:r.type;return o===\"move\"&&this._updateViewState(this.props,!1),o in e4&&(typeof r==\"object\"&&(r.viewState=Kk(n)),this._map.isMoving())?(s.transform=this._renderTransform,t.call(s,r,i),s.transform=n,s):(t.call(s,r,i),s)}_onBeforeRepaint(){let t=this._map;this._internalUpdate=!0;for(let i in this._deferredEvents)this._deferredEvents[i]&&t.fire(i);this._internalUpdate=!1;let r=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=()=>{Xk(this._renderTransform,r),t.transform=r}}};I0.savedMaps=[];function set(){let e=null;if(typeof location<\"u\"){let t=/access_token=([^&\\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||process.env.MapboxAccessToken}catch{}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return e}var oet=[\"setMaxBounds\",\"setMinZoom\",\"setMaxZoom\",\"setMinPitch\",\"setMaxPitch\",\"setRenderWorldCopies\",\"setProjection\",\"setStyle\",\"addSource\",\"removeSource\",\"addLayer\",\"removeLayer\",\"setLayerZoomRange\",\"setFilter\",\"setPaintProperty\",\"setLayoutProperty\",\"setLight\",\"setTerrain\",\"setFog\",\"remove\"];function r4(e){if(!e)return null;let t=e.map,r={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:i=>{let s=t.transform;t.transform=e.transform;let n=t.project(i);return t.transform=s,n},unproject:i=>{let s=t.transform;t.transform=e.transform;let n=t.unproject(i);return t.transform=s,n},queryTerrainElevation:(i,s)=>{let n=t.transform;t.transform=e.transform;let o=t.queryTerrainElevation(i,s);return t.transform=n,o},queryRenderedFeatures:(i,s)=>{let n=t.transform;t.transform=e.transform;let o=t.queryRenderedFeatures(i,s);return t.transform=n,o}};for(let i of aet(t))!(i in r)&&!oet.includes(i)&&(r[i]=t[i].bind(t));return r}function aet(e){let t=new Set,r=e;for(;r;){for(let i of Object.getOwnPropertyNames(r))i[0]!==\"_\"&&typeof e[i]==\"function\"&&i!==\"fire\"&&i!==\"setEventedParent\"&&t.add(i);r=Object.getPrototypeOf(r)}return Array.from(t)}var SM=ki(Ji()),cet=typeof document<\"u\"?SM.useLayoutEffect:SM.useEffect,D8=cet;var uet=[\"baseApiUrl\",\"maxParallelImageRequests\",\"workerClass\",\"workerCount\",\"workerUrl\"];function i4(e,t){for(let i of uet)i in t&&(e[i]=t[i]);let{RTLTextPlugin:r=\"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js\"}=t;r&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()===\"unavailable\"&&e.setRTLTextPlugin(r,i=>{i&&console.error(i)},!0)}var Rf=K_.createContext(null);function n4(e,t,r){let i=(0,Hc.useContext)(P8),[s,n]=(0,Hc.useState)(null),o=(0,Hc.useRef)(),{current:c}=(0,Hc.useRef)({mapLib:null,map:null});(0,Hc.useEffect)(()=>{let w=e.mapLib,C=!0,R;return Promise.resolve(w||r).then(N=>{if(!C)return;if(!N)throw new Error(\"Invalid mapLib\");let j=\"Map\"in N?N:N.default;if(!j.Map)throw new Error(\"Invalid mapLib\");if(i4(j,e),!j.supported||j.supported(e))e.reuseMaps&&(R=I0.reuse(e,o.current)),R||(R=new I0(j.Map,e,o.current)),c.map=r4(R),c.mapLib=j,n(R),i?.onMapMount(c.map,e.id);else throw new Error(\"Map is not supported by this browser\")}).catch(N=>{let{onError:j}=e;j?j({type:\"error\",target:null,originalEvent:null,error:N}):console.error(N)}),()=>{C=!1,R&&(i?.onMapUnmount(e.id),e.reuseMaps?R.recycle():R.destroy())}},[]),D8(()=>{s&&s.setProps(e)}),(0,Hc.useImperativeHandle)(t,()=>c.map,[s]);let f=(0,Hc.useMemo)(()=>({position:\"relative\",width:\"100%\",height:\"100%\",...e.style}),[e.style]),_={height:\"100%\"};return K_.createElement(\"div\",{id:e.id,ref:o,style:f},s&&K_.createElement(Rf.Provider,{value:c},K_.createElement(\"div\",{\"mapboxgl-children\":\"\",style:_},e.children)))}var O8=ki(Ji()),B8=ki(bM()),bl=ki(Ji());var het=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function Jl(e,t){if(!e||!t)return;let r=e.style;for(let i in t){let s=t[i];Number.isFinite(s)&&!het.test(i)?r[i]=`${s}px`:r[i]=s}}function fet(e,t){let{map:r,mapLib:i}=(0,bl.useContext)(Rf),s=(0,bl.useRef)({props:e});s.current.props=e;let n=(0,bl.useMemo)(()=>{let Y=!1;O8.Children.forEach(e.children,K=>{K&&(Y=!0)});let rt={...e,element:Y?document.createElement(\"div\"):null},$=new i.Marker(rt);return $.setLngLat([e.longitude,e.latitude]),$.getElement().addEventListener(\"click\",K=>{var tt,ut;(ut=(tt=s.current.props).onClick)===null||ut===void 0||ut.call(tt,{type:\"click\",target:$,originalEvent:K})}),$.on(\"dragstart\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDragStart)===null||ut===void 0||ut.call(tt,Pt)}),$.on(\"drag\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDrag)===null||ut===void 0||ut.call(tt,Pt)}),$.on(\"dragend\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDragEnd)===null||ut===void 0||ut.call(tt,Pt)}),$},[]);(0,bl.useEffect)(()=>(n.addTo(r.getMap()),()=>{n.remove()}),[]);let{longitude:o,latitude:c,offset:f,style:_,draggable:w=!1,popup:C=null,rotation:R=0,rotationAlignment:N=\"auto\",pitchAlignment:j=\"auto\"}=e;return(0,bl.useEffect)(()=>{Jl(n.getElement(),_)},[_]),(0,bl.useImperativeHandle)(t,()=>n,[]),(n.getLngLat().lng!==o||n.getLngLat().lat!==c)&&n.setLngLat([o,c]),f&&!I8(n.getOffset(),f)&&n.setOffset(f),n.isDraggable()!==w&&n.setDraggable(w),n.getRotation()!==R&&n.setRotation(R),n.getRotationAlignment()!==N&&n.setRotationAlignment(N),n.getPitchAlignment()!==j&&n.setPitchAlignment(j),n.getPopup()!==C&&n.setPopup(C),(0,B8.createPortal)(e.children,n.getElement())}var det=(0,bl.memo)((0,bl.forwardRef)(fet));var z8=ki(bM()),$a=ki(Ji());function F8(e){return new Set(e?e.trim().split(/\\s+/):[])}function pet(e,t){let{map:r,mapLib:i}=(0,$a.useContext)(Rf),s=(0,$a.useMemo)(()=>document.createElement(\"div\"),[]),n=(0,$a.useRef)({props:e});n.current.props=e;let o=(0,$a.useMemo)(()=>{let c={...e},f=new i.Popup(c);return f.setLngLat([e.longitude,e.latitude]),f.once(\"open\",_=>{var w,C;(C=(w=n.current.props).onOpen)===null||C===void 0||C.call(w,_)}),f},[]);if((0,$a.useEffect)(()=>{let c=f=>{var _,w;(w=(_=n.current.props).onClose)===null||w===void 0||w.call(_,f)};return o.on(\"close\",c),o.setDOMContent(s).addTo(r.getMap()),()=>{o.off(\"close\",c),o.isOpen()&&o.remove()}},[]),(0,$a.useEffect)(()=>{Jl(o.getElement(),e.style)},[e.style]),(0,$a.useImperativeHandle)(t,()=>o,[]),o.isOpen()&&((o.getLngLat().lng!==e.longitude||o.getLngLat().lat!==e.latitude)&&o.setLngLat([e.longitude,e.latitude]),e.offset&&!Kl(o.options.offset,e.offset)&&o.setOffset(e.offset),(o.options.anchor!==e.anchor||o.options.maxWidth!==e.maxWidth)&&(o.options.anchor=e.anchor,o.setMaxWidth(e.maxWidth)),o.options.className!==e.className)){let c=F8(o.options.className),f=F8(e.className);for(let _ of c)f.has(_)||o.removeClassName(_);for(let _ of f)c.has(_)||o.addClassName(_);o.options.className=e.className}return(0,z8.createPortal)(e.children,s)}var Aet=(0,$a.memo)((0,$a.forwardRef)(pet));var TM=ki(Ji());var J_=ki(Ji());function met(e,t,r,i){let s=(0,J_.useContext)(Rf),n=(0,J_.useMemo)(()=>e(s),[]);return(0,J_.useEffect)(()=>{let o=i||r||t,c=typeof t==\"function\"&&typeof r==\"function\"?t:null,f=typeof r==\"function\"?r:typeof t==\"function\"?t:null,{map:_}=s;return _.hasControl(n)||(_.addControl(n,o?.position),c&&c(s)),()=>{f&&f(s),_.hasControl(n)&&_.removeControl(n)}},[]),n}var Lh=met;function get(e){let t=Lh(({mapLib:r})=>new r.AttributionControl(e),{position:e.position});return(0,TM.useEffect)(()=>{Jl(t._container,e.style)},[e.style]),null}var _et=(0,TM.memo)(get);var MM=ki(Ji());function yet(e){let t=Lh(({mapLib:r})=>new r.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)}),{position:e.position});return(0,MM.useEffect)(()=>{Jl(t._controlContainer,e.style)},[e.style]),null}var vet=(0,MM.memo)(yet);var Df=ki(Ji());function xet(e,t){let r=(0,Df.useRef)({props:e}),i=Lh(({mapLib:s})=>{let n=new s.GeolocateControl(e),o=n._setupUI;return n._setupUI=c=>{n._container.hasChildNodes()||o(c)},n.on(\"geolocate\",c=>{var f,_;(_=(f=r.current.props).onGeolocate)===null||_===void 0||_.call(f,c)}),n.on(\"error\",c=>{var f,_;(_=(f=r.current.props).onError)===null||_===void 0||_.call(f,c)}),n.on(\"outofmaxbounds\",c=>{var f,_;(_=(f=r.current.props).onOutOfMaxBounds)===null||_===void 0||_.call(f,c)}),n.on(\"trackuserlocationstart\",c=>{var f,_;(_=(f=r.current.props).onTrackUserLocationStart)===null||_===void 0||_.call(f,c)}),n.on(\"trackuserlocationend\",c=>{var f,_;(_=(f=r.current.props).onTrackUserLocationEnd)===null||_===void 0||_.call(f,c)}),n},{position:e.position});return r.current.props=e,(0,Df.useImperativeHandle)(t,()=>i,[]),(0,Df.useEffect)(()=>{Jl(i._container,e.style)},[e.style]),null}var bet=(0,Df.memo)((0,Df.forwardRef)(xet));var EM=ki(Ji());function wet(e){let t=Lh(({mapLib:r})=>new r.NavigationControl(e),{position:e.position});return(0,EM.useEffect)(()=>{Jl(t._container,e.style)},[e.style]),null}var Tet=(0,EM.memo)(wet);var ty=ki(Ji());function Met(e){let t=Lh(({mapLib:n})=>new n.ScaleControl(e),{position:e.position}),r=(0,ty.useRef)(e),i=r.current;r.current=e;let{style:s}=e;return e.maxWidth!==void 0&&e.maxWidth!==i.maxWidth&&(t.options.maxWidth=e.maxWidth),e.unit!==void 0&&e.unit!==i.unit&&t.setUnit(e.unit),(0,ty.useEffect)(()=>{Jl(t._container,s)},[s]),null}var Eet=(0,ty.memo)(Met);var N1=ki(Ji());var Iet=ki(Ji()),U1=ki(Ji()),Cet=ki(Ji());var Let=Promise.resolve().then(()=>ki(U8())),ket=V8.forwardRef(function(t,r){return n4(t,r,Let)});var j8=ket;var Mo=ki(Ji());function OA(e,t){if(!e)throw new Error(t||\"loader assertion failed.\")}var Of={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},Ret=Of.self||Of.window||Of.global||{},Det=Of.window||Of.self||Of.global||{},Oet=Of.global||Of.self||Of.window||{},Bet=Of.document||{};var C0=!!(typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser);var G8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Fet=G8&&parseFloat(G8[1])||0;var W8=\"3.4.14\";function Xa(e,t){if(!e)throw new Error(t||\"loaders.gl assertion failed.\")}var Bf={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},Zbt=Bf.self||Bf.window||Bf.global||{},Ybt=Bf.window||Bf.self||Bf.global||{},Qbt=Bf.global||Bf.self||Bf.window||{},$bt=Bf.document||{};var L0=typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser;var q8=typeof window<\"u\"&&typeof window.orientation<\"u\",H8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Xbt=H8&&parseFloat(H8[1])||0;function BA(e){\"@babel/helpers - typeof\";return BA=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},BA(e)}function a4(e,t){if(BA(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||\"default\");if(BA(i)!=\"object\")return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(t===\"string\"?String:Number)(e)}function l4(e){var t=a4(e,\"string\");return BA(t)==\"symbol\"?t:String(t)}function G(e,t,r){return t=l4(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var V1=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"workerThread\",void 0),G(this,\"isRunning\",!0),G(this,\"result\",void 0),G(this,\"_resolve\",()=>{}),G(this,\"_reject\",()=>{}),this.name=t,this.workerThread=r,this.result=new Promise((i,s)=>{this._resolve=i,this._reject=s})}postMessage(t,r){this.workerThread.postMessage({source:\"loaders.gl\",type:t,payload:r})}done(t){Xa(this.isRunning),this.isRunning=!1,this._resolve(t)}error(t){Xa(this.isRunning),this.isRunning=!1,this._reject(t)}};var ey=class{terminate(){}};var c4=new Map;function Z8(e){Xa(e.source&&!e.url||!e.source&&e.url);let t=c4.get(e.source||e.url);return t||(e.url&&(t=zet(e.url),c4.set(e.url,t)),e.source&&(t=Y8(e.source),c4.set(e.source,t))),Xa(t),t}function zet(e){if(!e.startsWith(\"http\"))return e;let t=Net(e);return Y8(t)}function Y8(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function Net(e){return`try {\n importScripts('`.concat(e,`');\n} catch (error) {\n console.error(error);\n throw error;\n}`)}function u4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=arguments.length>2?arguments[2]:void 0,i=r||new Set;if(e){if(Q8(e))i.add(e);else if(Q8(e.buffer))i.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e==\"object\")for(let s in e)u4(e[s],t,i)}}return r===void 0?Array.from(i):[]}function Q8(e){return e?e instanceof ArrayBuffer||typeof MessagePort<\"u\"&&e instanceof MessagePort||typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap||typeof OffscreenCanvas<\"u\"&&e instanceof OffscreenCanvas:!1}var h4=()=>{},FA=class{static isSupported(){return typeof Worker<\"u\"&&L0||typeof ey<\"u\"&&!L0}constructor(t){G(this,\"name\",void 0),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"terminated\",!1),G(this,\"worker\",void 0),G(this,\"onMessage\",void 0),G(this,\"onError\",void 0),G(this,\"_loadableURL\",\"\");let{name:r,source:i,url:s}=t;Xa(i||s),this.name=r,this.source=i,this.url=s,this.onMessage=h4,this.onError=n=>console.log(n),this.worker=L0?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=h4,this.onError=h4,this.worker.terminate(),this.terminated=!0}get isRunning(){return!!this.onMessage}postMessage(t,r){r=r||u4(t),this.worker.postMessage(t,r)}_getErrorFromErrorEvent(t){let r=\"Failed to load \";return r+=\"worker \".concat(this.name,\" from \").concat(this.url,\". \"),t.message&&(r+=\"\".concat(t.message,\" in \")),t.lineno&&(r+=\":\".concat(t.lineno,\":\").concat(t.colno)),new Error(r)}_createBrowserWorker(){this._loadableURL=Z8({source:this.source,url:this.url});let t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error(\"No data received\"))},t.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},t.onmessageerror=r=>console.error(r),t}_createNodeWorker(){let t;if(this.url){let i=this.url.includes(\":/\")||this.url.startsWith(\"/\")?this.url:\"./\".concat(this.url);t=new ey(i,{eval:!1})}else if(this.source)t=new ey(this.source,{eval:!0});else throw new Error(\"no worker\");return t.on(\"message\",r=>{this.onMessage(r)}),t.on(\"error\",r=>{this.onError(r)}),t.on(\"exit\",r=>{}),t}};var j1=class{static isSupported(){return FA.isSupported()}constructor(t){G(this,\"name\",\"unnamed\"),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"maxConcurrency\",1),G(this,\"maxMobileConcurrency\",1),G(this,\"onDebug\",()=>{}),G(this,\"reuseWorkers\",!0),G(this,\"props\",{}),G(this,\"jobQueue\",[]),G(this,\"idleQueue\",[]),G(this,\"count\",0),G(this,\"isDestroyed\",!1),this.source=t.source,this.url=t.url,this.setProps(t)}destroy(){this.idleQueue.forEach(t=>t.destroy()),this.isDestroyed=!0}setProps(t){this.props={...this.props,...t},t.name!==void 0&&(this.name=t.name),t.maxConcurrency!==void 0&&(this.maxConcurrency=t.maxConcurrency),t.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=t.maxMobileConcurrency),t.reuseWorkers!==void 0&&(this.reuseWorkers=t.reuseWorkers),t.onDebug!==void 0&&(this.onDebug=t.onDebug)}async startJob(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(n,o,c)=>n.done(c),i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(n,o)=>n.error(o),s=new Promise(n=>(this.jobQueue.push({name:t,onMessage:r,onError:i,onStart:n}),this));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;let t=this._getAvailableWorker();if(!t)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:\"Starting job\",name:r.name,workerThread:t,backlog:this.jobQueue.length});let i=new V1(r.name,t);t.onMessage=s=>r.onMessage(i,s.type,s.payload),t.onError=s=>r.onError(i,s),r.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(t)}}}returnWorkerToQueue(t){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(t.destroy(),this.count--):this.idleQueue.push(t),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}},zA=class e{static isSupported(){return FA.isSupported()}static getWorkerFarm(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e._workerFarm=e._workerFarm||new e({}),e._workerFarm.setProps(t),e._workerFarm}constructor(t){G(this,\"props\",void 0),G(this,\"workerPools\",new Map),this.props={...Uet},this.setProps(t),this.workerPools=new Map}destroy(){for(let t of this.workerPools.values())t.destroy();this.workerPools=new Map}setProps(t){this.props={...this.props,...t};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(t){let{name:r,source:i,url:s}=t,n=this.workerPools.get(r);return n||(n=new j1({name:r,source:i,url:s}),n.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,n)),n}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}};G(zA,\"_workerFarm\",void 0);var Vet=\"latest\";function f4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t[e.id]||{},i=\"\".concat(e.id,\"-worker.js\"),s=r.workerUrl;if(!s&&e.id===\"compression\"&&(s=t.workerUrl),t._workerType===\"test\"&&(s=\"modules/\".concat(e.module,\"/dist/\").concat(i)),!s){let n=e.version;n===\"latest\"&&(n=Vet);let o=n?\"@\".concat(n):\"\";s=\"https://unpkg.com/@loaders.gl/\".concat(e.module).concat(o,\"/dist/\").concat(i)}return Xa(s),s}function d4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W8;Xa(e,\"no worker provided\");let r=e.version;return!(!t||!r)}function p4(e,t){return!zA.isSupported()||!L0&&!(t!=null&&t._nodeWorkers)?!1:e.worker&&t?.worker}async function A4(e,t,r,i,s){let n=e.id,o=f4(e,r),f=zA.getWorkerFarm(r).getWorkerPool({name:n,url:o});r=JSON.parse(JSON.stringify(r)),i=JSON.parse(JSON.stringify(i||{}));let _=await f.startJob(\"process-on-worker\",jet.bind(null,s));return _.postMessage(\"process\",{input:t,options:r,context:i}),await(await _.result).result}async function jet(e,t,r,i){switch(r){case\"done\":t.done(i);break;case\"error\":t.error(new Error(i.error));break;case\"process\":let{id:s,input:n,options:o}=i;try{let c=await e(n,o);t.postMessage(\"done\",{id:s,result:c})}catch(c){let f=c instanceof Error?c.message:\"unknown error\";t.postMessage(\"error\",{id:s,error:f})}break;default:console.warn(\"parse-with-worker unknown message \".concat(r))}}function m4(e,t,r){if(r=r||e.byteLength,e.byteLengthc instanceof ArrayBuffer?new Uint8Array(c):c),s=i.reduce((c,f)=>c+f.byteLength,0),n=new Uint8Array(s),o=0;for(let c of i)n.set(c,o),o+=c.byteLength;return n.buffer}async function _4(e){let t=[];for await(let r of e)t.push(r);return g4(...t)}function G1(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var k0=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=G1(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(G1()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var ry=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:i}=t,s=this.stats[r];return s||(t instanceof k0?s=t:s=new k0(r,i),this.stats[r]=s),s}};var Get=\"Queued Requests\",Wet=\"Active Requests\",Het=\"Cancelled Requests\",qet=\"Queued Requests Ever\",Zet=\"Active Requests Ever\",Yet={id:\"request-scheduler\",throttleRequests:!0,maxRequests:6},iy=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};G(this,\"props\",void 0),G(this,\"stats\",void 0),G(this,\"activeRequestCount\",0),G(this,\"requestQueue\",[]),G(this,\"requestMap\",new Map),G(this,\"deferredUpdate\",null),this.props={...Yet,...t},this.stats=new ry({id:this.props.id}),this.stats.get(Get),this.stats.get(Wet),this.stats.get(Het),this.stats.get(qet),this.stats.get(Zet)}scheduleRequest(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:()=>0;if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let i={handle:t,priority:0,getPriority:r},s=new Promise(n=>(i.resolve=n,i));return this.requestQueue.push(i),this.requestMap.set(t,s),this._issueNewRequests(),s}_issueRequest(t){let{handle:r,resolve:i}=t,s=!1,n=()=>{s||(s=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,i?i({done:n}):Promise.resolve({done:n})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let r=0;rr.priority-i.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var Qet=\"\",$8={};function y4(e){for(let t in $8)if(e.startsWith(t)){let r=$8[t];e=e.replace(t,r)}return!e.startsWith(\"http://\")&&!e.startsWith(\"https://\")&&(e=\"\".concat(Qet).concat(e)),e}function X8(e){return e&&typeof e==\"object\"&&e.isBuffer}function PM(e){if(X8(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e==\"string\"){let t=e;return new TextEncoder().encode(t).buffer}if(e&&typeof e==\"object\"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error(\"toArrayBuffer\")}var R0={};dA(R0,{dirname:()=>Xet,filename:()=>$et,join:()=>Ket,resolve:()=>Jet});function K8(){var e;if(typeof process<\"u\"&&typeof process.cwd<\"u\")return process.cwd();let t=(e=window.location)===null||e===void 0?void 0:e.pathname;return t?.slice(0,t.lastIndexOf(\"/\")+1)||\"\"}function $et(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(t+1):\"\"}function Xet(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(0,t):\"\"}function Ket(){for(var e=arguments.length,t=new Array(e),r=0;r(n&&(s=s.replace(new RegExp(\"^\".concat(i)),\"\")),n!==t.length-1&&(s=s.replace(new RegExp(\"\".concat(i,\"$\")),\"\")),s)),t.join(i)}function Jet(){let e=[];for(let s=0;s=-1&&!r;s--){let n;s>=0?n=e[s]:(i===void 0&&(i=K8()),n=i),n.length!==0&&(t=\"\".concat(n,\"/\").concat(t),r=n.charCodeAt(0)===W1)}return t=trt(t,!r),r?\"/\".concat(t):t.length>0?t:\".\"}var W1=47,v4=46;function trt(e,t){let r=\"\",i=-1,s=0,n,o=!1;for(let c=0;c<=e.length;++c){if(c2){let f=r.length-1,_=f;for(;_>=0&&r.charCodeAt(_)!==W1;--_);if(_!==f){r=_===-1?\"\":r.slice(0,_),i=c,s=0,o=!1;continue}}else if(r.length===2||r.length===1){r=\"\",i=c,s=0,o=!1;continue}}t&&(r.length>0?r+=\"/..\":r=\"..\",o=!0)}else{let f=e.slice(i+1,c);r.length>0?r+=\"/\".concat(f):r=f,o=!1}i=c,s=0}else n===v4&&s!==-1?++s:s=-1}return r}var ert=e=>typeof e==\"boolean\",H1=e=>typeof e==\"function\",D0=e=>e!==null&&typeof e==\"object\",x4=e=>D0(e)&&e.constructor==={}.constructor;var J8=e=>e&&typeof e[Symbol.iterator]==\"function\",tU=e=>e&&typeof e[Symbol.asyncIterator]==\"function\";var Eu=e=>typeof Response<\"u\"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var Pu=e=>typeof Blob<\"u\"&&e instanceof Blob,eU=e=>e&&typeof e==\"object\"&&e.isBuffer;var rrt=e=>typeof ReadableStream<\"u\"&&e instanceof ReadableStream||D0(e)&&H1(e.tee)&&H1(e.cancel)&&H1(e.getReader);var irt=e=>D0(e)&&H1(e.read)&&H1(e.pipe)&&ert(e.readable),IM=e=>rrt(e)||irt(e);var nrt=/^data:([-\\w.]+\\/[-\\w.+]+)(;|,)/,srt=/^([-\\w.]+\\/[-\\w.+]+)/;function rU(e){let t=srt.exec(e);return t?t[1]:e}function b4(e){let t=nrt.exec(e);return t?t[1]:\"\"}var iU=/\\?.*/;function nU(e){let t=e.match(iU);return t&&t[0]}function ny(e){return e.replace(iU,\"\")}function O0(e){return Eu(e)?e.url:Pu(e)?e.name||\"\":typeof e==\"string\"?e:\"\"}function q1(e){if(Eu(e)){let t=e,r=t.headers.get(\"content-type\")||\"\",i=ny(t.url);return rU(r)||b4(i)}return Pu(e)?e.type||\"\":typeof e==\"string\"?b4(e):\"\"}function sU(e){return Eu(e)?e.headers[\"content-length\"]||-1:Pu(e)?e.size:typeof e==\"string\"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function CM(e){if(Eu(e))return e;let t={},r=sU(e);r>=0&&(t[\"content-length\"]=String(r));let i=O0(e),s=q1(e);s&&(t[\"content-type\"]=s);let n=await art(e);n&&(t[\"x-first-bytes\"]=n),typeof e==\"string\"&&(e=new TextEncoder().encode(e));let o=new Response(e,{headers:t});return Object.defineProperty(o,\"url\",{value:i}),o}async function oU(e){if(!e.ok){let t=await ort(e);throw new Error(t)}}async function ort(e){let t=\"Failed to fetch resource \".concat(e.url,\" (\").concat(e.status,\"): \");try{let r=e.headers.get(\"Content-Type\"),i=e.statusText;r.includes(\"application/json\")&&(i+=\" \".concat(await e.text())),t+=i,t=t.length>60?\"\".concat(t.slice(0,60),\"...\"):t}catch{}return t}async function art(e){if(typeof e==\"string\")return\"data:,\".concat(e.slice(0,5));if(e instanceof Blob){let r=e.slice(0,5);return await new Promise(i=>{let s=new FileReader;s.onload=n=>{var o;return i(n==null||(o=n.target)===null||o===void 0?void 0:o.result)},s.readAsDataURL(r)})}if(e instanceof ArrayBuffer){let r=e.slice(0,5),i=lrt(r);return\"data:base64,\".concat(i)}return null}function lrt(e){let t=\"\",r=new Uint8Array(e);for(let i=0;i=0)}function kh(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||S4()}var crt=globalThis.self||globalThis.window||globalThis.global,sy=globalThis.window||globalThis.self||globalThis.global,urt=globalThis.document||{},B0=globalThis.process||{},hrt=globalThis.console,j2t=globalThis.navigator||{};var LM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",H2t=kh();function frt(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var kM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=frt(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function aU(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function lU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function RM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let n=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(n/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(s,\");\"),\"background-size:\".concat(n,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var DM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(DM||(DM={}));var drt=10;function cU(e){return typeof e!=\"string\"?e:(e=e.toUpperCase(),DM[e]||DM.WHITE)}function uU(e,t,r){if(!kh&&typeof e==\"string\"){if(t){let i=cU(t);e=\"\\x1B[\".concat(i,\"m\").concat(e,\"\\x1B[39m\")}if(r){let i=cU(r);e=\"\\x1B[\".concat(i+drt,\"m\").concat(e,\"\\x1B[49m\")}}return e}function hU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r),s=e;for(let n of i){let o=s[n];typeof o==\"function\"&&(t.find(c=>n===c)||(s[n]=o.bind(e)))}}function oy(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function F0(){let e;if(kh()&&sy.performance){var t,r;e=sy===null||sy===void 0||(t=sy.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in B0){var i;let s=B0===null||B0===void 0||(i=B0.hrtime)===null||i===void 0?void 0:i.call(B0);e=s[0]*1e3+s[1]/1e6}else e=Date.now();return e}var ay={debug:kh()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},prt={enabled:!0,level:0};function Iu(){}var fU={},dU={once:!0},Ff=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};this.id=void 0,this.VERSION=LM,this._startTs=F0(),this._deltaTs=F0(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new kM(\"__probe-\".concat(this.id,\"__\"),prt),this.timeStamp(\"\".concat(this.id,\" started\")),hU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F0()-this._startTs).toPrecision(10))}getDelta(){return Number((F0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){oy(t,r)}warn(t){return this._getLogFunction(0,t,ay.warn,arguments,dU)}error(t){return this._getLogFunction(0,t,ay.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,ay.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,ay.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,ay.debug||ay.info,arguments,dU)}table(t,r,i){return r?this._getLogFunction(t,r,console.table||Iu,i&&[i],{tag:_rt(r)}):Iu}image(t){let{logLevel:r,priority:i,image:s,message:n=\"\",scale:o=1}=t;return this._shouldLog(r||i)?kh()?grt({image:s,message:n,scale:o}):mrt({image:s,message:n,scale:o}):Iu}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||Iu)}group(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=pU({logLevel:t,message:r,opts:i}),{collapsed:n}=i;return s.method=(n?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Iu)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=AU(t)}_getLogFunction(t,r,i,s,n){if(this._shouldLog(t)){n=pU({logLevel:t,message:r,args:s,opts:n}),i=i||n.method,oy(i),n.total=this.getTotal(),n.delta=this.getDelta(),this._deltaTs=F0();let o=n.tag||n.message;if(n.once&&o)if(!fU[o])fU[o]=F0();else return Iu;return r=Art(this.id,n.message,n),i.bind(console,r,...n.args)}return Iu}};Ff.VERSION=LM;function AU(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return oy(Number.isFinite(t)&&t>=0),t}function pU(e){let{logLevel:t,message:r}=e;e.logLevel=AU(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let s=typeof e.message;return oy(s===\"string\"||s===\"object\"),Object.assign(e,{args:i},e.opts)}function Art(e,t,r){if(typeof t==\"string\"){let i=r.time?lU(aU(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=uU(t,r.color,r.background)}return t}function mrt(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Iu}function grt(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let n=new Image;return n.onload=()=>{let o=RM(n,r,i);console.log(...o)},n.src=t,Iu}let s=t.nodeName||\"\";if(s.toLowerCase()===\"img\")return console.log(...RM(t,r,i)),Iu;if(s.toLowerCase()===\"canvas\"){let n=new Image;return n.onload=()=>console.log(...RM(n,r,i)),n.src=t.toDataURL(),Iu}return Iu}function _rt(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var mSt=new Ff({id:\"@probe.gl/log\"});var T4=new Ff({id:\"loaders.gl\"}),OM=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},BM=class{constructor(){G(this,\"console\",void 0),this.console=console}log(){for(var t=arguments.length,r=new Array(t),i=0;i{let e=E4();return e.globalOptions=e.globalOptions||{...M4},e.globalOptions};function yU(e,t,r,i){return r=r||[],r=Array.isArray(r)?r:[r],yrt(e,r),xrt(t,e,i)}function yrt(e,t){gU(e,null,M4,mU,t);for(let r of t){let i=e&&e[r.id]||{},s=r.options&&r.options[r.id]||{},n=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};gU(i,r.id,s,n,t)}}function gU(e,t,r,i,s){let n=t||\"Top level\",o=t?\"\".concat(t,\".\"):\"\";for(let c in e){let f=!t&&D0(e[c]),_=c===\"baseUri\"&&!t,w=c===\"workerUrl\"&&t;if(!(c in r)&&!_&&!w){if(c in i)T4.warn(\"\".concat(n,\" loader option '\").concat(o).concat(c,\"' no longer supported, use '\").concat(i[c],\"'\"))();else if(!f){let C=vrt(c,s);T4.warn(\"\".concat(n,\" loader option '\").concat(o).concat(c,\"' not recognized. \").concat(C))()}}}}function vrt(e,t){let r=e.toLowerCase(),i=\"\";for(let s of t)for(let n in s.options){if(e===n)return\"Did you mean '\".concat(s.id,\".\").concat(n,\"'?\");let o=n.toLowerCase();(r.startsWith(o)||o.startsWith(r))&&(i=i||\"Did you mean '\".concat(s.id,\".\").concat(n,\"'?\"))}return i}function xrt(e,t,r){let s={...e.options||{}};return brt(s,r),s.log===null&&(s.log=new OM),_U(s,P4()),_U(s,t),s}function _U(e,t){for(let r in t)if(r in t){let i=t[r];x4(i)&&x4(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function brt(e,t){t&&!(\"baseUri\"in e)&&(e.baseUri=t)}function Z1(e){var t;return e?(Array.isArray(e)&&(e=e[0]),Array.isArray((t=e)===null||t===void 0?void 0:t.extensions)):!1}function Y1(e){var t,r;OA(e,\"null loader\"),OA(Z1(e),\"invalid loader\");let i;return Array.isArray(e)&&(i=e[1],e=e[0],e={...e,options:{...e.options,...i}}),((t=e)!==null&&t!==void 0&&t.parseTextSync||(r=e)!==null&&r!==void 0&&r.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var vU=()=>{let e=E4();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function I4(e){let t=vU();e=Array.isArray(e)?e:[e];for(let r of e){let i=Y1(r);t.find(s=>i===s)||t.unshift(i)}}function xU(){return vU()}var bU=new Ff({id:\"loaders.gl\"});var wrt=/\\.([^.]+)$/;async function TU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!MU(e))return null;let s=wU(e,t,{...r,nothrow:!0},i);if(s)return s;if(Pu(e)&&(e=await e.slice(0,10).arrayBuffer(),s=wU(e,t,r,i)),!s&&!(r!=null&&r.nothrow))throw new Error(EU(e));return s}function wU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!MU(e))return null;if(t&&!Array.isArray(t))return Y1(t);let s=[];t&&(s=s.concat(t)),r!=null&&r.ignoreRegisteredLoaders||s.push(...xU()),Trt(s);let n=Srt(e,s,r,i);if(!n&&!(r!=null&&r.nothrow))throw new Error(EU(e));return n}function Srt(e,t,r,i){let s=O0(e),n=q1(e),o=ny(s)||i?.url,c=null,f=\"\";if(r!=null&&r.mimeType&&(c=C4(t,r?.mimeType),f=\"match forced by supplied MIME type \".concat(r?.mimeType)),c=c||Mrt(t,o),f=f||(c?\"matched url \".concat(o):\"\"),c=c||C4(t,n),f=f||(c?\"matched MIME type \".concat(n):\"\"),c=c||Prt(t,e),f=f||(c?\"matched initial data \".concat(PU(e)):\"\"),c=c||C4(t,r?.fallbackMimeType),f=f||(c?\"matched fallback MIME type \".concat(n):\"\"),f){var _;bU.log(1,\"selectLoader selected \".concat((_=c)===null||_===void 0?void 0:_.name,\": \").concat(f,\".\"))}return c}function MU(e){return!(e instanceof Response&&e.status===204)}function EU(e){let t=O0(e),r=q1(e),i=\"No valid loader found (\";i+=t?\"\".concat(R0.filename(t),\", \"):\"no url provided, \",i+=\"MIME type: \".concat(r?'\"'.concat(r,'\"'):\"not provided\",\", \");let s=e?PU(e):\"\";return i+=s?' first bytes: \"'.concat(s,'\"'):\"first bytes: not available\",i+=\")\",i}function Trt(e){for(let t of e)Y1(t)}function Mrt(e,t){let r=t&&wrt.exec(t),i=r&&r[1];return i?Ert(e,i):null}function Ert(e,t){t=t.toLowerCase();for(let r of e)for(let i of r.extensions)if(i.toLowerCase()===t)return r;return null}function C4(e,t){for(let r of e)if(r.mimeTypes&&r.mimeTypes.includes(t)||t===\"application/x.\".concat(r.id))return r;return null}function Prt(e,t){if(!t)return null;for(let r of e)if(typeof t==\"string\"){if(Irt(t,r))return r}else if(ArrayBuffer.isView(t)){if(SU(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&SU(t,0,r))return r;return null}function Irt(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(i=>e.startsWith(i))}function SU(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(s=>Crt(e,t,r,s))}function Crt(e,t,r,i){if(i instanceof ArrayBuffer)return m4(i,e,i.byteLength);switch(typeof i){case\"function\":return i(e,r);case\"string\":let s=L4(e,t,i.length);return i===s;default:return!1}}function PU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5;return typeof e==\"string\"?e.slice(0,t):ArrayBuffer.isView(e)?L4(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?L4(e,0,t):\"\"}function L4(e,t,r){if(e.byteLength1&&arguments[1]!==void 0?arguments[1]:{};return function*(){let{chunkSize:r=262144}=t,i=0;for(;iw4(s,i):t!=null&&t.fetch?t?.fetch:w4}function OU(e,t,r){if(r)return r;let i={fetch:FM(t,e),...e};if(i.url){let s=ny(i.url);i.baseUrl=s,i.queryString=nU(i.url),i.filename=R0.filename(s),i.baseUrl=R0.dirname(s)}return Array.isArray(i.loaders)||(i.loaders=null),i}function BU(e,t){if(!t&&e&&!Array.isArray(e))return e;let r;if(e&&(r=Array.isArray(e)?e:[e]),t&&t.loaders){let i=Array.isArray(t.loaders)?t.loaders:[t.loaders];r=r?[...r,...i]:i}return r&&r.length?r:null}async function zM(e,t,r,i){Xa(!i||typeof i==\"object\"),t&&!Array.isArray(t)&&!Z1(t)&&(i=void 0,r=t,t=void 0),e=await e,r=r||{};let s=O0(e),o=BU(t,i),c=await TU(e,o,r);return c?(r=yU(r,c,o,s),i=OU({url:s,parse:zM,loaders:o},r,i||null),await Drt(c,e,r,i)):null}async function Drt(e,t,r,i){if(d4(e),Eu(t)){let s=t,{ok:n,redirected:o,status:c,statusText:f,type:_,url:w}=s,C=Object.fromEntries(s.headers.entries());i.response={headers:C,ok:n,redirected:o,status:c,statusText:f,type:_,url:w}}if(t=await DU(t,e,r),e.parseTextSync&&typeof t==\"string\")return r.dataType=\"text\",e.parseTextSync(t,r,i,e);if(p4(e,r))return await A4(e,t,r,i,zM);if(e.parseText&&typeof t==\"string\")return await e.parseText(t,r,i,e);if(e.parse)return await e.parse(t,r,i,e);throw Xa(!e.parseSync),new Error(\"\".concat(e.id,\" loader - no parser found and worker is disabled\"))}async function NA(e,t,r,i){!Array.isArray(t)&&!Z1(t)&&(i=void 0,r=t,t=void 0);let s=FM(r),n=e;return typeof e==\"string\"&&(n=await s(e)),Pu(e)&&(n=await s(e)),await zM(n,t,r)}var FU=\"3.4.14\";var{_parseImageNode:Ort}=globalThis,R4=typeof Image<\"u\",D4=typeof ImageBitmap<\"u\",Brt=!!Ort,O4=C0?!0:Brt;function zU(e){switch(e){case\"auto\":return D4||R4||O4;case\"imagebitmap\":return D4;case\"image\":return R4;case\"data\":return O4;default:throw new Error(\"@loaders.gl/images: image \".concat(e,\" not supported in this environment\"))}}function NU(){if(D4)return\"imagebitmap\";if(R4)return\"image\";if(O4)return\"data\";throw new Error(\"Install '@loaders.gl/polyfills' to parse images under Node.js\")}function Frt(e){let t=zrt(e);if(!t)throw new Error(\"Not an image\");return t}function UU(e){switch(Frt(e)){case\"data\":return e;case\"image\":case\"imagebitmap\":let t=document.createElement(\"canvas\"),r=t.getContext(\"2d\");if(!r)throw new Error(\"getImageData\");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error(\"getImageData\")}}function zrt(e){return typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap?\"imagebitmap\":typeof Image<\"u\"&&e instanceof Image?\"image\":e&&typeof e==\"object\"&&e.data&&e.width&&e.height?\"data\":null}var Nrt=/^data:image\\/svg\\+xml/,Urt=/\\.svg((\\?|#).*)?$/;function NM(e){return e&&(Nrt.test(e)||Urt.test(e))}function VU(e,t){if(NM(t)){let i=new TextDecoder().decode(e);try{typeof unescape==\"function\"&&typeof encodeURIComponent==\"function\"&&(i=unescape(encodeURIComponent(i)))}catch(n){throw new Error(n.message)}return\"data:image/svg+xml;base64,\".concat(btoa(i))}return B4(e,t)}function B4(e,t){if(NM(t))throw new Error(\"SVG cannot be parsed directly to imagebitmap\");return new Blob([new Uint8Array(e)])}async function UM(e,t,r){let i=VU(e,r),s=self.URL||self.webkitURL,n=typeof i!=\"string\"&&s.createObjectURL(i);try{return await Vrt(n||i,t)}finally{n&&s.revokeObjectURL(n)}}async function Vrt(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,s)=>{try{r.onload=()=>i(r),r.onerror=n=>s(new Error(\"Could not load image \".concat(e,\": \").concat(n)))}catch(n){s(n)}})}var jrt={},jU=!0;async function GU(e,t,r){let i;NM(r)?i=await UM(e,t,r):i=B4(e,r);let s=t&&t.imagebitmap;return await Grt(i,s)}async function Grt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Wrt(t)||!jU)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),jU=!1}return await createImageBitmap(e)}function Wrt(e){for(let t in e||jrt)return!1;return!0}function WU(e){return!Yrt(e,\"ftyp\",4)||!(e[8]&96)?null:Hrt(e)}function Hrt(e){switch(qrt(e,8,12).replace(\"\\0\",\" \").trim()){case\"avif\":case\"avis\":return{extension:\"avif\",mimeType:\"image/avif\"};default:return null}}function qrt(e,t,r){return String.fromCharCode(...e.slice(t,r))}function Zrt(e){return[...e].map(t=>t.charCodeAt(0))}function Yrt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Zrt(t);for(let s=0;s=24&&t.getUint32(0,zf)===2303741511?{mimeType:\"image/png\",width:t.getUint32(16,zf),height:t.getUint32(20,zf)}:null}function Xrt(e){let t=$1(e);return t.byteLength>=10&&t.getUint32(0,zf)===1195984440?{mimeType:\"image/gif\",width:t.getUint16(6,Q1),height:t.getUint16(8,Q1)}:null}function Krt(e){let t=$1(e);return t.byteLength>=14&&t.getUint16(0,zf)===16973&&t.getUint32(2,Q1)===t.byteLength?{mimeType:\"image/bmp\",width:t.getUint32(18,Q1),height:t.getUint32(22,Q1)}:null}function Jrt(e){let t=$1(e);if(!(t.byteLength>=3&&t.getUint16(0,zf)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:s}=tit(),n=2;for(;n+9!!VM(new DataView(e))],options:nit};function X1(e){if(typeof window<\"u\"&&typeof window.process==\"object\"&&window.process.type===\"renderer\"||typeof process<\"u\"&&typeof process.versions==\"object\"&&process.versions.electron)return!0;let t=typeof navigator==\"object\"&&typeof navigator.userAgent==\"string\"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf(\"Electron\")>=0)}function wo(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||X1()}var UA={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document,process:typeof process==\"object\"&&process};var sit=UA.self||UA.window||UA.global,ly=UA.window||UA.self||UA.global,oit=UA.document||{},z0=UA.process||{};var jM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",dMt=wo();var z4=globalThis;function cy(e){if(!e&&!wo())return\"Node\";if(X1(e))return\"Electron\";let r=e||(typeof navigator<\"u\"?navigator:{}).userAgent||\"\";if(r.indexOf(\"Edge\")>-1)return\"Edge\";let i=r.indexOf(\"MSIE \")!==-1,s=r.indexOf(\"Trident/\")!==-1;return i||s?\"IE\":z4.chrome?\"Chrome\":z4.safari?\"Safari\":z4.mozInnerScreenX?\"Firefox\":\"Unknown\"}function ait(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var GM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";G(this,\"storage\",void 0),G(this,\"id\",void 0),G(this,\"config\",void 0),this.storage=ait(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function ZU(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function YU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function WM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let n=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(n/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(s,\");\"),\"background-size:\".concat(n,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var HM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(HM||(HM={}));function QU(e){return typeof e==\"string\"?HM[e.toUpperCase()]||HM.WHITE:e}function $U(e,t,r){return!wo&&typeof e==\"string\"&&(t&&(t=QU(t),e=\"\\x1B[\".concat(t,\"m\").concat(e,\"\\x1B[39m\")),r&&(t=QU(r),e=\"\\x1B[\".concat(r+10,\"m\").concat(e,\"\\x1B[49m\"))),e}function XU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r);for(let s of i)typeof e[s]==\"function\"&&(t.find(n=>s===n)||(e[s]=e[s].bind(e)))}function uy(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function N0(){let e;if(wo&&\"performance\"in ly){var t,r;e=ly===null||ly===void 0||(t=ly.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in z0){var i;let s=z0===null||z0===void 0||(i=z0.hrtime)===null||i===void 0?void 0:i.call(z0);e=s[0]*1e3+s[1]/1e6}else e=Date.now();return e}var hy={debug:wo&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},lit={enabled:!0,level:0};function Cu(){}var KU={},JU={once:!0},Nf=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};G(this,\"id\",void 0),G(this,\"VERSION\",jM),G(this,\"_startTs\",N0()),G(this,\"_deltaTs\",N0()),G(this,\"_storage\",void 0),G(this,\"userData\",{}),G(this,\"LOG_THROTTLE_TIMEOUT\",0),this.id=t,this.userData={},this._storage=new GM(\"__probe-\".concat(this.id,\"__\"),lit),this.timeStamp(\"\".concat(this.id,\" started\")),XU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((N0()-this._startTs).toPrecision(10))}getDelta(){return Number((N0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){uy(t,r)}warn(t){return this._getLogFunction(0,t,hy.warn,arguments,JU)}error(t){return this._getLogFunction(0,t,hy.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,hy.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,hy.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){for(var i=arguments.length,s=new Array(i>2?i-2:0),n=2;n2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=tV({logLevel:t,message:r,opts:i}),{collapsed:n}=i;return s.method=(n?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Cu)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=eV(t)}_getLogFunction(t,r,i,s,n){if(this._shouldLog(t)){n=tV({logLevel:t,message:r,args:s,opts:n}),i=i||n.method,uy(i),n.total=this.getTotal(),n.delta=this.getDelta(),this._deltaTs=N0();let o=n.tag||n.message;if(n.once)if(!KU[o])KU[o]=N0();else return Cu;return r=cit(this.id,n.message,n),i.bind(console,r,...n.args)}return Cu}};G(Nf,\"VERSION\",jM);function eV(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return uy(Number.isFinite(t)&&t>=0),t}function tV(e){let{logLevel:t,message:r}=e;e.logLevel=eV(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let s=typeof e.message;return uy(s===\"string\"||s===\"object\"),Object.assign(e,{args:i},e.opts)}function cit(e,t,r){if(typeof t==\"string\"){let i=r.time?YU(ZU(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=$U(t,r.color,r.background)}return t}function uit(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Cu}function hit(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let n=new Image;return n.onload=()=>{let o=WM(n,r,i);console.log(...o)},n.src=t,Cu}let s=t.nodeName||\"\";if(s.toLowerCase()===\"img\")return console.log(...WM(t,r,i)),Cu;if(s.toLowerCase()===\"canvas\"){let n=new Image;return n.onload=()=>console.log(...WM(n,r,i)),n.src=t.toDataURL(),Cu}return Cu}function fit(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var qMt=new Nf({id:\"@probe.gl/log\"});var nr=new Nf({id:\"deck\"});var N4={};function rV(e){N4=e}function Cs(e,t,r,i){nr.level>0&&N4[e]&&N4[e].call(null,t,r,i)}function dit(e){let t=e[0],r=e[e.length-1];return t===\"{\"&&r===\"}\"||t===\"[\"&&r===\"]\"}var iV={id:\"JSON\",name:\"JSON\",module:\"\",version:\"\",options:{},extensions:[\"json\",\"geojson\"],mimeTypes:[\"application/json\",\"application/geo+json\"],testText:dit,parseTextSync:JSON.parse};function pit(){let e=\"8.9.34\",t=globalThis.deck&&globalThis.deck.VERSION;if(t&&t!==e)throw new Error(\"deck.gl - multiple versions detected: \".concat(t,\" vs \").concat(e));return t||(nr.log(1,\"deck.gl \".concat(e))(),globalThis.deck={...globalThis.deck,VERSION:e,version:e,log:nr,_registerLoggers:rV},I4([iV,[F4,{imagebitmap:{premultiplyAlpha:\"none\"}}]])),e}var nV=pit();var Yr={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(Yr,\"IDENTITY\",{get:()=>(nr.deprecated(\"COORDINATE_SYSTEM.IDENTITY\",\"COORDINATE_SYSTEM.CARTESIAN\")(),0)});var Ka={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},Ko={common:0,meters:1,pixels:2},U4={click:{handler:\"onClick\"},panstart:{handler:\"onDragStart\"},panmove:{handler:\"onDrag\"},panend:{handler:\"onDragEnd\"}};var je=new Nf({id:\"luma.gl\"});function Zs(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}var Ait=\"Invalid WebGLRenderingContext\";var mit=\"Requires WebGL2\";function Xd(e){return typeof WebGLRenderingContext<\"u\"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&Number.isFinite(e._version))}function hr(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function V4(e){return hr(e)?e:null}function Kd(e){return Zs(Xd(e),Ait),e}function qn(e){return Zs(hr(e),mit),e}var K1={};function git(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function _it(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function yit(e,t){K1[e]=!0,t!==void 0&&git(t)}function vit(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(K1[i]=!0);while(i!==0);for(i in K1)if(K1[i])return delete K1[i],parseInt(i,10);return 0}}var J1=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i{_it(\"OESVertexArrayObject emulation library context restored\"),r.reset_()},!0),this.reset_()};U0.prototype.VERTEX_ARRAY_BINDING_OES=34229;U0.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;ihr(e)?void 0:0,Cit={3074:e=>hr(e)?void 0:36064,[Sit]:e=>hr(e)?void 0:Tit,35977:zn,32937:zn,[Mit]:(e,t)=>{let r=hr(e)?e.getExtension(bit):e.getExtension(xit);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Pit]:(e,t)=>{let r=e.getExtension(lV);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[Iit]:(e,t)=>{let r=e.getExtension(lV);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[Eit]:(e,t)=>{let r=e.luma.extensions[wit];return r?t(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},32883:zn,35071:zn,37447:zn,36063:(e,t)=>{if(!hr(e)){let r=e.getExtension(aV);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},35379:zn,35374:zn,35377:zn,34852:e=>{if(!hr(e)){let t=e.getExtension(aV);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},36203:e=>e.getExtension(oV)?2147483647:65535,33001:e=>e.getExtension(oV)?16777216:65535,33e3:e=>16777216,37157:zn,35373:zn,35657:zn,36183:zn,37137:zn,34045:zn,35978:zn,35979:zn,35968:zn,35376:zn,35375:zn,35659:zn,37154:zn,35371:zn,35658:zn,35076:zn,35077:zn,35380:zn};function cV(e,t,r){let i=Cit[r],s=typeof i==\"function\"?i(e,t,r):i;return s!==void 0?s:t(r)}var Lit=\"OES_vertex_array_object\",uV=\"ANGLE_instanced_arrays\",kit=\"WEBGL_draw_buffers\",Rit=\"EXT_disjoint_timer_query\",Dit=\"EXT_texture_filter_anisotropic\",Oit=\"VertexArray requires WebGL2 or OES_vertex_array_object extension\";function Bit(e,t){return{webgl2:hr(e),ext:e.getExtension(t)}}var j4={[Lit]:{meta:{suffix:\"OES\"},createVertexArray:()=>{Zs(!1,Oit)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[uV]:{meta:{suffix:\"ANGLE\"},vertexAttribDivisor(e,t){Zs(t===0,\"WebGL instanced rendering not supported\")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[kit]:{meta:{suffix:\"WEBGL\"},drawBuffers:()=>{Zs(!1)}},[Rit]:{meta:{suffix:\"EXT\"},createQuery:()=>{Zs(!1)},deleteQuery:()=>{Zs(!1)},beginQuery:()=>{Zs(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:()=>{}}},qM={readBuffer:(e,t,r)=>{hr(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:s,ext:n}=Bit(e,uV),o;switch(i){case 35069:o=s?void 0:!1;break;case 35070:o=!s&&!n?0:void 0;break;default:}return o!==void 0?o:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!hr(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,s)=>{if(!hr(e))switch(s){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,s)},getTexParameter(e,t,r,i){switch(i){case 34046:let{extensions:s}=e.luma,n=s[Dit];i=n&&n.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:cV,hint(e,t,r,i){return t(r,i)}};function hV(e){e.luma=e.luma||{};let{luma:t}=e;return t.polyfilled||(sV(e),Fit(e),Nit(e,j4),zit(e,{target:t,target2:e}),t.polyfilled=!0),e}globalThis.polyfillContext=hV;function Fit(e){e.luma.extensions={};let t=e.getSupportedExtensions()||[];for(let r of t)e.luma[r]=e.getExtension(r)}function zit(e,t){let{target:r,target2:i}=t;Object.keys(qM).forEach(s=>{if(typeof qM[s]==\"function\"){let n=e[s]?e[s].bind(e):()=>{},o=qM[s].bind(null,e,n);r[s]=o,i[s]=o}})}function Nit(e,t){for(let r of Object.getOwnPropertyNames(t))r!==\"overrides\"&&Uit(e,{extension:r,target:e.luma,target2:e})}function Uit(e,t){let{extension:r,target:i,target2:s}=t,n=j4[r];Zs(n);let{meta:o={}}=n,{suffix:c=\"\"}=o,f=e.getExtension(r);for(let _ of Object.keys(n)){let w=\"\".concat(_).concat(c),C=null;_===\"meta\"||typeof e[_]==\"function\"||(f&&typeof f[w]==\"function\"?C=function(){return f[w](...arguments)}:typeof n[_]==\"function\"&&(C=n[_].bind(i))),C&&(i[_]=C,s[_]=C)}}var eb={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,36006:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],3333:4,3317:4,37440:!1,37441:!1,37443:37444,35723:4352,36010:null,35977:!1,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},VA=(e,t,r)=>t?e.enable(r):e.disable(r),fV=(e,t,r)=>e.hint(r,t),qc=(e,t,r)=>e.pixelStorei(r,t),Vit=(e,t)=>{let r=hr(e)?36009:36160;return e.bindFramebuffer(r,t)},jit=(e,t)=>e.bindFramebuffer(36008,t);function tb(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var dV={3042:VA,32773:(e,t)=>e.blendColor(...t),32777:\"blendEquation\",34877:\"blendEquation\",32969:\"blendFunc\",32968:\"blendFunc\",32971:\"blendFunc\",32970:\"blendFunc\",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:VA,2885:(e,t)=>e.cullFace(t),2929:VA,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:VA,35723:fV,36006:Vit,2886:(e,t)=>e.frontFace(t),33170:fV,2849:(e,t)=>e.lineWidth(t),32823:VA,32824:\"polygonOffset\",10752:\"polygonOffset\",35977:VA,32938:\"sampleCoverage\",32939:\"sampleCoverage\",3089:VA,3088:(e,t)=>e.scissor(...t),2960:VA,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),2962:\"stencilFuncFront\",2967:\"stencilFuncFront\",2963:\"stencilFuncFront\",34816:\"stencilFuncBack\",36003:\"stencilFuncBack\",36004:\"stencilFuncBack\",2964:\"stencilOpFront\",2965:\"stencilOpFront\",2966:\"stencilOpFront\",34817:\"stencilOpBack\",34818:\"stencilOpBack\",34819:\"stencilOpBack\",2978:(e,t)=>e.viewport(...t),3333:qc,3317:qc,37440:qc,37441:qc,37443:qc,3330:qc,3332:qc,3331:qc,36010:jit,3314:qc,32878:qc,3316:qc,3315:qc,32877:qc,framebuffer:(e,t)=>{let r=t&&\"handle\"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{t=tb(t)?t:[t,t],e.blendEquationSeparate(...t)},blendFunc:(e,t)=>{t=tb(t)&&t.length===2?[...t,...t]:t,e.blendFuncSeparate(...t)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=tb(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=tb(t)&&t.length===3?[...t,...t]:t;let[r,i,s,n,o,c]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,n,o,c)},stencilOp:(e,t)=>{t=tb(t)&&t.length===3?[...t,...t]:t;let[r,i,s,n,o,c]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,n,o,c)},viewport:(e,t)=>e.viewport(...t)};function Ls(e,t,r){return t[e]!==void 0?t[e]:r[e]}var pV={blendEquation:(e,t,r)=>e.blendEquationSeparate(Ls(32777,t,r),Ls(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(Ls(32969,t,r),Ls(32968,t,r),Ls(32971,t,r),Ls(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(Ls(32824,t,r),Ls(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(Ls(32938,t,r),Ls(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,Ls(2962,t,r),Ls(2967,t,r),Ls(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,Ls(34816,t,r),Ls(36003,t,r),Ls(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,Ls(2964,t,r),Ls(2965,t,r),Ls(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,Ls(34817,t,r),Ls(34818,t,r),Ls(34819,t,r))},G4={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({36006:r,36010:r});case 36009:return e({36006:r});case 36008:return e({36010:r});default:return null}},blendColor:(e,t,r,i,s)=>e({32773:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,r)=>e({32777:t,34877:r}),blendFunc:(e,t,r)=>e({32969:t,32968:r,32971:t,32970:r}),blendFuncSeparate:(e,t,r,i,s)=>e({32969:t,32968:r,32971:i,32970:s}),clearColor:(e,t,r,i,s)=>e({3106:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,r,i,s)=>e({3107:[t,r,i,s]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,r)=>e({2928:new Float32Array([t,r])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,r)=>e({32824:t,10752:r}),sampleCoverage:(e,t,r)=>e({32938:t,32939:r}),scissor:(e,t,r,i,s)=>e({3088:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({2962:t,2967:r,2963:i,34816:t,36003:r,36004:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({2964:t,2965:r,2966:i,34817:t,34818:r,34819:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({2978:[t,r,i,s]})},Uf=(e,t)=>e.isEnabled(t),W4={3042:Uf,2884:Uf,2929:Uf,3024:Uf,32823:Uf,32926:Uf,32928:Uf,3089:Uf,2960:Uf,35977:Uf};function H4(e){for(let t in e)return!1;return!0}function AV(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=r?fy(t):Object.assign({},eb),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){Zs(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];wl(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,s=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(let n in t){Zs(n!==void 0);let o=t[n],c=this.cache[n];AV(o,c)||(r=!0,i=c,s&&!(n in s)&&(s[n]=c),this.cache[n]=o)}return{valueChanged:r,oldValue:i}}};function ZM(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{enable:r=!0,copyState:i}=t;if(Zs(i!==void 0),!e.state){let{polyfillContext:s}=globalThis;s&&s(e),e.state=new q4(e,{copyState:i}),Wit(e);for(let n in G4){let o=G4[n];Git(e,n,o)}mV(e,\"getParameter\"),mV(e,\"isEnabled\")}return e.state.enable=r,e}function Z4(e){e.state||ZM(e,{copyState:!1}),e.state.push()}function YM(e){Zs(e.state),e.state.pop()}function wl(e,t){if(Zs(Xd(e),\"setParameters requires a WebGL context\"),H4(t))return;let r={};for(let s in t){let n=Number(s),o=dV[s];o&&(typeof o==\"string\"?r[o]=!0:o(e,t[s],n))}let i=e.state&&e.state.cache;if(i)for(let s in r){let n=pV[s];n(e,t,i)}}function fy(e,t){if(t=t||eb,typeof t==\"number\"){let s=t,n=W4[s];return n?n(e,s):e.getParameter(s)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let s of r){let n=W4[s];i[s]=n?n(e,Number(s)):e.getParameter(Number(s))}return i}function QM(e){wl(e,eb)}function bn(e,t,r){if(H4(t))return r(e);let{nocatch:i=!0}=t;Z4(e),wl(e,t);let s;if(i)s=r(e),YM(e);else try{s=r(e)}finally{YM(e)}return s}function Sl(e){let{luma:t}=e;if(e.canvas&&t){let r=t.canvasSizeInfo,i=\"clientWidth\"in r?r.clientWidth:e.canvas.clientWidth;return i?e.drawingBufferWidth/i:1}return 1}function dy(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=Sl(e),s=e.drawingBufferWidth,n=e.drawingBufferHeight;return Hit(t,i,s,n,r)}function yV(e){let t=typeof window>\"u\"?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}function Hit(e,t,r,i,s){let n=gV(e[0],t,r),o=_V(e[1],t,i,s),c=gV(e[0]+1,t,r),f=c===r-1?c:c-1;c=_V(e[1]+1,t,i,s);let _;return s?(c=c===0?c:c+1,_=o,o=c):_=c===i-1?c:c-1,{x:n,y:o,width:Math.max(f-n+1,1),height:Math.max(_-o+1,1)}}function gV(e,t,r){return Math.min(Math.round(e*t),r-1)}function _V(e,t,r,i){return i?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}var Y4=wo(),qit=Y4&&typeof document<\"u\",vV={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function py(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Zs(Y4,`createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),e=Object.assign({},vV,e);let{width:t,height:r}=e;function i(c){if(e.throwOnError)throw new Error(c);return console.error(c),null}e.onError=i;let s,{canvas:n}=e,o=Yit({canvas:n,width:t,height:r,onError:i});return s=Zit(o,e),s?(s=V0(s,e),Qit(s),s):null}function V0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||$it(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{},t=Object.assign({},vV,t);let{manageState:r,debug:i}=t;return r&&ZM(e,{copyState:!1,log:function(){for(var s=arguments.length,n=new Array(s),o=0;o1&&arguments[1]!==void 0?arguments[1]:{};if(e.canvas){let i=yV(t.useDevicePixels);Xit(e,i,t);return}let r=e.getExtension(\"STACKGL_resize_drawingbuffer\");r&&\"width\"in t&&\"height\"in t&&r.resize(t.width,t.height)}function Zit(e,t){let{onError:r}=t,i=null,s=f=>i=f.statusMessage||i;e.addEventListener(\"webglcontextcreationerror\",s,!1);let{webgl1:n=!0,webgl2:o=!0}=t,c=null;return o&&(c=c||e.getContext(\"webgl2\",t),c=c||e.getContext(\"experimental-webgl2\",t)),n&&(c=c||e.getContext(\"webgl\",t),c=c||e.getContext(\"experimental-webgl\",t)),e.removeEventListener(\"webglcontextcreationerror\",s,!1),c?(t.onContextLost&&e.addEventListener(\"webglcontextlost\",t.onContextLost,!1),t.onContextRestored&&e.addEventListener(\"webglcontextrestored\",t.onContextRestored,!1),c):r(\"Failed to create \".concat(o&&!n?\"WebGL2\":\"WebGL\",\" context: \").concat(i||\"Unknown error\"))}function Yit(e){let{canvas:t,width:r=800,height:i=600,onError:s}=e,n;return typeof t==\"string\"?(qit&&document.readyState===\"complete\"||s(\"createGLContext called on canvas '\".concat(t,\"' before page was loaded\")),n=document.getElementById(t)):t?n=t:(n=document.createElement(\"canvas\"),n.id=\"lumagl-canvas\",n.style.width=Number.isFinite(r)?\"\".concat(r,\"px\"):\"100%\",n.style.height=Number.isFinite(i)?\"\".concat(i,\"px\"):\"100%\",document.body.insertBefore(n,document.body.firstChild)),n}function Qit(e){let t=hr(e)?\"WebGL2\":\"WebGL1\",r=xV(e),i=r?\"(\".concat(r.vendor,\",\").concat(r.renderer,\")\"):\"\",s=e.debug?\" debug\":\"\";je.info(1,\"\".concat(t).concat(s,\" context \").concat(i))()}function $it(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?2:1}function Xit(e,t,r){let i=\"width\"in r?r.width:e.canvas.clientWidth,s=\"height\"in r?r.height:e.canvas.clientHeight;(!i||!s)&&(je.log(1,\"Canvas clientWidth/clientHeight is 0\")(),t=1,i=e.canvas.width||1,s=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};let n=e.luma.canvasSizeInfo;if(n.clientWidth!==i||n.clientHeight!==s||n.devicePixelRatio!==t){let o=t,c=Math.floor(i*o),f=Math.floor(s*o);e.canvas.width=c,e.canvas.height=f,(e.drawingBufferWidth!==c||e.drawingBufferHeight!==f)&&(je.warn(\"Device pixel ratio clamped\")(),o=Math.min(e.drawingBufferWidth/i,e.drawingBufferHeight/s),e.canvas.width=Math.floor(i*o),e.canvas.height=Math.floor(s*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:i,clientHeight:s,devicePixelRatio:t})}}function rb(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var j0=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"type\",void 0),G(this,\"sampleSize\",1),G(this,\"time\",void 0),G(this,\"count\",void 0),G(this,\"samples\",void 0),G(this,\"lastTiming\",void 0),G(this,\"lastSampleTime\",void 0),G(this,\"lastSampleCount\",void 0),G(this,\"_count\",0),G(this,\"_time\",0),G(this,\"_samples\",0),G(this,\"_startTime\",0),G(this,\"_timerPending\",!1),this.name=t,this.type=r,this.reset()}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=rb(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(rb()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var Vf=class{constructor(t){G(this,\"id\",void 0),G(this,\"stats\",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t in this.stats)this.stats[t].reset();return this}forEach(t){for(let r in this.stats)t(this.stats[r])}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){if(!t||!t.name)return null;let{name:r,type:i}=t;return this.stats[r]||(t instanceof j0?this.stats[r]=t:this.stats[r]=new j0(r,i)),this.stats[r]}};var ib=\"8.5.21\",Kit=\"set luma.log.level=1 (or higher) to trace rendering\",$4=class{constructor(){this.stats=new Map}get(t){return this.stats.has(t)||this.stats.set(t,new Vf({id:t})),this.stats.get(t)}},Lu=new $4;if(globalThis.luma&&globalThis.luma.VERSION!==ib)throw new Error(\"luma.gl - multiple VERSIONs detected: \".concat(globalThis.luma.VERSION,\" vs \").concat(ib));globalThis.luma||(wo()&&je.log(1,\"luma.gl \".concat(ib,\" - \").concat(Kit))(),globalThis.luma=globalThis.luma||{VERSION:ib,version:ib,log:je,stats:Lu,globals:{modules:{},nodeIO:{}}});var pPt=globalThis.luma;function X4(e){return typeof window<\"u\"&&window.requestAnimationFrame?window.requestAnimationFrame(e):setTimeout(e,1e3/60)}function K4(e){return typeof window<\"u\"&&window.cancelAnimationFrame?window.cancelAnimationFrame(e):clearTimeout(e)}function ye(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}function $M(e,t){if(typeof t!=\"string\")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\\./,\"\");let i=e[t];return ye(i!==void 0,\"Accessing undefined constant GL.\".concat(t)),i}function ku(e,t){t=Number(t);for(let r in e)if(e[r]===t)return\"GL.\".concat(r);return String(t)}var J4={};function Jo(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"id\";J4[e]=J4[e]||1;let t=J4[e]++;return\"\".concat(e,\"-\").concat(t)}function tR(e){return ye(typeof e==\"number\",\"Input must be a number\"),e&&(e&e-1)===0}function jf(e){let t=!0;for(let r in e){t=!1;break}return t}function XM(e,t,r,i){let s=\"See luma.gl \".concat(r,\" Upgrade Guide at https://luma.gl/docs/upgrade-guide\"),n=Object.getPrototypeOf(e);i.forEach(o=>{n.methodName||(n[o]=()=>{throw je.removed(\"Calling removed method \".concat(t,\".\").concat(o,\": \"),s)(),new Error(o)})})}var Ay=\"Resource subclass must define virtual methods\",Ys=class{get[Symbol.toStringTag](){return\"Resource\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t);let{id:i,userData:s={}}=r;this.gl=t,this.gl2=t,this.id=i||Jo(this[Symbol.toStringTag]),this.userData=s,this._bound=!1,this._handle=r.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}toString(){return\"\".concat(this[Symbol.toStringTag]||this.constructor.name,\"(\").concat(this.id,\")\")}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.delete()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!=\"function\")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=$M(this.gl,t),ye(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let n=hr(this.gl);if(!((!(\"webgl2\"in s)||n)&&(!(\"extension\"in s)||this.gl.getExtension(s.extension)))){let c=s.webgl1,f=\"webgl2\"in s?s.webgl2:s.webgl1;return n?f:c}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,s=this.constructor.PARAMETERS||{},n=hr(this.gl),o={},c=r||Object.keys(s);for(let f of c){let _=s[f];if(_&&(!(\"webgl2\"in _)||n)&&(!(\"extension\"in _)||this.gl.getExtension(_.extension))){let C=i?ku(this.gl,f):f;o[C]=this.getParameter(f,t),i&&_.type===\"GLenum\"&&(o[C]=ku(this.gl,o[C]))}}return o}setParameter(t,r){t=$M(this.gl,t),ye(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let n=hr(this.gl);if(!((!(\"webgl2\"in s)||n)&&(!(\"extension\"in s)||this.gl.getExtension(s.extension))))throw new Error(\"Parameter not available on this platform\");s.type===\"GLenum\"&&(r=$M(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return XM(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(Ay)}_deleteHandle(){throw new Error(Ay)}_bindHandle(t){throw new Error(Ay)}_getOptsFromHandle(){throw new Error(Ay)}_getParameter(t,r){throw new Error(Ay)}_setParameter(t,r){throw new Error(Ay)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_addStats(){let t=this[Symbol.toStringTag],r=Lu.get(\"Resource Counts\");r.get(\"Resources Created\").incrementCount(),r.get(\"\".concat(t,\"s Created\")).incrementCount(),r.get(\"\".concat(t,\"s Active\")).incrementCount()}_removeStats(){let t=this[Symbol.toStringTag];Lu.get(\"Resource Counts\").get(\"\".concat(t,\"s Active\")).decrementCount()}_trackAllocatedMemory(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._trackAllocatedMemoryForContext(t,r),this._trackAllocatedMemoryForContext(t,r,this.gl.canvas&&this.gl.canvas.id),this.byteLength=t}_trackAllocatedMemoryForContext(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"\",s=Lu.get(\"Memory Usage\".concat(i));s.get(\"GPU Memory\").addCount(t),s.get(\"\".concat(r,\" Memory\")).addCount(t)}_trackDeallocatedMemory(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._trackDeallocatedMemoryForContext(t),this._trackDeallocatedMemoryForContext(t,this.gl.canvas&&this.gl.canvas.id),this.byteLength=0}_trackDeallocatedMemoryForContext(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\",i=Lu.get(\"Memory Usage\".concat(r));i.get(\"GPU Memory\").subtractCount(this.byteLength),i.get(\"\".concat(t,\" Memory\")).subtractCount(this.byteLength)}};var Jit=\"Failed to deduce GL constant from typed array\";function nb(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Jit)}}function jA(e){let{clamped:t=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return t?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error(\"Failed to deduce typed array type from GL constant\")}}function bV(e){let{data:t,width:r,height:i,bytesPerPixel:s=4,temp:n}=e,o=r*s;n=n||new Uint8Array(o);for(let c=0;cthis._assign(s)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return e.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return e.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=sb(\"Accessor\",t,ent),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index==\"boolean\"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this}};var SV=10,TV={offset:\"accessor.offset\",stride:\"accessor.stride\",type:\"accessor.type\",size:\"accessor.size\",divisor:\"accessor.divisor\",normalized:\"accessor.normalized\",integer:\"accessor.integer\",instanced:\"accessor.divisor\",isInstanced:\"accessor.divisor\"},rnt={removedProps:{},replacedProps:{bytes:\"byteLength\"},deprecatedProps:TV},int={removedProps:TV},Fr=class extends Ys{get[Symbol.toStringTag](){return\"Buffer\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Buffer\",\"v6.0\",[\"layout\",\"setLayout\",\"getIndexedParameter\"]),this.target=r.target||(this.gl.webgl2?36662:34962),this.initialize(r),Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Tl.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Tl.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=sb(\"Buffer\",t,rnt),this.usage=t.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.offset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=sb(\"Buffer\",t,int),\"accessor\"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new Tl(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:r,offset:i=0,srcOffset:s=0}=t,n=t.byteLength||t.length;ye(r);let o=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(o,this.handle),s!==0||n!==void 0?(qn(this.gl),this.gl.bufferSubData(this.target,i,r,s,n)):this.gl.bufferSubData(o,i,r),this.gl.bindBuffer(o,null),this.debugData=null,this._inferType(r),this}copyData(t){let{sourceBuffer:r,readOffset:i=0,writeOffset:s=0,size:n}=t,{gl:o}=this;return qn(o),o.bindBuffer(36662,r.handle),o.bindBuffer(36663,this.handle),o.copyBufferSubData(36662,36663,i,s,n),o.bindBuffer(36662,null),o.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:t=null,srcByteOffset:r=0,dstOffset:i=0,length:s=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qn(this.gl);let n=jA(this.accessor.type||5126,{clamped:!1}),o=this._getAvailableElementCount(r),c=i,f,_;t?(_=t.length,f=_-c):(f=Math.min(o,s||o),_=c+f);let w=Math.min(o,f);return s=s||w,ye(s<=w),t=t||new n(_),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,r,t,i,s),this.gl.bindBuffer(36662,null),t}bind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index,offset:i=0,size:s}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?s!==void 0?this.gl.bindBufferRange(t,r,this.handle,i,s):(ye(i===0),this.gl.bindBufferBase(t,r,this.handle)):this.gl.bindBuffer(t,this.handle),this}unbind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?this.gl.bindBufferBase(t,r,null):this.gl.bindBuffer(t,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(SV,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;ye(ArrayBuffer.isView(t)),this._trackDeallocatedMemory();let s=this._getTarget();this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.usage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.debugData=t.slice(0,SV),this.bytesUsed=i,this._trackAllocatedMemory(i);let n=nb(t);return ye(n),this.setAccessor(new Tl(this.accessor,{type:n})),this}_setByteLength(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;ye(t>=0),this._trackDeallocatedMemory();let i=t;t===0&&(i=new Float32Array(0));let s=this._getTarget();return this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,r),this.gl.bindBuffer(s,null),this.usage=r,this.debugData=null,this.bytesUsed=t,this._trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount(t){let r=jA(this.accessor.type||5126,{clamped:!1}),i=t/r.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(t){this.accessor.type||this.setAccessor(new Tl(this.accessor,{type:nb(t)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter(t){this.gl.bindBuffer(this.target,this.handle);let r=this.gl.getBufferParameter(this.target,t);return this.gl.bindBuffer(this.target,null),r}get type(){return je.deprecated(\"Buffer.type\",\"Buffer.accessor.type\")(),this.accessor.type}get bytes(){return je.deprecated(\"Buffer.bytes\",\"Buffer.byteLength\")(),this.byteLength}setByteLength(t){return je.deprecated(\"setByteLength\",\"reallocate\")(),this.reallocate(t)}updateAccessor(t){return je.deprecated(\"updateAccessor(...)\",\"setAccessor(new Accessor(buffer.accessor, ...)\")(),this.accessor=new Tl(this.accessor,t),this}};var KM={6407:{dataFormat:6407,types:[5121,33635]},6408:{dataFormat:6408,types:[5121,32819,32820]},6406:{dataFormat:6406,types:[5121]},6409:{dataFormat:6409,types:[5121]},6410:{dataFormat:6410,types:[5121]},33326:{dataFormat:6403,types:[5126],gl2:!0},33328:{dataFormat:33319,types:[5126],gl2:!0},34837:{dataFormat:6407,types:[5126],gl2:!0},34836:{dataFormat:6408,types:[5126],gl2:!0}},JM={6403:1,36244:1,33319:2,33320:2,6407:3,36248:3,6408:4,36249:4,6402:1,34041:1,6406:1,6409:1,6410:2},tE={5126:4,5125:4,5124:4,5123:2,5122:2,5131:2,5120:1,5121:1};function MV(e,t){let r=KM[t];if(!r)return!1;if(r.gl1===void 0&&r.gl2===void 0)return!0;let i=hr(e)&&r.gl2||r.gl1;return typeof i==\"string\"?e.getExtension(i):i}function EV(e,t){let r=KM[t];switch(r&&r.types[0]){case 5126:return e.getExtension(\"OES_texture_float_linear\");case 5131:return e.getExtension(\"OES_texture_half_float_linear\");default:return!0}}var nnt=[9729,9728],PV=globalThis.WebGLBuffer||function(){},Ja=class extends Ys{get[Symbol.toStringTag](){return\"Texture\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{format:i,linearFiltering:s}=r,n=!0;return i&&(n=n&&MV(t,i),n=n&&(!s||EV(t,i))),n}constructor(t,r){let{id:i=Jo(\"texture\"),handle:s,target:n}=r;super(t,{id:i,handle:s}),this.target=n,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return\"Texture(\".concat(this.id,\",\").concat(this.width,\"x\").concat(this.height,\")\")}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.data;if(r instanceof Promise)return r.then(K=>this.initialize(Object.assign({},t,{pixels:K,data:K}))),this;let i=typeof HTMLVideoElement<\"u\"&&r instanceof HTMLVideoElement;if(i&&r.readyStatethis.initialize(t)),this;let{pixels:s=null,format:n=6408,border:o=0,recreate:c=!1,parameters:f={},pixelStore:_={},textureUnit:w=void 0}=t;r||(r=s);let{width:C,height:R,dataFormat:N,type:j,compressed:Y=!1,mipmaps:rt=!0}=t,{depth:$=0}=t;return{width:C,height:R,compressed:Y,dataFormat:N,type:j}=this._deduceParameters({format:n,type:j,dataFormat:N,compressed:Y,data:r,width:C,height:R}),this.width=C,this.height=R,this.depth=$,this.format=n,this.type=j,this.dataFormat=N,this.border=o,this.textureUnit=w,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),rt&&this._isNPOT()&&(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),rt=!1,this._updateForNPOT(f)),this.mipmaps=rt,this.setImageData({data:r,width:C,height:R,depth:$,format:n,type:j,dataFormat:N,border:o,mipmaps:rt,parameters:_,compressed:Y}),rt&&this.generateMipmap(),this.setParameters(f),c&&(this.data=r),i&&(this._video={video:r,parameters:f,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),bn(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){this._trackDeallocatedMemory(\"Texture\");let{target:r=this.target,pixels:i=null,level:s=0,format:n=this.format,border:o=this.border,offset:c=0,parameters:f={}}=t,{data:_=null,type:w=this.type,width:C=this.width,height:R=this.height,dataFormat:N=this.dataFormat,compressed:j=!1}=t;_||(_=i),{type:w,dataFormat:N,compressed:j,width:C,height:R}=this._deduceParameters({format:n,type:w,dataFormat:N,compressed:j,data:_,width:C,height:R});let{gl:Y}=this;Y.bindTexture(this.target,this.handle);let rt=null;({data:_,dataType:rt}=this._getDataType({data:_,compressed:j}));let $,K=0;if(bn(this.gl,f,()=>{switch(rt){case\"null\":Y.texImage2D(r,s,n,C,R,o,N,w,_);break;case\"typed-array\":Y.texImage2D(r,s,n,C,R,o,N,w,_,c);break;case\"buffer\":$=qn(Y),$.bindBuffer(35052,_.handle||_),$.texImage2D(r,s,n,C,R,o,N,w,c),$.bindBuffer(35052,null);break;case\"browser-object\":hr(Y)?Y.texImage2D(r,s,n,C,R,o,N,w,_):Y.texImage2D(r,s,n,N,w,_);break;case\"compressed\":for(let[tt,ut]of _.entries())Y.compressedTexImage2D(r,tt,ut.format,ut.width,ut.height,o,ut.data),K+=ut.levelSize;break;default:ye(!1,\"Unknown image data type\")}}),rt===\"compressed\")this._trackAllocatedMemory(K,\"Texture\");else if(_&&_.byteLength)this._trackAllocatedMemory(_.byteLength,\"Texture\");else{let tt=JM[this.dataFormat]||4,ut=tE[this.type]||1;this._trackAllocatedMemory(this.width*this.height*tt*ut,\"Texture\")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:s=null,x:n=0,y:o=0,width:c=this.width,height:f=this.height,level:_=0,format:w=this.format,type:C=this.type,dataFormat:R=this.dataFormat,compressed:N=!1,offset:j=0,border:Y=this.border,parameters:rt={}}=t;if({type:C,dataFormat:R,compressed:N,width:c,height:f}=this._deduceParameters({format:w,type:C,dataFormat:R,compressed:N,data:s,width:c,height:f}),ye(this.depth===0,\"texSubImage not supported for 3D textures\"),s||(s=i),s&&s.data){let $=s;s=$.data,c=$.shape[0],f=$.shape[1]}s instanceof Fr&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),bn(this.gl,rt,()=>{if(N)this.gl.compressedTexSubImage2D(r,_,n,o,c,f,w,s);else if(s===null)this.gl.texSubImage2D(r,_,n,o,c,f,R,C,null);else if(ArrayBuffer.isView(s))this.gl.texSubImage2D(r,_,n,o,c,f,R,C,s,j);else if(s instanceof PV){let $=qn(this.gl);$.bindBuffer(35052,s),$.texSubImage2D(r,_,n,o,c,f,R,C,j),$.bindBuffer(35052,null)}else hr(this.gl)?qn(this.gl).texSubImage2D(r,_,n,o,c,f,R,C,s):this.gl.texSubImage2D(r,_,n,o,R,C,s)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:\"compressed\"}:r===null?{data:r,dataType:\"null\"}:ArrayBuffer.isView(r)?{data:r,dataType:\"typed-array\"}:r instanceof Fr?{data:r.handle,dataType:\"buffer\"}:r instanceof PV?{data:r,dataType:\"buffer\"}:{data:r,dataType:\"browser-object\"}}_deduceParameters(t){let{format:r,data:i}=t,{width:s,height:n,dataFormat:o,type:c,compressed:f}=t,_=KM[r];return o=o||_&&_.dataFormat,c=c||_&&_.types[0],f=f||_&&_.compressed,{width:s,height:n}=this._deduceImageSize(i,s,n),{dataFormat:o,type:c,compressed:f,width:s,height:n,format:r,data:i}}_deduceImageSize(t,r,i){let s;return typeof ImageData<\"u\"&&t instanceof ImageData?s={width:t.width,height:t.height}:typeof HTMLImageElement<\"u\"&&t instanceof HTMLImageElement?s={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<\"u\"&&t instanceof HTMLCanvasElement?s={width:t.width,height:t.height}:typeof ImageBitmap<\"u\"&&t instanceof ImageBitmap?s={width:t.width,height:t.height}:typeof HTMLVideoElement<\"u\"&&t instanceof HTMLVideoElement?s={width:t.videoWidth,height:t.videoHeight}:t?s={width:r,height:i}:s={width:r>=0?r:1,height:i>=0?i:1},ye(s,\"Could not deduced texture size\"),ye(r===void 0||s.width===r,\"Deduced texture width does not match supplied width\"),ye(i===void 0||s.height===i,\"Deduced texture height does not match supplied height\"),s}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory(\"Texture\")}_getParameter(t){switch(t){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);let r=this.gl.getTexParameter(this.target,t);return this.gl.bindTexture(this.target,null),r}}_setParameter(t,r){switch(this.gl.bindTexture(this.target,this.handle),r=this._getNPOTParam(t,r),t){case 33082:case 33083:this.gl.texParameterf(this.handle,t,r);break;case 4096:case 4097:ye(!1);break;default:this.gl.texParameteri(this.target,t,r);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return hr(this.gl)||!this.width||!this.height?!1:!tR(this.width)||!tR(this.height)}_updateForNPOT(t){t[this.gl.TEXTURE_MIN_FILTER]===void 0&&(t[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),t[this.gl.TEXTURE_WRAP_S]===void 0&&(t[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),t[this.gl.TEXTURE_WRAP_T]===void 0&&(t[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam(t,r){if(this._isNPOT())switch(t){case 10241:nnt.indexOf(r)===-1&&(r=9729);break;case 10242:case 10243:r!==33071&&(r=33071);break;default:break}return r}};var snt=\"\";function IV(e,t){return ye(typeof e==\"string\"),e=snt+e,new Promise((r,i)=>{try{let s=new Image;s.onload=()=>r(s),s.onerror=()=>i(new Error(\"Could not load image \".concat(e,\".\"))),s.crossOrigin=t&&t.crossOrigin||\"anonymous\",s.src=e}catch(s){i(s)}})}var pi=class extends Ja{get[Symbol.toStringTag](){return\"Texture2D\"}static isSupported(t,r){return Ja.isSupported(t,r)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t),(r instanceof Promise||typeof r==\"string\")&&(r={data:r}),typeof r.data==\"string\"&&(r=Object.assign({},r,{data:IV(r.data)})),super(t,Object.assign({},r,{target:3553})),this.initialize(r),Object.seal(this)}};var eR=[34069,34070,34071,34072,34073,34074],G0=class extends Ja{get[Symbol.toStringTag](){return\"TextureCube\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t),super(t,Object.assign({},r,{target:34067})),this.initialize(r),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{mipmaps:r=!0,parameters:i={}}=t;return this.opts=t,this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setParameters(i)}),this}subImage(t){let{face:r,data:i,x:s=0,y:n=0,mipmapLevel:o=0}=t;return this._subImage({target:r,data:i,x:s,y:n,mipmapLevel:o})}async setCubeMapImageData(t){let{width:r,height:i,pixels:s,data:n,border:o=0,format:c=6408,type:f=5121}=t,{gl:_}=this,w=s||n,C=await Promise.all(eR.map(R=>{let N=w[R];return Promise.all(Array.isArray(N)?N:[N])}));this.bind(),eR.forEach((R,N)=>{C[N].length>1&&this.opts.mipmaps!==!1&&je.warn(\"\".concat(this.id,\" has mipmap and multiple LODs.\"))(),C[N].forEach((j,Y)=>{r&&i?_.texImage2D(R,Y,c,r,i,o,c,f,j):_.texImage2D(R,Y,c,c,f,j)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:n,data:o,border:c=0,format:f=6408,type:_=5121}=t,{gl:w}=this,C=n||o;return this.bind(),C instanceof Promise?C.then(R=>this.setImageDataForFace(Object.assign({},t,{face:r,data:R,pixels:R}))):this.width||this.height?w.texImage2D(r,0,f,i,s,c,f,_,C):w.texImage2D(r,0,f,f,_,C),this}};G0.FACES=eR;var my=class extends Ja{get[Symbol.toStringTag](){return\"Texture3D\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(t),r=Object.assign({depth:1},r,{target:32879,unpackFlipY:!1}),super(t,r),this.initialize(r),Object.seal(this)}setImageData(t){let{level:r=0,dataFormat:i=6408,width:s,height:n,depth:o=1,border:c=0,format:f,type:_=5121,offset:w=0,data:C,parameters:R={}}=t;if(this._trackDeallocatedMemory(\"Texture\"),this.gl.bindTexture(this.target,this.handle),bn(this.gl,R,()=>{ArrayBuffer.isView(C)&&this.gl.texImage3D(this.target,r,i,s,n,o,c,f,_,C),C instanceof Fr&&(this.gl.bindBuffer(35052,C.handle),this.gl.texImage3D(this.target,r,i,s,n,o,c,f,_,w))}),C&&C.byteLength)this._trackAllocatedMemory(C.byteLength,\"Texture\");else{let N=JM[this.dataFormat]||4,j=tE[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*N*j,\"Texture\")}return this.loaded=!0,this}};var W0=\"EXT_color_buffer_float\",rR={33189:{bpp:2},33190:{gl2:!0,bpp:3},36012:{gl2:!0,bpp:4},36168:{bpp:1},34041:{bpp:4},35056:{gl2:!0,bpp:4},36013:{gl2:!0,bpp:5},32854:{bpp:2},36194:{bpp:2},32855:{bpp:2},33321:{gl2:!0,bpp:1},33330:{gl2:!0,bpp:1},33329:{gl2:!0,bpp:1},33332:{gl2:!0,bpp:2},33331:{gl2:!0,bpp:2},33334:{gl2:!0,bpp:4},33333:{gl2:!0,bpp:4},33323:{gl2:!0,bpp:2},33336:{gl2:!0,bpp:2},33335:{gl2:!0,bpp:2},33338:{gl2:!0,bpp:4},33337:{gl2:!0,bpp:4},33340:{gl2:!0,bpp:8},33339:{gl2:!0,bpp:8},32849:{gl2:!0,bpp:3},32856:{gl2:!0,bpp:4},32857:{gl2:!0,bpp:4},36220:{gl2:!0,bpp:4},36238:{gl2:!0,bpp:4},36975:{gl2:!0,bpp:4},36214:{gl2:!0,bpp:8},36232:{gl2:!0,bpp:8},36226:{gl2:!0,bpp:16},36208:{gl2:!0,bpp:16},33325:{gl2:W0,bpp:2},33327:{gl2:W0,bpp:4},34842:{gl2:W0,bpp:8},33326:{gl2:W0,bpp:4},33328:{gl2:W0,bpp:8},34836:{gl2:W0,bpp:16},35898:{gl2:W0,bpp:4}};function ont(e,t,r){let i=r[t];if(!i)return!1;let s=hr(e)&&i.gl2||i.gl1;return typeof s==\"string\"?e.getExtension(s):s}var tl=class extends Ys{get[Symbol.toStringTag](){return\"Renderbuffer\"}static isSupported(t){let{format:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!r||ont(t,r,rR)}static getSamplesForFormat(t,r){let{format:i}=r;return t.getInternalformatParameter(36161,i,32937)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.initialize(r),Object.seal(this)}initialize(t){let{format:r,width:i=1,height:s=1,samples:n=0}=t;return ye(r,\"Needs format\"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),n!==0&&hr(this.gl)?this.gl.renderbufferStorageMultisample(36161,n,r,i,s):this.gl.renderbufferStorage(36161,r,i,s),this.format=r,this.width=i,this.height=s,this.samples=n,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*rR[this.format].bpp),this}resize(t){let{width:r,height:i}=t;return r!==this.width||i!==this.height?this.initialize({width:r,height:i,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}_syncHandle(t){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter(t){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,t)}};var ant=256,lnt=1024,cnt=16384,CV=6144,LV=6145,kV=6146,RV=34041,DV=\"clear: bad arguments\";function Gf(e){let{framebuffer:t=null,color:r=null,depth:i=null,stencil:s=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={};t&&(n.framebuffer=t);let o=0;r&&(o|=cnt,r!==!0&&(n.clearColor=r)),i&&(o|=ant,i!==!0&&(n.clearDepth=i)),s&&(o|=lnt,i!==!0&&(n.clearStencil=i)),ye(o!==0,DV),bn(e,n,()=>{e.clear(o)})}function iR(e){let{framebuffer:t=null,buffer:r=CV,drawBuffer:i=0,value:s=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(e),bn(e,{framebuffer:t},()=>{switch(r){case CV:switch(s.constructor){case Int32Array:e.clearBufferiv(r,i,s);break;case Uint32Array:e.clearBufferuiv(r,i,s);break;case Float32Array:default:e.clearBufferfv(r,i,s)}break;case LV:e.clearBufferfv(LV,0,[s]);break;case kV:e.clearBufferiv(kV,0,[s]);break;case RV:let[n,o]=s;e.clearBufferfi(RV,0,n,o);break;default:ye(!1,DV)}})}function OV(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return ye(!1),0}}function Rh(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{sourceX:r=0,sourceY:i=0,sourceFormat:s=6408}=t,{sourceAttachment:n=36064,target:o=null,sourceWidth:c,sourceHeight:f,sourceType:_}=t,{framebuffer:w,deleteFramebuffer:C}=BV(e);ye(w);let{gl:R,handle:N,attachments:j}=w;c=c||w.width,f=f||w.height,n===36064&&N===null&&(n=1028),ye(j[n]),_=_||j[n].type,o=unt(o,_,s,c,f),_=_||nb(o);let Y=R.bindFramebuffer(36160,N);return R.readPixels(r,i,c,f,s,_,o),R.bindFramebuffer(36160,Y||null),C&&w.delete(),o}function eE(e){let{sourceAttachment:t=36064,targetMaxHeight:r=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=Rh(e,{sourceAttachment:t}),{width:s,height:n}=e;for(;n>r;)({data:i,width:s,height:n}=wV({data:i,width:s,height:n}));bV({data:i,width:s,height:n});let o=document.createElement(\"canvas\");o.width=s,o.height=n;let c=o.getContext(\"2d\"),f=c.createImageData(s,n);return f.data.set(i),c.putImageData(f,0,0),o.toDataURL()}function rE(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{sourceX:i=0,sourceY:s=0,targetMipmaplevel:n=0,targetInternalFormat:o=6408}=r,{targetX:c,targetY:f,targetZ:_,width:w,height:C}=r,{framebuffer:R,deleteFramebuffer:N}=BV(e);ye(R);let{gl:j,handle:Y}=R,rt=typeof c<\"u\"||typeof f<\"u\"||typeof _<\"u\";c=c||0,f=f||0,_=_||0;let $=j.bindFramebuffer(36160,Y);ye(t);let K=null;if(t instanceof Ja&&(K=t,w=Number.isFinite(w)?w:K.width,C=Number.isFinite(C)?C:K.height,K.bind(0),t=K.target),!rt)j.copyTexImage2D(t,n,o,i,s,w,C,0);else switch(t){case 3553:case 34067:j.copyTexSubImage2D(t,n,c,f,i,s,w,C);break;case 35866:case 32879:qn(j).copyTexSubImage3D(t,n,c,f,_,i,s,w,C);break;default:}return K&&K.unbind(),j.bindFramebuffer(36160,$||null),N&&R.delete(),K}function BV(e){return e instanceof yi?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:FV(e),deleteFramebuffer:!0}}function unt(e,t,r,i,s){if(e)return e;t=t||5121;let n=jA(t,{clamped:!1}),o=OV(r);return new n(i*s*o)}var Pi={WEBGL2:\"WEBGL2\",VERTEX_ARRAY_OBJECT:\"VERTEX_ARRAY_OBJECT\",TIMER_QUERY:\"TIMER_QUERY\",INSTANCED_RENDERING:\"INSTANCED_RENDERING\",MULTIPLE_RENDER_TARGETS:\"MULTIPLE_RENDER_TARGETS\",ELEMENT_INDEX_UINT32:\"ELEMENT_INDEX_UINT32\",BLEND_EQUATION_MINMAX:\"BLEND_EQUATION_MINMAX\",FLOAT_BLEND:\"FLOAT_BLEND\",COLOR_ENCODING_SRGB:\"COLOR_ENCODING_SRGB\",TEXTURE_DEPTH:\"TEXTURE_DEPTH\",TEXTURE_FLOAT:\"TEXTURE_FLOAT\",TEXTURE_HALF_FLOAT:\"TEXTURE_HALF_FLOAT\",TEXTURE_FILTER_LINEAR_FLOAT:\"TEXTURE_FILTER_LINEAR_FLOAT\",TEXTURE_FILTER_LINEAR_HALF_FLOAT:\"TEXTURE_FILTER_LINEAR_HALF_FLOAT\",TEXTURE_FILTER_ANISOTROPIC:\"TEXTURE_FILTER_ANISOTROPIC\",COLOR_ATTACHMENT_RGBA32F:\"COLOR_ATTACHMENT_RGBA32F\",COLOR_ATTACHMENT_FLOAT:\"COLOR_ATTACHMENT_FLOAT\",COLOR_ATTACHMENT_HALF_FLOAT:\"COLOR_ATTACHMENT_HALF_FLOAT\",GLSL_FRAG_DATA:\"GLSL_FRAG_DATA\",GLSL_FRAG_DEPTH:\"GLSL_FRAG_DEPTH\",GLSL_DERIVATIVES:\"GLSL_DERIVATIVES\",GLSL_TEXTURE_LOD:\"GLSL_TEXTURE_LOD\"};function hnt(e){let t=new pi(e,{format:6408,type:5126,dataFormat:6408}),r=new yi(e,{id:\"test-framebuffer\",check:!1,attachments:{36064:t}}),i=r.getStatus();return t.delete(),r.delete(),i===36053}var nR={[Pi.WEBGL2]:[!1,!0],[Pi.VERTEX_ARRAY_OBJECT]:[\"OES_vertex_array_object\",!0],[Pi.TIMER_QUERY]:[\"EXT_disjoint_timer_query\",\"EXT_disjoint_timer_query_webgl2\"],[Pi.INSTANCED_RENDERING]:[\"ANGLE_instanced_arrays\",!0],[Pi.MULTIPLE_RENDER_TARGETS]:[\"WEBGL_draw_buffers\",!0],[Pi.ELEMENT_INDEX_UINT32]:[\"OES_element_index_uint\",!0],[Pi.BLEND_EQUATION_MINMAX]:[\"EXT_blend_minmax\",!0],[Pi.FLOAT_BLEND]:[\"EXT_float_blend\"],[Pi.COLOR_ENCODING_SRGB]:[\"EXT_sRGB\",!0],[Pi.TEXTURE_DEPTH]:[\"WEBGL_depth_texture\",!0],[Pi.TEXTURE_FLOAT]:[\"OES_texture_float\",!0],[Pi.TEXTURE_HALF_FLOAT]:[\"OES_texture_half_float\",!0],[Pi.TEXTURE_FILTER_LINEAR_FLOAT]:[\"OES_texture_float_linear\"],[Pi.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:[\"OES_texture_half_float_linear\"],[Pi.TEXTURE_FILTER_ANISOTROPIC]:[\"EXT_texture_filter_anisotropic\"],[Pi.COLOR_ATTACHMENT_RGBA32F]:[hnt,\"EXT_color_buffer_float\"],[Pi.COLOR_ATTACHMENT_FLOAT]:[!1,\"EXT_color_buffer_float\"],[Pi.COLOR_ATTACHMENT_HALF_FLOAT]:[\"EXT_color_buffer_half_float\"],[Pi.GLSL_FRAG_DATA]:[\"WEBGL_draw_buffers\",!0],[Pi.GLSL_FRAG_DEPTH]:[\"EXT_frag_depth\",!0],[Pi.GLSL_DERIVATIVES]:[\"OES_standard_derivatives\",!0],[Pi.GLSL_TEXTURE_LOD]:[\"EXT_shader_texture_lod\",!0]};var fnt=2;function H0(e,t){return Dh(e,t)}function Dh(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>zV(e,r))}function iE(e){e.luma=e.luma||{},e.luma.caps=e.luma.caps||{};for(let t in nR)e.luma.caps[t]===void 0&&(e.luma.caps[t]=zV(e,t));return e.luma.caps}function zV(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},e.luma.caps[t]===void 0&&(e.luma.caps[t]=dnt(e,t)),e.luma.caps[t]||je.log(fnt,\"Feature: \".concat(t,\" not supported\"))(),e.luma.caps[t]}function dnt(e,t){let r=nR[t];ye(r,t);let i,s=hr(e)&&r[1]||r[0];if(typeof s==\"function\")i=s(e);else if(Array.isArray(s)){i=!0;for(let n of s)i=i&&!!e.getExtension(n)}else typeof s==\"string\"?i=!!e.getExtension(s):typeof s==\"boolean\"?i=s:ye(!1);return i}var NV=\"Multiple render targets not supported\",yi=class e extends Ys{get[Symbol.toStringTag](){return\"Framebuffer\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{colorBufferFloat:i,colorBufferHalfFloat:s}=r,n=!0;return i&&(n=!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"WEBGL_color_buffer_float\")||t.getExtension(\"OES_texture_float\"))),s&&(n=n&&!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"EXT_color_buffer_half_float\"))),n}static getDefaultFramebuffer(t){return t.luma=t.luma||{},t.luma.defaultFramebuffer=t.luma.defaultFramebuffer||new e(t,{id:\"default-framebuffer\",handle:null,attachments:{}}),t.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){let t=qn(this.gl);return t.getParameter(t.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){let t=qn(this.gl);return t.getParameter(t.MAX_DRAW_BUFFERS)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(r),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize(t){let{width:r=1,height:i=1,attachments:s=null,color:n=!0,depth:o=!0,stencil:c=!1,check:f=!0,readBuffer:_=void 0,drawBuffers:w=void 0}=t;if(ye(r>=0&&i>=0,\"Width and height need to be integers\"),this.width=r,this.height=i,s)for(let C in s){let R=s[C];(Array.isArray(R)?R[0]:R).resize({width:r,height:i})}else s=this._createDefaultAttachments(n,o,c,r,i);this.update({clearAttachments:!0,attachments:s,readBuffer:_,drawBuffers:w}),s&&f&&this.checkStatus()}delete(){for(let t of this.ownResources)t.delete();return super.delete(),this}update(t){let{attachments:r={},readBuffer:i,drawBuffers:s,clearAttachments:n=!1,resizeAttachments:o=!0}=t;this.attach(r,{clearAttachments:n,resizeAttachments:o});let{gl:c}=this,f=c.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),s&&this._setDrawBuffers(s),c.bindFramebuffer(36160,f||null),this}resize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:r,height:i}=t;if(this.handle===null)return ye(r===void 0&&i===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;r===void 0&&(r=this.gl.drawingBufferWidth),i===void 0&&(i=this.gl.drawingBufferHeight),r!==this.width&&i!==this.height&&je.log(2,\"Resizing framebuffer \".concat(this.id,\" to \").concat(r,\"x\").concat(i))();for(let s in this.attachments)this.attachments[s].resize({width:r,height:i});return this.width=r,this.height=i,this}attach(t){let{clearAttachments:r=!1,resizeAttachments:i=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s={};r&&Object.keys(this.attachments).forEach(o=>{s[o]=null}),Object.assign(s,t);let n=this.gl.bindFramebuffer(36160,this.handle);for(let o in s){ye(o!==void 0,\"Misspelled framebuffer binding point?\");let c=Number(o),f=s[c],_=f;if(!_)this._unattach(c);else if(_ instanceof tl)this._attachRenderbuffer({attachment:c,renderbuffer:_});else if(Array.isArray(f)){let[w,C=0,R=0]=f;_=w,this._attachTexture({attachment:c,texture:w,layer:C,level:R})}else this._attachTexture({attachment:c,texture:_,layer:0,level:0});i&&_&&_.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,n||null),Object.assign(this.attachments,t),Object.keys(this.attachments).filter(o=>!this.attachments[o]).forEach(o=>{delete this.attachments[o]})}checkStatus(){let{gl:t}=this,r=this.getStatus();if(r!==36053)throw new Error(Ant(r));return this}getStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);return t.bindFramebuffer(36160,r||null),i}clear(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:r,depth:i,stencil:s,drawBuffers:n=[]}=t,o=this.gl.bindFramebuffer(36160,this.handle);return(r||i||s)&&Gf(this.gl,{color:r,depth:i,stencil:s}),n.forEach((c,f)=>{iR(this.gl,{drawBuffer:f,value:c})}),this.gl.bindFramebuffer(36160,o||null),this}readPixels(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)\")(),null}readPixelsToBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)\")(),null}copyToDataUrl(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)\")(),null}copyToImage(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)\")(),null}copyToTexture(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}blit(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)\")(),null}invalidate(t){let{attachments:r=[],x:i=0,y:s=0,width:n,height:o}=t,c=qn(this.gl),f=c.bindFramebuffer(36008,this.handle);return i===0&&s===0&&n===void 0&&o===void 0?c.invalidateFramebuffer(36008,r):c.invalidateFramebuffer(36008,r,i,s,n,o),c.bindFramebuffer(36008,f),this}getAttachmentParameter(t,r,i){let s=this._getAttachmentParameterFallback(r);return s===null&&(this.gl.bindFramebuffer(36160,this.handle),s=this.gl.getFramebufferAttachmentParameter(36160,t,r),this.gl.bindFramebuffer(36160,null)),i&&s>1e3&&(s=ku(this.gl,s)),s}getAttachmentParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],s={};for(let n of i){let o=r?ku(this.gl,n):n;s[o]=this.getAttachmentParameter(t,n,r)}return s}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,r=Object.keys(this.attachments),i={};for(let s of r){let n=Number(s),o=t?ku(this.gl,n):n;i[o]=this.getAttachmentParameters(n,t)}return i}show(){return typeof window<\"u\"&&window.open(eE(this),\"luma-debug-texture\"),this}log(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";if(t>je.level||typeof window>\"u\")return this;r=r||\"Framebuffer \".concat(this.id);let i=eE(this,{targetMaxHeight:100});return je.image({logLevel:t,message:r,image:i},r)(),this}bind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,this.handle),this}unbind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,null),this}_createDefaultAttachments(t,r,i,s,n){let o=null;return t&&(o=o||{},o[36064]=new pi(this.gl,{id:\"\".concat(this.id,\"-color0\"),pixels:null,format:6408,type:5121,width:s,height:n,mipmaps:!1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.ownResources.push(o[36064])),r&&i?(o=o||{},o[33306]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth-stencil\"),format:35056,width:s,height:111}),this.ownResources.push(o[33306])):r?(o=o||{},o[36096]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth\"),format:33189,width:s,height:n}),this.ownResources.push(o[36096])):i&&ye(!1),o}_unattach(t){let r=this.attachments[t];r&&(r instanceof tl?this.gl.framebufferRenderbuffer(36160,t,36161,null):this.gl.framebufferTexture2D(36160,t,3553,null,0),delete this.attachments[t])}_attachRenderbuffer(t){let{attachment:r=36064,renderbuffer:i}=t,{gl:s}=this;s.framebufferRenderbuffer(36160,r,36161,i.handle),this.attachments[r]=i}_attachTexture(t){let{attachment:r=36064,texture:i,layer:s,level:n}=t,{gl:o}=this;switch(o.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:qn(o).framebufferTextureLayer(36160,r,i.target,n,s);break;case 34067:let f=pnt(s);o.framebufferTexture2D(36160,r,f,i.handle,n);break;case 3553:o.framebufferTexture2D(36160,r,3553,i.handle,n);break;default:ye(!1,\"Illegal texture type\")}o.bindTexture(i.target,null),this.attachments[r]=i}_setReadBuffer(t){let r=V4(this.gl);r?r.readBuffer(t):ye(t===36064||t===1029,NV),this.readBuffer=t}_setDrawBuffers(t){let{gl:r}=this,i=qn(r);if(i)i.drawBuffers(t);else{let s=r.getExtension(\"WEBGL_draw_buffers\");s?s.drawBuffersWEBGL(t):ye(t.length===1&&(t[0]===36064||t[0]===1029),NV)}this.drawBuffers=t}_getAttachmentParameterFallback(t){let r=iE(this.gl);switch(t){case 36052:return r.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return r.WEBGL2?null:8;case 33297:return r.WEBGL2?null:5125;case 33296:return!r.WEBGL2&&!r.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle(t){return this.gl.bindFramebuffer(36160,t)}};function pnt(e){return e<34069?e+34069:e}function Ant(e){return(yi.STATUS||{})[e]||\"Framebuffer error \".concat(e)}var mnt=[36049,36048,33296,33298,33299,33300,33301,33302,33303];yi.ATTACHMENT_PARAMETERS=mnt;function nE(e,t){ye(e instanceof pi||e instanceof G0||e instanceof my);let r=e.constructor,{gl:i,width:s,height:n,format:o,type:c,dataFormat:f,border:_,mipmaps:w}=e,C=Object.assign({width:s,height:n,format:o,type:c,dataFormat:f,border:_,mipmaps:w},t);return new r(i,C)}function FV(e,t){let{gl:r,width:i,height:s,id:n}=e;return new yi(r,Object.assign({},t,{id:\"framebuffer-for-\".concat(n),width:i,height:s,attachments:{36064:e}}))}function GA(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unnamed\",r=/#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/,i=e.match(r);return i?i[1]:t}function sR(e){switch(e){case 35632:return\"fragment\";case 35633:return\"vertex\";default:return\"unknown type\"}}function oR(e,t,r,i){let s=e.split(/\\r?\\n/),n={},o={},c=i||GA(t)||\"(unnamed)\",f=\"\".concat(sR(r),\" shader \").concat(c);for(let w=0;w1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\": \",i=e.split(/\\r?\\n/),s=String(i.length+t-1).length;return i.map((n,o)=>{let c=String(o+t),f=c.length;return VV(c,s-f)+r+n})}function VV(e,t){let r=\"\";for(let i=0;i=2&&r[0]===\"#version\"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}return t}var _nt=\"Shader: GLSL source code must be a JavaScript string\",sE=class e extends Ys{get[Symbol.toStringTag](){return\"Shader\"}static getTypeName(t){switch(t){case 35633:return\"vertex-shader\";case 35632:return\"fragment-shader\";default:return ye(!1),\"unknown\"}}constructor(t,r){Kd(t),ye(typeof r.source==\"string\",_nt);let i=GA(r.source,null)||r.id||Jo(\"unnamed \".concat(e.getTypeName(r.shaderType)));super(t,{id:i}),this.shaderType=r.shaderType,this.source=r.source,this.initialize(r)}initialize(t){let{source:r}=t,i=GA(r,null);i&&(this.id=Jo(i)),this._compile(r)}getParameter(t){return this.gl.getShaderParameter(this.handle,t)}toString(){return\"\".concat(e.getTypeName(this.shaderType),\":\").concat(this.id)}getName(){return GA(this.source)||\"unnamed-shader\"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){let t=this.gl.getExtension(\"WEBGL_debug_shaders\");return t?t.getTranslatedShaderSource(this.handle):\"No translated source available. WEBGL_debug_shaders not implemented\"}_compile(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if(t.startsWith(\"#version \")||(t=`#version 100\n`.concat(t)),this.source=t,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){let i=this.gl.getShaderInfoLog(this.handle),{shaderName:s,errors:n,warnings:o}=oR(i,this.source,this.shaderType,this.id);throw je.error(\"GLSL compilation errors in \".concat(s,`\n`).concat(n))(),je.warn(\"GLSL compilation warnings in \".concat(s,`\n`).concat(o))(),new Error(\"GLSL compilation errors in \".concat(s))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}},q0=class extends sE{get[Symbol.toStringTag](){return\"VertexShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}},Z0=class extends sE{get[Symbol.toStringTag](){return\"FragmentShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}};var ynt={5126:Zn.bind(null,\"uniform1fv\",Zc,1,el),35664:Zn.bind(null,\"uniform2fv\",Zc,2,el),35665:Zn.bind(null,\"uniform3fv\",Zc,3,el),35666:Zn.bind(null,\"uniform4fv\",Zc,4,el),5124:Zn.bind(null,\"uniform1iv\",WA,1,el),35667:Zn.bind(null,\"uniform2iv\",WA,2,el),35668:Zn.bind(null,\"uniform3iv\",WA,3,el),35669:Zn.bind(null,\"uniform4iv\",WA,4,el),35670:Zn.bind(null,\"uniform1iv\",WA,1,el),35671:Zn.bind(null,\"uniform2iv\",WA,2,el),35672:Zn.bind(null,\"uniform3iv\",WA,3,el),35673:Zn.bind(null,\"uniform4iv\",WA,4,el),35674:Zn.bind(null,\"uniformMatrix2fv\",Zc,4,Jd),35675:Zn.bind(null,\"uniformMatrix3fv\",Zc,9,Jd),35676:Zn.bind(null,\"uniformMatrix4fv\",Zc,16,Jd),35678:_a,35680:_a,5125:Zn.bind(null,\"uniform1uiv\",oE,1,el),36294:Zn.bind(null,\"uniform2uiv\",oE,2,el),36295:Zn.bind(null,\"uniform3uiv\",oE,3,el),36296:Zn.bind(null,\"uniform4uiv\",oE,4,el),35685:Zn.bind(null,\"uniformMatrix2x3fv\",Zc,6,Jd),35686:Zn.bind(null,\"uniformMatrix2x4fv\",Zc,8,Jd),35687:Zn.bind(null,\"uniformMatrix3x2fv\",Zc,6,Jd),35688:Zn.bind(null,\"uniformMatrix3x4fv\",Zc,12,Jd),35689:Zn.bind(null,\"uniformMatrix4x2fv\",Zc,8,Jd),35690:Zn.bind(null,\"uniformMatrix4x3fv\",Zc,12,Jd),35678:_a,35680:_a,35679:_a,35682:_a,36289:_a,36292:_a,36293:_a,36298:_a,36299:_a,36300:_a,36303:_a,36306:_a,36307:_a,36308:_a,36311:_a},vnt={},xnt={},bnt={},jV=[0];function aR(e,t,r,i){t===1&&typeof e==\"boolean\"&&(e=e?1:0),Number.isFinite(e)&&(jV[0]=e,e=jV);let s=e.length;if(s%t&&je.warn(\"Uniform size should be multiples of \".concat(t),e)(),e instanceof r)return e;let n=i[s];n||(n=new r(s),i[s]=n);for(let o=0;o{let s=e!==i;return s&&(t.uniform1i(r,i),e=i),s}}function Zn(e,t,r,i){let s=null,n=null;return(o,c,f)=>{let _=t(f,r),w=_.length,C=!1;if(s===null)s=new Float32Array(w),n=w,C=!0;else{ye(n===w,\"Uniform length cannot change.\");for(let R=0;R=0&&this._addAttribute(f,n,o,c)}this.attributeInfos.sort((s,n)=>s.location-n.location)}_readVaryingsFromProgram(t){let{gl:r}=t;if(!hr(r))return;let i=r.getProgramParameter(t.handle,35971);for(let s=0;ss.location-n.location)}_addAttribute(t,r,i,s){let{type:n,components:o}=uR(i),c={type:n,size:s*o};this._inferProperties(t,r,c);let f={location:t,name:r,accessor:new Tl(c)};this.attributeInfos.push(f),this.attributeInfosByLocation[t]=f,this.attributeInfosByName[f.name]=f}_inferProperties(t,r,i){/instance/i.test(r)&&(i.divisor=1)}_addVarying(t,r,i,s){let{type:n,components:o}=uR(i),c=new Tl({type:n,size:s*o}),f={location:t,name:r,accessor:c};this.varyingInfos.push(f),this.varyingInfosByName[f.name]=f}};var YV=4,est=35981,rst=[\"setVertexArray\",\"setAttributes\",\"setBuffers\",\"unsetBuffers\",\"use\",\"getUniformCount\",\"getUniformInfo\",\"getUniformLocation\",\"getUniformValue\",\"getVarying\",\"getFragDataLocation\",\"getAttachedShaders\",\"getAttributeCount\",\"getAttributeLocation\",\"getAttributeInfo\"],tp=class extends Ys{get[Symbol.toStringTag](){return\"Program\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Program\",\"v6.0\",rst),this._isCached=!1,this.initialize(r),Object.seal(this),this._setId(r.id)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{hash:r,vs:i,fs:s,varyings:n,bufferMode:o=est}=t;return this.hash=r||\"\",this.vs=typeof i==\"string\"?new q0(this.gl,{id:\"\".concat(t.id,\"-vs\"),source:i}):i,this.fs=typeof s==\"string\"?new Z0(this.gl,{id:\"\".concat(t.id,\"-fs\"),source:s}):s,ye(this.vs instanceof q0),ye(this.fs instanceof Z0),this.uniforms={},this._textureUniforms={},n&&n.length>0&&(qn(this.gl),this.varyings=n,this.gl2.transformFeedbackVaryings(this.handle,n,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new lb(this),this.setProps(t)}delete(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete(t)}setProps(t){return\"uniforms\"in t&&this.setUniforms(t.uniforms),this}draw(t){let{logPriority:r,drawMode:i=4,vertexCount:s,offset:n=0,start:o,end:c,isIndexed:f=!1,indexType:_=5123,instanceCount:w=0,isInstanced:C=w>0,vertexArray:R=null,transformFeedback:N,framebuffer:j,parameters:Y={},uniforms:rt,samplers:$}=t;if((rt||$)&&(je.deprecated(\"Program.draw({uniforms})\",\"Program.setUniforms(uniforms)\")(),this.setUniforms(rt||{})),je.priority>=r){let K=j?j.id:\"default\",tt=\"mode=\".concat(ku(this.gl,i),\" verts=\").concat(s,\" \")+\"instances=\".concat(w,\" indexType=\").concat(ku(this.gl,_),\" \")+\"isInstanced=\".concat(C,\" isIndexed=\").concat(f,\" \")+\"Framebuffer=\".concat(K);je.log(r,tt)()}return ye(R),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||s===0||C&&w===0?!1:(R.bindForDraw(s,w,()=>{if(j!==void 0&&(Y=Object.assign({},Y,{framebuffer:j})),N){let K=ZV(i);N.begin(K)}this._bindTextures(),bn(this.gl,Y,()=>{f&&C?this.gl2.drawElementsInstanced(i,s,_,n,w):f&&hr(this.gl)&&!isNaN(o)&&!isNaN(c)?this.gl2.drawRangeElements(i,o,c,s,_,n):f?this.gl.drawElements(i,s,_,n):C?this.gl2.drawArraysInstanced(i,n,s,w):this.gl.drawArrays(i,n,s)}),N&&N.end()}),!0)}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};je.priority>=2&&WV(t,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(let r in t){let i=t[r],s=this._uniformSetters[r];if(s){let n=i,o=!1;if(n instanceof yi&&(n=n.texture),n instanceof Ja)if(o=this.uniforms[r]!==i,o){s.textureIndex===void 0&&(s.textureIndex=this._textureIndexCounter++);let c=n,{textureIndex:f}=s;c.bind(f),n=f,this._textureUniforms[r]=c}else n=s.textureIndex;else this._textureUniforms[r]&&delete this._textureUniforms[r];(s(n)||o)&&HV(this.uniforms,r,i)}}return this}_areTexturesRenderable(){let t=!0;for(let r in this._textureUniforms){let i=this._textureUniforms[r];i.update(),t=t&&i.loaded}return t}_bindTextures(){for(let t in this._textureUniforms){let r=this._uniformSetters[t].textureIndex;this._textureUniforms[t].bind(r)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle(t){let r=this.gl.getAttachedShaders(t),i={};for(let s of r)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:i.vs=new q0({handle:s});break;case 35632:i.fs=new Z0({handle:s});break;default:}return i}_getParameter(t){return this.gl.getProgramParameter(this.handle,t)}_setId(t){if(!t){let r=this._getName();this.id=Jo(r)}}_getName(){let t=this.vs.getName()||this.fs.getName();return t=t.replace(/shader/i,\"\"),t=t?\"\".concat(t,\"-program\"):\"program\",t}_compileAndLink(){let{gl:t}=this;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),je.time(YV,\"linkProgram for \".concat(this._getName()))(),t.linkProgram(this.handle),je.timeEnd(YV,\"linkProgram for \".concat(this._getName()))(),t.debug||je.level>0){if(!t.getProgramParameter(this.handle,35714))throw new Error(\"Error linking: \".concat(t.getProgramInfoLog(this.handle)));if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(\"Error validating: \".concat(t.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){let{gl:t}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let r=0;r1)for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:[],i=hr(t),s=Dh(t,Pi.TIMER_QUERY),n=i||s;for(let o of r)switch(o){case\"queries\":n=n&&i;break;case\"timers\":n=n&&s;break;default:ye(!1)}return n}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(sst)}beginOcclusionQuery(){let{conservative:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin(t?cst:lst)}beginTransformFeedbackQuery(){return this.begin(ast)}begin(t){return this._queryPending?this:(this.target=t,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.gl2.getQueryParameter(this.handle,nst);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.gl2.getParameter(ost)}getResult(){return this.gl2.getQueryParameter(this.handle,ist)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let n=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s(\"Timed out\"),this._pollingPromise=null):requestAnimationFrame(n)};requestAnimationFrame(n)}),this._pollingPromise}_createHandle(){return e.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}};var ep=class extends Ys{get[Symbol.toStringTag](){return\"TransformFeedback\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(t),super(t,r),this.initialize(r),this.stubRemovedMethods(\"TransformFeedback\",\"v6.0\",[\"pause\",\"resume\"]),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,jf(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps(t),this}setProps(t){\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"bindOnUse\"in t&&(t=t.bindOnUse),\"buffers\"in t&&this.setBuffers(t.buffers)}setBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])}),this}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteSize:n,byteOffset:o}=this._getBufferParams(r);return i<0?(this.unused[t]=s,je.warn(\"\".concat(this.id,\" unused varying buffer \").concat(t))(),this):(this.buffers[i]=r,this.bindOnUse||this._bindBuffer(i,s,o,n),this)}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(t),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams(t){let r,i,s;return t instanceof Fr?s=t:(s=t.buffer,i=t.byteSize,r=t.byteOffset),(r!==void 0||i!==void 0)&&(r=r||0,i=i||s.byteLength-r),{buffer:s,byteOffset:r,byteSize:i}}_getVaryingInfo(t){return this.configuration&&this.configuration.getVaryingInfo(t)}_getVaryingIndex(t){if(this.configuration)return this.configuration.getVaryingInfo(t).location;let r=Number(t);return Number.isFinite(r)?r:-1}_bindBuffers(){if(this.bindOnUse)for(let t in this.buffers){let{buffer:r,byteSize:i,byteOffset:s}=this._getBufferParams(this.buffers[t]);this._bindBuffer(t,r,s,i)}}_unbindBuffers(){if(this.bindOnUse)for(let t in this.buffers)this._bindBuffer(t,null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0,n=r&&r.handle;return!n||s===void 0?this.gl.bindBufferBase(35982,t,n):this.gl.bindBufferRange(35982,t,n,i,s),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle(t){this.gl.bindTransformFeedback(36386,this.handle)}};var uE=null;function ust(e){return(!uE||uE.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?hr(t)||cy()===\"Chrome\":!0}static getDefaultArray(t){return t.luma=t.luma||{},t.luma.defaultVertexArray||(t.luma.defaultVertexArray=new e(t,{handle:null,isDefaultArray:!0})),t.luma.defaultVertexArray}static getMaxAttributes(t){return e.MAX_ATTRIBUTES=e.MAX_ATTRIBUTES||t.getParameter(34921),e.MAX_ATTRIBUTES}static setConstant(t,r,i){switch(i.constructor){case Float32Array:e._setConstantFloatArray(t,r,i);break;case Int32Array:e._setConstantIntArray(t,r,i);break;case Uint32Array:e._setConstantUintArray(t,r,i);break;default:ye(!1)}}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;super(t,Object.assign({},r,{id:i})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=r.isDefaultArray||!1,this.gl2=t,this.initialize(r),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return e.getMaxAttributes(this.gl)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps(t)}setProps(t){return this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ye(!t||t.target===34963,hst),this.bind(()=>{this.gl.bindBuffer(34963,t?t.handle:null)}),this}setBuffer(t,r,i){if(r.target===34963)return this.setElementBuffer(r,i);let{size:s,type:n,stride:o,offset:c,normalized:f,integer:_,divisor:w}=i,{gl:C,gl2:R}=this;return t=Number(t),this.bind(()=>{C.bindBuffer(34962,r.handle),_?(ye(hr(C)),R.vertexAttribIPointer(t,s,n,o,c)):C.vertexAttribPointer(t,s,n,f,o,c),C.enableVertexAttribArray(t),R.vertexAttribDivisor(t,w||0)}),this}enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!r&&t===0&&!e.isSupported(this.gl,{constantAttributeZero:!0})||(t=Number(t),this.bind(()=>r?this.gl.enableVertexAttribArray(t):this.gl.disableVertexAttribArray(t))),this}getConstantBuffer(t,r){let i=this._normalizeConstantArrayValue(r),s=i.byteLength*t,n=i.length*t,o=!this.buffer;if(this.buffer=this.buffer||new Fr(this.gl,s),o=o||this.buffer.reallocate(s),o=o||!this._compareConstantArrayValues(i,this.bufferValue),o){let c=QV(r.constructor,n);$V({target:c,source:i,start:0,count:n}),this.buffer.subData(c),this.bufferValue=r}return this.buffer}_normalizeConstantArrayValue(t){return Array.isArray(t)?new Float32Array(t):t}_compareConstantArrayValues(t,r){if(!t||!r||t.length!==r.length||t.constructor!==r.constructor)return!1;for(let i=0;i{switch(t){case 34373:return this.gl.getVertexAttribOffset(i,t);default:return this.gl.getVertexAttrib(i,t)}})}};var fst=\"VertexArray: attributes must be Buffers or constants (i.e. typed array)\",dst=/^(.+)__LOCATION_([0-9]+)$/,pst=[\"setBuffers\",\"setGeneric\",\"clearBindings\",\"setLocations\",\"setGenericValues\",\"setDivisor\",\"enable\",\"disable\"],_y=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;this.id=i,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new Q0(t),XM(this,\"VertexArray\",\"v6.0\",pst),this.initialize(r),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(t)}reset(){this.elements=null,this.elementsAccessor=null;let{MAX_ATTRIBUTES:t}=this.vertexArrayObject;return this.values=new Array(t).fill(null),this.accessors=new Array(t).fill(null),this.unused={},this.drawParams=null,this}setProps(t){return\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"attributes\"in t&&this.setAttributes(t.attributes),\"elements\"in t&&this.setElementBuffer(t.elements),\"bindOnUse\"in t&&(t=t.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes(t){return Object.assign(this.attributes,t),this.vertexArrayObject.bind(()=>{for(let r in t){let i=t[r];this._setAttribute(r,i)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=t,this.elementsAccessor=r,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(t,r),this}setBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(r.target===34963)return this.setElementBuffer(r,i);let{location:s,accessor:n}=this._resolveLocationAndAccessor(t,r,r.accessor,i);return s>=0&&(this.values[s]=r,this.accessors[s]=n,this.clearDrawParams(),this.vertexArrayObject.setBuffer(s,r,n)),this}setConstant(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{location:s,accessor:n}=this._resolveLocationAndAccessor(t,r,Object.assign({size:r.length},i));return s>=0&&(r=this.vertexArrayObject._normalizeConstantArrayValue(r),this.values[s]=r,this.accessors[s]=n,this.clearDrawParams(),this.vertexArrayObject.enable(s,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new Fr(this.gl,{accessor:{size:4}});for(let t=0;t{this.elements&&this.setElementBuffer(this.elements);for(let t=0;t{this._setConstantAttributes(t,r),s=i()}),s}_resolveLocationAndAccessor(t,r,i,s){let n={location:-1,accessor:null},{location:o,name:c}=this._getAttributeIndex(t);if(!Number.isFinite(o)||o<0)return this.unused[t]=r,je.once(3,()=>\"unused value \".concat(t,\" in \").concat(this.id))(),n;let f=this._getAttributeInfo(c||o);if(!f)return n;let _=this.accessors[o]||{},w=Tl.resolve(f.accessor,_,i,s),{size:C,type:R}=w;return ye(Number.isFinite(C)&&Number.isFinite(R)),{location:o,accessor:w}}_getAttributeInfo(t){return this.configuration&&this.configuration.getAttributeInfo(t)}_getAttributeIndex(t){let r=Number(t);if(Number.isFinite(r))return{location:r};let i=dst.exec(t),s=i?i[1]:t,n=i?Number(i[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(s)+n,name:s}:{location:-1}}_setAttribute(t,r){if(r instanceof Fr)this.setBuffer(t,r);else if(Array.isArray(r)&&r.length&&r[0]instanceof Fr){let i=r[0],s=r[1];this.setBuffer(t,i,s)}else if(ArrayBuffer.isView(r)||Array.isArray(r)){let i=r;this.setConstant(t,i)}else if(r.buffer instanceof Fr){let i=r;this.setBuffer(t,i.buffer,i)}else throw new Error(fst)}_setConstantAttributes(t,r){let i=Math.max(t|0,r|0),s=this.values[0];ArrayBuffer.isView(s)&&this._setConstantAttributeZero(s,i);for(let n=1;n0;if(t.isInstanced=t.isInstanced||o,i instanceof Fr){let c=i;if(o){let f=c.getVertexCount(s);t.instanceCount=Math.min(t.instanceCount,f)}else{let f=c.getVertexCount(s);t.vertexCount=Math.min(t.vertexCount,f)}}}setElements(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return je.deprecated(\"setElements\",\"setElementBuffer\")(),this.setElementBuffer(t,r)}};function Ast(e,t){let{maxElts:r=16,size:i=1}=t,s=\"[\";for(let o=0;o0&&(s+=\",\".concat(o%i===0?\" \":\"\")),s+=$0(e[o],t);let n=e.length>r?\"...\":\"]\";return\"\".concat(s).concat(n)}function $0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=1e-16,{isInteger:i=!1}=t;if(Array.isArray(e)||ArrayBuffer.isView(e))return Ast(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)100&&Math.abs(e)<1e4)return e.toFixed(0);let s=e.toPrecision(2);return s.indexOf(\".0\")===s.length-2?s.slice(0,-1):s}function hE(e){let{header:t=\"Uniforms\",program:r,uniforms:i,undefinedOnly:s=!1}=e;ye(r);let n=\".*_.*\",o=\".*Matrix\",c=r._uniformSetters,f={},_=Object.keys(c).sort(),w=0;for(let N of _)!N.match(n)&&!N.match(o)&&hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;for(let N of _)N.match(o)&&hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;for(let N of _)f[N]||hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;let C=0,R={};if(!s)for(let N in i){let j=i[N];f[N]||(C++,R[N]={Type:\"NOT USED: \".concat(j),[t]:$0(j)})}return{table:f,count:w,unusedTable:R,unusedCount:C}}function hR(e){let{table:t,header:r,uniforms:i,uniformName:s,undefinedOnly:n}=e,o=i[s],c=mst(o);return!n||!c?(t[s]={[r]:c?$0(o):\"N/A\",\"Uniform Type\":c?o:\"NOT PROVIDED\"},!0):!1}function mst(e){return e!=null}function fR(e){let{vertexArray:t,header:r=\"Attributes\"}=e;if(!t.configuration)return{};let i={};t.elements&&(i.ELEMENT_ARRAY_BUFFER=XV(t,t.elements,null,r));let s=t.values;for(let n in s){let o=t._getAttributeInfo(n);if(o){let c=\"\".concat(n,\": \").concat(o.name),f=t.accessors[o.location];f&&(c=\"\".concat(n,\": \").concat(gst(o.name,f))),i[c]=XV(t,s[n],f,r)}}return i}function XV(e,t,r,i){let{gl:s}=e;if(!t)return{[i]:\"null\",\"Format \":\"N/A\"};let n=\"NOT PROVIDED\",o=1,c=0,f=0,_,w,C;if(r&&(n=r.type,o=r.size,n=String(n).replace(\"Array\",\"\"),_=n.indexOf(\"nt\")!==-1),t instanceof Fr){let R=t,{data:N,changed:j}=R.getDebugData();w=j?\"*\":\"\",C=N,f=R.byteLength,c=f/N.BYTES_PER_ELEMENT/o;let Y;if(r){let rt=r.divisor>0;Y=\"\".concat(rt?\"I \":\"P \",\" \").concat(c,\" (x\").concat(o,\"=\").concat(f,\" bytes \").concat(ku(s,n),\")\")}else _=!0,Y=\"\".concat(f,\" bytes\");return{[i]:\"\".concat(w).concat($0(C,{size:o,isInteger:_})),\"Format \":Y}}return C=t,o=t.length,n=String(t.constructor.name).replace(\"Array\",\"\"),_=n.indexOf(\"nt\")!==-1,{[i]:\"\".concat($0(C,{size:o,isInteger:_}),\" (constant)\"),\"Format \":\"\".concat(o,\"x\").concat(n,\" (constant)\")}}function gst(e,t){let{type:r,size:i}=t,s=cE(r,i);return s?\"\".concat(e,\" (\").concat(s.name,\")\"):e}function dR(e){let t={},r=\"Accessors for \".concat(e.id);for(let i of e.attributeInfos)if(i){let s=KV(i);t[\"in \".concat(s)]={[r]:JSON.stringify(i.accessor)}}for(let i of e.varyingInfos)if(i){let s=KV(i);t[\"out \".concat(s)]={[r]:JSON.stringify(i.accessor)}}return t}function KV(e){let{type:t,size:r}=e.accessor,i=cE(t,r);return i?\"\".concat(i.name,\" \").concat(e.name):e.name}var JV=wo()&&typeof document<\"u\",yst=0,X0=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{onCreateContext:r=rt=>py(rt),onAddHTML:i=null,onInitialize:s=()=>{},onRender:n=()=>{},onFinalize:o=()=>{},onError:c,gl:f=null,glOptions:_={},debug:w=!1,createFramebuffer:C=!1,autoResizeViewport:R=!0,autoResizeDrawingBuffer:N=!0,stats:j=Lu.get(\"animation-loop-\".concat(yst++))}=t,{useDevicePixels:Y=!0}=t;\"useDevicePixelRatio\"in t&&(je.deprecated(\"useDevicePixelRatio\",\"useDevicePixels\")(),Y=t.useDevicePixelRatio),this.props={onCreateContext:r,onAddHTML:i,onInitialize:s,onRender:n,onFinalize:o,onError:c,gl:f,glOptions:_,debug:w,createFramebuffer:C},this.gl=f,this.needsRedraw=null,this.timeline=null,this.stats=j,this.cpuTime=this.stats.get(\"CPU Time\"),this.gpuTime=this.stats.get(\"GPU Time\"),this.frameRate=this.stats.get(\"Frame Rate\"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:R,autoResizeDrawingBuffer:N,useDevicePixels:Y}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw(t){return ye(typeof t==\"string\"),this.needsRedraw=this.needsRedraw||t,this}setProps(t){return\"autoResizeViewport\"in t&&(this.autoResizeViewport=t.autoResizeViewport),\"autoResizeDrawingBuffer\"in t&&(this.autoResizeDrawingBuffer=t.autoResizeDrawingBuffer),\"useDevicePixels\"in t&&(this.useDevicePixels=t.useDevicePixels),this}start(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;let r=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext(t),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=Y0.isSupported(this.gl,[\"timers\"])?new Y0(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(i=>{this._running&&(this._addCallbackData(i||{}),i!==!1&&this._startLoop())});return this.props.onError&&r.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline(t){return this.timeline=t,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw(\"waitForRender\"),this._nextFramePromise||(this._nextFramePromise=new Promise(t=>{this._resolveNextFrame=t})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw(\"toDataURL\"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,i=document.getElementById(t);return i?Number(i.value):r}setViewParameters(){return je.removed(\"AnimationLoop.setViewParameters\",\"AnimationLoop.setProps\")(),this}_startLoop(){let t=()=>{this._running&&(this.redraw(),this._animationFrameId=this._requestAnimationFrame(t))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame(t)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=JV?new Promise((t,r)=>{if(JV&&document.readyState===\"complete\"){t(document);return}window.addEventListener(\"load\",()=>{t(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay(t){this.display&&(this.display.delete(),this.display.animationLoop=null),t&&(t.animationLoop=this),this.display=t}_cancelAnimationFrame(t){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(t):K4(t)}_requestAnimationFrame(t){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(t):X4(t)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){let{width:t,height:r,aspect:i}=this._getSizeAndAspect();(t!==this.animationProps.width||r!==this.animationProps.height)&&this.setNeedsRedraw(\"drawing buffer resized\"),i!==this.animationProps.aspect&&this.setNeedsRedraw(\"drawing buffer aspect changed\"),this.animationProps.width=t,this.animationProps.height=r,this.animationProps.aspect=i,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData(t){typeof t==\"object\"&&t!==null&&(this.animationProps=Object.assign({},this.animationProps,t))}_createWebGLContext(t){if(this.offScreen=t.canvas&&typeof OffscreenCanvas<\"u\"&&t.canvas instanceof OffscreenCanvas,t=Object.assign({},t,this.props.glOptions),this.gl=this.props.gl?V0(this.props.gl,t):this.onCreateContext(t),!Xd(this.gl))throw new Error(\"AnimationLoop.onCreateContext - illegal context returned\");QM(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){let t=document.createElement(\"div\");document.body.appendChild(t),t.style.position=\"relative\";let r=document.createElement(\"div\");r.style.position=\"absolute\",r.style.left=\"10px\",r.style.bottom=\"10px\",r.style.width=\"300px\",r.style.background=\"white\",t.appendChild(this.gl.canvas),t.appendChild(r);let i=this.props.onAddHTML(r);i&&(r.innerHTML=i)}}_getSizeAndAspect(){let t=this.gl.drawingBufferWidth,r=this.gl.drawingBufferHeight,i=1,{canvas:s}=this.gl;return s&&s.clientHeight?i=s.clientWidth/s.clientHeight:t>0&&r>0&&(i=t/r),{width:t,height:r,aspect:i}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&Q4(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new yi(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get(\"GPU Time\").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){let{canvas:t}=this.gl;t&&(t.addEventListener(\"mousemove\",this._onMousemove),t.addEventListener(\"mouseleave\",this._onMouseleave))}_onMousemove(t){this.animationProps._mousePosition=[t.offsetX,t.offsetY]}_onMouseleave(t){this.animationProps._mousePosition=null}};var K0=\"vs\",cb=\"fs\";function Qs(e,t){if(!e)throw new Error(t||\"shadertools: assertion failed.\")}var pR={number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},array:{validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function ej(e){let t={};for(let r in e){let i=e[r],s=vst(i);t[r]=s}return t}function vst(e){let t=tj(e);return t===\"object\"?e?\"type\"in e?Object.assign({},e,pR[e.type]):\"value\"in e?(t=tj(e.value),Object.assign({type:t},e,pR[t])):{type:\"object\",value:e}:{type:\"object\",value:null}:Object.assign({type:t,value:e},pR[t])}function tj(e){return Array.isArray(e)||ArrayBuffer.isView(e)?\"array\":typeof e}var xst=\"vs\",bst=\"fs\",yy=class{constructor(t){let{name:r,vs:i,fs:s,dependencies:n=[],uniforms:o,getUniforms:c,deprecations:f=[],defines:_={},inject:w={},vertexShader:C,fragmentShader:R}=t;Qs(typeof r==\"string\"),this.name=r,this.vs=i||C,this.fs=s||R,this.getModuleUniforms=c,this.dependencies=n,this.deprecations=this._parseDeprecationDefinitions(f),this.defines=_,this.injections=wst(w),o&&(this.uniforms=ej(o))}getModuleSource(t){let r;switch(t){case xst:r=this.vs||\"\";break;case bst:r=this.fs||\"\";break;default:Qs(!1)}return\"#define MODULE_\".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,\"_\"),`\n`).concat(r,\"// END MODULE_\").concat(this.name,`\n\n`)}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):this.uniforms?this._defaultGetUniforms(t):{}}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{i.regex.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case\"function\":r.regex=new RegExp(\"\\\\b\".concat(r.old,\"\\\\(\"));break;default:r.regex=new RegExp(\"\".concat(r.type,\" \").concat(r.old,\";\"))}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let s in i){let n=i[s];s in t&&!n.private?(n.validate&&Qs(n.validate(t[s],n),\"\".concat(this.name,\": invalid \").concat(s)),r[s]=t[s]):r[s]=n.value}return r}};function wst(e){let t={vs:{},fs:{}};for(let r in e){let i=e[r],s=r.slice(0,2);typeof i==\"string\"&&(i={order:0,injection:i}),t[s][r]=i}return t}function rj(e){return Sst(nj(e))}function Sst(e){let t={},r={};return ij({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,s)=>r[s]-r[i]).map(i=>t[i])}function ij(e){let{modules:t,level:r,moduleMap:i,moduleDepth:s}=e;if(r>=5)throw new Error(\"Possible loop in shader dependency graph\");for(let n of t)i[n.name]=n,(s[n.name]===void 0||s[n.name](r instanceof yy||(Qs(typeof r!=\"string\",\"Shader module use by name is deprecated. Import shader module '\".concat(r,\"' and use it directly.\")),Qs(r.name,\"shader module has no name\"),r=new yy(r),r.dependencies=nj(r.dependencies)),r))}function AR(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<\"u\"?window.navigator||{}:{},r=e.userAgent||t.userAgent||\"\",i=r.indexOf(\"MSIE \")!==-1,s=r.indexOf(\"Trident/\")!==-1;return i||s}var Tst=7936,Mst=7937,Est=7938,Pst=35724,gR={GLSL_FRAG_DATA:[\"WEBGL_draw_buffers\",!0],GLSL_FRAG_DEPTH:[\"EXT_frag_depth\",!0],GLSL_DERIVATIVES:[\"OES_standard_derivatives\",!0],GLSL_TEXTURE_LOD:[\"EXT_shader_texture_lod\",!0]},HA={};Object.keys(gR).forEach(e=>{HA[e]=e});function Ist(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function sj(e){let t=e.getExtension(\"WEBGL_debug_renderer_info\"),r=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||Tst),i=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||Mst);return{gpuVendor:Cst(r,i),vendor:r,renderer:i,version:e.getParameter(Est),shadingLanguageVersion:e.getParameter(Pst)}}function Cst(e,t){return e.match(/NVIDIA/i)||t.match(/NVIDIA/i)?\"NVIDIA\":e.match(/INTEL/i)||t.match(/INTEL/i)?\"INTEL\":e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i)?\"AMD\":\"UNKNOWN GPU\"}var mR={};function _R(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=gR[t];if(Qs(i,t),!AR(r))return!0;if(t in mR)return mR[t];let s=i[0],n=r.behavior||\"enable\",o=\"#extension GL_\".concat(s,\" : \").concat(n,`\nvoid main(void) {}`),c=e.createShader(35633);e.shaderSource(c,o),e.compileShader(c);let f=e.getShaderParameter(c,35713);return e.deleteShader(c),mR[t]=f,f}function Lst(e,t){let r=gR[t];Qs(r,t);let i=Ist(e)&&r[1]||r[0],s=typeof i==\"string\"?!!e.getExtension(i):i;return Qs(s===!1||s===!0),s}function ub(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>Lst(e,r))}function oj(e){switch(sj(e).gpuVendor.toLowerCase()){case\"nvidia\":return`#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n`;case\"intel\":return`#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`;case\"amd\":return`#define AMD_GPU\n`;default:return`#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`}}function aj(e,t,r){let i=`#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n`;return ub(e,HA.GLSL_FRAG_DEPTH)&&(i+=`\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n`),ub(e,HA.GLSL_DERIVATIVES)&&_R(e,HA.GLSL_DERIVATIVES)&&(i+=`\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n`),ub(e,HA.GLSL_FRAG_DATA)&&_R(e,HA.GLSL_FRAG_DATA,{behavior:\"require\"})&&(i+=`\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n`),ub(e,HA.GLSL_TEXTURE_LOD)&&(i+=`// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n`),i}var lj=`#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n`,cj=`#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n`;var kst={[K0]:lj,[cb]:cj},hb=\"__LUMA_INJECT_DECLARATIONS__\",uj=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/,hj=/}\\n?[^{}]*$/,yR=[];function fE(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=t===K0;for(let n in r){let o=r[n];o.sort((f,_)=>f.order-_.order),yR.length=o.length;for(let f=0,_=o.length;f<_;++f)yR[f]=o[f].injection;let c=\"\".concat(yR.join(`\n`),`\n`);switch(n){case\"vs:#decl\":s&&(e=e.replace(hb,c));break;case\"vs:#main-start\":s&&(e=e.replace(uj,f=>f+c));break;case\"vs:#main-end\":s&&(e=e.replace(hj,f=>c+f));break;case\"fs:#decl\":s||(e=e.replace(hb,c));break;case\"fs:#main-start\":s||(e=e.replace(uj,f=>f+c));break;case\"fs:#main-end\":s||(e=e.replace(hj,f=>c+f));break;default:e=e.replace(n,f=>f+c)}}return e=e.replace(hb,\"\"),i&&(e=e.replace(/\\}\\s*$/,n=>n+kst[t])),e}function vy(e){let t={};return Qs(Array.isArray(e)&&e.length>1),e.forEach(r=>{for(let i in r)t[i]=t[i]?\"\".concat(t[i],`\n`).concat(r[i]):r[i]}),t}function xy(e){return new RegExp(\"\\\\b\".concat(e,\"[ \\\\t]+(\\\\w+[ \\\\t]+\\\\w+(\\\\[\\\\w+\\\\])?;)\"),\"g\")}var fj=[[/^(#version[ \\t]+(100|300[ \\t]+es))?[ \\t]*\\n/,`#version 300 es\n`],[/\\btexture(2D|2DProj|Cube)Lod(EXT)?\\(/g,\"textureLod(\"],[/\\btexture(2D|2DProj|Cube)(EXT)?\\(/g,\"texture(\"]],Rst=[...fj,[xy(\"attribute\"),\"in $1\"],[xy(\"varying\"),\"out $1\"]],Dst=[...fj,[xy(\"varying\"),\"in $1\"]],dj=[[/^#version[ \\t]+300[ \\t]+es/,\"#version 100\"],[/\\btexture(2D|2DProj|Cube)Lod\\(/g,\"texture$1LodEXT(\"],[/\\btexture\\(/g,\"texture2D(\"],[/\\btextureLod\\(/g,\"texture2DLodEXT(\"]],Ost=[...dj,[xy(\"in\"),\"attribute $1\"],[xy(\"out\"),\"varying $1\"]],Bst=[...dj,[xy(\"in\"),\"varying $1\"]],vR=\"gl_FragColor\",xR=/\\bout[ \\t]+vec4[ \\t]+(\\w+)[ \\t]*;\\n?/,Fst=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/;function bR(e,t,r){switch(t){case 300:return r?dE(e,Rst):zst(e);case 100:return r?dE(e,Ost):Nst(e);default:throw new Error(\"unknown GLSL version \".concat(t))}}function dE(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function zst(e){e=dE(e,Dst);let t=e.match(xR);if(t){let r=t[1];e=e.replace(new RegExp(\"\\\\b\".concat(vR,\"\\\\b\"),\"g\"),r)}else{let r=\"fragmentColor\";e=e.replace(Fst,i=>\"out vec4 \".concat(r,`;\n`).concat(i)).replace(new RegExp(\"\\\\b\".concat(vR,\"\\\\b\"),\"g\"),r)}return e}function Nst(e){e=dE(e,Bst);let t=e.match(xR);if(t){let r=t[1];e=e.replace(xR,\"\").replace(new RegExp(\"\\\\b\".concat(r,\"\\\\b\"),\"g\"),vR)}return e}var Ust=`\n\n`.concat(hb,`\n\n`),Aj={[K0]:\"vertex\",[cb]:\"fragment\"},Vst=`precision highp float;\n\n`;function wR(e,t){let{vs:r,fs:i}=t,s=rj(t.modules||[]);return{gl:e,vs:pj(e,Object.assign({},t,{source:r,type:K0,modules:s})),fs:pj(e,Object.assign({},t,{source:i,type:cb,modules:s})),getUniforms:jst(s)}}function pj(e,t){let{id:r,source:i,type:s,modules:n,defines:o={},hookFunctions:c=[],inject:f={},transpileToGLSL100:_=!1,prologue:w=!0,log:C}=t;Qs(typeof i==\"string\",\"shader source must be a string\");let R=s===K0,N=i.split(`\n`),j=100,Y=\"\",rt=i;N[0].indexOf(\"#version \")===0?(j=300,Y=N[0],rt=N.slice(1).join(`\n`)):Y=\"#version \".concat(j);let $={};n.forEach(Kt=>{Object.assign($,Kt.getDefines())}),Object.assign($,o);let K=w?\"\".concat(Y,`\n`).concat(Wst({id:r,source:i,type:s}),`\n`).concat(Gst({type:s}),`\n`).concat(oj(e),`\n`).concat(aj(e,j,!R),`\n`).concat(Hst($),`\n`).concat(R?\"\":Vst,`\n`):\"\".concat(Y,`\n`),tt=Zst(c),ut={},Pt={},Ot={};for(let Kt in f){let Zt=typeof f[Kt]==\"string\"?{injection:f[Kt],order:0}:f[Kt],le=Kt.match(/^(v|f)s:(#)?([\\w-]+)$/);if(le){let ue=le[2],Ge=le[3];ue?Ge===\"decl\"?Pt[Kt]=[Zt]:Ot[Kt]=[Zt]:ut[Kt]=[Zt]}else Ot[Kt]=[Zt]}for(let Kt of n){C&&Kt.checkDeprecations(rt,C);let Zt=Kt.getModuleSource(s,j);K+=Zt;let le=Kt.injections[s];for(let ue in le){let Ge=ue.match(/^(v|f)s:#([\\w-]+)$/);if(Ge){let er=Ge[2]===\"decl\"?Pt:Ot;er[ue]=er[ue]||[],er[ue].push(le[ue])}else ut[ue]=ut[ue]||[],ut[ue].push(le[ue])}}return K+=Ust,K=fE(K,s,Pt),K+=qst(tt[s],ut),K+=rt,K=fE(K,s,Ot),K=bR(K,_?100:j,R),K}function jst(e){return function(r){let i={};for(let s of e){let n=s.getUniforms(r,i);Object.assign(i,n)}return i}}function Gst(e){let{type:t}=e;return`\n#define SHADER_TYPE_`.concat(Aj[t].toUpperCase(),`\n`)}function Wst(e){let{id:t,source:r,type:i}=e;return t&&typeof t==\"string\"&&r.indexOf(\"SHADER_NAME\")===-1?`\n#define SHADER_NAME `.concat(t,\"_\").concat(Aj[i],`\n\n`):\"\"}function Hst(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r=\"\";for(let i in e){t===0&&(r+=`\n// APPLICATION DEFINES\n`),t++;let s=e[i];(s||Number.isFinite(s))&&(r+=\"#define \".concat(i.toUpperCase(),\" \").concat(e[i],`\n`))}return t===0&&(r+=`\n`),r}function qst(e,t){let r=\"\";for(let i in e){let s=e[i];if(r+=\"void \".concat(s.signature,` {\n`),s.header&&(r+=\" \".concat(s.header)),t[i]){let n=t[i];n.sort((o,c)=>o.order-c.order);for(let o of n)r+=\" \".concat(o.injection,`\n`)}s.footer&&(r+=\" \".concat(s.footer)),r+=`}\n`}return r}function Zst(e){let t={vs:{},fs:{}};return e.forEach(r=>{let i;typeof r!=\"string\"?(i=r,r=i.hook):i={},r=r.trim();let[s,n]=r.split(\":\"),o=r.replace(/\\(.+/,\"\");t[s][o]=Object.assign(i,{signature:n})}),t}var Yst=\"void main() {gl_FragColor = vec4(0);}\",mj=`out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}`,Qst=`#version 300 es\n`.concat(mj);function pE(e,t){t=Array.isArray(t)?t:[t];let r=e.replace(/^\\s+/,\"\").split(/\\s+/),[i,s,n]=r;if(!t.includes(i)||!s||!n)return null;let o=n.split(\";\")[0];return{qualifier:i,type:s,name:o}}function fb(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{version:t=100,input:r,inputType:i,output:s}=e;if(!r)return t===300?Qst:t>300?\"#version \".concat(t,`\n`).concat(mj):Yst;let n=gj(r,i);return t>=300?\"#version \".concat(t,\" \").concat(t===300?\"es\":\"\",`\nin `).concat(i,\" \").concat(r,`;\nout vec4 `).concat(s,`;\nvoid main() {\n `).concat(s,\" = \").concat(n,`;\n}`):\"varying \".concat(i,\" \").concat(r,`;\nvoid main() {\n gl_FragColor = `).concat(n,`;\n}`)}function SR(e){switch(e){case\"float\":return\"x\";case\"vec2\":return\"xy\";case\"vec3\":return\"xyz\";case\"vec4\":return\"xyzw\";default:return Qs(!1),null}}function TR(e){switch(e){case\"float\":return 1;case\"vec2\":return 2;case\"vec3\":return 3;case\"vec4\":return 4;default:return Qs(!1),null}}function gj(e,t){switch(t){case\"float\":return\"vec4(\".concat(e,\", 0.0, 0.0, 1.0)\");case\"vec2\":return\"vec4(\".concat(e,\", 0.0, 1.0)\");case\"vec3\":return\"vec4(\".concat(e,\", 1.0)\");case\"vec4\":return e;default:return Qs(!1),null}}var $st=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\nconst float TWO_PI = 6.2831854820251465;\nconst float PI_2 = 1.5707963705062866;\nconst float PI_16 = 0.1963495463132858;\n\nconst float SIN_TABLE_0 = 0.19509032368659973;\nconst float SIN_TABLE_1 = 0.3826834261417389;\nconst float SIN_TABLE_2 = 0.5555702447891235;\nconst float SIN_TABLE_3 = 0.7071067690849304;\n\nconst float COS_TABLE_0 = 0.9807852506637573;\nconst float COS_TABLE_1 = 0.9238795042037964;\nconst float COS_TABLE_2 = 0.8314695954322815;\nconst float COS_TABLE_3 = 0.7071067690849304;\n\nconst float INVERSE_FACTORIAL_3 = 1.666666716337204e-01;\nconst float INVERSE_FACTORIAL_5 = 8.333333767950535e-03;\nconst float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04;\nconst float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06;\n\nfloat sin_taylor_fp32(float a) {\n float r, s, t, x;\n\n if (a == 0.0) {\n return 0.0;\n }\n\n x = -a * a;\n s = a;\n r = a;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_3;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_5;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_7;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_9;\n s = s + t;\n\n return s;\n}\n\nvoid sincos_taylor_fp32(float a, out float sin_t, out float cos_t) {\n if (a == 0.0) {\n sin_t = 0.0;\n cos_t = 1.0;\n }\n sin_t = sin_taylor_fp32(a);\n cos_t = sqrt(1.0 - sin_t * sin_t);\n}\n\nfloat tan_taylor_fp32(float a) {\n float sin_a;\n float cos_a;\n\n if (a == 0.0) {\n return 0.0;\n }\n float z = floor(a / TWO_PI);\n float r = a - TWO_PI * z;\n\n float t;\n float q = floor(r / PI_2 + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return 1.0 / 0.0;\n }\n\n t = r - PI_2 * q;\n\n q = floor(t / PI_16 + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return 1.0 / 0.0;\n } else {\n t = t - PI_16 * q;\n }\n\n float u = 0.0;\n float v = 0.0;\n\n float sin_t, cos_t;\n float s, c;\n sincos_taylor_fp32(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0;\n v = SIN_TABLE_0;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1;\n v = SIN_TABLE_1;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2;\n v = SIN_TABLE_2;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3;\n v = SIN_TABLE_3;\n }\n if (k > 0) {\n s = u * sin_t + v * cos_t;\n c = u * cos_t - v * sin_t;\n } else {\n s = u * sin_t - v * cos_t;\n c = u * cos_t + v * sin_t;\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return sin_a / cos_a;\n}\n#endif\n\nfloat tan_fp32(float a) {\n#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\n return tan_taylor_fp32(a);\n#else\n return tan(a);\n#endif\n}\n`,AE={name:\"fp32\",vs:$st,fs:null};function Oh(e,t){if(!e)throw new Error(\"math.gl assertion \".concat(t))}var NLt=1/Math.PI*180,ULt=1/180*Math.PI,$s={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function MR(e,{precision:t=$s.precision}={}){return e=Xst(e),\"\".concat(parseFloat(e.toPrecision(t)))}function Bh(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ml(e,t,r){return Jst(e,i=>Math.max(t,Math.min(r,i)))}function tc(e,t,r){return Bh(e)?e.map((i,s)=>tc(i,t[s],r)):r*t+(1-r)*e}function To(e,t,r){let i=$s.EPSILON;r&&($s.EPSILON=r);try{if(e===t)return!0;if(Bh(e)&&Bh(t)){if(e.length!==t.length)return!1;for(let s=0;s0?\", \":\"\")+MR(this[i],t);return\"\".concat(t.printTypes?this.constructor.name:\"\",\"[\").concat(r,\"]\")}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r=0&&t=0&&t0&&(n=1/Math.sqrt(n)),e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function CR(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ty(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[0],c=r[1],f=r[2];return e[0]=s*f-n*c,e[1]=n*o-i*f,e[2]=i*c-s*o,e}function Tj(e,t,r,i){var s=t[0],n=t[1],o=t[2];return e[0]=s+i*(r[0]-s),e[1]=n+i*(r[1]-n),e[2]=o+i*(r[2]-o),e}function My(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[3]*i+r[7]*s+r[11]*n+r[15];return o=o||1,e[0]=(r[0]*i+r[4]*s+r[8]*n+r[12])/o,e[1]=(r[1]*i+r[5]*s+r[9]*n+r[13])/o,e[2]=(r[2]*i+r[6]*s+r[10]*n+r[14])/o,e}function vE(e,t,r){var i=t[0],s=t[1],n=t[2];return e[0]=i*r[0]+s*r[3]+n*r[6],e[1]=i*r[1]+s*r[4]+n*r[7],e[2]=i*r[2]+s*r[5]+n*r[8],e}function xE(e,t,r){var i=r[0],s=r[1],n=r[2],o=r[3],c=t[0],f=t[1],_=t[2],w=s*_-n*f,C=n*c-i*_,R=i*f-s*c,N=s*R-n*C,j=n*w-i*R,Y=i*C-s*w,rt=o*2;return w*=rt,C*=rt,R*=rt,N*=2,j*=2,Y*=2,e[0]=c+w+N,e[1]=f+C+j,e[2]=_+R+Y,e}function Mj(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[0],n[1]=s[1]*Math.cos(i)-s[2]*Math.sin(i),n[2]=s[1]*Math.sin(i)+s[2]*Math.cos(i),e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Ej(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[2]*Math.sin(i)+s[0]*Math.cos(i),n[1]=s[1],n[2]=s[2]*Math.cos(i)-s[0]*Math.sin(i),e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Pj(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[0]*Math.cos(i)-s[1]*Math.sin(i),n[1]=s[0]*Math.sin(i)+s[1]*Math.cos(i),n[2]=s[2],e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Ij(e,t){var r=e[0],i=e[1],s=e[2],n=t[0],o=t[1],c=t[2],f=Math.sqrt(r*r+i*i+s*s),_=Math.sqrt(n*n+o*o+c*c),w=f*_,C=w&&CR(e,t)/w;return Math.acos(Math.min(Math.max(C,-1),1))}var bE=not;var wE=iot,SE=sot,JLt=function(){var e=PR();return function(t,r,i,s,n,o){var c,f;for(r||(r=3),i||(i=0),s?f=Math.min(s*r+i,t.length):f=t.length,c=i;c0?this.copy([t,...r]):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this.check()}identity(){return this.copy(oot)}fromObject(t){return this.check()}fromQuaternion(t){return Bj(this,t),this.check()}set(t,r,i,s,n,o,c,f,_){return this[0]=t,this[1]=r,this[2]=i,this[3]=s,this[4]=n,this[5]=o,this[6]=c,this[7]=f,this[8]=_,this.check()}setRowMajor(t,r,i,s,n,o,c,f,_){return this[0]=t,this[1]=s,this[2]=c,this[3]=r,this[4]=n,this[5]=f,this[6]=i,this[7]=o,this[8]=_,this.check()}determinant(){return Rj(this)}transpose(){return Lj(this,this),this.check()}invert(){return kj(this,this),this.check()}multiplyLeft(t){return kR(this,t,this),this.check()}multiplyRight(t){return kR(this,this,t),this.check()}rotate(t){return Oj(this,this,t),this.check()}scale(t){return Array.isArray(t)?RR(this,this,t):RR(this,this,[t,t]),this.check()}translate(t){return Dj(this,this,t),this.check()}transform(t,r){let i;switch(t.length){case 2:i=_j(r||[-0,-0],t,this);break;case 3:i=vE(r||[-0,-0,-0],t,this);break;case 4:i=yE(r||[-0,-0,-0,-0],t,this);break;default:throw new Error(\"Illegal vector\")}return qA(i,t.length),i}transformVector(t,r){return this.transform(t,r)}transformVector2(t,r){return this.transform(t,r)}transformVector3(t,r){return this.transform(t,r)}},EE,PE;function aot(){return EE||(EE=new rs([0,0,0,0,0,0,0,0,0]),Object.freeze(EE)),EE}function lot(){return PE||(PE=new rs,Object.freeze(PE)),PE}function cot(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zj(e,t){if(e===t){var r=t[1],i=t[2],s=t[3],n=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=i,e[9]=n,e[11]=t[14],e[12]=s,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function pb(e,t){var r=t[0],i=t[1],s=t[2],n=t[3],o=t[4],c=t[5],f=t[6],_=t[7],w=t[8],C=t[9],R=t[10],N=t[11],j=t[12],Y=t[13],rt=t[14],$=t[15],K=r*c-i*o,tt=r*f-s*o,ut=r*_-n*o,Pt=i*f-s*c,Ot=i*_-n*c,Kt=s*_-n*f,Zt=w*Y-C*j,le=w*rt-R*j,ue=w*$-N*j,Ge=C*rt-R*Y,tr=C*$-N*Y,er=R*$-N*rt,Lr=K*er-tt*tr+ut*Ge+Pt*ue-Ot*le+Kt*Zt;return Lr?(Lr=1/Lr,e[0]=(c*er-f*tr+_*Ge)*Lr,e[1]=(s*tr-i*er-n*Ge)*Lr,e[2]=(Y*Kt-rt*Ot+$*Pt)*Lr,e[3]=(R*Ot-C*Kt-N*Pt)*Lr,e[4]=(f*ue-o*er-_*le)*Lr,e[5]=(r*er-s*ue+n*le)*Lr,e[6]=(rt*ut-j*Kt-$*tt)*Lr,e[7]=(w*Kt-R*ut+N*tt)*Lr,e[8]=(o*tr-c*ue+_*Zt)*Lr,e[9]=(i*ue-r*tr-n*Zt)*Lr,e[10]=(j*Ot-Y*ut+$*K)*Lr,e[11]=(C*ut-w*Ot-N*K)*Lr,e[12]=(c*le-o*Ge-f*Zt)*Lr,e[13]=(r*Ge-i*le+s*Zt)*Lr,e[14]=(Y*tt-j*Pt-rt*K)*Lr,e[15]=(w*Pt-C*tt+R*K)*Lr,e):null}function Nj(e){var t=e[0],r=e[1],i=e[2],s=e[3],n=e[4],o=e[5],c=e[6],f=e[7],_=e[8],w=e[9],C=e[10],R=e[11],N=e[12],j=e[13],Y=e[14],rt=e[15],$=t*o-r*n,K=t*c-i*n,tt=t*f-s*n,ut=r*c-i*o,Pt=r*f-s*o,Ot=i*f-s*c,Kt=_*j-w*N,Zt=_*Y-C*N,le=_*rt-R*N,ue=w*Y-C*j,Ge=w*rt-R*j,tr=C*rt-R*Y;return $*tr-K*Ge+tt*ue+ut*le-Pt*Zt+Ot*Kt}function Wf(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3],c=t[4],f=t[5],_=t[6],w=t[7],C=t[8],R=t[9],N=t[10],j=t[11],Y=t[12],rt=t[13],$=t[14],K=t[15],tt=r[0],ut=r[1],Pt=r[2],Ot=r[3];return e[0]=tt*i+ut*c+Pt*C+Ot*Y,e[1]=tt*s+ut*f+Pt*R+Ot*rt,e[2]=tt*n+ut*_+Pt*N+Ot*$,e[3]=tt*o+ut*w+Pt*j+Ot*K,tt=r[4],ut=r[5],Pt=r[6],Ot=r[7],e[4]=tt*i+ut*c+Pt*C+Ot*Y,e[5]=tt*s+ut*f+Pt*R+Ot*rt,e[6]=tt*n+ut*_+Pt*N+Ot*$,e[7]=tt*o+ut*w+Pt*j+Ot*K,tt=r[8],ut=r[9],Pt=r[10],Ot=r[11],e[8]=tt*i+ut*c+Pt*C+Ot*Y,e[9]=tt*s+ut*f+Pt*R+Ot*rt,e[10]=tt*n+ut*_+Pt*N+Ot*$,e[11]=tt*o+ut*w+Pt*j+Ot*K,tt=r[12],ut=r[13],Pt=r[14],Ot=r[15],e[12]=tt*i+ut*c+Pt*C+Ot*Y,e[13]=tt*s+ut*f+Pt*R+Ot*rt,e[14]=tt*n+ut*_+Pt*N+Ot*$,e[15]=tt*o+ut*w+Pt*j+Ot*K,e}function eg(e,t,r){var i=r[0],s=r[1],n=r[2],o,c,f,_,w,C,R,N,j,Y,rt,$;return t===e?(e[12]=t[0]*i+t[4]*s+t[8]*n+t[12],e[13]=t[1]*i+t[5]*s+t[9]*n+t[13],e[14]=t[2]*i+t[6]*s+t[10]*n+t[14],e[15]=t[3]*i+t[7]*s+t[11]*n+t[15]):(o=t[0],c=t[1],f=t[2],_=t[3],w=t[4],C=t[5],R=t[6],N=t[7],j=t[8],Y=t[9],rt=t[10],$=t[11],e[0]=o,e[1]=c,e[2]=f,e[3]=_,e[4]=w,e[5]=C,e[6]=R,e[7]=N,e[8]=j,e[9]=Y,e[10]=rt,e[11]=$,e[12]=o*i+w*s+j*n+t[12],e[13]=c*i+C*s+Y*n+t[13],e[14]=f*i+R*s+rt*n+t[14],e[15]=_*i+N*s+$*n+t[15]),e}function Ey(e,t,r){var i=r[0],s=r[1],n=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Uj(e,t,r,i){var s=i[0],n=i[1],o=i[2],c=Math.hypot(s,n,o),f,_,w,C,R,N,j,Y,rt,$,K,tt,ut,Pt,Ot,Kt,Zt,le,ue,Ge,tr,er,Lr,zi;return c0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=i*o,e[2]=s*o,e[3]=n*o,e}function Xj(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Kj(e,t,r,i){var s=t[0],n=t[1],o=t[2],c=t[3];return e[0]=s+i*(r[0]-s),e[1]=n+i*(r[1]-n),e[2]=o+i*(r[2]-o),e[3]=c+i*(r[3]-c),e}function zh(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3];return e[0]=r[0]*i+r[4]*s+r[8]*n+r[12]*o,e[1]=r[1]*i+r[5]*s+r[9]*n+r[13]*o,e[2]=r[2]*i+r[6]*s+r[10]*n+r[14]*o,e[3]=r[3]*i+r[7]*s+r[11]*n+r[15]*o,e}function Jj(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[0],c=r[1],f=r[2],_=r[3],w=_*i+c*n-f*s,C=_*s+f*i-o*n,R=_*n+o*s-c*i,N=-o*i-c*s-f*n;return e[0]=w*_+N*-o+C*-f-R*-c,e[1]=C*_+N*-c+R*-o-w*-f,e[2]=R*_+N*-f+w*-c-C*-o,e[3]=t[3],e}var _kt=function(){var e=fot();return function(t,r,i,s,n,o){var c,f;for(r||(r=4),i||(i=0),s?f=Math.min(s*r+i,t.length):f=t.length,c=i;cMath.PI*2)throw Error(\"expected radians\")}function _ot(e,t,r,i,s,n){let o=2*n/(r-t),c=2*n/(s-i),f=(r+t)/(r-t),_=(s+i)/(s-i),w=-1,C=-1,R=-2*n;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=f,e[9]=_,e[10]=w,e[11]=C,e[12]=0,e[13]=0,e[14]=R,e[15]=0,e}function e7(){var e=new ya(4);return ya!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function r7(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function NR(e,t,r){r=r*.5;var i=Math.sin(r);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(r),e}function UR(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3],c=r[0],f=r[1],_=r[2],w=r[3];return e[0]=i*w+o*c+s*_-n*f,e[1]=s*w+o*f+n*c-i*_,e[2]=n*w+o*_+i*f-s*c,e[3]=o*w-i*c-s*f-n*_,e}function i7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f+o*c,e[1]=s*f+n*c,e[2]=n*f-s*c,e[3]=o*f-i*c,e}function n7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f-n*c,e[1]=s*f+o*c,e[2]=n*f+i*c,e[3]=o*f-s*c,e}function s7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f+s*c,e[1]=s*f-i*c,e[2]=n*f+o*c,e[3]=o*f-n*c,e}function o7(e,t){var r=t[0],i=t[1],s=t[2];return e[0]=r,e[1]=i,e[2]=s,e[3]=Math.sqrt(Math.abs(1-r*r-i*i-s*s)),e}function mb(e,t,r,i){var s=t[0],n=t[1],o=t[2],c=t[3],f=r[0],_=r[1],w=r[2],C=r[3],R,N,j,Y,rt;return N=s*f+n*_+o*w+c*C,N<0&&(N=-N,f=-f,_=-_,w=-w,C=-C),1-N>Fh?(R=Math.acos(N),j=Math.sin(R),Y=Math.sin((1-i)*R)/j,rt=Math.sin(i*R)/j):(Y=1-i,rt=i),e[0]=Y*s+rt*f,e[1]=Y*n+rt*_,e[2]=Y*o+rt*w,e[3]=Y*c+rt*C,e}function a7(e,t){var r=t[0],i=t[1],s=t[2],n=t[3],o=r*r+i*i+s*s+n*n,c=o?1/o:0;return e[0]=-r*c,e[1]=-i*c,e[2]=-s*c,e[3]=n*c,e}function l7(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function VR(e,t){var r=t[0]+t[4]+t[8],i;if(r>0)i=Math.sqrt(r+1),e[3]=.5*i,i=.5/i,e[0]=(t[5]-t[7])*i,e[1]=(t[6]-t[2])*i,e[2]=(t[1]-t[3])*i;else{var s=0;t[4]>t[0]&&(s=1),t[8]>t[s*3+s]&&(s=2);var n=(s+1)%3,o=(s+2)%3;i=Math.sqrt(t[s*3+s]-t[n*3+n]-t[o*3+o]+1),e[s]=.5*i,i=.5/i,e[3]=(t[n*3+o]-t[o*3+n])*i,e[n]=(t[n*3+s]+t[s*3+n])*i,e[o]=(t[o*3+s]+t[s*3+o])*i}return e}var c7=Zj;var u7=Py,h7=Xj,f7=Kj,d7=Yj;var p7=Qj;var A7=$j;var m7=function(){var e=PR(),t=IR(1,0,0),r=IR(0,1,0);return function(i,s,n){var o=CR(s,n);return o<-.999999?(Ty(e,t,s),wE(e)<1e-6&&Ty(e,r,s),Sj(e,e),NR(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(Ty(e,s,n),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,A7(i,i))}}(),Ikt=function(){var e=e7(),t=e7();return function(r,i,s,n,o,c){return mb(e,i,o,c),mb(t,s,n,c),mb(r,e,t,2*c*(1-c)),r}}(),Ckt=function(){var e=Cj();return function(t,r,i,s){return e[0]=i[0],e[3]=i[1],e[6]=i[2],e[1]=s[0],e[4]=s[1],e[7]=s[2],e[2]=-r[0],e[5]=-r[1],e[8]=-r[2],A7(t,VR(t,e))}}();var vot=[0,0,0,1],rg=class extends rp{constructor(t=0,r=0,i=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,r,i,s)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,r,i,s){return this[0]=t,this[1]=r,this[2]=i,this[3]=s,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return VR(this,t),this.check()}fromAxisRotation(t,r){return NR(this,t,r),this.check()}identity(){return r7(this),this.check()}setAxisAngle(t,r){return this.fromAxisRotation(t,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=Hi(t)}get y(){return this[1]}set y(t){this[1]=Hi(t)}get z(){return this[2]}set z(t){this[2]=Hi(t)}get w(){return this[3]}set w(t){this[3]=Hi(t)}len(){return d7(this)}lengthSquared(){return p7(this)}dot(t){return h7(this,t)}rotationTo(t,r){return m7(this,t,r),this.check()}add(t){return c7(this,this,t),this.check()}calculateW(){return o7(this,this),this.check()}conjugate(){return l7(this,this),this.check()}invert(){return a7(this,this),this.check()}lerp(t,r,i){return i===void 0?this.lerp(this,t,r):(f7(this,t,r,i),this.check())}multiplyRight(t){return UR(this,this,t),this.check()}multiplyLeft(t){return UR(this,t,this),this.check()}normalize(){let t=this.len(),r=t>0?1/t:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,t===0&&(this[3]=1),this.check()}rotateX(t){return i7(this,this,t),this.check()}rotateY(t){return n7(this,this,t),this.check()}rotateZ(t){return s7(this,this,t),this.check()}scale(t){return u7(this,this,t),this.check()}slerp(t,r,i){let s,n,o;switch(arguments.length){case 1:({start:s=vot,target:n,ratio:o}=t);break;case 2:s=this,n=t,o=r;break;default:s=t,n=r,o=i}return mb(this,s,n,o),this.check()}transformVector4(t,r=new db){return Jj(r,t,this),qA(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,r){return this.setAxisAngle(t,r)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var RE={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2};var jR=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\n\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nuniform AmbientLight lighting_uAmbientLight;\nuniform PointLight lighting_uPointLight[MAX_LIGHTS];\nuniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];\nuniform int lighting_uPointLightCount;\nuniform int lighting_uDirectionalLightCount;\n\nuniform bool lighting_uEnabled;\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\n#endif\n`;var xot={lightSources:{}};function GR(){let{color:e=[0,0,0],intensity:t=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.map(r=>r*t/255)}function bot(e){let{ambientLight:t,pointLights:r=[],directionalLights:i=[]}=e,s={};return t?s[\"lighting_uAmbientLight.color\"]=GR(t):s[\"lighting_uAmbientLight.color\"]=[0,0,0],r.forEach((n,o)=>{s[\"lighting_uPointLight[\".concat(o,\"].color\")]=GR(n),s[\"lighting_uPointLight[\".concat(o,\"].position\")]=n.position,s[\"lighting_uPointLight[\".concat(o,\"].attenuation\")]=n.attenuation||[1,0,0]}),s.lighting_uPointLightCount=r.length,i.forEach((n,o)=>{s[\"lighting_uDirectionalLight[\".concat(o,\"].color\")]=GR(n),s[\"lighting_uDirectionalLight[\".concat(o,\"].direction\")]=n.direction}),s.lighting_uDirectionalLightCount=i.length,s}function g7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:xot;if(\"lightSources\"in e){let{ambientLight:t,pointLights:r,directionalLights:i}=e.lightSources||{};return t||r&&r.length>0||i&&i.length>0?Object.assign({},bot({ambientLight:t,pointLights:r,directionalLights:i}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if(\"lights\"in e){let t={pointLights:[],directionalLights:[]};for(let r of e.lights||[])switch(r.type){case\"ambient\":t.ambientLight=r;break;case\"directional\":t.directionalLights.push(r);break;case\"point\":t.pointLights.push(r);break;default:}return g7({lightSources:t})}return{}}var WR={name:\"lights\",vs:jR,fs:jR,getUniforms:g7,defines:{MAX_LIGHTS:3}};var wot=new Uint8Array([0,255,255,255]),Sot={pickingSelectedColor:null,pickingHighlightColor:wot,pickingActive:!1,pickingAttribute:!1};function Tot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Sot,t={};if(e.pickingSelectedColor!==void 0)if(!e.pickingSelectedColor)t.picking_uSelectedColorValid=0;else{let r=e.pickingSelectedColor.slice(0,3);t.picking_uSelectedColorValid=1,t.picking_uSelectedColor=r}if(e.pickingHighlightColor){let r=Array.from(e.pickingHighlightColor,i=>i/255);Number.isFinite(r[3])||(r[3]=1),t.picking_uHighlightColor=r}return e.pickingActive!==void 0&&(t.picking_uActive=!!e.pickingActive,t.picking_uAttribute=!!e.pickingAttribute),t}var Mot=`uniform bool picking_uActive;\nuniform bool picking_uAttribute;\nuniform vec3 picking_uSelectedColor;\nuniform bool picking_uSelectedColorValid;\n\nout vec4 picking_vRGBcolor_Avalid;\n\nconst float COLOR_SCALE = 1. / 255.;\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.001;\n}\n\nbool isVertexPicked(vec3 vertexColor) {\n return\n picking_uSelectedColorValid &&\n !picking_isColorValid(abs(vertexColor - picking_uSelectedColor));\n}\n\nvoid picking_setPickingColor(vec3 pickingColor) {\n if (picking_uActive) {\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = pickingColor * COLOR_SCALE;\n }\n } else {\n picking_vRGBcolor_Avalid.a = float(isVertexPicked(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\nvoid picking_setPickingAttribute(vec2 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\nvoid picking_setPickingAttribute(vec3 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n`,Eot=`uniform bool picking_uActive;\nuniform vec3 picking_uSelectedColor;\nuniform vec4 picking_uHighlightColor;\n\nin vec4 picking_vRGBcolor_Avalid;\nvec4 picking_filterHighlightColor(vec4 color) {\n if (picking_uActive) {\n return color;\n }\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n float highLightAlpha = picking_uHighlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking_uHighlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\nvec4 picking_filterPickingColor(vec4 color) {\n if (picking_uActive) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\nvec4 picking_filterColor(vec4 color) {\n vec4 highightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highightColor);\n}\n\n`,DE={name:\"picking\",vs:Mot,fs:Eot,getUniforms:Tot};var HR=`\nuniform float lighting_uAmbient;\nuniform float lighting_uDiffuse;\nuniform float lighting_uShininess;\nuniform vec3 lighting_uSpecularColor;\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) {\n vec3 halfway_direction = normalize(light_direction + view_direction);\n float lambertian = dot(light_direction, normal_worldspace);\n float specular = 0.0;\n if (lambertian > 0.0) {\n float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, lighting_uShininess);\n }\n lambertian = max(lambertian, 0.0);\n return (lambertian * lighting_uDiffuse * surfaceColor + specular * lighting_uSpecularColor) * color;\n}\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = surfaceColor;\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n lightColor = lighting_uAmbient * surfaceColor * lighting_uAmbientLight.color;\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n\nvec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = vec3(0, 0, 0);\n vec3 surfaceColor = vec3(0, 0, 0);\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n`;var Pot={};function Iot(e){let{ambient:t=.35,diffuse:r=.6,shininess:i=32,specularColor:s=[30,30,30]}=e;return{lighting_uAmbient:t,lighting_uDiffuse:r,lighting_uShininess:i,lighting_uSpecularColor:s.map(n=>n/255)}}function _7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Pot;if(!(\"material\"in e))return{};let{material:t}=e;return t?Iot(t):{lighting_uEnabled:!1}}var YA={name:\"gouraud-lighting\",dependencies:[WR],vs:HR,defines:{LIGHTING_VERTEX:1},getUniforms:_7},Cy={name:\"phong-lighting\",dependencies:[WR],fs:HR,defines:{LIGHTING_FRAGMENT:1},getUniforms:_7};var Cot=`attribute float transform_elementID;\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n`,qR={name:\"transform\",vs:Cot,fs:null};var Nh=class e{static getDefaultProgramManager(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}constructor(t){this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule(t){this._defaultModules.find(r=>r.name===t.name)||this._defaultModules.push(t),this.stateHash++}removeDefaultModule(t){let r=typeof t==\"string\"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r),this.stateHash++}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t),this.stateHash++}get(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{vs:r=\"\",fs:i=\"\",defines:s={},inject:n={},varyings:o=[],bufferMode:c=35981,transpileToGLSL100:f=!1}=t,_=this._getModuleList(t.modules),w=this._getHash(r),C=this._getHash(i),R=_.map(tt=>this._getHash(tt.name)).sort(),N=o.map(tt=>this._getHash(tt)),j=Object.keys(s).sort(),Y=Object.keys(n).sort(),rt=[],$=[];for(let tt of j)rt.push(this._getHash(tt)),rt.push(this._getHash(s[tt]));for(let tt of Y)$.push(this._getHash(tt)),$.push(this._getHash(n[tt]));let K=\"\".concat(w,\"/\").concat(C,\"D\").concat(rt.join(\"/\"),\"M\").concat(R.join(\"/\"),\"I\").concat($.join(\"/\"),\"V\").concat(N.join(\"/\"),\"H\").concat(this.stateHash,\"B\").concat(c).concat(f?\"T\":\"\");if(!this._programCache[K]){let tt=wR(this.gl,{vs:r,fs:i,modules:_,inject:n,defines:s,hookFunctions:this._hookFunctions,transpileToGLSL100:f});this._programCache[K]=new tp(this.gl,{hash:K,vs:tt.vs,fs:tt.fs,varyings:o,bufferMode:c}),this._getUniforms[K]=tt.getUniforms||(ut=>{}),this._useCounts[K]=0}return this._useCounts[K]++,this._programCache[K]}getUniforms(t){return this._getUniforms[t.hash]||null}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._programCache[r].delete(),delete this._programCache[r],delete this._getUniforms[r],delete this._useCounts[r])}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},s=0;for(let n=0,o=this._defaultModules.length;n{},Bot={},Sn=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{id:i=Jo(\"model\")}=r;ye(Xd(t)),this.id=i,this.gl=t,this.id=r.id||Jo(\"Model\"),this.lastLogTime=0,this.animated=!1,this.initialize(r)}initialize(t){this.props={},this.programManager=t.programManager||Nh.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;let{program:r=null,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(t.moduleSettings))),this.drawMode=t.drawMode!==void 0?t.drawMode:4,this.vertexCount=t.vertexCount||0,this.geometryBuffers={},this.isInstanced=t.isInstanced||t.instanced||t.instanceCount>0,this._setModelProps(t),this.geometry={},ye(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),Oot)}setProps(t){this._setModelProps(t)}delete(){for(let t in this._attributes)this._attributes[t]!==this.attributes[t]&&this._attributes[t].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram(t){let{program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode(t){return this.drawMode=t,this}setVertexCount(t){return ye(Number.isFinite(t)),this.vertexCount=t,this}setInstanceCount(t){return ye(Number.isFinite(t)),this.instanceCount=t,this}setGeometry(t){return this.drawMode=t.drawMode,this.vertexCount=t.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=y7(this.gl,t),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(jf(t))return this;let r={};for(let i in t){let s=t[i];r[i]=s.getValue?s.getValue():s}return this.vertexArray.setAttributes(r),this}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,t),this}getModuleUniforms(t){this._checkProgram();let r=this.programManager.getUniforms(this.program);return r?r(t):{}}updateModuleSettings(t){let r=this.getModuleUniforms(t||{});return this.setUniforms(r)}clear(t){return Gf(this.program.gl,t),this}draw(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();let{moduleSettings:r=null,framebuffer:i,uniforms:s={},attributes:n={},transformFeedback:o=this.transformFeedback,parameters:c={},vertexArray:f=this.vertexArray}=t;this.setAttributes(n),this.updateModuleSettings(r),this.setUniforms(s);let _;je.priority>=Ly&&(_=this._logDrawCallStart(Ly));let w=this.vertexArray.getDrawParams(),{isIndexed:C=w.isIndexed,indexType:R=w.indexType,indexOffset:N=w.indexOffset,vertexArrayInstanced:j=w.isInstanced}=this.props;j&&!this.isInstanced&&je.warn(\"Found instanced attributes on non-instanced model\",this.id)();let{isInstanced:Y,instanceCount:rt}=this,{onBeforeRender:$=v7,onAfterRender:K=v7}=this.props;$(),this.program.setUniforms(this.uniforms);let tt=this.program.draw(Object.assign(Bot,t,{logPriority:_,uniforms:null,framebuffer:i,parameters:c,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:f,transformFeedback:o,isIndexed:C,indexType:R,isInstanced:Y,instanceCount:rt,offset:C?N:0}));return K(),je.priority>=Ly&&this._logDrawCallEnd(_,f,i),tt}transform(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{discard:r=!0,feedbackBuffers:i,unbindModels:s=[]}=t,{parameters:n}=t;i&&this._setFeedbackBuffers(i),r&&(n=Object.assign({},n,{35977:r})),s.forEach(o=>o.vertexArray.unbindBuffers());try{this.draw(Object.assign({},t,{parameters:n}))}finally{s.forEach(o=>o.vertexArray.bindBuffers())}return this}render(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.warn(\"Model.render() is deprecated. Use Model.setUniforms() and Model.draw()\")(),this.setUniforms(t).draw()}_setModelProps(t){Object.assign(this.props,t),\"uniforms\"in t&&this.setUniforms(t.uniforms),\"pickable\"in t&&(this.pickable=t.pickable),\"instanceCount\"in t&&(this.instanceCount=t.instanceCount),\"geometry\"in t&&this.setGeometry(t.geometry),\"attributes\"in t&&this.setAttributes(t.attributes),\"_feedbackBuffers\"in t&&this._setFeedbackBuffers(t._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:r}=this.programProps;if(r)this._managedProgram=!1;else{let{vs:i,fs:s,modules:n,inject:o,defines:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=this.programProps;r=this.programManager.get({vs:i,fs:s,modules:n,inject:o,defines:c,varyings:f,bufferMode:_,transpileToGLSL100:w}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}ye(r instanceof tp,\"Model needs a program\"),this._programDirty=!1,r!==this.program&&(this.program=r,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new _y(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(let t in this.geometryBuffers){let r=this.geometryBuffers[t][0]||this.geometryBuffers[t];r instanceof Fr&&r.delete()}}_setAnimationProps(t){this.animated&&ye(t,\"Model.draw(): animated uniforms but no animationProps\")}_setFeedbackBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(jf(t))return this;let{gl:r}=this.program;return this.transformFeedback=this.transformFeedback||new ep(r,{program:this.program}),this.transformFeedback.setBuffers(t),this}_logDrawCallStart(t){let r=t>3?0:Dot;if(!(Date.now()-this.lastLogTime>> DRAWING MODEL \".concat(this.id),{collapsed:je.level<=2})(),t}_logDrawCallEnd(t,r,i,s){if(t===void 0)return;let n=fR({vertexArray:r,header:\"\".concat(this.id,\" attributes\"),attributes:this._attributes}),{table:o,unusedTable:c,unusedCount:f}=hE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i)}),{table:_,count:w}=hE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i),undefinedOnly:!0});w>0&&je.log(\"MISSING UNIFORMS\",Object.keys(_))(),f>0&&je.log(\"UNUSED UNIFORMS\",Object.keys(c))();let C=dR(this.vertexArray.configuration);je.table(t,n)(),je.table(t,o)(),je.table(t+1,C)(),s&&s.log({logLevel:Ly,message:\"Rendered to \".concat(s.id)}),je.groupEnd(Ly)()}};var gb=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}setupResources(t){for(let r of this.bindings)this._setupTransformFeedback(r,t)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyings:r}=this;return r.length>0&&(t=Object.assign({},t,{varyings:r})),t}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this.bindings[this.currentIndex],{sourceBuffers:i,transformFeedback:s}=r;return{attributes:Object.assign({},i,t.attributes),transformFeedback:s}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t)}getBuffer(t){let{feedbackBuffers:r}=this.bindings[this.currentIndex],i=t?r[t]:null;return i?i instanceof Fr?i:i.buffer:null}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyingName:r}=t,i=this.getBuffer(r);return i?i.getData():null}delete(){for(let t in this.resources)this.resources[t].delete()}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t),this.varyings=t.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&ye(hr(this.gl))}_getFeedbackBuffers(t){let{sourceBuffers:r={}}=t,i={};if(this.bindings[this.currentIndex]&&Object.assign(i,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(let s in this.feedbackMap){let n=this.feedbackMap[s];s in r&&(i[n]=s)}Object.assign(i,t.feedbackBuffers);for(let s in i){let n=i[s];if(typeof n==\"string\"){let o=r[n],{byteLength:c,usage:f,accessor:_}=o;i[s]=this._createNewBuffer(s,{byteLength:c,usage:f,accessor:_})}}return i}_setupBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r=null}=t;Object.assign(this.feedbackMap,t.feedbackMap);let i=this._getFeedbackBuffers(t);this._updateBindings({sourceBuffers:r,feedbackBuffers:i})}_setupTransformFeedback(t,r){let{model:i}=r,{program:s}=i;t.transformFeedback=new ep(this.gl,{program:s,buffers:t.feedbackBuffers})}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this.feedbackMap){let{sourceBuffers:r,feedbackBuffers:i}=this._swapBuffers(this.bindings[this.currentIndex]),s=this._getNextIndex();this.bindings[s]=this._updateBinding(this.bindings[s],{sourceBuffers:r,feedbackBuffers:i})}}_updateBinding(t,r){return t?(Object.assign(t.sourceBuffers,r.sourceBuffers),Object.assign(t.feedbackBuffers,r.feedbackBuffers),t.transformFeedback&&t.transformFeedback.setBuffers(t.feedbackBuffers),t):{sourceBuffers:Object.assign({},r.sourceBuffers),feedbackBuffers:Object.assign({},r.feedbackBuffers)}}_swapBuffers(t){if(!this.feedbackMap)return null;let r=Object.assign({},t.sourceBuffers),i=Object.assign({},t.feedbackBuffers);for(let s in this.feedbackMap){let n=this.feedbackMap[s];r[s]=t.feedbackBuffers[n],i[n]=t.sourceBuffers[s],ye(i[n]instanceof Fr)}return{sourceBuffers:r,feedbackBuffers:i}}_createNewBuffer(t,r){let i=new Fr(this.gl,r);return this.resources[t]&&this.resources[t].delete(),this.resources[t]=i,i}_getNextIndex(){return(this.currentIndex+1)%2}};var Fot=\"transform_uSampler_\",OE=\"transform_uSize_\",x7=\"transform_position\";function b7(e){let{vs:t,sourceTextureMap:r,targetTextureVarying:i,targetTexture:s}=e,o=Object.keys(r).length,c=null,f={},_=t,w={};if(o>0||i){let C=_.split(`\n`),R=C.slice();if(C.forEach((N,j,Y)=>{if(o>0){let rt=Vot(N,r);if(rt){let{updatedLine:$,inject:K}=rt;R[j]=$,w=vy([w,K]),Object.assign(f,rt.samplerTextureMap),o--}}i&&!c&&(c=Uot(N,i))}),i){ye(s);let N=\"\".concat(OE).concat(i),j=\"uniform vec2 \".concat(N,`;\n`),Y=\" vec2 \".concat(x7,\" = transform_getPos(\").concat(N,`);\n gl_Position = vec4(`).concat(x7,`, 0, 1.);\n`);w=vy([w,{\"vs:#decl\":j,\"vs:#main-start\":Y}])}_=R.join(`\n`)}return{vs:_,targetTextureType:c,inject:w,samplerTextureMap:f}}function w7(e){let{sourceTextureMap:t,targetTextureVarying:r,targetTexture:i}=e,s={},n,o;r&&({width:n,height:o}=i,s[\"\".concat(OE).concat(r)]=[n,o]);for(let c in t)({width:n,height:o}=t[c]),s[\"\".concat(OE).concat(c)]=[n,o];return s}function zot(e){return pE(e,[\"attribute\",\"in\"])}function Not(e){let t=\"\".concat(Fot).concat(e),r=\"\".concat(OE).concat(e),i=\" uniform sampler2D \".concat(t,`;\n uniform vec2 `).concat(r,\";\");return{samplerName:t,sizeName:r,uniformDeclerations:i}}function Uot(e,t){let r=pE(e,[\"varying\",\"out\"]);return r&&r.name===t?r.type:null}function Vot(e,t){let r={},i=zot(e);if(!i)return null;let{type:s,name:n}=i;if(n&&t[n]){let o=\"// \".concat(e,\" => Replaced by Transform with a sampler\"),{samplerName:c,sizeName:f,uniformDeclerations:_}=Not(n),w=SR(s),C=\" \".concat(s,\" \").concat(n,\" = transform_getInput(\").concat(c,\", \").concat(f,\").\").concat(w,`;\n`);return r[c]=n,{updatedLine:o,inject:{\"vs:#decl\":_,\"vs:#main-start\":C},samplerTextureMap:r}}return null}var jot={10241:9728,10240:9728,10242:33071,10243:33071},Got=\"transform_output\",_b=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._processVertexShader(t);return Object.assign({},t,r)}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,sourceTextures:i,framebuffer:s,targetTexture:n}=this.bindings[this.currentIndex],o=Object.assign({},r,t.attributes),c=Object.assign({},t.uniforms),f=Object.assign({},t.parameters),_=t.discard;if(this.hasSourceTextures||this.hasTargetTexture){o.transform_elementID=this.elementIDBuffer;for(let C in this.samplerTextureMap){let R=this.samplerTextureMap[C];c[C]=i[R]}this._setSourceTextureParameters();let w=w7({sourceTextureMap:i,targetTextureVarying:this.targetTextureVarying,targetTexture:n});Object.assign(c,w)}return this.hasTargetTexture&&(_=!1,f.viewport=[0,0,s.width,s.height]),{attributes:o,framebuffer:s,uniforms:c,discard:_,parameters:f}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures(t)}getTargetTexture(){let{targetTexture:t}=this.bindings[this.currentIndex];return t}getData(){let{packed:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{framebuffer:r}=this.bindings[this.currentIndex],i=Rh(r);if(!t)return i;let s=i.constructor,n=TR(this.targetTextureType),o=new s(i.length*n/4),c=0;for(let f=0;f0&&arguments[0]!==void 0?arguments[0]:{},{_targetTextureVarying:r,_swapTexture:i}=t;this._swapTexture=i,this.targetTextureVarying=r,this.hasTargetTexture=r,this._setupTextures(t)}_createTargetTexture(t){let{sourceTextures:r,textureOrReference:i}=t;if(i instanceof pi)return i;let s=r[i];return s?(this._targetRefTexName=i,this._createNewTexture(s)):null}_setupTextures(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,_sourceTextures:i={},_targetTexture:s}=t,n=this._createTargetTexture({sourceTextures:i,textureOrReference:s});this.hasSourceTextures=this.hasSourceTextures||i&&Object.keys(i).length>0,this._updateBindings({sourceBuffers:r,sourceTextures:i,targetTexture:n}),\"elementCount\"in t&&this._updateElementIDBuffer(t.elementCount)}_updateElementIDBuffer(t){if(typeof t!=\"number\"||this.elementCount>=t)return;let r=new Float32Array(t);r.forEach((i,s,n)=>{n[s]=s}),this.elementIDBuffer?this.elementIDBuffer.setData({data:r}):this.elementIDBuffer=new Fr(this.gl,{data:r,accessor:{size:1}}),this.elementCount=t}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this._swapTexture){let{sourceTextures:r,targetTexture:i}=this._swapTextures(this.bindings[this.currentIndex]),s=this._getNextIndex();this.bindings[s]=this._updateBinding(this.bindings[s],{sourceTextures:r,targetTexture:i})}}_updateBinding(t,r){let{sourceBuffers:i,sourceTextures:s,targetTexture:n}=r;if(t||(t={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(t.sourceTextures,s),Object.assign(t.sourceBuffers,i),n){t.targetTexture=n;let{width:o,height:c}=n,{framebuffer:f}=t;f?(f.update({attachments:{36064:n},resizeAttachments:!1}),f.resize({width:o,height:c})):t.framebuffer=new yi(this.gl,{id:\"transform-framebuffer\",width:o,height:c,attachments:{36064:n}})}return t}_setSourceTextureParameters(){let t=this.currentIndex,{sourceTextures:r}=this.bindings[t];for(let i in r)r[i].setParameters(jot)}_swapTextures(t){if(!this._swapTexture)return null;let r=Object.assign({},t.sourceTextures);r[this._swapTexture]=t.targetTexture;let i=t.sourceTextures[this._swapTexture];return{sourceTextures:r,targetTexture:i}}_createNewTexture(t){let r=nE(t,{parameters:{10241:9728,10240:9728,10242:33071,10243:33071},pixelStore:{37440:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=r,r}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceTextures:r,targetTexture:i}=this.bindings[this.currentIndex],{vs:s,uniforms:n,targetTextureType:o,inject:c,samplerTextureMap:f}=b7({vs:t.vs,sourceTextureMap:r,targetTextureVarying:this.targetTextureVarying,targetTexture:i}),_=vy([t.inject||{},c]);this.targetTextureType=o,this.samplerTextureMap=f;let w=t._fs||fb({version:gy(s),input:this.targetTextureVarying,inputType:o,output:Got}),C=this.hasSourceTextures||this.targetTextureVarying?[qR].concat(t.modules||[]):t.modules;return{vs:s,fs:w,modules:C,uniforms:n,inject:_}}};var ec=class{static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(r),Object.seal(this)}delete(){let{model:t,bufferTransform:r,textureTransform:i}=this;t&&t.delete(),r&&r.delete(),i&&i.delete()}run(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{clearRenderTarget:r=!0}=t,i=this._updateDrawOptions(t);r&&i.framebuffer&&i.framebuffer.clear({color:!0}),this.model.transform(i)}swap(){let t=!1,r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)t=t||i.swap();ye(t,\"Nothing to swap\")}getBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(t)}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r){let s=i.getData(t);if(s)return s}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};\"elementCount\"in t&&this.model.setVertexCount(t.elementCount);let r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)i.update(t)}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{gl:r}=this;this._buildResourceTransforms(r,t),t=this._updateModelProps(t),this.model=new Sn(r,Object.assign({},t,{fs:t.fs||fb({version:gy(t.vs)}),id:t.id||\"transform-model\",drawMode:t.drawMode||0,vertexCount:t.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let s of i)r=s.updateModelProps(r);return r}_buildResourceTransforms(t,r){Wot(r)&&(this.bufferTransform=new gb(t,r)),Hot(r)&&(this.textureTransform=new _b(t,r)),ye(this.bufferTransform||this.textureTransform,\"must provide source/feedback buffers or source/target textures\")}_updateDrawOptions(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let s of i)r=Object.assign(r,s.getDrawOptions(r));return r}};function Wot(e){return!!(!jf(e.feedbackBuffers)||!jf(e.feedbackMap)||e.varyings&&e.varyings.length>0)}function Hot(e){return!!(!jf(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)}var S7={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},As=class{static get DRAW_MODE(){return S7}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{id:r=Jo(\"geometry\"),drawMode:i=S7.TRIANGLES,attributes:s={},indices:n=null,vertexCount:o=null}=t;this.id=r,this.drawMode=i|0,this.attributes={},this.userData={},this._setAttributes(s,n),this.vertexCount=o||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(t){return\"Geometry \".concat(this.id,\" attribute \").concat(t)}_setAttributes(t,r){r&&(this.indices=ArrayBuffer.isView(r)?{value:r,size:1}:r);for(let i in t){let s=t[i];s=ArrayBuffer.isView(s)?{value:s}:s,ye(ArrayBuffer.isView(s.value),\"\".concat(this._print(i),\": must be typed array or object with value as typed array\")),(i===\"POSITION\"||i===\"positions\")&&!s.size&&(s.size=3),i===\"indices\"?(ye(!this.indices),this.indices=s):this.attributes[i]=s}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount(t,r){if(r)return r.value.length;let i=1/0;for(let s in t){let n=t[s],{value:o,size:c,constant:f}=n;!f&&o&&c>=1&&(i=Math.min(i,o.length/c))}return ye(Number.isFinite(i)),i}};var qot=1,Zot=1,QA=class{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel(t){let{delay:r=0,duration:i=Number.POSITIVE_INFINITY,rate:s=1,repeat:n=1}=t,o=qot++,c={time:0,delay:r,duration:i,rate:s,repeat:n};return this._setChannelTime(c,this.time),this.channels.set(o,c),o}removeChannel(t){this.channels.delete(t);for(let[r,i]of this.animations)i.channel===t&&this.detachAnimation(r)}isFinished(t){let r=this.channels.get(t);return r===void 0?!1:this.time>=r.delay+r.duration*r.repeat}getTime(t){if(t===void 0)return this.time;let r=this.channels.get(t);return r===void 0?-1:r.time}setTime(t){this.time=Math.max(0,t);let r=this.channels.values();for(let s of r)this._setChannelTime(s,this.time);let i=this.animations.values();for(let s of i){let{animation:n,channel:o}=s;n.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(t,r){let i=Zot++;return this.animations.set(i,{animation:t,channel:r}),t.setTime(this.getTime(r)),i}detachAnimation(t){this.animations.delete(t)}update(t){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=t),this.setTime(this.time+(t-this.lastEngineTime)),this.lastEngineTime=t)}_setChannelTime(t,r){let i=r-t.delay,s=t.duration*t.repeat;i>=s?t.time=t.duration*t.rate:(t.time=Math.max(0,i)%t.duration,t.time*=t.rate)}};var Yot=[255,255,255],Qot=1,$ot=0,BE=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"ambient\");let{color:r=Yot}=t,{intensity:i=Qot}=t;this.id=t.id||\"ambient-\".concat($ot++),this.color=r,this.intensity=i}};var Xot=[255,255,255],Kot=1,Jot=[0,0,-1],tat=0,yb=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"directional\"),G(this,\"direction\",void 0),G(this,\"shadow\",void 0);let{color:r=Xot}=t,{intensity:i=Kot}=t,{direction:s=Jot}=t,{_shadow:n=!1}=t;this.id=t.id||\"directional-\".concat(tat++),this.color=r,this.intensity=i,this.type=\"directional\",this.direction=new Fe(s).normalize().toArray(),this.shadow=n}getProjectedLight(t){return this}};var vb=class{constructor(t,r={id:\"pass\"}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"props\",void 0);let{id:i}=r;this.id=i,this.gl=t,this.props={...r}}setProps(t){Object.assign(this.props,t)}render(t){}cleanup(){}};var rc=class extends vb{constructor(...t){super(...t),G(this,\"_lastRenderIndex\",-1)}render(t){let r=this.gl;return wl(r,{framebuffer:t.target}),this._drawLayers(t)}_drawLayers(t){let{target:r,moduleParameters:i,viewports:s,views:n,onViewportActive:o,clearStack:c=!0,clearCanvas:f=!0}=t;t.pass=t.pass||\"unknown\";let _=this.gl;f&&rat(_,r),c&&(this._lastRenderIndex=-1);let w=[];for(let C of s){let R=n&&n[C.id];o?.(C);let N=this._getDrawLayerParams(C,t),j=C.subViewports||[C];for(let Y of j){let rt=this._drawLayersInViewport(_,{target:r,moduleParameters:i,viewport:Y,view:R,pass:t.pass,layers:t.layers},N);w.push(rt)}}return w}_getDrawLayerParams(t,{layers:r,pass:i,isPicking:s=!1,layerFilter:n,cullRect:o,effects:c,moduleParameters:f},_=!1){let w=[],C=T7(this._lastRenderIndex+1),R={layer:r[0],viewport:t,isPicking:s,renderPass:i,cullRect:o},N={};for(let j=0;jGf(t,C))}let w={totalCount:r.length,visibleCount:0,compositeCount:0,pickableCount:0};wl(t,{viewport:_});for(let C=0;C{let o=s.props._offset,c=s.id,f=s.parent&&s.parent.id,_;if(f&&!(f in t)&&i(s.parent,!1),f in r){let w=r[f]=r[f]||T7(t[f],t);_=w(s,n),r[c]=w}else Number.isFinite(o)?(_=o+(t[f]||0),r[c]=null):_=e;return n&&_>=e&&(e=_+1),t[c]=_,_};return i}function eat(e,{moduleParameters:t,target:r,viewport:i}){let s=r&&r.id!==\"default-framebuffer\",n=t&&t.devicePixelRatio||Sl(e),o=s?r.height:e.drawingBufferHeight,c=i;return[c.x*n,o-(c.y+c.height)*n,c.width*n,c.height*n]}function rat(e,t){let r=t?t.width:e.drawingBufferWidth,i=t?t.height:e.drawingBufferHeight;wl(e,{viewport:[0,0,r,i]}),e.clear(16640)}var xb=class extends rc{constructor(t,r){super(t,r),G(this,\"shadowMap\",void 0),G(this,\"depthBuffer\",void 0),G(this,\"fbo\",void 0),this.shadowMap=new pi(t,{width:1,height:1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.depthBuffer=new tl(t,{format:33189,width:1,height:1}),this.fbo=new yi(t,{id:\"shadowmap\",width:1,height:1,attachments:{36064:this.shadowMap,36096:this.depthBuffer}})}render(t){let r=this.fbo;bn(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{let i=t.viewports[0],s=Sl(this.gl),n=i.width*s,o=i.height*s;(n!==r.width||o!==r.height)&&r.resize({width:n,height:o}),super.render({...t,target:r,pass:\"shadow\"})})}shouldDrawLayer(t){return t.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}};var M7=\"#define SMOOTH_EDGE_RADIUS 0.5\",iat=`\n`.concat(M7,`\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n`),nat=`\n`.concat(M7,`\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n`),E7={name:\"geometry\",vs:iat,fs:nat};var sat=Object.keys(Yr).map(e=>\"const int COORDINATE_SYSTEM_\".concat(e,\" = \").concat(Yr[e],\";\")).join(\"\"),oat=Object.keys(Ka).map(e=>\"const int PROJECTION_MODE_\".concat(e,\" = \").concat(Ka[e],\";\")).join(\"\"),aat=Object.keys(Ko).map(e=>\"const int UNIT_\".concat(e.toUpperCase(),\" = \").concat(Ko[e],\";\")).join(\"\"),P7=\"\".concat(sat,`\n`).concat(oat,`\n`).concat(aat,`\n\nuniform int project_uCoordinateSystem;\nuniform int project_uProjectionMode;\nuniform float project_uScale;\nuniform bool project_uWrapLongitude;\nuniform vec3 project_uCommonUnitsPerMeter;\nuniform vec3 project_uCommonUnitsPerWorldUnit;\nuniform vec3 project_uCommonUnitsPerWorldUnit2;\nuniform vec4 project_uCenter;\nuniform mat4 project_uModelMatrix;\nuniform mat4 project_uViewProjectionMatrix;\nuniform vec2 project_uViewportSize;\nuniform float project_uDevicePixelRatio;\nuniform float project_uFocalDistance;\nuniform vec3 project_uCameraPosition;\nuniform vec3 project_uCoordinateOrigin;\nuniform vec3 project_uCommonOrigin;\nuniform bool project_uPseudoMeters;\n\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0;\nconst float GLOBE_RADIUS = 256.0;\nfloat project_size_at_latitude(float lat) {\n float y = clamp(lat, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n}\n\nfloat project_size() {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project_uPseudoMeters == false) {\n \n if (geometry.position.w == 0.0) {\n return project_size_at_latitude(geometry.worldPosition.y);\n }\n \n float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n float y2 = y * y;\n float y4 = y2 * y2;\n float y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n\nfloat project_size_at_latitude(float meters, float lat) {\n return meters * project_uCommonUnitsPerMeter.z * project_size_at_latitude(lat);\n}\nfloat project_size(float meters) {\n return meters * project_uCommonUnitsPerMeter.z * project_size();\n}\n\nvec2 project_size(vec2 meters) {\n return meters * project_uCommonUnitsPerMeter.xy * project_size();\n}\n\nvec3 project_size(vec3 meters) {\n return meters * project_uCommonUnitsPerMeter * project_size();\n}\n\nvec4 project_size(vec4 meters) {\n return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w);\n}\nmat3 project_get_orientation_matrix(vec3 up) {\n vec3 uz = normalize(up);\n vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\n vec3 uy = cross(uz, ux);\n return mat3(ux, uy, uz);\n}\n\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n transform = project_get_orientation_matrix(commonPosition);\n return true;\n }\n return false;\n}\nvec3 project_normal(vec3 vector) {\n vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0);\n vec3 n = normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter);\n mat3 rotation;\n if (project_needs_rotation(geometry.position.xyz, rotation)) {\n n = rotation * n;\n }\n return n;\n}\n\nvec4 project_offset_(vec4 offset) {\n float dy = offset.y;\n vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy;\n return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\nvec2 project_mercator_(vec2 lnglat) {\n float x = lnglat.x;\n if (project_uWrapLongitude) {\n x = mod(x + 180., 360.0) - 180.;\n }\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec3 project_globe_(vec3 lnglatz) {\n float lambda = radians(lnglatz.x);\n float phi = radians(lnglatz.y);\n float cosPhi = cos(phi);\n float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\nvec4 project_position(vec4 position, vec3 position64Low) {\n vec4 position_world = project_uModelMatrix * position;\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_mercator_(position_world.xy),\n project_size_at_latitude(position_world.z, position_world.y),\n position_world.w\n );\n }\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world.xyz += project_uCoordinateOrigin;\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) {\n return vec4(\n project_mercator_(position_world.xy) - project_uCommonOrigin.xy,\n project_size(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_IDENTITY ||\n (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world.xyz -= project_uCoordinateOrigin;\n }\n return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0));\n}\n\nvec4 project_position(vec4 position) {\n return project_position(position, ZERO_64_LOW);\n}\n\nvec3 project_position(vec3 position, vec3 position64Low) {\n vec4 projected_position = project_position(vec4(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nvec3 project_position(vec3 position) {\n vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nvec2 project_position(vec2 position) {\n vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\n return viewProjectionMatrix * position + center;\n}\nvec4 project_common_position_to_clipspace(vec4 position) {\n return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter);\n}\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\n vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0;\n return offset * project_uFocalDistance;\n}\n\nfloat project_size_to_pixel(float meters) {\n return project_size(meters) * project_uScale;\n}\nfloat project_size_to_pixel(float size, int unit) {\n if (unit == UNIT_METERS) return project_size_to_pixel(size);\n if (unit == UNIT_COMMON) return size * project_uScale;\n return size;\n}\nfloat project_pixel_size(float pixels) {\n return pixels / project_uScale;\n}\nvec2 project_pixel_size(vec2 pixels) {\n return pixels / project_uScale;\n}\n`);function lat(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{for(let s in i)if(!lat(i[s],t[s])){r=e(i),t=i;break}return r}}var I7=[0,0,0,0],cat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],C7=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],uat=[0,0,0],L7=[0,0,0],hat=Hf(dat);function ZR(e,t,r=L7){r.length<3&&(r=[r[0],r[1],0]);let i=r,s,n=!0;switch(t===Yr.LNGLAT_OFFSETS||t===Yr.METER_OFFSETS?s=r:s=e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case Ka.WEB_MERCATOR:(t===Yr.LNGLAT||t===Yr.CARTESIAN)&&(s=[0,0,0],n=!1);break;case Ka.WEB_MERCATOR_AUTO_OFFSET:t===Yr.LNGLAT?i=s:t===Yr.CARTESIAN&&(i=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],s=e.unprojectPosition(i),i[0]-=r[0],i[1]-=r[1],i[2]-=r[2]);break;case Ka.IDENTITY:i=e.position.map(Math.fround),i[2]=i[2]||0;break;case Ka.GLOBE:n=!1,s=null;break;default:n=!1}return{geospatialOrigin:s,shaderCoordinateOrigin:i,offsetMode:n}}function fat(e,t,r){let{viewMatrixUncentered:i,projectionMatrix:s}=e,{viewMatrix:n,viewProjectionMatrix:o}=e,c=I7,f=I7,_=e.cameraPosition,{geospatialOrigin:w,shaderCoordinateOrigin:C,offsetMode:R}=ZR(e,t,r);return R&&(f=e.projectPosition(w||C),_=[_[0]-f[0],_[1]-f[1],_[2]-f[2]],f[3]=1,c=zh([],f,o),n=i||n,o=Wf([],s,n),o=Wf([],o,cat)),{viewMatrix:n,viewProjectionMatrix:o,projectionCenter:c,originCommon:f,cameraPosCommon:_,shaderCoordinateOrigin:C,geospatialOrigin:w}}function k7({viewport:e,devicePixelRatio:t=1,modelMatrix:r=null,coordinateSystem:i=Yr.DEFAULT,coordinateOrigin:s=L7,autoWrapLongitude:n=!1}){i===Yr.DEFAULT&&(i=e.isGeospatial?Yr.LNGLAT:Yr.CARTESIAN);let o=hat({viewport:e,devicePixelRatio:t,coordinateSystem:i,coordinateOrigin:s});return o.project_uWrapLongitude=n,o.project_uModelMatrix=r||C7,o}function dat({viewport:e,devicePixelRatio:t,coordinateSystem:r,coordinateOrigin:i}){let{projectionCenter:s,viewProjectionMatrix:n,originCommon:o,cameraPosCommon:c,shaderCoordinateOrigin:f,geospatialOrigin:_}=fat(e,r,i),w=e.getDistanceScales(),C=[e.width*t,e.height*t],R=zh([],[0,0,-e.focalDistance,1],e.projectionMatrix)[3]||1,N={project_uCoordinateSystem:r,project_uProjectionMode:e.projectionMode,project_uCoordinateOrigin:f,project_uCommonOrigin:o.slice(0,3),project_uCenter:s,project_uPseudoMeters:!!e._pseudoMeters,project_uViewportSize:C,project_uDevicePixelRatio:t,project_uFocalDistance:R,project_uCommonUnitsPerMeter:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:uat,project_uScale:e.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:n,project_uModelMatrix:C7,project_uCameraPosition:c};if(_){let j=e.getDistanceScales(_);switch(r){case Yr.METER_OFFSETS:N.project_uCommonUnitsPerWorldUnit=j.unitsPerMeter,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerMeter2;break;case Yr.LNGLAT:case Yr.LNGLAT_OFFSETS:e._pseudoMeters||(N.project_uCommonUnitsPerMeter=j.unitsPerMeter),N.project_uCommonUnitsPerWorldUnit=j.unitsPerDegree,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerDegree2;break;case Yr.CARTESIAN:N.project_uCommonUnitsPerWorldUnit=[1,1,j.unitsPerMeter[2]],N.project_uCommonUnitsPerWorldUnit2=[0,0,j.unitsPerMeter2[2]];break;default:break}}return N}var pat={};function Aat(e=pat){return\"viewport\"in e?k7(e):{}}var Uh={name:\"project\",dependencies:[AE,E7],vs:P7,getUniforms:Aat};function YR(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function $A(e,t){let r=zh([],t,e);return Py(r,r,1/r[3]),r}function QR(e,t){let r=e%t;return r<0?t+r:r}function bb(e,t,r){return er?r:e}function mat(e){return Math.log(e)*Math.LOG2E}var ky=Math.log2||mat;function Ru(e,t){if(!e)throw new Error(t||\"@math.gl/web-mercator: assertion failed.\")}var Vh=Math.PI,R7=Vh/4,Du=Vh/180,$R=180/Vh,Ry=512,FE=4003e4,Dy=85.051129,D7=1.5;function XR(e){return ky(e)}function El(e){let[t,r]=e;Ru(Number.isFinite(t)),Ru(Number.isFinite(r)&&r>=-90&&r<=90,\"invalid latitude\");let i=t*Du,s=r*Du,n=Ry*(i+Vh)/(2*Vh),o=Ry*(Vh+Math.log(Math.tan(R7+s*.5)))/(2*Vh);return[n,o]}function Yc(e){let[t,r]=e,i=t/Ry*(2*Vh)-Vh,s=2*(Math.atan(Math.exp(r/Ry*(2*Vh)-Vh))-R7);return[i*$R,s*$R]}function KR(e){let{latitude:t}=e;Ru(Number.isFinite(t));let r=Math.cos(t*Du);return XR(FE*r)-9}function wb(e){let t=Math.cos(e*Du);return Ry/FE/t}function Oy(e){let{latitude:t,longitude:r,highPrecision:i=!1}=e;Ru(Number.isFinite(t)&&Number.isFinite(r));let s=Ry,n=Math.cos(t*Du),o=s/360,c=o/n,f=s/FE/n,_={unitsPerMeter:[f,f,f],metersPerUnit:[1/f,1/f,1/f],unitsPerDegree:[o,c,f],degreesPerUnit:[1/o,1/c,1/f]};if(i){let w=Du*Math.tan(t*Du)/n,C=o*w/2,R=s/FE*w,N=R/c*f;_.unitsPerDegree2=[0,C,R],_.unitsPerMeter2=[N,0,N]}return _}function Sb(e,t){let[r,i,s]=e,[n,o,c]=t,{unitsPerMeter:f,unitsPerMeter2:_}=Oy({longitude:r,latitude:i,highPrecision:!0}),w=El(e);w[0]+=n*(f[0]+_[0]*o),w[1]+=o*(f[1]+_[1]*o);let C=Yc(w),R=(s||0)+(c||0);return Number.isFinite(s)||Number.isFinite(c)?[C[0],C[1],R]:C}function zE(e){let{height:t,pitch:r,bearing:i,altitude:s,scale:n,center:o}=e,c=YR();eg(c,c,[0,0,-s]),IE(c,c,-r*Du),CE(c,c,i*Du);let f=n/t;return Ey(c,c,[f,f,f]),o&&eg(c,c,wj([],o)),c}function JR(e){let{width:t,height:r,altitude:i,pitch:s=0,offset:n,center:o,scale:c,nearZMultiplier:f=1,farZMultiplier:_=1}=e,{fovy:w=ig(D7)}=e;i!==void 0&&(w=ig(i));let C=w*Du,R=s*Du,N=Tb(w),j=N;o&&(j+=o[2]*c/Math.cos(R)/r);let Y=C*(.5+(n?n[1]:0)/r),rt=Math.sin(Y)*j/Math.sin(bb(Math.PI/2-R-Y,.01,Math.PI-.01)),$=Math.sin(R)*rt+j,K=j*10,tt=Math.min($*_,K);return{fov:C,aspect:t/r,focalDistance:N,near:f,far:tt}}function ig(e){return 2*Math.atan(.5/e)*$R}function Tb(e){return .5/Math.tan(.5*e*Du)}function By(e,t){let[r,i,s=0]=e;return Ru(Number.isFinite(r)&&Number.isFinite(i)&&Number.isFinite(s)),$A(t,[r,i,s,1])}function qf(e,t,r=0){let[i,s,n]=e;if(Ru(Number.isFinite(i)&&Number.isFinite(s),\"invalid pixel coordinate\"),Number.isFinite(n))return $A(t,[i,s,n,1]);let o=$A(t,[i,s,0,1]),c=$A(t,[i,s,1,1]),f=o[2],_=c[2],w=f===_?0:((r||0)-f)/(_-f);return gE([],o,c,w)}function Mb(e){let{width:t,height:r,bounds:i,minExtent:s=0,maxZoom:n=24,offset:o=[0,0]}=e,[[c,f],[_,w]]=i,C=gat(e.padding),R=El([c,bb(w,-Dy,Dy)]),N=El([_,bb(f,-Dy,Dy)]),j=[Math.max(Math.abs(N[0]-R[0]),s),Math.max(Math.abs(N[1]-R[1]),s)],Y=[t-C.left-C.right-Math.abs(o[0])*2,r-C.top-C.bottom-Math.abs(o[1])*2];Ru(Y[0]>0&&Y[1]>0);let rt=Y[0]/j[0],$=Y[1]/j[1],K=(C.right-C.left)/2/rt,tt=(C.top-C.bottom)/2/$,ut=[(N[0]+R[0])/2+K,(N[1]+R[1])/2+tt],Pt=Yc(ut),Ot=Math.min(n,ky(Math.abs(Math.min(rt,$))));return Ru(Number.isFinite(Ot)),{longitude:Pt[0],latitude:Pt[1],zoom:Ot}}function gat(e=0){return typeof e==\"number\"?{top:e,bottom:e,left:e,right:e}:(Ru(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var O7=Math.PI/180;function Eb(e,t=0){let{width:r,height:i,unproject:s}=e,n={targetZ:t},o=s([0,i],n),c=s([r,i],n),f,_,w=e.fovy?.5*e.fovy*O7:Math.atan(.5/e.altitude),C=(90-e.pitch)*O7;return w>C-.01?(f=B7(e,0,t),_=B7(e,r,t)):(f=s([0,0],n),_=s([r,0],n)),[o,c,_,f]}function B7(e,t,r){let{pixelUnprojectionMatrix:i}=e,s=$A(i,[t,0,1,1]),n=$A(i,[t,e.height,1,1]),c=(r*e.distanceScales.unitsPerMeter[2]-s[2])/(n[2]-s[2]),f=gE([],s,n,c),_=Yc(f);return _.push(r),_}var z7=512;function NE(e){let{width:t,height:r,pitch:i=0}=e,{longitude:s,latitude:n,zoom:o,bearing:c=0}=e;(s<-180||s>180)&&(s=QR(s+180,360)-180),(c<-180||c>180)&&(c=QR(c+180,360)-180);let f=ky(r/z7);if(o<=f)o=f,n=0;else{let _=r/2/Math.pow(2,o),w=Yc([0,_])[1];if(nC&&(n=C)}}return{width:t,height:r,longitude:s,latitude:n,zoom:o,pitch:i,bearing:c}}var vat=`\nconst int max_lights = 2;\nuniform mat4 shadow_uViewProjectionMatrices[max_lights];\nuniform vec4 shadow_uProjectCenters[max_lights];\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform int shadow_uLightId;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n if (shadow_uDrawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[shadow_uLightId], shadow_uProjectCenters[shadow_uLightId]);\n }\n if (shadow_uUseShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow_uLightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[i], shadow_uProjectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n`,xat=`\nconst int max_lights = 2;\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\nuniform vec4 shadow_uColor;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture2D(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow_uDrawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow_uUseShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow_uLightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow_uColor.a / shadow_uLightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow_uColor.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n`,bat=Hf(Eat),wat=Hf(Pat),Sat=[0,0,0,1],Tat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function Mat(e,t){let[r,i,s]=e,n=qf([r,i,s],t);return Number.isFinite(s)?n:[n[0],n[1],0]}function Eat({viewport:e,center:t}){return new wn(e.viewProjectionMatrix).invert().transform(t)}function Pat({viewport:e,shadowMatrices:t}){let r=[],i=e.pixelUnprojectionMatrix,s=e.isGeospatial?void 0:1,n=[[0,0,s],[e.width,0,s],[0,e.height,s],[e.width,e.height,s],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(o=>Mat(o,i));for(let o of t){let c=o.clone().translate(new Fe(e.center).negate()),f=n.map(w=>c.transform(w)),_=new wn().ortho({left:Math.min(...f.map(w=>w[0])),right:Math.max(...f.map(w=>w[0])),bottom:Math.min(...f.map(w=>w[1])),top:Math.max(...f.map(w=>w[1])),near:Math.min(...f.map(w=>-w[2])),far:Math.max(...f.map(w=>-w[2]))});r.push(_.multiplyRight(o))}return r}function Iat(e,t){let{shadowEnabled:r=!0}=e;if(!r||!e.shadowMatrices||!e.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};let i={shadow_uDrawShadowMap:!!e.drawToShadowMap,shadow_uUseShadowMap:e.shadowMaps?e.shadowMaps.length>0:!1,shadow_uColor:e.shadowColor||Sat,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},s=bat({viewport:e.viewport,center:t.project_uCenter}),n=[],o=wat({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice();for(let c=0;c0?i[\"shadow_uShadowMap\".concat(c)]=e.shadowMaps[c]:i[\"shadow_uShadowMap\".concat(c)]=e.dummyShadowMap;return i}var Pb={name:\"shadow\",dependencies:[Uh],vs:vat,fs:xat,inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n position = shadow_setVertexPosition(geometry.position);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n color = shadow_filterShadowColor(color);\n `},getUniforms:(e={},t={})=>\"viewport\"in e&&(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0)?Iat(e,t):{}};var Cat={color:[255,255,255],intensity:1},N7=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],Lat=[0,0,0,200/255],Fy=class{constructor(t={}){G(this,\"id\",\"lighting-effect\"),G(this,\"props\",void 0),G(this,\"shadowColor\",Lat),G(this,\"shadow\",void 0),G(this,\"ambientLight\",void 0),G(this,\"directionalLights\",void 0),G(this,\"pointLights\",void 0),G(this,\"shadowPasses\",[]),G(this,\"shadowMaps\",[]),G(this,\"dummyShadowMap\",null),G(this,\"programManager\",void 0),G(this,\"shadowMatrices\",void 0),this.setProps(t)}setProps(t){this.ambientLight=null,this.directionalLights=[],this.pointLights=[];for(let r in t){let i=t[r];switch(i.type){case\"ambient\":this.ambientLight=i;break;case\"directional\":this.directionalLights.push(i);break;case\"point\":this.pointLights.push(i);break;default:}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(r=>r.shadow),this.props=t}preRender(t,{layers:r,layerFilter:i,viewports:s,onViewportActive:n,views:o}){if(this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses(t),this.programManager||(this.programManager=Nh.getDefaultProgramManager(t),Pb&&this.programManager.addDefaultModule(Pb)),this.dummyShadowMap||(this.dummyShadowMap=new pi(t,{width:1,height:1}));for(let c=0;ci.getProjectedLight({layer:t})),pointLights:this.pointLights.map(i=>i.getProjectedLight({layer:t}))},r}cleanup(){for(let t of this.shadowPasses)t.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(Pb),this.programManager=null)}_calculateMatrices(){let t=[];for(let r of this.directionalLights){let i=new wn().lookAt({eye:new Fe(r.direction).negate()});t.push(i)}return t}_createShadowPasses(t){for(let r=0;rs&&(n=s);let o=this._pool,c=t.BYTES_PER_ELEMENT*n,f=o.findIndex(_=>_.byteLength>=c);if(f>=0){let _=new t(o.splice(f,1)[0],0,n);return i&&_.fill(0),_}return new t(n)}_release(t){if(!ArrayBuffer.isView(t))return;let r=this._pool,{buffer:i}=t,{byteLength:s}=i,n=r.findIndex(o=>o.byteLength>=s);n<0?r.push(i):(n>0||r.lengththis.opts.poolSize&&r.shift()}},jh=new tD;function Ny(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function V7(e){return[e[12],e[13],e[14]]}function j7(e){return{left:zy(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:zy(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:zy(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:zy(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:zy(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:zy(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}var U7=new Fe;function zy(e,t,r,i){U7.set(e,t,r);let s=U7.len();return{distance:i/s,normal:new Fe(-e/s,-t/s,-r/s)}}function kat(e){return e-Math.fround(e)}var Ib;function UE(e,t){let{size:r=1,startIndex:i=0}=t,s=t.endIndex!==void 0?t.endIndex:e.length,n=(s-i)/r;Ib=jh.allocate(Ib,n,{type:Float32Array,size:r*2});let o=i,c=0;for(;osuper.render({target:o,layers:t,layerFilter:r,views:i,viewports:s,onViewportActive:n,cullRect:C,effects:R?.filter(ut=>ut.useInPicking),pass:N,isPicking:!0,moduleParameters:Y}));return this._colorEncoderState=null,{decodePickingColor:$&&Nat.bind(null,$),stats:K}}shouldDrawLayer(t){let{pickable:r,operation:i}=t.props;return r&&i.includes(\"draw\")||i.includes(\"terrain\")||i.includes(\"mask\")}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters(t,r,i){let s={...t.props.parameters},{pickable:n,operation:o}=t.props;return this._colorEncoderState?n&&o.includes(\"draw\")&&(Object.assign(s,Z7),s.blend=!0,s.blendColor=zat(this._colorEncoderState,t,i)):s.blend=!1,o.includes(\"terrain\")&&(s.blend=!1),s}_resetColorEncoder(t){return this._colorEncoderState=t?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function zat(e,t,r){let{byLayer:i,byAlpha:s}=e,n,o=i.get(t);return o?(o.viewports.push(r),n=o.a):(n=i.size+1,n<=255?(o={a:n,layer:t,viewports:[r]},i.set(t,o),s[n]=o):(nr.warn(\"Too many pickable layers, only picking the first 255\")(),n=0)),[0,0,0,n/255]}function Nat(e,t){let r=e.byAlpha[t[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(t)}}var XA={NO_STATE:\"Awaiting state\",MATCHED:\"Matched. State transferred from previous layer\",INITIALIZED:\"Initialized\",AWAITING_GC:\"Discarded. Awaiting garbage collection\",AWAITING_FINALIZATION:\"No longer matched. Awaiting garbage collection\",FINALIZED:\"Finalized! Awaiting garbage collection\"},Uy=Symbol.for(\"component\"),Ou=Symbol.for(\"propTypes\"),VE=Symbol.for(\"deprecatedProps\"),ip=Symbol.for(\"asyncPropDefaults\"),Zf=Symbol.for(\"asyncPropOriginal\"),Gh=Symbol.for(\"asyncPropResolved\");function np(e,t=()=>!0){return Array.isArray(e)?Y7(e,t,[]):t(e)?[e]:[]}function Y7(e,t,r){let i=-1;for(;++i0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(t,r){if(t===this._data&&!r)return;this._data=t;let i=++this._loadCount,s=t;typeof t==\"string\"&&(s=NA(t)),s instanceof Promise?(this.isLoaded=!1,this._loader=s.then(n=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=n)}).catch(n=>{this._loadCount===i&&(this.isLoaded=!0,this._error=n||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=t);for(let n of this._subscribers)n.onChange(this.getData())}};var Lb=class{constructor({gl:t,protocol:r}){G(this,\"protocol\",void 0),G(this,\"_context\",void 0),G(this,\"_resources\",void 0),G(this,\"_consumers\",void 0),G(this,\"_pruneRequest\",void 0),this.protocol=r||\"resource://\",this._context={gl:t,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(t){return t.startsWith(this.protocol)?!0:t in this._resources}add({resourceId:t,data:r,forceUpdate:i=!1,persistent:s=!0}){let n=this._resources[t];n?n.setData(r,i):(n=new Cb(t,r,this._context),this._resources[t]=n),n.persistent=s}remove(t){let r=this._resources[t];r&&(r.delete(),delete this._resources[t])}unsubscribe({consumerId:t}){let r=this._consumers[t];if(r){for(let i in r){let s=r[i],n=this._resources[s.resourceId];n&&n.unsubscribe(s)}delete this._consumers[t],this.prune()}}subscribe({resourceId:t,onChange:r,consumerId:i,requestId:s=\"default\"}){let{_resources:n,protocol:o}=this;t.startsWith(o)&&(t=t.replace(o,\"\"),n[t]||this.add({resourceId:t,data:null,persistent:!1}));let c=n[t];if(this._track(i,s,c,r),c)return c.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let t in this._resources)this._resources[t].delete()}_track(t,r,i,s){let n=this._consumers,o=n[t]=n[t]||{},c=o[r]||{},f=c.resourceId&&this._resources[c.resourceId];f&&(f.unsubscribe(c),this.prune()),i&&(o[r]=c,c.onChange=s,c.resourceId=i.id,i.subscribe(c))}_prune(){this._pruneRequest=null;for(let t of Object.keys(this._resources)){let r=this._resources[t];!r.persistent&&!r.inUse()&&(r.delete(),delete this._resources[t])}}};var Uat=`\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n mat3 rotation;\n if (project_needs_rotation(projectedPosition, rotation)) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n`,oo={name:\"project32\",dependencies:[Uh],vs:Uat};var ta={inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n // for picking depth values\n picking_setPickingAttribute(position.z / position.w);\n `,\"vs:DECKGL_FILTER_COLOR\":`\n picking_setPickingColor(geometry.pickingColor);\n `,\"fs:#decl\":`\nuniform bool picking_uAttribute;\n `,\"fs:DECKGL_FILTER_COLOR\":{order:99,injection:`\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n `}},...DE};var Vat=[Uh],jat=[\"vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)\",\"fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)\"];function Q7(e){let t=Nh.getDefaultProgramManager(e);for(let r of Vat)t.addDefaultModule(r);for(let r of jat)t.addShaderHook(r);return t}var Gat=\"layerManager.setLayers\",Wat=\"layerManager.activateViewport\",kb=class{constructor(t,{deck:r,stats:i,viewport:s,timeline:n}={}){G(this,\"layers\",void 0),G(this,\"context\",void 0),G(this,\"resourceManager\",void 0),G(this,\"_lastRenderedLayers\",[]),G(this,\"_needsRedraw\",!1),G(this,\"_needsUpdate\",!1),G(this,\"_nextLayers\",null),G(this,\"_debug\",!1),G(this,\"activateViewport\",o=>{Cs(Wat,this,o),o&&(this.context.viewport=o)}),this.layers=[],this.resourceManager=new Lb({gl:t,protocol:\"deck://\"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:t,deck:r,programManager:t&&Q7(t),stats:i||new Vf({id:\"deck.gl\"}),viewport:s||new ic({id:\"DEFAULT-INITIAL-VIEWPORT\"}),timeline:n||new QA,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(let t of this.layers)this._finalizeLayer(t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);for(let i of this.layers){let s=i.getNeedsRedraw(t);r=r||s}return r}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?\"layers changed\":this._needsUpdate}setNeedsRedraw(t){this._needsRedraw=this._needsRedraw||t}setNeedsUpdate(t){this._needsUpdate=this._needsUpdate||t}getLayers({layerIds:t}={}){return t?this.layers.filter(r=>t.find(i=>r.id.indexOf(i)===0)):this.layers}setProps(t){\"debug\"in t&&(this._debug=t.debug),\"userData\"in t&&(this.context.userData=t.userData),\"layers\"in t&&(this._nextLayers=t.layers),\"onError\"in t&&(this.context.onError=t.onError)}setLayers(t,r){Cs(Gat,this,r,t),this._lastRenderedLayers=t;let i=np(t,Boolean);for(let s of i)s.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){let t=this.needsUpdate();t&&(this.setNeedsRedraw(\"updating layers: \".concat(t)),this.setLayers(this._nextLayers||this._lastRenderedLayers,t)),this._nextLayers=null}_handleError(t,r,i){i.raiseError(r,\"\".concat(t,\" of \").concat(i))}_updateLayers(t,r){let i={};for(let o of t)i[o.id]?nr.warn(\"Multiple old layers with same id \".concat(o.id))():i[o.id]=o;let s=[];this._updateSublayersRecursively(r,i,s),this._finalizeOldLayers(i);let n=!1;for(let o of s)if(o.hasUniformTransition()){n=\"Uniform transition in \".concat(o);break}this._needsUpdate=n,this.layers=s}_updateSublayersRecursively(t,r,i){for(let s of t){s.context=this.context;let n=r[s.id];n===null&&nr.warn(\"Multiple new layers with same id \".concat(s.id))(),r[s.id]=null;let o=null;try{this._debug&&n!==s&&s.validateProps(),n?(this._transferLayerState(n,s),this._updateLayer(s)):this._initializeLayer(s),i.push(s),o=s.isComposite?s.getSubLayers():null}catch(c){this._handleError(\"matching\",c,s)}o&&this._updateSublayersRecursively(o,r,i)}}_finalizeOldLayers(t){for(let r in t){let i=t[r];i&&this._finalizeLayer(i)}}_initializeLayer(t){try{t._initialize(),t.lifecycle=XA.INITIALIZED}catch(r){this._handleError(\"initialization\",r,t)}}_transferLayerState(t,r){r._transferState(t),r.lifecycle=XA.MATCHED,r!==t&&(t.lifecycle=XA.AWAITING_GC)}_updateLayer(t){try{t._update()}catch(r){this._handleError(\"update\",r,t)}}_finalizeLayer(t){this._needsRedraw=this._needsRedraw||\"finalized \".concat(t),t.lifecycle=XA.AWAITING_FINALIZATION;try{t._finalize(),t.lifecycle=XA.FINALIZED}catch(r){this._handleError(\"finalization\",r,t)}}};function ao(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let i=0;ir.containsPixel(t)):this._viewports}getViews(){let t={};return this.views.forEach(r=>{t[r.id]=r}),t}getView(t){return this.views.find(r=>r.id===t)}getViewState(t){let r=typeof t==\"string\"?this.getView(t):t,i=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(i):i}getViewport(t){return this._viewportMap[t]}unproject(t,r){let i=this.getViewports(),s={x:t[0],y:t[1]};for(let n=i.length-1;n>=0;--n){let o=i[n];if(o.containsPixel(s)){let c=t.slice();return c[0]-=o.x,c[1]-=o.y,o.unproject(c,r)}}return null}setProps(t){t.views&&this._setViews(t.views),t.viewState&&this._setViewState(t.viewState),(\"width\"in t||\"height\"in t)&&this._setSize(t.width,t.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(t,r){(t!==this.width||r!==this.height)&&(this.width=t,this.height=r,this.setNeedsUpdate(\"Size changed\"))}_setViews(t){t=np(t,Boolean),this._diffViews(t,this.views)&&this.setNeedsUpdate(\"views changed\"),this.views=t}_setViewState(t){t?(!ao(t,this.viewState,3)&&this.setNeedsUpdate(\"viewState changed\"),this.viewState=t):nr.warn(\"missing `viewState` or `initialViewState`\")()}_onViewStateChange(t,r){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...r,viewId:t})}_createController(t,r){let i=r.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,r.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:n=>{var o;return(o=this.getView(t.id))===null||o===void 0?void 0:o.makeViewport({viewState:n,width:this.width,height:this.height})}})}_updateController(t,r,i,s){let n=t.controller;if(n&&i){let o={...r,...n,id:t.id,x:i.x,y:i.y,width:i.width,height:i.height};return(!s||s.constructor!==n.type)&&(s=this._createController(t,o)),s&&s.setProps(o),s}return null}_rebuildViewports(){let{views:t}=this,r=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let s=t.length;s--;){let n=t[s],o=this.getViewState(n),c=n.makeViewport({viewState:o,width:this.width,height:this.height}),f=r[n.id],_=!!n.controller;_&&!f&&(i=!0),(i||!_)&&f&&(f.finalize(),f=null),this.controllers[n.id]=this._updateController(n,o,c,f),c&&this._viewports.unshift(c)}for(let s in r){let n=r[s];n&&!this.controllers[s]&&n.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(t=>{t.id&&(this._viewportMap[t.id]=this._viewportMap[t.id]||t)})}_diffViews(t,r){return t.length!==r.length?!0:t.some((i,s)=>!t[s].equals(r[s]))}};var Hat=/([0-9]+\\.?[0-9]*)(%|px)/;function sp(e){switch(typeof e){case\"number\":return{position:e,relative:!1};case\"string\":let t=Hat.exec(e);if(t&&t.length>=3){let r=t[2]===\"%\",i=parseFloat(t[1]);return{position:r?i/100:i,relative:r}}default:throw new Error(\"Could not parse position string \".concat(e))}}function op(e,t){return e.relative?Math.round(e.position*t):e.position}function br(e,t){if(!e)throw new Error(t||\"deck.gl: assertion failed.\")}var Qc=class{constructor(t){G(this,\"id\",void 0),G(this,\"viewportInstance\",void 0),G(this,\"_x\",void 0),G(this,\"_y\",void 0),G(this,\"_width\",void 0),G(this,\"_height\",void 0),G(this,\"_padding\",void 0),G(this,\"props\",void 0);let{id:r,x:i=0,y:s=0,width:n=\"100%\",height:o=\"100%\",padding:c=null,viewportInstance:f}=t||{};br(!f||f instanceof ic),this.viewportInstance=f,this.id=r||this.constructor.displayName||\"view\",this.props={...t,id:this.id},this._x=sp(i),this._y=sp(s),this._width=sp(n),this._height=sp(o),this._padding=c&&{left:sp(c.left||0),right:sp(c.right||0),top:sp(c.top||0),bottom:sp(c.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(t){return this===t?!0:this.viewportInstance?t.viewportInstance?this.viewportInstance.equals(t.viewportInstance):!1:this.ViewportType===t.ViewportType&&ao(this.props,t.props,2)}makeViewport({width:t,height:r,viewState:i}){if(this.viewportInstance)return this.viewportInstance;i=this.filterViewState(i);let s=this.getDimensions({width:t,height:r});return!s.height||!s.width?null:new this.ViewportType({...i,...this.props,...s})}getViewStateId(){let{viewState:t}=this.props;return typeof t==\"string\"?t:t?.id||this.id}filterViewState(t){if(this.props.viewState&&typeof this.props.viewState==\"object\"){if(!this.props.viewState.id)return this.props.viewState;let r={...t};for(let i in this.props.viewState)i!==\"id\"&&(r[i]=this.props.viewState[i]);return r}return t}getDimensions({width:t,height:r}){let i={x:op(this._x,t),y:op(this._y,r),width:op(this._width,t),height:op(this._height,r)};return this._padding&&(i.padding={left:op(this._padding.left,t),top:op(this._padding.top,r),right:op(this._padding.right,t),bottom:op(this._padding.bottom,r)}),i}get controller(){let t=this.props.controller;return t?t===!0?{type:this.ControllerType}:typeof t==\"function\"?{type:t}:{type:this.ControllerType,...t}:null}};var $c=class{constructor(t){G(this,\"_inProgress\",void 0),G(this,\"_handle\",void 0),G(this,\"_timeline\",void 0),G(this,\"time\",void 0),G(this,\"settings\",void 0),this._inProgress=!1,this._handle=null,this._timeline=t,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start(t){var r,i;this.cancel(),this.settings=t,this._inProgress=!0,(r=(i=this.settings).onStart)===null||r===void 0||r.call(i,this)}end(){if(this._inProgress){var t,r;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,(t=(r=this.settings).onEnd)===null||t===void 0||t.call(r,this)}}cancel(){if(this._inProgress){var t,r;(t=(r=this.settings).onInterrupt)===null||t===void 0||t.call(r,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var t,r;if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:i,settings:s}=this;this._handle=i.addChannel({delay:i.getTime(),duration:s.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),(t=(r=this.settings).onUpdate)===null||t===void 0||t.call(r,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var $7=()=>{},nD={BREAK:1,SNAP_TO_END:2,IGNORE:3},qat=e=>e,Zat=nD.BREAK,Db=class{constructor(t){G(this,\"getControllerState\",void 0),G(this,\"props\",void 0),G(this,\"propsInTransition\",void 0),G(this,\"transition\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"_onTransitionUpdate\",r=>{let{time:i,settings:{interpolator:s,startProps:n,endProps:o,duration:c,easing:f}}=r,_=f(i/c),w=s.interpolateProps(n,o,_);this.propsInTransition=this.getControllerState({...this.props,...w}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=t.getControllerState,this.propsInTransition=null,this.transition=new $c(t.timeline),this.onViewStateChange=t.onViewStateChange||$7,this.onStateChange=t.onStateChange||$7}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(t){let r=!1,i=this.props;if(this.props=t,!i||this._shouldIgnoreViewportChange(i,t))return!1;if(this._isTransitionEnabled(t)){let s=i;if(this.transition.inProgress){let{interruption:n,endProps:o}=this.transition.settings;s={...i,...n===nD.SNAP_TO_END?o:this.propsInTransition||i}}this._triggerTransition(s,t),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(t){let{transitionDuration:r,transitionInterpolator:i}=t;return(r>0||r===\"auto\")&&!!i}_isUpdateDueToCurrentTransition(t){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(t,this.propsInTransition):!1}_shouldIgnoreViewportChange(t,r){return this.transition.inProgress?this.transition.settings.interruption===nD.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(t,r):!0}_triggerTransition(t,r){let i=this.getControllerState(t),s=this.getControllerState(r).shortestPathFrom(i),n=r.transitionInterpolator,o=n.getDuration?n.getDuration(t,r):r.transitionDuration;if(o===0)return;let c=n.initializeProps(t,s);this.propsInTransition={};let f={duration:o,easing:r.transitionEasing||qat,interpolator:n,interruption:r.transitionInterruption||Zat,startProps:c.start,endProps:c.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(f),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(t){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),t?.(r)}}};var Ob=class{constructor(t){G(this,\"_propsToCompare\",void 0),G(this,\"_propsToExtract\",void 0),G(this,\"_requiredProps\",void 0);let{compare:r,extract:i,required:s}=t;this._propsToCompare=r,this._propsToExtract=i||r,this._requiredProps=s}arePropsEqual(t,r){for(let i of this._propsToCompare)if(!(i in t)||!(i in r)||!To(t[i],r[i]))return!1;return!0}initializeProps(t,r){let i={},s={};for(let n of this._propsToExtract)(n in t||n in r)&&(i[n]=t[n],s[n]=r[n]);return this._checkRequiredProps(i),this._checkRequiredProps(s),{start:i,end:s}}getDuration(t,r){return r.transitionDuration}_checkRequiredProps(t){this._requiredProps&&this._requiredProps.forEach(r=>{let i=t[r];br(Number.isFinite(i)||Array.isArray(i),\"\".concat(r,\" is required for transition\"))})}};var Yat=[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\"],Qat=[\"longitude\",\"latitude\",\"zoom\"],sg=class extends Ob{constructor(t={}){let r=Array.isArray(t)?t:t.transitionProps,i=Array.isArray(t)?{}:t;i.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:Yat,required:Qat},super(i.transitionProps),G(this,\"opts\",void 0),this.opts=i}initializeProps(t,r){let i=super.initializeProps(t,r),{makeViewport:s,around:n}=this.opts;if(s&&n){let o=s(t),c=s(r),f=o.unproject(n);i.start.around=n,Object.assign(i.end,{around:c.project(f),aroundPosition:f,width:r.width,height:r.height})}return i}interpolateProps(t,r,i){let s={};for(let n of this._propsToExtract)s[n]=tc(t[n]||0,r[n]||0,i);if(r.aroundPosition&&this.opts.makeViewport){let n=this.opts.makeViewport({...r,...s});Object.assign(s,n.panByPosition(r.aroundPosition,tc(t.around,r.around,i)))}return s}};var KA={transitionDuration:0},$at=300,jE=e=>1-(1-e)*(1-e),Vy={WHEEL:[\"wheel\"],PAN:[\"panstart\",\"panmove\",\"panend\"],PINCH:[\"pinchstart\",\"pinchmove\",\"pinchend\"],TRIPLE_PAN:[\"tripanstart\",\"tripanmove\",\"tripanend\"],DOUBLE_TAP:[\"doubletap\"],KEYBOARD:[\"keydown\"]},og={},Bb=class{constructor(t){G(this,\"props\",void 0),G(this,\"state\",{}),G(this,\"transitionManager\",void 0),G(this,\"eventManager\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"makeViewport\",void 0),G(this,\"_controllerState\",void 0),G(this,\"_events\",{}),G(this,\"_interactionState\",{isDragging:!1}),G(this,\"_customEvents\",[]),G(this,\"_eventStartBlocked\",null),G(this,\"_panMove\",!1),G(this,\"invertPan\",!1),G(this,\"dragMode\",\"rotate\"),G(this,\"inertia\",0),G(this,\"scrollZoom\",!0),G(this,\"dragPan\",!0),G(this,\"dragRotate\",!0),G(this,\"doubleClickZoom\",!0),G(this,\"touchZoom\",!0),G(this,\"touchRotate\",!1),G(this,\"keyboard\",!0),this.transitionManager=new Db({...t,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=t.eventManager,this.onViewStateChange=t.onViewStateChange||(()=>{}),this.onStateChange=t.onStateChange||(()=>{}),this.makeViewport=t.makeViewport}set events(t){this.toggleEvents(this._customEvents,!1),this.toggleEvents(t,!0),this._customEvents=t,this.props&&this.setProps(this.props)}finalize(){for(let r in this._events)if(this._events[r]){var t;(t=this.eventManager)===null||t===void 0||t.off(r,this.handleEvent)}this.transitionManager.finalize()}handleEvent(t){this._controllerState=void 0;let r=this._eventStartBlocked;switch(t.type){case\"panstart\":return r?!1:this._onPanStart(t);case\"panmove\":return this._onPan(t);case\"panend\":return this._onPanEnd(t);case\"pinchstart\":return r?!1:this._onPinchStart(t);case\"pinchmove\":return this._onPinch(t);case\"pinchend\":return this._onPinchEnd(t);case\"tripanstart\":return r?!1:this._onTriplePanStart(t);case\"tripanmove\":return this._onTriplePan(t);case\"tripanend\":return this._onTriplePanEnd(t);case\"doubletap\":return this._onDoubleTap(t);case\"wheel\":return this._onWheel(t);case\"keydown\":return this._onKeyDown(t);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(t){let{x:r,y:i}=this.props,{offsetCenter:s}=t;return[s.x-r,s.y-i]}isPointInBounds(t,r){let{width:i,height:s}=this.props;if(r&&r.handled)return!1;let n=t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=s;return n&&r&&r.stopPropagation(),n}isFunctionKeyPressed(t){let{srcEvent:r}=t;return!!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(t){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},t);this._eventStartBlocked=r}setProps(t){t.dragMode&&(this.dragMode=t.dragMode),this.props=t,\"transitionInterpolator\"in t||(t.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(t);let{inertia:r}=t;this.inertia=Number.isFinite(r)?r:r===!0?$at:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:n=!0,doubleClickZoom:o=!0,touchZoom:c=!0,touchRotate:f=!1,keyboard:_=!0}=t,w=!!this.onViewStateChange;this.toggleEvents(Vy.WHEEL,w&&i),this.toggleEvents(Vy.PAN,w),this.toggleEvents(Vy.PINCH,w&&(c||f)),this.toggleEvents(Vy.TRIPLE_PAN,w&&f),this.toggleEvents(Vy.DOUBLE_TAP,w&&o),this.toggleEvents(Vy.KEYBOARD,w&&_),this.scrollZoom=i,this.dragPan=s,this.dragRotate=n,this.doubleClickZoom=o,this.touchZoom=c,this.touchRotate=f,this.keyboard=_}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(t,r){this.eventManager&&t.forEach(i=>{this._events[i]!==r&&(this._events[i]=r,r?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(t,r=null,i={}){let s={...t.getViewportProps(),...r},n=this.controllerState!==t;if(this.state=t.getState(),this._setInteractionState(i),n){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:s,interactionState:this._interactionState,oldViewState:o})}}_onTransition(t){this.onViewStateChange({...t,interactionState:this._interactionState})}_setInteractionState(t){Object.assign(this._interactionState,t),this.onStateChange(this._interactionState)}_onPanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t)||t.rightButton||!1;(this.invertPan||this.dragMode===\"pan\")&&(i=!i);let s=this.controllerState[i?\"panStart\":\"rotateStart\"]({pos:r});return this._panMove=i,this.updateViewport(s,KA,{isDragging:!0}),!0}_onPan(t){return this.isDragging()?this._panMove?this._onPanMove(t):this._onPanRotate(t):!1}_onPanEnd(t){return this.isDragging()?this._panMove?this._onPanMoveEnd(t):this._onPanRotateEnd(t):!1}_onPanMove(t){if(!this.dragPan)return!1;let r=this.getCenter(t),i=this.controllerState.pan({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(t){let{inertia:r}=this;if(this.dragPan&&r&&t.velocity){let i=this.getCenter(t),s=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],n=this.controllerState.pan({pos:s}).panEnd();this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isPanning:!0})}else{let i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(t){if(!this.dragRotate)return!1;let r=this.getCenter(t),i=this.controllerState.rotate({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(t){let{inertia:r}=this;if(this.dragRotate&&r&&t.velocity){let i=this.getCenter(t),s=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],n=this.controllerState.rotate({pos:s}).rotateEnd();this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isRotating:!0})}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(t){if(!this.scrollZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;t.srcEvent.preventDefault();let{speed:i=.01,smooth:s=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:n}=t,o=2/(1+Math.exp(-Math.abs(n*i)));n<0&&o!==0&&(o=1/o);let c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,{...this._getTransitionProps({around:r}),transitionDuration:s?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.rotateStart({pos:r});return this.updateViewport(i,KA,{isDragging:!0}),!0}_onTriplePan(t){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(t);r[0]-=t.deltaX;let i=this.controllerState.rotate({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&t.velocityY){let i=this.getCenter(t),s=[i[0],i[1]+=t.velocityY*r/2],n=this.controllerState.rotate({pos:s});this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return og._startPinchRotation=t.rotation,og._lastPinchEvent=t,this.updateViewport(i,KA,{isDragging:!0}),!0}_onPinch(t){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:i}=t,s=this.getCenter(t);r=r.zoom({pos:s,scale:i})}if(this.touchRotate){let{rotation:i}=t;r=r.rotate({deltaAngleX:og._startPinchRotation-i})}return this.updateViewport(r,KA,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),og._lastPinchEvent=t,!0}_onPinchEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:i}=og;if(this.touchZoom&&r&&i&&t.scale!==i.scale){let s=this.getCenter(t),n=this.controllerState.rotateEnd(),o=Math.log2(t.scale),c=(o-Math.log2(i.scale))/(t.deltaTime-i.deltaTime),f=Math.pow(2,o+c*r/2);n=n.zoom({pos:s,scale:f}).zoomEnd(),this.updateViewport(n,{...this._getTransitionProps({around:s}),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let s=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(s,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return og._startPinchRotation=null,og._lastPinchEvent=null,!0}_onDoubleTap(t){if(!this.doubleClickZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t),s=this.controllerState.zoom({pos:r,scale:i?.5:2});return this.updateViewport(s,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(t){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(t),{zoomSpeed:i,moveSpeed:s,rotateSpeedX:n,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:c}=this,f,_={};switch(t.srcEvent.code){case\"Minus\":f=r?c.zoomOut(i).zoomOut(i):c.zoomOut(i),_.isZooming=!0;break;case\"Equal\":f=r?c.zoomIn(i).zoomIn(i):c.zoomIn(i),_.isZooming=!0;break;case\"ArrowLeft\":r?(f=c.rotateLeft(n),_.isRotating=!0):(f=c.moveLeft(s),_.isPanning=!0);break;case\"ArrowRight\":r?(f=c.rotateRight(n),_.isRotating=!0):(f=c.moveRight(s),_.isPanning=!0);break;case\"ArrowUp\":r?(f=c.rotateUp(o),_.isRotating=!0):(f=c.moveUp(s),_.isPanning=!0);break;case\"ArrowDown\":r?(f=c.rotateDown(o),_.isRotating=!0):(f=c.moveDown(s),_.isPanning=!0);break;default:return!1}return this.updateViewport(f,this._getTransitionProps(),_),!0}_getTransitionProps(t){let{transition:r}=this;return!r||!r.transitionInterpolator?KA:t?{...r,transitionInterpolator:new sg({...t,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Fb=class{constructor(t,r){G(this,\"_viewportProps\",void 0),G(this,\"_state\",void 0),this._viewportProps=this.applyConstraints(t),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var X7=5,Xat=1.2,sD=class extends Fb{constructor(t){let{width:r,height:i,latitude:s,longitude:n,zoom:o,bearing:c=0,pitch:f=0,altitude:_=1.5,position:w=[0,0,0],maxZoom:C=20,minZoom:R=0,maxPitch:N=60,minPitch:j=0,startPanLngLat:Y,startZoomLngLat:rt,startRotatePos:$,startBearing:K,startPitch:tt,startZoom:ut,normalize:Pt=!0}=t;br(Number.isFinite(n)),br(Number.isFinite(s)),br(Number.isFinite(o)),super({width:r,height:i,latitude:s,longitude:n,zoom:o,bearing:c,pitch:f,altitude:_,maxZoom:C,minZoom:R,maxPitch:N,minPitch:j,normalize:Pt,position:w},{startPanLngLat:Y,startZoomLngLat:rt,startRotatePos:$,startBearing:K,startPitch:tt,startZoom:ut}),G(this,\"makeViewport\",void 0),this.makeViewport=t.makeViewport}panStart({pos:t}){return this._getUpdatedState({startPanLngLat:this._unproject(t)})}pan({pos:t,startPos:r}){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let n=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(n)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:t}){return this._getUpdatedState({startRotatePos:t,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:r=0,deltaAngleY:i=0}){let{startRotatePos:s,startBearing:n,startPitch:o}=this.getState();if(!s||n===void 0||o===void 0)return this;let c;return t?c=this._getNewRotation(t,s,o,n):c={bearing:n+r,pitch:o+i},this._getUpdatedState(c)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:t}){return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom({pos:t,startPos:r,scale:i}){let{startZoom:s,startZoomLngLat:n}=this.getState();if(n||(s=this.getViewportProps().zoom,n=this._unproject(r)||this._unproject(t)),!n)return this;let{maxZoom:o,minZoom:c}=this.getViewportProps(),f=s+Math.log2(i);f=Ml(f,c,o);let _=this.makeViewport({...this.getViewportProps(),zoom:f});return this._getUpdatedState({zoom:f,..._.panByPosition(n,t)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(t=2){return this._zoomFromCenter(t)}zoomOut(t=2){return this._zoomFromCenter(1/t)}moveLeft(t=100){return this._panFromCenter([t,0])}moveRight(t=100){return this._panFromCenter([-t,0])}moveUp(t=100){return this._panFromCenter([0,t])}moveDown(t=100){return this._panFromCenter([0,-t])}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}shortestPathFrom(t){let r=t.getViewportProps(),i={...this.getViewportProps()},{bearing:s,longitude:n}=i;return Math.abs(s-r.bearing)>180&&(i.bearing=s<0?s+360:s-360),Math.abs(n-r.longitude)>180&&(i.longitude=n<0?n+360:n-360),i}applyConstraints(t){let{maxZoom:r,minZoom:i,zoom:s}=t;t.zoom=Ml(s,i,r);let{maxPitch:n,minPitch:o,pitch:c}=t;t.pitch=Ml(c,o,n);let{normalize:f=!0}=t;return f&&Object.assign(t,NE(t)),t}_zoomFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.zoom({pos:[r/2,i/2],scale:t})}_panFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.pan({startPos:[r/2,i/2],pos:[r/2+t[0],i/2+t[1]]})}_getUpdatedState(t){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t})}_unproject(t){let r=this.makeViewport(this.getViewportProps());return t&&r.unproject(t)}_getNewRotation(t,r,i,s){let n=t[0]-r[0],o=t[1]-r[1],c=t[1],f=r[1],{width:_,height:w}=this.getViewportProps(),C=n/_,R=0;o>0?Math.abs(w-f)>X7&&(R=o/(f-w)*Xat):o<0&&f>X7&&(R=1-c/f),R=Ml(R,-1,1);let{minPitch:N,maxPitch:j}=this.getViewportProps(),Y=s+180*C,rt=i;return R>0?rt=i+R*(j-i):R<0&&(rt=i-R*(N-i)),{pitch:rt,bearing:Y}}},zb=class extends Bb{constructor(...t){super(...t),G(this,\"ControllerState\",sD),G(this,\"transition\",{transitionDuration:300,transitionInterpolator:new sg({transitionProps:{compare:[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\",\"position\"],required:[\"longitude\",\"latitude\",\"zoom\"]}})}),G(this,\"dragMode\",\"pan\")}setProps(t){t.position=t.position||[0,0,0];let r=this.props;super.setProps(t),(!r||r.height!==t.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...t,...this.state}))}};var jy=class extends Qc{get ViewportType(){return nc}get ControllerType(){return zb}};G(jy,\"displayName\",\"MapView\");var Kat=new Fy;function Jat(e,t){var r,i;let s=(r=e.order)!==null&&r!==void 0?r:1/0,n=(i=t.order)!==null&&i!==void 0?i:1/0;return s-n}var Nb=class{constructor(){G(this,\"effects\",void 0),G(this,\"_resolvedEffects\",[]),G(this,\"_defaultEffects\",[]),G(this,\"_needsRedraw\",void 0),this.effects=[],this._needsRedraw=\"Initial render\",this._setEffects([])}addDefaultEffect(t){let r=this._defaultEffects;if(!r.find(i=>i.id===t.id)){let i=r.findIndex(s=>Jat(s,t)>0);i<0?r.push(t):r.splice(i,0,t),this._setEffects(this.effects)}}setProps(t){\"effects\"in t&&(ao(t.effects,this.effects,1)||this._setEffects(t.effects))}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}getEffects(){return this._resolvedEffects}_setEffects(t){let r={};for(let s of this.effects)r[s.id]=s;let i=[];for(let s of t){let n=r[s.id];n&&n!==s?n.setProps?(n.setProps(s.props),i.push(n)):(n.cleanup(),i.push(s)):i.push(s),delete r[s.id]}for(let s in r)r[s].cleanup();this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),t.some(s=>s instanceof Fy)||this._resolvedEffects.push(Kat),this._needsRedraw=\"effects changed\"}finalize(){for(let t of this._resolvedEffects)t.cleanup();this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}};var Ub=class extends rc{shouldDrawLayer(t){let{operation:r}=t.props;return r.includes(\"draw\")||r.includes(\"terrain\")}};var tlt=\"deckRenderer.renderLayers\",Vb=class{constructor(t){G(this,\"gl\",void 0),G(this,\"layerFilter\",void 0),G(this,\"drawPickingColors\",void 0),G(this,\"drawLayersPass\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"renderCount\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"renderBuffers\",void 0),G(this,\"lastPostProcessEffect\",void 0),this.gl=t,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new Ub(t),this.pickLayersPass=new ng(t),this.renderCount=0,this._needsRedraw=\"Initial render\",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(t){this.layerFilter!==t.layerFilter&&(this.layerFilter=t.layerFilter,this._needsRedraw=\"layerFilter changed\"),this.drawPickingColors!==t.drawPickingColors&&(this.drawPickingColors=t.drawPickingColors,this._needsRedraw=\"drawPickingColors changed\")}renderLayers(t){if(!t.viewports.length)return;let r=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,i={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...t,target:t.target||yi.getDefaultFramebuffer(this.gl)};i.effects&&this._preRender(i.effects,i);let s=this.lastPostProcessEffect?this.renderBuffers[0]:i.target,n=r.render({...i,target:s});i.effects&&this._postRender(i.effects,i),this.renderCount++,Cs(tlt,this,n,t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}finalize(){let{renderBuffers:t}=this;for(let r of t)r.delete();t.length=0}_preRender(t,r){this.lastPostProcessEffect=null,r.preRenderStats=r.preRenderStats||{};for(let i of t)r.preRenderStats[i.id]=i.preRender(this.gl,r),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:t}=this;t.length===0&&t.push(new yi(this.gl),new yi(this.gl));for(let r of t)r.resize()}_postRender(t,r){let{renderBuffers:i}=this,s={...r,inputBuffer:i[0],swapBuffer:i[1],target:null};for(let n of t)if(n.postRender){if(n.id===this.lastPostProcessEffect){s.target=r.target,n.postRender(this.gl,s);break}let o=n.postRender(this.gl,s);s.inputBuffer=o,s.swapBuffer=o===i[0]?i[1]:i[0]}}};var elt={pickedColor:null,pickedObjectIndex:-1};function K7({pickedColors:e,decodePickingColor:t,deviceX:r,deviceY:i,deviceRadius:s,deviceRect:n}){let{x:o,y:c,width:f,height:_}=n,w=s*s,C=-1,R=0;for(let N=0;N<_;N++){let j=N+c-i,Y=j*j;if(Y>w)R+=4*f;else for(let rt=0;rt=0){let K=rt+o-r,tt=K*K+Y;tt<=w&&(w=tt,C=R)}R+=4}}if(C>=0){let N=e.slice(C,C+4),j=t(N);if(j){let Y=Math.floor(C/4/f),rt=C/4-Y*f;return{...j,pickedColor:N,pickedX:o+rt,pickedY:c+Y}}nr.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}return elt}function J7({pickedColors:e,decodePickingColor:t}){let r=new Map;if(e){for(let i=0;i=0){let n=e.slice(i,i+4),o=n.join(\",\");if(!r.has(o)){let c=t(n);c?r.set(o,{...c,color:n}):nr.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}}}return Array.from(r.values())}function oD({pickInfo:e,viewports:t,pixelRatio:r,x:i,y:s,z:n}){let o=t[0];t.length>1&&(o=rlt(e?.pickedViewports||t,{x:i,y:s}));let c;if(o){let f=[i-o.x,s-o.y];n!==void 0&&(f[2]=n),c=o.unproject(f)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:i,y:s,pixel:[i,s],coordinate:c,devicePixel:e&&\"pickedX\"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:r}}function tG(e){let{pickInfo:t,lastPickedInfo:r,mode:i,layers:s}=e,{pickedColor:n,pickedLayer:o,pickedObjectIndex:c}=t,f=o?[o]:[];if(i===\"hover\"){let C=r.index,R=r.layerId,N=o?o.props.id:null;if(N!==R||c!==C){if(N!==R){let j=s.find(Y=>Y.props.id===R);j&&f.unshift(j)}r.layerId=N,r.index=c,r.info=null}}let _=oD(e),w=new Map;return w.set(null,_),f.forEach(C=>{let R={..._};C===o&&(R.color=n,R.index=c,R.picked=!0),R=aD({layer:C,info:R,mode:i});let N=R.layer;C===o&&i===\"hover\"&&(r.info=R),w.set(N.id,R),i===\"hover\"&&N.updateAutoHighlight(R)}),w}function aD({layer:e,info:t,mode:r}){for(;e&&t;){let i=t.layer||null;t.sourceLayer=i,t.layer=e,t=e.getPickingInfo({info:t,mode:r,sourceLayer:i}),e=e.parent}return t}function rlt(e,t){for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.containsPixel(t))return i}return e[0]}var jb=class{constructor(t){G(this,\"gl\",void 0),G(this,\"pickingFBO\",void 0),G(this,\"depthFBO\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"layerFilter\",void 0),G(this,\"lastPickedInfo\",void 0),G(this,\"_pickable\",!0),this.gl=t,this.pickLayersPass=new ng(t),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(t){\"layerFilter\"in t&&(this.layerFilter=t.layerFilter),\"_pickable\"in t&&(this._pickable=t._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject(t){return this._pickClosestObject(t)}pickObjects(t){return this._pickVisibleObjects(t)}getLastPickedObject({x:t,y:r,layers:i,viewports:s},n=this.lastPickedInfo.info){let o=n&&n.layer&&n.layer.id,c=n&&n.viewport&&n.viewport.id,f=o?i.find(R=>R.id===o):null,_=c&&s.find(R=>R.id===c)||s[0],w=_&&_.unproject([t-_.x,r-_.y]);return{...n,...{x:t,y:r,viewport:_,coordinate:w,layer:f}}}_resizeBuffer(){var t,r;let{gl:i}=this;if(!this.pickingFBO&&(this.pickingFBO=new yi(i),yi.isSupported(i,{colorBufferFloat:!0}))){let s=new yi(i);s.attach({36064:new pi(i,{format:hr(i)?34836:6408,type:5126})}),this.depthFBO=s}(t=this.pickingFBO)===null||t===void 0||t.resize({width:i.canvas.width,height:i.canvas.height}),(r=this.depthFBO)===null||r===void 0||r.resize({width:i.canvas.width,height:i.canvas.height})}_getPickable(t){if(this._pickable===!1)return null;let r=t.filter(i=>this.pickLayersPass.shouldDrawLayer(i)&&!i.isComposite);return r.length?r:null}_pickClosestObject({layers:t,views:r,viewports:i,x:s,y:n,radius:o=0,depth:c=1,mode:f=\"query\",unproject3D:_,onViewportActive:w,effects:C}){let R=this._getPickable(t),N=Sl(this.gl);if(!R)return{result:[],emptyInfo:oD({viewports:i,x:s,y:n,pixelRatio:N})};this._resizeBuffer();let j=dy(this.gl,[s,n],!0),Y=[j.x+Math.floor(j.width/2),j.y+Math.floor(j.height/2)],rt=Math.round(o*N),{width:$,height:K}=this.pickingFBO,tt=this._getPickingRect({deviceX:Y[0],deviceY:Y[1],deviceRadius:rt,deviceWidth:$,deviceHeight:K}),ut={x:s-o,y:n-o,width:o*2+1,height:o*2+1},Pt,Ot=[],Kt=new Set;for(let Zt=0;Zt=_)break;let Ge=Ot[ue],tr={color:Ge.pickedColor,layer:null,index:Ge.pickedObjectIndex,picked:!0,x:s,y:n,pixelRatio:N};tr=aD({layer:Ge.pickedLayer,info:tr,mode:f});let er=(le=tr.object)!==null&&le!==void 0?le:\"\".concat(tr.layer.id,\"[\").concat(tr.index,\"]\");Kt.has(er)||Kt.set(er,tr)}return Array.from(Kt.values())}_drawAndSample({layers:t,views:r,viewports:i,onViewportActive:s,deviceRect:n,cullRect:o,effects:c,pass:f},_=!1){let w=_?this.depthFBO:this.pickingFBO,C={layers:t,layerFilter:this.layerFilter,views:r,viewports:i,onViewportActive:s,pickingFBO:w,deviceRect:n,cullRect:o,effects:c,pass:f,pickZ:_,preRenderStats:{}};for(let K of c)K.useInPicking&&(C.preRenderStats[K.id]=K.preRender(this.gl,C));let{decodePickingColor:R}=this.pickLayersPass.render(C),{x:N,y:j,width:Y,height:rt}=n,$=new(_?Float32Array:Uint8Array)(Y*rt*4);return Rh(w,{sourceX:N,sourceY:j,sourceWidth:Y,sourceHeight:rt,target:$}),{pickedColors:$,decodePickingColor:R}}_getPickingRect({deviceX:t,deviceY:r,deviceRadius:i,deviceWidth:s,deviceHeight:n}){let o=Math.max(0,t-i),c=Math.max(0,r-i),f=Math.min(s,t+i+1)-o,_=Math.min(n,r+i+1)-c;return f<=0||_<=0?null:{x:o,y:c,width:f,height:_}}};var ilt={zIndex:\"1\",position:\"absolute\",pointerEvents:\"none\",color:\"#a0a7b4\",backgroundColor:\"#29323c\",padding:\"10px\",top:\"0\",left:\"0\",display:\"none\"},Gb=class{constructor(t){G(this,\"el\",null),G(this,\"isVisible\",!1);let r=t.parentElement;r&&(this.el=document.createElement(\"div\"),this.el.className=\"deck-tooltip\",Object.assign(this.el.style,ilt),r.appendChild(this.el))}setTooltip(t,r,i){let s=this.el;if(s){if(typeof t==\"string\")s.innerText=t;else if(t)t.text&&(s.innerText=t.text),t.html&&(s.innerHTML=t.html),t.className&&(s.className=t.className);else{this.isVisible=!1,s.style.display=\"none\";return}this.isVisible=!0,s.style.display=\"block\",s.style.transform=\"translate(\".concat(r,\"px, \").concat(i,\"px)\"),t&&typeof t==\"object\"&&\"style\"in t&&Object.assign(s.style,t.style)}}remove(){this.el&&(this.el.remove(),this.el=null)}};var ag=ki(eG());var nlt={mousedown:1,mousemove:2,mouseup:4};function slt(e,t){for(let r=0;r0&&i.type===\"pointerdown\"&&(slt(s,n=>n.pointerId===i.pointerId)||s.push(i)),t.call(this,i)}}function iG(e){e.prototype.handler=function(r){let i=nlt[r.type];i&1&&r.button>=0&&(this.pressed=!0),i&2&&r.which===0&&(i=4),this.pressed&&(i&4&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:\"mouse\",srcEvent:r}))}}rG(ag.PointerEventInput);iG(ag.MouseInput);var nG=ag.Manager,Wh=ag;var Hh=class{constructor(t,r,i){this.element=t,this.callback=r,this.options={enable:!0,...i}}};var sG=Wh?[[Wh.Pan,{event:\"tripan\",pointers:3,threshold:0,enable:!1}],[Wh.Rotate,{enable:!1}],[Wh.Pinch,{enable:!1}],[Wh.Swipe,{enable:!1}],[Wh.Pan,{threshold:0,enable:!1}],[Wh.Press,{enable:!1}],[Wh.Tap,{event:\"doubletap\",taps:2,enable:!1}],[Wh.Tap,{event:\"anytap\",enable:!1}],[Wh.Tap,{enable:!1}]]:null,lD={tripan:[\"rotate\",\"pinch\",\"pan\"],rotate:[\"pinch\"],pinch:[\"pan\"],pan:[\"press\",\"doubletap\",\"anytap\",\"tap\"],doubletap:[\"anytap\"],anytap:[\"tap\"]},oG={doubletap:[\"tap\"]},aG={pointerdown:\"pointerdown\",pointermove:\"pointermove\",pointerup:\"pointerup\",touchstart:\"pointerdown\",touchmove:\"pointermove\",touchend:\"pointerup\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\"},Gy={KEY_EVENTS:[\"keydown\",\"keyup\"],MOUSE_EVENTS:[\"mousedown\",\"mousemove\",\"mouseup\",\"mouseover\",\"mouseout\",\"mouseleave\"],WHEEL_EVENTS:[\"wheel\",\"mousewheel\"]},lG={tap:\"tap\",anytap:\"anytap\",doubletap:\"doubletap\",press:\"press\",pinch:\"pinch\",pinchin:\"pinch\",pinchout:\"pinch\",pinchstart:\"pinch\",pinchmove:\"pinch\",pinchend:\"pinch\",pinchcancel:\"pinch\",rotate:\"rotate\",rotatestart:\"rotate\",rotatemove:\"rotate\",rotateend:\"rotate\",rotatecancel:\"rotate\",tripan:\"tripan\",tripanstart:\"tripan\",tripanmove:\"tripan\",tripanup:\"tripan\",tripandown:\"tripan\",tripanleft:\"tripan\",tripanright:\"tripan\",tripanend:\"tripan\",tripancancel:\"tripan\",pan:\"pan\",panstart:\"pan\",panmove:\"pan\",panup:\"pan\",pandown:\"pan\",panleft:\"pan\",panright:\"pan\",panend:\"pan\",pancancel:\"pan\",swipe:\"swipe\",swipeleft:\"swipe\",swiperight:\"swipe\",swipeup:\"swipe\",swipedown:\"swipe\"},cD={click:\"tap\",anyclick:\"anytap\",dblclick:\"doubletap\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\",mouseover:\"pointerover\",mouseout:\"pointerout\",mouseleave:\"pointerleave\"};var cG=typeof navigator<\"u\"&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\",lg=typeof window<\"u\"?window:global;var WE=!1;try{let e={get passive(){return WE=!0,!0}};lg.addEventListener(\"test\",null,e),lg.removeEventListener(\"test\",null)}catch{WE=!1}var olt=cG.indexOf(\"firefox\")!==-1,{WHEEL_EVENTS:alt}=Gy,uG=\"wheel\",hG=4.000244140625,llt=40,clt=.25,Wb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{if(!this.options.enable)return;let n=s.deltaY;lg.WheelEvent&&(olt&&s.deltaMode===lg.WheelEvent.DOM_DELTA_PIXEL&&(n/=lg.devicePixelRatio),s.deltaMode===lg.WheelEvent.DOM_DELTA_LINE&&(n*=llt)),n!==0&&n%hG===0&&(n=Math.floor(n/hG)),s.shiftKey&&n&&(n=n*clt),this.callback({type:uG,center:{x:s.clientX,y:s.clientY},delta:-n,srcEvent:s,pointerType:\"mouse\",target:s.target})},this.events=(this.options.events||[]).concat(alt),this.events.forEach(s=>t.addEventListener(s,this.handleEvent,WE?{passive:!1}:!1))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===uG&&(this.options.enable=r)}};var{MOUSE_EVENTS:ult}=Gy,fG=\"pointermove\",dG=\"pointerover\",pG=\"pointerout\",AG=\"pointerenter\",mG=\"pointerleave\",Hb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=n=>{this.handleOverEvent(n),this.handleOutEvent(n),this.handleEnterEvent(n),this.handleLeaveEvent(n),this.handleMoveEvent(n)},this.pressed=!1;let{enable:s}=this.options;this.enableMoveEvent=s,this.enableLeaveEvent=s,this.enableEnterEvent=s,this.enableOutEvent=s,this.enableOverEvent=s,this.events=(this.options.events||[]).concat(ult),this.events.forEach(n=>t.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===fG&&(this.enableMoveEvent=r),t===dG&&(this.enableOverEvent=r),t===pG&&(this.enableOutEvent=r),t===AG&&(this.enableEnterEvent=r),t===mG&&(this.enableLeaveEvent=r)}handleOverEvent(t){this.enableOverEvent&&t.type===\"mouseover\"&&this._emit(dG,t)}handleOutEvent(t){this.enableOutEvent&&t.type===\"mouseout\"&&this._emit(pG,t)}handleEnterEvent(t){this.enableEnterEvent&&t.type===\"mouseenter\"&&this._emit(AG,t)}handleLeaveEvent(t){this.enableLeaveEvent&&t.type===\"mouseleave\"&&this._emit(mG,t)}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case\"mousedown\":t.button>=0&&(this.pressed=!0);break;case\"mousemove\":t.which===0&&(this.pressed=!1),this.pressed||this._emit(fG,t);break;case\"mouseup\":this.pressed=!1;break;default:}}_emit(t,r){this.callback({type:t,center:{x:r.clientX,y:r.clientY},srcEvent:r,pointerType:\"mouse\",target:r.target})}};var{KEY_EVENTS:hlt}=Gy,gG=\"keydown\",_G=\"keyup\",qb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{let n=s.target||s.srcElement;n.tagName===\"INPUT\"&&n.type===\"text\"||n.tagName===\"TEXTAREA\"||(this.enableDownEvent&&s.type===\"keydown\"&&this.callback({type:gG,srcEvent:s,key:s.key,target:s.target}),this.enableUpEvent&&s.type===\"keyup\"&&this.callback({type:_G,srcEvent:s,key:s.key,target:s.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(hlt),t.tabIndex=this.options.tabIndex||0,t.style.outline=\"none\",this.events.forEach(s=>t.addEventListener(s,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===gG&&(this.enableDownEvent=r),t===_G&&(this.enableUpEvent=r)}};var yG=\"contextmenu\",Zb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{this.options.enable&&this.callback({type:yG,center:{x:s.clientX,y:s.clientY},srcEvent:s,pointerType:\"mouse\",target:s.target})},t.addEventListener(\"contextmenu\",this.handleEvent)}destroy(){this.element.removeEventListener(\"contextmenu\",this.handleEvent)}enableEventType(t,r){t===yG&&(this.options.enable=r)}};var flt={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},dlt=1,plt=2,Alt=3,mlt=0,glt=1,_lt=2,ylt=1,vlt=2,xlt=4;function vG(e){let t=flt[e.srcEvent.type];if(!t)return null;let{buttons:r,button:i,which:s}=e.srcEvent,n=!1,o=!1,c=!1;return t===4||t===2&&!Number.isFinite(r)?(n=s===dlt,o=s===plt,c=s===Alt):t===2?(n=!!(r&ylt),o=!!(r&xlt),c=!!(r&vlt)):t===1&&(n=i===mlt,o=i===glt,c=i===_lt),{leftButton:n,middleButton:o,rightButton:c}}function xG(e,t){let r=e.center;if(!r)return null;let i=t.getBoundingClientRect(),s=i.width/t.offsetWidth||1,n=i.height/t.offsetHeight||1,o={x:(r.x-i.left-t.clientLeft)/s,y:(r.y-i.top-t.clientTop)/n};return{center:r,offsetCenter:o}}var uD={srcElement:\"root\",priority:0},Yb=class{constructor(t){this.handleEvent=r=>{if(this.isEmpty())return;let i=this._normalizeEvent(r),s=r.srcEvent.target;for(;s&&s!==i.rootElement;){if(this._emit(i,s),i.handled)return;s=s.parentNode}this._emit(i,\"root\")},this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(t,r,i,s=!1,n=!1){let{handlers:o,handlersByElement:c}=this,f=uD;typeof i==\"string\"||i&&i.addEventListener?f={...uD,srcElement:i}:i&&(f={...uD,...i});let _=c.get(f.srcElement);_||(_=[],c.set(f.srcElement,_));let w={type:t,handler:r,srcElement:f.srcElement,priority:f.priority};s&&(w.once=!0),n&&(w.passive=!0),o.push(w),this._active=this._active||!w.passive;let C=_.length-1;for(;C>=0&&!(_[C].priority>=w.priority);)C--;_.splice(C+1,0,w)}remove(t,r){let{handlers:i,handlersByElement:s}=this;for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.type===t&&o.handler===r){i.splice(n,1);let c=s.get(o.srcElement);c.splice(c.indexOf(o),1),c.length===0&&s.delete(o.srcElement)}}this._active=i.some(n=>!n.passive)}_emit(t,r){let i=this.handlersByElement.get(r);if(i){let s=!1,n=()=>{t.handled=!0},o=()=>{t.handled=!0,s=!0},c=[];for(let f=0;f{t.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:r}}};var blt={events:null,recognizers:null,recognizerOptions:{},Manager:nG,touchAction:\"none\",tabIndex:0},Wy=class{constructor(t=null,r){this._onBasicInput=s=>{let{srcEvent:n}=s,o=aG[n.type];o&&this.manager.emit(o,s)},this._onOtherEvent=s=>{this.manager.emit(s.type,s)},this.options={...blt,...r},this.events=new Map,this.setElement(t);let{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(t){if(this.element&&this.destroy(),this.element=t,!t)return;let{options:r}=this,i=r.Manager;this.manager=new i(t,{touchAction:r.touchAction,recognizers:r.recognizers||sG}).on(\"hammer.input\",this._onBasicInput),r.recognizers||Object.keys(lD).forEach(s=>{let n=this.manager.get(s);n&&lD[s].forEach(o=>{n.recognizeWith(o)})});for(let s in r.recognizerOptions){let n=this.manager.get(s);if(n){let o=r.recognizerOptions[s];delete o.enable,n.set(o)}}this.wheelInput=new Wb(t,this._onOtherEvent,{enable:!1}),this.moveInput=new Hb(t,this._onOtherEvent,{enable:!1}),this.keyInput=new qb(t,this._onOtherEvent,{enable:!1,tabIndex:r.tabIndex}),this.contextmenuInput=new Zb(t,this._onOtherEvent,{enable:!1});for(let[s,n]of this.events)n.isEmpty()||(this._toggleRecognizer(n.recognizerName,!0),this.manager.on(s,n.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,r,i){this._addEventHandler(t,r,i,!1)}once(t,r,i){this._addEventHandler(t,r,i,!0)}watch(t,r,i){this._addEventHandler(t,r,i,!1,!0)}off(t,r){this._removeEventHandler(t,r)}_toggleRecognizer(t,r){let{manager:i}=this;if(!i)return;let s=i.get(t);if(s&&s.options.enable!==r){s.set({enable:r});let n=oG[t];n&&!this.options.recognizers&&n.forEach(o=>{let c=i.get(o);r?(c.requireFailure(t),s.dropRequireFailure(o)):c.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,r),this.moveInput.enableEventType(t,r),this.keyInput.enableEventType(t,r),this.contextmenuInput.enableEventType(t,r)}_addEventHandler(t,r,i,s,n){if(typeof t!=\"string\"){i=r;for(let w in t)this._addEventHandler(w,t[w],i,s,n);return}let{manager:o,events:c}=this,f=cD[t]||t,_=c.get(f);_||(_=new Yb(this),c.set(f,_),_.recognizerName=lG[f]||f,o&&o.on(f,_.handleEvent)),_.add(t,r,i,s,n),_.isEmpty()||this._toggleRecognizer(_.recognizerName,!0)}_removeEventHandler(t,r){if(typeof t!=\"string\"){for(let o in t)this._removeEventHandler(o,t[o]);return}let{events:i}=this,s=cD[t]||t,n=i.get(s);if(n&&(n.remove(t,r),n.isEmpty())){let{recognizerName:o}=n,c=!1;for(let f of i.values())if(f.recognizerName===o&&!f.isEmpty()){c=!0;break}c||this._toggleRecognizer(o,!1)}}};function cg(){}var wlt=({isDragging:e})=>e?\"grabbing\":\"grab\",bG={id:\"\",width:\"100%\",height:\"100%\",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:\"none\",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:cg,onResize:cg,onViewStateChange:cg,onInteractionStateChange:cg,onBeforeRender:cg,onAfterRender:cg,onLoad:cg,onError:e=>nr.error(e.message,e.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:wlt,getTooltip:null,debug:!1,drawPickingColors:!1},ap=class{constructor(t){G(this,\"props\",void 0),G(this,\"width\",0),G(this,\"height\",0),G(this,\"userData\",{}),G(this,\"canvas\",null),G(this,\"viewManager\",null),G(this,\"layerManager\",null),G(this,\"effectManager\",null),G(this,\"deckRenderer\",null),G(this,\"deckPicker\",null),G(this,\"eventManager\",null),G(this,\"tooltip\",null),G(this,\"metrics\",void 0),G(this,\"animationLoop\",void 0),G(this,\"stats\",void 0),G(this,\"viewState\",void 0),G(this,\"cursorState\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"_pickRequest\",void 0),G(this,\"_lastPointerDownInfo\",null),G(this,\"_metricsCounter\",void 0),G(this,\"_onPointerMove\",r=>{let{_pickRequest:i}=this;if(r.type===\"pointerleave\")i.x=-1,i.y=-1,i.radius=0;else{if(r.leftButton||r.rightButton)return;{let s=r.offsetCenter;if(!s)return;i.x=s.x,i.y=s.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=r}),G(this,\"_onEvent\",r=>{let i=U4[r.type],s=r.offsetCenter;if(!i||!s||!this.layerManager)return;let n=this.layerManager.getLayers(),o=this.deckPicker.getLastPickedObject({x:s.x,y:s.y,layers:n,viewports:this.getViewports(s)},this._lastPointerDownInfo),{layer:c}=o,f=c&&(c[i.handler]||c.props[i.handler]),_=this.props[i.handler],w=!1;f&&(w=f.call(c,o,r)),!w&&_&&_(o,r)}),G(this,\"_onPointerDown\",r=>{let i=r.offsetCenter,s=this._pick(\"pickObject\",\"pickObject Time\",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=s.result[0]||s.emptyInfo}),this.props={...bG,...t},t=this.props,this._needsRedraw=\"Initial render\",this._pickRequest={mode:\"hover\",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},t.viewState&&t.initialViewState&&nr.warn(\"View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.\")(),cy()===\"IE\"&&nr.warn(\"IE 11 is not supported\")(),this.viewState=t.initialViewState,t.gl||typeof document<\"u\"&&(this.canvas=this._createCanvas(t)),this.animationLoop=this._createAnimationLoop(t),this.stats=new Vf({id:\"deck.gl\"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(t),t._typedArrayManagerProps&&jh.setOptions(t._typedArrayManagerProps),this.animationLoop.start()}finalize(){var t,r,i,s,n,o,c,f;if((t=this.animationLoop)===null||t===void 0||t.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,(r=this.layerManager)===null||r===void 0||r.finalize(),this.layerManager=null,(i=this.viewManager)===null||i===void 0||i.finalize(),this.viewManager=null,(s=this.effectManager)===null||s===void 0||s.finalize(),this.effectManager=null,(n=this.deckRenderer)===null||n===void 0||n.finalize(),this.deckRenderer=null,(o=this.deckPicker)===null||o===void 0||o.finalize(),this.deckPicker=null,(c=this.eventManager)===null||c===void 0||c.destroy(),this.eventManager=null,(f=this.tooltip)===null||f===void 0||f.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var _;(_=this.canvas.parentElement)===null||_===void 0||_.removeChild(this.canvas),this.canvas=null}}setProps(t){this.stats.get(\"setProps Time\").timeStart(),\"onLayerHover\"in t&&nr.removed(\"onLayerHover\",\"onHover\")(),\"onLayerClick\"in t&&nr.removed(\"onLayerClick\",\"onClick\")(),t.initialViewState&&!ao(this.props.initialViewState,t.initialViewState,3)&&(this.viewState=t.initialViewState),Object.assign(this.props,t),this._setCanvasSize(this.props);let r=Object.create(this.props);Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(r),this.layerManager&&(this.viewManager.setProps(r),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(r),this.effectManager.setProps(r),this.deckRenderer.setProps(r),this.deckPicker.setProps(r)),this.stats.get(\"setProps Time\").timeEnd()}needsRedraw(t={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return\"Deck._animate\";let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);let i=this.viewManager.needsRedraw(t),s=this.layerManager.needsRedraw(t),n=this.effectManager.needsRedraw(t),o=this.deckRenderer.needsRedraw(t);return r=r||i||s||n||o,r}redraw(t){if(!this.layerManager)return;let r=this.needsRedraw({clearRedrawFlags:!0});r=t||r,r&&(this.stats.get(\"Redraw Count\").incrementCount(),this.props._customRender?this.props._customRender(r):this._drawLayers(r))}get isInitialized(){return this.viewManager!==null}getViews(){return br(this.viewManager),this.viewManager.views}getViewports(t){return br(this.viewManager),this.viewManager.getViewports(t)}getCanvas(){return this.canvas}pickObject(t){let r=this._pick(\"pickObject\",\"pickObject Time\",t).result;return r.length?r[0]:null}pickMultipleObjects(t){return t.depth=t.depth||10,this._pick(\"pickObject\",\"pickMultipleObjects Time\",t).result}pickObjects(t){return this._pick(\"pickObjects\",\"pickObjects Time\",t)}_addResources(t,r=!1){for(let i in t)this.layerManager.resourceManager.add({resourceId:i,data:t[i],forceUpdate:r})}_removeResources(t){for(let r of t)this.layerManager.resourceManager.remove(r)}_addDefaultEffect(t){this.effectManager.addDefaultEffect(t)}_pick(t,r,i){br(this.deckPicker);let{stats:s}=this;s.get(\"Pick Count\").incrementCount(),s.get(r).timeStart();let n=this.deckPicker[t]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return s.get(r).timeEnd(),n}_createCanvas(t){let r=t.canvas;return typeof r==\"string\"&&(r=document.getElementById(r),br(r)),r||(r=document.createElement(\"canvas\"),r.id=t.id||\"deckgl-overlay\",(t.parent||document.body).appendChild(r)),Object.assign(r.style,t.style),r}_setCanvasSize(t){if(!this.canvas)return;let{width:r,height:i}=t;if(r||r===0){let n=Number.isFinite(r)?\"\".concat(r,\"px\"):r;this.canvas.style.width=n}if(i||i===0){var s;let n=Number.isFinite(i)?\"\".concat(i,\"px\"):i;this.canvas.style.position=((s=t.style)===null||s===void 0?void 0:s.position)||\"absolute\",this.canvas.style.height=n}}_updateCanvasSize(){var t,r;let{canvas:i}=this;if(!i)return;let s=(t=i.clientWidth)!==null&&t!==void 0?t:i.width,n=(r=i.clientHeight)!==null&&r!==void 0?r:i.height;if(s!==this.width||n!==this.height){var o,c;this.width=s,this.height=n,(o=this.viewManager)===null||o===void 0||o.setProps({width:s,height:n}),(c=this.layerManager)===null||c===void 0||c.activateViewport(this.getViewports()[0]),this.props.onResize({width:s,height:n})}}_createAnimationLoop(t){let{width:r,height:i,gl:s,glOptions:n,debug:o,onError:c,onBeforeRender:f,onAfterRender:_,useDevicePixels:w}=t;return new X0({width:r,height:i,useDevicePixels:w,autoResizeDrawingBuffer:!s,autoResizeViewport:!1,gl:s,onCreateContext:C=>py({...n,...C,canvas:this.canvas,debug:o,onContextLost:()=>this._onContextLost()}),onInitialize:C=>this._setGLContext(C.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:f,onAfterRender:_,onError:c})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let t=this.props.views||[new jy({id:\"default-view\"})];return t=Array.isArray(t)?t:[t],t.length&&this.props.controller&&(t[0].props.controller=this.props.controller),t}_onContextLost(){let{onError:t}=this.props;this.animationLoop&&t&&t(new Error(\"WebGL context is lost\"))}_pickAndCallback(){let{_pickRequest:t}=this;if(t.event){let{result:i,emptyInfo:s}=this._pick(\"pickObject\",\"pickObject Time\",t);this.cursorState.isHovering=i.length>0;let n=s,o=!1;for(let c of i){var r;n=c,o=((r=c.layer)===null||r===void 0?void 0:r.onHover(c,t.event))||o}if(!o&&this.props.onHover&&this.props.onHover(n,t.event),this.props.getTooltip&&this.tooltip){let c=this.props.getTooltip(n);this.tooltip.setTooltip(c,n.x,n.y)}t.event=null}}_updateCursor(){let t=this.props.parent||this.canvas;t&&(t.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext(t){if(this.layerManager)return;this.canvas||(this.canvas=t.canvas,V0(t,{enable:!0,copyState:!0})),this.tooltip=new Gb(this.canvas),wl(t,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(t);let r=new QA;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new Wy(this.props.parent||t.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let s in U4)this.eventManager.on(s,this._onEvent);this.viewManager=new Rb({timeline:r,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let i=this.viewManager.getViewports()[0];this.layerManager=new kb(t,{deck:this,stats:this.stats,viewport:i,timeline:r}),this.effectManager=new Nb,this.deckRenderer=new Vb(t),this.deckPicker=new jb(t),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(t,r){let{gl:i}=this.layerManager.context;wl(i,this.props.parameters),this.props.onBeforeRender({gl:i}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:\"screen\",effects:this.effectManager.getEffects(),...r}),this.props.onAfterRender({gl:i})}_onRenderFrame(t){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),nr.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(t){let r=this.props.onViewStateChange(t)||t.viewState;this.viewState&&(this.viewState={...this.viewState,[t.viewId]:r},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(t){this.cursorState.isDragging=t.isDragging||!1,this.props.onInteractionStateChange(t)}_getFrameStats(){let{stats:t}=this;t.get(\"frameRate\").timeEnd(),t.get(\"frameRate\").timeStart();let r=this.animationLoop.stats;t.get(\"GPU Time\").addTime(r.get(\"GPU Time\").lastTiming),t.get(\"CPU Time\").addTime(r.get(\"CPU Time\").lastTiming)}_getMetrics(){let{metrics:t,stats:r}=this;t.fps=r.get(\"frameRate\").getHz(),t.setPropsTime=r.get(\"setProps Time\").time,t.updateAttributesTime=r.get(\"Update Attributes\").time,t.framesRedrawn=r.get(\"Redraw Count\").count,t.pickTime=r.get(\"pickObject Time\").time+r.get(\"pickMultipleObjects Time\").time+r.get(\"pickObjects Time\").time,t.pickCount=r.get(\"Pick Count\").count,t.gpuTime=r.get(\"GPU Time\").time,t.cpuTime=r.get(\"CPU Time\").time,t.gpuTimePerFrame=r.get(\"GPU Time\").getAverageTime(),t.cpuTimePerFrame=r.get(\"CPU Time\").getAverageTime();let i=Lu.get(\"Memory Usage\");t.bufferMemory=i.get(\"Buffer Memory\").count,t.textureMemory=i.get(\"Texture Memory\").count,t.renderbufferMemory=i.get(\"Renderbuffer Memory\").count,t.gpuMemory=i.get(\"GPU Memory\").count}};G(ap,\"defaultProps\",bG);G(ap,\"VERSION\",nV);var ug=class{constructor(t,r){G(this,\"opts\",void 0),G(this,\"source\",void 0),this.opts=r,this.source=t}get value(){return this.source.value}getValue(){let t=this.source.getBuffer(),r=this.getAccessor();if(t)return[t,r];let{value:i}=this.source,{size:s}=r,n=i;if(i&&i.length!==s){n=new Float32Array(s);let o=r.elementOffset||0;for(let c=0;c=n){let o=new Array(s).fill(1/0),c=new Array(s).fill(-1/0);for(let f=0;fc[_]&&(c[_]=w)}t=[o,c]}}return this.state.bounds=t,t}setData(t){let{state:r}=this,i;ArrayBuffer.isView(t)?i={value:t}:t instanceof Fr?i={buffer:t}:i=t;let s={...this.settings,...i};if(r.bufferAccessor=s,r.bounds=null,i.constant){let n=i.value;if(n=this._normalizeValue(n,[],0),this.settings.normalized&&(n=this.normalizeConstant(n)),!(!r.constant||!this._areValuesEqual(n,this.value)))return!1;r.externalBuffer=null,r.constant=!0,this.value=n}else if(i.buffer){let n=i.buffer;r.externalBuffer=n,r.constant=!1,this.value=i.value||null;let o=i.value instanceof Float64Array;s.type=i.type||n.accessor.type,s.bytesPerElement=n.accessor.BYTES_PER_ELEMENT*(o?2:1),s.stride=HE(s)}else if(i.value){this._checkExternalBuffer(i);let n=i.value;r.externalBuffer=null,r.constant=!1,this.value=n,s.bytesPerElement=n.BYTES_PER_ELEMENT,s.stride=HE(s);let{buffer:o,byteOffset:c}=this;this.doublePrecision&&n instanceof Float64Array&&(n=UE(n,s));let f=n.byteLength+c+s.stride*2;o.byteLength(r+128)/255*2-1);case 5122:return new Float32Array(t).map(r=>(r+32768)/65535*2-1);case 5121:return new Float32Array(t).map(r=>r/255);case 5123:return new Float32Array(t).map(r=>r/65535);default:return t}}_normalizeValue(t,r,i){let{defaultValue:s,size:n}=this.settings;if(Number.isFinite(t))return r[i]=t,r;if(!t){let o=n;for(;--o>=0;)r[i+o]=s[o];return r}switch(n){case 4:r[i+3]=Number.isFinite(t[3])?t[3]:s[3];case 3:r[i+2]=Number.isFinite(t[2])?t[2]:s[2];case 2:r[i+1]=Number.isFinite(t[1])?t[1]:s[1];case 1:r[i+0]=Number.isFinite(t[0])?t[0]:s[0];break;default:let o=n;for(;--o>=0;)r[i+o]=Number.isFinite(t[o])?t[o]:s[o]}return r}_areValuesEqual(t,r){if(!t||!r)return!1;let{size:i}=this;for(let s=0;s0&&(MG.length=e.length,i=MG):i=TG,(t>0||Number.isFinite(r))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(t,r),s.index=t-1),{iterable:i,objectInfo:s}}function qE(e){return e&&e[Symbol.asyncIterator]}function ZE(e,t){let{size:r,stride:i,offset:s,startIndices:n,nested:o}=t,c=e.BYTES_PER_ELEMENT,f=i?i/c:r,_=s?s/c:0,w=Math.floor((e.length-_)/f);return(C,{index:R,target:N})=>{if(!n){let $=R*f+_;for(let K=0;K=t[1]))return e;let r=[],i=e.length,s=0;for(let n=0;nt[1]?r.push(o):t=[Math.min(o[0],t[0]),Math.max(o[1],t[1])]}return r.splice(s,0,t),r}function hD(e){let{source:t,target:r,start:i=0,size:s,getData:n}=e,o=e.end||r.length,c=t.length,f=o-i;if(c>f){r.set(t.subarray(0,f),i);return}if(r.set(t,i),!n)return;let _=c;for(;_i(w+c,C)),_=Math.min(s.length,n.length);for(let w=1;w<_;w++){let C=s[w]*r,R=n[w]*r;hD({source:e.subarray(o,C),target:t,start:c,end:R,size:r,getData:f}),o=C,c=R}return ce},spring:{stiffness:.05,damping:.5}};function YE(e,t){if(!e)return null;Number.isFinite(e)&&(e={type:\"interpolation\",duration:e});let r=e.type||\"interpolation\";return{...Mlt[r],...t,...e,type:r}}function QE(e,t){let r=t.getBuffer();return r?[r,{divisor:0,size:t.size,normalized:t.settings.normalized}]:t.value}function $E(e){switch(e){case 1:return\"float\";case 2:return\"vec2\";case 3:return\"vec3\";case 4:return\"vec4\";default:throw new Error('No defined attribute type for size \"'.concat(e,'\"'))}}function XE(e){e.push(e.shift())}function Xb(e,t){let{doublePrecision:r,settings:i,value:s,size:n}=e,o=r&&s instanceof Float64Array?2:1;return(i.noAlloc?s.length:t*n)*o}function KE({buffer:e,numInstances:t,attribute:r,fromLength:i,fromStartIndices:s,getData:n=o=>o}){let o=r.doublePrecision&&r.value instanceof Float64Array?2:1,c=r.size*o,f=r.byteOffset,_=r.startIndices,w=s&&_,C=Xb(r,t),R=r.isConstant;if(!w&&i>=C)return;let N=R?r.value:r.getBuffer().getData({srcByteOffset:f});if(r.settings.normalized&&!R){let $=n;n=(K,tt)=>r.normalizeConstant($(K,tt))}let j=R?($,K)=>n(N,K):($,K)=>n(N.subarray($,$+c),K),Y=e.getData({length:i}),rt=new Float32Array(C);IG({source:Y,target:rt,sourceStartIndices:s,targetStartIndices:_,size:c,getData:j}),e.byteLengtht[n])]:t[r];return YE(s,i)}setNeedsUpdate(t=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||t,this.setNeedsRedraw(t),r){let{startRow:i=0,endRow:s=1/0}=r;this.state.updateRanges=PG(this.state.updateRanges,[i,s])}else this.state.updateRanges=$b}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=EG}setNeedsRedraw(t=this.id){this.state.needsRedraw=this.state.needsRedraw||t}allocate(t){let{state:r,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(t,r.updateRanges!==$b),!0):!1}updateBuffer({numInstances:t,data:r,props:i,context:s}){if(!this.needsUpdate())return!1;let{state:{updateRanges:n},settings:{update:o,noAlloc:c}}=this,f=!0;if(o){for(let[_,w]of n)o.call(s,this,{data:r,startRow:_,endRow:w,props:i,numInstances:t});if(this.value)if(this.constant||this.buffer.byteLengthw?_.set(tt,Y):(t._normalizeValue(tt,$.target,0),iD({target:_,source:$.target,start:Y,count:ut}));Y+=ut*w}else t._normalizeValue(tt,_,Y),Y+=w}}_validateAttributeUpdaters(){let{settings:t}=this;if(!(t.noAlloc||typeof t.update==\"function\"))throw new Error(\"Attribute \".concat(this.id,\" missing update or accessor\"))}_checkAttributeArray(){let{value:t}=this,r=Math.min(4,this.size);if(t&&t.length>=r){let i=!0;switch(r){case 4:i=i&&Number.isFinite(t[3]);case 3:i=i&&Number.isFinite(t[2]);case 2:i=i&&Number.isFinite(t[1]);case 1:i=i&&Number.isFinite(t[0]);break;default:i=!1}if(!i)throw new Error(\"Illegal attribute generated for \".concat(this.id))}}};var Kb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"interpolation\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.transition=new $c(i),this.attribute=r,this.attributeInTransition=new lp(t,r.settings),this.currentStartIndices=r.startIndices,this.currentLength=0,this.transform=Plt(t,r);let s={byteLength:0,usage:35050};this.buffers=[new Fr(t,s),new Fr(t,s)]}get inProgress(){return this.transition.inProgress}start(t,r){if(t.duration<=0){this.transition.cancel();return}this.settings=t;let{gl:i,buffers:s,attribute:n}=this;XE(s);let o={numInstances:r,attribute:n,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of s)KE({buffer:c,...o});this.currentStartIndices=n.startIndices,this.currentLength=Xb(n,r),this.attributeInTransition.setData({buffer:s[1],value:n.value}),this.transition.start(t),this.transform.update({elementCount:Math.floor(this.currentLength/n.size),sourceBuffers:{aFrom:s[0],aTo:QE(i,n)},feedbackBuffers:{vCurrent:s[1]}})}update(){let t=this.transition.update();if(t){let{duration:r,easing:i}=this.settings,{time:s}=this.transition,n=s/r;i&&(n=i(n)),this.transform.run({uniforms:{time:n}})}return t}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0}},Elt=`\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nuniform float time;\nattribute ATTRIBUTE_TYPE aFrom;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, time);\n gl_Position = vec4(0.0);\n}\n`;function Plt(e,t){let r=$E(t.size);return new ec(e,{vs:Elt,defines:{ATTRIBUTE_TYPE:r},varyings:[\"vCurrent\"]})}var Jb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"spring\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"texture\",void 0),G(this,\"framebuffer\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.type=\"spring\",this.transition=new $c(i),this.attribute=r,this.attributeInTransition=new lp(t,{...r.settings,normalized:!1}),this.currentStartIndices=r.startIndices,this.currentLength=0,this.texture=Clt(t),this.framebuffer=Llt(t,this.texture),this.transform=Ilt(t,r,this.framebuffer);let s={byteLength:0,usage:35050};this.buffers=[new Fr(t,s),new Fr(t,s),new Fr(t,s)]}get inProgress(){return this.transition.inProgress}start(t,r){let{gl:i,buffers:s,attribute:n}=this,o={numInstances:r,attribute:n,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of s)KE({buffer:c,...o});this.settings=t,this.currentStartIndices=n.startIndices,this.currentLength=Xb(n,r),this.attributeInTransition.setData({buffer:s[1],value:n.value}),this.transition.start({...t,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/n.size),sourceBuffers:{aTo:QE(i,n)}})}update(){let{buffers:t,transform:r,framebuffer:i,transition:s}=this;if(!s.update())return!1;let o=this.settings;return r.update({sourceBuffers:{aPrev:t[0],aCur:t[1]},feedbackBuffers:{vNext:t[2]}}),r.run({framebuffer:i,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:o.stiffness,damping:o.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),XE(t),this.attributeInTransition.setData({buffer:t[1],value:this.attribute.value}),Rh(i)[0]>0||s.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}};function Ilt(e,t,r){let i=$E(t.size);return new ec(e,{framebuffer:r,vs:`\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nuniform float stiffness;\nuniform float damping;\nattribute ATTRIBUTE_TYPE aPrev;\nattribute ATTRIBUTE_TYPE aCur;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vNext;\nvarying float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE spring = delta * stiffness;\n ATTRIBUTE_TYPE damper = velocity * -1.0 * damping;\n return spring + damper + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n`,fs:`\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nvarying float vIsTransitioningFlag;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n gl_FragColor = vec4(1.0);\n}`,defines:{ATTRIBUTE_TYPE:i},varyings:[\"vNext\"]})}function Clt(e){return new pi(e,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}function Llt(e,t){return new yi(e,{id:\"spring-transition-is-transitioning-framebuffer\",width:1,height:1,attachments:{36064:t}})}var klt={interpolation:Kb,spring:Jb},tw=class{constructor(t,{id:r,timeline:i}){G(this,\"id\",void 0),G(this,\"isSupported\",void 0),G(this,\"gl\",void 0),G(this,\"timeline\",void 0),G(this,\"transitions\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"numInstances\",void 0),this.id=r,this.gl=t,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=ec.isSupported(t)}finalize(){for(let t in this.transitions)this._removeTransition(t)}update({attributes:t,transitions:r,numInstances:i}){this.numInstances=i||1;for(let s in t){let n=t[s],o=n.getTransitionSetting(r);o&&this._updateAttribute(s,n,o)}for(let s in this.transitions){let n=t[s];(!n||!n.getTransitionSetting(r))&&this._removeTransition(s)}}hasAttribute(t){let r=this.transitions[t];return r&&r.inProgress}getAttributes(){let t={};for(let r in this.transitions){let i=this.transitions[r];i.inProgress&&(t[r]=i.attributeInTransition)}return t}run(){if(!this.isSupported||this.numInstances===0)return!1;for(let r in this.transitions)this.transitions[r].update()&&(this.needsRedraw=!0);let t=this.needsRedraw;return this.needsRedraw=!1,t}_removeTransition(t){this.transitions[t].cancel(),delete this.transitions[t]}_updateAttribute(t,r,i){let s=this.transitions[t],n=!s||s.type!==i.type;if(n){if(!this.isSupported){nr.warn(\"WebGL2 not supported by this browser. Transition for \".concat(t,\" is disabled.\"))();return}s&&this._removeTransition(t);let o=klt[i.type];o?this.transitions[t]=new o({attribute:r,timeline:this.timeline,gl:this.gl}):(nr.error(\"unsupported transition type '\".concat(i.type,\"'\"))(),n=!1)}(n||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[t].start(i,this.numInstances))}};var CG=\"attributeManager.invalidate\",Rlt=\"attributeManager.updateStart\",Dlt=\"attributeManager.updateEnd\",Olt=\"attribute.updateStart\",Blt=\"attribute.allocate\",Flt=\"attribute.updateEnd\",Yf=class{constructor(t,{id:r=\"attribute-manager\",stats:i,timeline:s}={}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"attributes\",void 0),G(this,\"updateTriggers\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"userData\",void 0),G(this,\"stats\",void 0),G(this,\"attributeTransitionManager\",void 0),G(this,\"mergeBoundsMemoized\",Hf(G7)),this.id=r,this.gl=t,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new tw(t,{id:\"\".concat(r,\"-transitions\"),timeline:s}),Object.seal(this)}finalize(){for(let t in this.attributes)this.attributes[t].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(t={clearRedrawFlags:!1}){let r=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!t.clearRedrawFlags,r&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(t){this._add(t)}addInstanced(t){this._add(t,{instanced:1})}remove(t){for(let r of t)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(t,r){let i=this._invalidateTrigger(t,r);Cs(CG,this,t,i)}invalidateAll(t){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,t);Cs(CG,this,\"all\")}update({data:t,numInstances:r,startIndices:i=null,transitions:s,props:n={},buffers:o={},context:c={}}){let f=!1;Cs(Rlt,this),this.stats&&this.stats.get(\"Update Attributes\").timeStart();for(let _ in this.attributes){let w=this.attributes[_],C=w.settings.accessor;w.startIndices=i,w.numInstances=r,n[_]&&nr.removed(\"props.\".concat(_),\"data.attributes.\".concat(_))(),w.setExternalBuffer(o[_])||w.setBinaryValue(typeof C==\"string\"?o[C]:void 0,t.startIndices)||typeof C==\"string\"&&!o[C]&&w.setConstantValue(n[C])||w.needsUpdate()&&(f=!0,this._updateAttribute({attribute:w,numInstances:r,data:t,props:n,context:c})),this.needsRedraw=this.needsRedraw||w.needsRedraw()}f&&Cs(Dlt,this,r),this.stats&&this.stats.get(\"Update Attributes\").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:s})}updateTransition(){let{attributeTransitionManager:t}=this,r=t.run();return this.needsRedraw=this.needsRedraw||r,r}getAttributes(){return this.attributes}getBounds(t){let r=t.map(i=>{var s;return(s=this.attributes[i])===null||s===void 0?void 0:s.getBounds()});return this.mergeBoundsMemoized(r)}getChangedAttributes(t={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:i}=this,s={...i.getAttributes()};for(let n in r){let o=r[n];o.needsRedraw(t)&&!i.hasAttribute(n)&&(s[n]=o)}return s}getShaderAttributes(t,r={}){t||(t=this.getAttributes());let i={};for(let s in t)r[s]||Object.assign(i,t[s].getShaderAttributes());return i}_add(t,r={}){for(let i in t){let s=t[i];this.attributes[i]=this._createAttribute(i,s,r)}this._mapUpdateTriggersToAttributes()}_createAttribute(t,r,i){let s={...r,id:t,size:r.isIndexed&&1||r.size||1,divisor:i.instanced?1:r.divisor||0};return new lp(this.gl,s)}_mapUpdateTriggersToAttributes(){let t={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(s=>{t[s]||(t[s]=[]),t[s].push(r)});this.updateTriggers=t}_invalidateTrigger(t,r){let{attributes:i,updateTriggers:s}=this,n=s[t];return n&&n.forEach(o=>{let c=i[o];c&&c.setNeedsUpdate(c.id,r)}),n}_updateAttribute(t){let{attribute:r,numInstances:i}=t;if(Cs(Olt,r),r.constant){r.setConstantValue(r.value);return}r.allocate(i)&&Cs(Blt,r,i),r.updateBuffer(t)&&(this.needsRedraw=!0,Cs(Flt,r,i))}};var ew=class extends $c{get value(){return this._value}_onUpdate(){let{time:t,settings:{fromValue:r,toValue:i,duration:s,easing:n}}=this,o=n(t/s);this._value=tc(r,i,o)}};var LG=1e-5;function kG(e,t,r,i,s){let n=t-e,c=(r-t)*s,f=-n*i;return c+f+n+t}function zlt(e,t,r,i,s){if(Array.isArray(r)){let n=[];for(let o=0;o0}add(t,r,i,s){let{transitions:n}=this;if(n.has(t)){let f=n.get(t),{value:_=f.settings.fromValue}=f;r=_,this.remove(t)}if(s=YE(s),!s)return;let o=Nlt[s.type];if(!o){nr.error(\"unsupported transition type '\".concat(s.type,\"'\"))();return}let c=new o(this.timeline);c.start({...s,fromValue:r,toValue:i}),n.set(t,c)}remove(t){let{transitions:r}=this;r.has(t)&&(r.get(t).cancel(),r.delete(t))}update(){let t={};for(let[r,i]of this.transitions)i.update(),t[r]=i.value,i.inProgress||this.remove(r);return t}clear(){for(let t of this.transitions.keys())this.remove(t)}};function OG(e){let t=e[Ou];for(let r in t){let i=t[r],{validate:s}=i;if(s&&!s(e[r],i))throw new Error(\"Invalid prop \".concat(r,\": \").concat(e[r]))}}function BG(e,t){let r=nw({newProps:e,oldProps:t,propTypes:e[Ou],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=Vlt(e,t),s=!1;return i||(s=jlt(e,t)),{dataChanged:i,propsChanged:r,updateTriggersChanged:s,extensionsChanged:Glt(e,t),transitionsChanged:Ult(e,t)}}function Ult(e,t){if(!e.transitions)return!1;let r={},i=e[Ou],s=!1;for(let n in e.transitions){let o=i[n],c=o&&o.type;(c===\"number\"||c===\"color\"||c===\"array\")&&fD(e[n],t[n],o)&&(r[n]=!0,s=!0)}return s?r:!1}function nw({newProps:e,oldProps:t,ignoreProps:r={},propTypes:i={},triggerName:s=\"props\"}){if(t===e)return!1;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return\"\".concat(s,\" changed shallowly\");for(let n of Object.keys(e))if(!(n in r)){if(!(n in t))return\"\".concat(s,\".\").concat(n,\" added\");let o=fD(e[n],t[n],i[n]);if(o)return\"\".concat(s,\".\").concat(n,\" \").concat(o)}for(let n of Object.keys(t))if(!(n in r)){if(!(n in e))return\"\".concat(s,\".\").concat(n,\" dropped\");if(!Object.hasOwnProperty.call(e,n)){let o=fD(e[n],t[n],i[n]);if(o)return\"\".concat(s,\".\").concat(n,\" \").concat(o)}}return!1}function fD(e,t,r){let i=r&&r.equal;return i&&!i(e,t,r)||!i&&(i=e&&t&&e.equals,i&&!i.call(e,t))?\"changed deeply\":!i&&t!==e?\"changed shallowly\":null}function Vlt(e,t){if(t===null)return\"oldProps is null, initial diff\";let r=!1,{dataComparator:i,_dataDiff:s}=e;return i?i(e.data,t.data)||(r=\"Data comparator detected a change\"):e.data!==t.data&&(r=\"A new data container was supplied\"),r&&s&&(r=s(e.data,t.data)||r),r}function jlt(e,t){if(t===null)return{all:!0};if(\"all\"in e.updateTriggers&&DG(e,t,\"all\"))return{all:!0};let r={},i=!1;for(let s in e.updateTriggers)s!==\"all\"&&DG(e,t,s)&&(r[s]=!0,i=!0);return i?r:!1}function Glt(e,t){if(t===null)return!0;let r=t.extensions,{extensions:i}=e;if(i===r)return!1;if(!r||!i||i.length!==r.length)return!0;for(let s=0;si.name===\"project64\"))){let i=r.modules.findIndex(s=>s.name===\"project32\");i>=0&&r.modules.splice(i,1)}if(\"inject\"in t)if(!e.inject)r.inject=t.inject;else{let i={...e.inject};for(let s in t.inject)i[s]=(i[s]||\"\")+t.inject[s];r.inject=i}return r}var Ylt={10241:9987,10240:9729,10242:33071,10243:33071},dD={};function NG(e,t,r,i){if(r instanceof pi)return r;r.constructor&&r.constructor.name!==\"Object\"&&(r={data:r});let s=null;r.compressed&&(s={10241:r.data.length>1?9985:9729});let n=new pi(t,{...r,parameters:{...Ylt,...s,...i}});return dD[n.id]=e,n}function UG(e,t){!t||!(t instanceof pi)||dD[t.id]===e&&(t.delete(),delete dD[t.id])}var Qlt={boolean:{validate(e,t){return!0},equal(e,t,r){return!!e==!!t}},number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},color:{validate(e,t){return t.optional&&!e||pD(e)&&(e.length===3||e.length===4)},equal(e,t,r){return ao(e,t,1)}},accessor:{validate(e,t){let r=JE(e);return r===\"function\"||r===JE(t.value)},equal(e,t,r){return typeof t==\"function\"?!0:ao(e,t,1)}},array:{validate(e,t){return t.optional&&!e||pD(e)},equal(e,t,r){let{compare:i}=r,s=Number.isInteger(i)?i:i?1:0;return i?ao(e,t,s):e===t}},object:{equal(e,t,r){if(r.ignore)return!0;let{compare:i}=r,s=Number.isInteger(i)?i:i?1:0;return i?ao(e,t,s):e===t}},function:{validate(e,t){return t.optional&&!e||typeof e==\"function\"},equal(e,t,r){return!r.compare&&r.ignore!==!1||e===t}},data:{transform:(e,t,r)=>{let{dataTransform:i}=r.props;return i&&e?i(e):e}},image:{transform:(e,t,r)=>{let i=r.context;return!i||!i.gl?null:NG(r.id,i.gl,e,{...t.parameters,...r.props.textureParameters})},release:(e,t,r)=>{UG(r.id,e)}}};function VG(e){let t={},r={},i={};for(let[s,n]of Object.entries(e)){let o=n?.deprecatedFor;if(o)i[s]=Array.isArray(o)?o:[o];else{let c=$lt(s,n);t[s]=c,r[s]=c.value}}return{propTypes:t,defaultProps:r,deprecatedProps:i}}function $lt(e,t){switch(JE(t)){case\"object\":return sw(e,t);case\"array\":return sw(e,{type:\"array\",value:t,compare:!1});case\"boolean\":return sw(e,{type:\"boolean\",value:t});case\"number\":return sw(e,{type:\"number\",value:t});case\"function\":return sw(e,{type:\"function\",value:t,compare:!0});default:return{name:e,type:\"unknown\",value:t}}}function sw(e,t){return\"type\"in t?{name:e,...Qlt[t.type],...t}:\"value\"in t?{name:e,type:JE(t.value),...t}:{name:e,type:\"object\",value:t}}function pD(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function JE(e){return pD(e)?\"array\":e===null?\"null\":typeof e}function jG(e,t){let r;for(let n=t.length-1;n>=0;n--){let o=t[n];\"extensions\"in o&&(r=o.extensions)}let i=AD(e.constructor,r),s=Object.create(i);s[Uy]=e,s[Zf]={},s[Gh]={};for(let n=0;n{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(let t in this.asyncProps){let r=this.asyncProps[t];r&&r.type&&r.type.release&&r.type.release(r.resolvedValue,r.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||sct}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(t){return t in this.asyncProps}getAsyncProp(t){let r=this.asyncProps[t];return r&&r.resolvedValue}isAsyncPropLoading(t){if(t){let r=this.asyncProps[t];return!!(r&&r.pendingLoadCount>0&&r.pendingLoadCount!==r.resolvedLoadCount)}for(let r in this.asyncProps)if(this.isAsyncPropLoading(r))return!0;return!1}reloadAsyncProp(t,r){this._watchPromise(t,Promise.resolve(r))}setAsyncProps(t){this.component=t[Uy]||this.component;let r=t[Gh]||{},i=t[Zf]||t,s=t[ip]||{};for(let n in r){let o=r[n];this._createAsyncPropData(n,s[n]),this._updateAsyncProp(n,o),r[n]=this.getAsyncProp(n)}for(let n in i){let o=i[n];this._createAsyncPropData(n,s[n]),this._updateAsyncProp(n,o)}}_fetch(t,r){return null}_onResolve(t,r){}_onError(t,r){}_updateAsyncProp(t,r){if(this._didAsyncInputValueChange(t,r)){if(typeof r==\"string\"&&(r=this._fetch(t,r)),r instanceof Promise){this._watchPromise(t,r);return}if(qE(r)){this._resolveAsyncIterable(t,r);return}this._setPropValue(t,r)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(let t in this.asyncProps)Object.defineProperty(this.oldAsyncProps,t,{enumerable:!0,value:this.oldProps[t]})}}_didAsyncInputValueChange(t,r){let i=this.asyncProps[t];return r===i.resolvedValue||r===i.lastValue?!1:(i.lastValue=r,!0)}_setPropValue(t,r){this._freezeAsyncOldProps();let i=this.asyncProps[t];i&&(r=this._postProcessValue(i,r),i.resolvedValue=r,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(t,r,i){let s=this.asyncProps[t];s&&i>=s.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),s.resolvedValue=r,s.resolvedLoadCount=i,this.onAsyncPropUpdated(t,r))}_watchPromise(t,r){let i=this.asyncProps[t];if(i){i.pendingLoadCount++;let s=i.pendingLoadCount;r.then(n=>{this.component&&(n=this._postProcessValue(i,n),this._setAsyncPropValue(t,n,s),this._onResolve(t,n))}).catch(n=>{this._onError(t,n)})}}async _resolveAsyncIterable(t,r){if(t!==\"data\"){this._setPropValue(t,r);return}let i=this.asyncProps[t];if(!i)return;i.pendingLoadCount++;let s=i.pendingLoadCount,n=[],o=0;for await(let c of r){if(!this.component)return;let{dataTransform:f}=this.component.props;f?n=f(c,n):n=n.concat(c),Object.defineProperty(n,\"__diff\",{enumerable:!1,value:[{startRow:o,endRow:n.length}]}),o=n.length,this._setAsyncPropValue(t,n,s)}this._onResolve(t,n)}_postProcessValue(t,r){let i=t.type;return i&&this.component&&(i.release&&i.release(t.resolvedValue,i,this.component),i.transform)?i.transform(r,i,this.component):r}_createAsyncPropData(t,r){if(!this.asyncProps[t]){let s=this.component&&this.component.props[Ou];this.asyncProps[t]={type:s&&s[t],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var aw=class extends ow{constructor({attributeManager:t,layer:r}){super(r),G(this,\"attributeManager\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"needsUpdate\",void 0),G(this,\"subLayers\",void 0),G(this,\"usesPickingColorCache\",void 0),G(this,\"hasPickingBuffer\",void 0),G(this,\"changeFlags\",void 0),G(this,\"viewport\",void 0),G(this,\"uniformTransitions\",void 0),G(this,\"propsInTransition\",void 0),this.attributeManager=t,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(t,r){let i=this.layer,s=i?.props.fetch;return s?s(r,{propName:t,layer:i}):super._fetch(t,r)}_onResolve(t,r){let i=this.layer;if(i){let s=i.props.onDataLoad;t===\"data\"&&s&&s(r,{propName:t,layer:i})}}_onError(t,r){let i=this.layer;i&&i.raiseError(r,\"loading \".concat(t,\" of \").concat(this.layer))}};var oct=\"layer.changeFlag\",act=\"layer.initialize\",lct=\"layer.update\",cct=\"layer.finalize\",uct=\"layer.matched\",WG=2**24-1,hct=Object.freeze([]),fct=Hf(({oldViewport:e,viewport:t})=>e.equals(t)),Qf=new Uint8ClampedArray(0),dct={data:{type:\"data\",value:hct,async:!0},dataComparator:{type:\"function\",value:null,optional:!0},_dataDiff:{type:\"function\",value:e=>e&&e.__diff,optional:!0},dataTransform:{type:\"function\",value:null,optional:!0},onDataLoad:{type:\"function\",value:null,optional:!0},onError:{type:\"function\",value:null,optional:!0},fetch:{type:\"function\",value:(e,{propName:t,layer:r,loaders:i,loadOptions:s,signal:n})=>{let{resourceManager:o}=r.context;if(s=s||r.getLoadOptions(),i=i||r.props.loaders,n){var c;s={...s,fetch:{...(c=s)===null||c===void 0?void 0:c.fetch,signal:n}}}let f=o.contains(e);return!f&&!s&&(o.add({resourceId:e,data:NA(e,i),persistent:!1}),f=!0),f?o.subscribe({resourceId:e,onChange:_=>{var w;return(w=r.internalState)===null||w===void 0?void 0:w.reloadAsyncProp(t,_)},consumerId:r.id,requestId:t}):NA(e,i,s)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:\"number\",min:0,max:1,value:1},operation:\"draw\",onHover:{type:\"function\",value:null,optional:!0},onClick:{type:\"function\",value:null,optional:!0},onDragStart:{type:\"function\",value:null,optional:!0},onDrag:{type:\"function\",value:null,optional:!0},onDragEnd:{type:\"function\",value:null,optional:!0},coordinateSystem:Yr.DEFAULT,coordinateOrigin:{type:\"array\",value:[0,0,0],compare:!0},modelMatrix:{type:\"array\",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:\"XYZ\",colorFormat:\"RGBA\",parameters:{type:\"object\",value:{},optional:!0,compare:2},loadOptions:{type:\"object\",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:\"array\",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:\"function\",value:({layerIndex:e})=>[0,-e*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:\"accessor\",value:[0,0,128,128]}},Tn=class extends hg{constructor(...t){super(...t),G(this,\"internalState\",null),G(this,\"lifecycle\",XA.NO_STATE),G(this,\"context\",void 0),G(this,\"state\",void 0),G(this,\"parent\",null)}static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"layerName\")?this.layerName:\"\"}get root(){let t=this;for(;t.parent;)t=t.parent;return t}toString(){let t=this.constructor.layerName||this.constructor.name;return\"\".concat(t,\"({id: '\").concat(this.props.id,\"'})\")}project(t){br(this.internalState);let r=this.internalState.viewport||this.context.viewport,i=rD(t,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[s,n,o]=By(i,r.pixelProjectionMatrix);return t.length===2?[s,n]:[s,n,o]}unproject(t){return br(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(t)}projectPosition(t,r){br(this.internalState);let i=this.internalState.viewport||this.context.viewport;return q7(t,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}setState(t){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,t),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters(t){for(let r of this.getModels())r.updateModuleSettings(t)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){let{coordinateSystem:t}=this.props;return t===Yr.DEFAULT||t===Yr.LNGLAT||t===Yr.CARTESIAN}onHover(t,r){return this.props.onHover&&this.props.onHover(t,r)||!1}onClick(t,r){return this.props.onClick&&this.props.onClick(t,r)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(t,r=[]){return r[0]=t+1&255,r[1]=t+1>>8&255,r[2]=t+1>>8>>8&255,r}decodePickingColor(t){br(t instanceof Uint8Array);let[r,i,s]=t;return r+i*256+s*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:FG(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"positions\",\"instancePositions\"])}getShaders(t){for(let r of this.props.extensions)t=zG(t,r.getShaders.call(this,r));return t}shouldUpdateState(t){return t.changeFlags.propsOrDataChanged}updateState(t){let r=this.getAttributeManager(),{dataChanged:i}=t.changeFlags;if(i&&r)if(Array.isArray(i))for(let s of i)r.invalidateAll(s);else r.invalidateAll();if(r){let{props:s}=t,n=this.internalState.hasPickingBuffer,o=Number.isInteger(s.highlightedObjectIndex)||s.pickable||s.extensions.some(c=>c.getNeedsPickingBuffer.call(this,c));if(n!==o){this.internalState.hasPickingBuffer=o;let{pickingColors:c,instancePickingColors:f}=r.attributes,_=c||f;_&&(o&&_.constant&&(_.constant=!1,r.invalidate(_.id)),!_.value&&!o&&(_.constant=!0,_.value=[0,0,0]))}}}finalizeState(t){for(let i of this.getModels())i.delete();let r=this.getAttributeManager();r&&r.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(t){for(let r of this.getModels())r.draw(t)}getPickingInfo({info:t,mode:r,sourceLayer:i}){let{index:s}=t;return s>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[s]),t}raiseError(t,r){var i,s;if(r&&(t=new Error(\"\".concat(r,\": \").concat(t.message),{cause:t})),!((i=(s=this.props).onError)!==null&&i!==void 0&&i.call(s,t))){var n,o;(n=this.context)===null||n===void 0||(o=n.onError)===null||o===void 0||o.call(n,t,this)}}getNeedsRedraw(t={clearRedrawFlags:!1}){return this._getNeedsRedraw(t)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var t;return((t=this.internalState)===null||t===void 0?void 0:t.uniformTransitions.active)||!1}activateViewport(t){if(!this.internalState)return;let r=this.internalState.viewport;this.internalState.viewport=t,(!r||!fct({oldViewport:r,viewport:t}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(t=\"all\"){let r=this.getAttributeManager();r&&(t===\"all\"?r.invalidateAll():r.invalidate(t))}updateAttributes(t){for(let r of this.getModels())this._setModelAttributes(r,t)}_updateAttributes(){let t=this.getAttributeManager();if(!t)return;let r=this.props,i=this.getNumInstances(),s=this.getStartIndices();t.update({data:r.data,numInstances:i,startIndices:s,props:r,transitions:r.transitions,buffers:r.data.attributes,context:this});let n=t.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(n)}_updateAttributeTransition(){let t=this.getAttributeManager();t&&t.updateTransition()}_updateUniformTransition(){let{uniformTransitions:t}=this.internalState;if(t.active){let r=t.update(),i=Object.create(this.props);for(let s in r)Object.defineProperty(i,s,{value:r[s]});return i}return this.props}calculateInstancePickingColors(t,{numInstances:r}){if(t.constant)return;let i=Math.floor(Qf.length/3);if(this.internalState.usesPickingColorCache=!0,iWG&&nr.warn(\"Layer has too many data objects. Picking might not be able to distinguish all objects.\")(),Qf=jh.allocate(Qf,r,{size:3,copy:!0,maxCount:Math.max(r,WG)});let s=Math.floor(Qf.length/3),n=[];for(let o=i;o(nr.deprecated(\"layer.state.attributeManager\",\"layer.getAttributeManager()\")(),t)}),this.internalState.uniformTransitions=new iw(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(let r of this.props.extensions)r.initializeState.call(this,this.context,r);this.setChangeFlags({dataChanged:\"init\",propsChanged:\"init\",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(t){Cs(uct,this,this===t);let{state:r,internalState:i}=t;this!==t&&(this.internalState=i,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let t=this.needsUpdate();if(Cs(lct,this,t),!t)return;let r=this.props,i=this.context,s=this.internalState,n=i.viewport,o=this._updateUniformTransition();s.propsInTransition=o,i.viewport=s.viewport||n,this.props=o;try{let c=this._getUpdateParams(),f=this.getModels();if(i.gl)this.updateState(c);else try{this.updateState(c)}catch{}for(let w of this.props.extensions)w.updateState.call(this,c,w);let _=this.getModels()[0]!==f[0];this._postUpdate(c,_)}finally{i.viewport=n,this.props=r,this._clearChangeFlags(),s.needsUpdate=!1,s.resetOldProps()}}_finalize(){Cs(cct,this),this.finalizeState(this.context);for(let t of this.props.extensions)t.finalizeState.call(this,this.context,t)}_drawLayer({moduleParameters:t=null,uniforms:r={},parameters:i={}}){this._updateAttributeTransition();let s=this.props,n=this.context;this.props=this.internalState.propsInTransition||s;let o=this.props.opacity;r.opacity=Math.pow(o,1/2.2);try{t&&this.setModuleParameters(t);let{getPolygonOffset:c}=this.props,f=c&&c(r)||[0,0];wl(n.gl,{polygonOffset:f}),bn(n.gl,i,()=>{let _={moduleParameters:t,uniforms:r,parameters:i,context:n};for(let w of this.props.extensions)w.draw.call(this,_,w);this.draw(_)})}finally{this.props=s}}getChangeFlags(){var t;return(t=this.internalState)===null||t===void 0?void 0:t.changeFlags}setChangeFlags(t){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let s in t)if(t[s]){let n=!1;switch(s){case\"dataChanged\":let o=t[s],c=r[s];o&&Array.isArray(c)&&(r.dataChanged=Array.isArray(o)?c.concat(o):o,n=!0);default:r[s]||(r[s]=t[s],n=!0)}n&&Cs(oct,this,s,t)}let i=!!(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=i,r.somethingChanged=i||r.viewportChanged||r.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(t,r){let i=BG(t,r);if(i.updateTriggersChanged)for(let n in i.updateTriggersChanged)i.updateTriggersChanged[n]&&this.invalidateAttribute(n);if(i.transitionsChanged)for(let n in i.transitionsChanged){var s;this.internalState.uniformTransitions.add(n,r[n],t[n],(s=t.transitions)===null||s===void 0?void 0:s[n])}return this.setChangeFlags(i)}validateProps(){OG(this.props)}updateAutoHighlight(t){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(t)}_updateAutoHighlight(t){let r={pickingSelectedColor:t.picked?t.color:null},{highlightColor:i}=this.props;t.picked&&typeof i==\"function\"&&(r.pickingHighlightColor=i(t)),this.setModuleParameters(r),this.setNeedsRedraw()}_getAttributeManager(){let t=this.context;return new Yf(t.gl,{id:this.props.id,stats:t.stats,timeline:t.timeline})}_postUpdate(t,r){let{props:i,oldProps:s}=t;this.setNeedsRedraw(),this._updateAttributes();let{model:n}=this.state;n?.setInstanceCount(this.getNumInstances());let{autoHighlight:o,highlightedObjectIndex:c,highlightColor:f}=i;if(r||s.autoHighlight!==o||s.highlightedObjectIndex!==c||s.highlightColor!==f){let _={};o||(_.pickingSelectedColor=null),Array.isArray(f)&&(_.pickingHighlightColor=f),(r||c!==s.highlightedObjectIndex)&&(_.pickingSelectedColor=Number.isFinite(c)&&c>=0?this.encodePickingColor(c):null),this.setModuleParameters(_)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(t){if(!this.internalState)return!1;let r=!1;r=r||this.internalState.needsRedraw&&this.id;let i=this.getAttributeManager(),s=i?i.getNeedsRedraw(t):!1;if(r=r||s,r)for(let n of this.props.extensions)n.onNeedsRedraw.call(this,n);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!t.clearRedrawFlags,r}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}};G(Tn,\"defaultProps\",dct);G(Tn,\"layerName\",\"Layer\");var pct=\"compositeLayer.renderLayers\",tn=class extends Tn{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(t=>t.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(t){}setState(t){super.setState(t),this.setNeedsUpdate()}getPickingInfo({info:t}){let{object:r}=t;return r&&r.__source&&r.__source.parent&&r.__source.parent.id===this.id&&(t.object=r.__source.object,t.index=r.__source.index),t}filterSubLayer(t){return!0}shouldRenderSubLayer(t,r){return r&&r.length}getSubLayerClass(t,r){let{_subLayerProps:i}=this.props;return i&&i[t]&&i[t].type||r}getSubLayerRow(t,r,i){return t.__source={parent:this,object:r,index:i},t}getSubLayerAccessor(t){if(typeof t==\"function\"){let r={index:-1,data:this.props.data,target:[]};return(i,s)=>i&&i.__source?(r.index=i.__source.index,t(i.__source.object,r)):t(i,s)}return t}getSubLayerProps(t={}){var r;let{opacity:i,pickable:s,visible:n,parameters:o,getPolygonOffset:c,highlightedObjectIndex:f,autoHighlight:_,highlightColor:w,coordinateSystem:C,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:rt,fetch:$,operation:K,_subLayerProps:tt}=this.props,ut={id:\"\",updateTriggers:{},opacity:i,pickable:s,visible:n,parameters:o,getPolygonOffset:c,highlightedObjectIndex:f,autoHighlight:_,highlightColor:w,coordinateSystem:C,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:rt,fetch:$,operation:K},Pt=tt&&t.id&&tt[t.id],Ot=Pt&&Pt.updateTriggers,Kt=t.id||\"sublayer\";if(Pt){let Zt=this.props[Ou],le=t.type?t.type._propTypes:{};for(let ue in Pt){let Ge=le[ue]||Zt[ue];Ge&&Ge.type===\"accessor\"&&(Pt[ue]=this.getSubLayerAccessor(Pt[ue]))}}Object.assign(ut,t,Pt),ut.id=\"\".concat(this.props.id,\"-\").concat(Kt),ut.updateTriggers={all:(r=this.props.updateTriggers)===null||r===void 0?void 0:r.all,...t.updateTriggers,...Ot};for(let Zt of rt){let le=Zt.getSubLayerProps.call(this,Zt);le&&Object.assign(ut,le,{updateTriggers:Object.assign(ut.updateTriggers,le.updateTriggers)})}return ut}_updateAutoHighlight(t){for(let r of this.getSubLayers())r.updateAutoHighlight(t)}_getAttributeManager(){return null}_postUpdate(t,r){let i=this.internalState.subLayers,s=!i||this.needsUpdate();if(s){let n=this.renderLayers();i=np(n,Boolean),this.internalState.subLayers=i}Cs(pct,this,s,i);for(let n of i)n.parent=this}};G(tn,\"layerName\",\"CompositeLayer\");var tP=Math.PI/180,HG=180/Math.PI,eP=6370972,Hy=256;function Act(){let e=Hy/eP,t=Math.PI/180*Hy;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[t,t,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/t,1/t,1/e]}}var qy=class extends ic{constructor(t={}){let{latitude:r=0,longitude:i=0,zoom:s=0,nearZMultiplier:n=.1,farZMultiplier:o=2,resolution:c=10}=t,{height:f,altitude:_=1.5}=t;f=f||1,_=Math.max(.75,_);let w=new wn().lookAt({eye:[0,-_,0],up:[0,0,1]}),C=Math.pow(2,s);w.rotateX(r*tP),w.rotateZ(-i*tP),w.scale(C/f);let R=Math.atan(.5/_),N=Hy*2*C/f;super({...t,height:f,viewMatrix:w,longitude:i,latitude:r,zoom:s,distanceScales:Act(),fovyRadians:R*2,focalDistance:_,near:n,far:Math.min(2,1/N+1)*_*o}),G(this,\"longitude\",void 0),G(this,\"latitude\",void 0),G(this,\"resolution\",void 0),this.latitude=r,this.longitude=i,this.resolution=c}get projectionMode(){return Ka.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){let r={targetZ:t.z||0},i=this.unproject([0,this.height/2],r),s=this.unproject([this.width/2,0],r),n=this.unproject([this.width,this.height/2],r),o=this.unproject([this.width/2,this.height],r);return n[0]this.longitude&&(i[0]-=360),[Math.min(i[0],n[0],s[0],o[0]),Math.min(i[1],n[1],s[1],o[1]),Math.max(i[0],n[0],s[0],o[0]),Math.max(i[1],n[1],s[1],o[1])]}unproject(t,{topLeft:r=!0,targetZ:i}={}){let[s,n,o]=t,c=r?n:this.height-n,{pixelUnprojectionMatrix:f}=this,_;if(Number.isFinite(o))_=gD(f,[s,c,o,1]);else{let N=gD(f,[s,c,-1,1]),j=gD(f,[s,c,1,1]),Y=((i||0)/eP+1)*Hy,rt=SE(bE([],N,j)),$=SE(N),K=SE(j),ut=4*((4*$*K-(rt-$-K)**2)/16)/rt,Pt=Math.sqrt($-ut),Ot=Math.sqrt(Math.max(0,Y*Y-ut)),Kt=(Pt-Ot)/Math.sqrt(rt);_=Tj([],N,j,Kt)}let[w,C,R]=this.unprojectPosition(_);return Number.isFinite(o)?[w,C,R]:Number.isFinite(i)?[w,C,i]:[w,C]}projectPosition(t){let[r,i,s=0]=t,n=r*tP,o=i*tP,c=Math.cos(o),f=(s/eP+1)*Hy;return[Math.sin(n)*c*f,-Math.cos(n)*c*f,Math.sin(o)*f]}unprojectPosition(t){let[r,i,s]=t,n=wE(t),o=Math.asin(s/n),f=Math.atan2(r,-i)*HG,_=o*HG,w=(n/Hy-1)*eP;return[f,_,w]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition(t,r){let i=this.unproject(r);return{longitude:t[0]-i[0]+this.longitude,latitude:t[1]-i[1]+this.latitude}}};function gD(e,t){let r=zh([],t,e);return Py(r,r,1/r[3]),r}var mct=new wn().lookAt({eye:[0,0,1]});function gct({width:e,height:t,near:r,far:i,padding:s}){let n=-e/2,o=e/2,c=-t/2,f=t/2;if(s){let{left:_=0,right:w=0,top:C=0,bottom:R=0}=s,N=Ml((_+e-w)/2,0,e)-e/2,j=Ml((C+t-R)/2,0,t)-t/2;n-=N,o-=N,c+=j,f+=j}return new wn().ortho({left:n,right:o,bottom:c,top:f,near:r,far:i})}var Zy=class extends ic{constructor(t){let{width:r,height:i,near:s=.1,far:n=1e3,zoom:o=0,target:c=[0,0,0],padding:f=null,flipY:_=!0}=t,w=Array.isArray(o)?o[0]:o,C=Array.isArray(o)?o[1]:o,R=Math.min(w,C),N=Math.pow(2,R),j;if(w!==C){let Y=Math.pow(2,w),rt=Math.pow(2,C);j={unitsPerMeter:[Y/N,rt/N,1],metersPerUnit:[N/Y,N/rt,1]}}super({...t,longitude:void 0,position:c,viewMatrix:mct.clone().scale([N,N*(_?-1:1),N]),projectionMatrix:gct({width:r||1,height:i||1,padding:f,near:s,far:n}),zoom:R,distanceScales:j})}projectFlat([t,r]){let{unitsPerMeter:i}=this.distanceScales;return[t*i[0],r*i[1]]}unprojectFlat([t,r]){let{metersPerUnit:i}=this.distanceScales;return[t*i[0],r*i[1]]}panByPosition(t,r){let i=qf(r,this.pixelUnprojectionMatrix),s=this.projectFlat(t),n=wy([],s,mE([],i)),o=wy([],this.center,n);return{target:this.unprojectFlat(o)}}};var Bu=class{static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"extensionName\")?this.extensionName:\"\"}constructor(t){G(this,\"opts\",void 0),t&&(this.opts=t)}equals(t){return this===t?!0:this.constructor===t.constructor&&ao(this.opts,t.opts,1)}getShaders(t){return null}getSubLayerProps(t){let{defaultProps:r}=t.constructor,i={updateTriggers:{}};for(let s in r)if(s in this.props){let n=r[s],o=this.props[s];i[s]=o,n&&n.type===\"accessor\"&&(i.updateTriggers[s]=this.props.updateTriggers[s],typeof o==\"function\"&&(i[s]=this.getSubLayerAccessor(o)))}return i}initializeState(t,r){}updateState(t,r){}onNeedsRedraw(t){}getNeedsPickingBuffer(t){return!1}draw(t,r){}finalizeState(t,r){}};G(Bu,\"defaultProps\",{});G(Bu,\"extensionName\",\"LayerExtension\");var JA=class{constructor(t){G(this,\"opts\",void 0),G(this,\"typedArrayManager\",void 0),G(this,\"indexStarts\",[0]),G(this,\"vertexStarts\",[0]),G(this,\"vertexCount\",0),G(this,\"instanceCount\",0),G(this,\"attributes\",void 0),G(this,\"_attributeDefs\",void 0),G(this,\"data\",void 0),G(this,\"getGeometry\",void 0),G(this,\"geometryBuffer\",void 0),G(this,\"buffers\",void 0),G(this,\"positionSize\",void 0),G(this,\"normalize\",void 0);let{attributes:r={}}=t;this.typedArrayManager=jh,this.attributes={},this._attributeDefs=r,this.opts=t,this.updateGeometry(t)}updateGeometry(t){Object.assign(this.opts,t);let{data:r,buffers:i={},getGeometry:s,geometryBuffer:n,positionFormat:o,dataChanged:c,normalize:f=!0}=this.opts;if(this.data=r,this.getGeometry=s,this.positionSize=n&&n.size||(o===\"XY\"?2:3),this.buffers=i,this.normalize=f,n&&(br(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(n),f||(i.positions=n)),this.geometryBuffer=i.positions,Array.isArray(c))for(let _ of c)this._rebuildGeometry(_);else this._rebuildGeometry()}updatePartialGeometry({startRow:t,endRow:r}){this._rebuildGeometry({startRow:t,endRow:r})}getGeometryFromBuffer(t){let r=t.value||t;return ArrayBuffer.isView(r)?ZE(r,{size:this.positionSize,offset:t.offset,stride:t.stride,startIndices:this.data.startIndices}):null}_allocate(t,r){let{attributes:i,buffers:s,_attributeDefs:n,typedArrayManager:o}=this;for(let c in n)if(c in s)o.release(i[c]),i[c]=null;else{let f=n[c];f.copy=r,i[c]=o.allocate(i[c],t,f)}}_forEachGeometry(t,r,i){let{data:s,getGeometry:n}=this,{iterable:o,objectInfo:c}=Xc(s,r,i);for(let f of o){c.index++;let _=n?n(f,c):null;t(_,c.index)}}_rebuildGeometry(t){if(!this.data)return;let{indexStarts:r,vertexStarts:i,instanceCount:s}=this,{data:n,geometryBuffer:o}=this,{startRow:c=0,endRow:f=1/0}=t||{},_={};if(t||(r=[0],i=[0]),this.normalize||!o)this._forEachGeometry((C,R)=>{let N=C&&this.normalizeGeometry(C);_[R]=N,i[R+1]=i[R]+(N?this.getGeometrySize(N):0)},c,f),s=i[i.length-1];else if(i=n.startIndices,s=i[n.length]||0,ArrayBuffer.isView(o))s=s||o.length/this.positionSize;else if(o instanceof Fr){let C=o.accessor.stride||this.positionSize*4;s=s||o.byteLength/C}else if(o.buffer){let C=o.stride||this.positionSize*4;s=s||o.buffer.byteLength/C}else if(o.value){let C=o.value,R=o.stride/C.BYTES_PER_ELEMENT||this.positionSize;s=s||C.length/R}this._allocate(s,!!t),this.indexStarts=r,this.vertexStarts=i,this.instanceCount=s;let w={};this._forEachGeometry((C,R)=>{let N=_[R]||C;w.vertexStart=i[R],w.indexStart=r[R];let j=RiP(r,t));if(Qy(e)){if(vct(e))return t.style=yct,(0,_D.cloneElement)(e,t);if(xct(e))return(0,_D.cloneElement)(e,t)}return e}function Qy(e){return e&&typeof e==\"object\"&&\"type\"in e||!1}function vct(e){var t;return(t=e.props)===null||t===void 0?void 0:t.mapStyle}function xct(e){let t=e.type;return t&&t.deckGLViewProps}function yD(e){if(typeof e==\"function\")return(0,ZG.createElement)(Qc,{},e);if(Array.isArray(e))return e.map(yD);if(Qy(e)){if(e.type===nP.Fragment)return yD(e.props.children);if(Yy(e.type,Qc))return e}return e}function vD({children:e,layers:t=[],views:r=null}){let i=[],s=[],n={};return nP.Children.forEach(yD(e),o=>{if(Qy(o)){let c=o.type;if(Yy(c,Tn)){let f=bct(c,o.props);s.push(f)}else i.push(o);if(Yy(c,Qc)&&c!==Qc&&o.props.id){let f=new c(o.props);n[f.id]=f}}else o&&i.push(o)}),Object.keys(n).length>0&&(Array.isArray(r)?r.forEach(o=>{n[o.id]=o}):r&&(n[r.id]=r),r=Object.values(n)),t=s.length>0?[...s,...t]:t,{layers:t,children:i,views:r}}function bct(e,t){let r={},i=e.defaultProps||{};for(let s in t)i[s]!==t[s]&&(r[s]=t[s]);return new e(r)}var xD=ki(Ji());function bD({children:e,deck:t,ContextProvider:r}){let{viewManager:i}=t||{};if(!i||!i.views.length)return[];let s={},n=i.views[0].id;for(let o of e){let c=n,f=o;Qy(o)&&Yy(o.type,Qc)&&(c=o.props.id||n,f=o.props.children);let _=i.getViewport(c),w=i.getViewState(c);if(_){w.padding=_.padding;let{x:C,y:R,width:N,height:j}=_;f=iP(f,{x:C,y:R,width:N,height:j,viewport:_,viewState:w}),s[c]||(s[c]={viewport:_,children:[]}),s[c].children.push(f)}}return Object.keys(s).map(o=>{let{viewport:c,children:f}=s[o],{x:_,y:w,width:C,height:R}=c,N={position:\"absolute\",left:_,top:w,width:C,height:R},j=\"view-\".concat(o),Y=(0,xD.createElement)(\"div\",{key:j,id:j,style:N},...f);if(r){let rt={viewport:c,container:t.canvas.offsetParent,eventManager:t.eventManager,onViewStateChange:$=>{$.viewId=o,t._onViewStateChange($)}};return(0,xD.createElement)(r,{key:j,value:rt},Y)}return Y})}var wct={mixBlendMode:null};function wD({width:e,height:t,style:r}){let i={position:\"absolute\",zIndex:0,left:0,top:0,width:e,height:t},s={left:0,top:0};if(r)for(let n in r)n in wct?s[n]=r[n]:i[n]=r[n];return{containerStyle:i,canvasStyle:s}}function Sct(e){return{get deck(){return e.deck},pickObject:t=>e.deck.pickObject(t),pickMultipleObjects:t=>e.deck.pickMultipleObjects(t),pickObjects:t=>e.deck.pickObjects(t)}}function YG(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}function Tct(e,t,r){let i=new t({...r,_customRender:s=>{e.redrawReason=s;let n=i.getViewports();e.lastRenderedViewports!==n?e.forceUpdate():YG(e)}});return i}var QG=(0,Mo.forwardRef)((e,t)=>{let[r,i]=(0,Mo.useState)(0),n=(0,Mo.useRef)({control:null,version:r,forceUpdate:()=>i(Pt=>Pt+1)}).current,o=(0,Mo.useRef)(null),c=(0,Mo.useRef)(null),f=(0,Mo.useMemo)(()=>vD(e),[e.layers,e.views,e.children]),_=!0,w=Pt=>{var Ot;return _&&e.viewState?(n.viewStateUpdateRequested=Pt,null):(n.viewStateUpdateRequested=null,(Ot=e.onViewStateChange)===null||Ot===void 0?void 0:Ot.call(e,Pt))},C=Pt=>{if(_)n.interactionStateUpdateRequested=Pt;else{var Ot;n.interactionStateUpdateRequested=null,(Ot=e.onInteractionStateChange)===null||Ot===void 0||Ot.call(e,Pt)}},R=(0,Mo.useMemo)(()=>{let Pt={...e,style:null,width:\"100%\",height:\"100%\",parent:o.current,canvas:c.current,layers:f.layers,views:f.views,onViewStateChange:w,onInteractionStateChange:C};return delete Pt._customRender,n.deck&&n.deck.setProps(Pt),Pt},[e]);(0,Mo.useEffect)(()=>{let Pt=e.Deck||ap;return n.deck=Tct(n,Pt,{...R,parent:o.current,canvas:c.current}),()=>{var Ot;return(Ot=n.deck)===null||Ot===void 0?void 0:Ot.finalize()}},[]),qG(()=>{YG(n);let{viewStateUpdateRequested:Pt,interactionStateUpdateRequested:Ot}=n;Pt&&w(Pt),Ot&&C(Ot)}),(0,Mo.useImperativeHandle)(t,()=>Sct(n),[]);let N=n.deck&&n.deck.isInitialized?n.deck.getViewports():void 0,{ContextProvider:j,width:Y,height:rt,id:$,style:K}=e,{containerStyle:tt,canvasStyle:ut}=(0,Mo.useMemo)(()=>wD({width:Y,height:rt,style:K}),[Y,rt,K]);if(!n.viewStateUpdateRequested&&n.lastRenderedViewports===N||n.version!==r){n.lastRenderedViewports=N,n.version=r;let Pt=bD({children:f.children,deck:n.deck,ContextProvider:j}),Ot=(0,Mo.createElement)(\"canvas\",{key:\"canvas\",id:$||\"deckgl-overlay\",ref:c,style:ut});n.control=(0,Mo.createElement)(\"div\",{id:\"\".concat($||\"deckgl\",\"-wrapper\"),ref:o,style:tt},[Ot,Pt])}return _=!1,n.control});QG.defaultProps=ap.defaultProps;var SD=QG;var Xt,XG=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error(\"TextDecoder not available\")}};typeof TextDecoder<\"u\"&&XG.decode();var lw=null;function $y(){return(lw===null||lw.byteLength===0)&&(lw=new Uint8Array(Xt.memory.buffer)),lw}function Fu(e,t){return e=e>>>0,XG.decode($y().subarray(e,e+t))}var cp=new Array(128).fill(void 0);cp.push(void 0,null,!0,!1);var dw=cp.length;function gr(e){dw===cp.length&&cp.push(cp.length+1);let t=dw;return dw=cp[t],cp[t]=e,t}function Qe(e){return cp[e]}function Mct(e){e<132||(cp[e]=dw,dw=e)}function Yn(e){let t=Qe(e);return Mct(e),t}var qh=0,sP=typeof TextEncoder<\"u\"?new TextEncoder(\"utf-8\"):{encode:()=>{throw Error(\"TextEncoder not available\")}},Ect=typeof sP.encodeInto==\"function\"?function(e,t){return sP.encodeInto(e,t)}:function(e,t){let r=sP.encode(e);return t.set(r),{read:e.length,written:r.length}};function cw(e,t,r){if(r===void 0){let c=sP.encode(e),f=t(c.length,1)>>>0;return $y().subarray(f,f+c.length).set(c),qh=c.length,f}let i=e.length,s=t(i,1)>>>0,n=$y(),o=0;for(;o127)break;n[s+o]=c}if(o!==i){o!==0&&(e=e.slice(o)),s=r(s,i,i=o+e.length*3,1)>>>0;let c=$y().subarray(s+o,s+i),f=Ect(e,c);o+=f.written}return qh=o,s}function TD(e){return e==null}var uw=null;function or(){return(uw===null||uw.byteLength===0)&&(uw=new Int32Array(Xt.memory.buffer)),uw}function MD(e){let t=typeof e;if(t==\"number\"||t==\"boolean\"||e==null)return`${e}`;if(t==\"string\")return`\"${e}\"`;if(t==\"symbol\"){let s=e.description;return s==null?\"Symbol\":`Symbol(${s})`}if(t==\"function\"){let s=e.name;return typeof s==\"string\"&&s.length>0?`Function(${s})`:\"Function\"}if(Array.isArray(e)){let s=e.length,n=\"[\";s>0&&(n+=MD(e[0]));for(let o=1;o1)i=r[1];else return toString.call(e);if(i==\"Object\")try{return\"Object(\"+JSON.stringify(e)+\")\"}catch{return\"Object\"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:i}function Pct(e,t,r,i){let s={a:e,b:t,cnt:1,dtor:r},n=(...o)=>{s.cnt++;let c=s.a;s.a=0;try{return i(c,s.b,...o)}finally{--s.cnt===0?Xt.__wbindgen_export_2.get(s.dtor)(c,s.b):s.a=c}};return n.original=s,n}function Ict(e,t,r){Xt._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h896648893be04d51(e,t,gr(r))}function ED(e,t){let r=t(e.length*1,1)>>>0;return $y().set(e,r/1),qh=e.length,r}function KG(e){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16),n=ED(e,Xt.__wbindgen_malloc),o=qh;Xt.readParquet(s,n,o);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return BD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}function JG(e,t){return e=e>>>0,$y().subarray(e/1,e/1+t)}var hw=null;function $G(){return(hw===null||hw.byteLength===0)&&(hw=new BigInt64Array(Xt.memory.buffer)),hw}var fw=null;function Cct(){return(fw===null||fw.byteLength===0)&&(fw=new BigUint64Array(Xt.memory.buffer)),fw}function Lct(e,t){return e=e>>>0,Cct().subarray(e/8,e/8+t)}function Eo(e,t){try{return e.apply(this,t)}catch(r){Xt.__wbindgen_exn_store(gr(r))}}function kct(e,t,r,i){Xt.wasm_bindgen__convert__closures__invoke2_mut__h02232cd008ae4dfe(e,t,gr(r),gr(i))}var yNt=Object.freeze({UNCOMPRESSED:0,0:\"UNCOMPRESSED\",SNAPPY:1,1:\"SNAPPY\",GZIP:2,2:\"GZIP\",BROTLI:3,3:\"BROTLI\",LZ4:4,4:\"LZ4\",ZSTD:5,5:\"ZSTD\",LZ4_RAW:6,6:\"LZ4_RAW\"}),vNt=Object.freeze({PLAIN:0,0:\"PLAIN\",PLAIN_DICTIONARY:1,1:\"PLAIN_DICTIONARY\",RLE:2,2:\"RLE\",BIT_PACKED:3,3:\"BIT_PACKED\",DELTA_BINARY_PACKED:4,4:\"DELTA_BINARY_PACKED\",DELTA_LENGTH_BYTE_ARRAY:5,5:\"DELTA_LENGTH_BYTE_ARRAY\",DELTA_BYTE_ARRAY:6,6:\"DELTA_BYTE_ARRAY\",RLE_DICTIONARY:7,7:\"RLE_DICTIONARY\",BYTE_STREAM_SPLIT:8,8:\"BYTE_STREAM_SPLIT\"}),xNt=Object.freeze({V1:0,0:\"V1\",V2:1,1:\"V2\"}),PD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_arrowschema_free(t)}copy(){let t=Xt.arrowschema_copy(this.__wbg_ptr);return e.__wrap(t)}},ID=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_columnchunkmetadata_free(t)}filePath(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_filePath(i,this.__wbg_ptr);var t=or()[i/4+0],r=or()[i/4+1];let s;return t!==0&&(s=Fu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}fileOffset(){return Xt.columnchunkmetadata_fileOffset(this.__wbg_ptr)}pathInSchema(){let t,r;try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_pathInSchema(n,this.__wbg_ptr);var i=or()[n/4+0],s=or()[n/4+1];return t=i,r=s,Fu(i,s)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}statistics_exist(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_statistics_exist(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return t!==0}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMinValue(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMinValue(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMaxValue(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMaxValue(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsNullCount(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsNullCount(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numValues(){return Xt.columnchunkmetadata_numValues(this.__wbg_ptr)}compressedSize(){return Xt.columnchunkmetadata_compressedSize(this.__wbg_ptr)}uncompressedSize(){return Xt.columnchunkmetadata_uncompressedSize(this.__wbg_ptr)}dataPageOffset(){return Xt.columnchunkmetadata_dataPageOffset(this.__wbg_ptr)}hasIndexPage(){return Xt.columnchunkmetadata_hasIndexPage(this.__wbg_ptr)!==0}indexPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_indexPageOffset(i,this.__wbg_ptr);var t=or()[i/4+0],r=$G()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}dictionaryPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_dictionaryPageOffset(i,this.__wbg_ptr);var t=or()[i/4+0],r=$G()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numColumnEncodings(){return Xt.columnchunkmetadata_numColumnEncodings(this.__wbg_ptr)>>>0}byteRange(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_byteRange(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=Lct(t,r).slice();return Xt.__wbindgen_free(t,r*8),i}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},CD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_datatype_free(t)}},oP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffirecordbatch_free(t)}arrayAddr(){return Xt.ffirecordbatch_arrayAddr(this.__wbg_ptr)}schemaAddr(){return Xt.ffirecordbatch_schemaAddr(this.__wbg_ptr)}},aP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffitable_free(t)}numBatches(){return Xt.ffitable_numBatches(this.__wbg_ptr)>>>0}schemaAddr(){return Xt.ffitable_schemaAddr(this.__wbg_ptr)}arrayAddr(t){return Xt.ffitable_arrayAddr(this.__wbg_ptr,t)}drop(){let t=this.__destroy_into_raw();Xt.ffitable_drop(t)}};var LD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_filemetadata_free(t)}copy(){let t=Xt.filemetadata_copy(this.__wbg_ptr);return e.__wrap(t)}version(){return Xt.filemetadata_version(this.__wbg_ptr)}numRows(){return Xt.filemetadata_numRows(this.__wbg_ptr)>>>0}createdBy(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_createdBy(i,this.__wbg_ptr);var t=or()[i/4+0],r=or()[i/4+1];let s;return t!==0&&(s=Fu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numRowGroups(){return Xt.filemetadata_numRowGroups(this.__wbg_ptr)>>>0}rowGroup(t){let r=Xt.filemetadata_rowGroup(this.__wbg_ptr,t);return DD.__wrap(r)}schema(){let t=Xt.filemetadata_schema(this.__wbg_ptr);return OD.__wrap(t)}keyValueMetadata(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_keyValueMetadata(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}arrowSchema(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_arrowSchema(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return PD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}};var kD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_intounderlyingsource_free(t)}pull(t){let r=Xt.intounderlyingsource_pull(this.__wbg_ptr,gr(t));return Yn(r)}cancel(){let t=this.__destroy_into_raw();Xt.intounderlyingsource_cancel(t)}};var RD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_queuingstrategy_free(t)}get highWaterMark(){return Xt.queuingstrategy_highWaterMark(this.__wbg_ptr)}};var lP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_recordbatch_free(t)}get numRows(){return Xt.recordbatch_numRows(this.__wbg_ptr)>>>0}get numColumns(){return Xt.recordbatch_numColumns(this.__wbg_ptr)>>>0}get schema(){let t=Xt.recordbatch_schema(this.__wbg_ptr);return cP.__wrap(t)}column(t){let r=Xt.recordbatch_column(this.__wbg_ptr,t);return r===0?void 0:uP.__wrap(r)}column_by_name(t){let r=cw(t,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),i=qh,s=Xt.recordbatch_column_by_name(this.__wbg_ptr,r,i);return s===0?void 0:uP.__wrap(s)}toFFI(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_toFFI(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return oP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let s=this.__destroy_into_raw(),n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoFFI(n,s);var t=or()[n/4+0],r=or()[n/4+1],i=or()[n/4+2];if(i)throw Yn(r);return oP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoIPCStream(c,o);var t=or()[c/4+0],r=or()[c/4+1],i=or()[c/4+2],s=or()[c/4+3];if(s)throw Yn(i);var n=JG(t,r).slice();return Xt.__wbindgen_free(t,r*1),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},DD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_rowgroupmetadata_free(t)}numRows(){return Xt.rowgroupmetadata_numRows(this.__wbg_ptr)>>>0}numColumns(){return Xt.rowgroupmetadata_numColumns(this.__wbg_ptr)>>>0}column(t){let r=Xt.rowgroupmetadata_column(this.__wbg_ptr,t);return ID.__wrap(r)}totalByteSize(){return Xt.rowgroupmetadata_totalByteSize(this.__wbg_ptr)>>>0}compressedSize(){return Xt.rowgroupmetadata_compressedSize(this.__wbg_ptr)>>>0}},cP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schema_free(t)}},OD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schemadescriptor_free(t)}name(){let t,r;try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.schemadescriptor_name(n,this.__wbg_ptr);var i=or()[n/4+0],s=or()[n/4+1];return t=i,r=s,Fu(i,s)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}numColumns(){return Xt.schemadescriptor_numColumns(this.__wbg_ptr)>>>0}numFields(){return Xt.schemadescriptor_numFields(this.__wbg_ptr)>>>0}},BD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_table_free(t)}get schema(){let t=Xt.table_schema(this.__wbg_ptr);return cP.__wrap(t)}recordBatch(t){let r=Xt.table_recordBatch(this.__wbg_ptr,t);return r===0?void 0:lP.__wrap(r)}get numBatches(){return Xt.table_numBatches(this.__wbg_ptr)>>>0}toFFI(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_toFFI(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return aP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let s=this.__destroy_into_raw(),n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoFFI(n,s);var t=or()[n/4+0],r=or()[n/4+1],i=or()[n/4+2];if(i)throw Yn(r);return aP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoIPCStream(c,o);var t=or()[c/4+0],r=or()[c/4+1],i=or()[c/4+2],s=or()[c/4+3];if(s)throw Yn(i);var n=JG(t,r).slice();return Xt.__wbindgen_free(t,r*1),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCFile(t){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16),o=ED(t,Xt.__wbindgen_malloc),c=qh;Xt.table_fromIPCFile(n,o,c);var r=or()[n/4+0],i=or()[n/4+1],s=or()[n/4+2];if(s)throw Yn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCStream(t){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16),o=ED(t,Xt.__wbindgen_malloc),c=qh;Xt.table_fromIPCStream(n,o,c);var r=or()[n/4+0],i=or()[n/4+1],s=or()[n/4+2];if(s)throw Yn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},uP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_vector_free(t)}data_type(){let t=Xt.vector_data_type(this.__wbg_ptr);return CD.__wrap(t)}};async function Rct(e,t){if(typeof Response==\"function\"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==\"function\")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get(\"Content-Type\")!=\"application/wasm\")console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",i);else throw i}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function Dct(){let e={};return e.wbg={},e.wbg.__wbg_filemetadata_new=function(t){let r=LD.__wrap(t);return gr(r)},e.wbg.__wbindgen_error_new=function(t,r){let i=new Error(Fu(t,r));return gr(i)},e.wbg.__wbindgen_object_drop_ref=function(t){Yn(t)},e.wbg.__wbindgen_string_new=function(t,r){let i=Fu(t,r);return gr(i)},e.wbg.__wbindgen_bigint_from_i64=function(t){return gr(t)},e.wbg.__wbindgen_number_new=function(t){return gr(t)},e.wbg.__wbindgen_object_clone_ref=function(t){let r=Qe(t);return gr(r)},e.wbg.__wbg_fetch_b5d6bebed1e6c2d2=function(t){let r=fetch(Qe(t));return gr(r)},e.wbg.__wbg_newwithsource_620c192b0682807b=function(t,r){let i=new ReadableStream(kD.__wrap(t),RD.__wrap(r));return gr(i)},e.wbg.__wbg_close_e9110ca16e2567db=function(t){Qe(t).close()},e.wbg.__wbg_enqueue_d71a1a518e21f5c3=function(t,r){Qe(t).enqueue(Qe(r))},e.wbg.__wbg_byobRequest_08c18cee35def1f4=function(t){let r=Qe(t).byobRequest;return TD(r)?0:gr(r)},e.wbg.__wbg_close_da7e6fb9d9851e5a=function(t){Qe(t).close()},e.wbg.__wbg_view_231340b0dd8a2484=function(t){let r=Qe(t).view;return TD(r)?0:gr(r)},e.wbg.__wbg_respond_8fadc5f5c9d95422=function(t,r){Qe(t).respond(r>>>0)},e.wbg.__wbg_buffer_4e79326814bdd393=function(t){let r=Qe(t).buffer;return gr(r)},e.wbg.__wbg_byteOffset_b69b0a07afccce19=function(t){return Qe(t).byteOffset},e.wbg.__wbg_byteLength_5299848ed3264181=function(t){return Qe(t).byteLength},e.wbg.__wbindgen_string_get=function(t,r){let i=Qe(r),s=typeof i==\"string\"?i:void 0;var n=TD(s)?0:cw(s,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),o=qh;or()[t/4+1]=o,or()[t/4+0]=n},e.wbg.__wbg_set_bd72c078edfa51ad=function(t,r,i){Qe(t)[Yn(r)]=Yn(i)},e.wbg.__wbg_String_4370c5505c674d30=function(t,r){let i=String(Qe(r)),s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbindgen_cb_drop=function(t){let r=Yn(t).original;return r.cnt--==1?(r.a=0,!0):!1},e.wbg.__wbg_recordbatch_new=function(t){let r=lP.__wrap(t);return gr(r)},e.wbg.__wbg_randomFillSync_dc1e9a60c158336d=function(){return Eo(function(t,r){Qe(t).randomFillSync(Yn(r))},arguments)},e.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab=function(){return Eo(function(t,r){Qe(t).getRandomValues(Qe(r))},arguments)},e.wbg.__wbg_crypto_c48a774b022d20ac=function(t){let r=Qe(t).crypto;return gr(r)},e.wbg.__wbindgen_is_object=function(t){let r=Qe(t);return typeof r==\"object\"&&r!==null},e.wbg.__wbg_process_298734cf255a885d=function(t){let r=Qe(t).process;return gr(r)},e.wbg.__wbg_versions_e2e78e134e3e5d01=function(t){let r=Qe(t).versions;return gr(r)},e.wbg.__wbg_node_1cd7a5d853dbea79=function(t){let r=Qe(t).node;return gr(r)},e.wbg.__wbindgen_is_string=function(t){return typeof Qe(t)==\"string\"},e.wbg.__wbg_require_8f08ceecec0f4fee=function(){return Eo(function(){let t=module.require;return gr(t)},arguments)},e.wbg.__wbg_msCrypto_bcb970640f50a1e8=function(t){let r=Qe(t).msCrypto;return gr(r)},e.wbg.__wbg_signal_4bd18fb489af2d4c=function(t){let r=Qe(t).signal;return gr(r)},e.wbg.__wbg_new_55c9955722952374=function(){return Eo(function(){let t=new AbortController;return gr(t)},arguments)},e.wbg.__wbg_abort_654b796176d117aa=function(t){Qe(t).abort()},e.wbg.__wbg_new_1eead62f64ca15ce=function(){return Eo(function(){let t=new Headers;return gr(t)},arguments)},e.wbg.__wbg_append_fda9e3432e3e88da=function(){return Eo(function(t,r,i,s,n){Qe(t).append(Fu(r,i),Fu(s,n))},arguments)},e.wbg.__wbg_fetch_8eaf01857a5bb21f=function(t,r){let i=Qe(t).fetch(Qe(r));return gr(i)},e.wbg.__wbg_instanceof_Response_fc4327dbfcdf5ced=function(t){let r;try{r=Qe(t)instanceof Response}catch{r=!1}return r},e.wbg.__wbg_url_8503de97f69da463=function(t,r){let i=Qe(r).url,s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbg_status_ac85a3142a84caa2=function(t){return Qe(t).status},e.wbg.__wbg_headers_b70de86b8e989bc0=function(t){let r=Qe(t).headers;return gr(r)},e.wbg.__wbg_arrayBuffer_288fb3538806e85c=function(){return Eo(function(t){let r=Qe(t).arrayBuffer();return gr(r)},arguments)},e.wbg.__wbg_newwithstrandinit_cad5cd6038c7ff5d=function(){return Eo(function(t,r,i){let s=new Request(Fu(t,r),Qe(i));return gr(s)},arguments)},e.wbg.__wbindgen_is_function=function(t){return typeof Qe(t)==\"function\"},e.wbg.__wbg_newnoargs_581967eacc0e2604=function(t,r){let i=new Function(Fu(t,r));return gr(i)},e.wbg.__wbg_new_56693dbed0c32988=function(){return gr(new Map)},e.wbg.__wbg_next_526fc47e980da008=function(t){let r=Qe(t).next;return gr(r)},e.wbg.__wbg_next_ddb3312ca1c4e32a=function(){return Eo(function(t){let r=Qe(t).next();return gr(r)},arguments)},e.wbg.__wbg_done_5c1f01fb660d73b5=function(t){return Qe(t).done},e.wbg.__wbg_value_1695675138684bd5=function(t){let r=Qe(t).value;return gr(r)},e.wbg.__wbg_iterator_97f0c81209c6c35a=function(){return gr(Symbol.iterator)},e.wbg.__wbg_get_97b561fb56f034b5=function(){return Eo(function(t,r){let i=Reflect.get(Qe(t),Qe(r));return gr(i)},arguments)},e.wbg.__wbg_call_cb65541d95d71282=function(){return Eo(function(t,r){let i=Qe(t).call(Qe(r));return gr(i)},arguments)},e.wbg.__wbg_new_b51585de1b234aff=function(){let t=new Object;return gr(t)},e.wbg.__wbg_self_1ff1d729e9aae938=function(){return Eo(function(){let t=self.self;return gr(t)},arguments)},e.wbg.__wbg_window_5f4faef6c12b79ec=function(){return Eo(function(){let t=window.window;return gr(t)},arguments)},e.wbg.__wbg_globalThis_1d39714405582d3c=function(){return Eo(function(){let t=globalThis.globalThis;return gr(t)},arguments)},e.wbg.__wbg_global_651f05c6a0944d1c=function(){return Eo(function(){let t=global.global;return gr(t)},arguments)},e.wbg.__wbindgen_is_undefined=function(t){return Qe(t)===void 0},e.wbg.__wbg_new_d258248ed531ff54=function(t,r){let i=new Error(Fu(t,r));return gr(i)},e.wbg.__wbg_call_01734de55d61e11d=function(){return Eo(function(t,r,i){let s=Qe(t).call(Qe(r),Qe(i));return gr(s)},arguments)},e.wbg.__wbg_set_bedc3d02d0f05eb0=function(t,r,i){let s=Qe(t).set(Qe(r),Qe(i));return gr(s)},e.wbg.__wbg_new_43f1b47c28813cbd=function(t,r){try{var i={a:t,b:r},s=(o,c)=>{let f=i.a;i.a=0;try{return kct(f,i.b,o,c)}finally{i.a=f}};let n=new Promise(s);return gr(n)}finally{i.a=i.b=0}},e.wbg.__wbg_resolve_53698b95aaf7fcf8=function(t){let r=Promise.resolve(Qe(t));return gr(r)},e.wbg.__wbg_then_f7e06ee3c11698eb=function(t,r){let i=Qe(t).then(Qe(r));return gr(i)},e.wbg.__wbg_then_b2267541e2a73865=function(t,r,i){let s=Qe(t).then(Qe(r),Qe(i));return gr(s)},e.wbg.__wbg_buffer_085ec1f694018c4f=function(t){let r=Qe(t).buffer;return gr(r)},e.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(t,r,i){let s=new Uint8Array(Qe(t),r>>>0,i>>>0);return gr(s)},e.wbg.__wbg_new_8125e318e6245eed=function(t){let r=new Uint8Array(Qe(t));return gr(r)},e.wbg.__wbg_set_5cf90238115182c3=function(t,r,i){Qe(t).set(Qe(r),i>>>0)},e.wbg.__wbg_length_72e2208bbc0efc61=function(t){return Qe(t).length},e.wbg.__wbg_newwithlength_e5d69174d6984cd7=function(t){let r=new Uint8Array(t>>>0);return gr(r)},e.wbg.__wbg_subarray_13db269f57aa838d=function(t,r,i){let s=Qe(t).subarray(r>>>0,i>>>0);return gr(s)},e.wbg.__wbg_stringify_e25465938f3f611f=function(){return Eo(function(t){let r=JSON.stringify(Qe(t));return gr(r)},arguments)},e.wbg.__wbg_has_c5fcd020291e56b8=function(){return Eo(function(t,r){return Reflect.has(Qe(t),Qe(r))},arguments)},e.wbg.__wbg_set_092e06b0f9d71865=function(){return Eo(function(t,r,i){return Reflect.set(Qe(t),Qe(r),Qe(i))},arguments)},e.wbg.__wbindgen_debug_string=function(t,r){let i=MD(Qe(r)),s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbindgen_throw=function(t,r){throw new Error(Fu(t,r))},e.wbg.__wbindgen_memory=function(){let t=Xt.memory;return gr(t)},e.wbg.__wbindgen_function_table=function(){let t=Xt.__wbindgen_export_2;return gr(t)},e.wbg.__wbindgen_closure_wrapper1527=function(t,r,i){let s=Pct(t,r,304,Ict);return gr(s)},e}function Oct(e,t){return Xt=e.exports,t9.__wbindgen_wasm_module=t,hw=null,fw=null,uw=null,lw=null,Xt}async function t9(e){if(Xt!==void 0)return Xt;typeof e>\"u\"&&(e=new URL(\"arrow2_bg.wasm\",import.meta.url));let t=Dct();(typeof e==\"string\"||typeof Request==\"function\"&&e instanceof Request||typeof URL==\"function\"&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:i}=await Rct(await e,t);return Oct(r,i)}var e9=t9;function i9(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var s=0,i=Object.getOwnPropertySymbols(e);s=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function ii(e){return this instanceof ii?(this.v=e,this):new ii(e)}function Kc(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var i=r.apply(e,t||[]),s,n=[];return s={},o(\"next\"),o(\"throw\"),o(\"return\"),s[Symbol.asyncIterator]=function(){return this},s;function o(R){i[R]&&(s[R]=function(N){return new Promise(function(j,Y){n.push([R,N,j,Y])>1||c(R,N)})})}function c(R,N){try{f(i[R](N))}catch(j){C(n[0][3],j)}}function f(R){R.value instanceof ii?Promise.resolve(R.value.v).then(_,w):C(n[0][2],R)}function _(R){c(\"next\",R)}function w(R){c(\"throw\",R)}function C(R,N){R(N),n.shift(),n.length&&c(n[0][0],n[0][1])}}function Xy(e){var t,r;return t={},i(\"next\"),i(\"throw\",function(s){throw s}),i(\"return\"),t[Symbol.iterator]=function(){return this},t;function i(s,n){t[s]=e[s]?function(o){return(r=!r)?{value:ii(e[s](o)),done:!1}:n?n(o):o}:n}}function Zh(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof r9==\"function\"?r9(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(n){r[n]=e[n]&&function(o){return new Promise(function(c,f){o=e[n](o),s(c,f,o.done,o.value)})}}function s(n,o,c,f){Promise.resolve(f).then(function(_){n({value:_,done:c})},o)}}var jD={};dA(jD,{compareArrayLike:()=>VD,joinUint8Arrays:()=>tu,memcpy:()=>mw,rebaseValueOffsets:()=>_P,toArrayBufferView:()=>Ai,toArrayBufferViewAsyncIterator:()=>Qh,toArrayBufferViewIterator:()=>Xf,toBigInt64Array:()=>gP,toBigUint64Array:()=>Wct,toFloat32Array:()=>Hct,toFloat32ArrayAsyncIterator:()=>aut,toFloat32ArrayIterator:()=>Jct,toFloat64Array:()=>qct,toFloat64ArrayAsyncIterator:()=>lut,toFloat64ArrayIterator:()=>tut,toInt16Array:()=>Vct,toInt16ArrayAsyncIterator:()=>iut,toInt16ArrayIterator:()=>Qct,toInt32Array:()=>fg,toInt32ArrayAsyncIterator:()=>nut,toInt32ArrayIterator:()=>$ct,toInt8Array:()=>Uct,toInt8ArrayAsyncIterator:()=>rut,toInt8ArrayIterator:()=>Yct,toUint16Array:()=>jct,toUint16ArrayAsyncIterator:()=>sut,toUint16ArrayIterator:()=>Xct,toUint32Array:()=>Gct,toUint32ArrayAsyncIterator:()=>out,toUint32ArrayIterator:()=>Kct,toUint8Array:()=>Rr,toUint8ArrayAsyncIterator:()=>UD,toUint8ArrayIterator:()=>ND,toUint8ClampedArray:()=>Zct,toUint8ClampedArrayAsyncIterator:()=>cut,toUint8ClampedArrayIterator:()=>eut});var Bct=new TextDecoder(\"utf-8\"),pw=e=>Bct.decode(e),Fct=new TextEncoder,$f=e=>Fct.encode(e);var zct=e=>typeof e==\"number\",n9=e=>typeof e==\"boolean\",Po=e=>typeof e==\"function\",Pl=e=>e!=null&&Object(e)===e,Jc=e=>Pl(e)&&Po(e.then);var Yh=e=>Pl(e)&&Po(e[Symbol.iterator]),zu=e=>Pl(e)&&Po(e[Symbol.asyncIterator]),hP=e=>Pl(e)&&Pl(e.schema);var fP=e=>Pl(e)&&\"done\"in e&&\"value\"in e;var dP=e=>Pl(e)&&Po(e.stat)&&zct(e.fd);var pP=e=>Pl(e)&&Aw(e.body),AP=e=>\"_getDOMStream\"in e&&\"_getNodeStream\"in e,s9=e=>Pl(e)&&Po(e.abort)&&Po(e.getWriter)&&!AP(e),Aw=e=>Pl(e)&&Po(e.cancel)&&Po(e.getReader)&&!AP(e),o9=e=>Pl(e)&&Po(e.end)&&Po(e.write)&&n9(e.writable)&&!AP(e),mP=e=>Pl(e)&&Po(e.read)&&Po(e.pipe)&&n9(e.readable)&&!AP(e),a9=e=>Pl(e)&&Po(e.clear)&&Po(e.bytes)&&Po(e.position)&&Po(e.setPosition)&&Po(e.capacity)&&Po(e.getBufferIdentifier)&&Po(e.createLong);var zD=typeof SharedArrayBuffer<\"u\"?SharedArrayBuffer:ArrayBuffer;function Nct(e){let t=e[0]?[e[0]]:[],r,i,s,n;for(let o,c,f=0,_=0,w=e.length;++fw+C.byteLength,0),s,n,o,c=0,f=-1,_=Math.min(t||Number.POSITIVE_INFINITY,i);for(let w=r.length;++fAi(Int8Array,e),Vct=e=>Ai(Int16Array,e),fg=e=>Ai(Int32Array,e),gP=e=>Ai(BigInt64Array,e),Rr=e=>Ai(Uint8Array,e),jct=e=>Ai(Uint16Array,e),Gct=e=>Ai(Uint32Array,e),Wct=e=>Ai(BigUint64Array,e),Hct=e=>Ai(Float32Array,e),qct=e=>Ai(Float64Array,e),Zct=e=>Ai(Uint8ClampedArray,e),FD=e=>(e.next(),e);function*Xf(e,t){let r=function*(s){yield s},i=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof zD?r(t):Yh(t)?t:r(t);return yield*FD(function*(s){let n=null;do n=s.next(yield Ai(e,n));while(!n.done)}(i[Symbol.iterator]())),new e}var Yct=e=>Xf(Int8Array,e),Qct=e=>Xf(Int16Array,e),$ct=e=>Xf(Int32Array,e),ND=e=>Xf(Uint8Array,e),Xct=e=>Xf(Uint16Array,e),Kct=e=>Xf(Uint32Array,e),Jct=e=>Xf(Float32Array,e),tut=e=>Xf(Float64Array,e),eut=e=>Xf(Uint8ClampedArray,e);function Qh(e,t){return Kc(this,arguments,function*(){if(Jc(t))return yield ii(yield ii(yield*Xy(Zh(Qh(e,yield ii(t))))));let i=function(o){return Kc(this,arguments,function*(){yield yield ii(yield ii(o))})},s=function(o){return Kc(this,arguments,function*(){yield ii(yield*Xy(Zh(FD(function*(c){let f=null;do f=c.next(yield f?.value);while(!f.done)}(o[Symbol.iterator]())))))})},n=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof zD?i(t):Yh(t)?s(t):zu(t)?t:i(t);return yield ii(yield*Xy(Zh(FD(function(o){return Kc(this,arguments,function*(){let c=null;do c=yield ii(o.next(yield yield ii(Ai(e,c))));while(!c.done)})}(n[Symbol.asyncIterator]()))))),yield ii(new e)})}var rut=e=>Qh(Int8Array,e),iut=e=>Qh(Int16Array,e),nut=e=>Qh(Int32Array,e),UD=e=>Qh(Uint8Array,e),sut=e=>Qh(Uint16Array,e),out=e=>Qh(Uint32Array,e),aut=e=>Qh(Float32Array,e),lut=e=>Qh(Float64Array,e),cut=e=>Qh(Uint8ClampedArray,e);function _P(e,t,r){if(e!==0){r=r.slice(0,t);for(let i=-1,s=r.length;++i0)do if(e[r]!==t[r])return!1;while(++r(e.next(),e);function*uut(e){let t,r=!1,i=[],s,n,o,c=0;function f(){return n===\"peek\"?tu(i,o)[0]:([s,i,c]=tu(i,o),s)}({cmd:n,size:o}=(yield null)||{cmd:\"read\",size:0});let _=ND(e)[Symbol.iterator]();try{do if({done:t,value:s}=Number.isNaN(o-c)?_.next():_.next(o-c),!t&&s.byteLength>0&&(i.push(s),c+=s.byteLength),t||o<=c)do({cmd:n,size:o}=yield f());while(o0&&(s.push(n),f+=n.byteLength),r||c<=f)do({cmd:o,size:c}=yield yield ii(_()));while(c0&&(s.push(Rr(n)),f+=n.byteLength),r||c<=f)do({cmd:o,size:c}=yield yield ii(_()));while(c{})}get closed(){return this.reader?this.reader.closed.catch(()=>{}):Promise.resolve()}releaseLock(){this.reader&&this.reader.releaseLock(),this.reader=null}cancel(t){return sr(this,void 0,void 0,function*(){let{reader:r,source:i}=this;r&&(yield r.cancel(t).catch(()=>{})),i&&i.locked&&this.releaseLock()})}read(t){return sr(this,void 0,void 0,function*(){if(t===0)return{done:this.reader==null,value:new Uint8Array(0)};let r=yield this.reader.read();return!r.done&&(r.value=Rr(r)),r})}},GD=(e,t)=>{let r=s=>i([t,s]),i;return[t,r,new Promise(s=>(i=s)&&e.once(t,r))]};function dut(e){return Kc(this,arguments,function*(){let r=[],i=\"error\",s=!1,n=null,o,c,f=0,_=[],w;function C(){return o===\"peek\"?tu(_,c)[0]:([w,_,f]=tu(_,c),w)}if({cmd:o,size:c}=(yield yield ii(null))||{cmd:\"read\",size:0},e.isTTY)return yield yield ii(new Uint8Array(0)),yield ii(null);try{r[0]=GD(e,\"end\"),r[1]=GD(e,\"error\");do{if(r[2]=GD(e,\"readable\"),[i,n]=yield ii(Promise.race(r.map(N=>N[2]))),i===\"error\")break;if((s=i===\"end\")||(Number.isFinite(c-f)?(w=Rr(e.read(c-f)),w.byteLength0&&(_.push(w),f+=w.byteLength)),s||c<=f)do({cmd:o,size:c}=yield yield ii(C()));while(c{for(let[$,K]of N)e.off($,K);try{let $=e.destroy;$&&$.call(e,j),j=void 0}catch($){j=$||j}finally{j!=null?rt(j):Y()}})}})}var en;(function(e){e[e.V1=0]=\"V1\",e[e.V2=1]=\"V2\",e[e.V3=2]=\"V3\",e[e.V4=3]=\"V4\",e[e.V5=4]=\"V5\"})(en||(en={}));var Mn;(function(e){e[e.Sparse=0]=\"Sparse\",e[e.Dense=1]=\"Dense\"})(Mn||(Mn={}));var qi;(function(e){e[e.HALF=0]=\"HALF\",e[e.SINGLE=1]=\"SINGLE\",e[e.DOUBLE=2]=\"DOUBLE\"})(qi||(qi={}));var Xs;(function(e){e[e.DAY=0]=\"DAY\",e[e.MILLISECOND=1]=\"MILLISECOND\"})(Xs||(Xs={}));var pr;(function(e){e[e.SECOND=0]=\"SECOND\",e[e.MILLISECOND=1]=\"MILLISECOND\",e[e.MICROSECOND=2]=\"MICROSECOND\",e[e.NANOSECOND=3]=\"NANOSECOND\"})(pr||(pr={}));var Io;(function(e){e[e.YEAR_MONTH=0]=\"YEAR_MONTH\",e[e.DAY_TIME=1]=\"DAY_TIME\",e[e.MONTH_DAY_NANO=2]=\"MONTH_DAY_NANO\"})(Io||(Io={}));var Kf=new Int32Array(2),vP=new Float32Array(Kf.buffer),xP=new Float64Array(Kf.buffer),Ky=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var gw;(function(e){e[e.UTF8_BYTES=1]=\"UTF8_BYTES\",e[e.UTF16_STRING=2]=\"UTF16_STRING\"})(gw||(gw={}));var eu=class e{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new e(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8}writeInt32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeUint32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeInt64(t,r){this.writeInt32(t,Number(BigInt.asIntN(32,r))),this.writeInt32(t+4,Number(BigInt.asIntN(32,r>>BigInt(32))))}writeUint64(t,r){this.writeUint32(t,Number(BigInt.asUintN(32,r))),this.writeUint32(t+4,Number(BigInt.asUintN(32,r>>BigInt(32))))}writeFloat32(t,r){vP[0]=r,this.writeInt32(t,Kf[0])}writeFloat64(t,r){xP[0]=r,this.writeInt32(t,Kf[Ky?0:1]),this.writeInt32(t+4,Kf[Ky?1:0])}getBufferIdentifier(){if(this.bytes_.lengththis.minalign&&(this.minalign=t);let i=~(this.bb.capacity()-this.space+r)+1&t-1;for(;this.space=0&&this.vtable[r]==0;r--);let i=r+1;for(;r>=0;r--)this.addInt16(this.vtable[r]!=0?t-this.vtable[r]:0);let s=2;this.addInt16(t-this.object_start);let n=(i+s)*2;this.addInt16(n);let o=0,c=this.space;t:for(r=0;r=0;o--)this.writeInt8(n.charCodeAt(o))}this.prep(this.minalign,4+s),this.addOffset(t),s&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(t,r){this.finish(t,r,!0)}requiredField(t,r){let i=this.bb.capacity()-t,s=i-this.bb.readInt32(i);if(!(r=0;i--)t.addInt32(r[i]);return t.endVector()}static startTypeIdsVector(t,r){t.startVector(4,r,4)}static endUnion(t){return t.endObject()}static createUnion(t,r,i){return e.startUnion(t),e.addMode(t,r),e.addTypeIds(t,i),e.endUnion(t)}};var Pw=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsUtf8(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUtf8(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static startUtf8(t){t.startObject(0)}static endUtf8(t){return t.endObject()}static createUtf8(t){return e.startUtf8(t),e.endUtf8(t)}};var En;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.FloatingPoint=3]=\"FloatingPoint\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct_=13]=\"Struct_\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.LargeList=21]=\"LargeList\",e[e.RunEndEncoded=22]=\"RunEndEncoded\"})(En||(En={}));var rl=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsField(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsField(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}name(t){let r=this.bb.__offset(this.bb_pos,4);return r?this.bb.__string(this.bb_pos+r,t):null}nullable(){let t=this.bb.__offset(this.bb_pos,6);return t?!!this.bb.readInt8(this.bb_pos+t):!1}typeType(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb_pos+t):En.NONE}type(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.__union(t,this.bb_pos+r):null}dictionary(t){let r=this.bb.__offset(this.bb_pos,12);return r?(t||new Jf).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}children(t,r){let i=this.bb.__offset(this.bb_pos,14);return i?(r||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}childrenLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,16);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}static startField(t){t.startObject(7)}static addName(t,r){t.addFieldOffset(0,r,0)}static addNullable(t,r){t.addFieldInt8(1,+r,0)}static addTypeType(t,r){t.addFieldInt8(2,r,En.NONE)}static addType(t,r){t.addFieldOffset(3,r,0)}static addDictionary(t,r){t.addFieldOffset(4,r,0)}static addChildren(t,r){t.addFieldOffset(5,r,0)}static createChildrenVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startChildrenVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(6,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endField(t){return t.endObject()}};var sc=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsSchema(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSchema(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}endianness(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):tm.Little}fields(t,r){let i=this.bb.__offset(this.bb_pos,6);return i?(r||new rl).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}fieldsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}features(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.readInt64(this.bb.__vector(this.bb_pos+r)+t*8):BigInt(0)}featuresLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSchema(t){t.startObject(4)}static addEndianness(t,r){t.addFieldInt16(0,r,tm.Little)}static addFields(t,r){t.addFieldOffset(1,r,0)}static createFieldsVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startFieldsVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(2,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static addFeatures(t,r){t.addFieldOffset(3,r,0)}static createFeaturesVector(t,r){t.startVector(8,r.length,8);for(let i=r.length-1;i>=0;i--)t.addInt64(r[i]);return t.endVector()}static startFeaturesVector(t,r){t.startVector(8,r,8)}static endSchema(t){return t.endObject()}static finishSchemaBuffer(t,r){t.finish(r)}static finishSizePrefixedSchemaBuffer(t,r){t.finish(r,void 0,!0)}static createSchema(t,r,i,s,n){return e.startSchema(t),e.addEndianness(t,r),e.addFields(t,i),e.addCustomMetadata(t,s),e.addFeatures(t,n),e.endSchema(t)}};var bi;(function(e){e[e.NONE=0]=\"NONE\",e[e.Schema=1]=\"Schema\",e[e.DictionaryBatch=2]=\"DictionaryBatch\",e[e.RecordBatch=3]=\"RecordBatch\",e[e.Tensor=4]=\"Tensor\",e[e.SparseTensor=5]=\"SparseTensor\"})(bi||(bi={}));var Rt;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.Float=3]=\"Float\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct=13]=\"Struct\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.Dictionary=-1]=\"Dictionary\",e[e.Int8=-2]=\"Int8\",e[e.Int16=-3]=\"Int16\",e[e.Int32=-4]=\"Int32\",e[e.Int64=-5]=\"Int64\",e[e.Uint8=-6]=\"Uint8\",e[e.Uint16=-7]=\"Uint16\",e[e.Uint32=-8]=\"Uint32\",e[e.Uint64=-9]=\"Uint64\",e[e.Float16=-10]=\"Float16\",e[e.Float32=-11]=\"Float32\",e[e.Float64=-12]=\"Float64\",e[e.DateDay=-13]=\"DateDay\",e[e.DateMillisecond=-14]=\"DateMillisecond\",e[e.TimestampSecond=-15]=\"TimestampSecond\",e[e.TimestampMillisecond=-16]=\"TimestampMillisecond\",e[e.TimestampMicrosecond=-17]=\"TimestampMicrosecond\",e[e.TimestampNanosecond=-18]=\"TimestampNanosecond\",e[e.TimeSecond=-19]=\"TimeSecond\",e[e.TimeMillisecond=-20]=\"TimeMillisecond\",e[e.TimeMicrosecond=-21]=\"TimeMicrosecond\",e[e.TimeNanosecond=-22]=\"TimeNanosecond\",e[e.DenseUnion=-23]=\"DenseUnion\",e[e.SparseUnion=-24]=\"SparseUnion\",e[e.IntervalDayTime=-25]=\"IntervalDayTime\",e[e.IntervalYearMonth=-26]=\"IntervalYearMonth\",e[e.DurationSecond=-27]=\"DurationSecond\",e[e.DurationMillisecond=-28]=\"DurationMillisecond\",e[e.DurationMicrosecond=-29]=\"DurationMicrosecond\",e[e.DurationNanosecond=-30]=\"DurationNanosecond\"})(Rt||(Rt={}));var Ci;(function(e){e[e.OFFSET=0]=\"OFFSET\",e[e.DATA=1]=\"DATA\",e[e.VALIDITY=2]=\"VALIDITY\",e[e.TYPE=3]=\"TYPE\"})(Ci||(Ci={}));var cO={};dA(cO,{clampIndex:()=>tht,clampRange:()=>Vw,createElementComparator:()=>um});var HD={};dA(HD,{valueToString:()=>Jh});function Jh(e){if(e===null)return\"null\";if(e===void 0)return\"undefined\";switch(typeof e){case\"number\":return`${e}`;case\"bigint\":return`${e}`;case\"string\":return`\"${e}\"`}return typeof e[Symbol.toPrimitive]==\"function\"?e[Symbol.toPrimitive](\"string\"):ArrayBuffer.isView(e)?e instanceof BigInt64Array||e instanceof BigUint64Array?`[${[...e].map(t=>Jh(t))}]`:`[${e}]`:ArrayBuffer.isView(e)?`[${e}]`:JSON.stringify(e,(t,r)=>typeof r==\"bigint\"?`${r}`:r)}var ZD={};dA(ZD,{BN:()=>Cw,bigNumToBigInt:()=>u9,bigNumToString:()=>iv,isArrowBigNumSymbol:()=>l9});var l9=Symbol.for(\"isArrowBigNum\");function tf(e,...t){return t.length===0?Object.setPrototypeOf(Ai(this.TypedArray,e),this.constructor.prototype):Object.setPrototypeOf(new this.TypedArray(e,...t),this.constructor.prototype)}tf.prototype[l9]=!0;tf.prototype.toJSON=function(){return`\"${iv(this)}\"`};tf.prototype.valueOf=function(){return c9(this)};tf.prototype.toString=function(){return iv(this)};tf.prototype[Symbol.toPrimitive]=function(e=\"default\"){switch(e){case\"number\":return c9(this);case\"string\":return iv(this);case\"default\":return u9(this)}return iv(this)};function ev(...e){return tf.apply(this,e)}function rv(...e){return tf.apply(this,e)}function Iw(...e){return tf.apply(this,e)}Object.setPrototypeOf(ev.prototype,Object.create(Int32Array.prototype));Object.setPrototypeOf(rv.prototype,Object.create(Uint32Array.prototype));Object.setPrototypeOf(Iw.prototype,Object.create(Uint32Array.prototype));Object.assign(ev.prototype,tf.prototype,{constructor:ev,signed:!0,TypedArray:Int32Array,BigIntArray:BigInt64Array});Object.assign(rv.prototype,tf.prototype,{constructor:rv,signed:!1,TypedArray:Uint32Array,BigIntArray:BigUint64Array});Object.assign(Iw.prototype,tf.prototype,{constructor:Iw,signed:!0,TypedArray:Uint32Array,BigIntArray:BigUint64Array});function c9(e){let{buffer:t,byteOffset:r,length:i,signed:s}=e,n=new BigUint64Array(t,r,i),o=s&&n.at(-1)&BigInt(1)<{if(e.byteLength===8)return`${new e.BigIntArray(e.buffer,e.byteOffset,1)[0]}`;if(!e.signed)return qD(e);let t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(new Int16Array([t.at(-1)])[0]>=0)return qD(e);t=t.slice();let i=1;for(let n=0;ne.byteLength===8?new e.BigIntArray(e.buffer,e.byteOffset,1)[0]:iv(e);function qD(e){let t=\"\",r=new Uint32Array(2),i=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),s=new Uint32Array((i=new Uint16Array(i).reverse()).buffer),n=-1,o=i.length-1;do{for(r[0]=i[n=0];nNumber.MAX_SAFE_INTEGER))throw new TypeError(`${e} is not safe to convert to a number.`);return Number(e)}var h9,f9,d9,p9,A9,m9,g9,_9,y9,v9,x9,b9,w9,S9,T9,M9,E9,P9,I9,C9,L9,k9,Ne=class e{static isNull(t){return t?.typeId===Rt.Null}static isInt(t){return t?.typeId===Rt.Int}static isFloat(t){return t?.typeId===Rt.Float}static isBinary(t){return t?.typeId===Rt.Binary}static isLargeBinary(t){return t?.typeId===Rt.LargeBinary}static isUtf8(t){return t?.typeId===Rt.Utf8}static isLargeUtf8(t){return t?.typeId===Rt.LargeUtf8}static isBool(t){return t?.typeId===Rt.Bool}static isDecimal(t){return t?.typeId===Rt.Decimal}static isDate(t){return t?.typeId===Rt.Date}static isTime(t){return t?.typeId===Rt.Time}static isTimestamp(t){return t?.typeId===Rt.Timestamp}static isInterval(t){return t?.typeId===Rt.Interval}static isDuration(t){return t?.typeId===Rt.Duration}static isList(t){return t?.typeId===Rt.List}static isStruct(t){return t?.typeId===Rt.Struct}static isUnion(t){return t?.typeId===Rt.Union}static isFixedSizeBinary(t){return t?.typeId===Rt.FixedSizeBinary}static isFixedSizeList(t){return t?.typeId===Rt.FixedSizeList}static isMap(t){return t?.typeId===Rt.Map}static isDictionary(t){return t?.typeId===Rt.Dictionary}static isDenseUnion(t){return e.isUnion(t)&&t.mode===Mn.Dense}static isSparseUnion(t){return e.isUnion(t)&&t.mode===Mn.Sparse}constructor(t){this.typeId=t}};h9=Symbol.toStringTag;Ne[h9]=(e=>(e.children=null,e.ArrayType=Array,e.OffsetArrayType=Int32Array,e[Symbol.toStringTag]=\"DataType\"))(Ne.prototype);var ea=class extends Ne{constructor(){super(Rt.Null)}toString(){return\"Null\"}};f9=Symbol.toStringTag;ea[f9]=(e=>e[Symbol.toStringTag]=\"Null\")(ea.prototype);var is=class extends Ne{constructor(t,r){super(Rt.Int),this.isSigned=t,this.bitWidth=r}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?BigInt64Array:BigUint64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?\"I\":\"Ui\"}nt${this.bitWidth}`}};d9=Symbol.toStringTag;is[d9]=(e=>(e.isSigned=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Int\"))(is.prototype);var Lw=class extends is{constructor(){super(!0,8)}get ArrayType(){return Int8Array}},kw=class extends is{constructor(){super(!0,16)}get ArrayType(){return Int16Array}},ef=class extends is{constructor(){super(!0,32)}get ArrayType(){return Int32Array}},Rw=class extends is{constructor(){super(!0,64)}get ArrayType(){return BigInt64Array}},Dw=class extends is{constructor(){super(!1,8)}get ArrayType(){return Uint8Array}},Ow=class extends is{constructor(){super(!1,16)}get ArrayType(){return Uint16Array}},Bw=class extends is{constructor(){super(!1,32)}get ArrayType(){return Uint32Array}},Fw=class extends is{constructor(){super(!1,64)}get ArrayType(){return BigUint64Array}};Object.defineProperty(Lw.prototype,\"ArrayType\",{value:Int8Array});Object.defineProperty(kw.prototype,\"ArrayType\",{value:Int16Array});Object.defineProperty(ef.prototype,\"ArrayType\",{value:Int32Array});Object.defineProperty(Rw.prototype,\"ArrayType\",{value:BigInt64Array});Object.defineProperty(Dw.prototype,\"ArrayType\",{value:Uint8Array});Object.defineProperty(Ow.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Bw.prototype,\"ArrayType\",{value:Uint32Array});Object.defineProperty(Fw.prototype,\"ArrayType\",{value:BigUint64Array});var lo=class extends Ne{constructor(t){super(Rt.Float),this.precision=t}get ArrayType(){switch(this.precision){case qi.HALF:return Uint16Array;case qi.SINGLE:return Float32Array;case qi.DOUBLE:return Float64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`Float${this.precision<<5||16}`}};p9=Symbol.toStringTag;lo[p9]=(e=>(e.precision=null,e[Symbol.toStringTag]=\"Float\"))(lo.prototype);var zw=class extends lo{constructor(){super(qi.HALF)}},Nw=class extends lo{constructor(){super(qi.SINGLE)}},nv=class extends lo{constructor(){super(qi.DOUBLE)}};Object.defineProperty(zw.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Nw.prototype,\"ArrayType\",{value:Float32Array});Object.defineProperty(nv.prototype,\"ArrayType\",{value:Float64Array});var Uu=class extends Ne{constructor(){super(Rt.Binary)}toString(){return\"Binary\"}};A9=Symbol.toStringTag;Uu[A9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Binary\"))(Uu.prototype);var ed=class extends Ne{constructor(){super(Rt.LargeBinary)}toString(){return\"LargeBinary\"}};m9=Symbol.toStringTag;ed[m9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeBinary\"))(ed.prototype);var Vu=class extends Ne{constructor(){super(Rt.Utf8)}toString(){return\"Utf8\"}};g9=Symbol.toStringTag;Vu[g9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Utf8\"))(Vu.prototype);var rd=class extends Ne{constructor(){super(Rt.LargeUtf8)}toString(){return\"LargeUtf8\"}};_9=Symbol.toStringTag;rd[_9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeUtf8\"))(rd.prototype);var oc=class extends Ne{constructor(){super(Rt.Bool)}toString(){return\"Bool\"}};y9=Symbol.toStringTag;oc[y9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Bool\"))(oc.prototype);var ju=class extends Ne{constructor(t,r,i=128){super(Rt.Decimal),this.scale=t,this.precision=r,this.bitWidth=i}toString(){return`Decimal[${this.precision}e${this.scale>0?\"+\":\"\"}${this.scale}]`}};v9=Symbol.toStringTag;ju[v9]=(e=>(e.scale=null,e.precision=null,e.ArrayType=Uint32Array,e[Symbol.toStringTag]=\"Decimal\"))(ju.prototype);var Gu=class extends Ne{constructor(t){super(Rt.Date),this.unit=t}toString(){return`Date${(this.unit+1)*32}<${Xs[this.unit]}>`}};x9=Symbol.toStringTag;Gu[x9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Date\"))(Gu.prototype);var ac=class extends Ne{constructor(t,r){super(Rt.Time),this.unit=t,this.bitWidth=r}toString(){return`Time${this.bitWidth}<${pr[this.unit]}>`}get ArrayType(){switch(this.bitWidth){case 32:return Int32Array;case 64:return BigInt64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}};b9=Symbol.toStringTag;ac[b9]=(e=>(e.unit=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Time\"))(ac.prototype);var Wu=class extends Ne{constructor(t,r){super(Rt.Timestamp),this.unit=t,this.timezone=r}toString(){return`Timestamp<${pr[this.unit]}${this.timezone?`, ${this.timezone}`:\"\"}>`}};w9=Symbol.toStringTag;Wu[w9]=(e=>(e.unit=null,e.timezone=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Timestamp\"))(Wu.prototype);var Hu=class extends Ne{constructor(t){super(Rt.Interval),this.unit=t}toString(){return`Interval<${Io[this.unit]}>`}};S9=Symbol.toStringTag;Hu[S9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Interval\"))(Hu.prototype);var qu=class extends Ne{constructor(t){super(Rt.Duration),this.unit=t}toString(){return`Duration<${pr[this.unit]}>`}};T9=Symbol.toStringTag;qu[T9]=(e=>(e.unit=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=\"Duration\"))(qu.prototype);var lc=class extends Ne{constructor(t){super(Rt.List),this.children=[t]}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}};M9=Symbol.toStringTag;lc[M9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"List\"))(lc.prototype);var un=class extends Ne{constructor(t){super(Rt.Struct),this.children=t}toString(){return`Struct<{${this.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};E9=Symbol.toStringTag;un[E9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"Struct\"))(un.prototype);var cc=class extends Ne{constructor(t,r,i){super(Rt.Union),this.mode=t,this.children=i,this.typeIds=r=Int32Array.from(r),this.typeIdToChildIndex=r.reduce((s,n,o)=>(s[n]=o)&&s||s,Object.create(null))}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(t=>`${t.type}`).join(\" | \")}>`}};P9=Symbol.toStringTag;cc[P9]=(e=>(e.mode=null,e.typeIds=null,e.children=null,e.typeIdToChildIndex=null,e.ArrayType=Int8Array,e[Symbol.toStringTag]=\"Union\"))(cc.prototype);var Zu=class extends Ne{constructor(t){super(Rt.FixedSizeBinary),this.byteWidth=t}toString(){return`FixedSizeBinary[${this.byteWidth}]`}};I9=Symbol.toStringTag;Zu[I9]=(e=>(e.byteWidth=null,e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"FixedSizeBinary\"))(Zu.prototype);var Il=class extends Ne{constructor(t,r){super(Rt.FixedSizeList),this.listSize=t,this.children=[r]}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}};C9=Symbol.toStringTag;Il[C9]=(e=>(e.children=null,e.listSize=null,e[Symbol.toStringTag]=\"FixedSizeList\"))(Il.prototype);var uc=class extends Ne{constructor(t,r=!1){var i,s,n;if(super(Rt.Map),this.children=[t],this.keysSorted=r,t&&(t.name=\"entries\",!((i=t?.type)===null||i===void 0)&&i.children)){let o=(s=t?.type)===null||s===void 0?void 0:s.children[0];o&&(o.name=\"key\");let c=(n=t?.type)===null||n===void 0?void 0:n.children[1];c&&(c.name=\"value\")}}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}get childType(){return this.children[0].type}toString(){return`Map<{${this.children[0].type.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};L9=Symbol.toStringTag;uc[L9]=(e=>(e.children=null,e.keysSorted=null,e[Symbol.toStringTag]=\"Map_\"))(uc.prototype);var put=(e=>()=>++e)(-1),hc=class extends Ne{constructor(t,r,i,s){super(Rt.Dictionary),this.indices=r,this.dictionary=t,this.isOrdered=s||!1,this.id=i==null?put():ms(i)}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}};k9=Symbol.toStringTag;hc[k9]=(e=>(e.id=null,e.indices=null,e.isOrdered=null,e.dictionary=null,e[Symbol.toStringTag]=\"Dictionary\"))(hc.prototype);function iu(e){let t=e;switch(e.typeId){case Rt.Decimal:return e.bitWidth/32;case Rt.Timestamp:return 2;case Rt.Date:return 1+t.unit;case Rt.Interval:return 1+t.unit;case Rt.FixedSizeList:return t.listSize;case Rt.FixedSizeBinary:return t.byteWidth;default:return 1}}var Mr=class{visitMany(t,...r){return t.map((i,s)=>this.visit(i,...r.map(n=>n[s])))}visit(...t){return this.getVisitFn(t[0],!1).apply(this,t)}getVisitFn(t,r=!0){return Aut(this,t,r)}getVisitFnByTypeId(t,r=!0){return sv(this,t,r)}visitNull(t,...r){return null}visitBool(t,...r){return null}visitInt(t,...r){return null}visitFloat(t,...r){return null}visitUtf8(t,...r){return null}visitLargeUtf8(t,...r){return null}visitBinary(t,...r){return null}visitLargeBinary(t,...r){return null}visitFixedSizeBinary(t,...r){return null}visitDate(t,...r){return null}visitTimestamp(t,...r){return null}visitTime(t,...r){return null}visitDecimal(t,...r){return null}visitList(t,...r){return null}visitStruct(t,...r){return null}visitUnion(t,...r){return null}visitDictionary(t,...r){return null}visitInterval(t,...r){return null}visitDuration(t,...r){return null}visitFixedSizeList(t,...r){return null}visitMap(t,...r){return null}};function Aut(e,t,r=!0){return typeof t==\"number\"?sv(e,t,r):typeof t==\"string\"&&t in Rt?sv(e,Rt[t],r):t&&t instanceof Ne?sv(e,R9(t),r):t?.type&&t.type instanceof Ne?sv(e,R9(t.type),r):sv(e,Rt.NONE,r)}function sv(e,t,r=!0){let i=null;switch(t){case Rt.Null:i=e.visitNull;break;case Rt.Bool:i=e.visitBool;break;case Rt.Int:i=e.visitInt;break;case Rt.Int8:i=e.visitInt8||e.visitInt;break;case Rt.Int16:i=e.visitInt16||e.visitInt;break;case Rt.Int32:i=e.visitInt32||e.visitInt;break;case Rt.Int64:i=e.visitInt64||e.visitInt;break;case Rt.Uint8:i=e.visitUint8||e.visitInt;break;case Rt.Uint16:i=e.visitUint16||e.visitInt;break;case Rt.Uint32:i=e.visitUint32||e.visitInt;break;case Rt.Uint64:i=e.visitUint64||e.visitInt;break;case Rt.Float:i=e.visitFloat;break;case Rt.Float16:i=e.visitFloat16||e.visitFloat;break;case Rt.Float32:i=e.visitFloat32||e.visitFloat;break;case Rt.Float64:i=e.visitFloat64||e.visitFloat;break;case Rt.Utf8:i=e.visitUtf8;break;case Rt.LargeUtf8:i=e.visitLargeUtf8;break;case Rt.Binary:i=e.visitBinary;break;case Rt.LargeBinary:i=e.visitLargeBinary;break;case Rt.FixedSizeBinary:i=e.visitFixedSizeBinary;break;case Rt.Date:i=e.visitDate;break;case Rt.DateDay:i=e.visitDateDay||e.visitDate;break;case Rt.DateMillisecond:i=e.visitDateMillisecond||e.visitDate;break;case Rt.Timestamp:i=e.visitTimestamp;break;case Rt.TimestampSecond:i=e.visitTimestampSecond||e.visitTimestamp;break;case Rt.TimestampMillisecond:i=e.visitTimestampMillisecond||e.visitTimestamp;break;case Rt.TimestampMicrosecond:i=e.visitTimestampMicrosecond||e.visitTimestamp;break;case Rt.TimestampNanosecond:i=e.visitTimestampNanosecond||e.visitTimestamp;break;case Rt.Time:i=e.visitTime;break;case Rt.TimeSecond:i=e.visitTimeSecond||e.visitTime;break;case Rt.TimeMillisecond:i=e.visitTimeMillisecond||e.visitTime;break;case Rt.TimeMicrosecond:i=e.visitTimeMicrosecond||e.visitTime;break;case Rt.TimeNanosecond:i=e.visitTimeNanosecond||e.visitTime;break;case Rt.Decimal:i=e.visitDecimal;break;case Rt.List:i=e.visitList;break;case Rt.Struct:i=e.visitStruct;break;case Rt.Union:i=e.visitUnion;break;case Rt.DenseUnion:i=e.visitDenseUnion||e.visitUnion;break;case Rt.SparseUnion:i=e.visitSparseUnion||e.visitUnion;break;case Rt.Dictionary:i=e.visitDictionary;break;case Rt.Interval:i=e.visitInterval;break;case Rt.IntervalDayTime:i=e.visitIntervalDayTime||e.visitInterval;break;case Rt.IntervalYearMonth:i=e.visitIntervalYearMonth||e.visitInterval;break;case Rt.Duration:i=e.visitDuration;break;case Rt.DurationSecond:i=e.visitDurationSecond||e.visitDuration;break;case Rt.DurationMillisecond:i=e.visitDurationMillisecond||e.visitDuration;break;case Rt.DurationMicrosecond:i=e.visitDurationMicrosecond||e.visitDuration;break;case Rt.DurationNanosecond:i=e.visitDurationNanosecond||e.visitDuration;break;case Rt.FixedSizeList:i=e.visitFixedSizeList;break;case Rt.Map:i=e.visitMap;break}if(typeof i==\"function\")return i;if(!r)return()=>null;throw new Error(`Unrecognized type '${Rt[t]}'`)}function R9(e){switch(e.typeId){case Rt.Null:return Rt.Null;case Rt.Int:{let{bitWidth:t,isSigned:r}=e;switch(t){case 8:return r?Rt.Int8:Rt.Uint8;case 16:return r?Rt.Int16:Rt.Uint16;case 32:return r?Rt.Int32:Rt.Uint32;case 64:return r?Rt.Int64:Rt.Uint64}return Rt.Int}case Rt.Float:switch(e.precision){case qi.HALF:return Rt.Float16;case qi.SINGLE:return Rt.Float32;case qi.DOUBLE:return Rt.Float64}return Rt.Float;case Rt.Binary:return Rt.Binary;case Rt.LargeBinary:return Rt.LargeBinary;case Rt.Utf8:return Rt.Utf8;case Rt.LargeUtf8:return Rt.LargeUtf8;case Rt.Bool:return Rt.Bool;case Rt.Decimal:return Rt.Decimal;case Rt.Time:switch(e.unit){case pr.SECOND:return Rt.TimeSecond;case pr.MILLISECOND:return Rt.TimeMillisecond;case pr.MICROSECOND:return Rt.TimeMicrosecond;case pr.NANOSECOND:return Rt.TimeNanosecond}return Rt.Time;case Rt.Timestamp:switch(e.unit){case pr.SECOND:return Rt.TimestampSecond;case pr.MILLISECOND:return Rt.TimestampMillisecond;case pr.MICROSECOND:return Rt.TimestampMicrosecond;case pr.NANOSECOND:return Rt.TimestampNanosecond}return Rt.Timestamp;case Rt.Date:switch(e.unit){case Xs.DAY:return Rt.DateDay;case Xs.MILLISECOND:return Rt.DateMillisecond}return Rt.Date;case Rt.Interval:switch(e.unit){case Io.DAY_TIME:return Rt.IntervalDayTime;case Io.YEAR_MONTH:return Rt.IntervalYearMonth}return Rt.Interval;case Rt.Duration:switch(e.unit){case pr.SECOND:return Rt.DurationSecond;case pr.MILLISECOND:return Rt.DurationMillisecond;case pr.MICROSECOND:return Rt.DurationMicrosecond;case pr.NANOSECOND:return Rt.DurationNanosecond}return Rt.Duration;case Rt.Map:return Rt.Map;case Rt.List:return Rt.List;case Rt.Struct:return Rt.Struct;case Rt.Union:switch(e.mode){case Mn.Dense:return Rt.DenseUnion;case Mn.Sparse:return Rt.SparseUnion}return Rt.Union;case Rt.FixedSizeBinary:return Rt.FixedSizeBinary;case Rt.FixedSizeList:return Rt.FixedSizeList;case Rt.Dictionary:return Rt.Dictionary}throw new Error(`Unrecognized type '${Rt[e.typeId]}'`)}Mr.prototype.visitInt8=null;Mr.prototype.visitInt16=null;Mr.prototype.visitInt32=null;Mr.prototype.visitInt64=null;Mr.prototype.visitUint8=null;Mr.prototype.visitUint16=null;Mr.prototype.visitUint32=null;Mr.prototype.visitUint64=null;Mr.prototype.visitFloat16=null;Mr.prototype.visitFloat32=null;Mr.prototype.visitFloat64=null;Mr.prototype.visitDateDay=null;Mr.prototype.visitDateMillisecond=null;Mr.prototype.visitTimestampSecond=null;Mr.prototype.visitTimestampMillisecond=null;Mr.prototype.visitTimestampMicrosecond=null;Mr.prototype.visitTimestampNanosecond=null;Mr.prototype.visitTimeSecond=null;Mr.prototype.visitTimeMillisecond=null;Mr.prototype.visitTimeMicrosecond=null;Mr.prototype.visitTimeNanosecond=null;Mr.prototype.visitDenseUnion=null;Mr.prototype.visitSparseUnion=null;Mr.prototype.visitIntervalDayTime=null;Mr.prototype.visitIntervalYearMonth=null;Mr.prototype.visitDuration=null;Mr.prototype.visitDurationSecond=null;Mr.prototype.visitDurationMillisecond=null;Mr.prototype.visitDurationMicrosecond=null;Mr.prototype.visitDurationNanosecond=null;var YD={};dA(YD,{float64ToUint16:()=>Uw,uint16ToFloat64:()=>SP});var D9=new Float64Array(1),ov=new Uint32Array(D9.buffer);function SP(e){let t=(e&31744)>>10,r=(e&1023)/1024,i=Math.pow(-1,(e&32768)>>15);switch(t){case 31:return i*(r?Number.NaN:1/0);case 0:return i*(r?6103515625e-14*r:0)}return i*Math.pow(2,t-15)*(1+r)}function Uw(e){if(e!==e)return 32256;D9[0]=e;let t=(ov[1]&2147483648)>>16&65535,r=ov[1]&2146435072,i=0;return r>=1089470464?ov[0]>0?r=31744:(r=(r&2080374784)>>16,i=(ov[1]&1048575)>>10):r<=1056964608?(i=1048576+(ov[1]&1048575),i=1048576+(i<<(r>>20)-998)>>21,r=0):(r=r-1056964608>>10,i=(ov[1]&1048575)+512>>10),t|r|i&65535}var kr=class extends Mr{};function Wr(e){return(t,r,i)=>{if(t.setValid(r,i!=null))return e(t,r,i)}}var mut=(e,t,r)=>{e[t]=Math.trunc(r/864e5)},QD=(e,t,r)=>{e[t]=Math.trunc(r%4294967296),e[t+1]=Math.trunc(r/4294967296)},gut=(e,t,r)=>{e[t]=Math.trunc(r*1e3%4294967296),e[t+1]=Math.trunc(r*1e3/4294967296)},_ut=(e,t,r)=>{e[t]=Math.trunc(r*1e6%4294967296),e[t+1]=Math.trunc(r*1e6/4294967296)},O9=(e,t,r,i)=>{if(r+1{let s=e+r;i?t[s>>3]|=1<>3]&=~(1<{e[t]=r},$D=({values:e},t,r)=>{e[t]=r},B9=({values:e},t,r)=>{e[t]=Uw(r)},vut=(e,t,r)=>{switch(e.type.precision){case qi.HALF:return B9(e,t,r);case qi.SINGLE:case qi.DOUBLE:return $D(e,t,r)}},TP=({values:e},t,r)=>{mut(e,t,r.valueOf())},MP=({values:e},t,r)=>{QD(e,t*2,r.valueOf())},XD=({stride:e,values:t},r,i)=>{t.set(i.subarray(0,e),e*r)},F9=({values:e,valueOffsets:t},r,i)=>O9(e,t,r,i),z9=({values:e,valueOffsets:t},r,i)=>O9(e,t,r,$f(i)),KD=(e,t,r)=>{e.type.unit===Xs.DAY?TP(e,t,r):MP(e,t,r)},EP=({values:e},t,r)=>QD(e,t*2,r/1e3),PP=({values:e},t,r)=>QD(e,t*2,r),IP=({values:e},t,r)=>gut(e,t*2,r),CP=({values:e},t,r)=>_ut(e,t*2,r),JD=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return EP(e,t,r);case pr.MILLISECOND:return PP(e,t,r);case pr.MICROSECOND:return IP(e,t,r);case pr.NANOSECOND:return CP(e,t,r)}},LP=({values:e},t,r)=>{e[t]=r},kP=({values:e},t,r)=>{e[t]=r},RP=({values:e},t,r)=>{e[t]=r},DP=({values:e},t,r)=>{e[t]=r},tO=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return LP(e,t,r);case pr.MILLISECOND:return kP(e,t,r);case pr.MICROSECOND:return RP(e,t,r);case pr.NANOSECOND:return DP(e,t,r)}},eO=({values:e,stride:t},r,i)=>{e.set(i.subarray(0,t),t*r)},xut=(e,t,r)=>{let i=e.children[0],s=e.valueOffsets,n=xa.getVisitFn(i);if(Array.isArray(r))for(let o=-1,c=s[t],f=s[t+1];c{let i=e.children[0],{valueOffsets:s}=e,n=xa.getVisitFn(i),{[t]:o,[t+1]:c}=s,f=r instanceof Map?r.entries():Object.entries(r);for(let _ of f)if(n(i,o,_),++o>=c)break},wut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t[n]),Sut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t.get(n)),Tut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t.get(s.name)),Mut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t[s.name]),Eut=(e,t,r)=>{let i=e.type.children.map(n=>xa.getVisitFn(n.type)),s=r instanceof Map?Tut(t,r):r instanceof wr?Sut(t,r):Array.isArray(r)?wut(t,r):Mut(t,r);e.type.children.forEach((n,o)=>s(i[o],e.children[o],n,o))},Put=(e,t,r)=>{e.type.mode===Mn.Dense?N9(e,t,r):U9(e,t,r)},N9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],s=e.children[i];xa.visit(s,e.valueOffsets[t],r)},U9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],s=e.children[i];xa.visit(s,t,r)},Iut=(e,t,r)=>{var i;(i=e.dictionary)===null||i===void 0||i.set(e.values[t],r)},rO=(e,t,r)=>{e.type.unit===Io.DAY_TIME?OP(e,t,r):BP(e,t,r)},OP=({values:e},t,r)=>{e.set(r.subarray(0,2),2*t)},BP=({values:e},t,r)=>{e[t]=r[0]*12+r[1]%12},FP=({values:e},t,r)=>{e[t]=r},zP=({values:e},t,r)=>{e[t]=r},NP=({values:e},t,r)=>{e[t]=r},UP=({values:e},t,r)=>{e[t]=r},iO=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return FP(e,t,r);case pr.MILLISECOND:return zP(e,t,r);case pr.MICROSECOND:return NP(e,t,r);case pr.NANOSECOND:return UP(e,t,r)}},Cut=(e,t,r)=>{let{stride:i}=e,s=e.children[0],n=xa.getVisitFn(s);if(Array.isArray(r))for(let o=-1,c=t*i;++o`${Jh(t)}: ${Jh(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}[Symbol.iterator](){return new nO(this[rf],this[av])}},nO=class{constructor(t,r){this.childIndex=0,this.children=t.children,this.rowIndex=r,this.childFields=t.type.children,this.numChildren=this.childFields.length}[Symbol.iterator](){return this}next(){let t=this.childIndex;return tr.name)}has(t,r){return t[rf].type.children.findIndex(i=>i.name===r)!==-1}getOwnPropertyDescriptor(t,r){if(t[rf].type.children.findIndex(i=>i.name===r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[rf].type.children.findIndex(s=>s.name===r);if(i!==-1){let s=co.visit(t[rf].children[i],t[av]);return Reflect.set(t,r,s),s}}set(t,r,i){let s=t[rf].type.children.findIndex(n=>n.name===r);return s!==-1?(xa.visit(t[rf].children[s],t[av],i),Reflect.set(t,r,i)):Reflect.has(t,r)||typeof r==\"symbol\"?Reflect.set(t,r,i):!1}};var Er=class extends Mr{};function zr(e){return(t,r)=>t.getValid(r)?e(t,r):null}var Lut=(e,t)=>864e5*e[t],oO=(e,t)=>4294967296*e[t+1]+(e[t]>>>0),kut=(e,t)=>4294967296*(e[t+1]/1e3)+(e[t]>>>0)/1e3,Rut=(e,t)=>4294967296*(e[t+1]/1e6)+(e[t]>>>0)/1e6,V9=e=>new Date(e),Dut=(e,t)=>V9(Lut(e,t)),Out=(e,t)=>V9(oO(e,t)),But=(e,t)=>null,j9=(e,t,r)=>{if(r+1>=t.length)return null;let i=ms(t[r]),s=ms(t[r+1]);return e.subarray(i,s)},Fut=({offset:e,values:t},r)=>{let i=e+r;return(t[i>>3]&1<Dut(e,t),W9=({values:e},t)=>Out(e,t*2),cm=({stride:e,values:t},r)=>t[e*r],zut=({stride:e,values:t},r)=>SP(t[e*r]),H9=({values:e},t)=>e[t],Nut=({stride:e,values:t},r)=>t.subarray(e*r,e*(r+1)),q9=({values:e,valueOffsets:t},r)=>j9(e,t,r),Z9=({values:e,valueOffsets:t},r)=>{let i=j9(e,t,r);return i!==null?pw(i):null},Uut=({values:e},t)=>e[t],Vut=({type:e,values:t},r)=>e.precision!==qi.HALF?t[r]:SP(t[r]),jut=(e,t)=>e.type.unit===Xs.DAY?G9(e,t):W9(e,t),Y9=({values:e},t)=>1e3*oO(e,t*2),Q9=({values:e},t)=>oO(e,t*2),$9=({values:e},t)=>kut(e,t*2),X9=({values:e},t)=>Rut(e,t*2),Gut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return Y9(e,t);case pr.MILLISECOND:return Q9(e,t);case pr.MICROSECOND:return $9(e,t);case pr.NANOSECOND:return X9(e,t)}},K9=({values:e},t)=>e[t],J9=({values:e},t)=>e[t],tW=({values:e},t)=>e[t],eW=({values:e},t)=>e[t],Wut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return K9(e,t);case pr.MILLISECOND:return J9(e,t);case pr.MICROSECOND:return tW(e,t);case pr.NANOSECOND:return eW(e,t)}},Hut=({values:e,stride:t},r)=>Cw.decimal(e.subarray(t*r,t*(r+1))),qut=(e,t)=>{let{valueOffsets:r,stride:i,children:s}=e,{[t*i]:n,[t*i+1]:o}=r,f=s[0].slice(n,o-n);return new wr([f])},Zut=(e,t)=>{let{valueOffsets:r,children:i}=e,{[t]:s,[t+1]:n}=r,o=i[0];return new id(o.slice(s,n-s))},Yut=(e,t)=>new lm(e,t),Qut=(e,t)=>e.type.mode===Mn.Dense?rW(e,t):iW(e,t),rW=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return co.visit(i,e.valueOffsets[t])},iW=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return co.visit(i,t)},$ut=(e,t)=>{var r;return(r=e.dictionary)===null||r===void 0?void 0:r.get(e.values[t])},Xut=(e,t)=>e.type.unit===Io.DAY_TIME?nW(e,t):sW(e,t),nW=({values:e},t)=>e.subarray(2*t,2*(t+1)),sW=({values:e},t)=>{let r=e[t],i=new Int32Array(2);return i[0]=Math.trunc(r/12),i[1]=Math.trunc(r%12),i},oW=({values:e},t)=>e[t],aW=({values:e},t)=>e[t],lW=({values:e},t)=>e[t],cW=({values:e},t)=>e[t],Kut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return oW(e,t);case pr.MILLISECOND:return aW(e,t);case pr.MICROSECOND:return lW(e,t);case pr.NANOSECOND:return cW(e,t)}},Jut=(e,t)=>{let{stride:r,children:i}=e,n=i[0].slice(t*r,r);return new wr([n])};Er.prototype.visitNull=zr(But);Er.prototype.visitBool=zr(Fut);Er.prototype.visitInt=zr(Uut);Er.prototype.visitInt8=zr(cm);Er.prototype.visitInt16=zr(cm);Er.prototype.visitInt32=zr(cm);Er.prototype.visitInt64=zr(H9);Er.prototype.visitUint8=zr(cm);Er.prototype.visitUint16=zr(cm);Er.prototype.visitUint32=zr(cm);Er.prototype.visitUint64=zr(H9);Er.prototype.visitFloat=zr(Vut);Er.prototype.visitFloat16=zr(zut);Er.prototype.visitFloat32=zr(cm);Er.prototype.visitFloat64=zr(cm);Er.prototype.visitUtf8=zr(Z9);Er.prototype.visitLargeUtf8=zr(Z9);Er.prototype.visitBinary=zr(q9);Er.prototype.visitLargeBinary=zr(q9);Er.prototype.visitFixedSizeBinary=zr(Nut);Er.prototype.visitDate=zr(jut);Er.prototype.visitDateDay=zr(G9);Er.prototype.visitDateMillisecond=zr(W9);Er.prototype.visitTimestamp=zr(Gut);Er.prototype.visitTimestampSecond=zr(Y9);Er.prototype.visitTimestampMillisecond=zr(Q9);Er.prototype.visitTimestampMicrosecond=zr($9);Er.prototype.visitTimestampNanosecond=zr(X9);Er.prototype.visitTime=zr(Wut);Er.prototype.visitTimeSecond=zr(K9);Er.prototype.visitTimeMillisecond=zr(J9);Er.prototype.visitTimeMicrosecond=zr(tW);Er.prototype.visitTimeNanosecond=zr(eW);Er.prototype.visitDecimal=zr(Hut);Er.prototype.visitList=zr(qut);Er.prototype.visitStruct=zr(Yut);Er.prototype.visitUnion=zr(Qut);Er.prototype.visitDenseUnion=zr(rW);Er.prototype.visitSparseUnion=zr(iW);Er.prototype.visitDictionary=zr($ut);Er.prototype.visitInterval=zr(Xut);Er.prototype.visitIntervalDayTime=zr(nW);Er.prototype.visitIntervalYearMonth=zr(sW);Er.prototype.visitDuration=zr(Kut);Er.prototype.visitDurationSecond=zr(oW);Er.prototype.visitDurationMillisecond=zr(aW);Er.prototype.visitDurationMicrosecond=zr(lW);Er.prototype.visitDurationNanosecond=zr(cW);Er.prototype.visitFixedSizeList=zr(Jut);Er.prototype.visitMap=zr(Zut);var co=new Er;var Yu=Symbol.for(\"keys\"),lv=Symbol.for(\"vals\"),id=class{constructor(t){return this[Yu]=new wr([t.children[0]]).memoize(),this[lv]=t.children[1],new Proxy(this,new lO)}[Symbol.iterator](){return new aO(this[Yu],this[lv])}get size(){return this[Yu].length}toArray(){return Object.values(this.toJSON())}toJSON(){let t=this[Yu],r=this[lv],i={};for(let s=-1,n=t.length;++s`${Jh(t)}: ${Jh(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}},aO=class{constructor(t,r){this.keys=t,this.vals=r,this.keyIndex=0,this.numKeys=t.length}[Symbol.iterator](){return this}next(){let t=this.keyIndex;return t===this.numKeys?{done:!0,value:null}:(this.keyIndex++,{done:!1,value:[this.keys.get(t),co.visit(this.vals,t)]})}},lO=class{isExtensible(){return!1}deleteProperty(){return!1}preventExtensions(){return!0}ownKeys(t){return t[Yu].toArray().map(String)}has(t,r){return t[Yu].includes(r)}getOwnPropertyDescriptor(t,r){if(t[Yu].indexOf(r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[Yu].indexOf(r);if(i!==-1){let s=co.visit(Reflect.get(t,lv),i);return Reflect.set(t,r,s),s}}set(t,r,i){let s=t[Yu].indexOf(r);return s!==-1?(xa.visit(Reflect.get(t,lv),s,i),Reflect.set(t,r,i)):Reflect.has(t,r)?Reflect.set(t,r,i):!1}};Object.defineProperties(id.prototype,{[Symbol.toStringTag]:{enumerable:!1,configurable:!1,value:\"Row\"},[Yu]:{writable:!0,enumerable:!1,configurable:!1,value:null},[lv]:{writable:!0,enumerable:!1,configurable:!1,value:null}});function tht(e,t,r){let i=e.length,s=t>-1?t:i+t%i;return r?r(e,s):s}var uW;function Vw(e,t,r,i){let{length:s=0}=e,n=typeof t!=\"number\"?0:t,o=typeof r!=\"number\"?s:r;return n<0&&(n=(n%s+s)%s),o<0&&(o=(o%s+s)%s),os&&(o=s),i?i(e,n,o):[n,o]}var hW=e=>e!==e;function um(e){if(typeof e!==\"object\"||e===null)return hW(e)?hW:r=>r===e;if(e instanceof Date){let r=e.valueOf();return i=>i instanceof Date?i.valueOf()===r:!1}return ArrayBuffer.isView(e)?r=>r?VD(e,r):!1:e instanceof Map?rht(e):Array.isArray(e)?eht(e):e instanceof wr?iht(e):nht(e,!0)}function eht(e){let t=[];for(let r=-1,i=e.length;++r!1;let i=[];for(let s=-1,n=r.length;++s{if(!r||typeof r!=\"object\")return!1;switch(r.constructor){case Array:return sht(e,r);case Map:return fW(e,r,r.keys());case id:case lm:case Object:case void 0:return fW(e,r,t||Object.keys(r))}return r instanceof wr?oht(e,r):!1}}function sht(e,t){let r=e.length;if(t.length!==r)return!1;for(let i=-1;++ipg,getBit:()=>dW,getBool:()=>GP,packBools:()=>mg,popcnt_array:()=>pW,popcnt_bit_range:()=>jw,popcnt_uint32:()=>jP,setBool:()=>aht,truncateBitmap:()=>Ag});function GP(e,t,r,i){return(r&1<>i}function aht(e,t,r){return r?!!(e[t>>3]|=1<>3]&=~(1<0||r.byteLength>3):mg(new pg(r,e,t,null,GP)).subarray(0,i)),s}return r}function mg(e){let t=[],r=0,i=0,s=0;for(let o of e)o&&(s|=1<0)&&(t[r++]=s);let n=new Uint8Array(t.length+7&-8);return n.set(t),n}var pg=class{constructor(t,r,i,s,n){this.bytes=t,this.length=i,this.context=s,this.get=n,this.bit=r%8,this.byteIndex=r>>3,this.byte=t[this.byteIndex++],this.index=0}next(){return this.index>3<<3,s=t+(t%8===0?0:8-t%8);return jw(e,t,s)+jw(e,i,r)+pW(e,s>>3,i-s>>3)}function pW(e,t,r){let i=0,s=Math.trunc(t),n=new DataView(e.buffer,e.byteOffset,e.byteLength),o=r===void 0?e.byteLength:s+r;for(;o-s>=4;)i+=jP(n.getUint32(s)),s+=4;for(;o-s>=2;)i+=jP(n.getUint16(s)),s+=2;for(;o-s>=1;)i+=jP(n.getUint8(s)),s+=1;return i}function jP(e){let t=Math.trunc(e);return t=t-(t>>>1&1431655765),t=(t&858993459)+(t>>>2&858993459),(t+(t>>>4)&252645135)*16843009>>>24}var lht=-1,Di=class e{get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get nullable(){if(this._nullCount!==0){let{type:t}=this;return Ne.isSparseUnion(t)?this.children.some(r=>r.nullable):Ne.isDenseUnion(t)?this.children.some(r=>r.nullable):this.nullBitmap&&this.nullBitmap.byteLength>0}return!0}get byteLength(){let t=0,{valueOffsets:r,values:i,nullBitmap:s,typeIds:n}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),s&&(t+=s.byteLength),n&&(t+=n.byteLength),this.children.reduce((o,c)=>o+c.byteLength,t)}get nullCount(){if(Ne.isUnion(this.type))return this.children.reduce((i,s)=>i+s.nullCount,0);let t=this._nullCount,r;return t<=lht&&(r=this.nullBitmap)&&(this._nullCount=t=this.length-jw(r,this.offset,this.offset+this.length)),t}constructor(t,r,i,s,n,o=[],c){this.type=t,this.children=o,this.dictionary=c,this.offset=Math.floor(Math.max(r||0,0)),this.length=Math.floor(Math.max(i||0,0)),this._nullCount=Math.floor(Math.max(s||0,-1));let f;n instanceof e?(this.stride=n.stride,this.values=n.values,this.typeIds=n.typeIds,this.nullBitmap=n.nullBitmap,this.valueOffsets=n.valueOffsets):(this.stride=iu(t),n&&((f=n[0])&&(this.valueOffsets=f),(f=n[1])&&(this.values=f),(f=n[2])&&(this.nullBitmap=f),(f=n[3])&&(this.typeIds=f)))}getValid(t){let{type:r}=this;if(Ne.isUnion(r)){let i=r,s=this.children[i.typeIdToChildIndex[this.typeIds[t]]],n=i.mode===Mn.Dense?this.valueOffsets[t]:t;return s.getValid(n)}if(this.nullable&&this.nullCount>0){let i=this.offset+t;return(this.nullBitmap[i>>3]&1<>3;(!n||n.byteLength<=w)&&(n=new Uint8Array((o+c+63&-64)>>3).fill(255),this.nullCount>0&&n.set(Ag(o,c,this.nullBitmap),0),Object.assign(this,{nullBitmap:n,_nullCount:-1}));let C=n[w];i=(C&_)!==0,r?n[w]=C|_:n[w]=C&~_}return i!==!!r&&(this._nullCount=this.nullCount+(r?-1:1)),r}clone(t=this.type,r=this.offset,i=this.length,s=this._nullCount,n=this,o=this.children){return new e(t,r,i,s,n,o,this.dictionary)}slice(t,r){let{stride:i,typeId:s,children:n}=this,o=+(this._nullCount===0)-1,c=s===16?i:1,f=this._sliceBuffers(t,r,i,s);return this.clone(this.type,this.offset+t,r,o,f,n.length===0||this.valueOffsets?n:this._sliceChildren(n,c*t,c*r))}_changeLengthAndBackfillNullBitmap(t){if(this.typeId===Rt.Null)return this.clone(this.type,0,t,0);let{length:r,nullCount:i}=this,s=new Uint8Array((t+63&-64)>>3).fill(255,0,r>>3);s[r>>3]=(1<0&&s.set(Ag(this.offset,r,this.nullBitmap),0);let n=this.buffers;return n[Ci.VALIDITY]=s,this.clone(this.type,0,t,i+(t-r),n)}_sliceBuffers(t,r,i,s){let n,{buffers:o}=this;return(n=o[Ci.TYPE])&&(o[Ci.TYPE]=n.subarray(t,t+r)),(n=o[Ci.OFFSET])&&(o[Ci.OFFSET]=n.subarray(t,t+r+1))||(n=o[Ci.DATA])&&(o[Ci.DATA]=s===6?n:n.subarray(i*t,i*(t+r))),o}_sliceChildren(t,r,i){return t.map(s=>s.slice(r,i))}};Di.prototype.children=Object.freeze([]);var hO=class e extends Mr{visit(t){return this.getVisitFn(t.type).call(this,t)}visitNull(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"length\"]:s=0}=t;return new Di(r,i,s,s)}visitBool(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length>>3,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitInt(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitFloat(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitLargeUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=gP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitLargeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=gP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitFixedSizeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDate(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitTimestamp(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitTime(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDecimal(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s}=t,n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,void 0,n],[s])}visitStruct(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:s=[]}=t,n=Rr(t.nullBitmap),{length:o=s.reduce((f,{length:_})=>Math.max(f,_),0),nullCount:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,void 0,n],s)}visitUnion(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:s=[]}=t,n=Ai(r.ArrayType,t.typeIds),{[\"length\"]:o=n.length,[\"nullCount\"]:c=-1}=t;if(Ne.isSparseUnion(r))return new Di(r,i,o,c,[void 0,void 0,void 0,n],s);let f=fg(t.valueOffsets);return new Di(r,i,o,c,[f,void 0,void 0,n],s)}visitDictionary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.indices.ArrayType,t.data),{[\"dictionary\"]:o=new wr([new e().visit({type:r.dictionary})])}=t,{[\"length\"]:c=n.length,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[void 0,n,s],[],o)}visitInterval(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDuration(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitFixedSizeList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s=new e().visit({type:r.valueType})}=t,n=Rr(t.nullBitmap),{[\"length\"]:o=s.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,void 0,n],[s])}visitMap(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s=new e().visit({type:r.childType})}=t,n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,void 0,n],[s])}},cht=new hO;function yr(e){return cht.visit(e)}var Gw=class{constructor(t=0,r){this.numChunks=t,this.getChunkIterator=r,this.chunkIndex=0,this.chunkIterator=this.getChunkIterator(0)}next(){for(;this.chunkIndext.nullable)}function WP(e){return e.reduce((t,r)=>t+r.nullCount,0)}function HP(e){return e.reduce((t,r,i)=>(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function qP(e,t,r,i){let s=[];for(let n=-1,o=e.length;++n=i)break;if(r>=f+_)continue;if(f>=r&&f+_<=i){s.push(c);continue}let w=Math.max(0,r-f),C=Math.min(i-f,_);s.push(c.slice(w,C-w))}return s.length===0&&s.push(e[0].slice(0,0)),s}function fO(e,t,r,i){let s=0,n=0,o=t.length-1;do{if(s>=o-1)return r0?0:-1}function hht(e,t){let{nullBitmap:r}=e;if(!r||e.nullCount<=0)return-1;let i=0;for(let s of new pg(r,e.offset+(t||0),e.length,r,GP)){if(!s)return i;++i}return-1}function Qr(e,t,r){if(t===void 0)return-1;if(t===null)switch(e.typeId){case Rt.Union:break;case Rt.Dictionary:break;default:return hht(e,r)}let i=co.getVisitFn(e),s=um(t);for(let n=(r||0)-1,o=e.length;++n{let s=e.data[i];return s.values.subarray(0,s.length)[Symbol.iterator]()});let r=0;return new Gw(e.data.length,i=>{let n=e.data[i].length,o=e.slice(r,r+n);return r+=n,new dO(o)})}var dO=class{constructor(t){this.vector=t,this.index=0}next(){return this.indexc.data):t;if(n.length===0||n.some(c=>!(c instanceof Di)))throw new TypeError(\"Vector constructor expects an Array of Data instances.\");let o=(r=n[0])===null||r===void 0?void 0:r.type;switch(n.length){case 0:this._offsets=[0];break;case 1:{let{get:c,set:f,indexOf:_}=_W[o.typeId],w=n[0];this.isValid=C=>Ww(w,C),this.get=C=>c(w,C),this.set=(C,R)=>f(w,C,R),this.indexOf=C=>_(w,C),this._offsets=[0,w.length];break}default:Object.setPrototypeOf(this,yW[o.typeId]),this._offsets=HP(n);break}this.data=n,this.type=o,this.stride=iu(o),this.numChildren=(s=(i=o.children)===null||i===void 0?void 0:i.length)!==null&&s!==void 0?s:0,this.length=this._offsets.at(-1)}get byteLength(){return this.data.reduce((t,r)=>t+r.byteLength,0)}get nullable(){return AW(this.data)}get nullCount(){return WP(this.data)}get ArrayType(){return this.type.ArrayType}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}get VectorName(){return`${Rt[this.type.typeId]}Vector`}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}includes(t,r){return this.indexOf(t,r)>-1}[Symbol.iterator](){return uv.visit(this)}concat(...t){return new e(this.data.concat(t.flatMap(r=>r.data).flat(Number.POSITIVE_INFINITY)))}slice(t,r){return new e(Vw(this,t,r,({data:i,_offsets:s},n,o)=>qP(i,s,n,o)))}toJSON(){return[...this]}toArray(){let{type:t,data:r,length:i,stride:s,ArrayType:n}=this;switch(t.typeId){case Rt.Int:case Rt.Float:case Rt.Decimal:case Rt.Time:case Rt.Timestamp:switch(r.length){case 0:return new n;case 1:return r[0].values.subarray(0,i*s);default:return r.reduce((o,{values:c,length:f})=>(o.array.set(c.subarray(0,f*s),o.offset),o.offset+=f*s,o),{array:new n(i*s),offset:0}).array}}return[...this]}toString(){return`[${[...this].join(\",\")}]`}getChild(t){var r;return this.getChildAt((r=this.type.children)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&tr[t])):null}get isMemoized(){return Ne.isDictionary(this.type)?this.data[0].dictionary.isMemoized:!1}memoize(){if(Ne.isDictionary(this.type)){let t=new QP(this.data[0].dictionary),r=this.data.map(i=>{let s=i.clone();return s.dictionary=t,s});return new e(r)}return new QP(this)}unmemoize(){if(Ne.isDictionary(this.type)&&this.isMemoized){let t=this.data[0].dictionary.unmemoize(),r=this.data.map(i=>{let s=i.clone();return s.dictionary=t,s});return new e(r)}return this}};gW=Symbol.toStringTag;wr[gW]=(e=>{e.type=Ne.prototype,e.data=[],e.length=0,e.stride=1,e.numChildren=0,e._offsets=new Uint32Array([0]),e[Symbol.isConcatSpreadable]=!0;let t=Object.keys(Rt).map(r=>Rt[r]).filter(r=>typeof r==\"number\"&&r!==Rt.NONE);for(let r of t){let i=co.getVisitFnByTypeId(r),s=xa.getVisitFnByTypeId(r),n=gg.getVisitFnByTypeId(r);_W[r]={get:i,set:s,indexOf:n},yW[r]=Object.create(e,{isValid:{value:cv(Ww)},get:{value:cv(co.getVisitFnByTypeId(r))},set:{value:ZP(xa.getVisitFnByTypeId(r))},indexOf:{value:YP(gg.getVisitFnByTypeId(r))}})}return\"Vector\"})(wr.prototype);var QP=class e extends wr{constructor(t){super(t.data);let r=this.get,i=this.set,s=this.slice,n=new Array(this.length);Object.defineProperty(this,\"get\",{value(o){let c=n[o];if(c!==void 0)return c;let f=r.call(this,o);return n[o]=f,f}}),Object.defineProperty(this,\"set\",{value(o,c){i.call(this,o,c),n[o]=c}}),Object.defineProperty(this,\"slice\",{value:(o,c)=>new e(s.call(this,o,c))}),Object.defineProperty(this,\"isMemoized\",{value:!0}),Object.defineProperty(this,\"unmemoize\",{value:()=>new wr(this.data)}),Object.defineProperty(this,\"memoize\",{value:()=>this})}};function vW(e){if(!e||e.length<=0)return function(s){return!0};let t=\"\",r=e.filter(i=>i===i);return r.length>0&&(t=`\n switch (x) {${r.map(i=>`\n case ${fht(i)}:`).join(\"\")}\n return false;\n }`),e.length!==r.length&&(t=`if (x !== x) return false;\n${t}`),new Function(\"x\",`${t}\nreturn true;`)}function fht(e){return typeof e!=\"bigint\"?Jh(e):`${Jh(e)}n`}function pO(e,t){let r=Math.ceil(e)*t-1;return(r-r%64+64||64)/t}function xW(e,t=0){return e.length>=t?e.subarray(0,t):mw(new e.constructor(t),e,0)}var nf=class{constructor(t,r=0,i=1){this.length=Math.ceil(r/i),this.buffer=new t(this.length),this.stride=i,this.BYTES_PER_ELEMENT=t.BYTES_PER_ELEMENT,this.ArrayType=t}get byteLength(){return Math.ceil(this.length*this.stride)*this.BYTES_PER_ELEMENT}get reservedLength(){return this.buffer.length/this.stride}get reservedByteLength(){return this.buffer.byteLength}set(t,r){return this}append(t){return this.set(this.length,t)}reserve(t){if(t>0){this.length+=t;let r=this.stride,i=this.length*r,s=this.buffer.length;i>=s&&this._resize(s===0?pO(i*1,this.BYTES_PER_ELEMENT):pO(i*2,this.BYTES_PER_ELEMENT))}return this}flush(t=this.length){t=pO(t*this.stride,this.BYTES_PER_ELEMENT);let r=xW(this.buffer,t);return this.clear(),r}clear(){return this.length=0,this.buffer=new this.ArrayType,this}_resize(t){return this.buffer=xW(this.buffer,t)}},pp=class extends nf{last(){return this.get(this.length-1)}get(t){return this.buffer[t]}set(t,r){return this.reserve(t-this.length+1),this.buffer[t*this.stride]=r,this}},hv=class extends pp{constructor(){super(Uint8Array,0,1/8),this.numValid=0}get numInvalid(){return this.length-this.numValid}get(t){return this.buffer[t>>3]>>t%8&1}set(t,r){let{buffer:i}=this.reserve(t-this.length+1),s=t>>3,n=t%8,o=i[s]>>n&1;return r?o===0&&(i[s]|=1<=0&&s.fill(s[i],i,t),s[t]=s[t-1]+r,this}flush(t=this.length-1){return t>this.length&&this.set(t-1,this.BYTES_PER_ELEMENT>4?BigInt(0):0),super.flush(t+1)}};var Qn=class{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t){throw new Error('\"throughDOM\" not available in this environment')}constructor({type:t,nullValues:r}){this.length=0,this.finished=!1,this.type=t,this.children=[],this.nullValues=r,this.stride=iu(t),this._nulls=new hv,r&&r.length>0&&(this._isValid=vW(r))}toVector(){return new wr([this.flush()])}get ArrayType(){return this.type.ArrayType}get nullCount(){return this._nulls.numInvalid}get numChildren(){return this.children.length}get byteLength(){let t=0,{_offsets:r,_values:i,_nulls:s,_typeIds:n,children:o}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),s&&(t+=s.byteLength),n&&(t+=n.byteLength),o.reduce((c,f)=>c+f.byteLength,t)}get reservedLength(){return this._nulls.reservedLength}get reservedByteLength(){let t=0;return this._offsets&&(t+=this._offsets.reservedByteLength),this._values&&(t+=this._values.reservedByteLength),this._nulls&&(t+=this._nulls.reservedByteLength),this._typeIds&&(t+=this._typeIds.reservedByteLength),this.children.reduce((r,i)=>r+i.reservedByteLength,t)}get valueOffsets(){return this._offsets?this._offsets.buffer:null}get values(){return this._values?this._values.buffer:null}get nullBitmap(){return this._nulls?this._nulls.buffer:null}get typeIds(){return this._typeIds?this._typeIds.buffer:null}append(t){return this.set(this.length,t)}isValid(t){return this._isValid(t)}set(t,r){return this.setValid(t,this.isValid(r))&&this.setValue(t,r),this}setValue(t,r){this._setValue(this,t,r)}setValid(t,r){return this.length=this._nulls.set(t,+r).length,r}addChild(t,r=`${this.numChildren}`){throw new Error(`Cannot append children to non-nested type \"${this.type}\"`)}getChildAt(t){return this.children[t]||null}flush(){let t,r,i,s,{type:n,length:o,nullCount:c,_typeIds:f,_offsets:_,_values:w,_nulls:C}=this;(r=f?.flush(o))?s=_?.flush(o):(s=_?.flush(o))?t=w?.flush(_.last()):t=w?.flush(o),c>0&&(i=C?.flush(o));let R=this.children.map(N=>N.flush());return this.clear(),yr({type:n,length:o,nullCount:c,children:R,child:R[0],data:t,typeIds:r,nullBitmap:i,valueOffsets:s})}finish(){this.finished=!0;for(let t of this.children)t.finish();return this}clear(){var t,r,i,s;this.length=0,(t=this._nulls)===null||t===void 0||t.clear(),(r=this._values)===null||r===void 0||r.clear(),(i=this._offsets)===null||i===void 0||i.clear(),(s=this._typeIds)===null||s===void 0||s.clear();for(let n of this.children)n.clear();return this}};Qn.prototype.length=1;Qn.prototype.stride=1;Qn.prototype.children=null;Qn.prototype.finished=!1;Qn.prototype.nullValues=null;Qn.prototype._isValid=()=>!0;var uo=class extends Qn{constructor(t){super(t),this._values=new pp(this.ArrayType,0,this.stride)}setValue(t,r){let i=this._values;return i.reserve(t-i.length+1),super.setValue(t,r)}},fc=class extends Qn{constructor(t){super(t),this._pendingLength=0,this._offsets=new fv(t.type)}setValue(t,r){let i=this._pending||(this._pending=new Map),s=i.get(t);s&&(this._pendingLength-=s.length),this._pendingLength+=r instanceof id?r[Yu].length:r.length,i.set(t,r)}setValid(t,r){return super.setValid(t,r)?!0:((this._pending||(this._pending=new Map)).set(t,void 0),!1)}clear(){return this._pendingLength=0,this._pending=void 0,super.clear()}flush(){return this._flush(),super.flush()}finish(){return this._flush(),super.finish()}_flush(){let t=this._pending,r=this._pendingLength;return this._pendingLength=0,this._pending=void 0,t&&t.size>0&&this._flushPending(t,r),this}};var _g=class{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}offset(){return this.bb.readInt64(this.bb_pos)}metaDataLength(){return this.bb.readInt32(this.bb_pos+8)}bodyLength(){return this.bb.readInt64(this.bb_pos+16)}static sizeOf(){return 24}static createBlock(t,r,i,s){return t.prep(8,24),t.writeInt64(BigInt(s??0)),t.pad(4),t.writeInt32(i),t.writeInt64(BigInt(r??0)),t.offset()}};var nu=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsFooter(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsFooter(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):en.V1}schema(t){let r=this.bb.__offset(this.bb_pos,6);return r?(t||new sc).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}dictionaries(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new _g).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}dictionariesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}recordBatches(t,r){let i=this.bb.__offset(this.bb_pos,10);return i?(r||new _g).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}recordBatchesLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startFooter(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,en.V1)}static addSchema(t,r){t.addFieldOffset(1,r,0)}static addDictionaries(t,r){t.addFieldOffset(2,r,0)}static startDictionariesVector(t,r){t.startVector(24,r,8)}static addRecordBatches(t,r){t.addFieldOffset(3,r,0)}static startRecordBatchesVector(t,r){t.startVector(24,r,8)}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endFooter(t){return t.endObject()}static finishFooterBuffer(t,r){t.finish(r)}static finishSizePrefixedFooterBuffer(t,r){t.finish(r,void 0,!0)}};var nn=class e{constructor(t=[],r,i,s=en.V5){this.fields=t||[],this.metadata=r||new Map,i||(i=AO(t)),this.dictionaries=i,this.metadataVersion=s}get[Symbol.toStringTag](){return\"Schema\"}get names(){return this.fields.map(t=>t.name)}toString(){return`Schema<{ ${this.fields.map((t,r)=>`${r}: ${t}`).join(\", \")} }>`}select(t){let r=new Set(t),i=this.fields.filter(s=>r.has(s.name));return new e(i,this.metadata)}selectAt(t){let r=t.map(i=>this.fields[i]).filter(Boolean);return new e(r,this.metadata)}assign(...t){let r=t[0]instanceof e?t[0]:Array.isArray(t[0])?new e(t[0]):new e(t),i=[...this.fields],s=$P($P(new Map,this.metadata),r.metadata),n=r.fields.filter(c=>{let f=i.findIndex(_=>_.name===c.name);return~f?(i[f]=c.clone({metadata:$P($P(new Map,i[f].metadata),c.metadata)}))&&!1:!0}),o=AO(n,new Map);return new e([...i,...n],s,new Map([...this.dictionaries,...o]))}};nn.prototype.fields=null;nn.prototype.metadata=null;nn.prototype.dictionaries=null;var si=class e{static new(...t){let[r,i,s,n]=t;return t[0]&&typeof t[0]==\"object\"&&({name:r}=t[0],i===void 0&&(i=t[0].type),s===void 0&&(s=t[0].nullable),n===void 0&&(n=t[0].metadata)),new e(`${r}`,i,s,n)}constructor(t,r,i=!1,s){this.name=t,this.type=r,this.nullable=i,this.metadata=s||new Map}get typeId(){return this.type.typeId}get[Symbol.toStringTag](){return\"Field\"}toString(){return`${this.name}: ${this.type}`}clone(...t){let[r,i,s,n]=t;return!t[0]||typeof t[0]!=\"object\"?[r=this.name,i=this.type,s=this.nullable,n=this.metadata]=t:{name:r=this.name,type:i=this.type,nullable:s=this.nullable,metadata:n=this.metadata}=t[0],e.new(r,i,s,n)}};si.prototype.type=null;si.prototype.name=null;si.prototype.nullable=null;si.prototype.metadata=null;function $P(e,t){return new Map([...e||new Map,...t||new Map])}function AO(e,t=new Map){for(let r=-1,i=e.length;++r0&&AO(n.children,t)}return t}var dht=dg,pht=eu,Ap=class{static decode(t){t=new pht(Rr(t));let r=nu.getRootAsFooter(t),i=nn.decode(r.schema(),new Map,r.version());return new mO(i,r)}static encode(t){let r=new dht,i=nn.encode(r,t.schema);nu.startRecordBatchesVector(r,t.numRecordBatches);for(let o of[...t.recordBatches()].slice().reverse())mp.encode(r,o);let s=r.endVector();nu.startDictionariesVector(r,t.numDictionaries);for(let o of[...t.dictionaryBatches()].slice().reverse())mp.encode(r,o);let n=r.endVector();return nu.startFooter(r),nu.addSchema(r,i),nu.addVersion(r,en.V5),nu.addRecordBatches(r,s),nu.addDictionaries(r,n),nu.finishFooterBuffer(r,nu.endFooter(r)),r.asUint8Array()}get numRecordBatches(){return this._recordBatches.length}get numDictionaries(){return this._dictionaryBatches.length}constructor(t,r=en.V5,i,s){this.schema=t,this.version=r,i&&(this._recordBatches=i),s&&(this._dictionaryBatches=s)}*recordBatches(){for(let t,r=-1,i=this.numRecordBatches;++r=0&&t=0&&t=0&&t=0&&tthis._closedPromiseResolve=t)}get closed(){return this._closedPromise}cancel(t){return sr(this,void 0,void 0,function*(){yield this.return(t)})}write(t){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(t):this.resolvers.shift().resolve({done:!1,value:t}))}abort(t){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:t}:this.resolvers.shift().reject({done:!0,value:t}))}close(){if(this._closedPromiseResolve){let{resolvers:t}=this;for(;t.length>0;)t.shift().resolve(Nn);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}[Symbol.asyncIterator](){return this}toDOMStream(t){return va.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,t)}toNodeStream(t){return va.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,t)}throw(t){return sr(this,void 0,void 0,function*(){return yield this.abort(t),Nn})}return(t){return sr(this,void 0,void 0,function*(){return yield this.close(),Nn})}read(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(...t){return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((r,i)=>{this.resolvers.push({resolve:r,reject:i})}):Promise.resolve(Nn)}_ensureOpen(){if(this._closedPromiseResolve)return!0;throw new Error(\"AsyncQueue is closed\")}};var nd=class extends XP{write(t){if((t=Rr(t)).byteLength>0)return super.write(t)}toString(t=!1){return t?pw(this.toUint8Array(!0)):this.toUint8Array(!1).then(pw)}toUint8Array(t=!1){return t?tu(this._values)[0]:sr(this,void 0,void 0,function*(){var r,i,s,n;let o=[],c=0;try{for(var f=!0,_=Zh(this),w;w=yield _.next(),r=w.done,!r;f=!0){n=w.value,f=!1;let C=n;o.push(C),c+=C.byteLength}}catch(C){i={error:C}}finally{try{!f&&!r&&(s=_.return)&&(yield s.call(_))}finally{if(i)throw i.error}}return tu(o,c)[0]})}},sd=class{constructor(t){t&&(this.source=new gO(va.fromIterable(t)))}[Symbol.iterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},Qu=class e{constructor(t){t instanceof e?this.source=t.source:t instanceof nd?this.source=new gp(va.fromAsyncIterable(t)):mP(t)?this.source=new gp(va.fromNodeStream(t)):Aw(t)?this.source=new gp(va.fromDOMStream(t)):pP(t)?this.source=new gp(va.fromDOMStream(t.body)):Yh(t)?this.source=new gp(va.fromIterable(t)):Jc(t)?this.source=new gp(va.fromAsyncIterable(t)):zu(t)&&(this.source=new gp(va.fromAsyncIterable(t)))}[Symbol.asyncIterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}get closed(){return this.source.closed}cancel(t){return this.source.cancel(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},gO=class{constructor(t){this.source=t}cancel(t){this.return(t)}peek(t){return this.next(t,\"peek\").value}read(t){return this.next(t,\"read\").value}next(t,r=\"read\"){return this.source.next({cmd:r,size:t})}throw(t){return Object.create(this.source.throw&&this.source.throw(t)||Nn)}return(t){return Object.create(this.source.return&&this.source.return(t)||Nn)}},gp=class{constructor(t){this.source=t,this._closedPromise=new Promise(r=>this._closedPromiseResolve=r)}cancel(t){return sr(this,void 0,void 0,function*(){yield this.return(t)})}get closed(){return this._closedPromise}read(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(t,r=\"read\"){return sr(this,void 0,void 0,function*(){return yield this.source.next({cmd:r,size:t})})}throw(t){return sr(this,void 0,void 0,function*(){let r=this.source.throw&&(yield this.source.throw(t))||Nn;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}return(t){return sr(this,void 0,void 0,function*(){let r=this.source.return&&(yield this.source.return(t))||Nn;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}};var qw=class extends sd{constructor(t,r){super(),this.position=0,this.buffer=Rr(t),this.size=r===void 0?this.buffer.byteLength:r}readInt32(t){let{buffer:r,byteOffset:i}=this.readAt(t,4);return new DataView(r,i).getInt32(0,!0)}seek(t){return this.position=Math.min(t,this.size),tZw,Int128:()=>Yw,Int64:()=>_p,Uint64:()=>gs});function dv(e){return e<0&&(e=4294967295+e+1),`0x${e.toString(16)}`}var pv=8,_O=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8],Zw=class{constructor(t){this.buffer=t}high(){return this.buffer[1]}low(){return this.buffer[0]}_times(t){let r=new Uint32Array([this.buffer[1]>>>16,this.buffer[1]&65535,this.buffer[0]>>>16,this.buffer[0]&65535]),i=new Uint32Array([t.buffer[1]>>>16,t.buffer[1]&65535,t.buffer[0]>>>16,t.buffer[0]&65535]),s=r[3]*i[3];this.buffer[0]=s&65535;let n=s>>>16;return s=r[2]*i[3],n+=s,s=r[3]*i[2]>>>0,n+=s,this.buffer[0]+=n<<16,this.buffer[1]=n>>>0>>16,this.buffer[1]+=r[1]*i[3]+r[2]*i[2]+r[3]*i[1],this.buffer[1]+=r[0]*i[3]+r[1]*i[2]+r[2]*i[1]+r[3]*i[0]<<16,this}_plus(t){let r=this.buffer[0]+t.buffer[0]>>>0;this.buffer[1]+=t.buffer[1],r>>0&&++this.buffer[1],this.buffer[0]=r}lessThan(t){return this.buffer[1]>>0,r[2]=this.buffer[2]+t.buffer[2]>>>0,r[1]=this.buffer[1]+t.buffer[1]>>>0,r[0]=this.buffer[0]+t.buffer[0]>>>0,r[0]>>0&&++r[1],r[1]>>0&&++r[2],r[2]>>0&&++r[3],this.buffer[3]=r[3],this.buffer[2]=r[2],this.buffer[1]=r[1],this.buffer[0]=r[0],this}hex(){return`${dv(this.buffer[3])} ${dv(this.buffer[2])} ${dv(this.buffer[1])} ${dv(this.buffer[0])}`}static multiply(t,r){return new e(new Uint32Array(t.buffer)).times(r)}static add(t,r){return new e(new Uint32Array(t.buffer)).plus(r)}static from(t,r=new Uint32Array(4)){return e.fromString(typeof t==\"string\"?t:t.toString(),r)}static fromNumber(t,r=new Uint32Array(4)){return e.fromString(t.toString(),r)}static fromString(t,r=new Uint32Array(4)){let i=t.startsWith(\"-\"),s=t.length,n=new e(r);for(let o=i?1:0;o0&&this.readData(t,i)||new Uint8Array(0)}readOffsets(t,r){return this.readData(t,r)}readTypeIds(t,r){return this.readData(t,r)}readData(t,{length:r,offset:i}=this.nextBufferRange()){return this.bytes.subarray(i,i+r)}readDictionary(t){return this.dictionaries.get(t.id)}},KP=class extends Qw{constructor(t,r,i,s,n){super(new Uint8Array(0),r,i,s,n),this.sources=t}readNullBitmap(t,r,{offset:i}=this.nextBufferRange()){return r<=0?new Uint8Array(0):mg(this.sources[i])}readOffsets(t,{offset:r}=this.nextBufferRange()){return Ai(Uint8Array,Ai(t.OffsetArrayType,this.sources[r]))}readTypeIds(t,{offset:r}=this.nextBufferRange()){return Ai(Uint8Array,Ai(t.ArrayType,this.sources[r]))}readData(t,{offset:r}=this.nextBufferRange()){let{sources:i}=this;return Ne.isTimestamp(t)?Ai(Uint8Array,_p.convertArray(i[r])):(Ne.isInt(t)||Ne.isTime(t))&&t.bitWidth===64||Ne.isDuration(t)?Ai(Uint8Array,_p.convertArray(i[r])):Ne.isDate(t)&&t.unit===Xs.MILLISECOND?Ai(Uint8Array,_p.convertArray(i[r])):Ne.isDecimal(t)?Ai(Uint8Array,Yw.convertArray(i[r])):Ne.isBinary(t)||Ne.isLargeBinary(t)||Ne.isFixedSizeBinary(t)?Aht(i[r]):Ne.isBool(t)?mg(i[r]):Ne.isUtf8(t)||Ne.isLargeUtf8(t)?$f(i[r].join(\"\")):Ai(Uint8Array,Ai(t.ArrayType,i[r].map(s=>+s)))}};function Aht(e){let t=e.join(\"\"),r=new Uint8Array(t.length/2);for(let i=0;i>1]=Number.parseInt(t.slice(i,i+2),16);return r}var vg=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Rr(r))}_flushPending(t,r){let i=this._offsets,s=this._values.reserve(r).buffer,n=0;for(let[o,c]of t)if(c===void 0)i.set(o,0);else{let f=c.length;s.set(c,n),i.set(o,f),n+=f}}};var xg=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Rr(r))}_flushPending(t,r){let i=this._offsets,s=this._values.reserve(r).buffer,n=0;for(let[o,c]of t)if(c===void 0)i.set(o,BigInt(0));else{let f=c.length;s.set(c,n),i.set(o,BigInt(f)),n+=f}}};var fm=class extends Qn{constructor(t){super(t),this._values=new hv}setValue(t,r){this._values.set(t,+r)}};var dm=class extends uo{};dm.prototype._setValue=KD;var Av=class extends dm{};Av.prototype._setValue=TP;var mv=class extends dm{};mv.prototype._setValue=MP;var gv=class extends uo{};gv.prototype._setValue=eO;var $w=class extends Qn{constructor({type:t,nullValues:r,dictionaryHashFunction:i}){super({type:new hc(t.dictionary,t.indices,t.id,t.isOrdered)}),this._nulls=null,this._dictionaryOffset=0,this._keysToIndices=Object.create(null),this.indices=bg({type:this.type.indices,nullValues:r}),this.dictionary=bg({type:this.type.dictionary,nullValues:null}),typeof i==\"function\"&&(this.valueToKey=i)}get values(){return this.indices.values}get nullCount(){return this.indices.nullCount}get nullBitmap(){return this.indices.nullBitmap}get byteLength(){return this.indices.byteLength+this.dictionary.byteLength}get reservedLength(){return this.indices.reservedLength+this.dictionary.reservedLength}get reservedByteLength(){return this.indices.reservedByteLength+this.dictionary.reservedByteLength}isValid(t){return this.indices.isValid(t)}setValid(t,r){let i=this.indices;return r=i.setValid(t,r),this.length=i.length,r}setValue(t,r){let i=this._keysToIndices,s=this.valueToKey(r),n=i[s];return n===void 0&&(i[s]=n=this._dictionaryOffset+this.dictionary.append(r).length-1),this.indices.setValue(t,n)}flush(){let t=this.type,r=this._dictionary,i=this.dictionary.toVector(),s=this.indices.flush().clone(t);return s.dictionary=r?r.concat(i):i,this.finished||(this._dictionaryOffset+=i.length),this._dictionary=s.dictionary,this.clear(),s}finish(){return this.indices.finish(),this.dictionary.finish(),this._dictionaryOffset=0,this._keysToIndices=Object.create(null),super.finish()}clear(){return this.indices.clear(),this.dictionary.clear(),super.clear()}valueToKey(t){return typeof t==\"string\"?t:`${t}`}};var _v=class extends uo{};_v.prototype._setValue=XD;var Xw=class extends Qn{setValue(t,r){let[i]=this.children,s=t*this.stride;for(let n=-1,o=r.length;++n0)throw new Error(\"FixedSizeListBuilder can only have one child.\");let i=this.children.push(t);return this.type=new Il(this.type.listSize,new si(r,t.type,!0)),i}};var pm=class extends uo{setValue(t,r){this._values.set(t,r)}},Kw=class extends pm{setValue(t,r){super.setValue(t,Uw(r))}},Jw=class extends pm{},t2=class extends pm{};var Am=class extends uo{};Am.prototype._setValue=rO;var yv=class extends Am{};yv.prototype._setValue=OP;var vv=class extends Am{};vv.prototype._setValue=BP;var od=class extends uo{};od.prototype._setValue=iO;var xv=class extends od{};xv.prototype._setValue=FP;var bv=class extends od{};bv.prototype._setValue=zP;var wv=class extends od{};wv.prototype._setValue=NP;var Sv=class extends od{};Sv.prototype._setValue=UP;var su=class extends uo{setValue(t,r){this._values.set(t,r)}},e2=class extends su{},r2=class extends su{},i2=class extends su{},n2=class extends su{},s2=class extends su{},o2=class extends su{},a2=class extends su{},l2=class extends su{};var c2=class extends fc{constructor(t){super(t),this._offsets=new fv(t.type)}addChild(t,r=\"0\"){if(this.numChildren>0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new lc(new si(r,t.type,!0)),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[s,n]of t)if(typeof n>\"u\")r.set(s,0);else{let o=n,c=o.length,f=r.set(s,c).buffer[s];for(let _=-1;++_0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new uc(new si(r,t.type,!0),this.type.keysSorted),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[s,n]of t)if(n===void 0)r.set(s,0);else{let{[s]:o,[s+1]:c}=r.set(s,n.size).buffer;for(let f of n.entries())if(i.set(o,f),++o>=c)break}}};var h2=class extends Qn{setValue(t,r){}setValid(t,r){return this.length=Math.max(t+1,this.length),r}};var f2=class extends Qn{setValue(t,r){let{children:i,type:s}=this;switch(Array.isArray(r)||r.constructor){case!0:return s.children.forEach((n,o)=>i[o].set(t,r[o]));case Map:return s.children.forEach((n,o)=>i[o].set(t,r.get(n.name)));default:return s.children.forEach((n,o)=>i[o].set(t,r[n.name]))}}setValid(t,r){return super.setValid(t,r)||this.children.forEach(i=>i.setValid(t,r)),r}addChild(t,r=`${this.numChildren}`){let i=this.children.push(t);return this.type=new un([...this.type.children,new si(r,t.type,!0)]),i}};var ad=class extends uo{};ad.prototype._setValue=JD;var Tv=class extends ad{};Tv.prototype._setValue=EP;var Mv=class extends ad{};Mv.prototype._setValue=PP;var Ev=class extends ad{};Ev.prototype._setValue=IP;var Pv=class extends ad{};Pv.prototype._setValue=CP;var ld=class extends uo{};ld.prototype._setValue=tO;var Iv=class extends ld{};Iv.prototype._setValue=LP;var Cv=class extends ld{};Cv.prototype._setValue=kP;var Lv=class extends ld{};Lv.prototype._setValue=RP;var kv=class extends ld{};kv.prototype._setValue=DP;var wg=class extends Qn{constructor(t){super(t),this._typeIds=new pp(Int8Array,0,1),typeof t.valueToChildTypeId==\"function\"&&(this._valueToChildTypeId=t.valueToChildTypeId)}get typeIdToChildIndex(){return this.type.typeIdToChildIndex}append(t,r){return this.set(this.length,t,r)}set(t,r,i){return i===void 0&&(i=this._valueToChildTypeId(this,r,t)),this.setValue(t,r,i),this}setValue(t,r,i){this._typeIds.set(t,i);let s=this.type.typeIdToChildIndex[i],n=this.children[s];n?.set(t,r)}addChild(t,r=`${this.children.length}`){let i=this.children.push(t),{type:{children:s,mode:n,typeIds:o}}=this,c=[...s,new si(r,t.type)];return this.type=new cc(n,[...o,i],c),i}_valueToChildTypeId(t,r,i){throw new Error(\"Cannot map UnionBuilder value to child typeId. Pass the `childTypeId` as the second argument to unionBuilder.append(), or supply a `valueToChildTypeId` function as part of the UnionBuilder constructor options.\")}},d2=class extends wg{},p2=class extends wg{constructor(t){super(t),this._offsets=new pp(Int32Array)}setValue(t,r,i){let s=this._typeIds.set(t,i).buffer[t],n=this.getChildAt(this.type.typeIdToChildIndex[s]),o=this._offsets.set(t,n.length).buffer[t];n?.set(o,r)}};var Rv=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,$f(r))}_flushPending(t,r){}};Rv.prototype._flushPending=vg.prototype._flushPending;var Dv=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,$f(r))}_flushPending(t,r){}};Dv.prototype._flushPending=xg.prototype._flushPending;var vO=class extends Mr{visitNull(){return h2}visitBool(){return fm}visitInt(){return su}visitInt8(){return e2}visitInt16(){return r2}visitInt32(){return i2}visitInt64(){return n2}visitUint8(){return s2}visitUint16(){return o2}visitUint32(){return a2}visitUint64(){return l2}visitFloat(){return pm}visitFloat16(){return Kw}visitFloat32(){return Jw}visitFloat64(){return t2}visitUtf8(){return Rv}visitLargeUtf8(){return Dv}visitBinary(){return vg}visitLargeBinary(){return xg}visitFixedSizeBinary(){return _v}visitDate(){return dm}visitDateDay(){return Av}visitDateMillisecond(){return mv}visitTimestamp(){return ad}visitTimestampSecond(){return Tv}visitTimestampMillisecond(){return Mv}visitTimestampMicrosecond(){return Ev}visitTimestampNanosecond(){return Pv}visitTime(){return ld}visitTimeSecond(){return Iv}visitTimeMillisecond(){return Cv}visitTimeMicrosecond(){return Lv}visitTimeNanosecond(){return kv}visitDecimal(){return gv}visitList(){return c2}visitStruct(){return f2}visitUnion(){return wg}visitDenseUnion(){return p2}visitSparseUnion(){return d2}visitDictionary(){return $w}visitInterval(){return Am}visitIntervalDayTime(){return yv}visitIntervalYearMonth(){return vv}visitDuration(){return od}visitDurationSecond(){return xv}visitDurationMillisecond(){return bv}visitDurationMicrosecond(){return wv}visitDurationNanosecond(){return Sv}visitFixedSizeList(){return Xw}visitMap(){return u2}},bW=new vO;var Cr=class extends Mr{compareSchemas(t,r){return t===r||r instanceof t.constructor&&this.compareManyFields(t.fields,r.fields)}compareManyFields(t,r){return t===r||Array.isArray(t)&&Array.isArray(r)&&t.length===r.length&&t.every((i,s)=>this.compareFields(i,r[s]))}compareFields(t,r){return t===r||r instanceof t.constructor&&t.name===r.name&&t.nullable===r.nullable&&this.visit(t.type,r.type)}};function Cl(e,t){return t instanceof e.constructor}function Sg(e,t){return e===t||Cl(e,t)}function yp(e,t){return e===t||Cl(e,t)&&e.bitWidth===t.bitWidth&&e.isSigned===t.isSigned}function JP(e,t){return e===t||Cl(e,t)&&e.precision===t.precision}function mht(e,t){return e===t||Cl(e,t)&&e.byteWidth===t.byteWidth}function xO(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function A2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit&&e.timezone===t.timezone}function m2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit&&e.bitWidth===t.bitWidth}function ght(e,t){return e===t||Cl(e,t)&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function _ht(e,t){return e===t||Cl(e,t)&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function bO(e,t){return e===t||Cl(e,t)&&e.mode===t.mode&&e.typeIds.every((r,i)=>r===t.typeIds[i])&&cd.compareManyFields(e.children,t.children)}function yht(e,t){return e===t||Cl(e,t)&&e.id===t.id&&e.isOrdered===t.isOrdered&&cd.visit(e.indices,t.indices)&&cd.visit(e.dictionary,t.dictionary)}function wO(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function g2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function vht(e,t){return e===t||Cl(e,t)&&e.listSize===t.listSize&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function xht(e,t){return e===t||Cl(e,t)&&e.keysSorted===t.keysSorted&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}Cr.prototype.visitNull=Sg;Cr.prototype.visitBool=Sg;Cr.prototype.visitInt=yp;Cr.prototype.visitInt8=yp;Cr.prototype.visitInt16=yp;Cr.prototype.visitInt32=yp;Cr.prototype.visitInt64=yp;Cr.prototype.visitUint8=yp;Cr.prototype.visitUint16=yp;Cr.prototype.visitUint32=yp;Cr.prototype.visitUint64=yp;Cr.prototype.visitFloat=JP;Cr.prototype.visitFloat16=JP;Cr.prototype.visitFloat32=JP;Cr.prototype.visitFloat64=JP;Cr.prototype.visitUtf8=Sg;Cr.prototype.visitLargeUtf8=Sg;Cr.prototype.visitBinary=Sg;Cr.prototype.visitLargeBinary=Sg;Cr.prototype.visitFixedSizeBinary=mht;Cr.prototype.visitDate=xO;Cr.prototype.visitDateDay=xO;Cr.prototype.visitDateMillisecond=xO;Cr.prototype.visitTimestamp=A2;Cr.prototype.visitTimestampSecond=A2;Cr.prototype.visitTimestampMillisecond=A2;Cr.prototype.visitTimestampMicrosecond=A2;Cr.prototype.visitTimestampNanosecond=A2;Cr.prototype.visitTime=m2;Cr.prototype.visitTimeSecond=m2;Cr.prototype.visitTimeMillisecond=m2;Cr.prototype.visitTimeMicrosecond=m2;Cr.prototype.visitTimeNanosecond=m2;Cr.prototype.visitDecimal=Sg;Cr.prototype.visitList=ght;Cr.prototype.visitStruct=_ht;Cr.prototype.visitUnion=bO;Cr.prototype.visitDenseUnion=bO;Cr.prototype.visitSparseUnion=bO;Cr.prototype.visitDictionary=yht;Cr.prototype.visitInterval=wO;Cr.prototype.visitIntervalDayTime=wO;Cr.prototype.visitIntervalYearMonth=wO;Cr.prototype.visitDuration=g2;Cr.prototype.visitDurationSecond=g2;Cr.prototype.visitDurationMillisecond=g2;Cr.prototype.visitDurationMicrosecond=g2;Cr.prototype.visitDurationNanosecond=g2;Cr.prototype.visitFixedSizeList=vht;Cr.prototype.visitMap=xht;var cd=new Cr;function Tg(e,t){return cd.compareSchemas(e,t)}function wW(e,t){return cd.compareFields(e,t)}function SW(e,t){return cd.visit(e,t)}function bg(e){let t=e.type,r=new(bW.getVisitFn(t)())(e);if(t.children&&t.children.length>0){let i=e.children||[],s={nullValues:e.nullValues},n=Array.isArray(i)?(o,c)=>i[c]||s:({name:o})=>i[o]||s;for(let[o,c]of t.children.entries()){let{type:f}=c,_=n(c,o);r.children.push(bg(Object.assign(Object.assign({},_),{type:f})))}}return r}function t3(e,t){return bht(e,t.map(r=>r.data.concat()))}function bht(e,t){let r=[...e.fields],i=[],s={numBatches:t.reduce((C,R)=>Math.max(C,R.length),0)},n=0,o=0,c=-1,f=t.length,_,w=[];for(;s.numBatches-- >0;){for(o=Number.POSITIVE_INFINITY,c=-1;++c0&&(i[n++]=yr({type:new un(r),length:o,nullCount:0,children:w.slice()})))}return[e=e.assign(r),i.map(C=>new ks(e,C))]}function wht(e,t,r,i,s){var n;let o=(t+63&-64)>>3;for(let c=-1,f=i.length;++c=t)w===t?r[c]=_:(r[c]=_.slice(0,t),s.numBatches=Math.max(s.numBatches,i[c].unshift(_.slice(t,w-t))));else{let C=e[c];e[c]=C.clone({nullable:!0}),r[c]=(n=_?._changeLengthAndBackfillNullBitmap(t))!==null&&n!==void 0?n:yr({type:C.type,length:t,nullCount:t,nullBitmap:new Uint8Array(o)})}}return r}var MW,ba=class e{constructor(...t){var r,i;if(t.length===0)return this.batches=[],this.schema=new nn([]),this._offsets=[0],this;let s,n;t[0]instanceof nn&&(s=t.shift()),t.at(-1)instanceof Uint32Array&&(n=t.pop());let o=f=>{if(f){if(f instanceof ks)return[f];if(f instanceof e)return f.batches;if(f instanceof Di){if(f.type instanceof un)return[new ks(new nn(f.type.children),f)]}else{if(Array.isArray(f))return f.flatMap(_=>o(_));if(typeof f[Symbol.iterator]==\"function\")return[...f].flatMap(_=>o(_));if(typeof f==\"object\"){let _=Object.keys(f),w=_.map(N=>new wr([f[N]])),C=s??new nn(_.map((N,j)=>new si(String(N),w[j].type,w[j].nullable))),[,R]=t3(C,w);return R.length===0?[new ks(f)]:R}}}return[]},c=t.flatMap(f=>o(f));if(s=(i=s??((r=c[0])===null||r===void 0?void 0:r.schema))!==null&&i!==void 0?i:new nn([]),!(s instanceof nn))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");for(let f of c){if(!(f instanceof ks))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");if(!Tg(s,f.schema))throw new TypeError(\"Table and inner RecordBatch schemas must be equivalent.\")}this.schema=s,this.batches=c,this._offsets=n??HP(this.data)}get data(){return this.batches.map(({data:t})=>t)}get numCols(){return this.schema.fields.length}get numRows(){return this.data.reduce((t,r)=>t+r.length,0)}get nullCount(){return this._nullCount===-1&&(this._nullCount=WP(this.data)),this._nullCount}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}[Symbol.iterator](){return this.batches.length>0?uv.visit(new wr(this.data)):new Array(0)[Symbol.iterator]()}toArray(){return[...this]}toString(){return`[\n ${this.toArray().join(`,\n `)}\n]`}concat(...t){let r=this.schema,i=this.data.concat(t.flatMap(({data:s})=>s));return new e(r,i.map(s=>new ks(r,s)))}slice(t,r){let i=this.schema;[t,r]=Vw({length:this.numRows},t,r);let s=qP(this.data,this._offsets,t,r);return new e(i,s.map(n=>new ks(i,n)))}getChild(t){return this.getChildAt(this.schema.fields.findIndex(r=>r.name===t))}getChildAt(t){if(t>-1&&ti.children[t]);if(r.length===0){let{type:i}=this.schema.fields[t],s=yr({type:i,length:0,nullCount:0});r.push(s._changeLengthAndBackfillNullBitmap(this.numRows))}return new wr(r)}return null}setChild(t,r){var i;return this.setChildAt((i=this.schema.fields)===null||i===void 0?void 0:i.findIndex(s=>s.name===t),r)}setChildAt(t,r){let i=this.schema,s=[...this.batches];if(t>-1&&tthis.getChildAt(_));[n[t],c[t]]=[o,r],[i,s]=t3(i,c)}return new e(i,s)}select(t){let r=this.schema.fields.reduce((i,s,n)=>i.set(s.name,n),new Map);return this.selectAt(t.map(i=>r.get(i)).filter(i=>i>-1))}selectAt(t){let r=this.schema.selectAt(t),i=this.batches.map(s=>s.selectAt(t));return new e(r,i)}assign(t){let r=this.schema.fields,[i,s]=t.schema.fields.reduce((c,f,_)=>{let[w,C]=c,R=r.findIndex(N=>N.name===f.name);return~R?C[R]=_:w.push(_),c},[[],[]]),n=this.schema.assign(t.schema),o=[...r.map((c,f)=>[f,s[f]]).map(([c,f])=>f===void 0?this.getChildAt(c):t.getChildAt(f)),...i.map(c=>t.getChildAt(c))].filter(Boolean);return new e(...t3(n,o))}};MW=Symbol.toStringTag;ba[MW]=(e=>(e.schema=null,e.batches=[],e._offsets=new Uint32Array([0]),e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,e.isValid=cv(Ww),e.get=cv(co.getVisitFn(Rt.Struct)),e.set=ZP(xa.getVisitFn(Rt.Struct)),e.indexOf=YP(gg.getVisitFn(Rt.Struct)),\"Table\"))(ba.prototype);var PW,ks=class e{constructor(...t){switch(t.length){case 2:{if([this.schema]=t,!(this.schema instanceof nn))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");if([,this.data=yr({nullCount:0,type:new un(this.schema.fields),children:this.schema.fields.map(r=>yr({type:r.type,nullCount:0}))})]=t,!(this.data instanceof Di))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");[this.schema,this.data]=EW(this.schema,this.data.children);break}case 1:{let[r]=t,{fields:i,children:s,length:n}=Object.keys(r).reduce((f,_,w)=>(f.children[w]=r[_],f.length=Math.max(f.length,r[_].length),f.fields[w]=si.new({name:_,type:r[_].type,nullable:!0}),f),{length:0,fields:new Array,children:new Array}),o=new nn(i),c=yr({type:new un(i),length:n,children:s,nullCount:0});[this.schema,this.data]=EW(o,c.children,n);break}default:throw new TypeError(\"RecordBatch constructor expects an Object mapping names to child Data, or a [Schema, Data] pair.\")}}get dictionaries(){return this._dictionaries||(this._dictionaries=IW(this.schema.fields,this.data.children))}get numCols(){return this.schema.fields.length}get numRows(){return this.data.length}get nullCount(){return this.data.nullCount}isValid(t){return this.data.getValid(t)}get(t){return co.visit(this.data,t)}set(t,r){return xa.visit(this.data,t,r)}indexOf(t,r){return gg.visit(this.data,t,r)}[Symbol.iterator](){return uv.visit(new wr([this.data]))}toArray(){return[...this]}concat(...t){return new ba(this.schema,[this,...t])}slice(t,r){let[i]=new wr([this.data]).slice(t,r).data;return new e(this.schema,i)}getChild(t){var r;return this.getChildAt((r=this.schema.fields)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&ts.name===t),r)}setChildAt(t,r){let i=this.schema,s=this.data;if(t>-1&&tc.name===n);~o&&(s[o]=this.data.children[o])}return new e(r,yr({type:i,length:this.numRows,children:s}))}selectAt(t){let r=this.schema.selectAt(t),i=t.map(n=>this.data.children[n]).filter(Boolean),s=yr({type:new un(r.fields),length:this.numRows,children:i});return new e(r,s)}};PW=Symbol.toStringTag;ks[PW]=(e=>(e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,\"RecordBatch\"))(ks.prototype);function EW(e,t,r=t.reduce((i,s)=>Math.max(i,s.length),0)){var i;let s=[...e.fields],n=[...t],o=(r+63&-64)>>3;for(let[c,f]of e.fields.entries()){let _=t[c];(!_||_.length!==r)&&(s[c]=f.clone({nullable:!0}),n[c]=(i=_?._changeLengthAndBackfillNullBitmap(r))!==null&&i!==void 0?i:yr({type:f.type,length:r,nullCount:r,nullBitmap:new Uint8Array(o)}))}return[e.assign(s),yr({type:new un(s),length:r,children:n})]}function IW(e,t,r=new Map){var i,s;if(((i=e?.length)!==null&&i!==void 0?i:0)>0&&e?.length===t?.length)for(let n=-1,o=e.length;++nyr({type:s.type})),i=yr({type:new un(t.fields),nullCount:0,children:r});super(t,i)}};var sf=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsMessage(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMessage(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):en.V1}headerType(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):bi.NONE}header(t){let r=this.bb.__offset(this.bb_pos,8);return r?this.bb.__union(t,this.bb_pos+r):null}bodyLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb_pos+t):BigInt(\"0\")}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startMessage(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,en.V1)}static addHeaderType(t,r){t.addFieldInt8(1,r,bi.NONE)}static addHeader(t,r){t.addFieldOffset(2,r,0)}static addBodyLength(t,r){t.addFieldInt64(3,r,BigInt(\"0\"))}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endMessage(t){return t.endObject()}static finishMessageBuffer(t,r){t.finish(r)}static finishSizePrefixedMessageBuffer(t,r){t.finish(r,void 0,!0)}static createMessage(t,r,i,s,n,o){return e.startMessage(t),e.addVersion(t,r),e.addHeaderType(t,i),e.addHeader(t,s),e.addBodyLength(t,n),e.addCustomMetadata(t,o),e.endMessage(t)}};var SO=class extends Mr{visit(t,r){return t==null||r==null?void 0:super.visit(t,r)}visitNull(t,r){return Mw.startNull(r),Mw.endNull(r)}visitInt(t,r){return Xh.startInt(r),Xh.addBitWidth(r,t.bitWidth),Xh.addIsSigned(r,t.isSigned),Xh.endInt(r)}visitFloat(t,r){return sm.startFloatingPoint(r),sm.addPrecision(r,t.precision),sm.endFloatingPoint(r)}visitBinary(t,r){return xw.startBinary(r),xw.endBinary(r)}visitLargeBinary(t,r){return ww.startLargeBinary(r),ww.endLargeBinary(r)}visitBool(t,r){return bw.startBool(r),bw.endBool(r)}visitUtf8(t,r){return Pw.startUtf8(r),Pw.endUtf8(r)}visitLargeUtf8(t,r){return Sw.startLargeUtf8(r),Sw.endLargeUtf8(r)}visitDecimal(t,r){return td.startDecimal(r),td.addScale(r,t.scale),td.addPrecision(r,t.precision),td.addBitWidth(r,t.bitWidth),td.endDecimal(r)}visitDate(t,r){return em.startDate(r),em.addUnit(r,t.unit),em.endDate(r)}visitTime(t,r){return hp.startTime(r),hp.addUnit(r,t.unit),hp.addBitWidth(r,t.bitWidth),hp.endTime(r)}visitTimestamp(t,r){let i=t.timezone&&r.createString(t.timezone)||void 0;return fp.startTimestamp(r),fp.addUnit(r,t.unit),i!==void 0&&fp.addTimezone(r,i),fp.endTimestamp(r)}visitInterval(t,r){return om.startInterval(r),om.addUnit(r,t.unit),om.endInterval(r)}visitDuration(t,r){return rm.startDuration(r),rm.addUnit(r,t.unit),rm.endDuration(r)}visitList(t,r){return Tw.startList(r),Tw.endList(r)}visitStruct(t,r){return Ew.startStruct_(r),Ew.endStruct_(r)}visitUnion(t,r){Kh.startTypeIdsVector(r,t.typeIds.length);let i=Kh.createTypeIdsVector(r,t.typeIds);return Kh.startUnion(r),Kh.addMode(r,t.mode),Kh.addTypeIds(r,i),Kh.endUnion(r)}visitDictionary(t,r){let i=this.visit(t.indices,r);return Jf.startDictionaryEncoding(r),Jf.addId(r,BigInt(t.id)),Jf.addIsOrdered(r,t.isOrdered),i!==void 0&&Jf.addIndexType(r,i),Jf.endDictionaryEncoding(r)}visitFixedSizeBinary(t,r){return im.startFixedSizeBinary(r),im.addByteWidth(r,t.byteWidth),im.endFixedSizeBinary(r)}visitFixedSizeList(t,r){return nm.startFixedSizeList(r),nm.addListSize(r,t.listSize),nm.endFixedSizeList(r)}visitMap(t,r){return am.startMap(r),am.addKeysSorted(r,t.keysSorted),am.endMap(r)}},e3=new SO;function RW(e,t=new Map){return new nn(Sht(e,t),r3(e.metadata),t)}function TO(e){return new wa(e.count,OW(e.columns),BW(e.columns))}function DW(e){return new pc(TO(e.data),e.id,e.isDelta)}function Sht(e,t){return(e.fields||[]).filter(Boolean).map(r=>si.fromJSON(r,t))}function CW(e,t){return(e.children||[]).filter(Boolean).map(r=>si.fromJSON(r,t))}function OW(e){return(e||[]).reduce((t,r)=>[...t,new $u(r.count,Tht(r.VALIDITY)),...OW(r.children)],[])}function BW(e,t=[]){for(let r=-1,i=(e||[]).length;++rt+ +(r===0),0)}function FW(e,t){let r,i,s,n,o,c;return!t||!(n=e.dictionary)?(o=kW(e,CW(e,t)),s=new si(e.name,o,e.nullable,r3(e.metadata))):t.has(r=n.id)?(i=(i=n.indexType)?LW(i):new ef,c=new hc(t.get(r),i,r,n.isOrdered),s=new si(e.name,c,e.nullable,r3(e.metadata))):(i=(i=n.indexType)?LW(i):new ef,t.set(r,o=kW(e,CW(e,t))),c=new hc(o,i,r,n.isOrdered),s=new si(e.name,c,e.nullable,r3(e.metadata))),s||null}function r3(e=[]){return new Map(e.map(({key:t,value:r})=>[t,r]))}function LW(e){return new is(e.isSigned,e.bitWidth)}function kW(e,t){let r=e.type.name;switch(r){case\"NONE\":return new ea;case\"null\":return new ea;case\"binary\":return new Uu;case\"largebinary\":return new ed;case\"utf8\":return new Vu;case\"largeutf8\":return new rd;case\"bool\":return new oc;case\"list\":return new lc((t||[])[0]);case\"struct\":return new un(t||[]);case\"struct_\":return new un(t||[])}switch(r){case\"int\":{let i=e.type;return new is(i.isSigned,i.bitWidth)}case\"floatingpoint\":{let i=e.type;return new lo(qi[i.precision])}case\"decimal\":{let i=e.type;return new ju(i.scale,i.precision,i.bitWidth)}case\"date\":{let i=e.type;return new Gu(Xs[i.unit])}case\"time\":{let i=e.type;return new ac(pr[i.unit],i.bitWidth)}case\"timestamp\":{let i=e.type;return new Wu(pr[i.unit],i.timezone)}case\"interval\":{let i=e.type;return new Hu(Io[i.unit])}case\"duration\":{let i=e.type;return new qu(pr[i.unit])}case\"union\":{let i=e.type,[s,...n]=(i.mode+\"\").toLowerCase(),o=s.toUpperCase()+n.join(\"\");return new cc(Mn[o],i.typeIds||[],t||[])}case\"fixedsizebinary\":{let i=e.type;return new Zu(i.byteWidth)}case\"fixedsizelist\":{let i=e.type;return new Il(i.listSize,(t||[])[0])}case\"map\":{let i=e.type;return new uc((t||[])[0],i.keysSorted)}}throw new Error(`Unrecognized type: \"${r}\"`)}var Mht=dg,Eht=eu,Ac=class e{static fromJSON(t,r){let i=new e(0,en.V5,r);return i._createHeader=Pht(t,r),i}static decode(t){t=new Eht(Rr(t));let r=sf.getRootAsMessage(t),i=r.bodyLength(),s=r.version(),n=r.headerType(),o=new e(i,s,n);return o._createHeader=Iht(r,n),o}static encode(t){let r=new Mht,i=-1;return t.isSchema()?i=nn.encode(r,t.header()):t.isRecordBatch()?i=wa.encode(r,t.header()):t.isDictionaryBatch()&&(i=pc.encode(r,t.header())),sf.startMessage(r),sf.addVersion(r,en.V5),sf.addHeader(r,i),sf.addHeaderType(r,t.headerType),sf.addBodyLength(r,BigInt(t.bodyLength)),sf.finishMessageBuffer(r,sf.endMessage(r)),r.asUint8Array()}static from(t,r=0){if(t instanceof nn)return new e(0,en.V5,bi.Schema,t);if(t instanceof wa)return new e(r,en.V5,bi.RecordBatch,t);if(t instanceof pc)return new e(r,en.V5,bi.DictionaryBatch,t);throw new Error(`Unrecognized Message header: ${t}`)}get type(){return this.headerType}get version(){return this._version}get headerType(){return this._headerType}get bodyLength(){return this._bodyLength}header(){return this._createHeader()}isSchema(){return this.headerType===bi.Schema}isRecordBatch(){return this.headerType===bi.RecordBatch}isDictionaryBatch(){return this.headerType===bi.DictionaryBatch}constructor(t,r,i,s){this._version=r,this._headerType=i,this.body=new Uint8Array(0),s&&(this._createHeader=()=>s),this._bodyLength=ms(t)}},wa=class{get nodes(){return this._nodes}get length(){return this._length}get buffers(){return this._buffers}constructor(t,r,i){this._nodes=r,this._buffers=i,this._length=ms(t)}},pc=class{get id(){return this._id}get data(){return this._data}get isDelta(){return this._isDelta}get length(){return this.data.length}get nodes(){return this.data.nodes}get buffers(){return this.data.buffers}constructor(t,r,i=!1){this._data=t,this._isDelta=i,this._id=ms(r)}},dc=class{constructor(t,r){this.offset=ms(t),this.length=ms(r)}},$u=class{constructor(t,r){this.length=ms(t),this.nullCount=ms(r)}};function Pht(e,t){return()=>{switch(t){case bi.Schema:return nn.fromJSON(e);case bi.RecordBatch:return wa.fromJSON(e);case bi.DictionaryBatch:return pc.fromJSON(e)}throw new Error(`Unrecognized Message type: { name: ${bi[t]}, type: ${t} }`)}}function Iht(e,t){return()=>{switch(t){case bi.Schema:return nn.decode(e.header(new sc),new Map,e.version());case bi.RecordBatch:return wa.decode(e.header(new ru),e.version());case bi.DictionaryBatch:return pc.decode(e.header(new up),e.version())}throw new Error(`Unrecognized Message type: { name: ${bi[t]}, type: ${t} }`)}}si.encode=Uht;si.decode=zht;si.fromJSON=FW;nn.encode=Nht;nn.decode=Cht;nn.fromJSON=RW;wa.encode=Vht;wa.decode=Lht;wa.fromJSON=TO;pc.encode=jht;pc.decode=kht;pc.fromJSON=DW;$u.encode=Ght;$u.decode=Dht;dc.encode=Wht;dc.decode=Rht;function Cht(e,t=new Map,r=en.V5){let i=Fht(e,t);return new nn(i,i3(e),t,r)}function Lht(e,t=en.V5){if(e.compression()!==null)throw new Error(\"Record batch compression not implemented\");return new wa(e.length(),Oht(e),Bht(e,t))}function kht(e,t=en.V5){return new pc(wa.decode(e.data(),t),e.id(),e.isDelta())}function Rht(e){return new dc(e.offset(),e.length())}function Dht(e){return new $u(e.length(),e.nullCount())}function Oht(e){let t=[];for(let r,i=-1,s=-1,n=e.nodesLength();++isi.encode(e,n));sc.startFieldsVector(e,r.length);let i=sc.createFieldsVector(e,r),s=t.metadata&&t.metadata.size>0?sc.createCustomMetadataVector(e,[...t.metadata].map(([n,o])=>{let c=e.createString(`${n}`),f=e.createString(`${o}`);return Co.startKeyValue(e),Co.addKey(e,c),Co.addValue(e,f),Co.endKeyValue(e)})):-1;return sc.startSchema(e),sc.addFields(e,i),sc.addEndianness(e,Hht?tm.Little:tm.Big),s!==-1&&sc.addCustomMetadata(e,s),sc.endSchema(e)}function Uht(e,t){let r=-1,i=-1,s=-1,n=t.type,o=t.typeId;Ne.isDictionary(n)?(o=n.dictionary.typeId,s=e3.visit(n,e),i=e3.visit(n.dictionary,e)):i=e3.visit(n,e);let c=(n.children||[]).map(w=>si.encode(e,w)),f=rl.createChildrenVector(e,c),_=t.metadata&&t.metadata.size>0?rl.createCustomMetadataVector(e,[...t.metadata].map(([w,C])=>{let R=e.createString(`${w}`),N=e.createString(`${C}`);return Co.startKeyValue(e),Co.addKey(e,R),Co.addValue(e,N),Co.endKeyValue(e)})):-1;return t.name&&(r=e.createString(t.name)),rl.startField(e),rl.addType(e,i),rl.addTypeType(e,o),rl.addChildren(e,f),rl.addNullable(e,!!t.nullable),r!==-1&&rl.addName(e,r),s!==-1&&rl.addDictionary(e,s),_!==-1&&rl.addCustomMetadata(e,_),rl.endField(e)}function Vht(e,t){let r=t.nodes||[],i=t.buffers||[];ru.startNodesVector(e,r.length);for(let o of r.slice().reverse())$u.encode(e,o);let s=e.endVector();ru.startBuffersVector(e,i.length);for(let o of i.slice().reverse())dc.encode(e,o);let n=e.endVector();return ru.startRecordBatch(e),ru.addLength(e,BigInt(t.length)),ru.addNodes(e,s),ru.addBuffers(e,n),ru.endRecordBatch(e)}function jht(e,t){let r=wa.encode(e,t.data);return up.startDictionaryBatch(e),up.addId(e,BigInt(t.id)),up.addIsDelta(e,t.isDelta),up.addData(e,r),up.endDictionaryBatch(e)}function Ght(e,t){return tv.createFieldNode(e,BigInt(t.length),BigInt(t.nullCount))}function Wht(e,t){return Jy.createBuffer(e,BigInt(t.offset),BigInt(t.length))}var Hht=(()=>{let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]===256})();var EO=e=>`Expected ${bi[e]} Message in stream, but was null or length 0.`,PO=e=>`Header pointer of flatbuffer-encoded ${bi[e]} Message is null or length 0.`,VW=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,jW=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`,Ov=class{constructor(t){this.source=t instanceof sd?t:new sd(t)}[Symbol.iterator](){return this}next(){let t;return(t=this.readMetadataLength()).done?Nn:t.value===-1&&(t=this.readMetadataLength()).done?Nn:(t=this.readMetadata(t.value)).done?Nn:t}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(EO(t));return r.value}readMessageBody(t){if(t<=0)return new Uint8Array(0);let r=Rr(this.source.read(t));if(r.byteLength[...s,...n.VALIDITY&&[n.VALIDITY]||[],...n.TYPE_ID&&[n.TYPE_ID]||[],...n.OFFSET&&[n.OFFSET]||[],...n.DATA&&[n.DATA]||[],...r(n.children)],[])}}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(EO(t));return r.value}readSchema(){let t=bi.Schema,r=this.readMessage(t),i=r?.header();if(!r||!i)throw new Error(PO(t));return i}},n3=4,MO=\"ARROW1\",Bv=new Uint8Array(MO.length);for(let e=0;ethis):this}readRecordBatch(t){return this._impl.isFile()?this._impl.readRecordBatch(t):null}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}toDOMStream(){return va.toDOMStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this})}toNodeStream(){return va.toNodeStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this},{objectMode:!0})}static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}static from(t){return t instanceof e?t:hP(t)?Zht(t):dP(t)?$ht(t):Jc(t)?sr(this,void 0,void 0,function*(){return yield e.from(yield t)}):pP(t)||Aw(t)||mP(t)||zu(t)?Qht(new Qu(t)):Yht(new sd(t))}static readAll(t){return t instanceof e?t.isSync()?WW(t):HW(t):hP(t)||ArrayBuffer.isView(t)||Yh(t)||fP(t)?WW(t):HW(t)}},vp=class extends ou{constructor(t){super(t),this._impl=t}readAll(){return[...this]}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return Kc(this,arguments,function*(){yield ii(yield*Xy(Zh(this[Symbol.iterator]())))})}},Eg=class extends ou{constructor(t){super(t),this._impl=t}readAll(){var t,r,i,s;return sr(this,void 0,void 0,function*(){let n=new Array;try{for(var o=!0,c=Zh(this),f;f=yield c.next(),t=f.done,!t;o=!0){s=f.value,o=!1;let _=s;n.push(_)}}catch(_){r={error:_}}finally{try{!o&&!t&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}return n})}[Symbol.iterator](){throw new Error(\"AsyncRecordBatchStreamReader is not Iterable\")}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}},Pg=class extends vp{constructor(t){super(t),this._impl=t}},o3=class extends Eg{constructor(t){super(t),this._impl=t}},a3=class{get numDictionaries(){return this._dictionaryIndex}get numRecordBatches(){return this._recordBatchIndex}constructor(t=new Map){this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=t}isSync(){return!1}isAsync(){return!1}isFile(){return!1}isStream(){return!1}reset(t){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=t,this.dictionaries=new Map,this}_loadRecordBatch(t,r){let i=this._loadVectors(t,r,this.schema.fields),s=yr({type:new un(this.schema.fields),length:t.length,children:i});return new ks(this.schema,s)}_loadDictionaryBatch(t,r){let{id:i,isDelta:s}=t,{dictionaries:n,schema:o}=this,c=n.get(i);if(s||!c){let f=o.dictionaries.get(i),_=this._loadVectors(t.data,r,[f]);return(c&&s?c.concat(new wr(_)):new wr(_)).memoize()}return c.memoize()}_loadVectors(t,r,i){return new Qw(r,t.nodes,t.buffers,this.dictionaries,this.schema.metadataVersion).visitMany(i)}},zv=class extends a3{constructor(t,r){super(r),this._reader=hP(t)?new y2(this._handle=t):new Ov(this._handle=t)}isSync(){return!0}isStream(){return!0}[Symbol.iterator](){return this}cancel(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}open(t){return this.closed||(this.autoDestroy=qW(this,t),this.schema||(this.schema=this._reader.readSchema())||this.cancel()),this}throw(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(t):Nn}return(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(t):Nn}next(){if(this.closed)return Nn;let t,{_reader:r}=this;for(;t=this._readNextMessageAndValidate();)if(t.isSchema())this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),s=r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,s)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),s=r.readMessageBody(t.bodyLength),n=this._loadDictionaryBatch(i,s);this.dictionaries.set(i.id,n)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Mg(this.schema)}):this.return()}_readNextMessageAndValidate(t){return this._reader.readMessage(t)}},Nv=class extends a3{constructor(t,r){super(r),this._reader=new _2(this._handle=t)}isAsync(){return!0}isStream(){return!0}[Symbol.asyncIterator](){return this}cancel(){return sr(this,void 0,void 0,function*(){!this.closed&&(this.closed=!0)&&(yield this.reset()._reader.return(),this._reader=null,this.dictionaries=null)})}open(t){return sr(this,void 0,void 0,function*(){return this.closed||(this.autoDestroy=qW(this,t),this.schema||(this.schema=yield this._reader.readSchema())||(yield this.cancel())),this})}throw(t){return sr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.throw(t):Nn})}return(t){return sr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.return(t):Nn})}next(){return sr(this,void 0,void 0,function*(){if(this.closed)return Nn;let t,{_reader:r}=this;for(;t=yield this._readNextMessageAndValidate();)if(t.isSchema())yield this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),s=yield r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,s)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),s=yield r.readMessageBody(t.bodyLength),n=this._loadDictionaryBatch(i,s);this.dictionaries.set(i.id,n)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Mg(this.schema)}):yield this.return()})}_readNextMessageAndValidate(t){return sr(this,void 0,void 0,function*(){return yield this._reader.readMessage(t)})}},l3=class extends zv{get footer(){return this._footer}get numDictionaries(){return this._footer?this._footer.numDictionaries:0}get numRecordBatches(){return this._footer?this._footer.numRecordBatches:0}constructor(t,r){super(t instanceof qw?t:new qw(t),r)}isSync(){return!0}isFile(){return!0}open(t){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;for(let r of this._footer.dictionaryBatches())r&&this._readDictionaryBatch(this._dictionaryIndex++)}return super.open(t)}readRecordBatch(t){var r;if(this.closed)return null;this._footer||this.open();let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&this._handle.seek(i.offset)){let s=this._reader.readMessage(bi.RecordBatch);if(s?.isRecordBatch()){let n=s.header(),o=this._reader.readMessageBody(s.bodyLength);return this._loadRecordBatch(n,o)}}return null}_readDictionaryBatch(t){var r;let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&this._handle.seek(i.offset)){let s=this._reader.readMessage(bi.DictionaryBatch);if(s?.isDictionaryBatch()){let n=s.header(),o=this._reader.readMessageBody(s.bodyLength),c=this._loadDictionaryBatch(n,o);this.dictionaries.set(n.id,c)}}}_readFooter(){let{_handle:t}=this,r=t.size-IO,i=t.readInt32(r),s=t.readAt(r-i,i);return Ap.decode(s)}_readNextMessageAndValidate(t){var r;if(this._footer||this.open(),this._footer&&this._recordBatchIndexsuper.open}});return sr(this,void 0,void 0,function*(){if(!this.closed&&!this._footer){this.schema=(this._footer=yield this._readFooter()).schema;for(let i of this._footer.dictionaryBatches())i&&(yield this._readDictionaryBatch(this._dictionaryIndex++))}return yield r.open.call(this,t)})}readRecordBatch(t){var r;return sr(this,void 0,void 0,function*(){if(this.closed)return null;this._footer||(yield this.open());let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&(yield this._handle.seek(i.offset))){let s=yield this._reader.readMessage(bi.RecordBatch);if(s?.isRecordBatch()){let n=s.header(),o=yield this._reader.readMessageBody(s.bodyLength);return this._loadRecordBatch(n,o)}}return null})}_readDictionaryBatch(t){var r;return sr(this,void 0,void 0,function*(){let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&(yield this._handle.seek(i.offset))){let s=yield this._reader.readMessage(bi.DictionaryBatch);if(s?.isDictionaryBatch()){let n=s.header(),o=yield this._reader.readMessageBody(s.bodyLength),c=this._loadDictionaryBatch(n,o);this.dictionaries.set(n.id,c)}}})}_readFooter(){return sr(this,void 0,void 0,function*(){let{_handle:t}=this;t._pending&&(yield t._pending);let r=t.size-IO,i=yield t.readInt32(r),s=yield t.readAt(r-i,i);return Ap.decode(s)})}_readNextMessageAndValidate(t){return sr(this,void 0,void 0,function*(){if(this._footer||(yield this.open()),this._footer&&this._recordBatchIndex=4?s3(t)?new Pg(new l3(e.read())):new vp(new zv(e)):new vp(new zv(function*(){}()))}function Qht(e){return sr(this,void 0,void 0,function*(){let t=yield e.peek(Fv+7&-8);return t&&t.byteLength>=4?s3(t)?new Pg(new l3(yield e.read())):new Eg(new Nv(e)):new Eg(new Nv(function(){return Kc(this,arguments,function*(){})}()))})}function $ht(e){return sr(this,void 0,void 0,function*(){let{size:t}=yield e.stat(),r=new hm(e,t);return t>=GW&&s3(yield r.readAt(0,Fv+7&-8))?new o3(new CO(r)):new Eg(new Nv(r))})}var ns=class e extends Mr{static assemble(...t){let r=s=>s.flatMap(n=>Array.isArray(n)?r(n):n instanceof ks?n.data.children:n.data),i=new e;return i.visitMany(r(t)),i}constructor(){super(),this._byteLength=0,this._nodes=[],this._buffers=[],this._bufferRegions=[]}visit(t){if(t instanceof wr)return this.visitMany(t.data),this;let{type:r}=t;if(!Ne.isDictionary(r)){let{length:i}=t;if(i>2147483647)throw new RangeError(\"Cannot write arrays larger than 2^31 - 1 in length\");if(Ne.isUnion(r))this.nodes.push(new $u(i,0));else{let{nullCount:s}=t;Ne.isNull(r)||of.call(this,s<=0?new Uint8Array(0):Ag(t.offset,i,t.nullBitmap)),this.nodes.push(new $u(i,s))}}return super.visit(t)}visitNull(t){return this}visitDictionary(t){return this.visit(t.clone(t.type.indices))}get nodes(){return this._nodes}get buffers(){return this._buffers}get byteLength(){return this._byteLength}get bufferRegions(){return this._bufferRegions}};function of(e){let t=e.byteLength+7&-8;return this.buffers.push(e),this.bufferRegions.push(new dc(this._byteLength,t)),this._byteLength+=t,this}function Xht(e){var t;let{type:r,length:i,typeIds:s,valueOffsets:n}=e;if(of.call(this,s),r.mode===Mn.Sparse)return kO.call(this,e);if(r.mode===Mn.Dense){if(e.offset<=0)return of.call(this,n),kO.call(this,e);{let o=new Int32Array(i),c=Object.create(null),f=Object.create(null);for(let _,w,C=-1;++C{let C=r.typeIds[w],R=c[C],N=f[C];return _.slice(R,Math.min(i,N))}))}}return this}function Kht(e){let t;return e.nullCount>=e.length?of.call(this,new Uint8Array(0)):(t=e.values)instanceof Uint8Array?of.call(this,Ag(e.offset,e.length,t)):of.call(this,mg(e.values))}function xp(e){return of.call(this,e.values.subarray(0,e.length*e.stride))}function c3(e){let{length:t,values:r,valueOffsets:i}=e,s=ms(i[0]),n=ms(i[t]),o=Math.min(n-s,r.byteLength-s);return of.call(this,_P(-s,t+1,i)),of.call(this,r.subarray(s,s+o)),this}function RO(e){let{length:t,valueOffsets:r}=e;if(r){let{[0]:i,[t]:s}=r;return of.call(this,_P(-i,t+1,r)),this.visit(e.children[0].slice(i,s-i))}return this.visit(e.children[0])}function kO(e){return this.visitMany(e.type.children.map((t,r)=>e.children[r]).filter(Boolean))[0]}ns.prototype.visitBool=Kht;ns.prototype.visitInt=xp;ns.prototype.visitFloat=xp;ns.prototype.visitUtf8=c3;ns.prototype.visitLargeUtf8=c3;ns.prototype.visitBinary=c3;ns.prototype.visitLargeBinary=c3;ns.prototype.visitFixedSizeBinary=xp;ns.prototype.visitDate=xp;ns.prototype.visitTimestamp=xp;ns.prototype.visitTime=xp;ns.prototype.visitDecimal=xp;ns.prototype.visitList=RO;ns.prototype.visitStruct=kO;ns.prototype.visitUnion=Xht;ns.prototype.visitInterval=xp;ns.prototype.visitDuration=xp;ns.prototype.visitFixedSizeList=RO;ns.prototype.visitMap=RO;var Ig=class extends yg{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}constructor(t){super(),this._position=0,this._started=!1,this._sink=new nd,this._schema=null,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,Pl(t)||(t={autoDestroy:!0,writeLegacyIpcFormat:!1}),this._autoDestroy=typeof t.autoDestroy==\"boolean\"?t.autoDestroy:!0,this._writeLegacyIpcFormat=typeof t.writeLegacyIpcFormat==\"boolean\"?t.writeLegacyIpcFormat:!1}toString(t=!1){return this._sink.toString(t)}toUint8Array(t=!1){return this._sink.toUint8Array(t)}writeAll(t){return Jc(t)?t.then(r=>this.writeAll(r)):zu(t)?OO(this,t):DO(this,t)}get closed(){return this._sink.closed}[Symbol.asyncIterator](){return this._sink[Symbol.asyncIterator]()}toDOMStream(t){return this._sink.toDOMStream(t)}toNodeStream(t){return this._sink.toNodeStream(t)}close(){return this.reset()._sink.close()}abort(t){return this.reset()._sink.abort(t)}finish(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}reset(t=this._sink,r=null){return t===this._sink||t instanceof nd?this._sink=t:(this._sink=new nd,t&&s9(t)?this.toDOMStream({type:\"bytes\"}).pipeTo(t):t&&o9(t)&&this.toNodeStream({objectMode:!1}).pipe(t)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,(!r||!Tg(r,this._schema))&&(r==null?(this._position=0,this._schema=null):(this._started=!0,this._schema=r,this._writeSchema(r))),this}write(t){let r=null;if(this._sink){if(t==null)return this.finish()&&void 0;if(t instanceof ba&&!(r=t.schema))return this.finish()&&void 0;if(t instanceof ks&&!(r=t.schema))return this.finish()&&void 0}else throw new Error(\"RecordBatchWriter is closed\");if(r&&!Tg(r,this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,r)}t instanceof ks?t instanceof Mg||this._writeRecordBatch(t):t instanceof ba?this.writeAll(t.batches):Yh(t)&&this.writeAll(t)}_writeMessage(t,r=8){let i=r-1,s=Ac.encode(t),n=s.byteLength,o=this._writeLegacyIpcFormat?4:8,c=n+o+i&~i,f=c-n-o;return t.headerType===bi.RecordBatch?this._recordBatchBlocks.push(new mp(c,t.bodyLength,this._position)):t.headerType===bi.DictionaryBatch&&this._dictionaryBlocks.push(new mp(c,t.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(c-o)),n>0&&this._write(s),this._writePadding(f)}_write(t){if(this._started){let r=Rr(t);r&&r.byteLength>0&&(this._sink.write(r),this._position+=r.byteLength)}return this}_writeSchema(t){return this._writeMessage(Ac.from(t))}_writeFooter(t){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}_writeMagic(){return this._write(Bv)}_writePadding(t){return t>0?this._write(new Uint8Array(t)):this}_writeRecordBatch(t){let{byteLength:r,nodes:i,bufferRegions:s,buffers:n}=ns.assemble(t),o=new wa(t.numRows,i,s),c=Ac.from(o,r);return this._writeDictionaries(t)._writeMessage(c)._writeBodyBuffers(n)}_writeDictionaryBatch(t,r,i=!1){this._dictionaryDeltaOffsets.set(r,t.length+(this._dictionaryDeltaOffsets.get(r)||0));let{byteLength:s,nodes:n,bufferRegions:o,buffers:c}=ns.assemble(new wr([t])),f=new wa(t.length,n,o),_=new pc(f,r,i),w=Ac.from(_,s);return this._writeMessage(w)._writeBodyBuffers(c)}_writeBodyBuffers(t){let r,i,s;for(let n=-1,o=t.length;++n0&&(this._write(r),(s=(i+7&-8)-i)>0&&this._writePadding(s));return this}_writeDictionaries(t){for(let[r,i]of t.dictionaries){let s=this._dictionaryDeltaOffsets.get(r)||0;if(s===0||(i=i?.slice(s)).length>0)for(let n of i.data)this._writeDictionaryBatch(n,r,s>0),s+=n.length}return this}},v2=class e extends Ig{static writeAll(t,r){let i=new e(r);return Jc(t)?t.then(s=>i.writeAll(s)):zu(t)?OO(i,t):DO(i,t)}},x2=class e extends Ig{static writeAll(t){let r=new e;return Jc(t)?t.then(i=>r.writeAll(i)):zu(t)?OO(r,t):DO(r,t)}constructor(){super(),this._autoDestroy=!0}_writeSchema(t){return this._writeMagic()._writePadding(2)}_writeFooter(t){let r=Ap.encode(new Ap(t,en.V5,this._recordBatchBlocks,this._dictionaryBlocks));return super._writeFooter(t)._write(r)._write(Int32Array.of(r.byteLength))._writeMagic()}};function DO(e,t){let r=t;t instanceof ba&&(r=t.batches,e.reset(void 0,t.schema));for(let i of r)e.write(i);return e.finish()}function OO(e,t){var r,i,s,n,o,c,f;return sr(this,void 0,void 0,function*(){try{for(r=!0,i=Zh(t);s=yield i.next(),n=s.done,!n;r=!0){f=s.value,r=!1;let _=f;e.write(_)}}catch(_){o={error:_}}finally{try{!r&&!n&&(c=i.return)&&(yield c.call(i))}finally{if(o)throw o.error}}return e.finish()})}function ZW(e,t){if(zu(e))return tft(e,t);if(Yh(e))return Jht(e,t);throw new Error(\"toDOMStream() must be called with an Iterable or AsyncIterable\")}function Jht(e,t){let r=null,i=t?.type===\"bytes\"||!1,s=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){n(o,r||(r=e[Symbol.iterator]()))},pull(o){r?n(o,r):o.close()},cancel(){(r?.return&&r.return()||!0)&&(r=null)}}),Object.assign({highWaterMark:i?s:void 0},t));function n(o,c){let f,_=null,w=o.desiredSize||null;for(;!(_=c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(f=Rr(_.value))&&(w!=null&&i&&(w=w-f.byteLength+1),_.value=f),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()}}function tft(e,t){let r=null,i=t?.type===\"bytes\"||!1,s=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){return sr(this,void 0,void 0,function*(){yield n(o,r||(r=e[Symbol.asyncIterator]()))})},pull(o){return sr(this,void 0,void 0,function*(){r?yield n(o,r):o.close()})},cancel(){return sr(this,void 0,void 0,function*(){(r?.return&&(yield r.return())||!0)&&(r=null)})}}),Object.assign({highWaterMark:i?s:void 0},t));function n(o,c){return sr(this,void 0,void 0,function*(){let f,_=null,w=o.desiredSize||null;for(;!(_=yield c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(f=Rr(_.value))&&(w!=null&&i&&(w=w-f.byteLength+1),_.value=f),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()})}}function $W(e){return new BO(e)}var BO=class{constructor(t){this._numChunks=0,this._finished=!1,this._bufferedSize=0;let{[\"readableStrategy\"]:r,[\"writableStrategy\"]:i,[\"queueingStrategy\"]:s=\"count\"}=t,n=i9(t,[\"readableStrategy\",\"writableStrategy\",\"queueingStrategy\"]);this._controller=null,this._builder=bg(n),this._getSize=s!==\"bytes\"?YW:QW;let{[\"highWaterMark\"]:o=s===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},r),{[\"highWaterMark\"]:c=s===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},i);this.readable=new ReadableStream({cancel:()=>{this._builder.clear()},pull:f=>{this._maybeFlush(this._builder,this._controller=f)},start:f=>{this._maybeFlush(this._builder,this._controller=f)}},{highWaterMark:o,size:s!==\"bytes\"?YW:QW}),this.writable=new WritableStream({abort:()=>{this._builder.clear()},write:()=>{this._maybeFlush(this._builder,this._controller)},close:()=>{this._maybeFlush(this._builder.finish(),this._controller)}},{highWaterMark:c,size:f=>this._writeValueAndReturnChunkSize(f)})}_writeValueAndReturnChunkSize(t){let r=this._bufferedSize;return this._bufferedSize=this._getSize(this._builder.append(t)),this._bufferedSize-r}_maybeFlush(t,r){r!=null&&(this._bufferedSize>=r.desiredSize&&++this._numChunks&&this._enqueue(r,t.toVector()),t.finished&&((t.length>0||this._numChunks===0)&&++this._numChunks&&this._enqueue(r,t.toVector()),!this._finished&&(this._finished=!0)&&this._enqueue(r,null)))}_enqueue(t,r){this._bufferedSize=0,this._controller=null,r==null?t.close():t.enqueue(r)}},YW=e=>{var t;return(t=e?.length)!==null&&t!==void 0?t:0},QW=e=>{var t;return(t=e?.byteLength)!==null&&t!==void 0?t:0};function u3(e,t){let r=new nd,i=null,s=new ReadableStream({cancel(){return sr(this,void 0,void 0,function*(){yield r.close()})},start(c){return sr(this,void 0,void 0,function*(){yield o(c,i||(i=yield n()))})},pull(c){return sr(this,void 0,void 0,function*(){i?yield o(c,i):c.close()})}});return{writable:new WritableStream(r,Object.assign({highWaterMark:Math.pow(2,14)},e)),readable:s};function n(){return sr(this,void 0,void 0,function*(){return yield(yield ou.from(r)).open(t)})}function o(c,f){return sr(this,void 0,void 0,function*(){let _=c.desiredSize,w=null;for(;!(w=yield f.next()).done;)if(c.enqueue(w.value),_!=null&&--_<=0)return;c.close()})}}function h3(e,t){let r=new this(e),i=new Qu(r),s=new ReadableStream({cancel(){return sr(this,void 0,void 0,function*(){yield i.cancel()})},pull(o){return sr(this,void 0,void 0,function*(){yield n(o)})},start(o){return sr(this,void 0,void 0,function*(){yield n(o)})}},Object.assign({highWaterMark:Math.pow(2,14)},t));return{writable:new WritableStream(r,e),readable:s};function n(o){return sr(this,void 0,void 0,function*(){let c=null,f=o.desiredSize;for(;c=yield i.read(f||null);)if(o.enqueue(c),f!=null&&(f-=c.byteLength)<=0)return;o.close()})}}function b2(e){let t=ou.from(e);return Jc(t)?t.then(r=>b2(r)):t.isAsync()?t.readAll().then(r=>new ba(r)):new ba(t.readAll())}var bft=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ZD),yO),uO),YD),jD),cO),HD),{compareSchemas:Tg,compareFields:wW,compareTypes:SW});va.toDOMStream=ZW;Qn.throughDOM=$W;ou.throughDOM=u3;Pg.throughDOM=u3;vp.throughDOM=u3;Ig.throughDOM=h3;x2.throughDOM=h3;v2.throughDOM=h3;var wft=\"0.5.0\",Sft=`https://cdn.jsdelivr.net/npm/parquet-wasm@${wft}/esm/arrow2_bg.wasm`,FO=!1;async function XW(){FO||(await e9(Sft),FO=!0)}function Tft(e){if(!FO)throw new Error(\"wasm not ready\");console.time(\"readParquet\");let t=KG(new Uint8Array(e.buffer)).intoIPCStream(),r=b2(t);return console.timeEnd(\"readParquet\"),r}function w2(e){let t=[];for(let r of e){let i=Tft(r);i.batches.length!==1&&console.warn(\"Expected one batch\"),t.push(...i.batches)}return new ba(t)}var KW=ki(Ji(),1);function zO(e){return e instanceof Array&&e?.[0]instanceof DataView?e?.[0].byteLength>0?w2(e).getChildAt(0):null:e}var Cg=class{model;callbacks;updateStateCallback;constructor(t,r){this.model=t,this.model.on(\"change\",r),this.updateStateCallback=r,this.callbacks=new Map,this.callbacks.set(\"change\",r)}async loadSubModels(){}initRegularAttribute(t,r){this[r]=this.model.get(t),this.model.off(`change:${t}`);let i=()=>{this[r]=this.model.get(t)};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}initVectorizedAccessor(t,r){this[r]=zO(this.model.get(t)),this.model.off(`change:${t}`);let i=()=>{this[r]=zO(this.model.get(t))};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}finalize(){for(let[t,r]of Object.entries(this.callbacks))this.model.off(t,r)}};async function d3(e,t){let r=[];for(let i of t)r.push(e.get_model(i.slice(10)));return await Promise.all(r)}function ce(e){return e!=null}var Mft=`\n uniform bool brushing_enabled;\n uniform int brushing_target;\n uniform vec2 brushing_mousePos;\n uniform float brushing_radius;\n\n #ifdef NON_INSTANCED_MODEL\n attribute vec2 brushingTargets;\n #else\n attribute vec2 instanceBrushingTargets;\n #endif\n\n varying float brushing_isVisible;\n\n bool brushing_isPointInRange(vec2 position) {\n if (!brushing_enabled) {\n return true;\n }\n vec2 source_commonspace = project_position(position);\n vec2 target_commonspace = project_position(brushing_mousePos);\n float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);\n\n return distance <= brushing_radius;\n }\n\n bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n }\n\n void brushing_setVisible(bool visible) {\n brushing_isVisible = float(visible);\n }\n`,Eft=`\n uniform bool brushing_enabled;\n varying float brushing_isVisible;\n`,Pft={source:0,target:1,custom:2,source_target:3},Ift={\"vs:DECKGL_FILTER_GL_POSITION\":`\n vec2 brushingTarget;\n vec2 brushingSource;\n if (brushing_target == 3) {\n brushingTarget = geometry.worldPositionAlt.xy;\n brushingSource = geometry.worldPosition.xy;\n } else if (brushing_target == 0) {\n brushingTarget = geometry.worldPosition.xy;\n } else if (brushing_target == 1) {\n brushingTarget = geometry.worldPositionAlt.xy;\n } else {\n #ifdef NON_INSTANCED_MODEL\n brushingTarget = brushingTargets;\n #else\n brushingTarget = instanceBrushingTargets;\n #endif\n }\n bool visible;\n if (brushing_target == 3) {\n visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n } else {\n visible = brushing_isPointInRange(brushingTarget);\n }\n brushing_setVisible(visible);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (brushing_enabled && brushing_isVisible < 0.5) {\n discard;\n }\n `},JW={name:\"brushing\",dependencies:[Uh],vs:Mft,fs:Eft,inject:Ift,getUniforms:e=>{if(!e||!(\"viewport\"in e))return{};let{brushingEnabled:t=!0,brushingRadius:r=1e4,brushingTarget:i=\"source\",mousePosition:s,viewport:n}=e;return{brushing_enabled:!!(t&&s&&n.containsPixel(s)),brushing_radius:r,brushing_target:Pft[i]||0,brushing_mousePos:s?n.unproject([s.x-n.x,s.y-n.y]):[0,0]}}};var Cft={getBrushingTarget:{type:\"accessor\",value:[0,0]},brushingTarget:\"source\",brushingEnabled:!0,brushingRadius:1e4},mm=class extends Bu{getShaders(){return{modules:[JW]}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({brushingTargets:{size:2,accessor:\"getBrushingTarget\",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=()=>{var s;(s=this.getCurrentLayer())===null||s===void 0||s.setNeedsRedraw()},t.deck&&t.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}finalizeState(t,r){t.deck&&t.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}};G(mm,\"defaultProps\",Cft);G(mm,\"extensionName\",\"BrushingExtension\");var tH=`\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n`,eH=`\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n`;function rH(e){if(!e||!(\"extensions\"in e))return{};let{filterRange:t=[-1,1],filterEnabled:r=!0,filterTransformSize:i=!0,filterTransformColor:s=!0}=e,n=e.filterSoftRange||t;return{...Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:n[0],filter_softMax:n[1],filter_max:t[1]}:{filter_min:t.map(o=>o[0]),filter_softMin:n.map(o=>o[0]),filter_softMax:n.map(o=>o[1]),filter_max:t.map(o=>o[1])},filter_enabled:r,filter_useSoftMargin:!!e.filterSoftRange,filter_transformSize:r&&i,filter_transformColor:r&&s}}function Lft(e){if(!e||!(\"extensions\"in e))return{};let t=rH(e);if(Number.isFinite(t.filter_min)){let r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;let i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{let r=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((s,n)=>s-r[n]),t.filter_softMin=t.filter_softMin.map((s,n)=>s-r[n]),t.filter_min64High=r;let i=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((s,n)=>s-i[n]),t.filter_softMax=t.filter_softMax.map((s,n)=>s-i[n]),t.filter_max64High=i}return t}var iH={\"vs:#main-start\":`\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n `,\"vs:#main-end\":`\n if (dataFilter_value == 0.0) {\n gl_Position = vec4(0.);\n }\n `,\"vs:DECKGL_FILTER_SIZE\":`\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n `},nH={name:\"data-filter\",vs:tH,fs:eH,inject:iH,getUniforms:rH},sH={name:\"data-filter-fp64\",vs:tH,fs:eH,inject:iH,getUniforms:Lft};var kft=`#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n`,Rft=`#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n`;function oH(e){return!!(e.getExtension(\"EXT_float_blend\")&&(e.getExtension(\"EXT_color_buffer_float\")||e.getExtension(\"WEBGL_color_buffer_float\")))}function aH(e,t){return t?new yi(e,{width:1,height:1,attachments:{36064:new pi(e,{format:hr(e)?34836:6408,type:5126,mipmaps:!1})}}):new yi(e,{width:256,height:64,depth:!1})}function lH(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new Sn(e,{id:\"data-filter-aggregation-model\",vertexCount:1,isInstanced:!1,drawMode:0,vs:kft,fs:Rft,...t})}var cH={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var Oft={getFilterValue:{type:\"accessor\",value:0},onFilteredItemsChange:{type:\"function\",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},uH={1:\"float\",2:\"vec2\",3:\"vec3\",4:\"vec4\"},gm=class extends Bu{constructor({filterSize:t=1,fp64:r=!1,countItems:i=!1}={}){if(!uH[t])throw new Error(\"filterSize out of range\");super({filterSize:t,fp64:r,countItems:i})}getShaders(t){let{filterSize:r,fp64:i}=t.opts;return{modules:[i?sH:nH],defines:{DATAFILTER_TYPE:uH[r],DATAFILTER_DOUBLE:!!i}}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({filterValues:{size:r.opts.filterSize,type:r.opts.fp64?5130:5126,accessor:\"getFilterValue\",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});let{gl:s}=this.context;if(i&&r.opts.countItems){let n=oH(s);i.add({filterIndices:{size:n?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:(f,{index:_})=>{let w=f&&f.__source?f.__source.index:_;return n?(w+1)%255:[(w+1)%255,Math.floor(w/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let o=aH(s,n),c=lH(s,r.getShaders.call(this,r),n);this.setState({filterFBO:o,filterModel:c})}}updateState({props:t,oldProps:r}){if(this.state.filterModel){let s=this.getAttributeManager().attributes.filterValues.needsUpdate()||t.filterEnabled!==r.filterEnabled||t.filterRange!==r.filterRange||t.filterSoftRange!==r.filterSoftRange;s&&this.setState({filterNeedsUpdate:s})}}draw(t,r){let{filterFBO:i,filterModel:s,filterNeedsUpdate:n}=this.state,{onFilteredItemsChange:o}=this.props;if(n&&o&&s){let{attributes:{filterValues:c,filterIndices:f}}=this.getAttributeManager();s.setVertexCount(this.getNumInstances());let{gl:_}=this.context;Gf(_,{framebuffer:i,color:[0,0,0,0]}),s.updateModuleSettings(t.moduleParameters).setAttributes({...c.getShaderAttributes(),...f&&f.getShaderAttributes()}).draw({framebuffer:i,parameters:{...cH,viewport:[0,0,i.width,i.height]}});let w=Rh(i),C=0;for(let R=0;R 1000\n }\n\n if (collision_enabled) {\n vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0));\n vec2 collision_texCoords = collision_getCoords(collision_common_position);\n collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0);\n if (collision_fade < 0.0001) {\n // Position outside clip space bounds to discard\n position = vec4(0.0, 0.0, 2.0, 1.0);\n }\n }\n `,\"vs:DECKGL_FILTER_COLOR\":`\n color.a *= collision_fade;\n `},zft=(e,t)=>{if(!e||!(\"dummyCollisionMap\"in e))return{};let{collisionFBO:r,drawToCollisionMap:i,dummyCollisionMap:s}=e;return{collision_sort:!!i,collision_texture:!i&&r?r:s}},hH={name:\"collision\",dependencies:[Uh],vs:Bft,inject:Fft,getUniforms:zft};var S2=class extends rc{renderCollisionMap(t,r){let i=this.gl,s=1;return bn(i,{scissorTest:!0,scissor:[s,s,t.width-2*s,t.height-2*s],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({...r,target:t,pass:\"collision\"}))}getModuleParameters(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}}};var T2=class extends rc{constructor(t,r){super(t,r),G(this,\"maskMap\",void 0),G(this,\"fbo\",void 0);let{mapSize:i=2048}=r;this.maskMap=new pi(t,{width:i,height:i,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.fbo=new yi(t,{id:\"maskmap\",width:i,height:i,attachments:{36064:this.maskMap}})}render(t){let r=this.gl,i=[!1,!1,!1,!1];return i[t.channel]=!0,bn(r,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:i,depthTest:!1},()=>super.render({...t,target:this.fbo,pass:\"mask\"}))}shouldDrawLayer(t){return t.props.operation.includes(\"mask\")}delete(){this.fbo.delete(),this.maskMap.delete()}};function fH(e,t){let r=[1/0,1/0,-1/0,-1/0];for(let i of e){let s=i.getBounds();if(s){let n=i.projectPosition(s[0],{viewport:t,autoOffset:!1}),o=i.projectPosition(s[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],n[0]),r[1]=Math.min(r[1],n[1]),r[2]=Math.max(r[2],o[0]),r[3]=Math.max(r[3],o[1])}}return Number.isFinite(r[0])?r:null}var Nft=2048;function dH(e){let{bounds:t,viewport:r,border:i=0}=e,{isGeospatial:s}=r;if(t[2]<=t[0]||t[3]<=t[1])return null;let n=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),{width:o,height:c,zoom:f}=e;if(f===void 0){o=o-i*2,c=c-i*2;let _=Math.min(o/(t[2]-t[0]),c/(t[3]-t[1]));f=Math.min(Math.log2(_),20)}else if(!o||!c){let _=2**f;o=Math.round(Math.abs(t[2]-t[0])*_),c=Math.round(Math.abs(t[3]-t[1])*_);let w=Nft-i*2;if(o>w||c>w){let C=w/Math.max(o,c);o=Math.round(o*C),c=Math.round(c*C),f+=Math.log2(C)}}return s?new nc({id:r.id,x:i,y:i,width:o,height:c,longitude:n[0],latitude:n[1],zoom:f,orthographic:!0}):new Zy({id:r.id,x:i,y:i,width:o,height:c,target:n,zoom:f,flipY:!1})}function Uft(e,t){let r;if(t&&t.length===2){let[n,o]=t,c=e.getBounds({z:n}),f=e.getBounds({z:o});r=[Math.min(c[0],f[0]),Math.min(c[1],f[1]),Math.max(c[2],f[2]),Math.max(c[3],f[3])]}else r=e.getBounds();let i=e.projectPosition(r.slice(0,2)),s=e.projectPosition(r.slice(2,4));return[i[0],i[1],s[0],s[1]]}function pH(e,t,r){if(!e)return[0,0,1,1];let i=Uft(t,r),s=Vft(i);return e[2]-e[0]<=s[2]-s[0]&&e[3]-e[1]<=s[3]-s[1]?e:[Math.max(e[0],s[0]),Math.max(e[1],s[1]),Math.min(e[2],s[2]),Math.min(e[3],s[3])]}function Vft(e){let t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,s=(e[1]+e[3])/2;return[i-t,s-r,i+t,s+r]}var M2=class{constructor(){G(this,\"id\",\"mask-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",0),G(this,\"dummyMaskMap\",void 0),G(this,\"channels\",[]),G(this,\"masks\",null),G(this,\"maskPass\",void 0),G(this,\"maskMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{layers:r,layerFilter:i,viewports:s,onViewportActive:n,views:o,isPicking:c}){let f=!1;if(this.dummyMaskMap||(this.dummyMaskMap=new pi(t,{width:1,height:1})),c)return{didRender:f};let _=r.filter(N=>N.props.visible&&N.props.operation.includes(\"mask\"));if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:f};this.masks={},this.maskPass||(this.maskPass=new T2(t,{id:\"default-mask\"}),this.maskMap=this.maskPass.maskMap);let w=this._sortMaskChannels(_),C=s[0],R=!this.lastViewport||!this.lastViewport.equals(C);if(C.resolution!==void 0)return nr.warn(\"MaskExtension is not supported in GlobeView\")(),{didRender:f};for(let N in w){let j=this._renderChannel(w[N],{layerFilter:i,onViewportActive:n,views:o,viewport:C,viewportChanged:R});f||(f=j)}return{didRender:f}}_renderChannel(t,{layerFilter:r,onViewportActive:i,views:s,viewport:n,viewportChanged:o}){let c=!1,f=this.channels[t.index];if(!f)return c;let _=t===f||t.layers.length!==f.layers.length||t.layers.some((w,C)=>w!==f.layers[C]||w.props.transitions)||t.layerBounds.some((w,C)=>w!==f.layerBounds[C]);if(t.bounds=f.bounds,t.maskBounds=f.maskBounds,this.channels[t.index]=t,_||o){this.lastViewport=n;let w=fH(t.layers,n);if(t.bounds=w&&pH(w,n),_||!To(t.bounds,f.bounds)){let{maskPass:C,maskMap:R}=this,N=w&&dH({bounds:t.bounds,viewport:n,width:R.width,height:R.height,border:1});t.maskBounds=N?N.getBounds():[0,0,1,1],C.render({pass:\"mask\",channel:t.index,layers:t.layers,layerFilter:r,viewports:N?[N]:[],onViewportActive:i,views:s,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},c}_sortMaskChannels(t){let r={},i=0;for(let s of t){let{id:n}=s.root,o=r[n];if(!o){if(++i>4){nr.warn(\"Too many mask layers. The max supported is 4\")();continue}o={id:n,index:this.channels.findIndex(c=>c?.id===n),layers:[],layerBounds:[],coordinateOrigin:s.root.props.coordinateOrigin,coordinateSystem:s.root.props.coordinateSystem},r[n]=o}o.layers.push(s),o.layerBounds.push(s.getBounds())}for(let s=0;s<4;s++){let n=this.channels[s];(!n||!(n.id in r))&&(this.channels[s]=null)}for(let s in r){let n=r[s];n.index<0&&(n.index=this.channels.findIndex(o=>!o),this.channels[n.index]=n)}return r}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}};var NO=2,E2=class{constructor(){G(this,\"id\",\"collision-filter-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",1),G(this,\"channels\",{}),G(this,\"collisionFilterPass\",void 0),G(this,\"collisionFBOs\",{}),G(this,\"dummyCollisionMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{effects:r,layers:i,layerFilter:s,viewports:n,onViewportActive:o,views:c,isPicking:f,preRenderStats:_={}}){var w;if(this.dummyCollisionMap||(this.dummyCollisionMap=new pi(t,{width:1,height:1})),f)return;let C=i.filter(({props:{visible:$,collisionEnabled:K}})=>$&&K);if(C.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new S2(t,{id:\"default-collision-filter\"}));let R=r?.filter($=>$.constructor===M2),N=(w=_[\"mask-effect\"])===null||w===void 0?void 0:w.didRender,j=this._groupByCollisionGroup(t,C),Y=n[0],rt=!this.lastViewport||!this.lastViewport.equals(Y)||N;for(let $ in j){let K=this.collisionFBOs[$],tt=j[$];K.resize({width:t.canvas.width/NO,height:t.canvas.height/NO}),this._render(tt,{effects:R,layerFilter:s,onViewportActive:o,views:c,viewport:Y,viewportChanged:rt})}}_render(t,{effects:r,layerFilter:i,onViewportActive:s,views:n,viewport:o,viewportChanged:c}){let{collisionGroup:f}=t,_=this.channels[f];if(!_)return;let w=c||t===_||!ao(_.layers,t.layers,1)||t.layerBounds.some((C,R)=>!To(C,_.layerBounds[R]))||t.allLayersLoaded!==_.allLayersLoaded||t.layers.some(C=>C.props.transitions);if(this.channels[f]=t,w){this.lastViewport=o;let C=this.collisionFBOs[f];this.collisionFilterPass.renderCollisionMap(C,{pass:\"collision-filter\",isPicking:!0,layers:t.layers,effects:r,layerFilter:i,viewports:o?[o]:[],onViewportActive:s,views:n,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:Sl(C.gl)/NO}})}}_groupByCollisionGroup(t,r){let i={};for(let s of r){let{collisionGroup:n}=s.props,o=i[n];o||(o={collisionGroup:n,layers:[],layerBounds:[],allLayersLoaded:!0},i[n]=o),o.layers.push(s),o.layerBounds.push(s.getBounds()),s.isLoaded||(o.allLayersLoaded=!1)}for(let s of Object.keys(i))this.collisionFBOs[s]||this.createFBO(t,s),this.channels[s]||(this.channels[s]=i[s]);for(let s of Object.keys(this.collisionFBOs))i[s]||this.destroyFBO(s);return i}getModuleParameters(t){let{collisionGroup:r}=t.props,{collisionFBOs:i,dummyCollisionMap:s}=this;return{collisionFBO:i[r],dummyCollisionMap:s}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let t of Object.keys(this.collisionFBOs))this.destroyFBO(t);this.collisionFBOs={},this.lastViewport=void 0}createFBO(t,r){let{width:i,height:s}=t.canvas,n=new pi(t,{width:i,height:s,parameters:{10241:9728,10240:9728,10242:33071,10243:33071}}),o=new tl(t,{format:33189,width:i,height:s});this.collisionFBOs[r]=new yi(t,{id:\"Collision-\".concat(r),width:i,height:s,attachments:{36064:n,36096:o}})}destroyFBO(t){let r=this.collisionFBOs[t];for(let i of Object.values(r.attachments))i.delete();r.delete(),delete this.collisionFBOs[t]}};var jft={getCollisionPriority:{type:\"accessor\",value:0},collisionEnabled:!0,collisionGroup:{type:\"string\",value:\"default\"},collisionTestProps:{}},_m=class extends Bu{getShaders(){return{modules:[hH]}}draw({uniforms:t,context:r,moduleParameters:i}){let{collisionEnabled:s}=this.props,{collisionFBO:n,drawToCollisionMap:o}=i,c=s&&!!n;t.collision_enabled=c,o&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(t,r){var i;if(this.getAttributeManager()===null)return;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new E2),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:\"getCollisionPriority\",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}};G(_m,\"defaultProps\",jft);G(_m,\"extensionName\",\"CollisionFilterExtension\");var Uv=class extends Cg{static extensionType;constructor(t,r){super(t,r)}},P2=class extends Uv{static extensionType=\"brushing\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new mm,r.initRegularAttribute(\"brushing_enabled\",\"brushingEnabled\"),r.initRegularAttribute(\"brushing_target\",\"brushingTarget\"),r.initRegularAttribute(\"brushing_radius\",\"brushingRadius\"),r.initVectorizedAccessor(\"get_brushing_target\",\"getBrushingTarget\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"brushingEnabled\",\"brushingTarget\",\"brushingRadius\",\"getBrushingTarget\"]}},I2=class extends Uv{static extensionType=\"collision-filter\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new _m,r.initRegularAttribute(\"collision_enabled\",\"collisionEnabled\"),r.initRegularAttribute(\"collision_group\",\"collisionGroup\"),r.initRegularAttribute(\"collision_test_props\",\"collisionTestProps\"),r.initVectorizedAccessor(\"get_collision_priority\",\"getCollisionPriority\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"collisionEnabled\",\"collisionGroup\",\"collisionTestProps\",\"getCollisionPriority\"]}},p3=class extends Uv{static extensionType=\"data-filter\";extensionInstance;constructor(t,r,i){super(t,i);let s=this.model.get(\"filter_size\");this.extensionInstance=new gm({filterSize:s}),r.initRegularAttribute(\"filter_enabled\",\"filterEnabled\"),r.initRegularAttribute(\"filter_range\",\"filterRange\"),r.initRegularAttribute(\"filter_soft_range\",\"filterSoftRange\"),r.initRegularAttribute(\"filter_transform_size\",\"filterTransformSize\"),r.initRegularAttribute(\"filter_transform_color\",\"filterTransformColor\"),r.initVectorizedAccessor(\"get_filter_value\",\"getFilterValue\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"filterEnabled\",\"filterRange\",\"filterSoftRange\",\"filterTransformSize\",\"filterTransformColor\",\"getFilterValue\"]}};async function UO(e,t,r){let i=e.get(\"_extension_type\"),s;switch(i){case P2.extensionType:s=new P2(e,t,r);break;case I2.extensionType:s=new I2(e,t,r);break;case p3.extensionType:s=new p3(e,t,r);break;default:throw new Error(`no known model for extension type ${i}`)}return await s.loadSubModels(),s}var Lg=class extends Cg{pickable;visible;opacity;autoHighlight;extensions;extensionLayerPropertyNames=[];constructor(t,r){super(t,r),this.initRegularAttribute(\"pickable\",\"pickable\"),this.initRegularAttribute(\"visible\",\"visible\"),this.initRegularAttribute(\"opacity\",\"opacity\"),this.initRegularAttribute(\"auto_highlight\",\"autoHighlight\"),this.extensions=[]}async loadSubModels(){await this.initLayerExtensions()}extensionInstances(){return this.extensions.map(t=>t.extensionInstance)}extensionProps(){let t={};for(let r of this.extensionLayerPropertyNames)ce(this[r])&&(t[r]=this[r]);return t}onClick(t){t.index&&(this.model.set(\"selected_index\",t.index),this.model.save_changes())}baseLayerProps(){return{extensions:this.extensionInstances(),...this.extensionProps(),id:this.model.model_id,pickable:this.pickable,visible:this.visible,opacity:this.opacity,autoHighlight:this.autoHighlight,onClick:this.onClick.bind(this)}}async initLayerExtensions(){let t=async()=>{let r=this.model.get(\"extensions\");if(!r){this.extensions=[];return}let i=await d3(this.model.widget_manager,r),s=[];for(let n of i){let o=await UO(n,this,this.updateStateCallback);s.push(o)}this.extensions=s};await t(),this.model.off(\"change:extensions\"),this.model.on(\"change:extensions\",t),this.callbacks.set(\"change:extensions\",t)}};var AH=`#define SHADER_NAME arc-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec4 instanceSourceColors;\nattribute vec4 instanceTargetColors;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\nattribute float instanceHeights;\nattribute float instanceTilts;\n\nuniform bool greatCircle;\nuniform bool useShortestPath;\nuniform float numSegments;\nuniform float opacity;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform int widthUnits;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\n\n float deltaZ = targetZ - sourceZ;\n float dh = distance * instanceHeights;\n if (dh == 0.0) {\n return sourceZ + deltaZ * ratio;\n }\n float unitZ = deltaZ / dh;\n float p2 = unitZ * unitZ + 1.0;\n float dir = step(deltaZ, 0.0);\n float z0 = mix(sourceZ, targetZ, dir);\n float r = mix(ratio, 1.0 - ratio, dir);\n return sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nfloat getSegmentRatio(float index) {\n return smoothstep(0.0, 1.0, index / (numSegments - 1.0));\n}\n\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\n float distance = length(source.xy - target.xy);\n float z = paraboloid(distance, source.z, target.z, segmentRatio);\n\n float tiltAngle = radians(instanceTilts);\n vec2 tiltDirection = normalize(target.xy - source.xy);\n vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\n\n return vec3(\n mix(source.xy, target.xy, segmentRatio) + tilt,\n z * cos(tiltAngle)\n );\n}\nfloat getAngularDist (vec2 source, vec2 target) {\n vec2 sourceRadians = radians(source);\n vec2 targetRadians = radians(target);\n vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\n vec2 shd_sq = sin_half_delta * sin_half_delta;\n\n float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\n return 2.0 * asin(sqrt(a));\n}\n\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\n vec2 lngLat;\n if(abs(angularDist - PI) < 0.001) {\n lngLat = (1.0 - t) * source.xy + t * target.xy;\n } else {\n float a = sin((1.0 - t) * angularDist);\n float b = sin(t * angularDist);\n vec3 p = source3D.yxz * a + target3D.yxz * b;\n lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n }\n\n float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\n\n return vec3(lngLat, z);\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n float segmentIndex = positions.x;\n float segmentRatio = getSegmentRatio(segmentIndex);\n float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\n float nextSegmentRatio = getSegmentRatio(min(numSegments - 1.0, segmentIndex + 1.0));\n float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\n isValid = 1.0;\n\n uv = vec2(segmentRatio, positions.y);\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n\n vec4 curr;\n vec4 next;\n vec3 source;\n vec3 target;\n\n if ((greatCircle || project_uProjectionMode == PROJECTION_MODE_GLOBE) && project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n source = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\n target = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\n float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\n\n vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\n vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\n vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\n\n if (abs(currPos.x - prevPos.x) > 180.0) {\n indexDir = -1.0;\n isValid = 0.0;\n } else if (abs(currPos.x - nextPos.x) > 180.0) {\n indexDir = 1.0;\n isValid = 0.0;\n }\n nextPos = indexDir < 0.0 ? prevPos : nextPos;\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n\n if (isValid == 0.0) {\n nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\n float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\n currPos = mix(currPos, nextPos, t);\n segmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n }\n\n vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\n vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\n \n curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\n next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n \n } else {\n vec3 source_world = instanceSourcePositions;\n vec3 target_world = instanceTargetPositions;\n if (useShortestPath) {\n source_world.x = mod(source_world.x + 180., 360.0) - 180.;\n target_world.x = mod(target_world.x + 180., 360.0) - 180.;\n\n float deltaLng = target_world.x - source_world.x;\n if (deltaLng > 180.) target_world.x -= 360.;\n if (deltaLng < -180.) source_world.x -= 360.;\n }\n source = project_position(source_world, instanceSourcePositions64Low);\n target = project_position(target_world, instanceTargetPositions64Low);\n float antiMeridianX = 0.0;\n\n if (useShortestPath) {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n antiMeridianX = -(project_uCoordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n }\n float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\n\n if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\n isValid = 0.0;\n indexDir = sign(segmentRatio - thresholdRatio);\n segmentRatio = thresholdRatio;\n }\n }\n\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n vec3 currPos = interpolateFlat(source, target, segmentRatio);\n vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\n\n if (useShortestPath) {\n if (nextPos.x < antiMeridianX) {\n currPos.x += TILE_SIZE;\n nextPos.x += TILE_SIZE;\n }\n }\n\n curr = project_common_position_to_clipspace(vec4(currPos, 1.0));\n next = project_common_position_to_clipspace(vec4(nextPos, 1.0));\n geometry.position = vec4(currPos, 1.0);\n }\n float widthPixels = clamp(\n project_size_to_pixel(instanceWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels\n );\n vec3 offset = vec3(\n getExtrusionOffset((next.xy - curr.xy) * indexDir, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n DECKGL_FILTER_GL_POSITION(curr, geometry);\n gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n\n vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\n vColor = vec4(color.rgb, color.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var mH=`#define SHADER_NAME arc-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nvoid main(void) {\n if (isValid == 0.0) {\n discard;\n }\n\n gl_FragColor = vColor;\n geometry.uv = uv;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var A3=[0,0,0,255],Gft={getSourcePosition:{type:\"accessor\",value:e=>e.sourcePosition},getTargetPosition:{type:\"accessor\",value:e=>e.targetPosition},getSourceColor:{type:\"accessor\",value:A3},getTargetColor:{type:\"accessor\",value:A3},getWidth:{type:\"accessor\",value:1},getHeight:{type:\"accessor\",value:1},getTilt:{type:\"accessor\",value:0},greatCircle:!1,numSegments:{type:\"number\",value:50,min:1},widthUnits:\"pixels\",widthScale:{type:\"number\",value:1,min:0},widthMinPixels:{type:\"number\",value:0,min:0},widthMaxPixels:{type:\"number\",value:Number.MAX_SAFE_INTEGER,min:0}},bp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"instanceSourcePositions\",\"instanceTargetPositions\"])}getShaders(){return super.getShaders({vs:AH,fs:mH,modules:[oo,ta]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getSourcePosition\"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getTargetPosition\"},instanceSourceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getSourceColor\",defaultValue:A3},instanceTargetColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getTargetColor\",defaultValue:A3},instanceWidths:{size:1,transition:!0,accessor:\"getWidth\",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:\"getHeight\",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:\"getTilt\",defaultValue:0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t;if(s.extensionsChanged||s.propsChanged&&r.numSegments!==i.numSegments){var n;let{gl:o}=this.context;(n=this.state.model)===null||n===void 0||n.delete(),this.state.model=this._getModel(o),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{widthUnits:r,widthScale:i,widthMinPixels:s,widthMaxPixels:n,greatCircle:o,wrapLongitude:c}=this.props;this.state.model.setUniforms(t).setUniforms({greatCircle:o,widthUnits:Ko[r],widthScale:i,widthMinPixels:s,widthMaxPixels:n,useShortestPath:c}).draw()}_getModel(t){let{id:r,numSegments:i}=this.props,s=[];for(let o=0;o0&&j>0&&(c[C++]=w-n,c[C++]=w-n-1,c[C++]=w-1,c[C++]=w-n,c[C++]=w-1,c[C++]=w),w++}}return{vertexCount:o,positions:_,indices:c,texCoords:f}}function qft(e){let t=new Float64Array(12);for(let r=0;r 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n`;var Yft=`\nvec3 packUVsIntoRGB(vec2 uv) {\n // Extract the top 8 bits. We want values to be truncated down so we can add a fraction\n vec2 uv8bit = floor(uv * 256.);\n\n // Calculate the normalized remainders of u and v parts that do not fit into 8 bits\n // Scale and clamp to 0-1 range\n vec2 uvFraction = fract(uv * 256.);\n vec2 uvFraction4bit = floor(uvFraction * 16.);\n\n // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates\n float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.;\n\n return vec3(uv8bit, fractions) / 255.;\n}\n`,_H=`\n#define SHADER_NAME bitmap-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D bitmapTexture;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\n`.concat(Yft,`\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n vec4 bitmapColor = texture2D(bitmapTexture, uv);\n\n gl_FragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n\n if (picking_uActive && !picking_uAttribute) {\n // Since instance information is not used, we can use picking color for pixel index\n gl_FragColor.rgb = packUVsIntoRGB(uv);\n }\n}\n`);var Qft={image:{type:\"image\",value:null,async:!0},bounds:{type:\"array\",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:Yr.DEFAULT,desaturate:{type:\"number\",min:0,max:1,value:0},transparentColor:{type:\"color\",value:[0,0,0,0]},tintColor:{type:\"color\",value:[255,255,255]},textureParameters:{type:\"object\",ignore:!0}},wp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:gH,fs:_H,modules:[oo,ta]})}initializeState(){let t=this.getAttributeManager();t.remove([\"instancePickingColors\"]);let r=!0;t.add({indices:{size:1,isIndexed:!0,update:i=>i.value=this.state.mesh.indices,noAlloc:r},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:i=>i.value=this.state.mesh.positions,noAlloc:r},texCoords:{size:2,update:i=>i.value=this.state.mesh.texCoords,noAlloc:r}})}updateState({props:t,oldProps:r,changeFlags:i}){let s=this.getAttributeManager();if(i.extensionsChanged){var n;let{gl:o}=this.context;(n=this.state.model)===null||n===void 0||n.delete(),this.state.model=this._getModel(o),s.invalidateAll()}if(t.bounds!==r.bounds){let o=this.state.mesh,c=this._createMesh();this.state.model.setVertexCount(c.vertexCount);for(let f in c)o&&o[f]!==c[f]&&s.invalidate(f);this.setState({mesh:c,...this._getCoordinateUniforms()})}else t._imageCoordinateSystem!==r._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(t){let{image:r}=this.props,i=t.info;if(!i.color||!r)return i.bitmap=null,i;let{width:s,height:n}=r;i.index=0;let o=$ft(i.color),c=[Math.floor(o[0]*s),Math.floor(o[1]*n)];return i.bitmap={size:{width:s,height:n},uv:o,pixel:c},i}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(t){super._updateAutoHighlight({...t,color:this.encodePickingColor(0)})}_createMesh(){let{bounds:t}=this.props,r=t;return yH(t)&&(r=[[t[0],t[1]],[t[0],t[3]],[t[2],t[3]],[t[2],t[1]]]),VO(r,this.context.viewport.resolution)}_getModel(t){return t?new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw(t){let{uniforms:r,moduleParameters:i}=t,{model:s,coordinateConversion:n,bounds:o,disablePicking:c}=this.state,{image:f,desaturate:_,transparentColor:w,tintColor:C}=this.props;i.pickingActive&&c||f&&s&&s.setUniforms(r).setUniforms({bitmapTexture:f,desaturate:_,transparentColor:w.map(R=>R/255),tintColor:C.slice(0,3).map(R=>R/255),coordinateConversion:n,bounds:o}).draw()}_getCoordinateUniforms(){let{LNGLAT:t,CARTESIAN:r,DEFAULT:i}=Yr,{_imageCoordinateSystem:s}=this.props;if(s!==i){let{bounds:n}=this.props;if(!yH(n))throw new Error(\"_imageCoordinateSystem only supports rectangular bounds\");let o=this.context.viewport.resolution?t:r;if(s=s===t?t:r,s===t&&o===r)return{coordinateConversion:-1,bounds:n};if(s===r&&o===t){let c=El([n[0],n[1]]),f=El([n[2],n[3]]);return{coordinateConversion:1,bounds:[c[0],c[1],f[0],f[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}};G(wp,\"layerName\",\"BitmapLayer\");G(wp,\"defaultProps\",Qft);function $ft(e){let[t,r,i]=e,s=(i&240)/256,n=(i&15)/16;return[(t+n)/256,(r+s)/256]}function yH(e){return Number.isFinite(e[0])}var vH=`#define SHADER_NAME icon-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute vec4 instanceIconFrames;\nattribute float instanceColorModes;\nattribute vec2 instanceOffsets;\nattribute vec2 instancePixelOffset;\n\nuniform float sizeScale;\nuniform vec2 iconsTextureDim;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform bool billboard;\nuniform int sizeUnits;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = angle * PI / 180.0;\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n\n vec2 iconSize = instanceIconFrames.zw;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), \n sizeMinPixels, sizeMaxPixels\n );\n float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y;\n vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\n pixelOffset += instancePixelOffset;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); \n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n\n vTextureCoords = mix(\n instanceIconFrames.xy,\n instanceIconFrames.xy + iconSize,\n (positions.xy + 1.0) / 2.0\n ) / iconsTextureDim;\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n vColorMode = instanceColorModes;\n}\n`;var xH=`#define SHADER_NAME icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float alphaCutoff;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec4 texColor = texture2D(iconsTexture, vTextureCoords);\n vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\n float a = texColor.a * opacity * vColor.a;\n\n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color, a);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var Xft=1024,Kft=4,bH=()=>{},wH={10241:9987,10240:9729,10242:33071,10243:33071};function Jft(e){return Math.pow(2,Math.ceil(Math.log2(e)))}function tdt(e,t,r,i){let s=Math.min(r/t.width,i/t.height),n=Math.floor(t.width*s),o=Math.floor(t.height*s);return s===1?{data:t,width:n,height:o}:(e.canvas.height=o,e.canvas.width=n,e.clearRect(0,0,n,o),e.drawImage(t,0,0,t.width,t.height,0,0,n,o),{data:e.canvas,width:n,height:o})}function C2(e){return e&&(e.id||e.url)}function edt(e,t,r,i){let s=e.width,n=e.height,o=new pi(e.gl,{width:t,height:r,parameters:i});return rE(e,o,{targetY:0,width:s,height:n}),e.delete(),o}function SH(e,t,r){for(let i=0;io&&(SH(r,c,s),i=0,s=n+s+t,n=0,c=[]),c.push({icon:_,xOffset:i}),i=i+R+t,n=Math.max(n,C)}}return c.length>0&&SH(r,c,s),{mapping:r,rowHeight:n,xOffset:i,yOffset:s,canvasWidth:o,canvasHeight:Jft(n+s+t)}}function idt(e,t,r){if(!e||!t)return null;r=r||{};let i={},{iterable:s,objectInfo:n}=Xc(e);for(let o of s){n.index++;let c=t(o,n),f=C2(c);if(!c)throw new Error(\"Icon is missing.\");if(!c.url)throw new Error(\"Icon url is missing.\");!i[f]&&(!r[f]||c.url!==r[f].url)&&(i[f]={...c,source:o,sourceIndex:n.index})}return i}var L2=class{constructor(t,{onUpdate:r=bH,onError:i=bH}){G(this,\"gl\",void 0),G(this,\"onUpdate\",void 0),G(this,\"onError\",void 0),G(this,\"_loadOptions\",null),G(this,\"_texture\",null),G(this,\"_externalTexture\",null),G(this,\"_mapping\",{}),G(this,\"_textureParameters\",null),G(this,\"_pendingCount\",0),G(this,\"_autoPacking\",!1),G(this,\"_xOffset\",0),G(this,\"_yOffset\",0),G(this,\"_rowHeight\",0),G(this,\"_buffer\",Kft),G(this,\"_canvasWidth\",Xft),G(this,\"_canvasHeight\",0),G(this,\"_canvas\",null),this.gl=t,this.onUpdate=r,this.onError=i}finalize(){var t;(t=this._texture)===null||t===void 0||t.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(t){let r=this._autoPacking?C2(t):t;return this._mapping[r]||{}}setProps({loadOptions:t,autoPacking:r,iconAtlas:i,iconMapping:s,textureParameters:n}){if(t&&(this._loadOptions=t),r!==void 0&&(this._autoPacking=r),s&&(this._mapping=s),i){var o;(o=this._texture)===null||o===void 0||o.delete(),this._texture=null,this._externalTexture=i}n&&(this._textureParameters=n)}get isLoaded(){return this._pendingCount===0}packIcons(t,r){if(!this._autoPacking||typeof document>\"u\")return;let i=Object.values(idt(t,r,this._mapping)||{});if(i.length>0){let{mapping:s,xOffset:n,yOffset:o,rowHeight:c,canvasHeight:f}=rdt({icons:i,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=c,this._mapping=s,this._xOffset=n,this._yOffset=o,this._canvasHeight=f,this._texture||(this._texture=new pi(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||wH})),this._texture.height!==this._canvasHeight&&(this._texture=edt(this._texture,this._canvasWidth,this._canvasHeight,this._textureParameters||wH)),this.onUpdate(),this._canvas=this._canvas||document.createElement(\"canvas\"),this._loadIcons(i)}}_loadIcons(t){let r=this._canvas.getContext(\"2d\",{willReadFrequently:!0});for(let i of t)this._pendingCount++,NA(i.url,this._loadOptions).then(s=>{let n=C2(i),o=this._mapping[n],{x:c,y:f,width:_,height:w}=o,{data:C,width:R,height:N}=tdt(r,s,_,w);this._texture.setSubImageData({data:C,x:c+(_-R)/2,y:f+(w-N)/2,width:R,height:N}),o.width=R,o.height=N,this._texture.generateMipmap(),this.onUpdate()}).catch(s=>{this.onError({url:i.url,source:i.source,sourceIndex:i.sourceIndex,loadOptions:this._loadOptions,error:s})}).finally(()=>{this._pendingCount--})}};var TH=[0,0,0,255],ndt={iconAtlas:{type:\"image\",value:null,async:!0},iconMapping:{type:\"object\",value:{},async:!0},sizeScale:{type:\"number\",value:1,min:0},billboard:!0,sizeUnits:\"pixels\",sizeMinPixels:{type:\"number\",min:0,value:0},sizeMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:\"number\",value:.05,min:0,max:1},getPosition:{type:\"accessor\",value:e=>e.position},getIcon:{type:\"accessor\",value:e=>e.icon},getColor:{type:\"accessor\",value:TH},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},onIconError:{type:\"function\",value:null,optional:!0},textureParameters:{type:\"object\",ignore:!0}},Sp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:vH,fs:xH,modules:[oo,ta]})}initializeState(){this.state={iconManager:new L2(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceOffsets:{size:2,accessor:\"getIcon\",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:\"getIcon\",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:\"getIcon\",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getColor\",defaultValue:TH},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instancePixelOffset:{size:2,transition:!0,accessor:\"getPixelOffset\"}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t,n=this.getAttributeManager(),{iconAtlas:o,iconMapping:c,data:f,getIcon:_,textureParameters:w}=r,{iconManager:C}=this.state,R=o||this.internalState.isAsyncPropLoading(\"iconAtlas\");if(C.setProps({loadOptions:r.loadOptions,autoPacking:!R,iconAtlas:o,iconMapping:R?c:null,textureParameters:w}),R?i.iconMapping!==r.iconMapping&&n.invalidate(\"getIcon\"):(s.dataChanged||s.updateTriggersChanged&&(s.updateTriggersChanged.all||s.updateTriggersChanged.getIcon))&&C.packIcons(f,_),s.extensionsChanged){var N;let{gl:j}=this.context;(N=this.state.model)===null||N===void 0||N.delete(),this.state.model=this._getModel(j),n.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(t){super.finalizeState(t),this.state.iconManager.finalize()}draw({uniforms:t}){let{sizeScale:r,sizeMinPixels:i,sizeMaxPixels:s,sizeUnits:n,billboard:o,alphaCutoff:c}=this.props,{iconManager:f}=this.state,_=f.getTexture();_&&this.state.model.setUniforms(t).setUniforms({iconsTexture:_,iconsTextureDim:[_.width,_.height],sizeUnits:Ko[n],sizeScale:r,sizeMinPixels:i,sizeMaxPixels:s,billboard:o,alphaCutoff:c}).draw()}_getModel(t){let r=[-1,-1,-1,1,1,1,1,-1];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(t){var r;let i=(r=this.getCurrentLayer())===null||r===void 0?void 0:r.props.onIconError;i?i(t):nr.error(t.error.message)()}getInstanceOffset(t){let{width:r,height:i,anchorX:s=r/2,anchorY:n=i/2}=this.state.iconManager.getIconMapping(t);return[r/2-s,i/2-n]}getInstanceColorMode(t){return this.state.iconManager.getIconMapping(t).mask?1:0}getInstanceIconFrame(t){let{x:r,y:i,width:s,height:n}=this.state.iconManager.getIconMapping(t);return[r,i,s,n]}};G(Sp,\"defaultProps\",ndt);G(Sp,\"layerName\",\"IconLayer\");var MH=`#define SHADER_NAME scatterplot-layer-vertex-shader\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceRadius;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform float radiusScale;\nuniform float radiusMinPixels;\nuniform float radiusMaxPixels;\nuniform float lineWidthScale;\nuniform float lineWidthMinPixels;\nuniform float lineWidthMaxPixels;\nuniform float stroked;\nuniform bool filled;\nuniform bool antialiasing;\nuniform bool billboard;\nuniform int radiusUnits;\nuniform int lineWidthUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n outerRadiusPixels = clamp(\n project_size_to_pixel(radiusScale * instanceRadius, radiusUnits),\n radiusMinPixels, radiusMaxPixels\n );\n float lineWidthPixels = clamp(\n project_size_to_pixel(lineWidthScale * instanceLineWidths, lineWidthUnits),\n lineWidthMinPixels, lineWidthMaxPixels\n );\n outerRadiusPixels += stroked * lineWidthPixels / 2.0;\n float edgePadding = antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0;\n unitPosition = edgePadding * positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n\n innerUnitRadius = 1.0 - stroked * lineWidthPixels / outerRadiusPixels;\n \n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = edgePadding * positions * outerRadiusPixels;\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var EH=`#define SHADER_NAME scatterplot-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool filled;\nuniform float stroked;\nuniform bool antialiasing;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\nvoid main(void) {\n geometry.uv = unitPosition;\n\n float distToCenter = length(unitPosition) * outerRadiusPixels;\n float inCircle = antialiasing ? \n smoothedge(distToCenter, outerRadiusPixels) : \n step(distToCenter, outerRadiusPixels);\n\n if (inCircle == 0.0) {\n discard;\n }\n\n if (stroked > 0.5) {\n float isLine = antialiasing ? \n smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\n step(innerUnitRadius * outerRadiusPixels, distToCenter);\n\n if (filled) {\n gl_FragColor = mix(vFillColor, vLineColor, isLine);\n } else {\n if (isLine == 0.0) {\n discard;\n }\n gl_FragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n }\n } else if (!filled) {\n discard;\n } else {\n gl_FragColor = vFillColor;\n }\n\n gl_FragColor.a *= inCircle;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var PH=[0,0,0,255],sdt={radiusUnits:\"meters\",radiusScale:{type:\"number\",min:0,value:1},radiusMinPixels:{type:\"number\",min:0,value:0},radiusMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:\"meters\",lineWidthScale:{type:\"number\",min:0,value:1},lineWidthMinPixels:{type:\"number\",min:0,value:0},lineWidthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:\"accessor\",value:e=>e.position},getRadius:{type:\"accessor\",value:1},getFillColor:{type:\"accessor\",value:PH},getLineColor:{type:\"accessor\",value:PH},getLineWidth:{type:\"accessor\",value:1},strokeWidth:{deprecatedFor:\"getLineWidth\"},outline:{deprecatedFor:\"stroked\"},getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},Xu=class extends Tn{getShaders(){return super.getShaders({vs:MH,fs:EH,modules:[oo,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceRadius:{size:1,transition:!0,accessor:\"getRadius\",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){if(super.updateState(t),t.changeFlags.extensionsChanged){var r;let{gl:i}=this.context;(r=this.state.model)===null||r===void 0||r.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{radiusUnits:r,radiusScale:i,radiusMinPixels:s,radiusMaxPixels:n,stroked:o,filled:c,billboard:f,antialiasing:_,lineWidthUnits:w,lineWidthScale:C,lineWidthMinPixels:R,lineWidthMaxPixels:N}=this.props;this.state.model.setUniforms(t).setUniforms({stroked:o?1:0,filled:c,billboard:f,antialiasing:_,radiusUnits:Ko[r],radiusScale:i,radiusMinPixels:s,radiusMaxPixels:n,lineWidthUnits:Ko[w],lineWidthScale:C,lineWidthMinPixels:R,lineWidthMaxPixels:N}).draw()}_getModel(t){let r=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(r)}}}),isInstanced:!0})}};G(Xu,\"defaultProps\",sdt);G(Xu,\"layerName\",\"ScatterplotLayer\");var Vv={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function kg(e,t,r={}){return IH(e,r)!==t?(odt(e,r),!0):!1}function IH(e,t={}){return Math.sign(m3(e,t))}function m3(e,t={}){let{start:r=0,end:i=e.length}=t,s=t.size||2,n=0;for(let o=r,c=i-s;o0){let s=!0;for(let n=0;nt[2]&&(r|=2),e[1]t[3]&&(r|=8),r}function D2(e,t){let{size:r=2,broken:i=!1,gridResolution:s=10,gridOffset:n=[0,0],startIndex:o=0,endIndex:c=e.length}=t||{},f=(c-o)/r,_=[],w=[_],C=ym(e,0,r,o),R,N,j=kH(C,s,n,[]),Y=[];mc(_,C);for(let rt=1;rtr&&(_=[],w.push(_),mc(_,C)),N=R2(R,j)}mc(_,R),k2(C,R)}return i?w:w[0]}var CH=0,ldt=1;function _3(e,t){for(let r=0;r=0?(mc(_,N)&&C.push(Y),ut+=j):C.length&&(C[C.length-1]=CH),k2(rt,N),$=j,K=Y;return[tt?{pos:f,types:t&&w}:null,ut?{pos:_,types:t&&C}:null]}function kH(e,t,r,i){let s=Math.floor((e[0]-r[0])/t)*t+r[0],n=Math.floor((e[1]-r[1])/t)*t+r[1];return i[0]=s,i[1]=n,i[2]=s+t,i[3]=n+t,i}function cdt(e,t,r){r&8?(e[1]+=t,e[3]+=t):r&4?(e[1]-=t,e[3]-=t):r&2?(e[0]+=t,e[2]+=t):r&1&&(e[0]-=t,e[2]-=t)}function udt(e,t,r,i){let s=1/0,n=-1/0,o=1/0,c=-1/0;for(let f=0;fn?_:n,o=wc?w:c}return i[0][0]=s,i[0][1]=o,i[1][0]=n,i[1][1]=c,i}var hdt=85.051129;function jO(e,t){let{size:r=2,startIndex:i=0,endIndex:s=e.length,normalize:n=!0}=t||{},o=e.slice(i,s);RH(o,r,0,s-i);let c=D2(o,{size:r,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(n)for(let f of c)DH(f,r);return c}function GO(e,t=null,r){let{size:i=2,normalize:s=!0,edgeTypes:n=!1}=r||{};t=t||[];let o=[],c=[],f=0,_=0;for(let C=0;C<=t.length;C++){let R=t[C]||e.length,N=_,j=fdt(e,i,f,R);for(let Y=j;Ys&&(s=c,n=o-1)}return n}function ddt(e,t,r,i,s=hdt){let n=e[r],o=e[i-t];if(Math.abs(n-o)>180){let c=ym(e,0,t,r);c[0]+=Math.round((o-n)/360)*360,mc(e,c),c[1]=Math.sign(c[1])*s,mc(e,c),c[0]=n,mc(e,c)}}function RH(e,t,r,i){let s=e[0],n;for(let o=r;o180||c<-180)&&(n-=Math.round(c/360)*360),e[o]=s=n}}function DH(e,t){let r,i=e.length/t;for(let n=0;n=i),s=s.flatMap(N=>[N[0],N[1]]),kg(s,Vv.COUNTER_CLOCKWISE));let n=r>0,o=i+1,c=n?o*3+1:i,f=Math.PI*2/i,_=new Uint16Array(n?i*3*2:0),w=new Float32Array(c*3),C=new Float32Array(c*3),R=0;if(n){for(let N=0;N 0.0 && instanceElevations >= 0.0);\n float dotRadius = radius * coverage * shouldRender;\n\n geometry.pickingColor = instancePickingColors;\n vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation);\n vec3 centroidPosition64Low = instancePositions64Low;\n vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + offset) * dotRadius;\n if (radiusUnits == UNIT_METERS) {\n offset = project_size(offset);\n }\n vec3 pos = vec3(offset, 0.);\n DECKGL_FILTER_SIZE(pos, geometry);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z));\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n if (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var BH=`#version 300 es\n#define SHADER_NAME column-layer-fragment-shader\n\nprecision highp float;\n\nuniform vec3 project_uCameraPosition;\nuniform bool extruded;\nuniform bool isStroke;\n\nout vec4 fragColor;\n\nin vec4 vColor;\n#ifdef FLAT_SHADING\nin vec4 position_commonspace;\n#endif\n\nvoid main(void) {\n fragColor = vColor;\n#ifdef FLAT_SHADING\n if (extruded && !isStroke && !picking_uActive) {\n vec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n fragColor.rgb = lighting_getLightColor(vColor.rgb, project_uCameraPosition, position_commonspace.xyz, normal);\n }\n#endif\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n`;var y3=[0,0,0,255],mdt={diskResolution:{type:\"number\",min:4,value:20},vertices:null,radius:{type:\"number\",min:0,value:1e3},angle:{type:\"number\",value:0},offset:{type:\"array\",value:[0,0]},coverage:{type:\"number\",min:0,max:1,value:1},elevationScale:{type:\"number\",min:0,value:1},radiusUnits:\"meters\",lineWidthUnits:\"meters\",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,getPosition:{type:\"accessor\",value:e=>e.position},getFillColor:{type:\"accessor\",value:y3},getLineColor:{type:\"accessor\",value:y3},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0,getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},af=class extends Tn{getShaders(){let{gl:t}=this.context,r=!hr(t),i={},s=this.props.flatShading&&H0(t,Pi.GLSL_DERIVATIVES);return s&&(i.FLAT_SHADING=1),super.getShaders({vs:OH,fs:BH,defines:i,transpileToGLSL100:r,modules:[oo,s?Cy:YA,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceElevations:{size:1,transition:!0,accessor:\"getElevation\"},instanceFillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getFillColor\",defaultValue:y3},instanceLineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getLineColor\",defaultValue:y3},instanceStrokeWidths:{size:1,accessor:\"getLineWidth\",transition:!0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t,n=s.extensionsChanged||r.flatShading!==i.flatShading;if(n){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),this.getAttributeManager().invalidateAll()}(n||r.diskResolution!==i.diskResolution||r.vertices!==i.vertices||(r.extruded||r.stroked)!==(i.extruded||i.stroked))&&this._updateGeometry(r)}getGeometry(t,r,i){let s=new B2({radius:1,height:i?2:0,vertices:r,nradial:t}),n=0;if(r)for(let o=0;o=t.length&&(r+=1-t.length/s);let n=r*s;return i[0]=t[n],i[1]=t[n+1],i[2]=s===3&&t[n+2]||0,i}isClosed(t){if(!this.normalize)return!!this.opts.loop;let{positionSize:r}=this,i=t.length-r;return t[0]===t[i]&&t[1]===t[i+1]&&(r===2||t[2]===t[i+2])}};function zH(e){return Array.isArray(e[0])}var NH=`#define SHADER_NAME path-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute float instanceTypes;\nattribute vec3 instanceStartPositions;\nattribute vec3 instanceEndPositions;\nattribute vec3 instanceLeftPositions;\nattribute vec3 instanceRightPositions;\nattribute vec3 instanceLeftPositions64Low;\nattribute vec3 instanceStartPositions64Low;\nattribute vec3 instanceEndPositions64Low;\nattribute vec3 instanceRightPositions64Low;\nattribute float instanceStrokeWidths;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float jointType;\nuniform float capType;\nuniform float miterLimit;\nuniform bool billboard;\nuniform int widthUnits;\n\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\n\nfloat flipIfTrue(bool flag) {\n return -(float(flag) * 2. - 1.);\n}\nvec3 getLineJoinOffset(\n vec3 prevPoint, vec3 currPoint, vec3 nextPoint,\n vec2 width\n) {\n bool isEnd = positions.x > 0.0;\n float sideOfPath = positions.y;\n float isJoint = float(sideOfPath == 0.0);\n\n vec3 deltaA3 = (currPoint - prevPoint);\n vec3 deltaB3 = (nextPoint - currPoint);\n\n mat3 rotationMatrix;\n bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix);\n if (needsRotation) {\n deltaA3 = deltaA3 * rotationMatrix;\n deltaB3 = deltaB3 * rotationMatrix;\n }\n vec2 deltaA = deltaA3.xy / width;\n vec2 deltaB = deltaB3.xy / width;\n\n float lenA = length(deltaA);\n float lenB = length(deltaB);\n\n vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\n vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\n\n vec2 perpA = vec2(-dirA.y, dirA.x);\n vec2 perpB = vec2(-dirB.y, dirB.x);\n vec2 tangent = dirA + dirB;\n tangent = length(tangent) > 0. ? normalize(tangent) : perpA;\n vec2 miterVec = vec2(-tangent.y, tangent.x);\n vec2 dir = isEnd ? dirA : dirB;\n vec2 perp = isEnd ? perpA : perpB;\n float L = isEnd ? lenA : lenB;\n float sinHalfA = abs(dot(miterVec, perp));\n float cosHalfA = abs(dot(dirA, miterVec));\n float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n float cornerPosition = sideOfPath * turnDirection;\n\n float miterSize = 1.0 / max(sinHalfA, EPSILON);\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n * (sideOfPath + isJoint * turnDirection);\n bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n bool isCap = isStartCap || isEndCap;\n if (isCap) {\n offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint);\n vJointType = capType;\n } else {\n vJointType = jointType;\n }\n vPathLength = L;\n vCornerOffset = offsetVec;\n vMiterLength = dot(vCornerOffset, miterVec * turnDirection);\n vMiterLength = isCap ? isJoint : vMiterLength;\n\n vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\n vPathPosition = vec2(\n dot(offsetFromStartOfPath, perp),\n dot(offsetFromStartOfPath, dir)\n );\n geometry.uv = vPathPosition;\n\n float isValid = step(instanceTypes, 3.5);\n vec3 offset = vec3(offsetVec * width * isValid, 0.0);\n\n if (needsRotation) {\n offset = rotationMatrix * offset;\n }\n return offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\n if (position.w < EPSILON) {\n float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n position = refPosition + (position - refPosition) * r;\n }\n}\n\nvoid main() {\n geometry.pickingColor = instancePickingColors;\n\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n\n float isEnd = positions.x;\n\n vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\n vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\n\n vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\n vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\n\n vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\n vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\n\n geometry.worldPosition = currPosition;\n vec2 widthPixels = vec2(clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0);\n vec3 width;\n\n if (billboard) {\n vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\n vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n\n clipLine(prevPositionScreen, currPositionScreen);\n clipLine(nextPositionScreen, currPositionScreen);\n clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n width = vec3(widthPixels, 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(width.xy)\n );\n\n DECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);\n gl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);\n } else {\n prevPosition = project_position(prevPosition, prevPosition64Low);\n currPosition = project_position(currPosition, currPosition64Low);\n nextPosition = project_position(nextPosition, nextPosition64Low);\n\n width = vec3(project_pixel_size(widthPixels), 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy);\n geometry.position = vec4(currPosition + offset, 1.0);\n gl_Position = project_common_position_to_clipspace(geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var UH=`#define SHADER_NAME path-layer-fragment-shader\n\nprecision highp float;\n\nuniform float miterLimit;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nvoid main(void) {\n geometry.uv = vPathPosition;\n\n if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n if (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\n discard;\n }\n if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) {\n discard;\n }\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var VH=[0,0,0,255],ydt={widthUnits:\"meters\",widthScale:{type:\"number\",min:0,value:1},widthMinPixels:{type:\"number\",min:0,value:0},widthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:\"number\",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:\"accessor\",value:e=>e.path},getColor:{type:\"accessor\",value:VH},getWidth:{type:\"accessor\",value:1},rounded:{deprecatedFor:[\"jointRounded\",\"capRounded\"]}},HO={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},gc=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:NH,fs:UH,modules:[oo,ta]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:HO,accessor:\"getPath\",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:\"getWidth\",transition:HO,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:\"getColor\",transition:HO,defaultValue:VH},instancePickingColors:{size:3,type:5121,accessor:(i,{index:s,target:n})=>this.encodePickingColor(i&&i.__source?i.__source.index:s,n)}}),this.setState({pathTesselator:new F2({fp64:this.use64bitPositions()})})}updateState(t){super.updateState(t);let{props:r,changeFlags:i}=t,s=this.getAttributeManager();if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)){let{pathTesselator:c}=this.state,f=r.data.attributes||{};c.updateGeometry({data:r.data,geometryBuffer:f.getPath,buffers:f,normalize:!r._pathType,loop:r._pathType===\"loop\",getGeometry:r.getPath,positionFormat:r.positionFormat,wrapLongitude:r.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:i.dataChanged}),this.setState({numInstances:c.instanceCount,startIndices:c.vertexStarts}),i.dataChanged||s.invalidateAll()}if(i.extensionsChanged){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),s.invalidateAll()}}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:s}=this.props;return s[0]&&s[0].__source&&(r.object=s.find(n=>n.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;i=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function zdt(e){let t=e[0],r=e[e.length-1];return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]}function Ndt(e,t,r,i){for(let s=0;sc/t));let n=Gv(e),o=i&&t===3;if(r){let c=n.length;n=n.slice();let f=[];for(let _=0;_f&&c>_||(f>_?(r||(n=n.slice()),$H(n,0,2,1)):(r||(n=n.slice()),$H(n,2,0,1)))}return(0,XH.default)(n,s,t)}var j2=class extends JA{constructor(t){let{fp64:r,IndexType:i=Uint32Array}=t;super({...t,attributes:{positions:{size:3,type:r?Float64Array:Float32Array},vertexValid:{type:Uint8ClampedArray,size:1},indices:{type:i,size:1}}})}get(t){let{attributes:r}=this;return t===\"indices\"?r.indices&&r.indices.subarray(0,this.vertexCount):r[t]}updateGeometry(t){super.updateGeometry(t);let r=this.buffers.indices;if(r)this.vertexCount=(r.value||r).length;else if(this.data&&!this.getGeometry)throw new Error(\"missing indices buffer\")}normalizeGeometry(t){if(this.normalize){let r=T3(t,this.positionSize);return this.opts.resolution?O2(Gv(r),V2(r),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?GO(Gv(r),V2(r),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):r}return t}getGeometrySize(t){if(tq(t)){let r=0;for(let i of t)r+=this.getGeometrySize(i);return r}return Gv(t).length/this.positionSize}getGeometryFromBuffer(t){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(t):null}updateGeometryAttributes(t,r){if(t&&tq(t))for(let i of t){let s=this.getGeometrySize(i);r.geometrySize=s,this.updateGeometryAttributes(i,r),r.vertexStart+=s,r.indexStart=this.indexStarts[r.geometryIndex+1]}else this._updateIndices(t,r),this._updatePositions(t,r),this._updateVertexValid(t,r)}_updateIndices(t,{geometryIndex:r,vertexStart:i,indexStart:s}){let{attributes:n,indexStarts:o,typedArrayManager:c}=this,f=n.indices;if(!f||!t)return;let _=s,w=KH(t,this.positionSize,this.opts.preproject,this.opts.full3d);f=c.allocate(f,s+w.length,{copy:!0});for(let C=0;C2?o[f*n+2]:0;s[c*3]=_,s[c*3+1]=w,s[c*3+2]=C}}_updateVertexValid(t,{vertexStart:r,geometrySize:i}){let{positionSize:s}=this,n=this.attributes.vertexValid,o=t&&V2(t);if(t&&t.edgeTypes?n.set(t.edgeTypes,r):n.fill(1,r,r+i),o)for(let c=0;c0&&!Number.isFinite(e[0])}var M3=`\nattribute vec2 vertexPositions;\nattribute float vertexValid;\n\nuniform bool extruded;\nuniform bool isWireframe;\nuniform float elevationScale;\nuniform float opacity;\n\nvarying vec4 vColor;\n\nstruct PolygonProps {\n vec4 fillColors;\n vec4 lineColors;\n vec3 positions;\n vec3 nextPositions;\n vec3 pickingColors;\n vec3 positions64Low;\n vec3 nextPositions64Low;\n float elevations;\n};\n\nvec3 project_offset_normal(vec3 vector) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n return normalize(vector * project_uCommonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nvoid calculatePosition(PolygonProps props) {\n#ifdef IS_SIDE_VERTEX\n if(vertexValid < 0.5){\n gl_Position = vec4(0.);\n return;\n }\n#endif\n\n vec3 pos;\n vec3 pos64Low;\n vec3 normal;\n vec4 colors = isWireframe ? props.lineColors : props.fillColors;\n\n geometry.worldPosition = props.positions;\n geometry.worldPositionAlt = props.nextPositions;\n geometry.pickingColor = props.pickingColors;\n\n#ifdef IS_SIDE_VERTEX\n pos = mix(props.positions, props.nextPositions, vertexPositions.x);\n pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x);\n#else\n pos = props.positions;\n pos64Low = props.positions64Low;\n#endif\n\n if (extruded) {\n pos.z += props.elevations * vertexPositions.y * elevationScale;\n }\n gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n if (extruded) {\n #ifdef IS_SIDE_VERTEX\n normal = vec3(\n props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y),\n props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x),\n 0.0);\n normal = project_offset_normal(normal);\n #else\n normal = project_normal(vec3(0.0, 0.0, 1.0));\n #endif\n geometry.normal = normal;\n vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal);\n vColor = vec4(lightColor, colors.a * opacity);\n } else {\n vColor = vec4(colors.rgb, colors.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var eq=`#define SHADER_NAME solid-polygon-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float elevations;\nattribute vec4 fillColors;\nattribute vec4 lineColors;\nattribute vec3 pickingColors;\n\n`.concat(M3,`\n\nvoid main(void) {\n PolygonProps props;\n\n props.positions = positions;\n props.positions64Low = positions64Low;\n props.elevations = elevations;\n props.fillColors = fillColors;\n props.lineColors = lineColors;\n props.pickingColors = pickingColors;\n\n calculatePosition(props);\n}\n`);var rq=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\n\n\nattribute vec3 instancePositions;\nattribute vec3 nextPositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 nextPositions64Low;\nattribute float instanceElevations;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\n`.concat(M3,`\n\nvoid main(void) {\n PolygonProps props;\n\n #if RING_WINDING_ORDER_CW == 1\n props.positions = instancePositions;\n props.positions64Low = instancePositions64Low;\n props.nextPositions = nextPositions;\n props.nextPositions64Low = nextPositions64Low;\n #else\n props.positions = nextPositions;\n props.positions64Low = nextPositions64Low;\n props.nextPositions = instancePositions;\n props.nextPositions64Low = instancePositions64Low;\n #endif\n props.elevations = instanceElevations;\n props.fillColors = instanceFillColors;\n props.lineColors = instanceLineColors;\n props.pickingColors = instancePickingColors;\n\n calculatePosition(props);\n}\n`);var iq=`#define SHADER_NAME solid-polygon-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var P3=[0,0,0,255],Udt={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:\"CW\",_full3d:!1,elevationScale:{type:\"number\",min:0,value:1},getPolygon:{type:\"accessor\",value:e=>e.polygon},getElevation:{type:\"accessor\",value:1e3},getFillColor:{type:\"accessor\",value:P3},getLineColor:{type:\"accessor\",value:P3},material:!0},E3={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},_c=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(t){return super.getShaders({vs:t===\"top\"?eq:rq,fs:iq,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder===\"CCW\"?0:1},modules:[oo,YA,ta]})}get wrapLongitude(){return!1}initializeState(){let{gl:t,viewport:r}=this.context,{coordinateSystem:i}=this.props,{_full3d:s}=this.props;r.isGeospatial&&i===Yr.DEFAULT&&(i=Yr.LNGLAT);let n;i===Yr.LNGLAT&&(s?n=r.projectPosition.bind(r):n=r.projectFlat.bind(r)),this.setState({numInstances:0,polygonTesselator:new j2({preproject:n,fp64:this.use64bitPositions(),IndexType:!t||Dh(t,Pi.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});let o=this.getAttributeManager(),c=!0;o.remove([\"instancePickingColors\"]),o.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:c},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:E3,accessor:\"getPolygon\",update:this.calculatePositions,noAlloc:c,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:c},elevations:{size:1,transition:E3,accessor:\"getElevation\",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:E3,accessor:\"getFillColor\",defaultValue:P3,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:E3,accessor:\"getLineColor\",defaultValue:P3,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(f,{index:_,target:w})=>this.encodePickingColor(f&&f.__source?f.__source.index:_,w),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:s}=this.props;return s[0]&&s[0].__source&&(r.object=s.find(n=>n.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;if.delete()),this.setState(this._getModels(this.context.gl)),n.invalidateAll()}}updateGeometry({props:t,oldProps:r,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){let{polygonTesselator:n}=this.state,o=t.data.attributes||{};n.updateGeometry({data:t.data,normalize:t._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:t.getPolygon,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged,full3d:t._full3d}),this.setState({numInstances:n.instanceCount,startIndices:n.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(t){let{id:r,filled:i,extruded:s}=this.props,n,o;if(i){let c=this.getShaders(\"top\");c.defines.NON_INSTANCED_MODEL=1,n=new Sn(t,{...c,id:\"\".concat(r,\"-top\"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return s&&(o=new Sn(t,{...this.getShaders(\"side\"),id:\"\".concat(r,\"-side\"),geometry:new As({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),o.userData.excludeAttributes={indices:!0}),{models:[o,n].filter(Boolean),topModel:n,sideModel:o}}calculateIndices(t){let{polygonTesselator:r}=this.state;t.startIndices=r.indexStarts,t.value=r.get(\"indices\")}calculatePositions(t){let{polygonTesselator:r}=this.state;t.startIndices=r.vertexStarts,t.value=r.get(\"positions\")}calculateVertexValid(t){t.value=this.state.polygonTesselator.get(\"vertexValid\")}};G(_c,\"defaultProps\",Udt);G(_c,\"layerName\",\"SolidPolygonLayer\");function I3({data:e,getIndex:t,dataRange:r,replace:i}){let{startRow:s=0,endRow:n=1/0}=r,o=e.length,c=o,f=o;for(let R=0;RR&&N>=s&&(c=R),N>=n){f=R;break}}let _=c,C=f-c!==i.length?e.slice(f):void 0;for(let R=0;Re.polygon},getFillColor:{type:\"accessor\",value:Vdt},getLineColor:{type:\"accessor\",value:nq},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0},lf=class extends tn{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&nr.removed(\"getLineDashArray\",\"PathStyleExtension\")()}updateState({changeFlags:t}){let r=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getPolygon);if(r&&Array.isArray(t.dataChanged)){let i=this.state.paths.slice(),s=t.dataChanged.map(n=>I3({data:i,getIndex:o=>o.__source.index,dataRange:n,replace:this._getPaths(n)}));this.setState({paths:i,pathsDiff:s})}else r&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(t={}){let{data:r,getPolygon:i,positionFormat:s,_normalize:n}=this.props,o=[],c=s===\"XY\"?2:3,{startRow:f,endRow:_}=t,{iterable:w,objectInfo:C}=Xc(r,f,_);for(let R of w){C.index++;let N=i(R,C);n&&(N=T3(N,c));let{holeIndices:j}=N,Y=N.positions||N;if(j)for(let rt=0;rt<=j.length;rt++){let $=Y.slice(j[rt-1]||0,j[rt]||Y.length);o.push(this.getSubLayerRow({path:$},R,C.index))}else o.push(this.getSubLayerRow({path:Y},R,C.index))}return o}renderLayers(){let{data:t,_dataDiff:r,stroked:i,filled:s,extruded:n,wireframe:o,_normalize:c,_windingOrder:f,elevationScale:_,transitions:w,positionFormat:C}=this.props,{lineWidthUnits:R,lineWidthScale:N,lineWidthMinPixels:j,lineWidthMaxPixels:Y,lineJointRounded:rt,lineMiterLimit:$,lineDashJustified:K}=this.props,{getFillColor:tt,getLineColor:ut,getLineWidth:Pt,getLineDashArray:Ot,getElevation:Kt,getPolygon:Zt,updateTriggers:le,material:ue}=this.props,{paths:Ge,pathsDiff:tr}=this.state,er=this.getSubLayerClass(\"fill\",_c),Lr=this.getSubLayerClass(\"stroke\",gc),zi=this.shouldRenderSubLayer(\"fill\",Ge)&&new er({_dataDiff:r,extruded:n,elevationScale:_,filled:s,wireframe:o,_normalize:c,_windingOrder:f,getElevation:Kt,getFillColor:tt,getLineColor:n&&o?ut:nq,material:ue,transitions:w},this.getSubLayerProps({id:\"fill\",updateTriggers:le&&{getPolygon:le.getPolygon,getElevation:le.getElevation,getFillColor:le.getFillColor,lineColors:n&&o,getLineColor:le.getLineColor}}),{data:t,positionFormat:C,getPolygon:Zt}),Bo=!n&&i&&this.shouldRenderSubLayer(\"stroke\",Ge)&&new Lr({_dataDiff:tr&&(()=>tr),widthUnits:R,widthScale:N,widthMinPixels:j,widthMaxPixels:Y,jointRounded:rt,miterLimit:$,dashJustified:K,_pathType:\"loop\",transitions:w&&{getWidth:w.getLineWidth,getColor:w.getLineColor,getPath:w.getPolygon},getColor:this.getSubLayerAccessor(ut),getWidth:this.getSubLayerAccessor(Pt),getDashArray:this.getSubLayerAccessor(Ot)},this.getSubLayerProps({id:\"stroke\",updateTriggers:le&&{getWidth:le.getLineWidth,getColor:le.getLineColor,getDashArray:le.getLineDashArray}}),{data:Ge,positionFormat:C,getPath:Pc=>Pc.path});return[!n&&zi,Bo,n&&zi]}};G(lf,\"layerName\",\"PolygonLayer\");G(lf,\"defaultProps\",jdt);function sq(e,t){if(!e)return null;let r=\"startIndices\"in e?e.startIndices[t]:t,i=e.featureIds.value[r];return r!==-1?Gdt(e,i,r):null}function Gdt(e,t,r){let i={properties:{...e.properties[t]}};for(let s in e.numericProps)i.properties[s]=e.numericProps[s].value[r];return i}function oq(e,t){let r={points:null,lines:null,polygons:null};for(let i in r){let s=e[i].globalFeatureIds.value;r[i]=new Uint8ClampedArray(s.length*3);let n=[];for(let o=0;o 0.0) {\n float inFill = alpha;\n float inBorder = smoothstep(outlineBuffer - gamma, outlineBuffer + gamma, distance);\n color = mix(outlineColor, vColor, inFill);\n alpha = inBorder;\n }\n }\n float a = alpha * color.a;\n \n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color.rgb, a * opacity);\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var XO=192/256,lq=[],Wdt={getIconOffsets:{type:\"accessor\",value:e=>e.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:\"color\",value:[0,0,0,255]}},Dg=class extends Sp{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return{...super.getShaders(),fs:aq}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:\"getIconOffsets\"},instancePickingColors:{type:5121,size:3,accessor:(r,{index:i,target:s})=>this.encodePickingColor(i,s)}})}updateState(t){super.updateState(t);let{props:r,oldProps:i}=t,{outlineColor:s}=r;s!==i.outlineColor&&(s=s.map(n=>n/255),s[3]=Number.isFinite(s[3])?s[3]:1,this.setState({outlineColor:s})),!r.sdf&&r.outlineWidth&&nr.warn(\"\".concat(this.id,\": fontSettings.sdf is required to render outline\"))()}draw(t){let{sdf:r,smoothing:i,outlineWidth:s}=this.props,{outlineColor:n}=this.state,o=s?Math.max(i,XO*(1-s)):-1;if(t.uniforms={...t.uniforms,sdfBuffer:XO,outlineBuffer:o,gamma:i,sdf:!!r,outlineColor:n},super.draw(t),r&&s){let{iconManager:c}=this.state;c.getTexture()&&this.state.model.draw({uniforms:{outlineBuffer:XO}})}}getInstanceOffset(t){return t?Array.from(t).flatMap(r=>super.getInstanceOffset(r)):lq}getInstanceColorMode(t){return 1}getInstanceIconFrame(t){return t?Array.from(t).flatMap(r=>super.getInstanceIconFrame(r)):lq}};G(Dg,\"defaultProps\",Wdt);G(Dg,\"layerName\",\"MultiIconLayer\");var G2=class{constructor({fontSize:t=24,buffer:r=3,radius:i=8,cutoff:s=.25,fontFamily:n=\"sans-serif\",fontWeight:o=\"normal\",fontStyle:c=\"normal\"}={}){this.buffer=r,this.cutoff=s,this.radius=i;let f=this.size=t+r*4,_=this._createCanvas(f),w=this.ctx=_.getContext(\"2d\",{willReadFrequently:!0});w.font=`${c} ${o} ${t}px ${n}`,w.textBaseline=\"alphabetic\",w.textAlign=\"left\",w.fillStyle=\"black\",this.gridOuter=new Float64Array(f*f),this.gridInner=new Float64Array(f*f),this.f=new Float64Array(f),this.z=new Float64Array(f+1),this.v=new Uint16Array(f)}_createCanvas(t){let r=document.createElement(\"canvas\");return r.width=r.height=t,r}draw(t){let{width:r,actualBoundingBoxAscent:i,actualBoundingBoxDescent:s,actualBoundingBoxLeft:n,actualBoundingBoxRight:o}=this.ctx.measureText(t),c=Math.ceil(i),f=0,_=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-n))),w=Math.min(this.size-this.buffer,c+Math.ceil(s)),C=_+2*this.buffer,R=w+2*this.buffer,N=Math.max(C*R,0),j=new Uint8ClampedArray(N),Y={data:j,width:C,height:R,glyphWidth:_,glyphHeight:w,glyphTop:c,glyphLeft:f,glyphAdvance:r};if(_===0||w===0)return Y;let{ctx:rt,buffer:$,gridInner:K,gridOuter:tt}=this;rt.clearRect($,$,_,w),rt.fillText(t,$,$+c);let ut=rt.getImageData($,$,_,w);tt.fill(1e20,0,N),K.fill(0,0,N);for(let Pt=0;Pt0?le*le:0,K[Zt]=le<0?le*le:0}}cq(tt,0,0,C,R,C,this.f,this.v,this.z),cq(K,$,$,_,w,C,this.f,this.v,this.z);for(let Pt=0;Pt-1);f++,n[f]=c,o[f]=_,o[f+1]=1e20}for(let c=0,f=0;cs&&(_=0,f++),n[C]={x:_+i,y:c+f*w+i,width:R,height:w,layoutWidth:R,layoutHeight:r},_+=R+i*2}return{mapping:n,xOffset:_,yOffset:c+f*w,canvasHeight:Zdt(c+(f+1)*w)}}function fq(e,t,r,i){let s=0;for(let o=t;oi&&(oc){let C=fq(e,c,f,s);_+C>i&&(oi&&(C=dq(e,c,f,i,s,n),o=n[n.length-1])),c=f,_+=C}return _}function Qdt(e,t,r,i,s=0,n){n===void 0&&(n=e.length);let o=[];return t===\"break-all\"?dq(e,s,n,r,i,o):Ydt(e,s,n,r,i,o),o}function $dt(e,t,r,i,s,n){let o=0,c=0;for(let f=t;f0,C=[0,0],R=[0,0],N=0,j=0,Y=0;for(let $=0;$<=o;$++){let K=n[$];if((K===`\n`||$===o)&&(Y=$),Y>j){let tt=w?Qdt(n,r,i,s,j,Y):qdt;for(let ut=0;ut<=tt.length;ut++){let Pt=ut===0?j:tt[ut-1],Ot=ut1||f>0){let N=e.constructor;R=new N(_);for(let j=0;j<_;j++)R[j]=e[j*c+f]}for(let N=0;N=0&&this._order.splice(r,1)}_appendOrder(t){this._order.push(t)}};function Xdt(){let e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}var Og={fontFamily:\"Monaco, monospace\",fontWeight:\"normal\",characterSet:Xdt(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},mq=1024,gq=.9,_q=1.2,vq=3,C3=new Wv(vq);function Kdt(e,t){let r;typeof t==\"string\"?r=new Set(Array.from(t)):r=new Set(t);let i=C3.get(e);if(!i)return r;for(let s in i.mapping)r.has(s)&&r.delete(s);return r}function Jdt(e,t){for(let r=0;r=vq,\"Invalid cache limit\"),C3=new Wv(e)}var W2=class{constructor(){G(this,\"props\",{...Og}),G(this,\"_key\",void 0),G(this,\"_atlas\",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){let{fontSize:t,buffer:r}=this.props;return(t*_q+r*2)/t}setProps(t={}){Object.assign(this.props,t),this._key=this._getKey();let r=Kdt(this._key,this.props.characterSet),i=C3.get(this._key);if(i&&r.size===0){this._atlas!==i&&(this._atlas=i);return}let s=this._generateFontAtlas(r,i);this._atlas=s,C3.set(this._key,s)}_generateFontAtlas(t,r){let{fontFamily:i,fontWeight:s,fontSize:n,buffer:o,sdf:c,radius:f,cutoff:_}=this.props,w=r&&r.data;w||(w=document.createElement(\"canvas\"),w.width=mq);let C=w.getContext(\"2d\",{willReadFrequently:!0});yq(C,i,n,s);let{mapping:R,canvasHeight:N,xOffset:j,yOffset:Y}=hq({getFontWidth:rt=>C.measureText(rt).width,fontHeight:n*_q,buffer:o,characterSet:t,maxCanvasWidth:mq,...r&&{mapping:r.mapping,xOffset:r.xOffset,yOffset:r.yOffset}});if(w.height!==N){let rt=C.getImageData(0,0,w.width,w.height);w.height=N,C.putImageData(rt,0,0)}if(yq(C,i,n,s),c){let rt=new G2({fontSize:n,buffer:o,radius:f,cutoff:_,fontFamily:i,fontWeight:\"\".concat(s)});for(let $ of t){let{data:K,width:tt,height:ut,glyphTop:Pt}=rt.draw($);R[$].width=tt,R[$].layoutOffsetY=n*gq-Pt;let Ot=C.createImageData(tt,ut);Jdt(K,Ot),C.putImageData(Ot,R[$].x,R[$].y)}}else for(let rt of t)C.fillText(rt,R[rt].x,R[rt].y+o+n*gq);return{xOffset:j,yOffset:Y,mapping:R,data:w,width:w.width,height:w.height}}_getKey(){let{fontFamily:t,fontWeight:r,fontSize:i,buffer:s,sdf:n,radius:o,cutoff:c}=this.props;return n?\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(s,\" \").concat(o,\" \").concat(c):\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(s)}};var bq=`#define SHADER_NAME text-background-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceRects;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec2 instancePixelOffsets;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform bool billboard;\nuniform float opacity;\nuniform float sizeScale;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform vec4 padding;\nuniform int sizeUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = radians(angle);\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n vLineWidth = instanceLineWidths;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits),\n sizeMinPixels, sizeMaxPixels\n );\n\n dimensions = instanceRects.zw * sizePixels + padding.xy + padding.zw;\n\n vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-padding.xy, padding.zw, positions);\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\n pixelOffset += instancePixelOffsets;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var wq=`#define SHADER_NAME text-background-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool stroked;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec2 pixelPosition = uv * dimensions;\n if (stroked) {\n float distToEdge = min(\n min(pixelPosition.x, dimensions.x - pixelPosition.x),\n min(pixelPosition.y, dimensions.y - pixelPosition.y)\n );\n float isBorder = smoothedge(distToEdge, vLineWidth);\n gl_FragColor = mix(vFillColor, vLineColor, isBorder);\n } else {\n gl_FragColor = vFillColor;\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var tpt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:\"array\",value:[0,0,0,0]},getPosition:{type:\"accessor\",value:e=>e.position},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},getBoundingRect:{type:\"accessor\",value:[0,0,0,0]},getFillColor:{type:\"accessor\",value:[0,0,0,255]},getLineColor:{type:\"accessor\",value:[0,0,0,255]},getLineWidth:{type:\"accessor\",value:1}},Bg=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:bq,fs:wq,modules:[oo,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instanceRects:{size:4,accessor:\"getBoundingRect\"},instancePixelOffsets:{size:2,transition:!0,accessor:\"getPixelOffset\"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){super.updateState(t);let{changeFlags:r}=t;if(r.extensionsChanged){var i;let{gl:s}=this.context;(i=this.state.model)===null||i===void 0||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{billboard:r,sizeScale:i,sizeUnits:s,sizeMinPixels:n,sizeMaxPixels:o,getLineWidth:c}=this.props,{padding:f}=this.props;f.length<4&&(f=[f[0],f[1],f[0],f[1]]),this.state.model.setUniforms(t).setUniforms({billboard:r,stroked:!!c,padding:f,sizeUnits:Ko[s],sizeScale:i,sizeMinPixels:n,sizeMaxPixels:o}).draw()}_getModel(t){let r=[0,0,1,0,1,1,0,1];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}};G(Bg,\"defaultProps\",tpt);G(Bg,\"layerName\",\"TextBackgroundLayer\");var Sq={start:1,middle:0,end:-1},Tq={top:1,center:0,bottom:-1},KO=[0,0,0,255],ept=1,rpt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:\"accessor\",value:[255,255,255,255]},getBorderColor:{type:\"accessor\",value:KO},getBorderWidth:{type:\"accessor\",value:0},backgroundPadding:{type:\"array\",value:[0,0,0,0]},characterSet:{type:\"object\",value:Og.characterSet},fontFamily:Og.fontFamily,fontWeight:Og.fontWeight,lineHeight:ept,outlineWidth:{type:\"number\",value:0,min:0},outlineColor:{type:\"color\",value:KO},fontSettings:{type:\"object\",value:{},compare:1},wordBreak:\"break-word\",maxWidth:{type:\"number\",value:-1},getText:{type:\"accessor\",value:e=>e.text},getPosition:{type:\"accessor\",value:e=>e.position},getColor:{type:\"accessor\",value:KO},getSize:{type:\"accessor\",value:32},getAngle:{type:\"accessor\",value:0},getTextAnchor:{type:\"accessor\",value:\"middle\"},getAlignmentBaseline:{type:\"accessor\",value:\"center\"},getPixelOffset:{type:\"accessor\",value:[0,0]},backgroundColor:{deprecatedFor:[\"background\",\"getBackgroundColor\"]}},cf=class extends tn{constructor(...t){super(...t),G(this,\"state\",void 0),G(this,\"getBoundingRect\",(r,i)=>{let{size:[s,n]}=this.transformParagraph(r,i),{fontSize:o}=this.state.fontAtlasManager.props;s/=o,n/=o;let{getTextAnchor:c,getAlignmentBaseline:f}=this.props,_=Sq[typeof c==\"function\"?c(r,i):c],w=Tq[typeof f==\"function\"?f(r,i):f];return[(_-1)*s/2,(w-1)*n/2,s,n]}),G(this,\"getIconOffsets\",(r,i)=>{let{getTextAnchor:s,getAlignmentBaseline:n}=this.props,{x:o,y:c,rowWidth:f,size:[_,w]}=this.transformParagraph(r,i),C=Sq[typeof s==\"function\"?s(r,i):s],R=Tq[typeof n==\"function\"?n(r,i):n],N=o.length,j=new Array(N*2),Y=0;for(let rt=0;rt0&&nr.warn(\"v8.9 breaking change: TextLayer maxWidth is now relative to text size\")()}updateState(t){let{props:r,oldProps:i,changeFlags:s}=t;(s.dataChanged||s.updateTriggersChanged&&(s.updateTriggersChanged.all||s.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||r.lineHeight!==i.lineHeight||r.wordBreak!==i.wordBreak||r.maxWidth!==i.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:t}){return t.object=t.index>=0?this.props.data[t.index]:null,t}_updateFontAtlas(){let{fontSettings:t,fontFamily:r,fontWeight:i}=this.props,{fontAtlasManager:s,characterSet:n}=this.state,o={...t,characterSet:n,fontFamily:r,fontWeight:i};if(!s.mapping)return s.setProps(o),!0;for(let c in o)if(o[c]!==s.props[c])return s.setProps(o),!0;return!1}_updateText(){var t;let{data:r,characterSet:i}=this.props,s=(t=r.attributes)===null||t===void 0?void 0:t.getText,{getText:n}=this.props,o=r.startIndices,c,f=i===\"auto\"&&new Set;if(s&&o){let{texts:_,characterCount:w}=Aq({...ArrayBuffer.isView(s)?{value:s}:s,length:r.length,startIndices:o,characterSet:f});c=w,n=(C,{index:R})=>_[R]}else{let{iterable:_,objectInfo:w}=Xc(r);o=[0],c=0;for(let C of _){w.index++;let R=Array.from(n(C,w)||\"\");f&&R.forEach(f.add,f),c+=R.length,o.push(c)}}this.setState({getText:n,startIndices:o,numInstances:c,characterSet:f||i})}transformParagraph(t,r){let{fontAtlasManager:i}=this.state,s=i.mapping,n=this.state.getText,{wordBreak:o,lineHeight:c,maxWidth:f}=this.props,_=n(t,r)||\"\";return pq(_,c,o,f*i.props.fontSize,s)}renderLayers(){let{startIndices:t,numInstances:r,getText:i,fontAtlasManager:{scale:s,texture:n,mapping:o},styleVersion:c}=this.state,{data:f,_dataDiff:_,getPosition:w,getColor:C,getSize:R,getAngle:N,getPixelOffset:j,getBackgroundColor:Y,getBorderColor:rt,getBorderWidth:$,backgroundPadding:K,background:tt,billboard:ut,fontSettings:Pt,outlineWidth:Ot,outlineColor:Kt,sizeScale:Zt,sizeUnits:le,sizeMinPixels:ue,sizeMaxPixels:Ge,transitions:tr,updateTriggers:er}=this.props,Lr=this.getSubLayerClass(\"characters\",Dg),zi=this.getSubLayerClass(\"background\",Bg);return[tt&&new zi({getFillColor:Y,getLineColor:rt,getLineWidth:$,padding:K,getPosition:w,getSize:R,getAngle:N,getPixelOffset:j,billboard:ut,sizeScale:Zt,sizeUnits:le,sizeMinPixels:ue,sizeMaxPixels:Ge,transitions:tr&&{getPosition:tr.getPosition,getAngle:tr.getAngle,getSize:tr.getSize,getFillColor:tr.getBackgroundColor,getLineColor:tr.getBorderColor,getLineWidth:tr.getBorderWidth,getPixelOffset:tr.getPixelOffset}},this.getSubLayerProps({id:\"background\",updateTriggers:{getPosition:er.getPosition,getAngle:er.getAngle,getSize:er.getSize,getFillColor:er.getBackgroundColor,getLineColor:er.getBorderColor,getLineWidth:er.getBorderWidth,getPixelOffset:er.getPixelOffset,getBoundingRect:{getText:er.getText,getTextAnchor:er.getTextAnchor,getAlignmentBaseline:er.getAlignmentBaseline,styleVersion:c}}}),{data:f.attributes&&f.attributes.background?{length:f.length,attributes:f.attributes.background}:f,_dataDiff:_,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new Lr({sdf:Pt.sdf,smoothing:Number.isFinite(Pt.smoothing)?Pt.smoothing:Og.smoothing,outlineWidth:Ot/(Pt.radius||Og.radius),outlineColor:Kt,iconAtlas:n,iconMapping:o,getPosition:w,getColor:C,getSize:R,getAngle:N,getPixelOffset:j,billboard:ut,sizeScale:Zt*s,sizeUnits:le,sizeMinPixels:ue*s,sizeMaxPixels:Ge*s,transitions:tr&&{getPosition:tr.getPosition,getAngle:tr.getAngle,getColor:tr.getColor,getSize:tr.getSize,getPixelOffset:tr.getPixelOffset}},this.getSubLayerProps({id:\"characters\",updateTriggers:{all:er.getText,getPosition:er.getPosition,getAngle:er.getAngle,getColor:er.getColor,getSize:er.getSize,getPixelOffset:er.getPixelOffset,getIconOffsets:{getTextAnchor:er.getTextAnchor,getAlignmentBaseline:er.getAlignmentBaseline,styleVersion:c}}}),{data:f,_dataDiff:_,startIndices:t,numInstances:r,getIconOffsets:this.getIconOffsets,getIcon:i})]}static set fontAtlasCacheLimit(t){xq(t)}};G(cf,\"defaultProps\",rpt);G(cf,\"layerName\",\"TextLayer\");var H2={circle:{type:Xu,props:{filled:\"filled\",stroked:\"stroked\",lineWidthMaxPixels:\"lineWidthMaxPixels\",lineWidthMinPixels:\"lineWidthMinPixels\",lineWidthScale:\"lineWidthScale\",lineWidthUnits:\"lineWidthUnits\",pointRadiusMaxPixels:\"radiusMaxPixels\",pointRadiusMinPixels:\"radiusMinPixels\",pointRadiusScale:\"radiusScale\",pointRadiusUnits:\"radiusUnits\",pointAntialiasing:\"antialiasing\",pointBillboard:\"billboard\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\",getLineWidth:\"getLineWidth\",getPointRadius:\"getRadius\"}},icon:{type:Sp,props:{iconAtlas:\"iconAtlas\",iconMapping:\"iconMapping\",iconSizeMaxPixels:\"sizeMaxPixels\",iconSizeMinPixels:\"sizeMinPixels\",iconSizeScale:\"sizeScale\",iconSizeUnits:\"sizeUnits\",iconAlphaCutoff:\"alphaCutoff\",iconBillboard:\"billboard\",getIcon:\"getIcon\",getIconAngle:\"getAngle\",getIconColor:\"getColor\",getIconPixelOffset:\"getPixelOffset\",getIconSize:\"getSize\"}},text:{type:cf,props:{textSizeMaxPixels:\"sizeMaxPixels\",textSizeMinPixels:\"sizeMinPixels\",textSizeScale:\"sizeScale\",textSizeUnits:\"sizeUnits\",textBackground:\"background\",textBackgroundPadding:\"backgroundPadding\",textFontFamily:\"fontFamily\",textFontWeight:\"fontWeight\",textLineHeight:\"lineHeight\",textMaxWidth:\"maxWidth\",textOutlineColor:\"outlineColor\",textOutlineWidth:\"outlineWidth\",textWordBreak:\"wordBreak\",textCharacterSet:\"characterSet\",textBillboard:\"billboard\",textFontSettings:\"fontSettings\",getText:\"getText\",getTextAngle:\"getAngle\",getTextColor:\"getColor\",getTextPixelOffset:\"getPixelOffset\",getTextSize:\"getSize\",getTextAnchor:\"getTextAnchor\",getTextAlignmentBaseline:\"getAlignmentBaseline\",getTextBackgroundColor:\"getBackgroundColor\",getTextBorderColor:\"getBorderColor\",getTextBorderWidth:\"getBorderWidth\"}}},q2={type:gc,props:{lineWidthUnits:\"widthUnits\",lineWidthScale:\"widthScale\",lineWidthMinPixels:\"widthMinPixels\",lineWidthMaxPixels:\"widthMaxPixels\",lineJointRounded:\"jointRounded\",lineCapRounded:\"capRounded\",lineMiterLimit:\"miterLimit\",lineBillboard:\"billboard\",getLineColor:\"getColor\",getLineWidth:\"getWidth\"}},L3={type:_c,props:{extruded:\"extruded\",filled:\"filled\",wireframe:\"wireframe\",elevationScale:\"elevationScale\",material:\"material\",_full3d:\"_full3d\",getElevation:\"getElevation\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\"}};function Hv({type:e,props:t}){let r={};for(let i in t)r[i]=e.defaultProps[t[i]];return r}function k3(e,t){let{transitions:r,updateTriggers:i}=e.props,s={updateTriggers:{},transitions:r&&{getPosition:r.geometry}};for(let n in t){let o=t[n],c=e.props[n];n.startsWith(\"get\")&&(c=e.getSubLayerAccessor(c),s.updateTriggers[o]=i[n],r&&(s.transitions[o]=r[n])),s[o]=c}return s}function Eq(e){if(Array.isArray(e))return e;switch(nr.assert(e.type,\"GeoJSON does not have type\"),e.type){case\"Feature\":return[e];case\"FeatureCollection\":return nr.assert(Array.isArray(e.features),\"GeoJSON does not have features array\"),e.features;default:return[{geometry:e}]}}function JO(e,t,r={}){let i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:s=0,endRow:n=e.length}=r;for(let o=s;o{c.push(r({geometry:{type:\"Point\",coordinates:C}},i,s))});break;case\"LineString\":f.push(r({geometry:e},i,s));break;case\"MultiLineString\":o.forEach(C=>{f.push(r({geometry:{type:\"LineString\",coordinates:C}},i,s))});break;case\"Polygon\":_.push(r({geometry:e},i,s)),o.forEach(C=>{w.push(r({geometry:{type:\"LineString\",coordinates:C}},i,s))});break;case\"MultiPolygon\":o.forEach(C=>{_.push(r({geometry:{type:\"Polygon\",coordinates:C}},i,s)),C.forEach(R=>{w.push(r({geometry:{type:\"LineString\",coordinates:R}},i,s))})});break;default:}}var ipt={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function npt(e,t){let r=ipt[e];for(nr.assert(r,\"Unknown GeoJSON type \".concat(e));t&&--r>0;)t=t[0];return t&&Number.isFinite(t[0])}function Pq(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function R3(e){return e.geometry.coordinates}function Iq(e,t){let r=Pq(),{pointFeatures:i,lineFeatures:s,polygonFeatures:n,polygonOutlineFeatures:o}=e;return r.points.data=i,r.points._dataDiff=t.pointFeatures&&(()=>t.pointFeatures),r.points.getPosition=R3,r.lines.data=s,r.lines._dataDiff=t.lineFeatures&&(()=>t.lineFeatures),r.lines.getPath=R3,r.polygons.data=n,r.polygons._dataDiff=t.polygonFeatures&&(()=>t.polygonFeatures),r.polygons.getPolygon=R3,r.polygonsOutline.data=o,r.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&(()=>t.polygonOutlineFeatures),r.polygonsOutline.getPath=R3,r}function Cq(e,t){let r=Pq(),{points:i,lines:s,polygons:n}=e,o=oq(e,t);return r.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:3,value:o.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},r.lines.data={length:s.pathIndices.value.length-1,startIndices:s.pathIndices.value,attributes:{...s.attributes,getPath:s.positions,instancePickingColors:{size:3,value:o.lines}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},r.lines._pathType=\"open\",r.polygons.data={length:n.polygonIndices.value.length-1,startIndices:n.polygonIndices.value,attributes:{...n.attributes,getPolygon:n.positions,pickingColors:{size:3,value:o.polygons}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.polygons._normalize=!1,n.triangles&&(r.polygons.data.attributes.indices=n.triangles.value),r.polygonsOutline.data={length:n.primitivePolygonIndices.value.length-1,startIndices:n.primitivePolygonIndices.value,attributes:{...n.attributes,getPath:n.positions,instancePickingColors:{size:3,value:o.polygons}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.polygonsOutline._pathType=\"open\",r}var spt=[\"points\",\"linestrings\",\"polygons\"],opt={...Hv(H2.circle),...Hv(H2.icon),...Hv(H2.text),...Hv(q2),...Hv(L3),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:\"object\",value:null},iconMapping:{type:\"object\",value:{}},getIcon:{type:\"accessor\",value:e=>e.properties.icon},getText:{type:\"accessor\",value:e=>e.properties.text},pointType:\"circle\",getRadius:{deprecatedFor:\"getPointRadius\"}},xm=class extends tn{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:t,changeFlags:r}){if(!r.dataChanged)return;let{data:i}=this.props,s=i&&\"points\"in i&&\"polygons\"in i&&\"lines\"in i;this.setState({binary:s}),s?this._updateStateBinary({props:t,changeFlags:r}):this._updateStateJSON({props:t,changeFlags:r})}_updateStateBinary({props:t,changeFlags:r}){let i=Cq(t.data,this.encodePickingColor);this.setState({layerProps:i})}_updateStateJSON({props:t,changeFlags:r}){let i=Eq(t.data),s=this.getSubLayerRow.bind(this),n={},o={};if(Array.isArray(r.dataChanged)){let f=this.state.features;for(let _ in f)n[_]=f[_].slice(),o[_]=[];for(let _ of r.dataChanged){let w=JO(i,s,_);for(let C in f)o[C].push(I3({data:n[C],getIndex:R=>R.__source.index,dataRange:_,replace:w[C]}))}}else n=JO(i,s);let c=Iq(n,o);this.setState({features:n,featuresDiff:o,layerProps:c})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i,sourceLayer:s}=r;return r.featureType=spt.find(n=>s.id.startsWith(\"\".concat(this.id,\"-\").concat(n,\"-\"))),i>=0&&s.id.startsWith(\"\".concat(this.id,\"-points-text\"))&&this.state.binary&&(r.index=this.props.data.points.globalFeatureIds.value[i]),r}_updateAutoHighlight(t){let r=\"\".concat(this.id,\"-points-\"),i=t.featureType===\"points\";for(let s of this.getSubLayers())s.id.startsWith(r)===i&&s.updateAutoHighlight(t)}_renderPolygonLayer(){let{extruded:t,wireframe:r}=this.props,{layerProps:i}=this.state,s=\"polygons-fill\",n=this.shouldRenderSubLayer(s,i.polygons.data)&&this.getSubLayerClass(s,L3.type);if(n){let o=k3(this,L3.props),c=t&&r;return c||delete o.getLineColor,o.updateTriggers.lineColors=c,new n(o,this.getSubLayerProps({id:s,updateTriggers:o.updateTriggers}),i.polygons)}return null}_renderLineLayers(){let{extruded:t,stroked:r}=this.props,{layerProps:i}=this.state,s=\"polygons-stroke\",n=\"linestrings\",o=!t&&r&&this.shouldRenderSubLayer(s,i.polygonsOutline.data)&&this.getSubLayerClass(s,q2.type),c=this.shouldRenderSubLayer(n,i.lines.data)&&this.getSubLayerClass(n,q2.type);if(o||c){let f=k3(this,q2.props);return[o&&new o(f,this.getSubLayerProps({id:s,updateTriggers:f.updateTriggers}),i.polygonsOutline),c&&new c(f,this.getSubLayerProps({id:n,updateTriggers:f.updateTriggers}),i.lines)]}return null}_renderPointLayers(){let{pointType:t}=this.props,{layerProps:r,binary:i}=this.state,{highlightedObjectIndex:s}=this.props;!i&&Number.isFinite(s)&&(s=r.points.data.findIndex(c=>c.__source.index===s));let n=new Set(t.split(\"+\")),o=[];for(let c of n){let f=\"points-\".concat(c),_=H2[c],w=_&&this.shouldRenderSubLayer(f,r.points.data)&&this.getSubLayerClass(f,_.type);if(w){let C=k3(this,_.props),R=r.points;if(c===\"text\"&&i){let{instancePickingColors:N,...j}=R.data.attributes;R={...R,data:{...R.data,attributes:j}}}o.push(new w(C,this.getSubLayerProps({id:f,updateTriggers:C.updateTriggers,highlightedObjectIndex:s}),R))}}return o}renderLayers(){let{extruded:t}=this.props,r=this._renderPolygonLayer(),i=this._renderLineLayers(),s=this._renderPointLayers();return[!t&&r,i,s,t&&r]}getSubLayerAccessor(t){let{binary:r}=this.state;return!r||typeof t!=\"function\"?super.getSubLayerAccessor(t):(i,s)=>{let{data:n,index:o}=s,c=sq(n,o);return t(c,s)}}};G(xm,\"layerName\",\"GeoJsonLayer\");G(xm,\"defaultProps\",opt);var f$t=1/Math.PI*180,d$t=1/180*Math.PI,apt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...apt}};var Z2=globalThis.mathgl.config;function Y2(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qv(e,t,r){let i=Z2.EPSILON;r&&(Z2.EPSILON=r);try{if(e===t)return!0;if(Y2(e)&&Y2(t)){if(e.length!==t.length)return!1;for(let s=0;s{t([r,i],[s,n],o,c)},this.options):Rq(this.points,t,this.options)}modifyWindingDirection(t){return this.isFlatArray?tB(this.points,t,this.options):kq(this.points,t,this.options)}};function nB(e,t,r=2,i,s=\"xy\"){let n=t&&t.length,o=n?t[0]*r:e.length,c=Oq(e,0,o,r,!0,i&&i[0],s),f=[];if(!c||c.next===c.prev)return f;let _,w,C,R,N,j,Y;if(n&&(c=ppt(e,t,c,r,i,s)),e.length>80*r){R=w=e[0],N=C=e[1];for(let rt=r;rtw&&(w=j),Y>C&&(C=Y);_=Math.max(w-R,C-N),_=_!==0?32767/_:0}return Q2(c,f,r,R,N,_,0),f}function Oq(e,t,r,i,s,n,o){let c,f;n===void 0&&(n=Zv(e,{start:t,end:r,size:i,plane:o}));let _=Fg[o[0]],w=Fg[o[1]];if(s===n<0)for(c=t;c=t;c-=i)f=Dq(c,e[c+_],e[c+w],f);return f&&F3(f,f.next)&&(X2(f),f=f.next),f}function zg(e,t){if(!e)return e;t||(t=e);let r=e,i;do if(i=!1,!r.steiner&&(F3(r,r.next)||ys(r.prev,r,r.next)===0)){if(X2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function Q2(e,t,r,i,s,n,o){if(!e)return;!o&&n&&ypt(e,i,s,n);let c=e,f,_;for(;e.prev!==e.next;){if(f=e.prev,_=e.next,n?hpt(e,i,s,n):upt(e)){t.push(f.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),X2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=fpt(zg(e),t,r),Q2(e,t,r,i,s,n,2)):o===2&&dpt(e,t,r,i,s,n):Q2(zg(e),t,r,i,s,n,1);break}}}function upt(e){let t=e.prev,r=e,i=e.next;if(ys(t,r,i)>=0)return!1;let s=t.x,n=r.x,o=i.x,c=t.y,f=r.y,_=i.y,w=sn?s>o?s:o:n>o?n:o,N=c>f?c>_?c:_:f>_?f:_,j=i.next;for(;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=C&&j.y<=N&&Qv(s,c,n,f,o,_,j.x,j.y)&&ys(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function hpt(e,t,r,i){let s=e.prev,n=e,o=e.next;if(ys(s,n,o)>=0)return!1;let c=s.x,f=n.x,_=o.x,w=s.y,C=n.y,R=o.y,N=cf?c>_?c:_:f>_?f:_,rt=w>C?w>R?w:R:C>R?C:R,$=iB(N,j,t,r,i),K=iB(Y,rt,t,r,i),tt=e.prevZ,ut=e.nextZ;for(;tt&&tt.z>=$&&ut&&ut.z<=K;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&Qv(c,w,f,C,_,R,tt.x,tt.y)&&ys(tt.prev,tt,tt.next)>=0||(tt=tt.prevZ,ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&Qv(c,w,f,C,_,R,ut.x,ut.y)&&ys(ut.prev,ut,ut.next)>=0))return!1;ut=ut.nextZ}for(;tt&&tt.z>=$;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&Qv(c,w,f,C,_,R,tt.x,tt.y)&&ys(tt.prev,tt,tt.next)>=0)return!1;tt=tt.prevZ}for(;ut&&ut.z<=K;){if(ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&Qv(c,w,f,C,_,R,ut.x,ut.y)&&ys(ut.prev,ut,ut.next)>=0)return!1;ut=ut.nextZ}return!0}function fpt(e,t,r){let i=e;do{let s=i.prev,n=i.next.next;!F3(s,n)&&Bq(s,i,i.next,n)&&$2(s,n)&&$2(n,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(n.i/r|0),X2(i),X2(i.next),i=e=n),i=i.next}while(i!==e);return zg(i)}function dpt(e,t,r,i,s,n){let o=e;do{let c=o.next.next;for(;c!==o.prev;){if(o.i!==c.i&&bpt(o,c)){let f=Fq(o,c);o=zg(o,o.next),f=zg(f,f.next),Q2(o,t,r,i,s,n,0),Q2(f,t,r,i,s,n,0);return}c=c.next}o=o.next}while(o!==e)}function ppt(e,t,r,i,s,n){let o=[],c,f,_,w,C;for(c=0,f=t.length;c=r.next.y&&r.next.y!==r.y){let R=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(R<=i&&R>n&&(n=R,o=r.x=r.x&&r.x>=f&&i!==r.x&&Qv(s<_?i:n,s,f,_,s<_?n:i,s,r.x,r.y)&&(C=Math.abs(s-r.y)/(i-r.x),$2(r,e)&&(Co.x||r.x===o.x&&_pt(o,r)))&&(o=r,w=C)),r=r.next;while(r!==c);return o}function _pt(e,t){return ys(e.prev,e,t.prev)<0&&ys(t.next,e,e.next)<0}function ypt(e,t,r,i){let s=e;do s.z===0&&(s.z=iB(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,vpt(s)}function vpt(e){let t,r,i=1,s,n,o,c,f,_;do{for(n=e,e=null,_=null,s=0;n;){for(s++,c=n,o=0,r=0;r0||f>0&&c;)o!==0&&(f===0||!c||n.z<=c.z)?(t=n,n=n.nextZ,o--):(t=c,c=c.nextZ,f--),_?_.nextZ=t:e=t,t.prevZ=_,_=t;n=c}_.nextZ=null,i*=2}while(s>1);return e}function iB(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function xpt(e){let t=e,r=e;do(t.x=(e-o)*(n-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(n-c)>=(s-o)*(i-c)}function bpt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!wpt(e,t)&&($2(e,t)&&$2(t,e)&&Spt(e,t)&&(ys(e.prev,e,t.prev)||ys(e,t.prev,t))||F3(e,t)&&ys(e.prev,e,e.next)>0&&ys(t.prev,t,t.next)>0)}function ys(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function F3(e,t){return e.x===t.x&&e.y===t.y}function Bq(e,t,r,i){let s=B3(ys(e,t,r)),n=B3(ys(e,t,i)),o=B3(ys(r,i,e)),c=B3(ys(r,i,t));return!!(s!==n&&o!==c||s===0&&O3(e,r,t)||n===0&&O3(e,i,t)||o===0&&O3(r,e,i)||c===0&&O3(r,t,i))}function O3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function B3(e){return e>0?1:e<0?-1:0}function wpt(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Bq(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function $2(e,t){return ys(e.prev,e,e.next)<0?ys(e,t,e.next)>=0&&ys(e,e.prev,t)>=0:ys(e,t,e.prev)<0||ys(e,e.next,t)<0}function Spt(e,t){let r=e,i=!1,s=(e.x+t.x)/2,n=(e.y+t.y)/2;do r.y>n!=r.next.y>n&&r.next.y!==r.y&&s<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function Fq(e,t){let r=new K2(e.i,e.x,e.y),i=new K2(t.i,t.x,t.y),s=e.next,n=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,n.next=i,i.prev=n,i}function Dq(e,t,r,i){let s=new K2(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function X2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var K2=class{constructor(t,r,i){G(this,\"i\",void 0),G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"prev\",null),G(this,\"next\",null),G(this,\"z\",0),G(this,\"prevZ\",null),G(this,\"nextZ\",null),G(this,\"steiner\",!1),this.i=t,this.x=r,this.y=i}};function Uq(e){e(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),e(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),e(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),e.WGS84=e[\"EPSG:4326\"],e[\"EPSG:3785\"]=e[\"EPSG:3857\"],e.GOOGLE=e[\"EPSG:3857\"],e[\"EPSG:900913\"]=e[\"EPSG:3857\"],e[\"EPSG:102113\"]=e[\"EPSG:3857\"]}var uf=1,hf=2,Tp=3,Vq=4,J2=5,sB=6378137,jq=6356752314e-3,oB=.0066943799901413165,Ng=484813681109536e-20,de=Math.PI/2,Gq=.16666666666666666,Wq=.04722222222222222,Hq=.022156084656084655,we=1e-10,vs=.017453292519943295,yc=57.29577951308232,Fi=Math.PI/4,bm=Math.PI*2,xs=3.14159265359;var Ll={};Ll.greenwich=0;Ll.lisbon=-9.131906111111;Ll.paris=2.337229166667;Ll.bogota=-74.080916666667;Ll.madrid=-3.687938888889;Ll.rome=12.452333333333;Ll.bern=7.439583333333;Ll.jakarta=106.807719444444;Ll.ferro=-17.666666666667;Ll.brussels=4.367975;Ll.stockholm=18.058277777778;Ll.athens=23.7163375;Ll.oslo=10.722916666667;var qq={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}};var Zq=/[\\s_\\-\\/\\(\\)]/g;function au(e,t){if(e[t])return e[t];for(var r=Object.keys(e),i=t.toLowerCase().replace(Zq,\"\"),s=-1,n,o;++s=this.text.length)return;e=this.text[this.place++]}switch(this.state){case eS:return this.neutral(e);case Qq:return this.keyword(e);case z3:return this.quoted(e);case Xq:return this.afterquote(e);case $q:return this.number(e);case aB:return}};Mp.prototype.afterquote=function(e){if(e==='\"'){this.word+='\"',this.state=z3;return}if(N3.test(e)){this.word=this.word.trim(),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in afterquote yet, index '+this.place)};Mp.prototype.afterItem=function(e){if(e===\",\"){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=eS;return}if(e===\"]\"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=eS,this.currentObject=this.stack.pop(),this.currentObject||(this.state=aB);return}};Mp.prototype.number=function(e){if(Kq.test(e)){this.word+=e;return}if(N3.test(e)){this.word=parseFloat(this.word),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in number yet, index '+this.place)};Mp.prototype.quoted=function(e){if(e==='\"'){this.state=Xq;return}this.word+=e};Mp.prototype.keyword=function(e){if(Cpt.test(e)){this.word+=e;return}if(e===\"[\"){var t=[];t.push(this.word),this.level++,this.root===null?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,this.state=eS;return}if(N3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in keyword yet, index '+this.place)};Mp.prototype.neutral=function(e){if(Ipt.test(e)){this.word=e,this.state=Qq;return}if(e==='\"'){this.word=\"\",this.state=z3;return}if(Kq.test(e)){this.word=e,this.state=$q;return}if(N3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in neutral yet, index '+this.place)};Mp.prototype.output=function(){for(;this.place0?90:-90),e.lat_ts=e.lat1):!e.lat_ts&&e.lat0&&e.projName===\"Polar_Stereographic\"&&(e.lat_ts=e.lat0,e.lat0=ud(e.lat0>0?90:-90))}function U3(e){var t=Yq(e),r=t.shift(),i=t.shift();t.unshift([\"name\",i]),t.unshift([\"type\",r]);var s={};return Ug(t,s),Dpt(s),s}function Ku(e){var t=this;if(arguments.length===2){var r=arguments[1];typeof r==\"string\"?r.charAt(0)===\"+\"?Ku[e]=tS(arguments[1]):Ku[e]=U3(arguments[1]):Ku[e]=r}else if(arguments.length===1){if(Array.isArray(e))return e.map(function(i){Array.isArray(i)?Ku.apply(t,i):Ku(i)});if(typeof e==\"string\"){if(e in Ku)return Ku[e]}else\"EPSG\"in e?Ku[\"EPSG:\"+e.EPSG]=e:\"ESRI\"in e?Ku[\"ESRI:\"+e.ESRI]=e:\"IAU2000\"in e?Ku[\"IAU2000:\"+e.IAU2000]=e:console.log(e);return}}Uq(Ku);var $v=Ku;function Opt(e){return typeof e==\"string\"}function Bpt(e){return e in $v}var Fpt=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];function zpt(e){return Fpt.some(function(t){return e.indexOf(t)>-1})}var Npt=[\"3857\",\"900913\",\"3785\",\"102113\"];function Upt(e){var t=au(e,\"authority\");if(t){var r=au(t,\"epsg\");return r&&Npt.indexOf(r)>-1}}function Vpt(e){var t=au(e,\"extension\");if(t)return au(t,\"proj4\")}function jpt(e){return e[0]===\"+\"}function Gpt(e){if(Opt(e)){if(Bpt(e))return $v[e];if(zpt(e)){var t=U3(e);if(Upt(t))return $v[\"EPSG:3857\"];var r=Vpt(t);return r?tS(r):t}if(jpt(e))return tS(e)}else return e}var tZ=Gpt;function lB(e,t){e=e||{};var r,i;if(!t)return e;for(i in t)r=t[i],r!==void 0&&(e[i]=r);return e}function il(e,t,r){var i=e*t;return r/Math.sqrt(1-i*i)}function hd(e){return e<0?-1:1}function Ie(e){return Math.abs(e)<=xs?e:e-hd(e)*bm}function kl(e,t,r){var i=e*r,s=.5*e;return i=Math.pow((1-i)/(1+i),s),Math.tan(.5*(de-t))/i}function Ep(e,t){for(var r=.5*e,i,s,n=de-2*Math.atan(t),o=0;o<=15;o++)if(i=e*Math.sin(n),s=de-2*Math.atan(t*Math.pow((1-i)/(1+i),r))-n,n+=s,Math.abs(s)<=1e-10)return n;return-9999}function Wpt(){var e=this.b/this.a;this.es=1-e*e,\"x0\"in this||(this.x0=0),\"y0\"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Hpt(e){var t=e.x,r=e.y;if(r*yc>90&&r*yc<-90&&t*yc>180&&t*yc<-180)return null;var i,s;if(Math.abs(Math.abs(r)-de)<=we)return null;if(this.sphere)i=this.x0+this.a*this.k0*Ie(t-this.long0),s=this.y0+this.a*this.k0*Math.log(Math.tan(Fi+.5*r));else{var n=Math.sin(r),o=kl(this.e,r,n);i=this.x0+this.a*this.k0*Ie(t-this.long0),s=this.y0-this.a*this.k0*Math.log(o)}return e.x=i,e.y=s,e}function qpt(e){var t=e.x-this.x0,r=e.y-this.y0,i,s;if(this.sphere)s=de-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else{var n=Math.exp(-r/(this.a*this.k0));if(s=Ep(this.e,n),s===-9999)return null}return i=Ie(this.long0+t/(this.a*this.k0)),e.x=i,e.y=s,e}var Zpt=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],eZ={init:Wpt,forward:Hpt,inverse:qpt,names:Zpt};function Ypt(){}function rZ(e){return e}var Qpt=[\"longlat\",\"identity\"],iZ={init:Ypt,forward:rZ,inverse:rZ,names:Qpt};var $pt=[eZ,iZ],V3={},j3=[];function nZ(e,t){var r=j3.length;return e.names?(j3[r]=e,e.names.forEach(function(i){V3[i.toLowerCase()]=r}),this):(console.log(t),!0)}function Xpt(e){if(!e)return!1;var t=e.toLowerCase();if(typeof V3[t]<\"u\"&&j3[V3[t]])return j3[V3[t]]}function Kpt(){$pt.forEach(nZ)}var sZ={start:Kpt,add:nZ,get:Xpt};var Xr={};Xr.MERIT={a:6378137,rf:298.257,ellipseName:\"MERIT 1983\"};Xr.SGS85={a:6378136,rf:298.257,ellipseName:\"Soviet Geodetic System 85\"};Xr.GRS80={a:6378137,rf:298.257222101,ellipseName:\"GRS 1980(IUGG, 1980)\"};Xr.IAU76={a:6378140,rf:298.257,ellipseName:\"IAU 1976\"};Xr.airy={a:6377563396e-3,b:635625691e-2,ellipseName:\"Airy 1830\"};Xr.APL4={a:6378137,rf:298.25,ellipseName:\"Appl. Physics. 1965\"};Xr.NWL9D={a:6378145,rf:298.25,ellipseName:\"Naval Weapons Lab., 1965\"};Xr.mod_airy={a:6377340189e-3,b:6356034446e-3,ellipseName:\"Modified Airy\"};Xr.andrae={a:637710443e-2,rf:300,ellipseName:\"Andrae 1876 (Den., Iclnd.)\"};Xr.aust_SA={a:6378160,rf:298.25,ellipseName:\"Australian Natl & S. Amer. 1969\"};Xr.GRS67={a:6378160,rf:298.247167427,ellipseName:\"GRS 67(IUGG 1967)\"};Xr.bessel={a:6377397155e-3,rf:299.1528128,ellipseName:\"Bessel 1841\"};Xr.bess_nam={a:6377483865e-3,rf:299.1528128,ellipseName:\"Bessel 1841 (Namibia)\"};Xr.clrk66={a:63782064e-1,b:63565838e-1,ellipseName:\"Clarke 1866\"};Xr.clrk80={a:6378249145e-3,rf:293.4663,ellipseName:\"Clarke 1880 mod.\"};Xr.clrk80ign={a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:\"Clarke 1880 (IGN)\"};Xr.clrk58={a:6378293645208759e-9,rf:294.2606763692654,ellipseName:\"Clarke 1858\"};Xr.CPM={a:63757387e-1,rf:334.29,ellipseName:\"Comm. des Poids et Mesures 1799\"};Xr.delmbr={a:6376428,rf:311.5,ellipseName:\"Delambre 1810 (Belgium)\"};Xr.engelis={a:637813605e-2,rf:298.2566,ellipseName:\"Engelis 1985\"};Xr.evrst30={a:6377276345e-3,rf:300.8017,ellipseName:\"Everest 1830\"};Xr.evrst48={a:6377304063e-3,rf:300.8017,ellipseName:\"Everest 1948\"};Xr.evrst56={a:6377301243e-3,rf:300.8017,ellipseName:\"Everest 1956\"};Xr.evrst69={a:6377295664e-3,rf:300.8017,ellipseName:\"Everest 1969\"};Xr.evrstSS={a:6377298556e-3,rf:300.8017,ellipseName:\"Everest (Sabah & Sarawak)\"};Xr.fschr60={a:6378166,rf:298.3,ellipseName:\"Fischer (Mercury Datum) 1960\"};Xr.fschr60m={a:6378155,rf:298.3,ellipseName:\"Fischer 1960\"};Xr.fschr68={a:6378150,rf:298.3,ellipseName:\"Fischer 1968\"};Xr.helmert={a:6378200,rf:298.3,ellipseName:\"Helmert 1906\"};Xr.hough={a:6378270,rf:297,ellipseName:\"Hough\"};Xr.intl={a:6378388,rf:297,ellipseName:\"International 1909 (Hayford)\"};Xr.kaula={a:6378163,rf:298.24,ellipseName:\"Kaula 1961\"};Xr.lerch={a:6378139,rf:298.257,ellipseName:\"Lerch 1979\"};Xr.mprts={a:6397300,rf:191,ellipseName:\"Maupertius 1738\"};Xr.new_intl={a:63781575e-1,b:63567722e-1,ellipseName:\"New International 1967\"};Xr.plessis={a:6376523,rf:6355863,ellipseName:\"Plessis 1817 (France)\"};Xr.krass={a:6378245,rf:298.3,ellipseName:\"Krassovsky, 1942\"};Xr.SEasia={a:6378155,b:63567733205e-4,ellipseName:\"Southeast Asia\"};Xr.walbeck={a:6376896,b:63558348467e-4,ellipseName:\"Walbeck\"};Xr.WGS60={a:6378165,rf:298.3,ellipseName:\"WGS 60\"};Xr.WGS66={a:6378145,rf:298.25,ellipseName:\"WGS 66\"};Xr.WGS7={a:6378135,rf:298.26,ellipseName:\"WGS 72\"};var oZ=Xr.WGS84={a:6378137,rf:298.257223563,ellipseName:\"WGS 84\"};Xr.sphere={a:6370997,b:6370997,ellipseName:\"Normal Sphere (r=6370997)\"};function aZ(e,t,r,i){var s=e*e,n=t*t,o=(s-n)/s,c=0;i?(e*=1-o*(Gq+o*(Wq+o*Hq)),s=e*e,o=0):c=Math.sqrt(o);var f=(s-n)/n;return{es:o,e:c,ep2:f}}function lZ(e,t,r,i,s){if(!e){var n=au(Xr,i);n||(n=oZ),e=n.a,t=n.b,r=n.rf}return r&&!t&&(t=(1-1/r)*e),(r===0||Math.abs(e-t)3&&(c.datum_params[3]!==0||c.datum_params[4]!==0||c.datum_params[5]!==0||c.datum_params[6]!==0)&&(c.datum_type=hf,c.datum_params[3]*=Ng,c.datum_params[4]*=Ng,c.datum_params[5]*=Ng,c.datum_params[6]=c.datum_params[6]/1e6+1)),o&&(c.datum_type=Tp,c.grids=o),c.a=r,c.b=i,c.es=s,c.ep2=n,c}var cZ=Jpt;var uZ={};function uB(e,t){var r=new DataView(t),i=eAt(r),s=rAt(r,i),n=iAt(r,s,i),o={header:s,subgrids:n};return uZ[e]=o,o}function hZ(e){if(e===void 0)return null;var t=e.split(\",\");return t.map(tAt)}function tAt(e){if(e.length===0)return null;var t=e[0]===\"@\";return t&&(e=e.slice(1)),e===\"null\"?{name:\"null\",mandatory:!t,grid:null,isNull:!0}:{name:e,mandatory:!t,grid:uZ[e]||null,isNull:!1}}function Xv(e){return e/3600*Math.PI/180}function eAt(e){var t=e.getInt32(8,!1);return t===11?!1:(t=e.getInt32(8,!0),t!==11&&console.warn(\"Failed to detect nadgrid endian-ness, defaulting to little-endian\"),!0)}function rAt(e,t){return{nFields:e.getInt32(8,t),nSubgridFields:e.getInt32(24,t),nSubgrids:e.getInt32(40,t),shiftType:cB(e,56,64).trim(),fromSemiMajorAxis:e.getFloat64(120,t),fromSemiMinorAxis:e.getFloat64(136,t),toSemiMajorAxis:e.getFloat64(152,t),toSemiMinorAxis:e.getFloat64(168,t)}}function cB(e,t,r){return String.fromCharCode.apply(null,new Uint8Array(e.buffer.slice(t,r)))}function iAt(e,t,r){for(var i=176,s=[],n=0;n5e-11?!1:e.datum_type===uf?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]:e.datum_type===hf?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]&&e.datum_params[3]===t.datum_params[3]&&e.datum_params[4]===t.datum_params[4]&&e.datum_params[5]===t.datum_params[5]&&e.datum_params[6]===t.datum_params[6]:!0}function G3(e,t,r){var i=e.x,s=e.y,n=e.z?e.z:0,o,c,f,_;if(s<-de&&s>-1.001*de)s=-de;else if(s>de&&s<1.001*de)s=de;else{if(s<-de)return{x:-1/0,y:-1/0,z:e.z};if(s>de)return{x:1/0,y:1/0,z:e.z}}return i>Math.PI&&(i-=2*Math.PI),c=Math.sin(s),_=Math.cos(s),f=c*c,o=r/Math.sqrt(1-t*f),{x:(o+n)*_*Math.cos(i),y:(o+n)*_*Math.sin(i),z:(o*(1-t)+n)*c}}function W3(e,t,r,i){var s=1e-12,n=s*s,o=30,c,f,_,w,C,R,N,j,Y,rt,$,K,tt,ut=e.x,Pt=e.y,Ot=e.z?e.z:0,Kt,Zt,le;if(c=Math.sqrt(ut*ut+Pt*Pt),f=Math.sqrt(ut*ut+Pt*Pt+Ot*Ot),c/rn&&tti.y||j>i.x||$c&&Math.abs(f.y)>c);if(o<0)return console.log(\"Inverse grid shift iterator failed to converge.\"),i;i.x=Ie(n.x+r.ll[0]),i.y=n.y+r.ll[1]}else isNaN(n.x)||(i.x=e.x+n.x,i.y=e.y+n.y);return i}function mZ(e,t){var r={x:e.x/t.del[0],y:e.y/t.del[1]},i={x:Math.floor(r.x),y:Math.floor(r.y)},s={x:r.x-1*i.x,y:r.y-1*i.y},n={x:Number.NaN,y:Number.NaN},o;if(i.x<0||i.x>=t.lim[0]||i.y<0||i.y>=t.lim[1])return n;o=i.y*t.lim[0]+i.x;var c={x:t.cvs[o][0],y:t.cvs[o][1]};o++;var f={x:t.cvs[o][0],y:t.cvs[o][1]};o+=t.lim[0];var _={x:t.cvs[o][0],y:t.cvs[o][1]};o--;var w={x:t.cvs[o][0],y:t.cvs[o][1]},C=s.x*s.y,R=s.x*(1-s.y),N=(1-s.x)*(1-s.y),j=(1-s.x)*s.y;return n.x=N*c.x+R*f.x+j*w.x+C*_.x,n.y=N*c.y+R*f.y+j*w.y+C*_.y,n}function hB(e,t,r){var i=r.x,s=r.y,n=r.z||0,o,c,f,_={};for(f=0;f<3;f++)if(!(t&&f===2&&r.z===void 0))switch(f===0?(o=i,\"ew\".indexOf(e.axis[f])!==-1?c=\"x\":c=\"y\"):f===1?(o=s,\"ns\".indexOf(e.axis[f])!==-1?c=\"y\":c=\"x\"):(o=n,c=\"z\"),e.axis[f]){case\"e\":_[c]=o;break;case\"w\":_[c]=-o;break;case\"n\":_[c]=o;break;case\"s\":_[c]=-o;break;case\"u\":r[c]!==void 0&&(_.z=o);break;case\"d\":r[c]!==void 0&&(_.z=-o);break;default:return null}return _}function q3(e){var t={x:e[0],y:e[1]};return e.length>2&&(t.z=e[2]),e.length>3&&(t.m=e[3]),t}function yZ(e){_Z(e.x),_Z(e.y)}function _Z(e){if(typeof Number.isFinite==\"function\"){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(typeof e!=\"number\"||e!==e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}function lAt(e,t){return(e.datum.datum_type===uf||e.datum.datum_type===hf||e.datum.datum_type===Tp)&&t.datumCode!==\"WGS84\"||(t.datum.datum_type===uf||t.datum.datum_type===hf||t.datum.datum_type===Tp)&&e.datumCode!==\"WGS84\"}function Vg(e,t,r,i){var s;Array.isArray(r)?r=q3(r):r={x:r.x,y:r.y,z:r.z,m:r.m};var n=r.z!==void 0;if(yZ(r),e.datum&&t.datum&&lAt(e,t)&&(s=new wm(\"WGS84\"),r=Vg(e,s,r,i),e=s),i&&e.axis!==\"enu\"&&(r=hB(e,!1,r)),e.projName===\"longlat\")r={x:r.x*vs,y:r.y*vs,z:r.z||0};else if(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),r=e.inverse(r),!r)return;if(e.from_greenwich&&(r.x+=e.from_greenwich),r=gZ(e.datum,t.datum,r),!!r)return t.from_greenwich&&(r={x:r.x-t.from_greenwich,y:r.y,z:r.z||0}),t.projName===\"longlat\"?r={x:r.x*yc,y:r.y*yc,z:r.z||0}:(r=t.forward(r),t.to_meter&&(r={x:r.x/t.to_meter,y:r.y/t.to_meter,z:r.z||0})),i&&t.axis!==\"enu\"?hB(t,!0,r):(r&&!n&&delete r.z,r)}var vZ=wm(\"WGS84\");function fB(e,t,r,i){var s,n,o;return Array.isArray(r)?(s=Vg(e,t,r,i)||{x:NaN,y:NaN},r.length>2?typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"?typeof s.z==\"number\"?[s.x,s.y,s.z].concat(r.splice(3)):[s.x,s.y,r[2]].concat(r.splice(3)):[s.x,s.y].concat(r.splice(2)):[s.x,s.y]):(n=Vg(e,t,r,i),o=Object.keys(r),o.length===2||o.forEach(function(c){if(typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"){if(c===\"x\"||c===\"y\"||c===\"z\")return}else if(c===\"x\"||c===\"y\")return;n[c]=r[c]}),n)}function xZ(e){return e instanceof wm?e:e.oProj?e.oProj:wm(e)}function cAt(e,t,r){e=xZ(e);var i=!1,s;return typeof t>\"u\"?(t=e,e=vZ,i=!0):(typeof t.x<\"u\"||Array.isArray(t))&&(r=t,t=e,e=vZ,i=!0),t=xZ(t),r?fB(e,t,r):(s={forward:function(n,o){return fB(e,t,n,o)},inverse:function(n,o){return fB(t,e,n,o)}},i&&(s.oProj=t),s)}var vc=cAt;var bZ=6,SZ=\"AJSAJS\",TZ=\"AFAFAF\",Jv=65,xc=73,Ju=79,rS=86,iS=90,MZ={forward:pB,inverse:uAt,toPoint:AB};function pB(e,t){return t=t||5,dAt(hAt({lat:e[1],lon:e[0]}),t)}function uAt(e){var t=mB(PZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat,t.lon,t.lat]:[t.left,t.bottom,t.right,t.top]}function AB(e){var t=mB(PZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function dB(e){return e*(Math.PI/180)}function wZ(e){return 180*(e/Math.PI)}function hAt(e){var t=e.lat,r=e.lon,i=6378137,s=.00669438,n=.9996,o,c,f,_,w,C,R,N=dB(t),j=dB(r),Y,rt;rt=Math.floor((r+180)/6)+1,r===180&&(rt=60),t>=56&&t<64&&r>=3&&r<12&&(rt=32),t>=72&&t<84&&(r>=0&&r<9?rt=31:r>=9&&r<21?rt=33:r>=21&&r<33?rt=35:r>=33&&r<42&&(rt=37)),o=(rt-1)*6-180+3,Y=dB(o),c=s/(1-s),f=i/Math.sqrt(1-s*Math.sin(N)*Math.sin(N)),_=Math.tan(N)*Math.tan(N),w=c*Math.cos(N)*Math.cos(N),C=Math.cos(N)*(j-Y),R=i*((1-s/4-3*s*s/64-5*s*s*s/256)*N-(3*s/8+3*s*s/32+45*s*s*s/1024)*Math.sin(2*N)+(15*s*s/256+45*s*s*s/1024)*Math.sin(4*N)-35*s*s*s/3072*Math.sin(6*N));var $=n*f*(C+(1-_+w)*C*C*C/6+(5-18*_+_*_+72*w-58*c)*C*C*C*C*C/120)+5e5,K=n*(R+f*Math.tan(N)*(C*C/2+(5-_+9*w+4*w*w)*C*C*C*C/24+(61-58*_+_*_+600*w-330*c)*C*C*C*C*C*C/720));return t<0&&(K+=1e7),{northing:Math.round(K),easting:Math.round($),zoneNumber:rt,zoneLetter:fAt(t)}}function mB(e){var t=e.northing,r=e.easting,i=e.zoneLetter,s=e.zoneNumber;if(s<0||s>60)return null;var n=.9996,o=6378137,c=.00669438,f,_=(1-Math.sqrt(1-c))/(1+Math.sqrt(1-c)),w,C,R,N,j,Y,rt,$,K,tt=r-5e5,ut=t;i<\"N\"&&(ut-=1e7),rt=(s-1)*6-180+3,f=c/(1-c),Y=ut/n,$=Y/(o*(1-c/4-3*c*c/64-5*c*c*c/256)),K=$+(3*_/2-27*_*_*_/32)*Math.sin(2*$)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*$)+151*_*_*_/96*Math.sin(6*$),w=o/Math.sqrt(1-c*Math.sin(K)*Math.sin(K)),C=Math.tan(K)*Math.tan(K),R=f*Math.cos(K)*Math.cos(K),N=o*(1-c)/Math.pow(1-c*Math.sin(K)*Math.sin(K),1.5),j=tt/(w*n);var Pt=K-w*Math.tan(K)/N*(j*j/2-(5+3*C+10*R-4*R*R-9*f)*j*j*j*j/24+(61+90*C+298*R+45*C*C-252*f-3*R*R)*j*j*j*j*j*j/720);Pt=wZ(Pt);var Ot=(j-(1+2*C+R)*j*j*j/6+(5-2*R+28*C-3*R*R+8*f+24*C*C)*j*j*j*j*j/120)/Math.cos(K);Ot=rt+wZ(Ot);var Kt;if(e.accuracy){var Zt=mB({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});Kt={top:Zt.lat,right:Zt.lon,bottom:Pt,left:Ot}}else Kt={lat:Pt,lon:Ot};return Kt}function fAt(e){var t=\"Z\";return 84>=e&&e>=72?t=\"X\":72>e&&e>=64?t=\"W\":64>e&&e>=56?t=\"V\":56>e&&e>=48?t=\"U\":48>e&&e>=40?t=\"T\":40>e&&e>=32?t=\"S\":32>e&&e>=24?t=\"R\":24>e&&e>=16?t=\"Q\":16>e&&e>=8?t=\"P\":8>e&&e>=0?t=\"N\":0>e&&e>=-8?t=\"M\":-8>e&&e>=-16?t=\"L\":-16>e&&e>=-24?t=\"K\":-24>e&&e>=-32?t=\"J\":-32>e&&e>=-40?t=\"H\":-40>e&&e>=-48?t=\"G\":-48>e&&e>=-56?t=\"F\":-56>e&&e>=-64?t=\"E\":-64>e&&e>=-72?t=\"D\":-72>e&&e>=-80&&(t=\"C\"),t}function dAt(e,t){var r=\"00000\"+e.easting,i=\"00000\"+e.northing;return e.zoneNumber+e.zoneLetter+pAt(e.easting,e.northing,e.zoneNumber)+r.substr(r.length-5,t)+i.substr(i.length-5,t)}function pAt(e,t,r){var i=EZ(r),s=Math.floor(e/1e5),n=Math.floor(t/1e5)%20;return AAt(s,n,i)}function EZ(e){var t=e%bZ;return t===0&&(t=bZ),t}function AAt(e,t,r){var i=r-1,s=SZ.charCodeAt(i),n=TZ.charCodeAt(i),o=s+e-1,c=n+t,f=!1;o>iS&&(o=o-iS+Jv-1,f=!0),(o===xc||sxc||(o>xc||sJu||(o>Ju||siS&&(o=o-iS+Jv-1),c>rS?(c=c-rS+Jv-1,f=!0):f=!1,(c===xc||nxc||(c>xc||nJu||(c>Ju||nrS&&(c=c-rS+Jv-1);var _=String.fromCharCode(o)+String.fromCharCode(c);return _}function PZ(e){if(e&&e.length===0)throw\"MGRSPoint coverting from nothing\";for(var t=e.length,r=null,i=\"\",s,n=0;!/[A-Z]/.test(s=e.charAt(n));){if(n>=2)throw\"MGRSPoint bad conversion from: \"+e;i+=s,n++}var o=parseInt(i,10);if(n===0||n+3>t)throw\"MGRSPoint bad conversion from: \"+e;var c=e.charAt(n++);if(c<=\"A\"||c===\"B\"||c===\"Y\"||c>=\"Z\"||c===\"I\"||c===\"O\")throw\"MGRSPoint zone letter \"+c+\" not handled: \"+e;r=e.substring(n,n+=2);for(var f=EZ(o),_=mAt(r.charAt(0),f),w=gAt(r.charAt(1),f);w<_At(c);)w+=2e6;var C=t-n;if(C%2!==0)throw`MGRSPoint has to have an even number \nof digits after the zone letter and two 100km letters - front \nhalf for easting meters, second half for \nnorthing meters`+e;var R=C/2,N=0,j=0,Y,rt,$,K,tt;return R>0&&(Y=1e5/Math.pow(10,R),rt=e.substring(n,n+R),N=parseFloat(rt)*Y,$=e.substring(n+R),j=parseFloat($)*Y),K=N+_,tt=j+w,{easting:K,northing:tt,zoneLetter:c,zoneNumber:o,accuracy:Y}}function mAt(e,t){for(var r=SZ.charCodeAt(t-1),i=1e5,s=!1;r!==e.charCodeAt(0);){if(r++,r===xc&&r++,r===Ju&&r++,r>iS){if(s)throw\"Bad character: \"+e;r=Jv,s=!0}i+=1e5}return i}function gAt(e,t){if(e>\"V\")throw\"MGRSPoint given invalid Northing \"+e;for(var r=TZ.charCodeAt(t-1),i=0,s=!1;r!==e.charCodeAt(0);){if(r++,r===xc&&r++,r===Ju&&r++,r>rS){if(s)throw\"Bad character: \"+e;r=Jv,s=!0}i+=1e5}return i}function _At(e){var t;switch(e){case\"C\":t=11e5;break;case\"D\":t=2e6;break;case\"E\":t=28e5;break;case\"F\":t=37e5;break;case\"G\":t=46e5;break;case\"H\":t=55e5;break;case\"J\":t=64e5;break;case\"K\":t=73e5;break;case\"L\":t=82e5;break;case\"M\":t=91e5;break;case\"N\":t=0;break;case\"P\":t=8e5;break;case\"Q\":t=17e5;break;case\"R\":t=26e5;break;case\"S\":t=35e5;break;case\"T\":t=44e5;break;case\"U\":t=53e5;break;case\"V\":t=62e5;break;case\"W\":t=7e6;break;case\"X\":t=79e5;break;default:t=-1}if(t>=0)return t;throw\"Invalid zone letter: \"+e}function tx(e,t,r){if(!(this instanceof tx))return new tx(e,t,r);if(Array.isArray(e))this.x=e[0],this.y=e[1],this.z=e[2]||0;else if(typeof e==\"object\")this.x=e.x,this.y=e.y,this.z=e.z||0;else if(typeof e==\"string\"&&typeof t>\"u\"){var i=e.split(\",\");this.x=parseFloat(i[0],10),this.y=parseFloat(i[1],10),this.z=parseFloat(i[2],10)||0}else this.x=e,this.y=t,this.z=r||0;console.warn(\"proj4.Point will be removed in version 3, use proj4.toPoint\")}tx.fromMGRS=function(e){return new tx(AB(e))};tx.prototype.toMGRS=function(e){return pB([this.x,this.y],e)};var IZ=tx;var yAt=1,vAt=.25,CZ=.046875,LZ=.01953125,kZ=.01068115234375,xAt=.75,bAt=.46875,wAt=.013020833333333334,SAt=.007120768229166667,TAt=.3645833333333333,MAt=.005696614583333333,EAt=.3076171875;function Z3(e){var t=[];t[0]=yAt-e*(vAt+e*(CZ+e*(LZ+e*kZ))),t[1]=e*(xAt-e*(CZ+e*(LZ+e*kZ)));var r=e*e;return t[2]=r*(bAt-e*(wAt+e*SAt)),r*=e,t[3]=r*(TAt-e*MAt),t[4]=r*e*EAt,t}function jg(e,t,r,i){return r*=t,t*=t,i[0]*e-r*(i[1]+t*(i[2]+t*(i[3]+t*i[4])))}var PAt=20;function Y3(e,t,r){for(var i=1/(1-t),s=e,n=PAt;n;--n){var o=Math.sin(s),c=1-t*o*o;if(c=(jg(s,o,Math.cos(s),r)-e)*(c*Math.sqrt(c))*i,s-=c,Math.abs(c)we?Math.tan(r):0,Y=Math.pow(j,2),rt=Math.pow(Y,2);s=1-this.es*Math.pow(c,2),w=w/Math.sqrt(s);var $=jg(r,c,f,this.en);n=this.a*(this.k0*w*(1+C/6*(1-Y+R+C/20*(5-18*Y+rt+14*R-58*Y*R+C/42*(61+179*rt-rt*Y-479*Y)))))+this.x0,o=this.a*(this.k0*($-this.ml0+c*i*w/2*(1+C/12*(5-Y+9*R+4*N+C/30*(61+rt-58*Y+270*R-330*Y*R+C/56*(1385+543*rt-rt*Y-3111*Y))))))+this.y0}else{var _=f*Math.sin(i);if(Math.abs(Math.abs(_)-1)=1){if(_-1>we)return 93;o=0}else o=Math.acos(o);r<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return e.x=n,e.y=o,e}function LAt(e){var t,r,i,s,n=(e.x-this.x0)*(1/this.a),o=(e.y-this.y0)*(1/this.a);if(this.es)if(t=this.ml0+o/this.k0,r=Y3(t,this.es,this.en),Math.abs(r)we?Math.tan(r):0,j=this.ep2*Math.pow(R,2),Y=Math.pow(j,2),rt=Math.pow(N,2),$=Math.pow(rt,2);t=1-this.es*Math.pow(C,2);var K=n*Math.sqrt(t)/this.k0,tt=Math.pow(K,2);t=t*N,i=r-t*tt/(1-this.es)*.5*(1-tt/12*(5+3*rt-9*j*rt+j-4*Y-tt/30*(61+90*rt-252*j*rt+45*$+46*j-tt/56*(1385+3633*rt+4095*$+1574*$*rt)))),s=Ie(this.long0+K*(1-tt/6*(1+2*rt+j-tt/20*(5+28*rt+24*$+8*j*rt+6*j-tt/42*(61+662*rt+1320*$+720*$*rt))))/R)}else i=de*hd(o),s=0;else{var c=Math.exp(n/this.k0),f=.5*(c-1/c),_=this.lat0+o/this.k0,w=Math.cos(_);t=Math.sqrt((1-Math.pow(w,2))/(1+Math.pow(f,2))),i=Math.asin(t),o<0&&(i=-i),f===0&&w===0?s=0:s=Ie(Math.atan2(f,w)+this.long0)}return e.x=s,e.y=i,e}var kAt=[\"Fast_Transverse_Mercator\",\"Fast Transverse Mercator\"],ex={init:IAt,forward:CAt,inverse:LAt,names:kAt};function Q3(e){var t=Math.exp(e);return t=(t-1/t)/2,t}function Sa(e,t){e=Math.abs(e),t=Math.abs(t);var r=Math.max(e,t),i=Math.min(e,t)/(r||1);return r*Math.sqrt(1+Math.pow(i,2))}function RZ(e){var t=1+e,r=t-1;return r===0?e:e*Math.log(t)/r}function DZ(e){var t=Math.abs(e);return t=RZ(t*(1+t/(Sa(1,t)+1))),e<0?-t:t}function $3(e,t){for(var r=2*Math.cos(2*t),i=e.length-1,s=e[i],n=0,o;--i>=0;)o=-n+r*s+e[i],n=s,s=o;return t+o*Math.sin(2*t)}function OZ(e,t){for(var r=2*Math.cos(t),i=e.length-1,s=e[i],n=0,o;--i>=0;)o=-n+r*s+e[i],n=s,s=o;return Math.sin(t)*o}function BZ(e){var t=Math.exp(e);return t=(t+1/t)/2,t}function gB(e,t,r){for(var i=Math.sin(t),s=Math.cos(t),n=Q3(r),o=BZ(r),c=2*s*o,f=-2*i*n,_=e.length-1,w=e[_],C=0,R=0,N=0,j,Y;--_>=0;)j=R,Y=C,R=w,C=N,w=-j+c*R-f*C+e[_],N=-Y+f*R+c*C;return c=i*o,f=s*n,[c*w-f*N,c*N+f*w]}function RAt(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');this.approx&&(ex.init.apply(this),this.forward=ex.forward,this.inverse=ex.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var e=this.es/(1+Math.sqrt(1-this.es)),t=e/(2-e),r=t;this.cgb[0]=t*(2+t*(-2/3+t*(-2+t*(116/45+t*(26/45+t*(-2854/675)))))),this.cbg[0]=t*(-2+t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))),r=r*t,this.cgb[1]=r*(7/3+t*(-8/5+t*(-227/45+t*(2704/315+t*(2323/945))))),this.cbg[1]=r*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),r=r*t,this.cgb[2]=r*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=r*(-26/15+t*(34/21+t*(8/5+t*(-12686/2835)))),r=r*t,this.cgb[3]=r*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=r*(1237/630+t*(-12/5+t*(-24832/14175))),r=r*t,this.cgb[4]=r*(4174/315+t*(-144838/6237)),this.cbg[4]=r*(-734/315+t*(109598/31185)),r=r*t,this.cgb[5]=r*(601676/22275),this.cbg[5]=r*(444337/155925),r=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+r*(1/4+r*(1/64+r/256))),this.utg[0]=t*(-.5+t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=r*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=r*(13/48+t*(-3/5+t*(557/1440+t*(281/630+t*(-1983433/1935360))))),r=r*t,this.utg[2]=r*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=r*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),r=r*t,this.utg[3]=r*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=r*(49561/161280+t*(-179/168+t*(6601661/7257600))),r=r*t,this.utg[4]=r*(-4583/161280+t*(108847/3991680)),this.gtu[4]=r*(34729/80640+t*(-3418889/1995840)),r=r*t,this.utg[5]=r*(-20648693/638668800),this.gtu[5]=r*(212378941/319334400);var i=$3(this.cbg,this.lat0);this.Zb=-this.Qn*(i+OZ(this.gtu,2*i))}function DAt(e){var t=Ie(e.x-this.long0),r=e.y;r=$3(this.cbg,r);var i=Math.sin(r),s=Math.cos(r),n=Math.sin(t),o=Math.cos(t);r=Math.atan2(i,o*s),t=Math.atan2(n*s,Sa(i,s*o)),t=DZ(Math.tan(t));var c=gB(this.gtu,2*r,2*t);r=r+c[0],t=t+c[1];var f,_;return Math.abs(t)<=2.623395162778?(f=this.a*(this.Qn*t)+this.x0,_=this.a*(this.Qn*r+this.Zb)+this.y0):(f=1/0,_=1/0),e.x=f,e.y=_,e}function OAt(e){var t=(e.x-this.x0)*(1/this.a),r=(e.y-this.y0)*(1/this.a);r=(r-this.Zb)/this.Qn,t=t/this.Qn;var i,s;if(Math.abs(t)<=2.623395162778){var n=gB(this.utg,2*r,2*t);r=r+n[0],t=t+n[1],t=Math.atan(Q3(t));var o=Math.sin(r),c=Math.cos(r),f=Math.sin(t),_=Math.cos(t);r=Math.atan2(o*_,Sa(f,_*c)),t=Math.atan2(f,_*c),i=Ie(t+this.long0),s=$3(this.cgb,r)}else i=1/0,s=1/0;return e.x=i,e.y=s,e}var BAt=[\"Extended_Transverse_Mercator\",\"Extended Transverse Mercator\",\"etmerc\",\"Transverse_Mercator\",\"Transverse Mercator\",\"Gauss Kruger\",\"Gauss_Kruger\",\"tmerc\"],rx={init:RAt,forward:DAt,inverse:OAt,names:BAt};function FZ(e,t){if(e===void 0){if(e=Math.floor((Ie(t)+Math.PI)*30/Math.PI)+1,e<0)return 0;if(e>60)return 60}return e}var FAt=\"etmerc\";function zAt(){var e=FZ(this.zone,this.long0);if(e===void 0)throw new Error(\"unknown utm zone\");this.lat0=0,this.long0=(6*Math.abs(e)-183)*vs,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,rx.init.apply(this),this.forward=rx.forward,this.inverse=rx.inverse}var NAt=[\"Universal Transverse Mercator System\",\"utm\"],zZ={init:zAt,names:NAt,dependsOn:FAt};function X3(e,t){return Math.pow((1-e)/(1+e),t)}var UAt=20;function VAt(){var e=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*e*e),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(e/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Fi)/(Math.pow(Math.tan(.5*this.lat0+Fi),this.C)*X3(this.e*e,this.ratexp))}function jAt(e){var t=e.x,r=e.y;return e.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*r+Fi),this.C)*X3(this.e*Math.sin(r),this.ratexp))-de,e.x=this.C*t,e}function GAt(e){for(var t=1e-14,r=e.x/this.C,i=e.y,s=Math.pow(Math.tan(.5*i+Fi)/this.K,1/this.C),n=UAt;n>0&&(i=2*Math.atan(s*X3(this.e*Math.sin(e.y),-.5*this.e))-de,!(Math.abs(i-e.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=we&&Math.abs(Math.cos(this.lat_ts))>we&&(this.k0=.5*this.cons*il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/kl(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=il(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-de,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function XAt(e){var t=e.x,r=e.y,i=Math.sin(r),s=Math.cos(r),n,o,c,f,_,w,C=Ie(t-this.long0);return Math.abs(Math.abs(t-this.long0)-Math.PI)<=we&&Math.abs(r+this.lat0)<=we?(e.x=NaN,e.y=NaN,e):this.sphere?(n=2*this.k0/(1+this.sinlat0*i+this.coslat0*s*Math.cos(C)),e.x=this.a*n*s*Math.sin(C)+this.x0,e.y=this.a*n*(this.coslat0*i-this.sinlat0*s*Math.cos(C))+this.y0,e):(o=2*Math.atan(this.ssfn_(r,i,this.e))-de,f=Math.cos(o),c=Math.sin(o),Math.abs(this.coslat0)<=we?(_=kl(this.e,r*this.con,this.con*i),w=2*this.a*this.k0*_/this.cons,e.x=this.x0+w*Math.sin(t-this.long0),e.y=this.y0-this.con*w*Math.cos(t-this.long0),e):(Math.abs(this.sinlat0)0?t=Ie(this.long0+Math.atan2(e.x,-1*e.y)):t=Ie(this.long0+Math.atan2(e.x,e.y)):t=Ie(this.long0+Math.atan2(e.x*Math.sin(c),o*this.coslat0*Math.cos(c)-e.y*this.sinlat0*Math.sin(c))),e.x=t,e.y=r,e)}else if(Math.abs(this.coslat0)<=we){if(o<=we)return r=this.lat0,t=this.long0,e.x=t,e.y=r,e;e.x*=this.con,e.y*=this.con,i=o*this.cons/(2*this.a*this.k0),r=this.con*Ep(this.e,i),t=this.con*Ie(this.con*this.long0+Math.atan2(e.x,-1*e.y))}else s=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,o<=we?n=this.X0:(n=Math.asin(Math.cos(s)*this.sinX0+e.y*Math.sin(s)*this.cosX0/o),t=Ie(this.long0+Math.atan2(e.x*Math.sin(s),o*this.cosX0*Math.cos(s)-e.y*this.sinX0*Math.sin(s)))),r=-1*Ep(this.e,Math.tan(.5*(de+n)));return e.x=t,e.y=r,e}var JAt=[\"stere\",\"Stereographic_South_Pole\",\"Polar Stereographic (variant B)\",\"Polar_Stereographic\"],UZ={init:$At,forward:XAt,inverse:KAt,names:JAt,ssfn_:QAt};function tmt(){var e=this.lat0;this.lambda0=this.long0;var t=Math.sin(e),r=this.a,i=this.rf,s=1/i,n=2*s-Math.pow(s,2),o=this.e=Math.sqrt(n);this.R=this.k0*r*Math.sqrt(1-n)/(1-n*Math.pow(t,2)),this.alpha=Math.sqrt(1+n/(1-n)*Math.pow(Math.cos(e),4)),this.b0=Math.asin(t/this.alpha);var c=Math.log(Math.tan(Math.PI/4+this.b0/2)),f=Math.log(Math.tan(Math.PI/4+e/2)),_=Math.log((1+o*t)/(1-o*t));this.K=c-this.alpha*f+this.alpha*o/2*_}function emt(e){var t=Math.log(Math.tan(Math.PI/4-e.y/2)),r=this.e/2*Math.log((1+this.e*Math.sin(e.y))/(1-this.e*Math.sin(e.y))),i=-this.alpha*(t+r)+this.K,s=2*(Math.atan(Math.exp(i))-Math.PI/4),n=this.alpha*(e.x-this.lambda0),o=Math.atan(Math.sin(n)/(Math.sin(this.b0)*Math.tan(s)+Math.cos(this.b0)*Math.cos(n))),c=Math.asin(Math.cos(this.b0)*Math.sin(s)-Math.sin(this.b0)*Math.cos(s)*Math.cos(n));return e.y=this.R/2*Math.log((1+Math.sin(c))/(1-Math.sin(c)))+this.y0,e.x=this.R*o+this.x0,e}function rmt(e){for(var t=e.x-this.x0,r=e.y-this.y0,i=t/this.R,s=2*(Math.atan(Math.exp(r/this.R))-Math.PI/4),n=Math.asin(Math.cos(this.b0)*Math.sin(s)+Math.sin(this.b0)*Math.cos(s)*Math.cos(i)),o=Math.atan(Math.sin(i)/(Math.cos(this.b0)*Math.cos(i)-Math.sin(this.b0)*Math.tan(s))),c=this.lambda0+o/this.alpha,f=0,_=n,w=-1e3,C=0;Math.abs(_-w)>1e-7;){if(++C>20)return;f=1/this.alpha*(Math.log(Math.tan(Math.PI/4+n/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(_))/2)),w=_,_=2*Math.atan(Math.exp(f))-Math.PI/2}return e.x=c,e.y=_,e}var imt=[\"somerc\"],VZ={init:tmt,forward:emt,inverse:rmt,names:imt};var ix=1e-7;function nmt(e){var t=[\"Hotine_Oblique_Mercator\",\"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\"],r=typeof e.PROJECTION==\"object\"?Object.keys(e.PROJECTION)[0]:e.PROJECTION;return\"no_uoff\"in e||\"no_off\"in e||t.indexOf(r)!==-1}function smt(){var e,t,r,i,s,n,o,c,f,_,w=0,C,R=0,N=0,j=0,Y=0,rt=0,$=0,K;this.no_off=nmt(this),this.no_rot=\"no_rot\"in this;var tt=!1;\"alpha\"in this&&(tt=!0);var ut=!1;if(\"rectified_grid_angle\"in this&&(ut=!0),tt&&($=this.alpha),ut&&(w=this.rectified_grid_angle*vs),tt||ut)R=this.longc;else if(N=this.long1,Y=this.lat1,j=this.long2,rt=this.lat2,Math.abs(Y-rt)<=ix||(e=Math.abs(Y))<=ix||Math.abs(e-de)<=ix||Math.abs(Math.abs(this.lat0)-de)<=ix||Math.abs(Math.abs(rt)-de)<=ix)throw new Error;var Pt=1-this.es;t=Math.sqrt(Pt),Math.abs(this.lat0)>we?(c=Math.sin(this.lat0),r=Math.cos(this.lat0),e=1-this.es*c*c,this.B=r*r,this.B=Math.sqrt(1+this.es*this.B*this.B/Pt),this.A=this.B*this.k0*t/e,i=this.B*t/(r*Math.sqrt(e)),s=i*i-1,s<=0?s=0:(s=Math.sqrt(s),this.lat0<0&&(s=-s)),this.E=s+=i,this.E*=Math.pow(kl(this.e,this.lat0,c),this.B)):(this.B=1/t,this.A=this.k0,this.E=i=s=1),tt||ut?(tt?(C=Math.asin(Math.sin($)/i),ut||(w=$)):(C=w,$=Math.asin(i*Math.sin(C))),this.lam0=R-Math.asin(.5*(s-1/s)*Math.tan(C))/this.B):(n=Math.pow(kl(this.e,Y,Math.sin(Y)),this.B),o=Math.pow(kl(this.e,rt,Math.sin(rt)),this.B),s=this.E/n,f=(o-n)/(o+n),_=this.E*this.E,_=(_-o*n)/(_+o*n),e=N-j,e<-Math.pi?j-=bm:e>Math.pi&&(j+=bm),this.lam0=Ie(.5*(N+j)-Math.atan(_*Math.tan(.5*this.B*(N-j))/f)/this.B),C=Math.atan(2*Math.sin(this.B*Ie(N-this.lam0))/(s-1/s)),w=$=Math.asin(i*Math.sin(C))),this.singam=Math.sin(C),this.cosgam=Math.cos(C),this.sinrot=Math.sin(w),this.cosrot=Math.cos(w),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,K=this.A*this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(i*i-1)/Math.cos($))),this.lat0<0&&(this.u_0=-this.u_0)),s=.5*C,this.v_pole_n=this.ArB*Math.log(Math.tan(Fi-s)),this.v_pole_s=this.ArB*Math.log(Math.tan(Fi+s))}function omt(e){var t={},r,i,s,n,o,c,f,_;if(e.x=e.x-this.lam0,Math.abs(Math.abs(e.y)-de)>we){if(o=this.E/Math.pow(kl(this.e,e.y,Math.sin(e.y)),this.B),c=1/o,r=.5*(o-c),i=.5*(o+c),n=Math.sin(this.B*e.x),s=(r*this.singam-n*this.cosgam)/i,Math.abs(Math.abs(s)-1)0?this.v_pole_n:this.v_pole_s,f=this.ArB*e.y;return this.no_rot?(t.x=f,t.y=_):(f-=this.u_0,t.x=_*this.cosrot+f*this.sinrot,t.y=f*this.cosrot-_*this.sinrot),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function amt(e){var t,r,i,s,n,o,c,f={};if(e.x=(e.x-this.x0)*(1/this.a),e.y=(e.y-this.y0)*(1/this.a),this.no_rot?(r=e.y,t=e.x):(r=e.x*this.cosrot-e.y*this.sinrot,t=e.y*this.cosrot+e.x*this.sinrot+this.u_0),i=Math.exp(-this.BrA*r),s=.5*(i-1/i),n=.5*(i+1/i),o=Math.sin(this.BrA*t),c=(o*this.cosgam+s*this.singam)/n,Math.abs(Math.abs(c)-1)we?this.ns=Math.log(i/c)/Math.log(s/f):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=i/(this.ns*Math.pow(s,this.ns)),this.rh=this.a*this.f0*Math.pow(_,this.ns),this.title||(this.title=\"Lambert Conformal Conic\")}}function umt(e){var t=e.x,r=e.y;Math.abs(2*Math.abs(r)-Math.PI)<=we&&(r=hd(r)*(de-2*we));var i=Math.abs(Math.abs(r)-de),s,n;if(i>we)s=kl(this.e,r,Math.sin(r)),n=this.a*this.f0*Math.pow(s,this.ns);else{if(i=r*this.ns,i<=0)return null;n=0}var o=this.ns*Ie(t-this.long0);return e.x=this.k0*(n*Math.sin(o))+this.x0,e.y=this.k0*(this.rh-n*Math.cos(o))+this.y0,e}function hmt(e){var t,r,i,s,n,o=(e.x-this.x0)/this.k0,c=this.rh-(e.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(o*o+c*c),r=1):(t=-Math.sqrt(o*o+c*c),r=-1);var f=0;if(t!==0&&(f=Math.atan2(r*o,r*c)),t!==0||this.ns>0){if(r=1/this.ns,i=Math.pow(t/(this.a*this.f0),r),s=Ep(this.e,i),s===-9999)return null}else s=-de;return n=Ie(f/this.ns+this.long0),e.x=n,e.y=s,e}var fmt=[\"Lambert Tangential Conformal Conic Projection\",\"Lambert_Conformal_Conic\",\"Lambert_Conformal_Conic_1SP\",\"Lambert_Conformal_Conic_2SP\",\"lcc\",\"Lambert Conic Conformal (1SP)\",\"Lambert Conic Conformal (2SP)\"],GZ={init:cmt,forward:umt,inverse:hmt,names:fmt};function dmt(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function pmt(e){var t,r,i,s,n,o,c,f=e.x,_=e.y,w=Ie(f-this.long0);return t=Math.pow((1+this.e*Math.sin(_))/(1-this.e*Math.sin(_)),this.alfa*this.e/2),r=2*(Math.atan(this.k*Math.pow(Math.tan(_/2+this.s45),this.alfa)/t)-this.s45),i=-w*this.alfa,s=Math.asin(Math.cos(this.ad)*Math.sin(r)+Math.sin(this.ad)*Math.cos(r)*Math.cos(i)),n=Math.asin(Math.cos(r)*Math.sin(i)/Math.cos(s)),o=this.n*n,c=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(s/2+this.s45),this.n),e.y=c*Math.cos(o)/1,e.x=c*Math.sin(o)/1,this.czech||(e.y*=-1,e.x*=-1),e}function Amt(e){var t,r,i,s,n,o,c,f,_=e.x;e.x=e.y,e.y=_,this.czech||(e.y*=-1,e.x*=-1),o=Math.sqrt(e.x*e.x+e.y*e.y),n=Math.atan2(e.y,e.x),s=n/Math.sin(this.s0),i=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(i)-Math.sin(this.ad)*Math.cos(i)*Math.cos(s)),r=Math.asin(Math.cos(i)*Math.sin(s)/Math.cos(t)),e.x=this.long0-r/this.alfa,c=t,f=0;var w=0;do e.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(c))/(1-this.e*Math.sin(c)),this.e/2))-this.s45),Math.abs(c-e.y)<1e-10&&(f=1),c=e.y,w+=1;while(f===0&&w<15);return w>=15?null:e}var mmt=[\"Krovak\",\"krovak\"],WZ={init:dmt,forward:pmt,inverse:Amt,names:mmt};function Lo(e,t,r,i,s){return e*s-t*Math.sin(2*s)+r*Math.sin(4*s)-i*Math.sin(6*s)}function Pp(e){return 1-.25*e*(1+e/16*(3+1.25*e))}function Ip(e){return .375*e*(1+.25*e*(1+.46875*e))}function Cp(e){return .05859375*e*e*(1+.75*e)}function Lp(e){return e*e*e*(35/3072)}function kp(e,t,r){var i=t*r;return e/Math.sqrt(1-i*i)}function ff(e){return Math.abs(e)1e-7?(r=e*t,(1-e*e)*(t/(1-r*r)-.5/e*Math.log((1-r)/(1+r)))):2*t}var xmt=1,bmt=2,wmt=3,Smt=4;function Tmt(){var e=Math.abs(this.lat0);if(Math.abs(e-de)0){var t;switch(this.qp=df(this.e,1),this.mmf=.5/(1-this.es),this.apa=Dmt(this.es),this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=df(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Mmt(e){var t,r,i,s,n,o,c,f,_,w,C=e.x,R=e.y;if(C=Ie(C-this.long0),this.sphere){if(n=Math.sin(R),w=Math.cos(R),i=Math.cos(C),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(r=this.mode===this.EQUIT?1+w*i:1+this.sinph0*n+this.cosph0*w*i,r<=we)return null;r=Math.sqrt(2/r),t=r*w*Math.sin(C),r*=this.mode===this.EQUIT?n:this.cosph0*n-this.sinph0*w*i}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(i=-i),Math.abs(R+this.lat0)=0?(t=(_=Math.sqrt(o))*s,r=i*(this.mode===this.S_POLE?_:-_)):t=r=0;break}}return e.x=this.a*t+this.x0,e.y=this.a*r+this.y0,e}function Emt(e){e.x-=this.x0,e.y-=this.y0;var t=e.x/this.a,r=e.y/this.a,i,s,n,o,c,f,_;if(this.sphere){var w=0,C,R=0;if(C=Math.sqrt(t*t+r*r),s=C*.5,s>1)return null;switch(s=2*Math.asin(s),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(R=Math.sin(s),w=Math.cos(s)),this.mode){case this.EQUIT:s=Math.abs(C)<=we?0:Math.asin(r*R/C),t*=R,r=w*C;break;case this.OBLIQ:s=Math.abs(C)<=we?this.lat0:Math.asin(w*this.sinph0+r*R*this.cosph0/C),t*=R*this.cosph0,r=(w-Math.sin(s)*this.sinph0)*C;break;case this.N_POLE:r=-r,s=de-s;break;case this.S_POLE:s-=de;break}i=r===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(t,r)}else{if(_=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(t/=this.dd,r*=this.dd,f=Math.sqrt(t*t+r*r),f1&&(e=e>1?1:-1),Math.asin(e)}function Fmt(){Math.abs(this.lat1+this.lat2)we?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function zmt(e){var t=e.x,r=e.y;this.sin_phi=Math.sin(r),this.cos_phi=Math.cos(r);var i=df(this.e3,this.sin_phi),s=this.a*Math.sqrt(this.c-this.ns0*i)/this.ns0,n=this.ns0*Ie(t-this.long0),o=s*Math.sin(n)+this.x0,c=this.rh-s*Math.cos(n)+this.y0;return e.x=o,e.y=c,e}function Nmt(e){var t,r,i,s,n,o;return e.x-=this.x0,e.y=this.rh-e.y+this.y0,this.ns0>=0?(t=Math.sqrt(e.x*e.x+e.y*e.y),i=1):(t=-Math.sqrt(e.x*e.x+e.y*e.y),i=-1),s=0,t!==0&&(s=Math.atan2(i*e.x,i*e.y)),i=t*this.ns0/this.a,this.sphere?o=Math.asin((this.c-i*i)/(2*this.ns0)):(r=(this.c-i*i)/this.ns0,o=this.phi1z(this.e3,r)),n=Ie(s/this.ns0+this.long0),e.x=n,e.y=o,e}function Umt(e,t){var r,i,s,n,o,c=bc(.5*t);if(e0||Math.abs(o)<=we?(c=this.x0+this.a*n*r*Math.sin(i)/o,f=this.y0+this.a*n*(this.cos_p14*t-this.sin_p14*r*s)/o):(c=this.x0+this.infinity_dist*r*Math.sin(i),f=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*r*s)),e.x=c,e.y=f,e}function Wmt(e){var t,r,i,s,n,o;return e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,(t=Math.sqrt(e.x*e.x+e.y*e.y))?(s=Math.atan2(t,this.rc),r=Math.sin(s),i=Math.cos(s),o=bc(i*this.sin_p14+e.y*r*this.cos_p14/t),n=Math.atan2(e.x*r,t*this.cos_p14*i-e.y*this.sin_p14*r),n=Ie(this.long0+n)):(o=this.phic0,n=0),e.x=n,e.y=o,e}var Hmt=[\"gnom\"],YZ={init:jmt,forward:Gmt,inverse:Wmt,names:Hmt};function QZ(e,t){var r=1-(1-e*e)/(2*e)*Math.log((1-e)/(1+e));if(Math.abs(Math.abs(t)-r)<1e-6)return t<0?-1*de:de;for(var i=Math.asin(.5*t),s,n,o,c,f=0;f<30;f++)if(n=Math.sin(i),o=Math.cos(i),c=e*n,s=Math.pow(1-c*c,2)/(2*o)*(t/(1-e*e)-n/(1-c*c)+.5/e*Math.log((1-c)/(1+c))),i+=s,Math.abs(s)<=1e-10)return i;return NaN}function qmt(){this.sphere||(this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function Zmt(e){var t=e.x,r=e.y,i,s,n=Ie(t-this.long0);if(this.sphere)i=this.x0+this.a*n*Math.cos(this.lat_ts),s=this.y0+this.a*Math.sin(r)/Math.cos(this.lat_ts);else{var o=df(this.e,Math.sin(r));i=this.x0+this.a*this.k0*n,s=this.y0+this.a*o*.5/this.k0}return e.x=i,e.y=s,e}function Ymt(e){e.x-=this.x0,e.y-=this.y0;var t,r;return this.sphere?(t=Ie(this.long0+e.x/this.a/Math.cos(this.lat_ts)),r=Math.asin(e.y/this.a*Math.cos(this.lat_ts))):(r=QZ(this.e,2*e.y*this.k0/this.a),t=Ie(this.long0+e.x/(this.a*this.k0))),e.x=t,e.y=r,e}var Qmt=[\"cea\"],$Z={init:qmt,forward:Zmt,inverse:Ymt,names:Qmt};function $mt(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Equidistant Cylindrical (Plate Carre)\",this.rc=Math.cos(this.lat_ts)}function Xmt(e){var t=e.x,r=e.y,i=Ie(t-this.long0),s=ff(r-this.lat0);return e.x=this.x0+this.a*i*this.rc,e.y=this.y0+this.a*s,e}function Kmt(e){var t=e.x,r=e.y;return e.x=Ie(this.long0+(t-this.x0)/(this.a*this.rc)),e.y=ff(this.lat0+(r-this.y0)/this.a),e}var Jmt=[\"Equirectangular\",\"Equidistant_Cylindrical\",\"eqc\"],XZ={init:$mt,forward:Xmt,inverse:Kmt,names:Jmt};var KZ=20;function t0t(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Pp(this.es),this.e1=Ip(this.es),this.e2=Cp(this.es),this.e3=Lp(this.es),this.ml0=this.a*Lo(this.e0,this.e1,this.e2,this.e3,this.lat0)}function e0t(e){var t=e.x,r=e.y,i,s,n,o=Ie(t-this.long0);if(n=o*Math.sin(r),this.sphere)Math.abs(r)<=we?(i=this.a*o,s=-1*this.a*this.lat0):(i=this.a*Math.sin(n)/Math.tan(r),s=this.a*(ff(r-this.lat0)+(1-Math.cos(n))/Math.tan(r)));else if(Math.abs(r)<=we)i=this.a*o,s=-1*this.ml0;else{var c=kp(this.a,this.e,Math.sin(r))/Math.tan(r);i=c*Math.sin(n),s=this.a*Lo(this.e0,this.e1,this.e2,this.e3,r)-this.ml0+c*(1-Math.cos(n))}return e.x=i+this.x0,e.y=s+this.y0,e}function r0t(e){var t,r,i,s,n,o,c,f,_;if(i=e.x-this.x0,s=e.y-this.y0,this.sphere)if(Math.abs(s+this.a*this.lat0)<=we)t=Ie(i/this.a+this.long0),r=0;else{o=this.lat0+s/this.a,c=i*i/this.a/this.a+o*o,f=o;var w;for(n=KZ;n;--n)if(w=Math.tan(f),_=-1*(o*(f*w+1)-f-.5*(f*f+c)*w)/((f-o)/w-1),f+=_,Math.abs(_)<=we){r=f;break}t=Ie(this.long0+Math.asin(i*Math.tan(f)/this.a)/Math.sin(r))}else if(Math.abs(s+this.ml0)<=we)r=0,t=Ie(this.long0+i/this.a);else{o=(this.ml0+s)/this.a,c=i*i/this.a/this.a+o*o,f=o;var C,R,N,j,Y;for(n=KZ;n;--n)if(Y=this.e*Math.sin(f),C=Math.sqrt(1-Y*Y)*Math.tan(f),R=this.a*Lo(this.e0,this.e1,this.e2,this.e3,f),N=this.e0-2*this.e1*Math.cos(2*f)+4*this.e2*Math.cos(4*f)-6*this.e3*Math.cos(6*f),j=R/this.a,_=(o*(C*j+1)-j-.5*C*(j*j+c))/(this.es*Math.sin(2*f)*(j*j+c-2*o*j)/(4*C)+(o-j)*(C*N-2/Math.sin(2*f))-N),f-=_,Math.abs(_)<=we){r=f;break}C=Math.sqrt(1-this.es*Math.pow(Math.sin(r),2))*Math.tan(r),t=Ie(this.long0+Math.asin(i*C/this.a)/Math.sin(r))}return e.x=t,e.y=r,e}var i0t=[\"Polyconic\",\"poly\"],JZ={init:t0t,forward:e0t,inverse:r0t,names:i0t};function n0t(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function s0t(e){var t,r=e.x,i=e.y,s=i-this.lat0,n=r-this.long0,o=s/Ng*1e-5,c=n,f=1,_=0;for(t=1;t<=10;t++)f=f*o,_=_+this.A[t]*f;var w=_,C=c,R=1,N=0,j,Y,rt=0,$=0;for(t=1;t<=6;t++)j=R*w-N*C,Y=N*w+R*C,R=j,N=Y,rt=rt+this.B_re[t]*R-this.B_im[t]*N,$=$+this.B_im[t]*R+this.B_re[t]*N;return e.x=$*this.a+this.x0,e.y=rt*this.a+this.y0,e}function o0t(e){var t,r=e.x,i=e.y,s=r-this.x0,n=i-this.y0,o=n/this.a,c=s/this.a,f=1,_=0,w,C,R=0,N=0;for(t=1;t<=6;t++)w=f*o-_*c,C=_*o+f*c,f=w,_=C,R=R+this.C_re[t]*f-this.C_im[t]*_,N=N+this.C_im[t]*f+this.C_re[t]*_;for(var j=0;j.999999999999&&(r=.999999999999),t=Math.asin(r);var i=Ie(this.long0+e.x/(.900316316158*this.a*Math.cos(t)));i<-Math.PI&&(i=-Math.PI),i>Math.PI&&(i=Math.PI),r=(2*t+Math.sin(2*t))/Math.PI,Math.abs(r)>1&&(r=1);var s=Math.asin(r);return e.x=i,e.y=s,e}var v0t=[\"Mollweide\",\"moll\"],iY={init:g0t,forward:_0t,inverse:y0t,names:v0t};function x0t(){Math.abs(this.lat1+this.lat2)=0?(r=Math.sqrt(e.x*e.x+e.y*e.y),t=1):(r=-Math.sqrt(e.x*e.x+e.y*e.y),t=-1);var n=0;if(r!==0&&(n=Math.atan2(t*e.x,t*e.y)),this.sphere)return s=Ie(this.long0+n/this.ns),i=ff(this.g-r/this.a),e.x=s,e.y=i,e;var o=this.g-r/this.a;return i=Gg(o,this.e0,this.e1,this.e2,this.e3),s=Ie(this.long0+n/this.ns),e.x=s,e.y=i,e}var S0t=[\"Equidistant_Conic\",\"eqdc\"],nY={init:x0t,forward:b0t,inverse:w0t,names:S0t};function T0t(){this.R=this.a}function M0t(e){var t=e.x,r=e.y,i=Ie(t-this.long0),s,n;Math.abs(r)<=we&&(s=this.x0+this.R*i,n=this.y0);var o=bc(2*Math.abs(r/Math.PI));(Math.abs(i)<=we||Math.abs(Math.abs(r)-de)<=we)&&(s=this.x0,r>=0?n=this.y0+Math.PI*this.R*Math.tan(.5*o):n=this.y0+Math.PI*this.R*-Math.tan(.5*o));var c=.5*Math.abs(Math.PI/i-i/Math.PI),f=c*c,_=Math.sin(o),w=Math.cos(o),C=w/(_+w-1),R=C*C,N=C*(2/_-1),j=N*N,Y=Math.PI*this.R*(c*(C-j)+Math.sqrt(f*(C-j)*(C-j)-(j+f)*(R-j)))/(j+f);i<0&&(Y=-Y),s=this.x0+Y;var rt=f+C;return Y=Math.PI*this.R*(N*rt-c*Math.sqrt((j+f)*(f+1)-rt*rt))/(j+f),r>=0?n=this.y0+Y:n=this.y0-Y,e.x=s,e.y=n,e}function E0t(e){var t,r,i,s,n,o,c,f,_,w,C,R,N;return e.x-=this.x0,e.y-=this.y0,C=Math.PI*this.R,i=e.x/C,s=e.y/C,n=i*i+s*s,o=-Math.abs(s)*(1+n),c=o-2*s*s+i*i,f=-2*o+1+2*s*s+n*n,N=s*s/f+(2*c*c*c/f/f/f-9*o*c/f/f)/27,_=(o-c*c/3/f)/f,w=2*Math.sqrt(-_/3),C=3*N/_/w,Math.abs(C)>1&&(C>=0?C=1:C=-1),R=Math.acos(C)/3,e.y>=0?r=(-w*Math.cos(R+Math.PI/3)-c/3/f)*Math.PI:r=-(-w*Math.cos(R+Math.PI/3)-c/3/f)*Math.PI,Math.abs(i)2*de*this.a?void 0:(r=t/this.a,i=Math.sin(r),s=Math.cos(r),n=this.long0,Math.abs(t)<=we?o=this.lat0:(o=bc(s*this.sin_p12+e.y*i*this.cos_p12/t),c=Math.abs(this.lat0)-de,Math.abs(c)<=we?this.lat0>=0?n=Ie(this.long0+Math.atan2(e.x,-e.y)):n=Ie(this.long0-Math.atan2(-e.x,e.y)):n=Ie(this.long0+Math.atan2(e.x*i,t*this.cos_p12*s-e.y*this.sin_p12*i))),e.x=n,e.y=o,e)):(f=Pp(this.es),_=Ip(this.es),w=Cp(this.es),C=Lp(this.es),Math.abs(this.sin_p12-1)<=we?(R=this.a*Lo(f,_,w,C,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=R-t,o=Gg(N/this.a,f,_,w,C),n=Ie(this.long0+Math.atan2(e.x,-1*e.y)),e.x=n,e.y=o,e):Math.abs(this.sin_p12+1)<=we?(R=this.a*Lo(f,_,w,C,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=t-R,o=Gg(N/this.a,f,_,w,C),n=Ie(this.long0+Math.atan2(e.x,e.y)),e.x=n,e.y=o,e):(t=Math.sqrt(e.x*e.x+e.y*e.y),rt=Math.atan2(e.x,e.y),j=kp(this.a,this.e,this.sin_p12),$=Math.cos(rt),K=this.e*this.cos_p12*$,tt=-K*K/(1-this.es),ut=3*this.es*(1-tt)*this.sin_p12*this.cos_p12*$/(1-this.es),Pt=t/j,Ot=Pt-tt*(1+tt)*Math.pow(Pt,3)/6-ut*(1+3*tt)*Math.pow(Pt,4)/24,Kt=1-tt*Ot*Ot/2-Pt*Ot*Ot*Ot/6,Y=Math.asin(this.sin_p12*Math.cos(Ot)+this.cos_p12*Math.sin(Ot)*$),n=Ie(this.long0+Math.asin(Math.sin(rt)*Math.sin(Ot)/Math.cos(Y))),Zt=Math.sin(Y),o=Math.atan2((Zt-this.es*Kt*this.sin_p12)*Math.tan(Y),Zt*(1-this.es)),e.x=n,e.y=o,e))}var k0t=[\"Azimuthal_Equidistant\",\"aeqd\"],oY={init:I0t,forward:C0t,inverse:L0t,names:k0t};function R0t(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)}function D0t(e){var t,r,i,s,n,o,c,f,_=e.x,w=e.y;return i=Ie(_-this.long0),t=Math.sin(w),r=Math.cos(w),s=Math.cos(i),o=this.sin_p14*t+this.cos_p14*r*s,n=1,(o>0||Math.abs(o)<=we)&&(c=this.a*n*r*Math.sin(i),f=this.y0+this.a*n*(this.cos_p14*t-this.sin_p14*r*s)),e.x=c,e.y=f,e}function O0t(e){var t,r,i,s,n,o,c;return e.x-=this.x0,e.y-=this.y0,t=Math.sqrt(e.x*e.x+e.y*e.y),r=bc(t/this.a),i=Math.sin(r),s=Math.cos(r),o=this.long0,Math.abs(t)<=we?(c=this.lat0,e.x=o,e.y=c,e):(c=bc(s*this.sin_p14+e.y*i*this.cos_p14/t),n=Math.abs(this.lat0)-de,Math.abs(n)<=we?(this.lat0>=0?o=Ie(this.long0+Math.atan2(e.x,-e.y)):o=Ie(this.long0-Math.atan2(-e.x,e.y)),e.x=o,e.y=c,e):(o=Ie(this.long0+Math.atan2(e.x*i,t*this.cos_p14*s-e.y*this.sin_p14*i)),e.x=o,e.y=c,e))}var B0t=[\"ortho\"],aY={init:R0t,forward:D0t,inverse:O0t,names:B0t};var bs={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},hn={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function F0t(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Quadrilateralized Spherical Cube\",this.lat0>=de-Fi/2?this.face=bs.TOP:this.lat0<=-(de-Fi/2)?this.face=bs.BOTTOM:Math.abs(this.long0)<=Fi?this.face=bs.FRONT:Math.abs(this.long0)<=de+Fi?this.face=this.long0>0?bs.RIGHT:bs.LEFT:this.face=bs.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function z0t(e){var t={x:0,y:0},r,i,s,n,o,c,f={value:0};if(e.x-=this.long0,this.es!==0?r=Math.atan(this.one_minus_f_squared*Math.tan(e.y)):r=e.y,i=e.x,this.face===bs.TOP)n=de-r,i>=Fi&&i<=de+Fi?(f.value=hn.AREA_0,s=i-de):i>de+Fi||i<=-(de+Fi)?(f.value=hn.AREA_1,s=i>0?i-xs:i+xs):i>-(de+Fi)&&i<=-Fi?(f.value=hn.AREA_2,s=i+de):(f.value=hn.AREA_3,s=i);else if(this.face===bs.BOTTOM)n=de+r,i>=Fi&&i<=de+Fi?(f.value=hn.AREA_0,s=-i+de):i=-Fi?(f.value=hn.AREA_1,s=-i):i<-Fi&&i>=-(de+Fi)?(f.value=hn.AREA_2,s=-i-de):(f.value=hn.AREA_3,s=i>0?-i+xs:-i-xs);else{var _,w,C,R,N,j,Y;this.face===bs.RIGHT?i=nx(i,+de):this.face===bs.BACK?i=nx(i,+xs):this.face===bs.LEFT&&(i=nx(i,-de)),R=Math.sin(r),N=Math.cos(r),j=Math.sin(i),Y=Math.cos(i),_=N*Y,w=N*j,C=R,this.face===bs.FRONT?(n=Math.acos(_),s=J3(n,C,w,f)):this.face===bs.RIGHT?(n=Math.acos(w),s=J3(n,C,-_,f)):this.face===bs.BACK?(n=Math.acos(-_),s=J3(n,C,-w,f)):this.face===bs.LEFT?(n=Math.acos(-w),s=J3(n,C,_,f)):(n=s=0,f.value=hn.AREA_0)}return c=Math.atan(12/xs*(s+Math.acos(Math.sin(s)*Math.cos(Fi))-de)),o=Math.sqrt((1-Math.cos(n))/(Math.cos(c)*Math.cos(c))/(1-Math.cos(Math.atan(1/Math.cos(s))))),f.value===hn.AREA_1?c+=de:f.value===hn.AREA_2?c+=xs:f.value===hn.AREA_3&&(c+=1.5*xs),t.x=o*Math.cos(c),t.y=o*Math.sin(c),t.x=t.x*this.a+this.x0,t.y=t.y*this.a+this.y0,e.x=t.x,e.y=t.y,e}function N0t(e){var t={lam:0,phi:0},r,i,s,n,o,c,f,_,w,C={value:0};if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,i=Math.atan(Math.sqrt(e.x*e.x+e.y*e.y)),r=Math.atan2(e.y,e.x),e.x>=0&&e.x>=Math.abs(e.y)?C.value=hn.AREA_0:e.y>=0&&e.y>=Math.abs(e.x)?(C.value=hn.AREA_1,r-=de):e.x<0&&-e.x>=Math.abs(e.y)?(C.value=hn.AREA_2,r=r<0?r+xs:r-xs):(C.value=hn.AREA_3,r+=de),w=xs/12*Math.tan(r),o=Math.sin(w)/(Math.cos(w)-1/Math.sqrt(2)),c=Math.atan(o),s=Math.cos(r),n=Math.tan(i),f=1-s*s*n*n*(1-Math.cos(Math.atan(1/Math.cos(c)))),f<-1?f=-1:f>1&&(f=1),this.face===bs.TOP)_=Math.acos(f),t.phi=de-_,C.value===hn.AREA_0?t.lam=c+de:C.value===hn.AREA_1?t.lam=c<0?c+xs:c-xs:C.value===hn.AREA_2?t.lam=c-de:t.lam=c;else if(this.face===bs.BOTTOM)_=Math.acos(f),t.phi=_-de,C.value===hn.AREA_0?t.lam=-c+de:C.value===hn.AREA_1?t.lam=-c:C.value===hn.AREA_2?t.lam=-c-de:t.lam=c<0?-c-xs:-c+xs;else{var R,N,j;R=f,w=R*R,w>=1?j=0:j=Math.sqrt(1-w)*Math.sin(c),w+=j*j,w>=1?N=0:N=Math.sqrt(1-w),C.value===hn.AREA_1?(w=N,N=-j,j=w):C.value===hn.AREA_2?(N=-N,j=-j):C.value===hn.AREA_3&&(w=N,N=j,j=-w),this.face===bs.RIGHT?(w=R,R=-N,N=w):this.face===bs.BACK?(R=-R,N=-N):this.face===bs.LEFT&&(w=R,R=N,N=-w),t.phi=Math.acos(-j)-de,t.lam=Math.atan2(N,R),this.face===bs.RIGHT?t.lam=nx(t.lam,-de):this.face===bs.BACK?t.lam=nx(t.lam,-xs):this.face===bs.LEFT&&(t.lam=nx(t.lam,+de))}if(this.es!==0){var Y,rt,$;Y=t.phi<0?1:0,rt=Math.tan(t.phi),$=this.b/Math.sqrt(rt*rt+this.one_minus_f_squared),t.phi=Math.atan(Math.sqrt(this.a*this.a-$*$)/(this.one_minus_f*$)),Y&&(t.phi=-t.phi)}return t.lam+=this.long0,e.x=t.lam,e.y=t.phi,e}function J3(e,t,r,i){var s;return eFi&&s<=de+Fi?(i.value=hn.AREA_1,s-=de):s>de+Fi||s<=-(de+Fi)?(i.value=hn.AREA_2,s=s>=0?s-xs:s+xs):(i.value=hn.AREA_3,s+=de)),s}function nx(e,t){var r=e+t;return r<-xs?r+=bm:r>+xs&&(r-=bm),r}var U0t=[\"Quadrilateralized Spherical Cube\",\"Quadrilateralized_Spherical_Cube\",\"qsc\"],lY={init:F0t,forward:z0t,inverse:N0t,names:U0t};var _B=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],nS=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],cY=.8487,uY=1.3523,hY=yc/5,V0t=1/hY,sx=18,tI=function(e,t){return e[0]+t*(e[1]+t*(e[2]+t*e[3]))},j0t=function(e,t){return e[1]+t*(2*e[2]+t*3*e[3])};function G0t(e,t,r,i){for(var s=t;i;--i){var n=e(s);if(s-=n,Math.abs(n)=sx&&(i=sx-1),r=yc*(r-V0t*i);var s={x:tI(_B[i],r)*t,y:tI(nS[i],r)};return e.y<0&&(s.y=-s.y),s.x=s.x*this.a*cY+this.x0,s.y=s.y*this.a*uY+this.y0,s}function q0t(e){var t={x:(e.x-this.x0)/(this.a*cY),y:Math.abs(e.y-this.y0)/(this.a*uY)};if(t.y>=1)t.x/=_B[sx][0],t.y=e.y<0?-de:de;else{var r=Math.floor(t.y*sx);for(r<0?r=0:r>=sx&&(r=sx-1);;)if(nS[r][0]>t.y)--r;else if(nS[r+1][0]<=t.y)++r;else break;var i=nS[r],s=5*(t.y-i[0])/(nS[r+1][0]-i[0]);s=G0t(function(n){return(tI(i,n)-t.y)/j0t(i,n)},s,we,100),t.x/=tI(_B[r],s),t.y=(5*r+s)*vs,e.y<0&&(t.y=-t.y)}return t.x=Ie(t.x+this.long0),t}var Z0t=[\"Robinson\",\"robin\"],fY={init:W0t,forward:H0t,inverse:q0t,names:Z0t};function Y0t(){this.name=\"geocent\"}function Q0t(e){var t=G3(e,this.es,this.a);return t}function $0t(e){var t=W3(e,this.es,this.a,this.b);return t}var X0t=[\"Geocentric\",\"geocentric\",\"geocent\",\"Geocent\"],dY={init:Y0t,forward:Q0t,inverse:$0t,names:X0t};var nl={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},sS={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function K0t(){if(Object.keys(sS).forEach(function(r){if(typeof this[r]>\"u\")this[r]=sS[r].def;else{if(sS[r].num&&isNaN(this[r]))throw new Error(\"Invalid parameter value, must be numeric \"+r+\" = \"+this[r]);sS[r].num&&(this[r]=parseFloat(this[r]))}sS[r].degrees&&(this[r]=this[r]*vs)}.bind(this)),Math.abs(Math.abs(this.lat0)-de)1e10)throw new Error(\"Invalid height\");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var e=this.tilt,t=this.azi;this.cg=Math.cos(t),this.sg=Math.sin(t),this.cw=Math.cos(e),this.sw=Math.sin(e)}function J0t(e){e.x-=this.long0;var t=Math.sin(e.y),r=Math.cos(e.y),i=Math.cos(e.x),s,n;switch(this.mode){case nl.OBLIQ:n=this.sinph0*t+this.cosph0*r*i;break;case nl.EQUIT:n=r*i;break;case nl.S_POLE:n=-t;break;case nl.N_POLE:n=t;break}switch(n=this.pn1/(this.p-n),s=n*r*Math.sin(e.x),this.mode){case nl.OBLIQ:n*=this.cosph0*t-this.sinph0*r*i;break;case nl.EQUIT:n*=t;break;case nl.N_POLE:n*=-(r*i);break;case nl.S_POLE:n*=r*i;break}var o,c;return o=n*this.cg+s*this.sg,c=1/(o*this.sw*this.h1+this.cw),s=(s*this.cg-n*this.sg)*this.cw*c,n=o*c,e.x=s*this.a,e.y=n*this.a,e}function tgt(e){e.x/=this.a,e.y/=this.a;var t={x:e.x,y:e.y},r,i,s;s=1/(this.pn1-e.y*this.sw),r=this.pn1*e.x*s,i=this.pn1*e.y*this.cw*s,e.x=r*this.cg+i*this.sg,e.y=i*this.cg-r*this.sg;var n=Sa(e.x,e.y);if(Math.abs(n)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var e=1-this.es,t=1/e;this.radius_p=Math.sqrt(e),this.radius_p2=e,this.radius_p_inv2=t,this.shape=\"ellipse\"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape=\"sphere\";this.title||(this.title=\"Geostationary Satellite View\")}function igt(e){var t=e.x,r=e.y,i,s,n,o;if(t=t-this.long0,this.shape===\"ellipse\"){r=Math.atan(this.radius_p2*Math.tan(r));var c=this.radius_p/Sa(this.radius_p*Math.cos(r),Math.sin(r));if(s=c*Math.cos(t)*Math.cos(r),n=c*Math.sin(t)*Math.cos(r),o=c*Math.sin(r),(this.radius_g-s)*s-n*n-o*o*this.radius_p_inv2<0)return e.x=Number.NaN,e.y=Number.NaN,e;i=this.radius_g-s,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/Sa(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(n/i),e.y=this.radius_g_1*Math.atan(o/Sa(n,i)))}else this.shape===\"sphere\"&&(i=Math.cos(r),s=Math.cos(t)*i,n=Math.sin(t)*i,o=Math.sin(r),i=this.radius_g-s,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/Sa(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(n/i),e.y=this.radius_g_1*Math.atan(o/Sa(n,i))));return e.x=e.x*this.a,e.y=e.y*this.a,e}function ngt(e){var t=-1,r=0,i=0,s,n,o,c;if(e.x=e.x/this.a,e.y=e.y/this.a,this.shape===\"ellipse\"){this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Sa(1,i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Sa(1,r));var f=i/this.radius_p;if(s=r*r+f*f+t*t,n=2*this.radius_g*t,o=n*n-4*s*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-n-Math.sqrt(o))/(2*s),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t),e.y=Math.atan(this.radius_p_inv2*Math.tan(e.y))}else if(this.shape===\"sphere\"){if(this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Math.sqrt(1+i*i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Math.sqrt(1+r*r)),s=r*r+i*i+t*t,n=2*this.radius_g*t,o=n*n-4*s*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-n-Math.sqrt(o))/(2*s),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t)}return e.x=e.x+this.long0,e}var sgt=[\"Geostationary Satellite View\",\"Geostationary_Satellite\",\"geos\"],AY={init:rgt,forward:igt,inverse:ngt,names:sgt};function mY(e){e.Proj.projections.add(ex),e.Proj.projections.add(rx),e.Proj.projections.add(zZ),e.Proj.projections.add(NZ),e.Proj.projections.add(UZ),e.Proj.projections.add(VZ),e.Proj.projections.add(jZ),e.Proj.projections.add(GZ),e.Proj.projections.add(WZ),e.Proj.projections.add(HZ),e.Proj.projections.add(qZ),e.Proj.projections.add(ZZ),e.Proj.projections.add(YZ),e.Proj.projections.add($Z),e.Proj.projections.add(XZ),e.Proj.projections.add(JZ),e.Proj.projections.add(tY),e.Proj.projections.add(eY),e.Proj.projections.add(rY),e.Proj.projections.add(iY),e.Proj.projections.add(nY),e.Proj.projections.add(sY),e.Proj.projections.add(oY),e.Proj.projections.add(aY),e.Proj.projections.add(lY),e.Proj.projections.add(fY),e.Proj.projections.add(dY),e.Proj.projections.add(pY),e.Proj.projections.add(AY)}vc.defaultDatum=\"WGS84\";vc.Proj=wm;vc.WGS84=new vc.Proj(\"WGS84\");vc.Point=IZ;vc.toPoint=q3;vc.defs=$v;vc.nadgrid=uB;vc.transform=Vg;vc.mgrs=MZ;vc.version=\"__VERSION__\";mY(vc);var gY=vc;function lS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function cS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function ox(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function ogt(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function agt(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function sI(e){return\"data\"in e?e.getChildAt(0):e.children[0]}var Oi=Object.freeze({__proto__:null,getLineStringChild:cS,getMultiLineStringChild:agt,getMultiPointChild:ogt,getMultiPolygonChild:sI,getPointChild:lS,getPolygonChild:ox});function oI(e,t){let r=e.valueOffsets,i=ox(e),s=i.valueOffsets,n=cS(i),o=n.type.listSize,c=lS(n),f=r[t],_=r[t+1],w=s[f],C=s[_],R=c.values.subarray(w*o,C*o);return new Yv(R,{size:o,isClosed:!0})}function yY(e){if(\"data\"in e)return new wr(e.data.map(r=>yY(r)));let t=new Float64Array(e.length);for(let r=0;rvY(r)));let t=new Float64Array(e.length);for(let r=0;rxY(n));let t=[],r=0;for(let n=0;nbY(t))):ox(e)}function wY(e){return\"data\"in e?new wr(e.data.map(t=>wY(t))):sI(e)}function aI(e){return Ne.isFixedSizeList(e)?!(![2,3,4].includes(e.listSize)||!Ne.isFloat(e.children[0])):Ne.isStruct(e)?!(![2,3,4].includes(e.children.length)||!e.children.every(t=>[\"x\",\"y\",\"z\",\"m\"].includes(t.name))||!e.children.every(t=>Ne.isFloat(t))):!1}function lI(e){return!(!Ne.isList(e)||!aI(e.children[0].type))}function bB(e){return!(!Ne.isList(e)||!lI(e.children[0].type))}function SY(e){return!(!Ne.isList(e)||!aI(e.children[0].type))}function TY(e){return!(!Ne.isList(e)||!lI(e.children[0].type))}function MY(e){return!(!Ne.isList(e)||!bB(e.children[0].type))}function cgt(e){return aI(e.type)}function ugt(e){return lI(e.type)}function hgt(e){return bB(e.type)}function fgt(e){return SY(e.type)}function dgt(e){return TY(e.type)}function pgt(e){return MY(e.type)}function Agt(e,t){if(!e)throw new Error(`assertion failed ${t}`)}function mgt(){throw new Error(\"assertion failed\")}function EY(e,t){if(cgt(e))return PY(e,t);if(ugt(e))return yB(e,t);if(hgt(e))return vB(e,t);if(fgt(e))return yB(e,t);if(dgt(e))return vB(e,t);if(pgt(e))return ggt(e,t);mgt()}function PY(e,t){Agt(e.type.listSize===2,\"expected 2D\");let r=lS(e),i=r.values,s=new Float64Array(i.length);for(let o=0;o_Y(s,i))):_Y(e,i)}function _Y(e,t){let r=[0,0];return EY(e,(s,n)=>(r[0]=s,r[1]=n,t.forward(r)))}var Sm;(function(e){e.POINT=\"geoarrow.point\",e.LINESTRING=\"geoarrow.linestring\",e.POLYGON=\"geoarrow.polygon\",e.MULTIPOINT=\"geoarrow.multipoint\",e.MULTILINESTRING=\"geoarrow.multilinestring\",e.MULTIPOLYGON=\"geoarrow.multipolygon\"})(Sm||(Sm={}));var nI=class{minX;minY;maxX;maxY;constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}updateBbox(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.maxY>this.maxY&&(this.maxY=t.maxY)}updateCoord(t,r){tthis.maxX&&(this.maxX=t),r>this.maxY&&(this.maxY=r)}};function ygt(e,t){switch(t.metadata.get(\"ARROW:extension:name\")){case Sm.POINT:return IY(e);case Sm.LINESTRING:case Sm.MULTIPOINT:return CY(e);case Sm.POLYGON:case Sm.MULTILINESTRING:return LY(e);case Sm.MULTIPOLYGON:return xgt(e);default:throw new Error(\"Unknown ext type name\")}}function vgt(e){let r=lS(e).values,i=new nI;for(let s=0;skY(r)));let t=new fm({type:new oc,nullValues:[null]});t.set(e.length-1,null);for(let r=0;rRY(r,t));return}for(let r=0;raS(n,t)));let r=[];for(let n of e.children)r.push(aS(n,t));let i;e.dictionary!==void 0&&(i=aS(e.dictionary,t));let s={[Ci.OFFSET]:eI(e.buffers[Ci.OFFSET],t),[Ci.DATA]:eI(e.buffers[Ci.DATA],t),[Ci.VALIDITY]:eI(e.buffers[Ci.VALIDITY],t),[Ci.TYPE]:eI(e.buffers[Ci.TYPE],t)};return new Di(e.type,e.offset,e.length,e._nullCount,s,r,i)}function rI(e){if(\"data\"in e)return e.data.some(r=>rI(r));for(let r of e.children)if(rI(r))return!0;if(e.dictionary!==void 0&&rI(e.dictionary))return!0;let t=[Ci.OFFSET,Ci.DATA,Ci.VALIDITY,Ci.TYPE];for(let r of t)if(e.buffers[r]!==void 0&&DY(e.buffers[r]))return!0;return!1}function DY(e){return!(e.byteOffset===0&&e.byteLength===e.buffer.byteLength)}function eI(e,t){return e===void 0||!t&&!DY(e)?e:e.slice()}function iI(e,t=!1){if(\"data\"in e){let i=[],s=[];for(let o of e.data){let[c,f]=iI(o);i.push(c),s.push(...f)}return[new wr(i),s]}e=aS(e,t);let r=[];for(let i=0;i1)throw new Error(\"expected 1 field\");return new lc(t[0])}case Rt.Struct:{let t=e.children.map(oS);return new un(t)}case Rt.Union:{let t=e.children.map(oS);return new cc(e.mode,e.typeIds,t)}case Rt.FixedSizeBinary:return new Zu(e.byteWidth);case Rt.FixedSizeList:{let t=e.children.map(oS);if(t.length>1)throw new Error(\"expected 1 field\");return new Il(e.listSize,t[0])}case Rt.Map:{let t=e.children.map(oS);if(t.length>1)throw new Error(\"expected 1 field\");let r=t[0];return new uc(r,e.keysSorted)}case Rt.Duration:return new qu(e.unit);default:throw new Error(`unknown type ${e}`)}}function oS(e){let t=OY(e.type);return new si(e.name,t,e.nullable,e.metadata)}function SB(e){let t=e.children.map(s=>SB(s)),r=e.dictionary?BY(e.dictionary):void 0,i={[Ci.OFFSET]:e.valueOffsets,[Ci.DATA]:e.values,[Ci.VALIDITY]:e.nullBitmap,[Ci.TYPE]:e.typeIds};return new Di(OY(e.type),e.offset,e.length,e._nullCount,i,t,r)}function BY(e){return new wr(e.data.map(t=>SB(t)))}var TB=Object.freeze({__proto__:null,hardClone:aS,isShared:rI,preparePostMessage:iI,rehydrateData:SB,rehydrateVector:BY});function Pgt(e,t,r){let i=e.fields.findIndex(s=>s.name===r||s.metadata.get(\"ARROW:extension:name\")===t);return i!==-1?i:null}function Igt(e,t){let{index:r,data:i}=e,s=r;i.invertedGeomOffsets!==void 0&&(s=i.invertedGeomOffsets[r]);let n={data:i.data,length:i.length,attributes:i.attributes},o={index:s,data:n,target:e.target};return t(o)}function ko(e){let{props:t,propName:r,propInput:i,chunkIdx:s,geomCoordOffsets:n}=e;if(i!==void 0)if(i instanceof wr){let o=i.data[s];if(Ne.isFixedSizeList(o)){br(o.children.length===1);let c=o.children[0].values;n&&(c=cI(c,o.type.listSize,n)),t.data.attributes[r]={value:c,size:o.type.listSize,normalized:!0}}else if(Ne.isFloat(o)){let c=o.values;n&&(c=cI(c,1,n)),t.data.attributes[r]={value:c,size:1}}}else typeof i==\"function\"?t[r]=(o,c)=>r===\"getPolygonOffset\"?i(o,c):Igt(c,i):t[r]=i}function cI(e,t,r){let i=r[r.length-1],s=new e.constructor(i*t);for(let n=0;n(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function Oo(e,t){let r=[],i=[];for(let[s,n]of Object.entries(e))s.startsWith(\"get\")&&n instanceof wr&&(r.push(n),s.endsWith(\"Color\")&&i.push(n));Cgt(t,r);for(let s of i)Lgt(s)}function Cgt(e,t){for(let r of t)br(e.batches.length===r.data.length);for(let r of t)for(let i=0;ithis.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let t=this.content?this.content.byteLength:0;return Number.isFinite(t)||console.error(\"byteLength not defined in tile data\"),t}async _loadData({getData:t,requestScheduler:r,onLoad:i,onError:s}){let{index:n,id:o,bbox:c,userData:f,zoom:_}=this,w=this._loaderId;this._abortController=new AbortController;let{signal:C}=this._abortController,R=await r.scheduleRequest(this,Y=>Y.isSelected?1:-1);if(!R){this._isCancelled=!0;return}if(this._isCancelled){R.done();return}let N=null,j;try{N=await t({index:n,id:o,bbox:c,userData:f,zoom:_,signal:C})}catch(Y){j=Y||!0}finally{R.done()}if(w===this._loaderId){if(this._loader=void 0,this.content=N,this._isCancelled&&!N){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,j?s(j,this):i(this)}}loadData(t){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(t),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var t;this.isLoaded||(this._isCancelled=!0,(t=this._abortController)===null||t===void 0||t.abort())}};var Js={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var VY=new Fe,Bgt=new Fe,Wg=class e{constructor(t=[0,0,0],r=[0,0,0],i){G(this,\"center\",void 0),G(this,\"halfDiagonal\",void 0),G(this,\"minimum\",void 0),G(this,\"maximum\",void 0),i=i||VY.copy(t).add(r).scale(.5),this.center=new Fe(i),this.halfDiagonal=new Fe(r).subtract(this.center),this.minimum=new Fe(t),this.maximum=new Fe(r)}clone(){return new e(this.minimum,this.maximum,this.center)}equals(t){return this===t||!!t&&this.minimum.equals(t.minimum)&&this.maximum.equals(t.maximum)}transform(t){return this.center.transformAsPoint(t),this.halfDiagonal.transform(t),this.minimum.transform(t),this.maximum.transform(t),this}intersectPlane(t){let{halfDiagonal:r}=this,i=Bgt.from(t.normal),s=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),n=this.center.dot(i)+t.distance;return n-s>0?Js.INSIDE:n+s<0?Js.OUTSIDE:Js.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=VY.from(t).subtract(this.center),{halfDiagonal:i}=this,s=0,n;return n=Math.abs(r.x)-i.x,n>0&&(s+=n*n),n=Math.abs(r.y)-i.y,n>0&&(s+=n*n),n=Math.abs(r.z)-i.z,n>0&&(s+=n*n),s}};var fS=new Fe,jY=new Fe,Hg=class e{constructor(t=[0,0,0],r=0){G(this,\"center\",void 0),G(this,\"radius\",void 0),this.radius=-0,this.center=new Fe,this.fromCenterRadius(t,r)}fromCenterRadius(t,r){return this.center.from(t),this.radius=r,this}fromCornerPoints(t,r){return r=fS.from(r),this.center=new Fe().from(t).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(t){return this===t||!!t&&this.center.equals(t.center)&&this.radius===t.radius}clone(){return new e(this.center,this.radius)}union(t){let r=this.center,i=this.radius,s=t.center,n=t.radius,o=fS.copy(s).subtract(r),c=o.magnitude();if(i>=c+n)return this.clone();if(n>=c+i)return t.clone();let f=(i+c+n)*.5;return jY.copy(o).scale((-i+f)/c).add(r),this.center.copy(jY),this.radius=f,this}expand(t){let i=fS.from(t).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(t){this.center.transform(t);let r=jj(fS,t);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(t){let r=this.distanceTo(t);return r*r}distanceTo(t){let i=fS.from(t).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(t){let r=this.center,i=this.radius,n=t.normal.dot(r)+t.distance;return n<-i?Js.OUTSIDE:n=f?Js.INSIDE:Js.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=zgt.from(t).subtract(this.center),i=this.halfAxes,s=i.getColumn(0,hI),n=i.getColumn(1,fI),o=i.getColumn(2,dI),c=s.magnitude(),f=n.magnitude(),_=o.magnitude();s.normalize(),n.normalize(),o.normalize();let w=0,C;return C=Math.abs(r.dot(s))-c,C>0&&(w+=C*C),C=Math.abs(r.dot(n))-f,C>0&&(w+=C*C),C=Math.abs(r.dot(o))-_,C>0&&(w+=C*C),w}computePlaneDistances(t,r,i=[-0,-0]){let s=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY,o=this.center,c=this.halfAxes,f=c.getColumn(0,hI),_=c.getColumn(1,fI),w=c.getColumn(2,dI),C=Ngt.copy(f).add(_).add(w).add(o),R=Ugt.copy(C).subtract(t),N=r.dot(R);return s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).add(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).subtract(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).subtract(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).add(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).add(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).subtract(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).subtract(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),i[0]=s,i[1]=n,i}transform(t){this.center.transformAsPoint(t);let r=this.halfAxes.getColumn(0,hI);r.transformAsPoint(t);let i=this.halfAxes.getColumn(1,fI);i.transformAsPoint(t);let s=this.halfAxes.getColumn(2,dI);return s.transformAsPoint(t),this.halfAxes=new rs([...r,...i,...s]),this}getTransform(){throw new Error(\"not implemented\")}};var GY=new Fe,WY=new Fe,pf=class e{constructor(t=[0,0,1],r=0){G(this,\"normal\",void 0),G(this,\"distance\",void 0),this.normal=new Fe,this.distance=-0,this.fromNormalDistance(t,r)}fromNormalDistance(t,r){return Oh(Number.isFinite(r)),this.normal.from(t).normalize(),this.distance=r,this}fromPointNormal(t,r){t=GY.from(t),this.normal.from(r).normalize();let i=-this.normal.dot(t);return this.distance=i,this}fromCoefficients(t,r,i,s){return this.normal.set(t,r,i),Oh(To(this.normal.len(),1)),this.distance=s,this}clone(){return new e(this.normal,this.distance)}equals(t){return To(this.distance,t.distance)&&To(this.normal,t.normal)}getPointDistance(t){return this.normal.dot(t)+this.distance}transform(t){let r=WY.copy(this.normal).transformAsVector(t).normalize(),i=this.normal.scale(-this.distance).transform(t);return this.fromPointNormal(i,r)}projectPointOntoPlane(t,r=[0,0,0]){t=GY.from(t);let i=this.getPointDistance(t),s=WY.copy(this.normal).scale(i);return t.subtract(s).to(r)}};var HY=[new Fe([1,0,0]),new Fe([0,1,0]),new Fe([0,0,1])],qY=new Fe,Vgt=new Fe,$ie=new pf(new Fe(1,0,0),0),dd=class e{constructor(t=[]){G(this,\"planes\",void 0),this.planes=t}fromBoundingSphere(t){this.planes.length=2*HY.length;let r=t.center,i=t.radius,s=0;for(let n of HY){let o=this.planes[s],c=this.planes[s+1];o||(o=this.planes[s]=new pf),c||(c=this.planes[s+1]=new pf);let f=qY.copy(n).scale(-i).add(r),_=-n.dot(f);o.fromPointNormal(f,n);let w=qY.copy(n).scale(i).add(r),C=Vgt.copy(n).negate(),R=-C.dot(w);c.fromPointNormal(w,C),s+=2}return this}computeVisibility(t){let r=Js.INSIDE;for(let i of this.planes)switch(t.intersectPlane(i)){case Js.OUTSIDE:return Js.OUTSIDE;case Js.INTERSECTING:r=Js.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(t,r){if(Oh(Number.isFinite(r),\"parentPlaneMask is required.\"),r===e.MASK_OUTSIDE||r===e.MASK_INSIDE)return r;let i=e.MASK_INSIDE,s=this.planes;for(let n=0;nf;)Zgt(c,pI),ZY.copy(pI).transpose(),c.multiplyRight(pI),c.multiplyLeft(ZY),o.multiplyRight(pI),++s>2&&(++n,s=0);return t.unitary=o.toTarget(t.unitary),t.diagonal=c.toTarget(t.diagonal),t}function Hgt(e){let t=0;for(let r=0;r<9;++r){let i=e[r];t+=i*i}return Math.sqrt(t)}var EB=[1,0,0],PB=[2,2,1];function qgt(e){let t=0;for(let r=0;r<3;++r){let i=e[pd.getElementIndex(PB[r],EB[r])];t+=2*i*i}return Math.sqrt(t)}function Zgt(e,t){let r=RE.EPSILON15,i=0,s=1;for(let _=0;_<3;++_){let w=Math.abs(e[pd.getElementIndex(PB[_],EB[_])]);w>i&&(s=_,i=w)}let n=EB[s],o=PB[s],c=1,f=0;if(Math.abs(e[pd.getElementIndex(o,n)])>r){let _=e[pd.getElementIndex(o,o)],w=e[pd.getElementIndex(n,n)],C=e[pd.getElementIndex(o,n)],R=(_-w)/2/C,N;R<0?N=-1/(-R+Math.sqrt(1+R*R)):N=1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+N*N),f=N*c}return rs.IDENTITY.to(t),t[pd.getElementIndex(n,n)]=t[pd.getElementIndex(o,o)]=c,t[pd.getElementIndex(o,n)]=f,t[pd.getElementIndex(n,o)]=-f,t}var Tm=new Fe,Ygt=new Fe,Qgt=new Fe,$gt=new Fe,Xgt=new Fe,Kgt=new rs,Jgt={diagonal:new rs,unitary:new rs};function IB(e,t=new lx){if(!e||e.length===0)return t.halfAxes=new rs([0,0,0,0,0,0,0,0,0]),t.center=new Fe,t;let r=e.length,i=new Fe(0,0,0);for(let le of e)i.add(le);let s=1/r;i.multiplyByScalar(s);let n=0,o=0,c=0,f=0,_=0,w=0;for(let le of e){let ue=Tm.copy(le).subtract(i);n+=ue.x*ue.x,o+=ue.x*ue.y,c+=ue.x*ue.z,f+=ue.y*ue.y,_+=ue.y*ue.z,w+=ue.z*ue.z}n*=s,o*=s,c*=s,f*=s,_*=s,w*=s;let C=Kgt;C[0]=n,C[1]=o,C[2]=c,C[3]=o,C[4]=f,C[5]=_,C[6]=c,C[7]=_,C[8]=w;let{unitary:R}=AI(C,Jgt),N=t.halfAxes.copy(R),j=N.getColumn(0,Qgt),Y=N.getColumn(1,$gt),rt=N.getColumn(2,Xgt),$=-Number.MAX_VALUE,K=-Number.MAX_VALUE,tt=-Number.MAX_VALUE,ut=Number.MAX_VALUE,Pt=Number.MAX_VALUE,Ot=Number.MAX_VALUE;for(let le of e)Tm.copy(le),$=Math.max(Tm.dot(j),$),K=Math.max(Tm.dot(Y),K),tt=Math.max(Tm.dot(rt),tt),ut=Math.min(Tm.dot(j),ut),Pt=Math.min(Tm.dot(Y),Pt),Ot=Math.min(Tm.dot(rt),Ot);j=j.multiplyByScalar(.5*(ut+$)),Y=Y.multiplyByScalar(.5*(Pt+K)),rt=rt.multiplyByScalar(.5*(Ot+tt)),t.center.copy(j).add(Y).add(rt);let Kt=Ygt.set($-ut,K-Pt,tt-Ot).multiplyByScalar(.5),Zt=new rs([Kt[0],0,0,0,Kt[1],0,0,0,Kt[2]]);return t.halfAxes.multiplyRight(Zt),t}var cx=512,YY=3,QY=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],$Y=QY.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),t_t=$Y.concat([[.25,.5],[.75,.5]]),CB=class e{constructor(t,r,i){G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"z\",void 0),G(this,\"childVisible\",void 0),G(this,\"selected\",void 0),G(this,\"_children\",void 0),this.x=t,this.y=r,this.z=i}get children(){if(!this._children){let t=this.x*2,r=this.y*2,i=this.z+1;this._children=[new e(t,r,i),new e(t,r+1,i),new e(t+1,r,i),new e(t+1,r+1,i)]}return this._children}update(t){let{viewport:r,cullingVolume:i,elevationBounds:s,minZ:n,maxZ:o,bounds:c,offset:f,project:_}=t,w=this.getBoundingVolume(s,f,_);if(c&&!this.insideBounds(c)||i.computeVisibility(w)<0)return!1;if(!this.childVisible){let{z:R}=this;if(R=n){let N=w.distanceTo(r.cameraPosition)*r.scale/r.height;R+=Math.floor(Math.log2(N))}if(R>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let R of this.children)R.update(t);return!0}getSelected(t=[]){if(this.selected&&t.push(this),this._children)for(let r of this._children)r.getSelected(t);return t}insideBounds([t,r,i,s]){let n=Math.pow(2,this.z),o=cx/n;return this.x*ot&&(this.y+1)*o>r}getBoundingVolume(t,r,i){if(i){let f=this.z<1?t_t:this.z<2?$Y:QY,_=[];for(let w of f){let C=mI(this.x+w[0],this.y+w[1],this.z);C[2]=t[0],_.push(i(C)),t[0]!==t[1]&&(C[2]=t[1],_.push(i(C)))}return IB(_)}let s=Math.pow(2,this.z),n=cx/s,o=this.x*n+r*cx,c=cx-(this.y+1)*n;return new Wg([o,c,t[0]],[o+n,c+n,t[1]])}};function XY(e,t,r,i){let s=e instanceof qy&&e.resolution?e.projectPosition:null,n=Object.values(e.getFrustumPlanes()).map(({normal:N,distance:j})=>new pf(N.clone().negate(),j)),o=new dd(n),c=e.distanceScales.unitsPerMeter[2],f=r&&r[0]*c||0,_=r&&r[1]*c||0,w=e instanceof nc&&e.pitch<=60?t:0;if(i){let[N,j,Y,rt]=i,$=El([N,rt]),K=El([Y,j]);i=[$[0],cx-$[1],K[0],cx-K[1]]}let C=new CB(0,0,0),R={viewport:e,project:s,cullingVolume:o,elevationBounds:[f,_],minZ:w,maxZ:t,bounds:i,offset:0};if(C.update(R),e instanceof nc&&e.subViewports&&e.subViewports.length>1){for(R.offset=-1;C.update(R)&&!(--R.offset<-YY););for(R.offset=1;C.update(R)&&!(++R.offset>YY););}return C.getSelected()}var Dp=512,e_t=[-1/0,-1/0,1/0,1/0],kB={type:\"object\",value:null,validate:(e,t)=>t.optional&&e===null||typeof e==\"string\"||Array.isArray(e)&&e.every(r=>typeof r==\"string\"),equal:(e,t)=>{if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;let r=e.length;if(r!==t.length)return!1;for(let i=0;is[0])),Math.min(...r.map(s=>s[1])),Math.max(...r.map(s=>s[0])),Math.max(...r.map(s=>s[1]))]}function r_t(e){return Math.abs(e.split(\"\").reduce((t,r)=>(t<<5)-t+r.charCodeAt(0)|0,0))}function RB(e,t){if(!e||!e.length)return null;let{index:r,id:i}=t;if(Array.isArray(e)){let n=r_t(i)%e.length;e=e[n]}let s=e;for(let n of Object.keys(r)){let o=new RegExp(\"{\".concat(n,\"}\"),\"g\");s=s.replace(o,String(r[n]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(s=s.replace(/\\{-y\\}/g,String(Math.pow(2,r.z)-r.y-1))),s}function i_t(e,t,r){let i;if(t&&t.length===2){let[s,n]=t,o=e.getBounds({z:s}),c=e.getBounds({z:n});i=[Math.min(o[0],c[0]),Math.min(o[1],c[1]),Math.max(o[2],c[2]),Math.max(o[3],c[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function tQ({viewport:e,z:t=0,cullRect:r}){return(e.subViewports||[e]).map(s=>LB(s,t,r))}function LB(e,t,r){if(!Array.isArray(t)){let n=r.x-e.x,o=r.y-e.y,{width:c,height:f}=r,_={targetZ:t},w=e.unproject([n,o],_),C=e.unproject([n+c,o],_),R=e.unproject([n,o+f],_),N=e.unproject([n+c,o+f],_);return[Math.min(w[0],C[0],R[0],N[0]),Math.min(w[1],C[1],R[1],N[1]),Math.max(w[0],C[0],R[0],N[0]),Math.max(w[1],C[1],R[1],N[1])]}let i=LB(e,t[0],r),s=LB(e,t[1],r);return[Math.min(i[0],s[0]),Math.min(i[1],s[1]),Math.max(i[2],s[2]),Math.max(i[3],s[3])]}function n_t(e,t,r){return r?JY(e,r).map(s=>s*t/Dp):e.map(i=>i*t/Dp)}function DB(e,t){return Math.pow(2,e)*Dp/t}function mI(e,t,r){let i=DB(r,Dp),s=e/i*360-180,n=Math.PI-2*Math.PI*t/i,o=180/Math.PI*Math.atan(.5*(Math.exp(n)-Math.exp(-n)));return[s,o]}function KY(e,t,r,i){let s=DB(r,i);return[e/s*Dp,t/s*Dp]}function OB(e,t,r,i,s=Dp){if(e.isGeospatial){let[_,w]=mI(t,r,i),[C,R]=mI(t+1,r+1,i);return{west:_,north:w,east:C,south:R}}let[n,o]=KY(t,r,i,s),[c,f]=KY(t+1,r+1,i,s);return{left:n,top:o,right:c,bottom:f}}function s_t(e,t,r,i,s){let n=i_t(e,null,i),o=DB(t,r),[c,f,_,w]=n_t(n,o,s),C=[];for(let R=Math.floor(c);R<_;R++)for(let N=Math.floor(f);Nt&&(_=t);let w=s;return o&&c&&s&&!e.isGeospatial&&(w=JY(s,o)),e.isGeospatial?XY(e,_,i,s):s_t(e,_,n,w||e_t,c)}function eQ(e){let t={},r;return i=>{for(let s in i)if(!o_t(i[s],t[s])){r=e(i),t=i;break}return r}}function o_t(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{}},h_t={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:\"best-available\",zRange:null,maxRequests:6,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},dS=class{constructor(t){G(this,\"opts\",void 0),G(this,\"_requestScheduler\",void 0),G(this,\"_cache\",void 0),G(this,\"_dirty\",void 0),G(this,\"_tiles\",void 0),G(this,\"_cacheByteSize\",void 0),G(this,\"_viewport\",void 0),G(this,\"_zRange\",void 0),G(this,\"_selectedTiles\",void 0),G(this,\"_frameNumber\",void 0),G(this,\"_modelMatrix\",void 0),G(this,\"_modelMatrixInverse\",void 0),G(this,\"_maxZoom\",void 0),G(this,\"_minZoom\",void 0),G(this,\"onTileLoad\",void 0),G(this,\"_getCullBounds\",eQ(tQ)),this.opts={...h_t,...t},this.onTileLoad=r=>{var i,s;(i=(s=this.opts).onTileLoad)===null||i===void 0||i.call(s,r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new iy({maxRequests:t.maxRequests,throttleRequests:!!(t.maxRequests&&t.maxRequests>0)}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new wn,this._modelMatrixInverse=new wn,this.setOptions(t)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(t=>t.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(t=>t.needsReload)}setOptions(t){Object.assign(this.opts,t),Number.isFinite(t.maxZoom)&&(this._maxZoom=Math.floor(t.maxZoom)),Number.isFinite(t.minZoom)&&(this._minZoom=Math.ceil(t.minZoom))}finalize(){for(let t of this._cache.values())t.isLoading&&t.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let t of this._cache.keys()){let r=this._cache.get(t);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(t):r.setNeedsReload()}}update(t,{zRange:r,modelMatrix:i}={}){let s=new wn(i),n=!s.equals(this._modelMatrix);if(!this._viewport||!t.equals(this._viewport)||!To(this._zRange,r)||n){n&&(this._modelMatrixInverse=s.clone().invert(),this._modelMatrix=s),this._viewport=t,this._zRange=r;let c=this.getTileIndices({viewport:t,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=c.map(f=>this._getTile(f,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(c=>this._getTile(c.index,!0)));let o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(t,r){if(!t.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=t;for(let[n,o,c,f]of i){let _;if(\"west\"in s)_=s.westn&&s.southo;else{let w=Math.min(s.top,s.bottom),C=Math.max(s.top,s.bottom);_=s.leftn&&wo}if(_)return!0}return!1}return!0}getTileIndices({viewport:t,maxZoom:r,minZoom:i,zRange:s,modelMatrix:n,modelMatrixInverse:o}){let{tileSize:c,extent:f,zoomOffset:_}=this.opts;return BB({viewport:t,maxZoom:r,minZoom:i,zRange:s,tileSize:c,extent:f,modelMatrix:n,modelMatrixInverse:o,zoomOffset:_})}getTileId(t){return\"\".concat(t.x,\"-\").concat(t.y,\"-\").concat(t.z)}getTileZoom(t){return t.z}getTileMetadata(t){let{tileSize:r}=this.opts;return{bbox:OB(this._viewport,t.x,t.y,t.z,r)}}getParentIndex(t){let r=Math.floor(t.x/2),i=Math.floor(t.y/2),s=t.z-1;return{x:r,y:i,z:s}}updateTileStates(){let t=this.opts.refinementStrategy||pS,r=new Array(this._cache.size),i=0;for(let s of this._cache.values())r[i++]=s.isVisible,s.isSelected=!1,s.isVisible=!1;for(let s of this._selectedTiles)s.isSelected=!0,s.isVisible=!0;(typeof t==\"function\"?t:u_t[t])(Array.from(this._cache.values())),i=0;for(let s of this._cache.values())if(r[i++]!==s.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:t=0}=this.opts,r=[],i=0;for(let s of this._cache.values())s.isLoading&&(i++,!s.isSelected&&!s.isVisible&&r.push(s));for(;t>0&&i>t&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:t}=this;for(let r of t.values())r.parent=null,r.children&&(r.children.length=0);for(let r of t.values()){let i=this._getNearestAncestor(r);r.parent=i,i!=null&&i.children&&i.children.push(r)}}_resizeCache(){let{_cache:t,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:c_t*this.selectedTiles.length),s=r.maxCacheByteSize||1/0;if(t.size>i||this._cacheByteSize>s){for(let[f,_]of t){if(!_.isVisible&&!_.isSelected){var o,c;this._cacheByteSize-=r.maxCacheByteSize?_.byteLength:0,t.delete(f),(o=(c=this.opts).onTileUnload)===null||o===void 0||o.call(c,_)}if(t.size<=i&&this._cacheByteSize<=s)break}this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((f,_)=>f.zoom-_.zoom),this._dirty=!1)}_getTile(t,r){let i=this.getTileId(t),s=this._cache.get(i),n=!1;return!s&&r?(s=new uI(t),Object.assign(s,this.getTileMetadata(s.index)),Object.assign(s,{id:i,zoom:this.getTileZoom(s.index)}),n=!0,this._cache.set(i,s),this._dirty=!0):s&&s.needsReload&&(n=!0),s&&n&&s.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),s}_getNearestAncestor(t){let{_minZoom:r=0}=this,i=t.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let s=this._getTile(i);if(s)return s}return null}};function f_t(e){for(let t of e)t.state=0;for(let t of e)t.isSelected&&!iQ(t)&&FB(t);for(let t of e)t.isVisible=!!(t.state&gI)}function d_t(e){for(let r of e)r.state=0;for(let r of e)r.isSelected&&iQ(r);let t=Array.from(e).sort((r,i)=>r.zoom-i.zoom);for(let r of t)if(r.isVisible=!!(r.state&gI),r.children&&(r.isVisible||r.state&rQ))for(let i of r.children)i.state=rQ;else r.isSelected&&FB(r)}function iQ(e){let t=e;for(;t;){if(t.isLoaded||t.content)return t.state|=gI,!0;t=t.parent}return!1}function FB(e){for(let t of e.children)t.isLoaded||t.content?t.state|=gI:FB(t)}var p_t={TilesetClass:dS,data:{type:\"data\",value:[]},dataComparator:kB.equal,renderSubLayers:{type:\"function\",value:e=>new xm(e)},getTileData:{type:\"function\",optional:!0,value:null},onViewportLoad:{type:\"function\",optional:!0,value:null},onTileLoad:{type:\"function\",value:e=>{}},onTileUnload:{type:\"function\",value:e=>{}},onTileError:{type:\"function\",value:e=>console.error(e)},extent:{type:\"array\",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:pS,zRange:null,maxRequests:6,zoomOffset:0},Mm=class extends tn{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var t,r;(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||r.finalize()}get isLoaded(){var t,r,i;return(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||(i=r.selectedTiles)===null||i===void 0?void 0:i.every(s=>s.isLoaded&&s.layers&&s.layers.every(n=>n.isLoaded))}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState({changeFlags:t}){let{tileset:r}=this.state,i=t.propsOrDataChanged||t.updateTriggersChanged,s=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),s?r.reloadAll():this.state.tileset.tiles.forEach(n=>{n.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:t,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:s,extent:n,maxZoom:o,minZoom:c,maxRequests:f,zoomOffset:_}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:o,minZoom:c,tileSize:t,refinementStrategy:s,extent:n,maxRequests:f,zoomOffset:_,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let{tileset:t}=this.state,{zRange:r,modelMatrix:i}=this.props,s=t.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:n}=t,o=this.state.isLoaded!==n,c=this.state.frameNumber!==s;n&&(o||c)&&this._onViewportLoad(),c&&this.setState({frameNumber:s}),this.state.isLoaded=n}_onViewportLoad(){let{tileset:t}=this.state,{onViewportLoad:r}=this.props;r&&r(t.selectedTiles)}_onTileLoad(t){this.props.onTileLoad(t),t.layers=null,this.setNeedsUpdate()}_onTileError(t,r){this.props.onTileError(t),r.layers=null,this.setNeedsUpdate()}_onTileUnload(t){this.props.onTileUnload(t)}getTileData(t){let{data:r,getTileData:i,fetch:s}=this.props,{signal:n}=t;return t.url=typeof r==\"string\"||Array.isArray(r)?RB(r,t):null,i?i(t):s&&t.url?s(t.url,{propName:\"data\",layer:this,signal:n}):null}renderSubLayers(t){return this.props.renderSubLayers(t)}getSubLayerPropsByTile(t){return null}getPickingInfo({info:t,sourceLayer:r}){let i=r.props.tile;return t.picked&&(t.tile=i),t.sourceTile=i,t}_updateAutoHighlight(t){let r=t.sourceTile;if(r&&r.layers)for(let i of r.layers)i.updateAutoHighlight(t)}renderLayers(){return this.state.tileset.tiles.map(t=>{let r=this.getSubLayerPropsByTile(t);if(!(!t.isLoaded&&!t.content))if(t.layers)r&&t.layers[0]&&Object.keys(r).some(i=>t.layers[0].props[i]!==r[i])&&(t.layers=t.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:t.id,updateTriggers:this.props.updateTriggers}),data:t.content,_offset:0,tile:t});t.layers=np(i,Boolean).map(s=>s.clone({tile:t,...r}))}return t.layers})}filterSubLayer({layer:t,cullRect:r}){let{tile:i}=t.props;return this.state.tileset.isTileVisible(i,r)}};G(Mm,\"defaultProps\",p_t);G(Mm,\"layerName\",\"TileLayer\");var Tc=function(e){e=e||{};var t=typeof e<\"u\"?e:{},r={},i;for(i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);var s=[],n=\"\";function o(Ht){return t.locateFile?t.locateFile(Ht,n):n+Ht}var c;document.currentScript&&(n=document.currentScript.src),n.indexOf(\"blob:\")!==0?n=n.substr(0,n.lastIndexOf(\"/\")+1):n=\"\",c=function(fe,De,vr){var g=new XMLHttpRequest;g.open(\"GET\",fe,!0),g.responseType=\"arraybuffer\",g.onload=function(){if(g.status==200||g.status==0&&g.response){De(g.response);return}var Si=ht(fe);if(Si){De(Si.buffer);return}vr()},g.onerror=vr,g.send(null)};var f=t.print||console.log.bind(console),_=t.printErr||console.warn.bind(console);for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);r=null,t.arguments&&(s=t.arguments);var w=0,C=function(Ht){w=Ht},R=function(){return w},N=8;function j(Ht,fe,De,vr){switch(De=De||\"i8\",De.charAt(De.length-1)===\"*\"&&(De=\"i32\"),De){case\"i1\":Lr[Ht>>0]=fe;break;case\"i8\":Lr[Ht>>0]=fe;break;case\"i16\":Bo[Ht>>1]=fe;break;case\"i32\":Fo[Ht>>2]=fe;break;case\"i64\":ve=[fe>>>0,(Ao=fe,+Ol(Ao)>=1?Ao>0?(fn(+os(Ao/4294967296),4294967295)|0)>>>0:~~+te((Ao-+(~~Ao>>>0))/4294967296)>>>0:0)],Fo[Ht>>2]=ve[0],Fo[Ht+4>>2]=ve[1];break;case\"float\":zo[Ht>>2]=fe;break;case\"double\":wi[Ht>>3]=fe;break;default:sh(\"invalid type for setValue: \"+De)}}function Y(Ht,fe,De){switch(fe=fe||\"i8\",fe.charAt(fe.length-1)===\"*\"&&(fe=\"i32\"),fe){case\"i1\":return Lr[Ht>>0];case\"i8\":return Lr[Ht>>0];case\"i16\":return Bo[Ht>>1];case\"i32\":return Fo[Ht>>2];case\"i64\":return Fo[Ht>>2];case\"float\":return zo[Ht>>2];case\"double\":return wi[Ht>>3];default:sh(\"invalid type for getValue: \"+fe)}return null}var rt=!1;function $(Ht,fe){Ht||sh(\"Assertion failed: \"+fe)}function K(Ht){var fe=t[\"_\"+Ht];return $(fe,\"Cannot call unknown function \"+Ht+\", make sure it is exported\"),fe}function tt(Ht,fe,De,vr,g){var Ni={string:function(Ur){var hi=0;if(Ur!=null&&Ur!==0){var go=(Ur.length<<2)+1;hi=jp(go),le(Ur,hi,go)}return hi},array:function(Ur){var hi=jp(Ur.length);return Ge(Ur,hi),hi}};function Si(Ur){return fe===\"string\"?Kt(Ur):fe===\"boolean\"?!!Ur:Ur}var Tt=K(Ht),Ts=[],as=0;if(vr)for(var li=0;li=vr);)++g;if(g-fe>16&&Ht.subarray&&Pt)return Pt.decode(Ht.subarray(fe,g));for(var Ni=\"\";fe>10,56320|as&1023)}}return Ni}function Kt(Ht,fe){return Ht?Ot(zi,Ht,fe):\"\"}function Zt(Ht,fe,De,vr){if(!(vr>0))return 0;for(var g=De,Ni=De+vr-1,Si=0;Si=55296&&Tt<=57343){var Ts=Ht.charCodeAt(++Si);Tt=65536+((Tt&1023)<<10)|Ts&1023}if(Tt<=127){if(De>=Ni)break;fe[De++]=Tt}else if(Tt<=2047){if(De+1>=Ni)break;fe[De++]=192|Tt>>6,fe[De++]=128|Tt&63}else if(Tt<=65535){if(De+2>=Ni)break;fe[De++]=224|Tt>>12,fe[De++]=128|Tt>>6&63,fe[De++]=128|Tt&63}else{if(De+3>=Ni)break;fe[De++]=240|Tt>>18,fe[De++]=128|Tt>>12&63,fe[De++]=128|Tt>>6&63,fe[De++]=128|Tt&63}}return fe[De]=0,De-g}function le(Ht,fe,De){return Zt(Ht,zi,fe,De)}var ue=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0;function Ge(Ht,fe){Lr.set(Ht,fe)}function tr(Ht,fe){return Ht%fe>0&&(Ht+=fe-Ht%fe),Ht}var er,Lr,zi,Bo,Pc,Fo,rh,zo,wi;function Ds(Ht){er=Ht,t.HEAP8=Lr=new Int8Array(Ht),t.HEAP16=Bo=new Int16Array(Ht),t.HEAP32=Fo=new Int32Array(Ht),t.HEAPU8=zi=new Uint8Array(Ht),t.HEAPU16=Pc=new Uint16Array(Ht),t.HEAPU32=rh=new Uint32Array(Ht),t.HEAPF32=zo=new Float32Array(Ht),t.HEAPF64=wi=new Float64Array(Ht)}var sl=5266928,Ic=24016,Cc=t.TOTAL_MEMORY||33554432;t.buffer?er=t.buffer:er=new ArrayBuffer(Cc),Cc=er.byteLength,Ds(er),Fo[Ic>>2]=sl;function Zi(Ht){for(;Ht.length>0;){var fe=Ht.shift();if(typeof fe==\"function\"){fe();continue}var De=fe.func;typeof De==\"number\"?fe.arg===void 0?t.dynCall_v(De):t.dynCall_vi(De,fe.arg):De(fe.arg===void 0?null:fe.arg)}}var $n=[],Ii=[],Xn=[],No=[];function ol(){if(t.preRun)for(typeof t.preRun==\"function\"&&(t.preRun=[t.preRun]);t.preRun.length;)ss(t.preRun.shift());Zi($n)}function fo(){Zi(Ii)}function Ea(){Zi(Xn)}function na(){if(t.postRun)for(typeof t.postRun==\"function\"&&(t.postRun=[t.postRun]);t.postRun.length;)to(t.postRun.shift());Zi(No)}function ss(Ht){$n.unshift(Ht)}function to(Ht){No.unshift(Ht)}var Ol=Math.abs,te=Math.ceil,os=Math.floor,fn=Math.min,gi=0,oi=null,eo=null;function uu(Ht){gi++,t.monitorRunDependencies&&t.monitorRunDependencies(gi)}function al(Ht){if(gi--,t.monitorRunDependencies&&t.monitorRunDependencies(gi),gi==0&&(oi!==null&&(clearInterval(oi),oi=null),eo)){var fe=eo;eo=null,fe()}}t.preloadedImages={},t.preloadedAudios={};var po=null,ll=\"data:application/octet-stream;base64,\";function Pa(Ht){return String.prototype.startsWith?Ht.startsWith(ll):Ht.indexOf(ll)===0}var Ao,ve;po=\"data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAAAQAAAAcAAAAGAAAACQAAAAAAAAADAAAAAgAAAAIAAAAGAAAACgAAAAsAAAAAAAAAAQAAAAUAAAADAAAADQAAAAEAAAAHAAAABAAAAAwAAAAAAAAABAAAAH8AAAAPAAAACAAAAAMAAAAAAAAADAAAAAUAAAACAAAAEgAAAAoAAAAIAAAAAAAAABAAAAAGAAAADgAAAAsAAAARAAAAAQAAAAkAAAACAAAABwAAABUAAAAJAAAAEwAAAAMAAAANAAAAAQAAAAgAAAAFAAAAFgAAABAAAAAEAAAAAAAAAA8AAAAJAAAAEwAAAA4AAAAUAAAAAQAAAAcAAAAGAAAACgAAAAsAAAAYAAAAFwAAAAUAAAACAAAAEgAAAAsAAAARAAAAFwAAABkAAAACAAAABgAAAAoAAAAMAAAAHAAAAA0AAAAaAAAABAAAAA8AAAADAAAADQAAABoAAAAVAAAAHQAAAAMAAAAMAAAABwAAAA4AAAB/AAAAEQAAABsAAAAJAAAAFAAAAAYAAAAPAAAAFgAAABwAAAAfAAAABAAAAAgAAAAMAAAAEAAAABIAAAAhAAAAHgAAAAgAAAAFAAAAFgAAABEAAAALAAAADgAAAAYAAAAjAAAAGQAAABsAAAASAAAAGAAAAB4AAAAgAAAABQAAAAoAAAAQAAAAEwAAACIAAAAUAAAAJAAAAAcAAAAVAAAACQAAABQAAAAOAAAAEwAAAAkAAAAoAAAAGwAAACQAAAAVAAAAJgAAABMAAAAiAAAADQAAAB0AAAAHAAAAFgAAABAAAAApAAAAIQAAAA8AAAAIAAAAHwAAABcAAAAYAAAACwAAAAoAAAAnAAAAJQAAABkAAAAYAAAAfwAAACAAAAAlAAAACgAAABcAAAASAAAAGQAAABcAAAARAAAACwAAAC0AAAAnAAAAIwAAABoAAAAqAAAAHQAAACsAAAAMAAAAHAAAAA0AAAAbAAAAKAAAACMAAAAuAAAADgAAABQAAAARAAAAHAAAAB8AAAAqAAAALAAAAAwAAAAPAAAAGgAAAB0AAAArAAAAJgAAAC8AAAANAAAAGgAAABUAAAAeAAAAIAAAADAAAAAyAAAAEAAAABIAAAAhAAAAHwAAACkAAAAsAAAANQAAAA8AAAAWAAAAHAAAACAAAAAeAAAAGAAAABIAAAA0AAAAMgAAACUAAAAhAAAAHgAAADEAAAAwAAAAFgAAABAAAAApAAAAIgAAABMAAAAmAAAAFQAAADYAAAAkAAAAMwAAACMAAAAuAAAALQAAADgAAAARAAAAGwAAABkAAAAkAAAAFAAAACIAAAATAAAANwAAACgAAAA2AAAAJQAAACcAAAA0AAAAOQAAABgAAAAXAAAAIAAAACYAAAB/AAAAIgAAADMAAAAdAAAALwAAABUAAAAnAAAAJQAAABkAAAAXAAAAOwAAADkAAAAtAAAAKAAAABsAAAAkAAAAFAAAADwAAAAuAAAANwAAACkAAAAxAAAANQAAAD0AAAAWAAAAIQAAAB8AAAAqAAAAOgAAACsAAAA+AAAAHAAAACwAAAAaAAAAKwAAAD4AAAAvAAAAQAAAABoAAAAqAAAAHQAAACwAAAA1AAAAOgAAAEEAAAAcAAAAHwAAACoAAAAtAAAAJwAAACMAAAAZAAAAPwAAADsAAAA4AAAALgAAADwAAAA4AAAARAAAABsAAAAoAAAAIwAAAC8AAAAmAAAAKwAAAB0AAABFAAAAMwAAAEAAAAAwAAAAMQAAAB4AAAAhAAAAQwAAAEIAAAAyAAAAMQAAAH8AAAA9AAAAQgAAACEAAAAwAAAAKQAAADIAAAAwAAAAIAAAAB4AAABGAAAAQwAAADQAAAAzAAAARQAAADYAAABHAAAAJgAAAC8AAAAiAAAANAAAADkAAABGAAAASgAAACAAAAAlAAAAMgAAADUAAAA9AAAAQQAAAEsAAAAfAAAAKQAAACwAAAA2AAAARwAAADcAAABJAAAAIgAAADMAAAAkAAAANwAAACgAAAA2AAAAJAAAAEgAAAA8AAAASQAAADgAAABEAAAAPwAAAE0AAAAjAAAALgAAAC0AAAA5AAAAOwAAAEoAAABOAAAAJQAAACcAAAA0AAAAOgAAAH8AAAA+AAAATAAAACwAAABBAAAAKgAAADsAAAA/AAAATgAAAE8AAAAnAAAALQAAADkAAAA8AAAASAAAAEQAAABQAAAAKAAAADcAAAAuAAAAPQAAADUAAAAxAAAAKQAAAFEAAABLAAAAQgAAAD4AAAArAAAAOgAAACoAAABSAAAAQAAAAEwAAAA/AAAAfwAAADgAAAAtAAAATwAAADsAAABNAAAAQAAAAC8AAAA+AAAAKwAAAFQAAABFAAAAUgAAAEEAAAA6AAAANQAAACwAAABWAAAATAAAAEsAAABCAAAAQwAAAFEAAABVAAAAMQAAADAAAAA9AAAAQwAAAEIAAAAyAAAAMAAAAFcAAABVAAAARgAAAEQAAAA4AAAAPAAAAC4AAABaAAAATQAAAFAAAABFAAAAMwAAAEAAAAAvAAAAWQAAAEcAAABUAAAARgAAAEMAAAA0AAAAMgAAAFMAAABXAAAASgAAAEcAAABZAAAASQAAAFsAAAAzAAAARQAAADYAAABIAAAAfwAAAEkAAAA3AAAAUAAAADwAAABYAAAASQAAAFsAAABIAAAAWAAAADYAAABHAAAANwAAAEoAAABOAAAAUwAAAFwAAAA0AAAAOQAAAEYAAABLAAAAQQAAAD0AAAA1AAAAXgAAAFYAAABRAAAATAAAAFYAAABSAAAAYAAAADoAAABBAAAAPgAAAE0AAAA/AAAARAAAADgAAABdAAAATwAAAFoAAABOAAAASgAAADsAAAA5AAAAXwAAAFwAAABPAAAATwAAAE4AAAA/AAAAOwAAAF0AAABfAAAATQAAAFAAAABEAAAASAAAADwAAABjAAAAWgAAAFgAAABRAAAAVQAAAF4AAABlAAAAPQAAAEIAAABLAAAAUgAAAGAAAABUAAAAYgAAAD4AAABMAAAAQAAAAFMAAAB/AAAASgAAAEYAAABkAAAAVwAAAFwAAABUAAAARQAAAFIAAABAAAAAYQAAAFkAAABiAAAAVQAAAFcAAABlAAAAZgAAAEIAAABDAAAAUQAAAFYAAABMAAAASwAAAEEAAABoAAAAYAAAAF4AAABXAAAAUwAAAGYAAABkAAAAQwAAAEYAAABVAAAAWAAAAEgAAABbAAAASQAAAGMAAABQAAAAaQAAAFkAAABhAAAAWwAAAGcAAABFAAAAVAAAAEcAAABaAAAATQAAAFAAAABEAAAAagAAAF0AAABjAAAAWwAAAEkAAABZAAAARwAAAGkAAABYAAAAZwAAAFwAAABTAAAATgAAAEoAAABsAAAAZAAAAF8AAABdAAAATwAAAFoAAABNAAAAbQAAAF8AAABqAAAAXgAAAFYAAABRAAAASwAAAGsAAABoAAAAZQAAAF8AAABcAAAATwAAAE4AAABtAAAAbAAAAF0AAABgAAAAaAAAAGIAAABuAAAATAAAAFYAAABSAAAAYQAAAH8AAABiAAAAVAAAAGcAAABZAAAAbwAAAGIAAABuAAAAYQAAAG8AAABSAAAAYAAAAFQAAABjAAAAUAAAAGkAAABYAAAAagAAAFoAAABxAAAAZAAAAGYAAABTAAAAVwAAAGwAAAByAAAAXAAAAGUAAABmAAAAawAAAHAAAABRAAAAVQAAAF4AAABmAAAAZQAAAFcAAABVAAAAcgAAAHAAAABkAAAAZwAAAFsAAABhAAAAWQAAAHQAAABpAAAAbwAAAGgAAABrAAAAbgAAAHMAAABWAAAAXgAAAGAAAABpAAAAWAAAAGcAAABbAAAAcQAAAGMAAAB0AAAAagAAAF0AAABjAAAAWgAAAHUAAABtAAAAcQAAAGsAAAB/AAAAZQAAAF4AAABzAAAAaAAAAHAAAABsAAAAZAAAAF8AAABcAAAAdgAAAHIAAABtAAAAbQAAAGwAAABdAAAAXwAAAHUAAAB2AAAAagAAAG4AAABiAAAAaAAAAGAAAAB3AAAAbwAAAHMAAABvAAAAYQAAAG4AAABiAAAAdAAAAGcAAAB3AAAAcAAAAGsAAABmAAAAZQAAAHgAAABzAAAAcgAAAHEAAABjAAAAdAAAAGkAAAB1AAAAagAAAHkAAAByAAAAcAAAAGQAAABmAAAAdgAAAHgAAABsAAAAcwAAAG4AAABrAAAAaAAAAHgAAAB3AAAAcAAAAHQAAABnAAAAdwAAAG8AAABxAAAAaQAAAHkAAAB1AAAAfwAAAG0AAAB2AAAAcQAAAHkAAABqAAAAdgAAAHgAAABsAAAAcgAAAHUAAAB5AAAAbQAAAHcAAABvAAAAcwAAAG4AAAB5AAAAdAAAAHgAAAB4AAAAcwAAAHIAAABwAAAAeQAAAHcAAAB2AAAAeQAAAHQAAAB4AAAAdwAAAHUAAABxAAAAdgAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl\";var Uo=24032;function dn(Ht){return Ht}function Bl(Ht){var fe=/\\b__Z[\\w\\d_]+/g;return Ht.replace(fe,function(De){var vr=De;return De===vr?De:vr+\" [\"+De+\"]\"})}function Ia(){var Ht=new Error;if(!Ht.stack){try{throw new Error(0)}catch(fe){Ht=fe}if(!Ht.stack)return\"(no stack trace available)\"}return Ht.stack.toString()}function Se(){var Ht=Ia();return t.extraStackTrace&&(Ht+=`\n`+t.extraStackTrace()),Bl(Ht)}function Dr(Ht,fe,De,vr){sh(\"Assertion failed: \"+Kt(Ht)+\", at: \"+[fe?Kt(fe):\"unknown filename\",De,vr?Kt(vr):\"unknown function\"])}function mr(){return Lr.length}function Os(Ht,fe,De){zi.set(zi.subarray(fe,fe+De),Ht)}function Ca(Ht){return t.___errno_location&&(Fo[t.___errno_location()>>2]=Ht),Ht}function Tr(Ht){sh(\"OOM\")}function sa(Ht){try{var fe=new ArrayBuffer(Ht);return fe.byteLength!=Ht?void 0:(new Int8Array(fe).set(Lr),vi(fe),Ds(fe),1)}catch{}}function gt(Ht){var fe=mr(),De=16777216,vr=2147483648-De;if(Ht>vr)return!1;for(var g=16777216,Ni=Math.max(fe,g);Ni>4,g=(Tt&15)<<4|Ts>>2,Ni=(Ts&3)<<6|as,De=De+String.fromCharCode(vr),Ts!==64&&(De=De+String.fromCharCode(g)),as!==64&&(De=De+String.fromCharCode(Ni));while(li>2]=p,g[k+4>>2]=m,k=(I|0)!=0,k&&(g[I>>2]=0),Ui(p,m)|0)return zt=1,wt=Gt,zt|0;g[zt>>2]=0;t:do if((y|0)>=1)if(k)for(it=0,ot=1,Ct=1,L=0,k=p;;){if(!(L|it)){if(k=jn(k,m,4,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(Ui(k,m)|0){k=1;break t}}if(k=jn(k,m,g[16+(it<<2)>>2]|0,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Ct<<3)|0,g[p>>2]=k,g[p+4>>2]=m,g[I+(Ct<<2)>>2]=ot,L=L+1|0,p=(L|0)==(ot|0),z=it+1|0,H=(z|0)==6,Ui(k,m)|0){k=1;break t}if(ot=ot+(H&p&1)|0,(ot|0)>(y|0)){k=0;break}else it=p?H?0:z:it,Ct=Ct+1|0,L=p?0:L}else for(it=0,ot=1,Ct=1,L=0,k=p;;){if(!(L|it)){if(k=jn(k,m,4,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(Ui(k,m)|0){k=1;break t}}if(k=jn(k,m,g[16+(it<<2)>>2]|0,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Ct<<3)|0,g[p>>2]=k,g[p+4>>2]=m,L=L+1|0,p=(L|0)==(ot|0),z=it+1|0,H=(z|0)==6,Ui(k,m)|0){k=1;break t}if(ot=ot+(H&p&1)|0,(ot|0)>(y|0)){k=0;break}else it=p?H?0:z:it,Ct=Ct+1|0,L=p?0:L}else k=0;while(!1);return zt=k,wt=Gt,zt|0}function Oa(p,m,y,S,I,k,L){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0,k=k|0,L=L|0;var z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0;if(Ct=wt,wt=wt+16|0,ot=Ct,(p|0)==0&(m|0)==0){wt=Ct;return}if(z=qo(p|0,m|0,k|0,((k|0)<0)<<31>>31|0)|0,It()|0,H=S+(z<<3)|0,zt=H,Gt=g[zt>>2]|0,zt=g[zt+4>>2]|0,it=(Gt|0)==(p|0)&(zt|0)==(m|0),!((Gt|0)==0&(zt|0)==0|it))do z=(z+1|0)%(k|0)|0,H=S+(z<<3)|0,Gt=H,zt=g[Gt>>2]|0,Gt=g[Gt+4>>2]|0,it=(zt|0)==(p|0)&(Gt|0)==(m|0);while(!((zt|0)==0&(Gt|0)==0|it));if(z=I+(z<<2)|0,it&&(g[z>>2]|0)<=(L|0)){wt=Ct;return}if(Gt=H,g[Gt>>2]=p,g[Gt+4>>2]=m,g[z>>2]=L,(L|0)>=(y|0)){wt=Ct;return}Gt=L+1|0,g[ot>>2]=0,zt=jn(p,m,2,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,3,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,1,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,5,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,4,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,6,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),wt=Ct}function jn(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0;if((g[S>>2]|0)>0){I=0;do y=za(y)|0,I=I+1|0;while((I|0)<(g[S>>2]|0))}z=me(p|0,m|0,45)|0,It()|0,H=z&127,k=Ms(p,m)|0,I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!I)L=6;else for(;;){if(Ct=(15-I|0)*3|0,zt=me(p|0,m|0,Ct|0)|0,It()|0,zt=zt&7,Gt=(Go(I)|0)==0,I=I+-1|0,ot=Le(7,0,Ct|0)|0,m=m&~(It()|0),Ct=Le(g[(Gt?464:48)+(zt*28|0)+(y<<2)>>2]|0,0,Ct|0)|0,it=It()|0,y=g[(Gt?672:256)+(zt*28|0)+(y<<2)>>2]|0,p=Ct|p&~ot,m=it|m,!y){y=0;break t}if(!I){L=6;break}}while(!1);(L|0)==6&&(Gt=g[880+(H*28|0)+(y<<2)>>2]|0,zt=Le(Gt|0,0,45)|0,p=zt|p,m=It()|0|m&-1040385,y=g[4304+(H*28|0)+(y<<2)>>2]|0,(Gt&127|0)==127&&(Gt=Le(g[880+(H*28|0)+20>>2]|0,0,45)|0,m=It()|0|m&-1040385,y=g[4304+(H*28|0)+20>>2]|0,p=jo(Gt|p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+1)),L=me(p|0,m|0,45)|0,It()|0,L=L&127;t:do if(fi(L)|0){e:do if((Ms(p,m)|0)==1){if((H|0)!=(L|0))if(lh(L,g[7728+(H*28|0)>>2]|0)|0){p=Od(p,m)|0,k=1,m=It()|0;break}else{p=jo(p,m)|0,k=1,m=It()|0;break}switch(k|0){case 5:{p=Od(p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+5,k=0;break e}case 3:{p=jo(p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+1,k=0;break e}default:return zt=0,Gt=0,$e(zt|0),Gt|0}}else k=0;while(!1);if((y|0)>0){I=0;do p=mh(p,m)|0,m=It()|0,I=I+1|0;while((I|0)!=(y|0))}if((H|0)!=(L|0)){if(!(du(L)|0)){if((k|0)!=0|(Ms(p,m)|0)!=5)break;g[S>>2]=(g[S>>2]|0)+1;break}switch(z&127){case 8:case 118:break t;default:}(Ms(p,m)|0)!=3&&(g[S>>2]=(g[S>>2]|0)+1)}}else if((y|0)>0){I=0;do p=jo(p,m)|0,m=It()|0,I=I+1|0;while((I|0)!=(y|0))}while(!1);return g[S>>2]=((g[S>>2]|0)+y|0)%6|0,zt=m,Gt=p,$e(zt|0),Gt|0}function i_(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0;if(Ct=wt,wt=wt+16|0,ot=Ct,!y)return ot=S,g[ot>>2]=p,g[ot+4>>2]=m,ot=0,wt=Ct,ot|0;g[ot>>2]=0;t:do if(Ui(p,m)|0)p=1;else{if(k=(y|0)>0,k){I=0,it=p;do{if(it=jn(it,m,4,ot)|0,m=It()|0,(it|0)==0&(m|0)==0){p=2;break t}if(I=I+1|0,Ui(it,m)|0){p=1;break t}}while((I|0)<(y|0));if(H=S,g[H>>2]=it,g[H+4>>2]=m,H=y+-1|0,k){k=0,L=1,I=it,p=m;do{if(I=jn(I,p,2,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(L<<3)|0,g[z>>2]=I,g[z+4>>2]=p,L=L+1|0,Ui(I,p)|0){p=1;break t}k=k+1|0}while((k|0)<(y|0));z=0,k=L;do{if(I=jn(I,p,3,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(L=S+(k<<3)|0,g[L>>2]=I,g[L+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}z=z+1|0}while((z|0)<(y|0));L=0;do{if(I=jn(I,p,1,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(I=jn(I,p,5,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(I=jn(I,p,4,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));for(L=0;;){if(I=jn(I,p,6,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if((L|0)!=(H|0))if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,!(Ui(I,p)|0))k=k+1|0;else{p=1;break t}if(L=L+1|0,(L|0)>=(y|0)){L=it,k=m;break}}}else L=it,I=it,k=m,p=m}else L=S,g[L>>2]=p,g[L+4>>2]=m,L=p,I=p,k=m,p=m;p=((L|0)!=(I|0)|(k|0)!=(p|0))&1}while(!1);return ot=p,wt=Ct,ot|0}function Pd(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;if(k=wt,wt=wt+48|0,I=k+8|0,S=k,z=p,L=g[z+4>>2]|0,y=S,g[y>>2]=g[z>>2],g[y+4>>2]=L,Me(S,I),I=ch(I,m)|0,m=g[S>>2]|0,S=g[p+8>>2]|0,(S|0)<=0)return z=m,L=(I|0)<(z|0),z=L?z:I,z=z+12|0,wt=k,z|0;y=g[p+12>>2]|0,p=0;do m=(g[y+(p<<3)>>2]|0)+m|0,p=p+1|0;while((p|0)<(S|0));return z=(I|0)<(m|0),z=z?m:I,z=z+12|0,wt=k,z|0}function Zp(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;if(z=wt,wt=wt+48|0,S=z+8|0,I=z,!(Yp(p,m,y)|0)){wt=z;return}if(H=p,k=g[H+4>>2]|0,L=I,g[L>>2]=g[H>>2],g[L+4>>2]=k,Me(I,S),L=ch(S,m)|0,m=g[I>>2]|0,k=g[p+8>>2]|0,(k|0)>0){I=g[p+12>>2]|0,S=0;do m=(g[I+(S<<3)>>2]|0)+m|0,S=S+1|0;while((S|0)!=(k|0))}if(m=(L|0)<(m|0)?m:L,(m|0)<=-12){wt=z;return}H=m+11|0,Dc(y|0,0,(((H|0)>0?H:0)<<3)+8|0)|0,wt=z}function Yp(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(Or=wt,wt=wt+112|0,cn=Or+80|0,H=Or+72|0,Ei=Or,vn=Or+56|0,it=p+8|0,An=no((g[it>>2]<<5)+32|0)|0,An||Ti(22848,22448,800,22456),dr(p,An),k=p,S=g[k+4>>2]|0,z=H,g[z>>2]=g[k>>2],g[z+4>>2]=S,Me(H,cn),z=ch(cn,m)|0,S=g[H>>2]|0,k=g[it>>2]|0,(k|0)>0){L=g[p+12>>2]|0,I=0;do S=(g[L+(I<<3)>>2]|0)+S|0,I=I+1|0;while((I|0)!=(k|0))}if(z=(z|0)<(S|0)?S:z,Mi=z+12|0,I=Na(Mi,8)|0,ot=Na(Mi,8)|0,g[cn>>2]=0,Zr=p,Gi=g[Zr+4>>2]|0,S=H,g[S>>2]=g[Zr>>2],g[S+4>>2]=Gi,S=Km(H,Mi,m,cn,I,ot)|0,S|0)return Gr(I),Gr(ot),Gr(An),An=S,wt=Or,An|0;t:do if((g[it>>2]|0)>0){for(k=p+12|0,S=0;L=Km((g[k>>2]|0)+(S<<3)|0,Mi,m,cn,I,ot)|0,S=S+1|0,!(L|0);)if((S|0)>=(g[it>>2]|0))break t;return Gr(I),Gr(ot),Gr(An),An=L,wt=Or,An|0}while(!1);(z|0)>-12&&Dc(ot|0,0,((Mi|0)>1?Mi:1)<<3|0)|0;t:do if((g[cn>>2]|0)>0){Gi=((Mi|0)<0)<<31>>31,Nt=I,Ze=ot,Ke=I,be=I,ze=ot,Zr=I,S=I,Ce=I,Ve=ot,Jt=ot,_e=ot,I=ot;e:for(;;){for(ie=g[cn>>2]|0,Gt=0,ee=0,k=0;;){L=Ei,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));if(m=Nt+(Gt<<3)|0,H=g[m>>2]|0,m=g[m+4>>2]|0,gf(H,m,1,Ei,0)|0){L=Ei,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));L=Na(7,4)|0,L|0&&(Oa(H,m,1,Ei,L,7,0),Gr(L))}zt=0;do{Ct=Ei+(zt<<3)|0,ot=g[Ct>>2]|0,Ct=g[Ct+4>>2]|0;r:do if(!((ot|0)==0&(Ct|0)==0)){if(H=qo(ot|0,Ct|0,Mi|0,Gi|0)|0,It()|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,!((m|0)==0&(z|0)==0))for(it=0;;){if((it|0)>(Mi|0))break e;if((m|0)==(ot|0)&(z|0)==(Ct|0))break r;if(H=(H+1|0)%(Mi|0)|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,(m|0)==0&(z|0)==0)break;it=it+1|0}(ot|0)==0&(Ct|0)==0||(l(ot,Ct,vn),Xe(p,An,vn)|0&&(it=L,g[it>>2]=ot,g[it+4>>2]=Ct,it=Ze+(k<<3)|0,g[it>>2]=ot,g[it+4>>2]=Ct,k=k+1|0))}while(!1);zt=zt+1|0}while(zt>>>0<7);if(ee=ee+1|0,(ee|0)>=(ie|0))break;Gt=Gt+1|0}if((ie|0)>0&&Dc(Ke|0,0,ie<<3|0)|0,g[cn>>2]=k,(k|0)>0)ot=I,Ct=_e,zt=Zr,Gt=Jt,ee=Ve,ie=Ze,I=Ce,_e=S,Jt=be,Ve=Ke,Ce=ot,S=Ct,Zr=ze,ze=zt,be=Gt,Ke=ee,Ze=Nt,Nt=ie;else break t}return Gr(be),Gr(ze),Gr(An),An=-1,wt=Or,An|0}else S=ot;while(!1);return Gr(An),Gr(I),Gr(S),An=0,wt=Or,An|0}function Km(p,m,y,S,I,k){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0,k=k|0;var L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0;if(Gi=wt,wt=wt+48|0,Ke=Gi+32|0,be=Gi+16|0,ze=Gi,L=g[p>>2]|0,(L|0)<=0)return Zr=0,wt=Gi,Zr|0;Ve=p+4|0,Jt=Ke+8|0,_e=be+8|0,Nt=ze+8|0,Ze=((m|0)<0)<<31>>31,Ce=0;t:for(;;){z=g[Ve>>2]|0,ee=z+(Ce<<4)|0,g[Ke>>2]=g[ee>>2],g[Ke+4>>2]=g[ee+4>>2],g[Ke+8>>2]=g[ee+8>>2],g[Ke+12>>2]=g[ee+12>>2],(Ce|0)==(L+-1|0)?(g[be>>2]=g[z>>2],g[be+4>>2]=g[z+4>>2],g[be+8>>2]=g[z+8>>2],g[be+12>>2]=g[z+12>>2]):(ee=z+(Ce+1<<4)|0,g[be>>2]=g[ee>>2],g[be+4>>2]=g[ee+4>>2],g[be+8>>2]=g[ee+8>>2],g[be+12>>2]=g[ee+12>>2]),ee=la(Ke,be,y)|0;e:do if((ee|0)>0){ie=+(ee|0),Gt=0;r:for(;;){cn=+(ee-Gt|0),Mi=+(Gt|0),Tt[ze>>3]=+Tt[Ke>>3]*cn/ie+ +Tt[be>>3]*Mi/ie,Tt[Nt>>3]=+Tt[Jt>>3]*cn/ie+ +Tt[_e>>3]*Mi/ie,Ct=sA(ze,y)|0,zt=It()|0,z=qo(Ct|0,zt|0,m|0,Ze|0)|0,It()|0,L=k+(z<<3)|0,H=L,it=g[H>>2]|0,H=g[H+4>>2]|0;i:do if((it|0)==0&(H|0)==0)Zr=14;else for(ot=0;;){if((ot|0)>(m|0)){L=1;break i}if((it|0)==(Ct|0)&(H|0)==(zt|0)){L=7;break i}if(z=(z+1|0)%(m|0)|0,L=k+(z<<3)|0,H=L,it=g[H>>2]|0,H=g[H+4>>2]|0,(it|0)==0&(H|0)==0){Zr=14;break}else ot=ot+1|0}while(!1);switch((Zr|0)==14&&(Zr=0,(Ct|0)==0&(zt|0)==0?L=7:(g[L>>2]=Ct,g[L+4>>2]=zt,L=g[S>>2]|0,ot=I+(L<<3)|0,g[ot>>2]=Ct,g[ot+4>>2]=zt,g[S>>2]=L+1,L=0)),L&7){case 7:case 0:break;default:break r}if(Gt=Gt+1|0,(ee|0)<=(Gt|0)){Zr=8;break e}}if(L|0){L=-1,Zr=20;break t}}else Zr=8;while(!1);if((Zr|0)==8&&(Zr=0),Ce=Ce+1|0,L=g[p>>2]|0,(Ce|0)>=(L|0)){L=0,Zr=20;break}}return(Zr|0)==20?(wt=Gi,L|0):0}function Pn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(it=wt,wt=wt+176|0,H=it,(m|0)<1){gu(y,0,0),wt=it;return}L=p,L=me(g[L>>2]|0,g[L+4>>2]|0,52)|0,It()|0,gu(y,(m|0)>6?m:6,L&15),L=0;do{if(S=p+(L<<3)|0,d(g[S>>2]|0,g[S+4>>2]|0,H),S=g[H>>2]|0,(S|0)>0){z=0;do k=H+8+(z<<4)|0,z=z+1|0,S=H+8+(((z|0)%(S|0)|0)<<4)|0,I=_h(y,S,k)|0,I?Es(y,I)|0:yo(y,k,S)|0,S=g[H>>2]|0;while((z|0)<(S|0))}L=L+1|0}while((L|0)!=(m|0));wt=it}function oh(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(k=wt,wt=wt+32|0,S=k,I=k+16|0,Pn(p,m,I),g[y>>2]=0,g[y+4>>2]=0,g[y+8>>2]=0,p=Ns(I)|0,!p){Wt(y)|0,gh(I),wt=k;return}do{m=yt(y)|0;do dt(m,p)|0,L=p+16|0,g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],g[S+12>>2]=g[L+12>>2],Es(I,p)|0,p=On(I,S)|0;while(p|0);p=Ns(I)|0}while(p|0);Wt(y)|0,gh(I),wt=k}function fi(p){return p=p|0,g[7728+(p*28|0)+16>>2]|0}function du(p){return p=p|0,(p|0)==4|(p|0)==117|0}function _f(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)>>2]|0}function Qp(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)+4>>2]|0}function ah(p,m){p=p|0,m=m|0,p=7728+(p*28|0)|0,g[m>>2]=g[p>>2],g[m+4>>2]=g[p+4>>2],g[m+8>>2]=g[p+8>>2],g[m+12>>2]=g[p+12>>2]}function Id(p,m){p=p|0,m=m|0;var y=0,S=0;if(m>>>0>20)return m=-1,m|0;do if((g[11152+(m*216|0)>>2]|0)!=(p|0))if((g[11152+(m*216|0)+8>>2]|0)!=(p|0))if((g[11152+(m*216|0)+16>>2]|0)!=(p|0))if((g[11152+(m*216|0)+24>>2]|0)!=(p|0))if((g[11152+(m*216|0)+32>>2]|0)!=(p|0))if((g[11152+(m*216|0)+40>>2]|0)!=(p|0))if((g[11152+(m*216|0)+48>>2]|0)!=(p|0))if((g[11152+(m*216|0)+56>>2]|0)!=(p|0))if((g[11152+(m*216|0)+64>>2]|0)!=(p|0))if((g[11152+(m*216|0)+72>>2]|0)!=(p|0))if((g[11152+(m*216|0)+80>>2]|0)!=(p|0))if((g[11152+(m*216|0)+88>>2]|0)!=(p|0))if((g[11152+(m*216|0)+96>>2]|0)!=(p|0))if((g[11152+(m*216|0)+104>>2]|0)!=(p|0))if((g[11152+(m*216|0)+112>>2]|0)!=(p|0))if((g[11152+(m*216|0)+120>>2]|0)!=(p|0))if((g[11152+(m*216|0)+128>>2]|0)!=(p|0))if((g[11152+(m*216|0)+136>>2]|0)==(p|0))p=2,y=1,S=2;else{if((g[11152+(m*216|0)+144>>2]|0)==(p|0)){p=0,y=2,S=0;break}if((g[11152+(m*216|0)+152>>2]|0)==(p|0)){p=0,y=2,S=1;break}if((g[11152+(m*216|0)+160>>2]|0)==(p|0)){p=0,y=2,S=2;break}if((g[11152+(m*216|0)+168>>2]|0)==(p|0)){p=1,y=2,S=0;break}if((g[11152+(m*216|0)+176>>2]|0)==(p|0)){p=1,y=2,S=1;break}if((g[11152+(m*216|0)+184>>2]|0)==(p|0)){p=1,y=2,S=2;break}if((g[11152+(m*216|0)+192>>2]|0)==(p|0)){p=2,y=2,S=0;break}if((g[11152+(m*216|0)+200>>2]|0)==(p|0)){p=2,y=2,S=1;break}if((g[11152+(m*216|0)+208>>2]|0)==(p|0)){p=2,y=2,S=2;break}else p=-1;return p|0}else p=2,y=1,S=1;else p=2,y=1,S=0;else p=1,y=1,S=2;else p=1,y=1,S=1;else p=1,y=1,S=0;else p=0,y=1,S=2;else p=0,y=1,S=1;else p=0,y=1,S=0;else p=2,y=0,S=2;else p=2,y=0,S=1;else p=2,y=0,S=0;else p=1,y=0,S=2;else p=1,y=0,S=1;else p=1,y=0,S=0;else p=0,y=0,S=2;else p=0,y=0,S=1;else p=0,y=0,S=0;while(!1);return m=g[11152+(m*216|0)+(y*72|0)+(p*24|0)+(S<<3)+4>>2]|0,m|0}function lh(p,m){return p=p|0,m=m|0,(g[7728+(p*28|0)+20>>2]|0)==(m|0)?(m=1,m|0):(m=(g[7728+(p*28|0)+24>>2]|0)==(m|0),m|0)}function $p(p,m){return p=p|0,m=m|0,g[880+(p*28|0)+(m<<2)>>2]|0}function Xp(p,m){return p=p|0,m=m|0,(g[880+(p*28|0)>>2]|0)==(m|0)?(m=0,m|0):(g[880+(p*28|0)+4>>2]|0)==(m|0)?(m=1,m|0):(g[880+(p*28|0)+8>>2]|0)==(m|0)?(m=2,m|0):(g[880+(p*28|0)+12>>2]|0)==(m|0)?(m=3,m|0):(g[880+(p*28|0)+16>>2]|0)==(m|0)?(m=4,m|0):(g[880+(p*28|0)+20>>2]|0)==(m|0)?(m=5,m|0):((g[880+(p*28|0)+24>>2]|0)==(m|0)?6:7)|0}function n_(){return 122}function s_(p){p=p|0;var m=0,y=0,S=0;m=0;do Le(m|0,0,45)|0,S=It()|0|134225919,y=p+(m<<3)|0,g[y>>2]=-1,g[y+4>>2]=S,m=m+1|0;while((m|0)!=122)}function Jm(p){return p=p|0,+Tt[p+16>>3]<+Tt[p+24>>3]|0}function hl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return y=+Tt[m>>3],!(y>=+Tt[p+8>>3])||!(y<=+Tt[p>>3])?(m=0,m|0):(S=+Tt[p+16>>3],y=+Tt[p+24>>3],I=+Tt[m+8>>3],m=I>=y,p=I<=S&1,S>2]=0,k=k+4|0;while((k|0)<(z|0));return O(m,I),k=I,z=g[k>>2]|0,k=g[k+4>>2]|0,l(z,k,y),d(z,k,S),H=+Rc(y,S+8|0),Tt[y>>3]=+Tt[p>>3],k=y+8|0,Tt[k>>3]=+Tt[p+16>>3],Tt[S>>3]=+Tt[p+8>>3],z=S+8|0,Tt[z>>3]=+Tt[p+24>>3],it=+Rc(y,S),z=~~+Qi(+(it*it/+dl(+ +li(+((+Tt[k>>3]-+Tt[z>>3])/(+Tt[y>>3]-+Tt[S>>3]))),3)/(H*(H*2.59807621135)*.8))),wt=L,(z|0?z:1)|0}function la(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0;z=wt,wt=wt+288|0,S=z+264|0,I=z+96|0,k=z,L=k,H=L+96|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(H|0));return O(y,k),H=k,L=g[H>>2]|0,H=g[H+4>>2]|0,l(L,H,S),d(L,H,I),it=+Rc(S,I+8|0),H=~~+Qi(+(+Rc(p,m)/(it*2))),wt=z,(H|0?H:1)|0}function Cd(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0,g[p>>2]=m,g[p+4>>2]=y,g[p+8>>2]=S}function o_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;Ct=m+8|0,g[Ct>>2]=0,H=+Tt[p>>3],L=+li(+H),it=+Tt[p+8>>3],z=+li(+it)/.8660254037844386,L=L+z*.5,y=~~L,p=~~z,L=L-+(y|0),z=z-+(p|0);do if(L<.5)if(L<.3333333333333333)if(g[m>>2]=y,z<(L+1)*.5){g[m+4>>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}else if(zt=1-L,p=(!(z>2]=p,zt<=z&z>2]=y;break}else{g[m>>2]=y;break}else{if(!(L<.6666666666666666))if(y=y+1|0,g[m>>2]=y,z>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}if(z<1-L){if(g[m+4>>2]=p,L*2+-1>2]=y;break}}else p=p+1|0,g[m+4>>2]=p;y=y+1|0,g[m>>2]=y}while(!1);do if(H<0)if(p&1){ot=(p+1|0)/2|0,ot=Bd(y|0,((y|0)<0)<<31>>31|0,ot|0,((ot|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-((+(ot>>>0)+4294967296*+(It()|0))*2+1)),g[m>>2]=y;break}else{ot=(p|0)/2|0,ot=Bd(y|0,((y|0)<0)<<31>>31|0,ot|0,((ot|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-(+(ot>>>0)+4294967296*+(It()|0))*2),g[m>>2]=y;break}while(!1);ot=m+4|0,it<0&&(y=y-((p<<1|1|0)/2|0)|0,g[m>>2]=y,p=0-p|0,g[ot>>2]=p),S=p-y|0,(y|0)<0?(I=0-y|0,g[ot>>2]=S,g[Ct>>2]=I,g[m>>2]=0,p=S,y=0):I=0,(p|0)<0&&(y=y-p|0,g[m>>2]=y,I=I-p|0,g[Ct>>2]=I,g[ot>>2]=0,p=0),k=y-I|0,S=p-I|0,(I|0)<0&&(g[m>>2]=k,g[ot>>2]=S,g[Ct>>2]=0,p=S,y=k,I=0),S=(p|0)<(y|0)?p:y,S=(I|0)<(S|0)?I:S,!((S|0)<=0)&&(g[m>>2]=y-S,g[ot>>2]=p-S,g[Ct>>2]=I-S)}function Fs(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,(m|0)<0&&(y=y-m|0,g[L>>2]=y,k=p+8|0,g[k>>2]=(g[k>>2]|0)-m,g[p>>2]=0,m=0),(y|0)<0?(m=m-y|0,g[p>>2]=m,k=p+8|0,I=(g[k>>2]|0)-y|0,g[k>>2]=I,g[L>>2]=0,y=0):(I=p+8|0,k=I,I=g[I>>2]|0),(I|0)<0&&(m=m-I|0,g[p>>2]=m,y=y-I|0,g[L>>2]=y,g[k>>2]=0,I=0),S=(y|0)<(m|0)?y:m,S=(I|0)<(S|0)?I:S,!((S|0)<=0)&&(g[p>>2]=m-S,g[L>>2]=y-S,g[k>>2]=I-S)}function pu(p,m){p=p|0,m=m|0;var y=0,S=0;S=g[p+8>>2]|0,y=+((g[p+4>>2]|0)-S|0),Tt[m>>3]=+((g[p>>2]|0)-S|0)-y*.5,Tt[m+8>>3]=y*.8660254037844386}function In(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[m>>2]|0)+(g[p>>2]|0),g[y+4>>2]=(g[m+4>>2]|0)+(g[p+4>>2]|0),g[y+8>>2]=(g[m+8>>2]|0)+(g[p+8>>2]|0)}function Kp(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[p>>2]|0)-(g[m>>2]|0),g[y+4>>2]=(g[p+4>>2]|0)-(g[m+4>>2]|0),g[y+8>>2]=(g[p+8>>2]|0)-(g[m+8>>2]|0)}function ca(p,m){p=p|0,m=m|0;var y=0,S=0;y=kc(g[p>>2]|0,m)|0,g[p>>2]=y,y=p+4|0,S=kc(g[y>>2]|0,m)|0,g[y>>2]=S,p=p+8|0,m=kc(g[p>>2]|0,m)|0,g[p>>2]=m}function Ba(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=g[p>>2]|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,I=(k?0-S|0:0)+((g[p+8>>2]|0)-(z?L:0))|0,y=(I|0)<0,p=y?0:I,m=(k?0:S)-(y?I:0)|0,I=(z?0:L)-(k?S:0)-(y?I:0)|0,y=(m|0)<(I|0)?m:I,y=(p|0)<(y|0)?p:y,S=(y|0)>0,p=p-(S?y:0)|0,m=m-(S?y:0)|0;t:do switch(I-(S?y:0)|0){case 0:switch(m|0){case 0:return z=p|0?(p|0)==1?1:7:0,z|0;case 1:return z=p|0?(p|0)==1?3:7:2,z|0;default:break t}case 1:switch(m|0){case 0:return z=p|0?(p|0)==1?5:7:4,z|0;case 1:{if(!p)p=6;else break t;return p|0}default:break t}default:}while(!1);return z=7,z|0}function Ld(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=pn(+((m*3|0)-y|0)/7)|0,g[p>>2]=S,m=pn(+((y<<1)+m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,I=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,m=I,I=k,y=0):I=S,S=(m|0)<(I|0)?m:I,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=I-S,g[z>>2]=m-S,g[L>>2]=y-S)}function fl(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=pn(+((m<<1)+y|0)/7)|0,g[p>>2]=S,m=pn(+((y*3|0)-m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,I=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,m=I,I=k,y=0):I=S,S=(m|0)<(I|0)?m:I,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=I-S,g[z>>2]=m-S,g[L>>2]=y-S)}function Fa(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,I=y+(m*3|0)|0,g[p>>2]=I,y=S+(y*3|0)|0,g[L>>2]=y,m=(S*3|0)+m|0,g[z>>2]=m,S=y-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=I,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function uh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m*3|0)+I|0,I=y+(I*3|0)|0,g[p>>2]=I,g[L>>2]=S,m=(y*3|0)+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,I=0):y=S,(y|0)<0&&(I=I-y|0,g[p>>2]=I,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=I-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,I=k,m=0):S=y,y=(S|0)<(I|0)?S:I,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=I-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Jp(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;(m+-1|0)>>>0>=6||(I=(g[15472+(m*12|0)>>2]|0)+(g[p>>2]|0)|0,g[p>>2]=I,z=p+4|0,S=(g[15472+(m*12|0)+4>>2]|0)+(g[z>>2]|0)|0,g[z>>2]=S,L=p+8|0,m=(g[15472+(m*12|0)+8>>2]|0)+(g[L>>2]|0)|0,g[L>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[z>>2]=y,g[L>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[L>>2]=m,g[z>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[z>>2]=I-y,g[L>>2]=m-y))}function t0(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=m+I|0,I=y+I|0,g[p>>2]=I,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function hh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,S=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,I=S+m|0,g[p>>2]=I,S=y+S|0,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function za(p){switch(p=p|0,p|0){case 1:{p=5;break}case 5:{p=4;break}case 4:{p=6;break}case 6:{p=2;break}case 2:{p=3;break}case 3:{p=1;break}default:}return p|0}function ro(p){switch(p=p|0,p|0){case 1:{p=3;break}case 3:{p=2;break}case 2:{p=6;break}case 6:{p=4;break}case 4:{p=5;break}case 5:{p=1;break}default:}return p|0}function Ue(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,I=y+(m<<1)|0,g[p>>2]=I,y=S+(y<<1)|0,g[L>>2]=y,m=(S<<1)+m|0,g[z>>2]=m,S=y-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=I,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function kd(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m<<1)+I|0,I=y+(I<<1)|0,g[p>>2]=I,g[L>>2]=S,m=(y<<1)+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,I=0):y=S,(y|0)<0&&(I=I-y|0,g[p>>2]=I,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=I-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,I=k,m=0):S=y,y=(S|0)<(I|0)?S:I,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=I-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Vl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;return L=(g[p>>2]|0)-(g[m>>2]|0)|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(g[m+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,I=(z?0-L|0:0)+(g[p+8>>2]|0)-(g[m+8>>2]|0)+(k?0-S|0:0)|0,p=(I|0)<0,m=p?0:I,y=(k?0:S)-(p?I:0)|0,I=(z?0:L)-(k?S:0)-(p?I:0)|0,p=(y|0)<(I|0)?y:I,p=(m|0)<(p|0)?m:p,S=(p|0)>0,m=m-(S?p:0)|0,y=y-(S?p:0)|0,p=I-(S?p:0)|0,p=(p|0)>-1?p:0-p|0,y=(y|0)>-1?y:0-y|0,m=(m|0)>-1?m:0-m|0,m=(y|0)>(m|0)?y:m,((p|0)>(m|0)?p:m)|0}function yf(p,m){p=p|0,m=m|0;var y=0;y=g[p+8>>2]|0,g[m>>2]=(g[p>>2]|0)-y,g[m+4>>2]=(g[p+4>>2]|0)-y}function a_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;S=g[p>>2]|0,g[m>>2]=S,p=g[p+4>>2]|0,L=m+4|0,g[L>>2]=p,z=m+8|0,g[z>>2]=0,y=p-S|0,(S|0)<0?(p=0-S|0,g[L>>2]=y,g[z>>2]=p,g[m>>2]=0,S=0):(y=p,p=0),(y|0)<0&&(S=S-y|0,g[m>>2]=S,p=p-y|0,g[z>>2]=p,g[L>>2]=0,y=0),k=S-p|0,I=y-p|0,(p|0)<0?(g[m>>2]=k,g[L>>2]=I,g[z>>2]=0,y=I,I=k,p=0):I=S,S=(y|0)<(I|0)?y:I,S=(p|0)<(S|0)?p:S,!((S|0)<=0)&&(g[m>>2]=I-S,g[L>>2]=y-S,g[z>>2]=p-S)}function Re(p){p=p|0;var m=0,y=0,S=0,I=0;m=p+8|0,I=g[m>>2]|0,y=I-(g[p>>2]|0)|0,g[p>>2]=y,S=p+4|0,p=(g[S>>2]|0)-I|0,g[S>>2]=p,g[m>>2]=0-(p+y)}function e0(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;y=g[p>>2]|0,m=0-y|0,g[p>>2]=m,L=p+8|0,g[L>>2]=0,z=p+4|0,S=g[z>>2]|0,I=S+y|0,(y|0)>0?(g[z>>2]=I,g[L>>2]=y,g[p>>2]=0,m=0,S=I):y=0,(S|0)<0?(k=m-S|0,g[p>>2]=k,y=y-S|0,g[L>>2]=y,g[z>>2]=0,I=k-y|0,m=0-y|0,(y|0)<0?(g[p>>2]=I,g[z>>2]=m,g[L>>2]=0,S=m,y=0):(S=0,I=k)):I=m,m=(S|0)<(I|0)?S:I,m=(y|0)<(m|0)?y:m,!((m|0)<=0)&&(g[p>>2]=I-m,g[z>>2]=S-m,g[L>>2]=y-m)}function r0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,Ix(p,m,y,I),o_(I,y+4|0),wt=S}function Ix(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0;if(H=wt,wt=wt+32|0,k=H,jl(p,k),g[y>>2]=0,I=+jr(15888,k),L=+jr(15912,k),L>2]=1,I=L),L=+jr(15936,k),L>2]=2,I=L),L=+jr(15960,k),L>2]=3,I=L),L=+jr(15984,k),L>2]=4,I=L),L=+jr(16008,k),L>2]=5,I=L),L=+jr(16032,k),L>2]=6,I=L),L=+jr(16056,k),L>2]=7,I=L),L=+jr(16080,k),L>2]=8,I=L),L=+jr(16104,k),L>2]=9,I=L),L=+jr(16128,k),L>2]=10,I=L),L=+jr(16152,k),L>2]=11,I=L),L=+jr(16176,k),L>2]=12,I=L),L=+jr(16200,k),L>2]=13,I=L),L=+jr(16224,k),L>2]=14,I=L),L=+jr(16248,k),L>2]=15,I=L),L=+jr(16272,k),L>2]=16,I=L),L=+jr(16296,k),L>2]=17,I=L),L=+jr(16320,k),L>2]=18,I=L),L=+jr(16344,k),L>2]=19,I=L),L=+mf(+(1-I*.5)),L<1e-16){g[S>>2]=0,g[S+4>>2]=0,g[S+8>>2]=0,g[S+12>>2]=0,wt=H;return}if(y=g[y>>2]|0,I=+Tt[16368+(y*24|0)>>3],I=+dh(I-+dh(+Rd(15568+(y<<4)|0,p))),Go(m)|0?z=+dh(I+-.3334731722518321):z=I,I=+go(+L)/.381966011250105,(m|0)>0){k=0;do I=I*2.6457513110645907,k=k+1|0;while((k|0)!=(m|0))}L=+Ur(+z)*I,Tt[S>>3]=L,z=+hi(+z)*I,Tt[S+8>>3]=z,wt=H}function fh(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0;if(k=+cs(p),k<1e-16){m=15568+(m<<4)|0,g[I>>2]=g[m>>2],g[I+4>>2]=g[m+4>>2],g[I+8>>2]=g[m+8>>2],g[I+12>>2]=g[m+12>>2];return}if(L=+qr(+ +Tt[p+8>>3],+ +Tt[p>>3]),(y|0)>0){p=0;do k=k/2.6457513110645907,p=p+1|0;while((p|0)!=(y|0))}S?(k=k/3,y=(Go(y)|0)==0,k=+Sd(+((y?k:k/2.6457513110645907)*.381966011250105))):(k=+Sd(+(k*.381966011250105)),Go(y)|0&&(L=+dh(L+.3334731722518321))),a0(15568+(m<<4)|0,+dh(+Tt[16368+(m*24|0)>>3]-L),k,I)}function l_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,pu(p+4|0,I),fh(I,g[p>>2]|0,m,0,y),wt=S}function i0(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(vn=wt,wt=wt+272|0,k=vn+256|0,Jt=vn+240|0,Mi=vn,cn=vn+224|0,Ei=vn+208|0,_e=vn+176|0,Nt=vn+160|0,Ze=vn+192|0,Ke=vn+144|0,be=vn+128|0,ze=vn+112|0,Zr=vn+96|0,Gi=vn+80|0,g[k>>2]=m,g[Jt>>2]=g[p>>2],g[Jt+4>>2]=g[p+4>>2],g[Jt+8>>2]=g[p+8>>2],g[Jt+12>>2]=g[p+12>>2],n0(Jt,k,Mi),g[I>>2]=0,Jt=S+y+((S|0)==5&1)|0,(Jt|0)<=(y|0)){wt=vn;return}H=g[k>>2]|0,it=cn+4|0,ot=_e+4|0,Ct=y+5|0,zt=16848+(H<<2)|0,Gt=16928+(H<<2)|0,ee=be+8|0,ie=ze+8|0,Ce=Zr+8|0,Ve=Ei+4|0,z=y;t:for(;;){L=Mi+(((z|0)%5|0)<<4)|0,g[Ei>>2]=g[L>>2],g[Ei+4>>2]=g[L+4>>2],g[Ei+8>>2]=g[L+8>>2],g[Ei+12>>2]=g[L+12>>2];do;while((vf(Ei,H,0,1)|0)==2);if((z|0)>(y|0)&(Go(m)|0)!=0){if(g[_e>>2]=g[Ei>>2],g[_e+4>>2]=g[Ei+4>>2],g[_e+8>>2]=g[Ei+8>>2],g[_e+12>>2]=g[Ei+12>>2],pu(it,Nt),S=g[_e>>2]|0,k=g[17008+(S*80|0)+(g[cn>>2]<<2)>>2]|0,g[_e>>2]=g[18608+(S*80|0)+(k*20|0)>>2],L=g[18608+(S*80|0)+(k*20|0)+16>>2]|0,(L|0)>0){p=0;do t0(ot),p=p+1|0;while((p|0)<(L|0))}switch(L=18608+(S*80|0)+(k*20|0)+4|0,g[Ze>>2]=g[L>>2],g[Ze+4>>2]=g[L+4>>2],g[Ze+8>>2]=g[L+8>>2],ca(Ze,(g[zt>>2]|0)*3|0),In(ot,Ze,ot),Fs(ot),pu(ot,Ke),An=+(g[Gt>>2]|0),Tt[be>>3]=An*3,Tt[ee>>3]=0,Or=An*-1.5,Tt[ze>>3]=Or,Tt[ie>>3]=An*2.598076211353316,Tt[Zr>>3]=Or,Tt[Ce>>3]=An*-2.598076211353316,g[17008+((g[_e>>2]|0)*80|0)+(g[Ei>>2]<<2)>>2]|0){case 1:{p=ze,S=be;break}case 3:{p=Zr,S=ze;break}case 2:{p=be,S=Zr;break}default:{p=12;break t}}Dn(Nt,Ke,S,p,Gi),fh(Gi,g[_e>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1}if((z|0)<(Ct|0)&&(pu(Ve,_e),fh(_e,g[Ei>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1),g[cn>>2]=g[Ei>>2],g[cn+4>>2]=g[Ei+4>>2],g[cn+8>>2]=g[Ei+8>>2],g[cn+12>>2]=g[Ei+12>>2],z=z+1|0,(z|0)>=(Jt|0)){p=3;break}}if((p|0)==3){wt=vn;return}else(p|0)==12&&Ti(22474,22521,581,22531)}function n0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+128|0,S=H+64|0,I=H,k=S,L=20208,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=I,L=20272,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Go(g[m>>2]|0)|0)==0,S=z?S:I,I=p+4|0,Ue(I),kd(I),Go(g[m>>2]|0)|0&&(uh(I),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,In(I,S,m),Fs(m),g[y+16>>2]=g[p>>2],m=y+20|0,In(I,S+12|0,m),Fs(m),g[y+32>>2]=g[p>>2],m=y+36|0,In(I,S+24|0,m),Fs(m),g[y+48>>2]=g[p>>2],m=y+52|0,In(I,S+36|0,m),Fs(m),g[y+64>>2]=g[p>>2],y=y+68|0,In(I,S+48|0,y),Fs(y),wt=H}function vf(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0;if(ee=wt,wt=wt+32|0,zt=ee+12|0,z=ee,Gt=p+4|0,Ct=g[16928+(m<<2)>>2]|0,ot=(S|0)!=0,Ct=ot?Ct*3|0:Ct,I=g[Gt>>2]|0,it=p+8|0,L=g[it>>2]|0,ot){if(k=p+12|0,S=g[k>>2]|0,I=L+I+S|0,(I|0)==(Ct|0))return Gt=1,wt=ee,Gt|0;H=k}else H=p+12|0,S=g[H>>2]|0,I=L+I+S|0;if((I|0)<=(Ct|0))return Gt=0,wt=ee,Gt|0;do if((S|0)>0){if(S=g[p>>2]|0,(L|0)>0){k=18608+(S*80|0)+60|0,S=p;break}S=18608+(S*80|0)+40|0,y?(Cd(zt,Ct,0,0),Kp(Gt,zt,z),hh(z),In(z,zt,Gt),k=S,S=p):(k=S,S=p)}else k=18608+((g[p>>2]|0)*80|0)+20|0,S=p;while(!1);if(g[S>>2]=g[k>>2],I=k+16|0,(g[I>>2]|0)>0){S=0;do t0(Gt),S=S+1|0;while((S|0)<(g[I>>2]|0))}return p=k+4|0,g[zt>>2]=g[p>>2],g[zt+4>>2]=g[p+4>>2],g[zt+8>>2]=g[p+8>>2],m=g[16848+(m<<2)>>2]|0,ca(zt,ot?m*3|0:m),In(Gt,zt,Gt),Fs(Gt),ot?S=((g[it>>2]|0)+(g[Gt>>2]|0)+(g[H>>2]|0)|0)==(Ct|0)?1:2:S=2,Gt=S,wt=ee,Gt|0}function s0(p,m){p=p|0,m=m|0;var y=0;do y=vf(p,m,0,1)|0;while((y|0)==2);return y|0}function tA(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0;if(Zr=wt,wt=wt+240|0,k=Zr+224|0,Ze=Zr+208|0,Ke=Zr,be=Zr+192|0,ze=Zr+176|0,Ce=Zr+160|0,Ve=Zr+144|0,Jt=Zr+128|0,_e=Zr+112|0,Nt=Zr+96|0,g[k>>2]=m,g[Ze>>2]=g[p>>2],g[Ze+4>>2]=g[p+4>>2],g[Ze+8>>2]=g[p+8>>2],g[Ze+12>>2]=g[p+12>>2],eA(Ze,k,Ke),g[I>>2]=0,ie=S+y+((S|0)==6&1)|0,(ie|0)<=(y|0)){wt=Zr;return}H=g[k>>2]|0,it=y+6|0,ot=16928+(H<<2)|0,Ct=Ve+8|0,zt=Jt+8|0,Gt=_e+8|0,ee=be+4|0,L=0,z=y,S=-1;t:for(;;){if(k=(z|0)%6|0,p=Ke+(k<<4)|0,g[be>>2]=g[p>>2],g[be+4>>2]=g[p+4>>2],g[be+8>>2]=g[p+8>>2],g[be+12>>2]=g[p+12>>2],p=L,L=vf(be,H,0,1)|0,(z|0)>(y|0)&(Go(m)|0)!=0&&(p|0)!=1&&(g[be>>2]|0)!=(S|0)){switch(pu(Ke+(((k+5|0)%6|0)<<4)+4|0,ze),pu(Ke+(k<<4)+4|0,Ce),Gi=+(g[ot>>2]|0),Tt[Ve>>3]=Gi*3,Tt[Ct>>3]=0,Mi=Gi*-1.5,Tt[Jt>>3]=Mi,Tt[zt>>3]=Gi*2.598076211353316,Tt[_e>>3]=Mi,Tt[Gt>>3]=Gi*-2.598076211353316,k=g[Ze>>2]|0,g[17008+(k*80|0)+(((S|0)==(k|0)?g[be>>2]|0:S)<<2)>>2]|0){case 1:{p=Jt,S=Ve;break}case 3:{p=_e,S=Jt;break}case 2:{p=Ve,S=_e;break}default:{p=8;break t}}Dn(ze,Ce,S,p,Nt),!(Wo(ze,Nt)|0)&&!(Wo(Ce,Nt)|0)&&(fh(Nt,g[Ze>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1)}if((z|0)<(it|0)&&(pu(ee,ze),fh(ze,g[be>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1),z=z+1|0,(z|0)>=(ie|0)){p=3;break}else S=g[be>>2]|0}if((p|0)==3){wt=Zr;return}else(p|0)==8&&Ti(22557,22521,746,22602)}function eA(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+160|0,S=H+80|0,I=H,k=S,L=20336,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=I,L=20416,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Go(g[m>>2]|0)|0)==0,S=z?S:I,I=p+4|0,Ue(I),kd(I),Go(g[m>>2]|0)|0&&(uh(I),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,In(I,S,m),Fs(m),g[y+16>>2]=g[p>>2],m=y+20|0,In(I,S+12|0,m),Fs(m),g[y+32>>2]=g[p>>2],m=y+36|0,In(I,S+24|0,m),Fs(m),g[y+48>>2]=g[p>>2],m=y+52|0,In(I,S+36|0,m),Fs(m),g[y+64>>2]=g[p>>2],m=y+68|0,In(I,S+48|0,m),Fs(m),g[y+80>>2]=g[p>>2],y=y+84|0,In(I,S+60|0,y),Fs(y),wt=H}function dh(p){p=+p;var m=0;return m=p<0?p+6.283185307179586:p,+(p>=6.283185307179586?m+-6.283185307179586:m)}function ls(p,m){return p=p|0,m=m|0,+li(+(+Tt[p>>3]-+Tt[m>>3]))<17453292519943298e-27?(m=+li(+(+Tt[p+8>>3]-+Tt[m+8>>3]))<17453292519943298e-27,m|0):(m=0,m|0)}function Au(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2)}function Rc(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2*6371.007180918475)}function o0(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2*6371.007180918475*1e3)}function Rd(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;return k=+Tt[m>>3],S=+Ur(+k),I=+Tt[m+8>>3]-+Tt[p+8>>3],L=S*+hi(+I),y=+Tt[p>>3],+ +qr(+L,+(+hi(+k)*+Ur(+y)-+Ur(+I)*(S*+hi(+y))))}function a0(p,m,y,S){p=p|0,m=+m,y=+y,S=S|0;var I=0,k=0,L=0,z=0;if(y<1e-16){g[S>>2]=g[p>>2],g[S+4>>2]=g[p+4>>2],g[S+8>>2]=g[p+8>>2],g[S+12>>2]=g[p+12>>2];return}k=m<0?m+6.283185307179586:m,k=m>=6.283185307179586?k+-6.283185307179586:k;do if(k<1e-16)m=+Tt[p>>3]+y,Tt[S>>3]=m,I=S;else{if(I=+li(+(k+-3.141592653589793))<1e-16,m=+Tt[p>>3],I){m=m-y,Tt[S>>3]=m,I=S;break}if(L=+Ur(+y),y=+hi(+y),m=L*+hi(+m)+ +Ur(+k)*(y*+Ur(+m)),m=m>1?1:m,m=+t_(+(m<-1?-1:m)),Tt[S>>3]=m,+li(+(m+-1.5707963267948966))<1e-16){Tt[S>>3]=1.5707963267948966,Tt[S+8>>3]=0;return}if(+li(+(m+1.5707963267948966))<1e-16){Tt[S>>3]=-1.5707963267948966,Tt[S+8>>3]=0;return}if(z=+Ur(+m),k=y*+hi(+k)/z,y=+Tt[p>>3],m=(L-+hi(+m)*+hi(+y))/+Ur(+y)/z,L=k>1?1:k,m=m>1?1:m,m=+Tt[p+8>>3]+ +qr(+(L<-1?-1:L),+(m<-1?-1:m)),m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);Tt[S+8>>3]=m;return}while(!1);if(+li(+(m+-1.5707963267948966))<1e-16){Tt[I>>3]=1.5707963267948966,Tt[S+8>>3]=0;return}if(+li(+(m+1.5707963267948966))<1e-16){Tt[I>>3]=-1.5707963267948966,Tt[S+8>>3]=0;return}if(m=+Tt[p+8>>3],m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);Tt[S+8>>3]=m}function c_(p){return p=p|0,+ +Tt[20496+(p<<3)>>3]}function ua(p){return p=p|0,+ +Tt[20624+(p<<3)>>3]}function ln(p){return p=p|0,+ +Tt[20752+(p<<3)>>3]}function rA(p){return p=p|0,+ +Tt[20880+(p<<3)>>3]}function l0(p){p=p|0;var m=0;return m=21008+(p<<3)|0,p=g[m>>2]|0,$e(g[m+4>>2]|0),p|0}function ph(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;return zt=+Tt[m>>3],ot=+Tt[p>>3],H=+hi(+((zt-ot)*.5)),k=+Tt[m+8>>3],it=+Tt[p+8>>3],L=+hi(+((k-it)*.5)),z=+Ur(+ot),Ct=+Ur(+zt),L=H*H+L*(Ct*z*L),L=+qr(+ +_n(+L),+ +_n(+(1-L)))*2,H=+Tt[y>>3],zt=+hi(+((H-zt)*.5)),S=+Tt[y+8>>3],k=+hi(+((S-k)*.5)),I=+Ur(+H),k=zt*zt+k*(Ct*I*k),k=+qr(+ +_n(+k),+ +_n(+(1-k)))*2,H=+hi(+((ot-H)*.5)),S=+hi(+((it-S)*.5)),S=H*H+S*(z*I*S),S=+qr(+ +_n(+S),+ +_n(+(1-S)))*2,I=(L+k+S)*.5,+(+Sd(+ +_n(+(+go(+(I*.5))*+go(+((I-L)*.5))*+go(+((I-k)*.5))*+go(+((I-S)*.5)))))*4)}function u_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)<=0)return y=0,wt=k,+y;if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)==1)return wt=k,+y;p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0));return wt=k,+y}function h_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)>0){if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475)}function Cx(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)>0){if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475*1e3*1e3)}function _o(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+S)*+Ur(+H)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)<(m|0));return wt=L,+y}function iA(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+H)*+Ur(+S)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)!=(m|0));return it=y*6371.007180918475,wt=L,+it}function rr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+H)*+Ur(+S)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)!=(m|0));return it=y*6371.007180918475*1e3,wt=L,+it}function fr(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,52)|0,It()|0,m&15|0}function xf(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,45)|0,It()|0,m&127|0}function nA(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;if(!(!0&(m&-16777216|0)==134217728)||(L=me(p|0,m|0,45)|0,It()|0,L=L&127,L>>>0>121))return m=0,m|0;y=me(p|0,m|0,52)|0,It()|0,y=y&15;do if(y|0){for(I=1,S=0;;){if(k=me(p|0,m|0,(15-I|0)*3|0)|0,It()|0,k=k&7,(k|0)!=0&(S^1))if((k|0)==1&(fi(L)|0)!=0){z=0,S=13;break}else S=1;if((k|0)==7){z=0,S=13;break}if(I>>>0>>0)I=I+1|0;else{S=9;break}}if((S|0)==9){if((y|0)==15)z=1;else break;return z|0}else if((S|0)==13)return z|0}while(!1);for(;;){if(z=me(p|0,m|0,(14-y|0)*3|0)|0,It()|0,!((z&7|0)==7&!0)){z=0,S=13;break}if(y>>>0<14)y=y+1|0;else{z=1,S=13;break}}return(S|0)==13?z|0:0}function Dd(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,(S|0)>=(y|0)){if((S|0)!=(y|0))if(y>>>0<=15){if(I=Le(y|0,0,52)|0,p=I|p,m=It()|0|m&-15728641,(S|0)>(y|0))do I=Le(7,0,(14-y|0)*3|0)|0,y=y+1|0,p=I|p,m=It()|0|m;while((y|0)<(S|0))}else m=0,p=0}else m=0,p=0;return $e(m|0),p|0}function Gn(p,m,y){return p=p|0,m=m|0,y=y|0,p=me(p|0,m|0,52)|0,It()|0,p=p&15,(y|0)<16&(p|0)<=(y|0)?(y=We(7,y-p|0)|0,y|0):(y=0,y|0)}function io(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(L=me(p|0,m|0,52)|0,It()|0,L=L&15,!!((y|0)<16&(L|0)<=(y|0))){if((L|0)==(y|0)){y=S,g[y>>2]=p,g[y+4>>2]=m;return}if(H=We(7,y-L|0)|0,it=(H|0)/7|0,z=me(p|0,m|0,45)|0,It()|0,!(fi(z&127)|0))k=0;else{t:do if(!L)I=0;else for(k=1;;){if(I=me(p|0,m|0,(15-k|0)*3|0)|0,It()|0,I=I&7,I|0)break t;if(k>>>0>>0)k=k+1|0;else{I=0;break}}while(!1);k=(I|0)==0}if(ot=Le(L+1|0,0,52)|0,I=It()|0|m&-15728641,z=(14-L|0)*3|0,m=Le(7,0,z|0)|0,m=(ot|p)&~m,L=I&~(It()|0),io(m,L,y,S),I=S+(it<<3)|0,!k){ot=Le(1,0,z|0)|0,io(ot|m,It()|0|L,y,I),ot=I+(it<<3)|0,H=Le(2,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(3,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(4,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(5,0,z|0)|0,io(H|m,It()|0|L,y,ot),H=Le(6,0,z|0)|0,io(H|m,It()|0|L,y,ot+(it<<3)|0);return}k=I+(it<<3)|0,(H|0)>6&&(H=I+8|0,ot=(k>>>0>H>>>0?k:H)+-1+(0-I)|0,Dc(I|0,0,ot+8&-8|0)|0,I=H+(ot>>>3<<3)|0),ot=Le(2,0,z|0)|0,io(ot|m,It()|0|L,y,I),ot=I+(it<<3)|0,H=Le(3,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(4,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(5,0,z|0)|0,io(H|m,It()|0|L,y,ot),H=Le(6,0,z|0)|0,io(H|m,It()|0|L,y,ot+(it<<3)|0)}}function Ui(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(I=me(p|0,m|0,45)|0,It()|0,!(fi(I&127)|0))return I=0,I|0;I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!I)y=0;else for(S=1;;){if(y=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,y=y&7,y|0)break t;if(S>>>0>>0)S=S+1|0;else{y=0;break}}while(!1);return I=(y|0)==0&1,I|0}function f_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,(y|0)<16&(S|0)<=(y|0)){if((S|0)!=(y|0)&&(I=Le(y|0,0,52)|0,p=I|p,m=It()|0|m&-15728641,(S|0)<(y|0)))do I=Le(7,0,(14-S|0)*3|0)|0,S=S+1|0,p=p&~I,m=m&~(It()|0);while((S|0)<(y|0))}else m=0,p=0;return $e(m|0),p|0}function Ah(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0;if(!y)return be=0,be|0;if(I=p,S=g[I>>2]|0,I=g[I+4>>2]|0,!0&(I&15728640|0)==0){if((y|0)<=0||(be=m,g[be>>2]=S,g[be+4>>2]=I,(y|0)==1))return be=0,be|0;S=1;do Ze=p+(S<<3)|0,Ke=g[Ze+4>>2]|0,be=m+(S<<3)|0,g[be>>2]=g[Ze>>2],g[be+4>>2]=Ke,S=S+1|0;while((S|0)!=(y|0));return S=0,S|0}if(Ze=y<<3,Ke=no(Ze)|0,!Ke)return be=-3,be|0;if(Ua(Ke|0,p|0,Ze|0)|0,Nt=Na(y,8)|0,!Nt)return Gr(Ke),be=-3,be|0;S=y;t:for(;;){L=Ke,ot=g[L>>2]|0,L=g[L+4>>2]|0,Jt=me(ot|0,L|0,52)|0,It()|0,Jt=Jt&15,_e=Jt+-1|0,Ve=(S|0)>0;e:do if(Ve){if(Ce=((S|0)<0)<<31>>31,ee=Le(_e|0,0,52)|0,ie=It()|0,_e>>>0>15)for(I=0,p=ot,y=L;;){if(!((p|0)==0&(y|0)==0)){if(k=me(p|0,y|0,52)|0,It()|0,k=k&15,z=(k|0)<(_e|0),k=(k|0)==(_e|0),it=z?0:k?p:0,p=z?0:k?y:0,y=qo(it|0,p|0,S|0,Ce|0)|0,It()|0,k=Nt+(y<<3)|0,z=k,H=g[z>>2]|0,z=g[z+4>>2]|0,(H|0)==0&(z|0)==0)y=it;else for(ee=0,Gt=y,zt=z,y=it;;){if((ee|0)>(S|0)){be=41;break t}if((H|0)==(y|0)&(zt&-117440513|0)==(p|0)){it=me(H|0,zt|0,56)|0,It()|0,it=it&7,Ct=it+1|0,ie=me(H|0,zt|0,45)|0,It()|0;r:do if(!(fi(ie&127)|0))z=7;else{if(H=me(H|0,zt|0,52)|0,It()|0,H=H&15,!H){z=6;break}for(z=1;;){if(ie=Le(7,0,(15-z|0)*3|0)|0,!((ie&y|0)==0&((It()|0)&p|0)==0)){z=7;break r}if(z>>>0>>0)z=z+1|0;else{z=6;break}}}while(!1);if((it+2|0)>>>0>z>>>0){be=51;break t}ie=Le(Ct|0,0,56)|0,p=It()|0|p&-117440513,z=k,g[z>>2]=0,g[z+4>>2]=0,z=Gt,y=ie|y}else z=(Gt+1|0)%(S|0)|0;if(k=Nt+(z<<3)|0,zt=k,H=g[zt>>2]|0,zt=g[zt+4>>2]|0,(H|0)==0&(zt|0)==0)break;ee=ee+1|0,Gt=z}ie=k,g[ie>>2]=y,g[ie+4>>2]=p}if(I=I+1|0,(I|0)>=(S|0))break e;y=Ke+(I<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}for(I=0,p=ot,y=L;;){if(!((p|0)==0&(y|0)==0)){if(z=me(p|0,y|0,52)|0,It()|0,z=z&15,(z|0)>=(_e|0)){if((z|0)!=(_e|0)&&(p=p|ee,y=y&-15728641|ie,z>>>0>=Jt>>>0)){k=_e;do Gt=Le(7,0,(14-k|0)*3|0)|0,k=k+1|0,p=Gt|p,y=It()|0|y;while(k>>>0>>0)}}else p=0,y=0;if(z=qo(p|0,y|0,S|0,Ce|0)|0,It()|0,k=Nt+(z<<3)|0,H=k,it=g[H>>2]|0,H=g[H+4>>2]|0,!((it|0)==0&(H|0)==0))for(Gt=0;;){if((Gt|0)>(S|0)){be=41;break t}if((it|0)==(p|0)&(H&-117440513|0)==(y|0)){Ct=me(it|0,H|0,56)|0,It()|0,Ct=Ct&7,zt=Ct+1|0,ze=me(it|0,H|0,45)|0,It()|0;r:do if(!(fi(ze&127)|0))H=7;else{if(it=me(it|0,H|0,52)|0,It()|0,it=it&15,!it){H=6;break}for(H=1;;){if(ze=Le(7,0,(15-H|0)*3|0)|0,!((ze&p|0)==0&((It()|0)&y|0)==0)){H=7;break r}if(H>>>0>>0)H=H+1|0;else{H=6;break}}}while(!1);if((Ct+2|0)>>>0>H>>>0){be=51;break t}ze=Le(zt|0,0,56)|0,y=It()|0|y&-117440513,zt=k,g[zt>>2]=0,g[zt+4>>2]=0,p=ze|p}else z=(z+1|0)%(S|0)|0;if(k=Nt+(z<<3)|0,H=k,it=g[H>>2]|0,H=g[H+4>>2]|0,(it|0)==0&(H|0)==0)break;Gt=Gt+1|0}ze=k,g[ze>>2]=p,g[ze+4>>2]=y}if(I=I+1|0,(I|0)>=(S|0))break e;y=Ke+(I<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}}while(!1);if((S+5|0)>>>0<11){be=99;break}if(ie=Na((S|0)/6|0,8)|0,!ie){be=58;break}e:do if(Ve){Gt=0,zt=0;do{if(z=Nt+(Gt<<3)|0,p=z,I=g[p>>2]|0,p=g[p+4>>2]|0,!((I|0)==0&(p|0)==0)){H=me(I|0,p|0,56)|0,It()|0,H=H&7,y=H+1|0,it=p&-117440513,ze=me(I|0,p|0,45)|0,It()|0;r:do if(fi(ze&127)|0){if(Ct=me(I|0,p|0,52)|0,It()|0,Ct=Ct&15,Ct|0)for(k=1;;){if(ze=Le(7,0,(15-k|0)*3|0)|0,!((I&ze|0)==0&(it&(It()|0)|0)==0))break r;if(k>>>0>>0)k=k+1|0;else break}p=Le(y|0,0,56)|0,I=p|I,p=It()|0|it,y=z,g[y>>2]=I,g[y+4>>2]=p,y=H+2|0}while(!1);(y|0)==7&&(ze=ie+(zt<<3)|0,g[ze>>2]=I,g[ze+4>>2]=p&-117440513,zt=zt+1|0)}Gt=Gt+1|0}while((Gt|0)!=(S|0));if(Ve){if(ee=((S|0)<0)<<31>>31,Ct=Le(_e|0,0,52)|0,Gt=It()|0,_e>>>0>15)for(p=0,I=0;;){do if(!((ot|0)==0&(L|0)==0)){for(H=me(ot|0,L|0,52)|0,It()|0,H=H&15,k=(H|0)<(_e|0),H=(H|0)==(_e|0),z=k?0:H?ot:0,H=k?0:H?L:0,k=qo(z|0,H|0,S|0,ee|0)|0,It()|0,y=0;;){if((y|0)>(S|0)){be=98;break t}if(ze=Nt+(k<<3)|0,it=g[ze+4>>2]|0,(it&-117440513|0)==(H|0)&&(g[ze>>2]|0)==(z|0)){be=70;break}if(k=(k+1|0)%(S|0)|0,ze=Nt+(k<<3)|0,(g[ze>>2]|0)==(z|0)&&(g[ze+4>>2]|0)==(H|0))break;y=y+1|0}if((be|0)==70&&(be=0,!0&(it&117440512|0)==100663296))break;ze=m+(I<<3)|0,g[ze>>2]=ot,g[ze+4>>2]=L,I=I+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=zt;break e}L=Ke+(p<<3)|0,ot=g[L>>2]|0,L=g[L+4>>2]|0}for(p=0,I=0;;){do if(!((ot|0)==0&(L|0)==0)){if(H=me(ot|0,L|0,52)|0,It()|0,H=H&15,(H|0)>=(_e|0))if((H|0)!=(_e|0))if(y=ot|Ct,k=L&-15728641|Gt,H>>>0>>0)H=k;else{z=_e;do ze=Le(7,0,(14-z|0)*3|0)|0,z=z+1|0,y=ze|y,k=It()|0|k;while(z>>>0>>0);H=k}else y=ot,H=L;else y=0,H=0;for(z=qo(y|0,H|0,S|0,ee|0)|0,It()|0,k=0;;){if((k|0)>(S|0)){be=98;break t}if(ze=Nt+(z<<3)|0,it=g[ze+4>>2]|0,(it&-117440513|0)==(H|0)&&(g[ze>>2]|0)==(y|0)){be=93;break}if(z=(z+1|0)%(S|0)|0,ze=Nt+(z<<3)|0,(g[ze>>2]|0)==(y|0)&&(g[ze+4>>2]|0)==(H|0))break;k=k+1|0}if((be|0)==93&&(be=0,!0&(it&117440512|0)==100663296))break;ze=m+(I<<3)|0,g[ze>>2]=ot,g[ze+4>>2]=L,I=I+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=zt;break e}L=Ke+(p<<3)|0,ot=g[L>>2]|0,L=g[L+4>>2]|0}}else I=0,S=zt}else I=0,S=0;while(!1);if(Dc(Nt|0,0,Ze|0)|0,Ua(Ke|0,ie|0,S<<3|0)|0,Gr(ie),S)m=m+(I<<3)|0;else break}return(be|0)==41?(Gr(Ke),Gr(Nt),ze=-1,ze|0):(be|0)==51?(Gr(Ke),Gr(Nt),ze=-2,ze|0):(be|0)==58?(Gr(Ke),Gr(Nt),ze=-3,ze|0):(be|0)==98?(Gr(ie),Gr(Ke),Gr(Nt),ze=-1,ze|0):((be|0)==99&&Ua(m|0,Ke|0,S<<3|0)|0,Gr(Ke),Gr(Nt),ze=0,ze|0)}function Cn(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0;if((m|0)<=0)return I=0,I|0;if((I|0)>=16){for(k=0;;){if(ot=p+(k<<3)|0,!((g[ot>>2]|0)==0&(g[ot+4>>2]|0)==0)){k=14;break}if(k=k+1|0,(k|0)>=(m|0)){L=0,k=16;break}}if((k|0)==14)return((S|0)>0?-2:-1)|0;if((k|0)==16)return L|0}k=0,ot=0;t:for(;;){it=p+(ot<<3)|0,z=it,L=g[z>>2]|0,z=g[z+4>>2]|0;do if(!((L|0)==0&(z|0)==0)){if((k|0)>=(S|0)){L=-1,k=16;break t}if(H=me(L|0,z|0,52)|0,It()|0,H=H&15,(H|0)>(I|0)){L=-2,k=16;break t}if((H|0)==(I|0)){it=y+(k<<3)|0,g[it>>2]=L,g[it+4>>2]=z,k=k+1|0;break}if(L=(We(7,I-H|0)|0)+k|0,(L|0)>(S|0)){L=-1,k=16;break t}io(g[it>>2]|0,g[it+4>>2]|0,I,y+(k<<3)|0),k=L}while(!1);if(ot=ot+1|0,(ot|0)>=(m|0)){L=0,k=16;break}}return(k|0)==16?L|0:0}function yn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if((m|0)<=0)return y=0,y|0;if((y|0)>=16){for(S=0;;){if(L=p+(S<<3)|0,!((g[L>>2]|0)==0&(g[L+4>>2]|0)==0)){S=-1,I=13;break}if(S=S+1|0,(S|0)>=(m|0)){S=0,I=13;break}}if((I|0)==13)return S|0}S=0,L=0;t:for(;;){I=p+(L<<3)|0,k=g[I>>2]|0,I=g[I+4>>2]|0;do if(!((k|0)==0&(I|0)==0)){if(I=me(k|0,I|0,52)|0,It()|0,I=I&15,(I|0)>(y|0)){S=-1,I=13;break t}if((I|0)==(y|0)){S=S+1|0;break}else{S=(We(7,y-I|0)|0)+S|0;break}}while(!1);if(L=L+1|0,(L|0)>=(m|0)){I=13;break}}return(I|0)==13?S|0:0}function bf(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,52)|0,It()|0,m&1|0}function Ms(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(I=me(p|0,m|0,52)|0,It()|0,I=I&15,!I)return I=0,I|0;for(S=1;;){if(y=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,y=y&7,y|0){S=5;break}if(S>>>0>>0)S=S+1|0;else{y=0,S=5;break}}return(S|0)==5?y|0:0}function mh(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(H=me(p|0,m|0,52)|0,It()|0,H=H&15,!H)return z=m,H=p,$e(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=Le(7,0,k|0)|0,I=It()|0,L=me(p|0,m|0,k|0)|0,It()|0,k=Le(za(L&7)|0,0,k|0)|0,L=It()|0,p=k|p&~S,m=L|m&~I;t:do if(!y)if((k&S|0)==0&(L&I|0)==0)y=0;else if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(L=(15-y|0)*3|0,I=me(p|0,m|0,L|0)|0,It()|0,k=Le(7,0,L|0)|0,m=m&~(It()|0),L=Le(za(I&7)|0,0,L|0)|0,p=p&~k|L,m=m|(It()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return $e(m|0),p|0}function jo(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return y=m,S=p,$e(y|0),S|0;for(y=1;k=(15-y|0)*3|0,L=me(p|0,m|0,k|0)|0,It()|0,I=Le(7,0,k|0)|0,m=m&~(It()|0),k=Le(za(L&7)|0,0,k|0)|0,p=k|p&~I,m=It()|0|m,y>>>0>>0;)y=y+1|0;return $e(m|0),p|0}function c0(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(H=me(p|0,m|0,52)|0,It()|0,H=H&15,!H)return z=m,H=p,$e(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=Le(7,0,k|0)|0,I=It()|0,L=me(p|0,m|0,k|0)|0,It()|0,k=Le(ro(L&7)|0,0,k|0)|0,L=It()|0,p=k|p&~S,m=L|m&~I;t:do if(!y)if((k&S|0)==0&(L&I|0)==0)y=0;else if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(I=(15-y|0)*3|0,k=Le(7,0,I|0)|0,L=m&~(It()|0),m=me(p|0,m|0,I|0)|0,It()|0,m=Le(ro(m&7)|0,0,I|0)|0,p=p&~k|m,m=L|(It()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return $e(m|0),p|0}function Od(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return y=m,S=p,$e(y|0),S|0;for(y=1;L=(15-y|0)*3|0,k=Le(7,0,L|0)|0,I=m&~(It()|0),m=me(p|0,m|0,L|0)|0,It()|0,m=Le(ro(m&7)|0,0,L|0)|0,p=m|p&~k,m=It()|0|I,y>>>0>>0;)y=y+1|0;return $e(m|0),p|0}function wf(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(H=wt,wt=wt+64|0,z=H+40|0,S=H+24|0,I=H+12|0,k=H,Le(m|0,0,52)|0,y=It()|0|134225919,!m)return(g[p+4>>2]|0)>2||(g[p+8>>2]|0)>2||(g[p+12>>2]|0)>2?(L=0,z=0,$e(L|0),wt=H,z|0):(Le(_f(p)|0,0,45)|0,L=It()|0|y,z=-1,$e(L|0),wt=H,z|0);if(g[z>>2]=g[p>>2],g[z+4>>2]=g[p+4>>2],g[z+8>>2]=g[p+8>>2],g[z+12>>2]=g[p+12>>2],L=z+4|0,(m|0)>0)for(p=-1;g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],m&1?(Ld(L),g[I>>2]=g[L>>2],g[I+4>>2]=g[L+4>>2],g[I+8>>2]=g[L+8>>2],Fa(I)):(fl(L),g[I>>2]=g[L>>2],g[I+4>>2]=g[L+4>>2],g[I+8>>2]=g[L+8>>2],uh(I)),Kp(S,I,k),Fs(k),ot=(15-m|0)*3|0,it=Le(7,0,ot|0)|0,y=y&~(It()|0),ot=Le(Ba(k)|0,0,ot|0)|0,p=ot|p&~it,y=It()|0|y,(m|0)>1;)m=m+-1|0;else p=-1;t:do if((g[L>>2]|0)<=2&&(g[z+8>>2]|0)<=2&&(g[z+12>>2]|0)<=2){if(S=_f(z)|0,m=Le(S|0,0,45)|0,m=m|p,p=It()|0|y&-1040385,k=Qp(z)|0,!(fi(S)|0)){if((k|0)<=0)break;for(I=0;;){if(S=me(m|0,p|0,52)|0,It()|0,S=S&15,S)for(y=1;ot=(15-y|0)*3|0,z=me(m|0,p|0,ot|0)|0,It()|0,it=Le(7,0,ot|0)|0,p=p&~(It()|0),ot=Le(za(z&7)|0,0,ot|0)|0,m=m&~it|ot,p=p|(It()|0),y>>>0>>0;)y=y+1|0;if(I=I+1|0,(I|0)==(k|0))break t}}I=me(m|0,p|0,52)|0,It()|0,I=I&15;e:do if(I){y=1;r:for(;;){switch(ot=me(m|0,p|0,(15-y|0)*3|0)|0,It()|0,ot&7){case 1:break r;case 0:break;default:break e}if(y>>>0>>0)y=y+1|0;else break e}if(lh(S,g[z>>2]|0)|0)for(y=1;z=(15-y|0)*3|0,it=Le(7,0,z|0)|0,ot=p&~(It()|0),p=me(m|0,p|0,z|0)|0,It()|0,p=Le(ro(p&7)|0,0,z|0)|0,m=m&~it|p,p=ot|(It()|0),y>>>0>>0;)y=y+1|0;else for(y=1;ot=(15-y|0)*3|0,z=me(m|0,p|0,ot|0)|0,It()|0,it=Le(7,0,ot|0)|0,p=p&~(It()|0),ot=Le(za(z&7)|0,0,ot|0)|0,m=m&~it|ot,p=p|(It()|0),y>>>0>>0;)y=y+1|0}while(!1);if((k|0)>0){y=0;do m=mh(m,p)|0,p=It()|0,y=y+1|0;while((y|0)!=(k|0))}}else m=0,p=0;while(!1);return it=p,ot=m,$e(it|0),wt=H,ot|0}function Go(p){return p=p|0,(p|0)%2|0|0}function sA(p,m){p=p|0,m=m|0;var y=0,S=0;return S=wt,wt=wt+16|0,y=S,m>>>0<=15&&(g[p+4>>2]&2146435072|0)!=2146435072&&(g[p+8+4>>2]&2146435072|0)!=2146435072?(r0(p,m,y),m=wf(y,m)|0,p=It()|0):(p=0,m=0),$e(p|0),wt=S,m|0}function xi(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(I=y+4|0,k=me(p|0,m|0,52)|0,It()|0,k=k&15,L=me(p|0,m|0,45)|0,It()|0,S=(k|0)==0,fi(L&127)|0){if(S)return L=1,L|0;S=1}else{if(S)return L=0,L|0;!(g[I>>2]|0)&&!(g[y+8>>2]|0)?S=(g[y+12>>2]|0)!=0&1:S=1}for(y=1;y&1?Fa(I):uh(I),L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,Jp(I,L&7),y>>>0>>0;)y=y+1|0;return S|0}function T(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;ot=wt,wt=wt+16|0,H=ot,it=me(p|0,m|0,45)|0,It()|0,it=it&127;t:do if(fi(it)|0&&(k=me(p|0,m|0,52)|0,It()|0,k=k&15,(k|0)!=0)){S=1;e:for(;;){switch(z=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,z&7){case 5:break e;case 0:break;default:{S=m;break t}}if(S>>>0>>0)S=S+1|0;else{S=m;break t}}for(I=1,S=m;m=(15-I|0)*3|0,L=Le(7,0,m|0)|0,z=S&~(It()|0),S=me(p|0,S|0,m|0)|0,It()|0,S=Le(ro(S&7)|0,0,m|0)|0,p=p&~L|S,S=z|(It()|0),I>>>0>>0;)I=I+1|0}else S=m;while(!1);if(z=7728+(it*28|0)|0,g[y>>2]=g[z>>2],g[y+4>>2]=g[z+4>>2],g[y+8>>2]=g[z+8>>2],g[y+12>>2]=g[z+12>>2],!(xi(p,S,y)|0)){wt=ot;return}if(L=y+4|0,g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],k=me(p|0,S|0,52)|0,It()|0,z=k&15,k&1?(uh(L),k=z+1|0):k=z,!(fi(it)|0))S=0;else{t:do if(!z)S=0;else for(m=1;;){if(I=me(p|0,S|0,(15-m|0)*3|0)|0,It()|0,I=I&7,I|0){S=I;break t}if(m>>>0>>0)m=m+1|0;else{S=0;break}}while(!1);S=(S|0)==4&1}if(!(vf(y,k,S,0)|0))(k|0)!=(z|0)&&(g[L>>2]=g[H>>2],g[L+4>>2]=g[H+4>>2],g[L+8>>2]=g[H+8>>2]);else{if(fi(it)|0)do;while(vf(y,k,0,0)|0);(k|0)!=(z|0)&&fl(L)}wt=ot}function l(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,T(p,m,I),m=me(p|0,m|0,52)|0,It()|0,l_(I,m&15,y),wt=S}function d(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;L=wt,wt=wt+16|0,k=L,T(p,m,k),S=me(p|0,m|0,45)|0,It()|0,S=(fi(S&127)|0)==0,I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!S){if(I|0)for(S=1;;){if(z=Le(7,0,(15-S|0)*3|0)|0,!((z&p|0)==0&((It()|0)&m|0)==0))break t;if(S>>>0>>0)S=S+1|0;else break}i0(k,I,0,5,y),wt=L;return}while(!1);tA(k,I,0,6,y),wt=L}function v(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(S=me(p|0,m|0,45)|0,It()|0,!(fi(S&127)|0))return S=2,S|0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return S=5,S|0;for(y=1;;){if(I=Le(7,0,(15-y|0)*3|0)|0,!((I&p|0)==0&((It()|0)&m|0)==0)){y=2,p=6;break}if(y>>>0>>0)y=y+1|0;else{y=5,p=6;break}}return(p|0)==6?y|0:0}function b(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0;Ct=wt,wt=wt+128|0,it=Ct+112|0,k=Ct+96|0,ot=Ct,I=me(p|0,m|0,52)|0,It()|0,z=I&15,g[it>>2]=z,L=me(p|0,m|0,45)|0,It()|0,L=L&127;t:do if(fi(L)|0){if(z|0)for(S=1;;){if(H=Le(7,0,(15-S|0)*3|0)|0,!((H&p|0)==0&((It()|0)&m|0)==0)){I=0;break t}if(S>>>0>>0)S=S+1|0;else break}if(I&1)I=1;else{H=Le(z+1|0,0,52)|0,ot=It()|0|m&-15728641,it=Le(7,0,(14-z|0)*3|0)|0,b((H|p)&~it,ot&~(It()|0),y),wt=Ct;return}}else I=0;while(!1);T(p,m,k),I?(n0(k,it,ot),H=5):(eA(k,it,ot),H=6);t:do if(fi(L)|0)if(!z)S=20;else for(S=1;;){if(L=Le(7,0,(15-S|0)*3|0)|0,!((L&p|0)==0&((It()|0)&m|0)==0)){S=8;break t}if(S>>>0>>0)S=S+1|0;else{S=20;break}}else S=8;while(!1);if(Dc(y|0,-1,S|0)|0,I){I=0;do{for(k=ot+(I<<4)|0,s0(k,g[it>>2]|0)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,I=I+1|0}while((I|0)!=(H|0))}else{I=0;do{for(k=ot+(I<<4)|0,vf(k,g[it>>2]|0,0,1)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,I=I+1|0}while((I|0)!=(H|0))}wt=Ct}function M(){return 12}function O(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(Le(p|0,0,52)|0,z=It()|0|134225919,(p|0)<1){S=0,y=0;do fi(S)|0&&(Le(S|0,0,45)|0,L=z|(It()|0),p=m+(y<<3)|0,g[p>>2]=-1,g[p+4>>2]=L,y=y+1|0),S=S+1|0;while((S|0)!=122);return}L=0,y=0;do{if(fi(L)|0){for(Le(L|0,0,45)|0,S=1,I=-1,k=z|(It()|0);H=Le(7,0,(15-S|0)*3|0)|0,I=I&~H,k=k&~(It()|0),(S|0)!=(p|0);)S=S+1|0;H=m+(y<<3)|0,g[H>>2]=I,g[H+4>>2]=k,y=y+1|0}L=L+1|0}while((L|0)!=122)}function B(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0;if(z=wt,wt=wt+64|0,L=z,(p|0)==(y|0)&(m|0)==(S|0)|(!1|(m&2013265920|0)!=134217728|(!1|(S&2013265920|0)!=134217728))||(I=me(p|0,m|0,52)|0,It()|0,I=I&15,k=me(y|0,S|0,52)|0,It()|0,(I|0)!=(k&15|0)))return L=0,wt=z,L|0;if(k=I+-1|0,I>>>0>1&&(it=Dd(p,m,k)|0,H=It()|0,k=Dd(y,S,k)|0,(it|0)==(k|0)&(H|0)==(It()|0))&&(k=(I^15)*3|0,I=me(p|0,m|0,k|0)|0,It()|0,I=I&7,k=me(y|0,S|0,k|0)|0,It()|0,k=k&7,(I|0)==0|(k|0)==0||(g[21136+(I<<2)>>2]|0)==(k|0)||(g[21168+(I<<2)>>2]|0)==(k|0)))return it=1,wt=z,it|0;I=L,k=I+56|0;do g[I>>2]=0,I=I+4|0;while((I|0)<(k|0));return e_(p,m,1,L),it=L,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0))&&(it=L+8|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+16|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+24|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+32|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+40|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))?(I=L+48|0,I=((g[I>>2]|0)==(y|0)?(g[I+4>>2]|0)==(S|0):0)&1):I=1,it=I,wt=z,it|0}function U(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(it=wt,wt=wt+16|0,L=it,!(B(p,m,y,S)|0))return z=0,H=0,$e(z|0),wt=it,H|0;for(z=m&-2130706433,I=(Ui(p,m)|0)==0,I=I?1:2;g[L>>2]=0,ot=jn(p,m,I,L)|0,k=I+1|0,!((ot|0)==(y|0)&(It()|0)==(S|0));)if(k>>>0<7)I=k;else{I=0,p=0,H=6;break}return(H|0)==6?($e(I|0),wt=it,p|0):(ot=Le(I|0,0,56)|0,H=z|(It()|0)|268435456,ot=p|ot,$e(H|0),wt=it,ot|0)}function W(p,m){p=p|0,m=m|0;var y=0;return y=!0&(m&2013265920|0)==268435456,$e((y?m&-2130706433|134217728:0)|0),(y?p:0)|0}function Z(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return S=wt,wt=wt+16|0,y=S,!0&(m&2013265920|0)==268435456?(I=me(p|0,m|0,56)|0,It()|0,g[y>>2]=0,y=jn(p,m&-2130706433|134217728,I&7,y)|0,m=It()|0,$e(m|0),wt=S,y|0):(m=0,y=0,$e(m|0),wt=S,y|0)}function Q(p,m){p=p|0,m=m|0;var y=0;if(!(!0&(m&2013265920|0)==268435456))return y=0,y|0;switch(y=me(p|0,m|0,56)|0,It()|0,y&7){case 0:case 7:return y=0,y|0;default:}return y=m&-2130706433|134217728,!0&(m&117440512|0)==16777216&(Ui(p,y)|0)!=0?(y=0,y|0):(y=nA(p,y)|0,y|0)}function st(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;k=wt,wt=wt+16|0,S=k,L=!0&(m&2013265920|0)==268435456,I=m&-2130706433|134217728,z=y,g[z>>2]=L?p:0,g[z+4>>2]=L?I:0,L?(m=me(p|0,m|0,56)|0,It()|0,g[S>>2]=0,p=jn(p,I,m&7,S)|0,m=It()|0):(p=0,m=0),z=y+8|0,g[z>>2]=p,g[z+4>>2]=m,wt=k}function At(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;I=(Ui(p,m)|0)==0,m=m&-2130706433,S=y,g[S>>2]=I?p:0,g[S+4>>2]=I?m|285212672:0,S=y+8|0,g[S>>2]=p,g[S+4>>2]=m|301989888,S=y+16|0,g[S>>2]=p,g[S+4>>2]=m|318767104,S=y+24|0,g[S>>2]=p,g[S+4>>2]=m|335544320,S=y+32|0,g[S>>2]=p,g[S+4>>2]=m|352321536,y=y+40|0,g[y>>2]=p,g[y+4>>2]=m|369098752}function pt(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;if(L=wt,wt=wt+16|0,k=L,S=me(p|0,m|0,56)|0,It()|0,z=!0&(m&2013265920|0)==268435456,I=z?p:0,p=z?m&-2130706433|134217728:0,m=mu(I,p,S&7)|0,(m|0)==-1){g[y>>2]=0,wt=L;return}T(I,p,k),S=me(I|0,p|0,52)|0,It()|0,S=S&15,Ui(I,p)|0?i0(k,S,m,2,y):tA(k,S,m,2,y),wt=L}function yt(p){p=p|0;var m=0,y=0,S=0;return m=Na(1,12)|0,m||Ti(22691,22646,49,22704),y=p+4|0,S=g[y>>2]|0,S|0?(S=S+8|0,g[S>>2]=m,g[y>>2]=m,m|0):(g[p>>2]|0&&Ti(22721,22646,61,22744),S=p,g[S>>2]=m,g[y>>2]=m,m|0)}function dt(p,m){p=p|0,m=m|0;var y=0,S=0;return S=no(24)|0,S||Ti(22758,22646,78,22772),g[S>>2]=g[m>>2],g[S+4>>2]=g[m+4>>2],g[S+8>>2]=g[m+8>>2],g[S+12>>2]=g[m+12>>2],g[S+16>>2]=0,m=p+4|0,y=g[m>>2]|0,y|0?(g[y+16>>2]=S,g[m>>2]=S,S|0):(g[p>>2]|0&&Ti(22787,22646,82,22772),g[p>>2]=S,g[m>>2]=S,S|0)}function Ft(p){p=p|0;var m=0,y=0,S=0,I=0;if(p)for(S=1;;){if(m=g[p>>2]|0,m|0)do{if(y=g[m>>2]|0,y|0)do I=y,y=g[y+16>>2]|0,Gr(I);while(y|0);I=m,m=g[m+8>>2]|0,Gr(I)}while(m|0);if(m=p,p=g[p+8>>2]|0,S||Gr(m),p)S=0;else break}}function Wt(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(I=p+8|0,g[I>>2]|0)return Or=1,Or|0;if(S=g[p>>2]|0,!S)return Or=0,Or|0;m=S,y=0;do y=y+1|0,m=g[m+8>>2]|0;while(m|0);if(y>>>0<2)return Or=0,Or|0;vn=no(y<<2)|0,vn||Ti(22807,22646,317,22826),Ei=no(y<<5)|0,Ei||Ti(22848,22646,321,22826),g[p>>2]=0,Ke=p+4|0,g[Ke>>2]=0,g[I>>2]=0,y=0,cn=0,Ze=0,Ct=0;t:for(;;){if(ot=g[S>>2]|0,ot){k=0,L=ot;do{if(H=+Tt[L+8>>3],m=L,L=g[L+16>>2]|0,it=(L|0)==0,I=it?ot:L,z=+Tt[I+8>>3],+li(+(H-z))>3.141592653589793){Or=14;break}k=k+(z-H)*(+Tt[m>>3]+ +Tt[I>>3])}while(!it);if((Or|0)==14){Or=0,k=0,m=ot;do Nt=+Tt[m+8>>3],Mi=m+16|0,Gi=g[Mi>>2]|0,Gi=Gi|0?Gi:ot,_e=+Tt[Gi+8>>3],k=k+(+Tt[m>>3]+ +Tt[Gi>>3])*((_e<0?_e+6.283185307179586:_e)-(Nt<0?Nt+6.283185307179586:Nt)),m=g[(m|0?Mi:S)>>2]|0;while(m|0)}k>0?(g[vn+(cn<<2)>>2]=S,cn=cn+1|0,I=Ze,m=Ct):Or=19}else Or=19;if((Or|0)==19){Or=0;do if(y){if(m=y+8|0,g[m>>2]|0){Or=21;break t}if(y=Na(1,12)|0,!y){Or=23;break t}g[m>>2]=y,I=y+4|0,L=y,m=Ct}else if(Ct){I=Ke,L=Ct+8|0,m=S,y=p;break}else if(g[p>>2]|0){Or=27;break t}else{I=Ke,L=p,m=S,y=p;break}while(!1);if(g[L>>2]=S,g[I>>2]=S,L=Ei+(Ze<<5)|0,it=g[S>>2]|0,it){for(ot=Ei+(Ze<<5)+8|0,Tt[ot>>3]=17976931348623157e292,Ct=Ei+(Ze<<5)+24|0,Tt[Ct>>3]=17976931348623157e292,Tt[L>>3]=-17976931348623157e292,zt=Ei+(Ze<<5)+16|0,Tt[zt>>3]=-17976931348623157e292,Ve=17976931348623157e292,Jt=-17976931348623157e292,I=0,Gt=it,H=17976931348623157e292,ie=17976931348623157e292,Ce=-17976931348623157e292,z=-17976931348623157e292;k=+Tt[Gt>>3],Nt=+Tt[Gt+8>>3],Gt=g[Gt+16>>2]|0,ee=(Gt|0)==0,_e=+Tt[(ee?it:Gt)+8>>3],k>3]=k,H=k),Nt>3]=Nt,ie=Nt),k>Ce?Tt[L>>3]=k:k=Ce,Nt>z&&(Tt[zt>>3]=Nt,z=Nt),Ve=Nt>0&NtJt?Nt:Jt,I=I|+li(+(Nt-_e))>3.141592653589793,!ee;)Ce=k;I&&(Tt[zt>>3]=Jt,Tt[Ct>>3]=Ve)}else g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,g[L+12>>2]=0,g[L+16>>2]=0,g[L+20>>2]=0,g[L+24>>2]=0,g[L+28>>2]=0;I=Ze+1|0}if(Mi=S+8|0,S=g[Mi>>2]|0,g[Mi>>2]=0,S)Ze=I,Ct=m;else{Or=45;break}}if((Or|0)==21)Ti(22624,22646,35,22658);else if((Or|0)==23)Ti(22678,22646,37,22658);else if((Or|0)==27)Ti(22721,22646,61,22744);else if((Or|0)==45){t:do if((cn|0)>0){for(Mi=(I|0)==0,Zr=I<<2,Gi=(p|0)==0,ze=0,m=0;;){if(be=g[vn+(ze<<2)>>2]|0,Mi)Or=73;else{if(Ze=no(Zr)|0,!Ze){Or=50;break}if(Ke=no(Zr)|0,!Ke){Or=52;break}e:do if(Gi)y=0;else{for(I=0,y=0,L=p;S=Ei+(I<<5)|0,St(g[L>>2]|0,S,g[be>>2]|0)|0?(g[Ze+(y<<2)>>2]=L,g[Ke+(y<<2)>>2]=S,ee=y+1|0):ee=y,L=g[L+8>>2]|0,L;)I=I+1|0,y=ee;if((ee|0)>0)if(S=g[Ze>>2]|0,(ee|0)==1)y=S;else for(zt=0,Gt=-1,y=S,Ct=S;;){for(it=g[Ct>>2]|0,S=0,L=0;I=g[g[Ze+(L<<2)>>2]>>2]|0,(I|0)==(it|0)?ot=S:ot=S+((St(I,g[Ke+(L<<2)>>2]|0,g[it>>2]|0)|0)&1)|0,L=L+1|0,(L|0)!=(ee|0);)S=ot;if(I=(ot|0)>(Gt|0),y=I?Ct:y,S=zt+1|0,(S|0)==(ee|0))break e;zt=S,Gt=I?ot:Gt,Ct=g[Ze+(S<<2)>>2]|0}else y=0}while(!1);if(Gr(Ze),Gr(Ke),y){if(I=y+4|0,S=g[I>>2]|0,S)y=S+8|0;else if(g[y>>2]|0){Or=70;break}g[y>>2]=be,g[I>>2]=be}else Or=73}if((Or|0)==73){if(Or=0,m=g[be>>2]|0,m|0)do Ke=m,m=g[m+16>>2]|0,Gr(Ke);while(m|0);Gr(be),m=2}if(ze=ze+1|0,(ze|0)>=(cn|0)){An=m;break t}}(Or|0)==50?Ti(22863,22646,249,22882):(Or|0)==52?Ti(22901,22646,252,22882):(Or|0)==70&&Ti(22721,22646,61,22744)}else An=0;while(!1);return Gr(vn),Gr(Ei),Or=An,Or|0}return 0}function St(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(!(hl(m,y)|0)||(m=Jm(m)|0,it=+Tt[y>>3],S=+Tt[y+8>>3],S=m&S<0?S+6.283185307179586:S,p=g[p>>2]|0,!p))return p=0,p|0;if(m){m=0,y=p;t:for(;;){for(;L=+Tt[y>>3],H=+Tt[y+8>>3],y=y+16|0,ot=g[y>>2]|0,ot=ot|0?ot:p,k=+Tt[ot>>3],I=+Tt[ot+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(itz);)if(y=g[y>>2]|0,!y){y=22;break t}if(H=I<0?I+6.283185307179586:I,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(it-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}else{m=0,y=p;t:for(;;){for(;L=+Tt[y>>3],H=+Tt[y+8>>3],y=y+16|0,ot=g[y>>2]|0,ot=ot|0?ot:p,k=+Tt[ot>>3],I=+Tt[ot+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(itz);)if(y=g[y>>2]|0,!y){y=22;break t}if(S=L==S|I==S?S+-2220446049250313e-31:S,I+(it-k)/(z-k)*(L-I)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}return 0}function Bt(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(Jt=wt,wt=wt+32|0,Ve=Jt+16|0,Ce=Jt,k=me(p|0,m|0,52)|0,It()|0,k=k&15,Gt=me(y|0,S|0,52)|0,It()|0,(k|0)!=(Gt&15|0))return Ve=1,wt=Jt,Ve|0;if(it=me(p|0,m|0,45)|0,It()|0,it=it&127,ot=me(y|0,S|0,45)|0,It()|0,ot=ot&127,Gt=(it|0)!=(ot|0),Gt){if(z=Xp(it,ot)|0,(z|0)==7)return Ve=2,wt=Jt,Ve|0;H=Xp(ot,it)|0,(H|0)==7?Ti(22925,22949,151,22959):(ee=z,L=H)}else ee=0,L=0;Ct=fi(it)|0,zt=fi(ot)|0,g[Ve>>2]=0,g[Ve+4>>2]=0,g[Ve+8>>2]=0,g[Ve+12>>2]=0;do if(ee){if(ot=g[4304+(it*28|0)+(ee<<2)>>2]|0,z=(ot|0)>0,zt)if(z){it=0,H=y,z=S;do H=c0(H,z)|0,z=It()|0,L=ro(L)|0,(L|0)==1&&(L=ro(1)|0),it=it+1|0;while((it|0)!=(ot|0));ot=L,it=H,H=z}else ot=L,it=y,H=S;else if(z){it=0,H=y,z=S;do H=Od(H,z)|0,z=It()|0,L=ro(L)|0,it=it+1|0;while((it|0)!=(ot|0));ot=L,it=H,H=z}else ot=L,it=y,H=S;if(xi(it,H,Ve)|0,Gt||Ti(22972,22949,181,22959),z=(Ct|0)!=0,L=(zt|0)!=0,z&L&&Ti(22999,22949,182,22959),z){if(L=Ms(p,m)|0,vr[22032+(L*7|0)+ee>>0]|0){k=3;break}H=g[21200+(L*28|0)+(ee<<2)>>2]|0,it=H,ie=26}else if(L){if(L=Ms(it,H)|0,vr[22032+(L*7|0)+ot>>0]|0){k=4;break}it=0,H=g[21200+(ot*28|0)+(L<<2)>>2]|0,ie=26}else L=0;if((ie|0)==26)if((H|0)<=-1&&Ti(23030,22949,212,22959),(it|0)<=-1&&Ti(23053,22949,213,22959),(H|0)>0){z=Ve+4|0,L=0;do hh(z),L=L+1|0;while((L|0)!=(H|0));L=it}else L=it;if(g[Ce>>2]=0,g[Ce+4>>2]=0,g[Ce+8>>2]=0,Jp(Ce,ee),k|0)for(;Go(k)|0?Fa(Ce):uh(Ce),(k|0)>1;)k=k+-1|0;if((L|0)>0){k=0;do hh(Ce),k=k+1|0;while((k|0)!=(L|0))}ie=Ve+4|0,In(ie,Ce,ie),Fs(ie),ie=50}else if(xi(y,S,Ve)|0,(Ct|0)!=0&(zt|0)!=0)if((ot|0)!=(it|0)&&Ti(23077,22949,243,22959),L=Ms(p,m)|0,k=Ms(y,S)|0,vr[22032+(L*7|0)+k>>0]|0)k=5;else if(L=g[21200+(L*28|0)+(k<<2)>>2]|0,(L|0)>0){z=Ve+4|0,k=0;do hh(z),k=k+1|0;while((k|0)!=(L|0));ie=50}else ie=50;else ie=50;while(!1);return(ie|0)==50&&(k=Ve+4|0,g[I>>2]=g[k>>2],g[I+4>>2]=g[k+4>>2],g[I+8>>2]=g[k+8>>2],k=0),Ve=k,wt=Jt,Ve|0}function Yt(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(ee=wt,wt=wt+48|0,L=ee+36|0,z=ee+24|0,H=ee+12|0,it=ee,k=me(p|0,m|0,52)|0,It()|0,k=k&15,zt=me(p|0,m|0,45)|0,It()|0,zt=zt&127,ot=fi(zt)|0,Le(k|0,0,52)|0,Ce=It()|0|134225919,ie=S,g[ie>>2]=-1,g[ie+4>>2]=Ce,!k)return(g[y>>2]|0)>1||(g[y+4>>2]|0)>1||(g[y+8>>2]|0)>1||(I=$p(zt,Ba(y)|0)|0,(I|0)==127)?(Ce=1,wt=ee,Ce|0):(Gt=Le(I|0,0,45)|0,ie=It()|0,zt=S,ie=g[zt+4>>2]&-1040385|ie,Ce=S,g[Ce>>2]=g[zt>>2]|Gt,g[Ce+4>>2]=ie,Ce=0,wt=ee,Ce|0);for(g[L>>2]=g[y>>2],g[L+4>>2]=g[y+4>>2],g[L+8>>2]=g[y+8>>2];g[z>>2]=g[L>>2],g[z+4>>2]=g[L+4>>2],g[z+8>>2]=g[L+8>>2],Go(k)|0?(Ld(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],Fa(H)):(fl(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],uh(H)),Kp(z,H,it),Fs(it),ie=S,Ve=g[ie>>2]|0,ie=g[ie+4>>2]|0,Jt=(15-k|0)*3|0,y=Le(7,0,Jt|0)|0,ie=ie&~(It()|0),Jt=Le(Ba(it)|0,0,Jt|0)|0,ie=It()|0|ie,Ce=S,g[Ce>>2]=Jt|Ve&~y,g[Ce+4>>2]=ie,(k|0)>1;)k=k+-1|0;t:do if((g[L>>2]|0)<=1&&(g[L+4>>2]|0)<=1&&(g[L+8>>2]|0)<=1){k=Ba(L)|0,z=$p(zt,k)|0,(z|0)==127?it=0:it=fi(z)|0;e:do if(k){if(ot){if(L=21408+((Ms(p,m)|0)*28|0)+(k<<2)|0,L=g[L>>2]|0,(L|0)>0){y=0;do k=za(k)|0,y=y+1|0;while((y|0)!=(L|0))}if((k|0)==1){I=3;break t}y=$p(zt,k)|0,(y|0)==127&&Ti(23104,22949,376,23134),fi(y)|0?Ti(23147,22949,377,23134):(Gt=L,Ct=k,I=y)}else Gt=0,Ct=k,I=z;if(H=g[4304+(zt*28|0)+(Ct<<2)>>2]|0,(H|0)<=-1&&Ti(23178,22949,384,23134),!it){if((Gt|0)<=-1&&Ti(23030,22949,417,23134),Gt|0){L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,k=k+1|0;while((k|0)<(Gt|0))}if((H|0)<=0){k=54;break}for(L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;;)if(y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,k=k+1|0,(k|0)==(H|0)){k=54;break e}}if(z=Xp(I,zt)|0,(z|0)==7&&Ti(22925,22949,393,23134),k=S,y=g[k>>2]|0,k=g[k+4>>2]|0,(H|0)>0){L=0;do y=jo(y,k)|0,k=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=k,L=L+1|0;while((L|0)!=(H|0))}if(y=Ms(y,k)|0,Jt=du(I)|0,y=g[(Jt?21824:21616)+(z*28|0)+(y<<2)>>2]|0,(y|0)<=-1&&Ti(23030,22949,412,23134),!y)k=54;else{z=S,k=0,L=g[z>>2]|0,z=g[z+4>>2]|0;do L=mh(L,z)|0,z=It()|0,Jt=S,g[Jt>>2]=L,g[Jt+4>>2]=z,k=k+1|0;while((k|0)<(y|0));k=54}}else if((ot|0)!=0&(it|0)!=0)if(Jt=Ms(p,m)|0,k=S,k=21408+(Jt*28|0)+((Ms(g[k>>2]|0,g[k+4>>2]|0)|0)<<2)|0,k=g[k>>2]|0,(k|0)<=-1&&Ti(23201,22949,433,23134),!k)I=z,k=55;else{L=S,I=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,I=I+1|0;while((I|0)<(k|0));I=z,k=54}else I=z,k=54;while(!1);if((k|0)==54&&it&&(k=55),(k|0)==55&&(Jt=S,(Ms(g[Jt>>2]|0,g[Jt+4>>2]|0)|0)==1)){I=4;break}Jt=S,Ce=g[Jt>>2]|0,Jt=g[Jt+4>>2]&-1040385,Ve=Le(I|0,0,45)|0,Jt=Jt|(It()|0),I=S,g[I>>2]=Ce|Ve,g[I+4>>2]=Jt,I=0}else I=2;while(!1);return Jt=I,wt=ee,Jt|0}function Qt(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0;return L=wt,wt=wt+16|0,k=L,p=Bt(p,m,y,S,k)|0,p||(yf(k,I),p=0),wt=L,p|0}function se(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0;return I=wt,wt=wt+16|0,k=I,a_(y,k),S=Yt(p,m,k,S)|0,wt=I,S|0}function pe(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0;return L=wt,wt=wt+32|0,I=L+12|0,k=L,!(Bt(p,m,p,m,I)|0)&&!(Bt(p,m,y,S,k)|0)?p=Vl(I,k)|0:p=-1,wt=L,p|0}function he(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0;return L=wt,wt=wt+32|0,I=L+12|0,k=L,!(Bt(p,m,p,m,I)|0)&&!(Bt(p,m,y,S,k)|0)?p=Vl(I,k)|0:p=-1,wt=L,(p>>>31^1)+p|0}function xe(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0;if(Ze=wt,wt=wt+48|0,k=Ze+24|0,L=Ze+12|0,Nt=Ze,!(Bt(p,m,p,m,k)|0)&&!(Bt(p,m,y,S,L)|0)){if(_e=Vl(k,L)|0,(_e|0)<0)return Nt=_e,wt=Ze,Nt|0;for(g[k>>2]=0,g[k+4>>2]=0,g[k+8>>2]=0,g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,Bt(p,m,p,m,k)|0,Bt(p,m,y,S,L)|0,Re(k),Re(L),_e?(ot=g[k>>2]|0,Gt=+(_e|0),Ce=k+4|0,Ct=g[Ce>>2]|0,Ve=k+8|0,zt=g[Ve>>2]|0,Jt=k,y=ot,S=Ct,k=zt,ee=+((g[L>>2]|0)-ot|0)/Gt,ie=+((g[L+4>>2]|0)-Ct|0)/Gt,Gt=+((g[L+8>>2]|0)-zt|0)/Gt):(S=k+4|0,zt=k+8|0,Ce=S,Ve=zt,Jt=k,y=g[k>>2]|0,S=g[S>>2]|0,k=g[zt>>2]|0,ee=0,ie=0,Gt=0),g[Nt>>2]=y,zt=Nt+4|0,g[zt>>2]=S,Ct=Nt+8|0,g[Ct>>2]=k,ot=0;;){H=+(ot|0),Ke=ee*H+ +(y|0),z=ie*H+ +(g[Ce>>2]|0),H=Gt*H+ +(g[Ve>>2]|0),S=~~+Sf(+Ke),L=~~+Sf(+z),y=~~+Sf(+H),Ke=+li(+(+(S|0)-Ke)),z=+li(+(+(L|0)-z)),H=+li(+(+(y|0)-H));do if(Ke>z&Ke>H)S=0-(L+y)|0,k=L;else if(it=0-S|0,z>H){k=it-y|0;break}else{k=L,y=it-L|0;break}while(!1);if(g[Nt>>2]=S,g[zt>>2]=k,g[Ct>>2]=y,e0(Nt),Yt(p,m,Nt,I+(ot<<3)|0)|0,(ot|0)==(_e|0))break;ot=ot+1|0,y=g[Jt>>2]|0}return Nt=0,wt=Ze,Nt|0}return Nt=-1,wt=Ze,Nt|0}function We(p,m){p=p|0,m=m|0;var y=0;if(!m)return y=1,y|0;y=p,p=1;do p=kc(m&1|0?y:1,p)|0,m=m>>1,y=kc(y,y)|0;while(m|0);return p|0}function Kr(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;if(!(hl(m,y)|0)||(m=Jm(m)|0,zt=+Tt[y>>3],S=+Tt[y+8>>3],S=m&S<0?S+6.283185307179586:S,Ct=g[p>>2]|0,(Ct|0)<=0))return Ct=0,Ct|0;if(ot=g[p+4>>2]|0,m){m=0,y=-1,p=0;t:for(;;){for(it=p;L=+Tt[ot+(it<<4)>>3],H=+Tt[ot+(it<<4)+8>>3],p=(y+2|0)%(Ct|0)|0,k=+Tt[ot+(p<<4)>>3],I=+Tt[ot+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(ztz);)if(y=it+1|0,(y|0)<(Ct|0))p=it,it=y,y=p;else{y=22;break t}if(H=I<0?I+6.283185307179586:I,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(zt-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),p=it+1|0,(p|0)>=(Ct|0)){y=22;break}else y=it}if((y|0)==22)return m|0}else{m=0,y=-1,p=0;t:for(;;){for(it=p;L=+Tt[ot+(it<<4)>>3],H=+Tt[ot+(it<<4)+8>>3],p=(y+2|0)%(Ct|0)|0,k=+Tt[ot+(p<<4)>>3],I=+Tt[ot+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(ztz);)if(y=it+1|0,(y|0)<(Ct|0))p=it,it=y,y=p;else{y=22;break t}if(S=L==S|I==S?S+-2220446049250313e-31:S,I+(zt-k)/(z-k)*(L-I)>S&&(m=m^1),p=it+1|0,(p|0)>=(Ct|0)){y=22;break}else y=it}if((y|0)==22)return m|0}return 0}function Me(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(ee=g[p>>2]|0,!ee){g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;return}if(ie=m+8|0,Tt[ie>>3]=17976931348623157e292,Ce=m+24|0,Tt[Ce>>3]=17976931348623157e292,Tt[m>>3]=-17976931348623157e292,Ve=m+16|0,Tt[Ve>>3]=-17976931348623157e292,!((ee|0)<=0)){for(zt=g[p+4>>2]|0,it=17976931348623157e292,ot=-17976931348623157e292,Ct=0,p=-1,k=17976931348623157e292,L=17976931348623157e292,H=-17976931348623157e292,S=-17976931348623157e292,Gt=0;y=+Tt[zt+(Gt<<4)>>3],z=+Tt[zt+(Gt<<4)+8>>3],p=p+2|0,I=+Tt[zt+(((p|0)==(ee|0)?0:p)<<4)+8>>3],y>3]=y,k=y),z>3]=z,L=z),y>H?Tt[m>>3]=y:y=H,z>S&&(Tt[Ve>>3]=z,S=z),it=z>0&zot?z:ot,Ct=Ct|+li(+(z-I))>3.141592653589793,p=Gt+1|0,(p|0)!=(ee|0);)Jt=Gt,H=y,Gt=p,p=Jt;Ct&&(Tt[Ve>>3]=ot,Tt[Ce>>3]=it)}}function dr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0;if(ee=g[p>>2]|0,ee){if(ie=m+8|0,Tt[ie>>3]=17976931348623157e292,Ce=m+24|0,Tt[Ce>>3]=17976931348623157e292,Tt[m>>3]=-17976931348623157e292,Ve=m+16|0,Tt[Ve>>3]=-17976931348623157e292,(ee|0)>0){for(I=g[p+4>>2]|0,zt=17976931348623157e292,Gt=-17976931348623157e292,S=0,y=-1,H=17976931348623157e292,it=17976931348623157e292,Ct=-17976931348623157e292,L=-17976931348623157e292,Jt=0;k=+Tt[I+(Jt<<4)>>3],ot=+Tt[I+(Jt<<4)+8>>3],Ke=y+2|0,z=+Tt[I+(((Ke|0)==(ee|0)?0:Ke)<<4)+8>>3],k>3]=k,H=k),ot>3]=ot,it=ot),k>Ct?Tt[m>>3]=k:k=Ct,ot>L&&(Tt[Ve>>3]=ot,L=ot),zt=ot>0&otGt?ot:Gt,S=S|+li(+(ot-z))>3.141592653589793,y=Jt+1|0,(y|0)!=(ee|0);)Ke=Jt,Ct=k,Jt=y,y=Ke;S&&(Tt[Ve>>3]=Gt,Tt[Ce>>3]=zt)}}else g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;if(Ke=p+8|0,y=g[Ke>>2]|0,!((y|0)<=0)){Ze=p+12|0,Nt=0;do if(I=g[Ze>>2]|0,S=Nt,Nt=Nt+1|0,Ce=m+(Nt<<5)|0,Ve=g[I+(S<<3)>>2]|0,Ve){if(Jt=m+(Nt<<5)+8|0,Tt[Jt>>3]=17976931348623157e292,p=m+(Nt<<5)+24|0,Tt[p>>3]=17976931348623157e292,Tt[Ce>>3]=-17976931348623157e292,_e=m+(Nt<<5)+16|0,Tt[_e>>3]=-17976931348623157e292,(Ve|0)>0){for(ee=g[I+(S<<3)+4>>2]|0,zt=17976931348623157e292,Gt=-17976931348623157e292,I=0,S=-1,ie=0,H=17976931348623157e292,it=17976931348623157e292,ot=-17976931348623157e292,L=-17976931348623157e292;k=+Tt[ee+(ie<<4)>>3],Ct=+Tt[ee+(ie<<4)+8>>3],S=S+2|0,z=+Tt[ee+(((S|0)==(Ve|0)?0:S)<<4)+8>>3],k>3]=k,H=k),Ct>3]=Ct,it=Ct),k>ot?Tt[Ce>>3]=k:k=ot,Ct>L&&(Tt[_e>>3]=Ct,L=Ct),zt=Ct>0&CtGt?Ct:Gt,I=I|+li(+(Ct-z))>3.141592653589793,S=ie+1|0,(S|0)!=(Ve|0);)be=ie,ie=S,ot=k,S=be;I&&(Tt[_e>>3]=Gt,Tt[p>>3]=zt)}}else g[Ce>>2]=0,g[Ce+4>>2]=0,g[Ce+8>>2]=0,g[Ce+12>>2]=0,g[Ce+16>>2]=0,g[Ce+20>>2]=0,g[Ce+24>>2]=0,g[Ce+28>>2]=0,y=g[Ke>>2]|0;while((Nt|0)<(y|0))}}function Xe(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0;if(!(Kr(p,m,y)|0))return I=0,I|0;if(I=p+8|0,(g[I>>2]|0)<=0)return I=1,I|0;for(S=p+12|0,p=0;;){if(k=p,p=p+1|0,Kr((g[S>>2]|0)+(k<<3)|0,m+(p<<5)|0,y)|0){p=0,S=6;break}if((p|0)>=(g[I>>2]|0)){p=1,S=6;break}}return(S|0)==6?p|0:0}function Vi(){return 8}function Jr(){return 16}function Vr(){return 168}function ei(){return 8}function Rn(){return 16}function $i(){return 12}function zs(){return 8}function cs(p){p=p|0;var m=0,y=0;return y=+Tt[p>>3],m=+Tt[p+8>>3],+ +_n(+(y*y+m*m))}function Dn(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;it=+Tt[p>>3],H=+Tt[m>>3]-it,z=+Tt[p+8>>3],L=+Tt[m+8>>3]-z,Ct=+Tt[y>>3],k=+Tt[S>>3]-Ct,zt=+Tt[y+8>>3],ot=+Tt[S+8>>3]-zt,k=(k*(z-zt)-(it-Ct)*ot)/(H*ot-L*k),Tt[I>>3]=it+H*k,Tt[I+8>>3]=z+L*k}function Wo(p,m){return p=p|0,m=m|0,+Tt[p>>3]!=+Tt[m>>3]?(m=0,m|0):(m=+Tt[p+8>>3]==+Tt[m+8>>3],m|0)}function jr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return I=+Tt[p>>3]-+Tt[m>>3],S=+Tt[p+8>>3]-+Tt[m+8>>3],y=+Tt[p+16>>3]-+Tt[m+16>>3],+(I*I+S*S+y*y)}function jl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;y=+Tt[p>>3],S=+Ur(+y),y=+hi(+y),Tt[m+16>>3]=y,y=+Tt[p+8>>3],I=S*+Ur(+y),Tt[m>>3]=I,y=S*+hi(+y),Tt[m+8>>3]=y}function Gl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(it=wt,wt=wt+32|0,I=it+16|0,k=it,T(p,m,I),L=xf(p,m)|0,H=Ms(p,m)|0,ah(L,k),m=Id(L,g[I>>2]|0)|0,!(fi(L)|0))return H=m,wt=it,H|0;do switch(L|0){case 4:{p=0,y=14;break}case 14:{p=1,y=14;break}case 24:{p=2,y=14;break}case 38:{p=3,y=14;break}case 49:{p=4,y=14;break}case 58:{p=5,y=14;break}case 63:{p=6,y=14;break}case 72:{p=7,y=14;break}case 83:{p=8,y=14;break}case 97:{p=9,y=14;break}case 107:{p=10,y=14;break}case 117:{p=11,y=14;break}default:z=0,S=0}while(!1);return(y|0)==14&&(z=g[22096+(p*24|0)+8>>2]|0,S=g[22096+(p*24|0)+16>>2]|0),p=g[I>>2]|0,(p|0)!=(g[k>>2]|0)&&(L=du(L)|0,p=g[I>>2]|0,L|(p|0)==(S|0)&&(m=(m+1|0)%6|0)),(H|0)==3&(p|0)==(S|0)?(H=(m+5|0)%6|0,wt=it,H|0):(H|0)==5&(p|0)==(z|0)?(H=(m+1|0)%6|0,wt=it,H|0):(H=m,wt=it,H|0)}function mu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;return S=Ui(p,m)|0,(y+-1|0)>>>0>5||(I=(S|0)!=0,(y|0)==1&I)?(y=-1,y|0):(S=Gl(p,m)|0,I?(y=(5-S+(g[22384+(y<<2)>>2]|0)|0)%5|0,y|0):(y=(6-S+(g[22416+(y<<2)>>2]|0)|0)%6|0,y|0))}function gu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0;(m|0)>0?(S=Na(m,4)|0,g[p>>2]=S,S||Ti(23230,23253,40,23267)):g[p>>2]=0,g[p+4>>2]=m,g[p+8>>2]=0,g[p+12>>2]=y}function gh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=p+4|0,k=p+12|0,L=p+8|0;t:for(;;){for(y=g[I>>2]|0,m=0;;){if((m|0)>=(y|0))break t;if(S=g[p>>2]|0,z=g[S+(m<<2)>>2]|0,!z)m=m+1|0;else break}m=S+(~~(+li(+(+ul(10,+ +(15-(g[k>>2]|0)|0))*(+Tt[z>>3]+ +Tt[z+8>>3])))%+(y|0))>>>0<<2)|0,y=g[m>>2]|0;e:do if(y|0){if(S=z+32|0,(y|0)==(z|0))g[m>>2]=g[S>>2];else{if(y=y+32|0,m=g[y>>2]|0,!m)break;for(;(m|0)!=(z|0);)if(y=m+32|0,m=g[y>>2]|0,!m)break e;g[y>>2]=g[S>>2]}Gr(z),g[L>>2]=(g[L>>2]|0)+-1}while(!1)}Gr(g[p>>2]|0)}function Ns(p){p=p|0;var m=0,y=0,S=0;for(S=g[p+4>>2]|0,y=0;;){if((y|0)>=(S|0)){m=0,y=4;break}if(m=g[(g[p>>2]|0)+(y<<2)>>2]|0,!m)y=y+1|0;else{y=4;break}}return(y|0)==4?m|0:0}function Es(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;if(y=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,y=(g[p>>2]|0)+(y<<2)|0,S=g[y>>2]|0,!S)return k=1,k|0;k=m+32|0;do if((S|0)!=(m|0)){if(y=g[S+32>>2]|0,!y)return k=1,k|0;for(I=y;;){if((I|0)==(m|0)){I=8;break}if(y=g[I+32>>2]|0,y)S=I,I=y;else{y=1,I=10;break}}if((I|0)==8){g[S+32>>2]=g[k>>2];break}else if((I|0)==10)return y|0}else g[y>>2]=g[k>>2];while(!1);return Gr(m),k=p+8|0,g[k>>2]=(g[k>>2]|0)+-1,k=0,k|0}function yo(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;k=no(40)|0,k||Ti(23283,23253,98,23296),g[k>>2]=g[m>>2],g[k+4>>2]=g[m+4>>2],g[k+8>>2]=g[m+8>>2],g[k+12>>2]=g[m+12>>2],I=k+16|0,g[I>>2]=g[y>>2],g[I+4>>2]=g[y+4>>2],g[I+8>>2]=g[y+8>>2],g[I+12>>2]=g[y+12>>2],g[k+32>>2]=0,I=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,I=(g[p>>2]|0)+(I<<2)|0,S=g[I>>2]|0;do if(!S)g[I>>2]=k;else{for(;!(ls(S,m)|0&&ls(S+16|0,y)|0);)if(I=g[S+32>>2]|0,S=I|0?I:S,!(g[S+32>>2]|0)){L=10;break}if((L|0)==10){g[S+32>>2]=k;break}return Gr(k),L=S,L|0}while(!1);return L=p+8|0,g[L>>2]=(g[L>>2]|0)+1,L=k,L|0}function _h(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(I=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,I=g[(g[p>>2]|0)+(I<<2)>>2]|0,!I)return y=0,y|0;if(!y){for(p=I;;){if(ls(p,m)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}if((S|0)==10)return p|0}for(p=I;;){if(ls(p,m)|0&&ls(p+16|0,y)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}return(S|0)==10?p|0:0}function On(p,m){p=p|0,m=m|0;var y=0;if(y=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,p=g[(g[p>>2]|0)+(y<<2)>>2]|0,!p)return y=0,y|0;for(;;){if(ls(p,m)|0){m=5;break}if(p=g[p+32>>2]|0,!p){p=0,m=5;break}}return(m|0)==5?p|0:0}function us(){return 23312}function Ho(p){return p=+p,+ +Lx(+p)}function pn(p){return p=+p,~~+Ho(p)|0}function no(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0;Ze=wt,wt=wt+16|0,zt=Ze;do if(p>>>0<245){if(it=p>>>0<11?16:p+11&-8,p=it>>>3,Ct=g[5829]|0,y=Ct>>>p,y&3|0)return m=(y&1^1)+p|0,p=23356+(m<<1<<2)|0,y=p+8|0,S=g[y>>2]|0,I=S+8|0,k=g[I>>2]|0,(k|0)==(p|0)?g[5829]=Ct&~(1<>2]=p,g[y>>2]=k),Nt=m<<3,g[S+4>>2]=Nt|3,Nt=S+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1,Nt=I,wt=Ze,Nt|0;if(ot=g[5831]|0,it>>>0>ot>>>0){if(y|0)return m=2<>>12&16,m=m>>>z,y=m>>>5&8,m=m>>>y,k=m>>>2&4,m=m>>>k,p=m>>>1&2,m=m>>>p,S=m>>>1&1,S=(y|z|k|p|S)+(m>>>S)|0,m=23356+(S<<1<<2)|0,p=m+8|0,k=g[p>>2]|0,z=k+8|0,y=g[z>>2]|0,(y|0)==(m|0)?(p=Ct&~(1<>2]=m,g[p>>2]=y,p=Ct),Nt=S<<3,L=Nt-it|0,g[k+4>>2]=it|3,I=k+it|0,g[I+4>>2]=L|1,g[k+Nt>>2]=L,ot|0&&(S=g[5834]|0,m=ot>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=L,g[5834]=I,Nt=z,wt=Ze,Nt|0;if(k=g[5830]|0,k){for(y=(k&0-k)+-1|0,I=y>>>12&16,y=y>>>I,S=y>>>5&8,y=y>>>S,L=y>>>2&4,y=y>>>L,z=y>>>1&2,y=y>>>z,H=y>>>1&1,H=g[23620+((S|I|L|z|H)+(y>>>H)<<2)>>2]|0,y=H,z=H,H=(g[H+4>>2]&-8)-it|0;p=g[y+16>>2]|0,!(!p&&(p=g[y+20>>2]|0,!p));)L=(g[p+4>>2]&-8)-it|0,I=L>>>0>>0,y=p,z=I?p:z,H=I?L:H;if(L=z+it|0,L>>>0>z>>>0){I=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){y=0;break}for(;;)if(S=m+20|0,y=g[S>>2]|0,y)m=y,p=S;else if(S=m+16|0,y=g[S>>2]|0,y)m=y,p=S;else break;g[p>>2]=0,y=m}else y=g[z+8>>2]|0,g[y+12>>2]=m,g[m+8>>2]=y,y=m;while(!1);do if(I|0){if(m=g[z+28>>2]|0,p=23620+(m<<2)|0,(z|0)==(g[p>>2]|0)){if(g[p>>2]=y,!y){g[5830]=k&~(1<>2]|0)==(z|0)?Nt:I+20|0)>>2]=y,!y)break;g[y+24>>2]=I,m=g[z+16>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),m=g[z+20>>2]|0,m|0&&(g[y+20>>2]=m,g[m+24>>2]=y)}while(!1);return H>>>0<16?(Nt=H+it|0,g[z+4>>2]=Nt|3,Nt=z+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1):(g[z+4>>2]=it|3,g[L+4>>2]=H|1,g[L+H>>2]=H,ot|0&&(S=g[5834]|0,m=ot>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=m|Ct,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=H,g[5834]=L),Nt=z+8|0,wt=Ze,Nt|0}else Ct=it}else Ct=it}else Ct=it}else if(p>>>0<=4294967231)if(p=p+11|0,it=p&-8,S=g[5830]|0,S){I=0-it|0,p=p>>>8,p?it>>>0>16777215?H=31:(Ct=(p+1048320|0)>>>16&8,ie=p<>>16&4,ie=ie<>>16&2,H=14-(z|Ct|H)+(ie<>>15)|0,H=it>>>(H+7|0)&1|H<<1):H=0,y=g[23620+(H<<2)>>2]|0;t:do if(!y)y=0,p=0,ie=61;else for(p=0,z=it<<((H|0)==31?0:25-(H>>>1)|0),k=0;;){if(L=(g[y+4>>2]&-8)-it|0,L>>>0>>0)if(L)p=y,I=L;else{p=y,I=0,ie=65;break t}if(ie=g[y+20>>2]|0,y=g[y+16+(z>>>31<<2)>>2]|0,k=(ie|0)==0|(ie|0)==(y|0)?k:ie,y)z=z<<1;else{y=k,ie=61;break}}while(!1);if((ie|0)==61){if((y|0)==0&(p|0)==0){if(p=2<>>12&16,Ct=Ct>>>L,k=Ct>>>5&8,Ct=Ct>>>k,z=Ct>>>2&4,Ct=Ct>>>z,H=Ct>>>1&2,Ct=Ct>>>H,y=Ct>>>1&1,p=0,y=g[23620+((k|L|z|H|y)+(Ct>>>y)<<2)>>2]|0}y?ie=65:(z=p,L=I)}if((ie|0)==65)for(k=y;;)if(Ct=(g[k+4>>2]&-8)-it|0,y=Ct>>>0>>0,I=y?Ct:I,p=y?k:p,y=g[k+16>>2]|0,y||(y=g[k+20>>2]|0),y)k=y;else{z=p,L=I;break}if(z|0&&L>>>0<((g[5831]|0)-it|0)>>>0&&(ot=z+it|0,ot>>>0>z>>>0)){k=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){m=0;break}for(;;)if(I=m+20|0,y=g[I>>2]|0,y)m=y,p=I;else if(I=m+16|0,y=g[I>>2]|0,y)m=y,p=I;else break;g[p>>2]=0}else Nt=g[z+8>>2]|0,g[Nt+12>>2]=m,g[m+8>>2]=Nt;while(!1);do if(k){if(p=g[z+28>>2]|0,y=23620+(p<<2)|0,(z|0)==(g[y>>2]|0)){if(g[y>>2]=m,!m){S=S&~(1<>2]|0)==(z|0)?Nt:k+20|0)>>2]=m,!m)break;g[m+24>>2]=k,p=g[z+16>>2]|0,p|0&&(g[m+16>>2]=p,g[p+24>>2]=m),p=g[z+20>>2]|0,p&&(g[m+20>>2]=p,g[p+24>>2]=m)}while(!1);t:do if(L>>>0<16)Nt=L+it|0,g[z+4>>2]=Nt|3,Nt=z+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1;else{if(g[z+4>>2]=it|3,g[ot+4>>2]=L|1,g[ot+L>>2]=L,m=L>>>3,L>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=ot,g[m+12>>2]=ot,g[ot+8>>2]=m,g[ot+12>>2]=y;break}if(m=L>>>8,m?L>>>0>16777215?y=31:(_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,y=14-(Jt|_e|y)+(Nt<>>15)|0,y=L>>>(y+7|0)&1|y<<1):y=0,m=23620+(y<<2)|0,g[ot+28>>2]=y,p=ot+16|0,g[p+4>>2]=0,g[p>>2]=0,p=1<>2]=ot,g[ot+24>>2]=m,g[ot+12>>2]=ot,g[ot+8>>2]=ot;break}m=g[m>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(L|0)){for(S=L<<((y|0)==31?0:25-(y>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(L|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=ot,g[ot+24>>2]=m,g[ot+12>>2]=ot,g[ot+8>>2]=ot;break t}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=ot,g[_e>>2]=ot,g[ot+8>>2]=Nt,g[ot+12>>2]=m,g[ot+24>>2]=0}while(!1);return Nt=z+8|0,wt=Ze,Nt|0}else Ct=it}else Ct=it;else Ct=-1;while(!1);if(y=g[5831]|0,y>>>0>=Ct>>>0)return m=y-Ct|0,p=g[5834]|0,m>>>0>15?(Nt=p+Ct|0,g[5834]=Nt,g[5831]=m,g[Nt+4>>2]=m|1,g[p+y>>2]=m,g[p+4>>2]=Ct|3):(g[5831]=0,g[5834]=0,g[p+4>>2]=y|3,Nt=p+y+4|0,g[Nt>>2]=g[Nt>>2]|1),Nt=p+8|0,wt=Ze,Nt|0;if(L=g[5832]|0,L>>>0>Ct>>>0)return Jt=L-Ct|0,g[5832]=Jt,Nt=g[5835]|0,_e=Nt+Ct|0,g[5835]=_e,g[_e+4>>2]=Jt|1,g[Nt+4>>2]=Ct|3,Nt=Nt+8|0,wt=Ze,Nt|0;if(g[5947]|0?p=g[5949]|0:(g[5949]=4096,g[5948]=4096,g[5950]=-1,g[5951]=-1,g[5952]=0,g[5940]=0,g[5947]=zt&-16^1431655768,p=4096),z=Ct+48|0,H=Ct+47|0,k=p+H|0,I=0-p|0,it=k&I,it>>>0<=Ct>>>0||(p=g[5939]|0,p|0&&(ot=g[5937]|0,zt=ot+it|0,zt>>>0<=ot>>>0|zt>>>0>p>>>0)))return Nt=0,wt=Ze,Nt|0;t:do if(g[5940]&4)m=0,ie=143;else{y=g[5835]|0;e:do if(y){for(S=23764;zt=g[S>>2]|0,!(zt>>>0<=y>>>0&&(zt+(g[S+4>>2]|0)|0)>>>0>y>>>0);)if(p=g[S+8>>2]|0,p)S=p;else{ie=128;break e}if(m=k-L&I,m>>>0<2147483647)if(p=Xi(m|0)|0,(p|0)==((g[S>>2]|0)+(g[S+4>>2]|0)|0)){if((p|0)!=-1){L=m,k=p,ie=145;break t}}else S=p,ie=136;else m=0}else ie=128;while(!1);do if((ie|0)==128)if(y=Xi(0)|0,(y|0)!=-1&&(m=y,Gt=g[5948]|0,ee=Gt+-1|0,m=(ee&m|0?(ee+m&0-Gt)-m|0:0)+it|0,Gt=g[5937]|0,ee=m+Gt|0,m>>>0>Ct>>>0&m>>>0<2147483647)){if(zt=g[5939]|0,zt|0&&ee>>>0<=Gt>>>0|ee>>>0>zt>>>0){m=0;break}if(p=Xi(m|0)|0,(p|0)==(y|0)){L=m,k=y,ie=145;break t}else S=p,ie=136}else m=0;while(!1);do if((ie|0)==136){if(y=0-m|0,!(z>>>0>m>>>0&(m>>>0<2147483647&(S|0)!=-1)))if((S|0)==-1){m=0;break}else{L=m,k=S,ie=145;break t}if(p=g[5949]|0,p=H-m+p&0-p,p>>>0>=2147483647){L=m,k=S,ie=145;break t}if((Xi(p|0)|0)==-1){Xi(y|0)|0,m=0;break}else{L=p+m|0,k=S,ie=145;break t}}while(!1);g[5940]=g[5940]|4,ie=143}while(!1);if((ie|0)==143&&it>>>0<2147483647&&(Jt=Xi(it|0)|0,ee=Xi(0)|0,Ce=ee-Jt|0,Ve=Ce>>>0>(Ct+40|0)>>>0,!((Jt|0)==-1|Ve^1|Jt>>>0>>0&((Jt|0)!=-1&(ee|0)!=-1)^1))&&(L=Ve?Ce:m,k=Jt,ie=145),(ie|0)==145){m=(g[5937]|0)+L|0,g[5937]=m,m>>>0>(g[5938]|0)>>>0&&(g[5938]=m),H=g[5835]|0;t:do if(H){for(m=23764;;){if(p=g[m>>2]|0,y=g[m+4>>2]|0,(k|0)==(p+y|0)){ie=154;break}if(S=g[m+8>>2]|0,S)m=S;else break}if((ie|0)==154&&(_e=m+4|0,(g[m+12>>2]&8|0)==0)&&k>>>0>H>>>0&p>>>0<=H>>>0){g[_e>>2]=y+L,Nt=(g[5832]|0)+L|0,Jt=H+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=H+Jt|0,Jt=Nt-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[H+Nt+4>>2]=40,g[5836]=g[5951];break}for(k>>>0<(g[5833]|0)>>>0&&(g[5833]=k),y=k+L|0,m=23764;;){if((g[m>>2]|0)==(y|0)){ie=162;break}if(p=g[m+8>>2]|0,p)m=p;else break}if((ie|0)==162&&!(g[m+12>>2]&8|0)){g[m>>2]=k,ot=m+4|0,g[ot>>2]=(g[ot>>2]|0)+L,ot=k+8|0,ot=k+(ot&7|0?0-ot&7:0)|0,m=y+8|0,m=y+(m&7|0?0-m&7:0)|0,it=ot+Ct|0,z=m-ot-Ct|0,g[ot+4>>2]=Ct|3;e:do if((H|0)==(m|0))Nt=(g[5832]|0)+z|0,g[5832]=Nt,g[5835]=it,g[it+4>>2]=Nt|1;else{if((g[5834]|0)==(m|0)){Nt=(g[5831]|0)+z|0,g[5831]=Nt,g[5834]=it,g[it+4>>2]=Nt|1,g[it+Nt>>2]=Nt;break}if(p=g[m+4>>2]|0,(p&3|0)==1){L=p&-8,S=p>>>3;r:do if(p>>>0<256)if(p=g[m+8>>2]|0,y=g[m+12>>2]|0,(y|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=y,g[y+8>>2]=p;break}else{k=g[m+24>>2]|0,p=g[m+12>>2]|0;do if((p|0)==(m|0)){if(y=m+16|0,S=y+4|0,p=g[S>>2]|0,p)y=S;else if(p=g[y>>2]|0,!p){p=0;break}for(;;)if(I=p+20|0,S=g[I>>2]|0,S)p=S,y=I;else if(I=p+16|0,S=g[I>>2]|0,S)p=S,y=I;else break;g[y>>2]=0}else Nt=g[m+8>>2]|0,g[Nt+12>>2]=p,g[p+8>>2]=Nt;while(!1);if(!k)break;y=g[m+28>>2]|0,S=23620+(y<<2)|0;do if((g[S>>2]|0)!=(m|0)){if(Nt=k+16|0,g[((g[Nt>>2]|0)==(m|0)?Nt:k+20|0)>>2]=p,!p)break r}else{if(g[S>>2]=p,p|0)break;g[5830]=g[5830]&~(1<>2]=k,y=m+16|0,S=g[y>>2]|0,S|0&&(g[p+16>>2]=S,g[S+24>>2]=p),y=g[y+4>>2]|0,!y)break;g[p+20>>2]=y,g[y+24>>2]=p}while(!1);m=m+L|0,I=L+z|0}else I=z;if(m=m+4|0,g[m>>2]=g[m>>2]&-2,g[it+4>>2]=I|1,g[it+I>>2]=I,m=I>>>3,I>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=it,g[m+12>>2]=it,g[it+8>>2]=m,g[it+12>>2]=y;break}m=I>>>8;do if(!m)S=0;else{if(I>>>0>16777215){S=31;break}_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,S=14-(Jt|_e|S)+(Nt<>>15)|0,S=I>>>(S+7|0)&1|S<<1}while(!1);if(m=23620+(S<<2)|0,g[it+28>>2]=S,p=it+16|0,g[p+4>>2]=0,g[p>>2]=0,p=g[5830]|0,y=1<>2]=it,g[it+24>>2]=m,g[it+12>>2]=it,g[it+8>>2]=it;break}m=g[m>>2]|0;r:do if((g[m+4>>2]&-8|0)!=(I|0)){for(S=I<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(I|0)){m=p;break r}else S=S<<1,m=p;g[y>>2]=it,g[it+24>>2]=m,g[it+12>>2]=it,g[it+8>>2]=it;break e}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=it,g[_e>>2]=it,g[it+8>>2]=Nt,g[it+12>>2]=m,g[it+24>>2]=0}while(!1);return Nt=ot+8|0,wt=Ze,Nt|0}for(m=23764;p=g[m>>2]|0,!(p>>>0<=H>>>0&&(Nt=p+(g[m+4>>2]|0)|0,Nt>>>0>H>>>0));)m=g[m+8>>2]|0;I=Nt+-47|0,p=I+8|0,p=I+(p&7|0?0-p&7:0)|0,I=H+16|0,p=p>>>0>>0?H:p,m=p+8|0,y=L+-40|0,Jt=k+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=k+Jt|0,Jt=y-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[k+y+4>>2]=40,g[5836]=g[5951],y=p+4|0,g[y>>2]=27,g[m>>2]=g[5941],g[m+4>>2]=g[5942],g[m+8>>2]=g[5943],g[m+12>>2]=g[5944],g[5941]=k,g[5942]=L,g[5944]=0,g[5943]=m,m=p+24|0;do _e=m,m=m+4|0,g[m>>2]=7;while((_e+8|0)>>>0>>0);if((p|0)!=(H|0)){if(k=p-H|0,g[y>>2]=g[y>>2]&-2,g[H+4>>2]=k|1,g[p>>2]=k,m=k>>>3,k>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=H,g[m+12>>2]=H,g[H+8>>2]=m,g[H+12>>2]=y;break}if(m=k>>>8,m?k>>>0>16777215?S=31:(_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,S=14-(Jt|_e|S)+(Nt<>>15)|0,S=k>>>(S+7|0)&1|S<<1):S=0,y=23620+(S<<2)|0,g[H+28>>2]=S,g[H+20>>2]=0,g[I>>2]=0,m=g[5830]|0,p=1<>2]=H,g[H+24>>2]=y,g[H+12>>2]=H,g[H+8>>2]=H;break}m=g[y>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(k|0)){for(S=k<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(k|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=H,g[H+24>>2]=m,g[H+12>>2]=H,g[H+8>>2]=H;break t}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=H,g[_e>>2]=H,g[H+8>>2]=Nt,g[H+12>>2]=m,g[H+24>>2]=0}}else Nt=g[5833]|0,(Nt|0)==0|k>>>0>>0&&(g[5833]=k),g[5941]=k,g[5942]=L,g[5944]=0,g[5838]=g[5947],g[5837]=-1,g[5842]=23356,g[5841]=23356,g[5844]=23364,g[5843]=23364,g[5846]=23372,g[5845]=23372,g[5848]=23380,g[5847]=23380,g[5850]=23388,g[5849]=23388,g[5852]=23396,g[5851]=23396,g[5854]=23404,g[5853]=23404,g[5856]=23412,g[5855]=23412,g[5858]=23420,g[5857]=23420,g[5860]=23428,g[5859]=23428,g[5862]=23436,g[5861]=23436,g[5864]=23444,g[5863]=23444,g[5866]=23452,g[5865]=23452,g[5868]=23460,g[5867]=23460,g[5870]=23468,g[5869]=23468,g[5872]=23476,g[5871]=23476,g[5874]=23484,g[5873]=23484,g[5876]=23492,g[5875]=23492,g[5878]=23500,g[5877]=23500,g[5880]=23508,g[5879]=23508,g[5882]=23516,g[5881]=23516,g[5884]=23524,g[5883]=23524,g[5886]=23532,g[5885]=23532,g[5888]=23540,g[5887]=23540,g[5890]=23548,g[5889]=23548,g[5892]=23556,g[5891]=23556,g[5894]=23564,g[5893]=23564,g[5896]=23572,g[5895]=23572,g[5898]=23580,g[5897]=23580,g[5900]=23588,g[5899]=23588,g[5902]=23596,g[5901]=23596,g[5904]=23604,g[5903]=23604,Nt=L+-40|0,Jt=k+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=k+Jt|0,Jt=Nt-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[k+Nt+4>>2]=40,g[5836]=g[5951];while(!1);if(m=g[5832]|0,m>>>0>Ct>>>0)return Jt=m-Ct|0,g[5832]=Jt,Nt=g[5835]|0,_e=Nt+Ct|0,g[5835]=_e,g[_e+4>>2]=Jt|1,g[Nt+4>>2]=Ct|3,Nt=Nt+8|0,wt=Ze,Nt|0}return Nt=us()|0,g[Nt>>2]=12,Nt=0,wt=Ze,Nt|0}function Gr(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(p){y=p+-8|0,I=g[5833]|0,p=g[p+-4>>2]|0,m=p&-8,H=y+m|0;do if(p&1)z=y,L=y;else{if(S=g[y>>2]|0,!(p&3)||(L=y+(0-S)|0,k=S+m|0,L>>>0>>0))return;if((g[5834]|0)==(L|0)){if(p=H+4|0,m=g[p>>2]|0,(m&3|0)!=3){z=L,m=k;break}g[5831]=k,g[p>>2]=m&-2,g[L+4>>2]=k|1,g[L+k>>2]=k;return}if(y=S>>>3,S>>>0<256)if(p=g[L+8>>2]|0,m=g[L+12>>2]|0,(m|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=m,g[m+8>>2]=p,z=L,m=k;break}I=g[L+24>>2]|0,p=g[L+12>>2]|0;do if((p|0)==(L|0)){if(m=L+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){p=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0}else z=g[L+8>>2]|0,g[z+12>>2]=p,g[p+8>>2]=z;while(!1);if(I){if(m=g[L+28>>2]|0,y=23620+(m<<2)|0,(g[y>>2]|0)==(L|0)){if(g[y>>2]=p,!p){g[5830]=g[5830]&~(1<>2]|0)==(L|0)?z:I+20|0)>>2]=p,!p){z=L,m=k;break}g[p+24>>2]=I,m=L+16|0,y=g[m>>2]|0,y|0&&(g[p+16>>2]=y,g[y+24>>2]=p),m=g[m+4>>2]|0,m?(g[p+20>>2]=m,g[m+24>>2]=p,z=L,m=k):(z=L,m=k)}else z=L,m=k}while(!1);if(!(L>>>0>=H>>>0)&&(p=H+4|0,S=g[p>>2]|0,!!(S&1))){if(S&2)g[p>>2]=S&-2,g[z+4>>2]=m|1,g[L+m>>2]=m,I=m;else{if((g[5835]|0)==(H|0)){if(H=(g[5832]|0)+m|0,g[5832]=H,g[5835]=z,g[z+4>>2]=H|1,(z|0)!=(g[5834]|0))return;g[5834]=0,g[5831]=0;return}if((g[5834]|0)==(H|0)){H=(g[5831]|0)+m|0,g[5831]=H,g[5834]=L,g[z+4>>2]=H|1,g[L+H>>2]=H;return}I=(S&-8)+m|0,y=S>>>3;do if(S>>>0<256)if(m=g[H+8>>2]|0,p=g[H+12>>2]|0,(p|0)==(m|0)){g[5829]=g[5829]&~(1<>2]=p,g[p+8>>2]=m;break}else{k=g[H+24>>2]|0,p=g[H+12>>2]|0;do if((p|0)==(H|0)){if(m=H+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){y=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0,y=p}else y=g[H+8>>2]|0,g[y+12>>2]=p,g[p+8>>2]=y,y=p;while(!1);if(k|0){if(p=g[H+28>>2]|0,m=23620+(p<<2)|0,(g[m>>2]|0)==(H|0)){if(g[m>>2]=y,!y){g[5830]=g[5830]&~(1<>2]|0)==(H|0)?S:k+20|0)>>2]=y,!y)break;g[y+24>>2]=k,p=H+16|0,m=g[p>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),p=g[p+4>>2]|0,p|0&&(g[y+20>>2]=p,g[p+24>>2]=y)}}while(!1);if(g[z+4>>2]=I|1,g[L+I>>2]=I,(z|0)==(g[5834]|0)){g[5831]=I;return}}if(p=I>>>3,I>>>0<256){y=23356+(p<<1<<2)|0,m=g[5829]|0,p=1<>2]|0):(g[5829]=m|p,p=y,m=y+8|0),g[m>>2]=z,g[p+12>>2]=z,g[z+8>>2]=p,g[z+12>>2]=y;return}p=I>>>8,p?I>>>0>16777215?S=31:(L=(p+1048320|0)>>>16&8,H=p<>>16&4,H=H<>>16&2,S=14-(k|L|S)+(H<>>15)|0,S=I>>>(S+7|0)&1|S<<1):S=0,p=23620+(S<<2)|0,g[z+28>>2]=S,g[z+20>>2]=0,g[z+16>>2]=0,m=g[5830]|0,y=1<>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;else{p=g[p>>2]|0;e:do if((g[p+4>>2]&-8|0)!=(I|0)){for(S=I<<((S|0)==31?0:25-(S>>>1)|0);y=p+16+(S>>>31<<2)|0,m=g[y>>2]|0,!!m;)if((g[m+4>>2]&-8|0)==(I|0)){p=m;break e}else S=S<<1,p=m;g[y>>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;break t}while(!1);L=p+8|0,H=g[L>>2]|0,g[H+12>>2]=z,g[L>>2]=z,g[z+8>>2]=H,g[z+12>>2]=p,g[z+24>>2]=0}while(!1);if(H=(g[5837]|0)+-1|0,g[5837]=H,!(H|0)){for(p=23772;p=g[p>>2]|0,p;)p=p+8|0;g[5837]=-1}}}}function Na(p,m){p=p|0,m=m|0;var y=0;return p?(y=kc(m,p)|0,(m|p)>>>0>65535&&(y=((y>>>0)/(p>>>0)|0|0)==(m|0)?y:-1)):y=0,p=no(y)|0,!p||!(g[p+-4>>2]&3)||Dc(p|0,0,y|0)|0,p|0}function d_(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,y=p+y>>>0,$e(m+S+(y>>>0

>>0|0)>>>0|0),y|0|0}function Bd(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,S=m-S-(y>>>0>p>>>0|0)>>>0,$e(S|0),p-y>>>0|0|0}function oA(p){return p=p|0,(p?31-(aa(p^p-1)|0)|0:32)|0}function Wl(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0;if(ot=p,H=m,it=H,L=y,zt=S,z=zt,!it)return k=(I|0)!=0,z?k?(g[I>>2]=p|0,g[I+4>>2]=m&0,zt=0,I=0,$e(zt|0),I|0):(zt=0,I=0,$e(zt|0),I|0):(k&&(g[I>>2]=(ot>>>0)%(L>>>0),g[I+4>>2]=0),zt=0,I=(ot>>>0)/(L>>>0)>>>0,$e(zt|0),I|0);k=(z|0)==0;do if(L){if(!k){if(k=(aa(z|0)|0)-(aa(it|0)|0)|0,k>>>0<=31){Ct=k+1|0,z=31-k|0,m=k-31>>31,L=Ct,p=ot>>>(Ct>>>0)&m|it<>>(Ct>>>0)&m,k=0,z=ot<>2]=p|0,g[I+4>>2]=H|m&0,zt=0,I=0,$e(zt|0),I|0):(zt=0,I=0,$e(zt|0),I|0)}if(k=L-1|0,k&L|0){z=(aa(L|0)|0)+33-(aa(it|0)|0)|0,ee=64-z|0,Ct=32-z|0,H=Ct>>31,Gt=z-32|0,m=Gt>>31,L=z,p=Ct-1>>31&it>>>(Gt>>>0)|(it<>>(z>>>0))&m,m=m&it>>>(z>>>0),k=ot<>>(Gt>>>0))&H|ot<>31;break}return I|0&&(g[I>>2]=k&ot,g[I+4>>2]=0),(L|0)==1?(Gt=H|m&0,ee=p|0|0,$e(Gt|0),ee|0):(ee=oA(L|0)|0,Gt=it>>>(ee>>>0)|0,ee=it<<32-ee|ot>>>(ee>>>0)|0,$e(Gt|0),ee|0)}else{if(k)return I|0&&(g[I>>2]=(it>>>0)%(L>>>0),g[I+4>>2]=0),Gt=0,ee=(it>>>0)/(L>>>0)>>>0,$e(Gt|0),ee|0;if(!ot)return I|0&&(g[I>>2]=0,g[I+4>>2]=(it>>>0)%(z>>>0)),Gt=0,ee=(it>>>0)/(z>>>0)>>>0,$e(Gt|0),ee|0;if(k=z-1|0,!(k&z))return I|0&&(g[I>>2]=p|0,g[I+4>>2]=k&it|m&0),Gt=0,ee=it>>>((oA(z|0)|0)>>>0),$e(Gt|0),ee|0;if(k=(aa(z|0)|0)-(aa(it|0)|0)|0,k>>>0<=30){m=k+1|0,z=31-k|0,L=m,p=it<>>(m>>>0),m=it>>>(m>>>0),k=0,z=ot<>2]=p|0,g[I+4>>2]=H|m&0,Gt=0,ee=0,$e(Gt|0),ee|0):(Gt=0,ee=0,$e(Gt|0),ee|0)}while(!1);if(!L)it=z,H=0,z=0;else{Ct=y|0|0,ot=zt|S&0,it=d_(Ct|0,ot|0,-1,-1)|0,y=It()|0,H=z,z=0;do S=H,H=k>>>31|H<<1,k=z|k<<1,S=p<<1|S>>>31|0,zt=p>>>31|m<<1|0,Bd(it|0,y|0,S|0,zt|0)|0,ee=It()|0,Gt=ee>>31|((ee|0)<0?-1:0)<<1,z=Gt&1,p=Bd(S|0,zt|0,Gt&Ct|0,(((ee|0)<0?-1:0)>>31|((ee|0)<0?-1:0)<<1)&ot|0)|0,m=It()|0,L=L-1|0;while(L|0);it=H,H=0}return L=0,I|0&&(g[I>>2]=p,g[I+4>>2]=m),Gt=(k|0)>>>31|(it|L)<<1|(L<<1|k>>>31)&0|H,ee=(k<<1|0)&-2|z,$e(Gt|0),ee|0}function qo(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0;return k=wt,wt=wt+16|0,I=k|0,Wl(p,m,y,S,I)|0,wt=k,$e(g[I+4>>2]|0),g[I>>2]|0|0}function me(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?($e(m>>>y|0),p>>>y|(m&(1<>>y-32|0)}function Le(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?($e(m<>>32-y|0),p<=0?+as(p+.5):+Qi(p-.5)}function Ua(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0;if((y|0)>=8192)return Hp(p|0,m|0,y|0)|0,p|0;if(k=p|0,I=p+y|0,(p&3)==(m&3)){for(;p&3;){if(!y)return k|0;vr[p>>0]=vr[m>>0]|0,p=p+1|0,m=m+1|0,y=y-1|0}for(y=I&-4|0,S=y-64|0;(p|0)<=(S|0);)g[p>>2]=g[m>>2],g[p+4>>2]=g[m+4>>2],g[p+8>>2]=g[m+8>>2],g[p+12>>2]=g[m+12>>2],g[p+16>>2]=g[m+16>>2],g[p+20>>2]=g[m+20>>2],g[p+24>>2]=g[m+24>>2],g[p+28>>2]=g[m+28>>2],g[p+32>>2]=g[m+32>>2],g[p+36>>2]=g[m+36>>2],g[p+40>>2]=g[m+40>>2],g[p+44>>2]=g[m+44>>2],g[p+48>>2]=g[m+48>>2],g[p+52>>2]=g[m+52>>2],g[p+56>>2]=g[m+56>>2],g[p+60>>2]=g[m+60>>2],p=p+64|0,m=m+64|0;for(;(p|0)<(y|0);)g[p>>2]=g[m>>2],p=p+4|0,m=m+4|0}else for(y=I-4|0;(p|0)<(y|0);)vr[p>>0]=vr[m>>0]|0,vr[p+1>>0]=vr[m+1>>0]|0,vr[p+2>>0]=vr[m+2>>0]|0,vr[p+3>>0]=vr[m+3>>0]|0,p=p+4|0,m=m+4|0;for(;(p|0)<(I|0);)vr[p>>0]=vr[m>>0]|0,p=p+1|0,m=m+1|0;return k|0}function Dc(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(k=p+y|0,m=m&255,(y|0)>=67){for(;p&3;)vr[p>>0]=m,p=p+1|0;for(S=k&-4|0,L=m|m<<8|m<<16|m<<24,I=S-64|0;(p|0)<=(I|0);)g[p>>2]=L,g[p+4>>2]=L,g[p+8>>2]=L,g[p+12>>2]=L,g[p+16>>2]=L,g[p+20>>2]=L,g[p+24>>2]=L,g[p+28>>2]=L,g[p+32>>2]=L,g[p+36>>2]=L,g[p+40>>2]=L,g[p+44>>2]=L,g[p+48>>2]=L,g[p+52>>2]=L,g[p+56>>2]=L,g[p+60>>2]=L,p=p+64|0;for(;(p|0)<(S|0);)g[p>>2]=L,p=p+4|0}for(;(p|0)<(k|0);)vr[p>>0]=m,p=p+1|0;return k-y|0}function Lx(p){return p=+p,p>=0?+as(p+.5):+Qi(p-.5)}function Xi(p){p=p|0;var m=0,y=0,S=0;return S=Ym()|0,y=g[Ts>>2]|0,m=y+p|0,(p|0)>0&(m|0)<(y|0)|(m|0)<0?(Qm(m|0)|0,Zm(12),-1):(m|0)>(S|0)&&!(qp(m|0)|0)?(Zm(12),-1):(g[Ts>>2]=m,y|0)}return{___uremdi3:qo,_bitshift64Lshr:me,_bitshift64Shl:Le,_calloc:Na,_cellAreaKm2:h_,_cellAreaM2:Cx,_cellAreaRads2:u_,_compact:Ah,_destroyLinkedPolygon:Ft,_edgeLengthKm:ln,_edgeLengthM:rA,_emscripten_replace_memory:$m,_exactEdgeLengthKm:iA,_exactEdgeLengthM:rr,_exactEdgeLengthRads:_o,_experimentalH3ToLocalIj:Qt,_experimentalLocalIjToH3:se,_free:Gr,_geoToH3:sA,_getDestinationH3IndexFromUnidirectionalEdge:Z,_getH3IndexesFromUnidirectionalEdge:st,_getH3UnidirectionalEdge:U,_getH3UnidirectionalEdgeBoundary:pt,_getH3UnidirectionalEdgesFromHexagon:At,_getOriginH3IndexFromUnidirectionalEdge:W,_getPentagonIndexes:O,_getRes0Indexes:s_,_h3Distance:pe,_h3GetBaseCell:xf,_h3GetFaces:b,_h3GetResolution:fr,_h3IndexesAreNeighbors:B,_h3IsPentagon:Ui,_h3IsResClassIII:bf,_h3IsValid:nA,_h3Line:xe,_h3LineSize:he,_h3SetToLinkedGeo:oh,_h3ToCenterChild:f_,_h3ToChildren:io,_h3ToGeo:l,_h3ToGeoBoundary:d,_h3ToParent:Dd,_h3UnidirectionalEdgeIsValid:Q,_hexAreaKm2:c_,_hexAreaM2:ua,_hexRing:i_,_i64Subtract:Bd,_kRing:e_,_kRingDistances:r_,_llvm_minnum_f64:dl,_llvm_round_f64:Sf,_malloc:no,_maxFaceCount:v,_maxH3ToChildrenSize:Gn,_maxKringSize:Xm,_maxPolyfillSize:Pd,_maxUncompactSize:yn,_memcpy:Ua,_memset:Dc,_numHexagons:l0,_pentagonIndexCount:M,_pointDistKm:Rc,_pointDistM:o0,_pointDistRads:Au,_polyfill:Zp,_res0IndexCount:n_,_round:Lx,_sbrk:Xi,_sizeOfCoordIJ:zs,_sizeOfGeoBoundary:Vr,_sizeOfGeoCoord:Jr,_sizeOfGeoPolygon:Rn,_sizeOfGeofence:ei,_sizeOfH3Index:Vi,_sizeOfLinkedGeoPolygon:$i,_uncompact:Cn,establishStackSpace:Px,stackAlloc:Td,stackRestore:Ed,stackSave:Md}}(vt,xt,er),Dt=t.___uremdi3=_t.___uremdi3,Mt=t._bitshift64Lshr=_t._bitshift64Lshr,Ut=t._bitshift64Shl=_t._bitshift64Shl,re=t._calloc=_t._calloc,ne=t._cellAreaKm2=_t._cellAreaKm2,oe=t._cellAreaM2=_t._cellAreaM2,ar=t._cellAreaRads2=_t._cellAreaRads2,_r=t._compact=_t._compact,Ye=t._destroyLinkedPolygon=_t._destroyLinkedPolygon,lr=t._edgeLengthKm=_t._edgeLengthKm,xr=t._edgeLengthM=_t._edgeLengthM,vi=t._emscripten_replace_memory=_t._emscripten_replace_memory,Bi=t._exactEdgeLengthKm=_t._exactEdgeLengthKm,ni=t._exactEdgeLengthM=_t._exactEdgeLengthM,Hr=t._exactEdgeLengthRads=_t._exactEdgeLengthRads,Un=t._experimentalH3ToLocalIj=_t._experimentalH3ToLocalIj,Li=t._experimentalLocalIjToH3=_t._experimentalLocalIjToH3,gn=t._free=_t._free,Kn=t._geoToH3=_t._geoToH3,oa=t._getDestinationH3IndexFromUnidirectionalEdge=_t._getDestinationH3IndexFromUnidirectionalEdge,Om=t._getH3IndexesFromUnidirectionalEdge=_t._getH3IndexesFromUnidirectionalEdge,Fl=t._getH3UnidirectionalEdge=_t._getH3UnidirectionalEdge,ws=t._getH3UnidirectionalEdgeBoundary=_t._getH3UnidirectionalEdgeBoundary,ih=t._getH3UnidirectionalEdgesFromHexagon=_t._getH3UnidirectionalEdgesFromHexagon,ai=t._getOriginH3IndexFromUnidirectionalEdge=_t._getOriginH3IndexFromUnidirectionalEdge,La=t._getPentagonIndexes=_t._getPentagonIndexes,Lc=t._getRes0Indexes=_t._getRes0Indexes,on=t._h3Distance=_t._h3Distance,kn=t._h3GetBaseCell=_t._h3GetBaseCell,Bm=t._h3GetFaces=_t._h3GetFaces,Vo=t._h3GetResolution=_t._h3GetResolution,Vn=t._h3IndexesAreNeighbors=_t._h3IndexesAreNeighbors,mo=t._h3IsPentagon=_t._h3IsPentagon,zl=t._h3IsResClassIII=_t._h3IsResClassIII,Yi=t._h3IsValid=_t._h3IsValid,_i=t._h3Line=_t._h3Line,Nl=t._h3LineSize=_t._h3LineSize,an=t._h3SetToLinkedGeo=_t._h3SetToLinkedGeo,hu=t._h3ToCenterChild=_t._h3ToCenterChild,Jn=t._h3ToChildren=_t._h3ToChildren,Up=t._h3ToGeo=_t._h3ToGeo,Ul=t._h3ToGeoBoundary=_t._h3ToGeoBoundary,md=t._h3ToParent=_t._h3ToParent,gd=t._h3UnidirectionalEdgeIsValid=_t._h3UnidirectionalEdgeIsValid,_d=t._hexAreaKm2=_t._hexAreaKm2,yd=t._hexAreaM2=_t._hexAreaM2,lt=t._hexRing=_t._hexRing,ft=t._i64Subtract=_t._i64Subtract,Lt=t._kRing=_t._kRing,$t=t._kRingDistances=_t._kRingDistances,ge=t._llvm_minnum_f64=_t._llvm_minnum_f64,qe=t._llvm_round_f64=_t._llvm_round_f64,ti=t._malloc=_t._malloc,ts=t._maxFaceCount=_t._maxFaceCount,Ss=t._maxH3ToChildrenSize=_t._maxH3ToChildrenSize,Bs=t._maxKringSize=_t._maxKringSize,ka=t._maxPolyfillSize=_t._maxPolyfillSize,Fm=t._maxUncompactSize=_t._maxUncompactSize,Mx=t._memcpy=_t._memcpy,Ex=t._memset=_t._memset,Xg=t._numHexagons=_t._numHexagons,Kg=t._pentagonIndexCount=_t._pentagonIndexCount,Af=t._pointDistKm=_t._pointDistKm,zm=t._pointDistM=_t._pointDistM,cl=t._pointDistRads=_t._pointDistRads,Nm=t._polyfill=_t._polyfill,Um=t._res0IndexCount=_t._res0IndexCount,Vp=t._round=_t._round,Vm=t._sbrk=_t._sbrk,vd=t._sizeOfCoordIJ=_t._sizeOfCoordIJ,nh=t._sizeOfGeoBoundary=_t._sizeOfGeoBoundary,ui=t._sizeOfGeoCoord=_t._sizeOfGeoCoord,jm=t._sizeOfGeoPolygon=_t._sizeOfGeoPolygon,Ra=t._sizeOfGeofence=_t._sizeOfGeofence,Da=t._sizeOfH3Index=_t._sizeOfH3Index,Jg=t._sizeOfLinkedGeoPolygon=_t._sizeOfLinkedGeoPolygon,Gm=t._uncompact=_t._uncompact,Wm=t.establishStackSpace=_t.establishStackSpace,jp=t.stackAlloc=_t.stackAlloc,Hm=t.stackRestore=_t.stackRestore,Gp=t.stackSave=_t.stackSave;if(t.asm=_t,t.cwrap=ut,t.setValue=j,t.getValue=Y,t.getTempRet0=R,po){Pa(po)||(po=o(po));{uu(\"memory initializer\");var xd=function(Ht){Ht.byteLength&&(Ht=new Uint8Array(Ht)),zi.set(Ht,N),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,al(\"memory initializer\")},Wp=function(){c(po,xd,function(){throw\"could not load memory initializer \"+po})},bd=ht(po);if(bd)xd(bd.buffer);else if(t.memoryInitializerRequest){var qm=function(){var Ht=t.memoryInitializerRequest,fe=Ht.response;if(Ht.status!==200&&Ht.status!==0){var De=ht(t.memoryInitializerRequestURL);if(De)fe=De.buffer;else{console.warn(\"a problem seems to have happened with Module.memoryInitializerRequest, status: \"+Ht.status+\", retrying \"+po),Wp();return}}xd(fe)};t.memoryInitializerRequest.response?setTimeout(qm,0):t.memoryInitializerRequest.addEventListener(\"load\",qm)}else Wp()}}var wd;eo=function Ht(){wd||fu(),wd||(eo=Ht)};function fu(Ht){if(Ht=Ht||s,gi>0||(ol(),gi>0))return;function fe(){wd||(wd=!0,!rt&&(fo(),Ea(),t.onRuntimeInitialized&&t.onRuntimeInitialized(),na()))}t.setStatus?(t.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){t.setStatus(\"\")},1),fe()},1)):fe()}t.run=fu;function sh(Ht){throw t.onAbort&&t.onAbort(Ht),Ht+=\"\",f(Ht),_(Ht),rt=!0,\"abort(\"+Ht+\"). Build with -s ASSERTIONS=1 for more info.\"}if(t.abort=sh,t.preInit)for(typeof t.preInit==\"function\"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return fu(),e}(typeof Tc==\"object\"?Tc:{}),Sr=\"number\",AS=Sr,$r=Sr,mi=Sr,Sc=Sr,ji=Sr,A_t=[[\"sizeOfH3Index\",Sr],[\"sizeOfGeoCoord\",Sr],[\"sizeOfGeoBoundary\",Sr],[\"sizeOfGeoPolygon\",Sr],[\"sizeOfGeofence\",Sr],[\"sizeOfLinkedGeoPolygon\",Sr],[\"sizeOfCoordIJ\",Sr],[\"h3IsValid\",AS,[$r,mi]],[\"geoToH3\",$r,[Sr,Sr,Sc]],[\"h3ToGeo\",null,[$r,mi,ji]],[\"h3ToGeoBoundary\",null,[$r,mi,ji]],[\"maxKringSize\",Sr,[Sr]],[\"kRing\",null,[$r,mi,Sr,ji]],[\"kRingDistances\",null,[$r,mi,Sr,ji,ji]],[\"hexRing\",null,[$r,mi,Sr,ji]],[\"maxPolyfillSize\",Sr,[ji,Sc]],[\"polyfill\",null,[ji,Sc,ji]],[\"h3SetToLinkedGeo\",null,[ji,Sr,ji]],[\"destroyLinkedPolygon\",null,[ji]],[\"compact\",Sr,[ji,ji,Sr]],[\"uncompact\",Sr,[ji,Sr,ji,Sr,Sc]],[\"maxUncompactSize\",Sr,[ji,Sr,Sc]],[\"h3IsPentagon\",AS,[$r,mi]],[\"h3IsResClassIII\",AS,[$r,mi]],[\"h3GetBaseCell\",Sr,[$r,mi]],[\"h3GetResolution\",Sr,[$r,mi]],[\"maxFaceCount\",Sr,[$r,mi]],[\"h3GetFaces\",null,[$r,mi,ji]],[\"h3ToParent\",$r,[$r,mi,Sc]],[\"h3ToChildren\",null,[$r,mi,Sc,ji]],[\"h3ToCenterChild\",$r,[$r,mi,Sc]],[\"maxH3ToChildrenSize\",Sr,[$r,mi,Sc]],[\"h3IndexesAreNeighbors\",AS,[$r,mi,$r,mi]],[\"getH3UnidirectionalEdge\",$r,[$r,mi,$r,mi]],[\"getOriginH3IndexFromUnidirectionalEdge\",$r,[$r,mi]],[\"getDestinationH3IndexFromUnidirectionalEdge\",$r,[$r,mi]],[\"h3UnidirectionalEdgeIsValid\",AS,[$r,mi]],[\"getH3IndexesFromUnidirectionalEdge\",null,[$r,mi,ji]],[\"getH3UnidirectionalEdgesFromHexagon\",null,[$r,mi,ji]],[\"getH3UnidirectionalEdgeBoundary\",null,[$r,mi,ji]],[\"h3Distance\",Sr,[$r,mi,$r,mi]],[\"h3Line\",Sr,[$r,mi,$r,mi,ji]],[\"h3LineSize\",Sr,[$r,mi,$r,mi]],[\"experimentalH3ToLocalIj\",Sr,[$r,mi,$r,mi,ji]],[\"experimentalLocalIjToH3\",Sr,[$r,mi,ji,ji]],[\"hexAreaM2\",Sr,[Sc]],[\"hexAreaKm2\",Sr,[Sc]],[\"edgeLengthM\",Sr,[Sc]],[\"edgeLengthKm\",Sr,[Sc]],[\"pointDistM\",Sr,[ji,ji]],[\"pointDistKm\",Sr,[ji,ji]],[\"pointDistRads\",Sr,[ji,ji]],[\"cellAreaM2\",Sr,[$r,mi]],[\"cellAreaKm2\",Sr,[$r,mi]],[\"cellAreaRads2\",Sr,[$r,mi]],[\"exactEdgeLengthM\",Sr,[$r,mi]],[\"exactEdgeLengthKm\",Sr,[$r,mi]],[\"exactEdgeLengthRads\",Sr,[$r,mi]],[\"numHexagons\",Sr,[Sc]],[\"getRes0Indexes\",null,[ji]],[\"res0IndexCount\",Sr],[\"getPentagonIndexes\",null,[Sr,ji]],[\"pentagonIndexCount\",Sr]],Ta={};A_t.forEach(function(t){Ta[t[0]]=Tc.cwrap.apply(Tc,t)});var ux=16;var mS=8,bse=Ta.sizeOfH3Index(),oQ=Ta.sizeOfGeoCoord(),m_t=Ta.sizeOfGeoBoundary(),wse=Ta.sizeOfGeoPolygon(),Sse=Ta.sizeOfGeofence(),Tse=Ta.sizeOfLinkedGeoPolygon(),Mse=Ta.sizeOfCoordIJ(),nQ={m:\"m\",m2:\"m2\",km:\"km\",km2:\"km2\",rads:\"rads\",rads2:\"rads2\"};function g_t(e){if(typeof e!=\"number\"||e<0||e>15||Math.floor(e)!==e)throw new Error(\"Invalid resolution: \"+e)}var __t=/[^0-9a-fA-F]/;function hx(e){if(Array.isArray(e)&&e.length===2&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if(typeof e!=\"string\"||__t.test(e))return[0,0];var t=parseInt(e.substring(0,e.length-8),ux),r=parseInt(e.substring(e.length-8),ux);return[r,t]}function sQ(e){if(e>=0)return e.toString(ux);e=e&2147483647;var t=aQ(8,e.toString(ux)),r=(parseInt(t[0],ux)+8).toString(ux);return t=r+t.substring(1),t}function y_t(e,t){return sQ(t)+aQ(8,sQ(e))}function aQ(e,t){for(var r=e-t.length,i=\"\",s=0;s180?r[0]-=360:i<-180&&(r[0]+=360)}}function E_t(e,t,r){let[i,s]=yI(e),n=t.length;mQ(t,s);let o=t[0]===t[n-1]?n-1:n;for(let c=0;ce.hexagon},extruded:!0},Op=class e extends tn{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){e._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:t}){return this._shouldUseHighPrecision()?t.propsOrDataChanged:t.somethingChanged}updateState({props:t,changeFlags:r}){if(t.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let i=this._calculateH3DataProps();this.setState(i)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let t=-1,r=!1,i=!1,{iterable:s,objectInfo:n}=Xc(this.props.data);for(let o of s){n.index++;let c=this.props.getHexagon(o,n),f=uQ(c);if(t<0){if(t=f,!this.props.highPrecision)break}else if(t!==f){i=!0;break}if(cQ(c)){r=!0;break}}return{resolution:t,edgeLengthKM:t>=0?pQ(t,\"km\"):0,hasMultipleRes:i,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision===\"auto\"){let{resolution:t,hasPentagon:r,hasMultipleRes:i}=this.state,{viewport:s}=this.context;return!!s?.resolution||i||r||t>=0&&t<=5}return this.props.highPrecision}_updateVertices(t){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:i,centerHex:s}=this.state;if(r<0)return;let n=this.props.centerHexagon||hQ(t.latitude,t.longitude,r);if(s===n)return;if(s){let R=dQ(s,n);if(R>=0&&R*i{let N=t.projectFlat(R);return[(N[0]-w)/o[0],(N[1]-C)/o[1]]}),this.setState({centerHex:n,vertices:c})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:t,material:r,coverage:i,extruded:s,wireframe:n,stroked:o,filled:c,lineWidthUnits:f,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:C,getFillColor:R,getElevation:N,getLineColor:j,getLineWidth:Y,transitions:rt,updateTriggers:$}=this.props;return{elevationScale:t,extruded:s,coverage:i,wireframe:n,stroked:o,filled:c,lineWidthUnits:f,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:C,material:r,getElevation:N,getFillColor:R,getLineColor:j,getLineWidth:Y,transitions:rt,updateTriggers:{getFillColor:$.getFillColor,getElevation:$.getElevation,getLineColor:$.getLineColor,getLineWidth:$.getLineWidth}}}_renderPolygonLayer(){let{data:t,getHexagon:r,updateTriggers:i,coverage:s}=this.props,n=this.getSubLayerClass(\"hexagon-cell-hifi\",lf),o=this._getForwardProps();return o.updateTriggers.getPolygon=C_t(i.getHexagon,s),new n(o,this.getSubLayerProps({id:\"hexagon-cell-hifi\",updateTriggers:o.updateTriggers}),{data:t,_normalize:!1,_windingOrder:\"CCW\",positionFormat:\"XY\",getPolygon:(c,f)=>{let _=r(c,f);return I_t(AQ(_,s))}})}_renderColumnLayer(){let{data:t,getHexagon:r,updateTriggers:i}=this.props,s=this.getSubLayerClass(\"hexagon-cell\",af),n=this._getForwardProps();return n.updateTriggers.getPosition=i.getHexagon,new s(n,this.getSubLayerProps({id:\"hexagon-cell\",flatShading:!0,updateTriggers:n.updateTriggers}),{data:t,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:P_t.bind(null,r)})}};G(Op,\"defaultProps\",L_t);G(Op,\"layerName\",\"H3HexagonLayer\");G(Op,\"_checkH3Lib\",()=>{});var{data:Vse,getHexagon:jse,...k_t}=Op.defaultProps,R_t={_validate:!0},Gse={...k_t,...R_t};var gQ=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function _Q(e,t=!1,r=Float32Array){let i;if(Number.isFinite(e[0]))i=new r(e);else{i=new r(e.length*4);let s=0;for(let n=0;nc[0]),r=e.map(c=>c[1]),i=Math.min.apply(null,t),s=Math.max.apply(null,t),n=Math.min.apply(null,r),o=Math.max.apply(null,r);return[i,n,s,o]}function bQ(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}var vQ=new Float32Array(12);function zB(e,t=2){let r=0;for(let i of e)for(let s=0;s 0.) {\n maxValue = colorDomain[1];\n minValue = colorDomain[0];\n }\n vIntensityMax = intensity / maxValue;\n vIntensityMin = intensity / minValue;\n}\n`;var EQ=`#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D texture;\nuniform sampler2D colorTexture;\nuniform float aggregationMode;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture2D(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture2D(texture, vTexCoords);\n float weight = weights.r;\n\n if (aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= opacity;\n gl_FragColor =linearColor;\n}\n`;var dx=class extends Tn{getShaders(){return{vs:MQ,fs:EQ,modules:[oo]}}initializeState({gl:t}){this.getAttributeManager().add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(t)})}_getModel(t){let{vertexCount:r}=this.props;return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:r})})}draw({uniforms:t}){let{model:r}=this.state,{texture:i,maxTexture:s,colorTexture:n,intensity:o,threshold:c,aggregationMode:f,colorDomain:_}=this.props;r.setUniforms({...t,texture:i,maxTexture:s,colorTexture:n,intensity:o,threshold:c,aggregationMode:f,colorDomain:_}).draw()}};G(dx,\"layerName\",\"TriangleLayer\");var PQ=`attribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float weights;\nvarying vec4 weightsTexture;\nuniform float radiusPixels;\nuniform float textureWidth;\nuniform vec4 commonBounds;\nuniform float weightsScale;\nvoid main()\n{\n weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n}\n`;var IQ=`varying vec4 weightsTexture;\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n gl_FragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var CQ=`attribute vec4 inTexture;\nvarying vec4 outTexture;\n\nvoid main()\n{\noutTexture = inTexture;\ngl_Position = vec4(0, 0, 0, 1.);\ngl_PointSize = 1.0;\n}\n`;var LQ=`varying vec4 outTexture;\nvoid main() {\n gl_FragColor = outTexture;\n gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n`;var O_t=2,NB={mipmaps:!1,parameters:{10240:9729,10241:9729,10242:33071,10243:33071},dataFormat:6408},kQ=[0,0],B_t={SUM:0,MEAN:1},F_t={getPosition:{type:\"accessor\",value:e=>e.position},getWeight:{type:\"accessor\",value:1},intensity:{type:\"number\",min:0,value:1},radiusPixels:{type:\"number\",min:1,max:100,value:50},colorRange:gQ,threshold:{type:\"number\",min:0,max:1,value:.05},colorDomain:{type:\"array\",value:null,optional:!0},aggregation:\"SUM\",weightsTextureSize:{type:\"number\",min:128,max:2048,value:2048},debounceTimeout:{type:\"number\",min:0,max:1e3,value:500}},z_t=[Pi.BLEND_EQUATION_MINMAX,Pi.TEXTURE_FLOAT],N_t=[Pi.COLOR_ATTACHMENT_RGBA32F,Pi.FLOAT_BLEND],U_t={data:{props:[\"radiusPixels\"]}},Bp=class extends fx{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){let{gl:t}=this.context;if(!Dh(t,z_t)){this.setState({supported:!1}),nr.error(\"HeatmapLayer: \".concat(this.id,\" is not supported on this browser\"))();return}super.initializeAggregationLayer(U_t),this.setState({supported:!0,colorDomain:kQ}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState(t){this.state.supported&&(super.updateState(t),this._updateHeatmapState(t))}_updateHeatmapState(t){let{props:r,oldProps:i}=t,s=this._getChangeFlags(t);(s.dataChanged||s.viewportChanged)&&(s.boundsChanged=this._updateBounds(s.dataChanged),this._updateTextureRenderingBounds()),s.dataChanged||s.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):s.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(t),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:t.context.viewport.zoom})}renderLayers(){if(!this.state.supported)return[];let{weightsTexture:t,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:s,colorTexture:n,colorDomain:o}=this.state,{updateTriggers:c,intensity:f,threshold:_,aggregation:w}=this.props,C=this.getSubLayerClass(\"triangle\",dx);return new C(this.getSubLayerProps({id:\"triangle-layer\",updateTriggers:c}),{coordinateSystem:Yr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:s,colorTexture:n,aggregationMode:B_t[w]||0,texture:t,intensity:f,threshold:_,colorDomain:o})}finalizeState(t){super.finalizeState(t);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:s,maxWeightsTexture:n,triPositionBuffer:o,triTexCoordBuffer:c,colorTexture:f,updateTimer:_}=this.state;r?.delete(),i?.delete(),s?.delete(),n?.delete(),o?.delete(),c?.delete(),f?.delete(),_&&clearTimeout(_)}_getAttributeManager(){return new Yf(this.context.gl,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(t){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(t,{compareAll:!0,dimension:i.data}),r.viewportChanged=t.changeFlags.viewportChanged;let{zoom:s}=this.state;return(!t.context.viewport||t.context.viewport.zoom!==s)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{gl:t}=this.context,{textureSize:r,format:i,type:s}=this.state;this.setState({weightsTexture:new pi(t,{width:r,height:r,format:i,type:s,...NB}),maxWeightsTexture:new pi(t,{format:i,type:s,...NB})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:5130,accessor:\"getPosition\"},weights:{size:1,accessor:\"getWeight\"}}),this.setState({positionAttributeName:\"positions\"})}_setupTextureParams(){let{gl:t}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,fy(t,3379)),s=Dh(t,N_t),{format:n,type:o}=TQ({gl:t,floatTargetSupport:s}),c=s?1:1/255;this.setState({textureSize:i,format:n,type:o,weightsScale:c}),s||nr.warn(\"HeatmapLayer: \".concat(this.id,\" rendering to float texture not supported, fallingback to low precession format\"))()}getShaders(t){return super.getShaders(t===\"max-weights-transform\"?{vs:CQ,_fs:LQ}:{vs:PQ,_fs:IQ})}_createWeightsTransform(t={}){var r;let{gl:i}=this.context,{weightsTransform:s}=this.state,{weightsTexture:n}=this.state;(r=s)===null||r===void 0||r.delete(),s=new ec(i,{id:\"\".concat(this.id,\"-weights-transform\"),elementCount:1,_targetTexture:n,_targetTextureVarying:\"weightsTexture\",...t}),this.setState({weightsTransform:s})}_setupResources(){let{gl:t}=this.context;this._createTextures();let{textureSize:r,weightsTexture:i,maxWeightsTexture:s}=this.state,n=this.getShaders(\"weights-transform\");this._createWeightsTransform(n);let o=this.getShaders(\"max-weights-transform\"),c=new ec(t,{id:\"\".concat(this.id,\"-max-weights-transform\"),_sourceTextures:{inTexture:i},_targetTexture:s,_targetTextureVarying:\"outTexture\",...o,elementCount:r*r});this.setState({weightsTexture:i,maxWeightsTexture:s,maxWeightTransform:c,zoom:null,triPositionBuffer:new Fr(t,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new Fr(t,{byteLength:48,accessor:{size:2}})})}updateShaders(t){this._createWeightsTransform(t)}_updateMaxWeightValue(){let{maxWeightTransform:t}=this.state;t.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}_updateBounds(t=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(c=>c.map(Math.fround)),s=xQ(i),n={visibleWorldBounds:s,viewportCorners:i},o=!1;if(t||!this.state.worldBounds||!bQ(this.state.worldBounds,s)){let c=this._worldToCommonBounds(s),f=this._commonToWorldBounds(c);this.props.coordinateSystem===Yr.LNGLAT&&(f[1]=Math.max(f[1],-85.051129),f[3]=Math.min(f[3],85.051129),f[0]=Math.max(f[0],-360),f[2]=Math.min(f[2],360));let _=this._worldToCommonBounds(f);n.worldBounds=f,n.normalizedCommonBounds=_,o=!0}return this.setState(n),o}_updateTextureRenderingBounds(){let{triPositionBuffer:t,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:s}=this.state,{viewport:n}=this.context;t.subData(zB(s,3));let o=s.map(c=>SQ(n.projectPosition(c),i));r.subData(zB(o,2))}_updateColorTexture(t){let{colorRange:r}=t.props,{colorTexture:i}=this.state,s=_Q(r,!1,Uint8Array);i?i.setImageData({data:s,width:r.length}):i=new pi(this.context.gl,{data:s,width:r.length,height:1,...NB}),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:t,colorDomain:r,aggregation:i}=this.props,{weightsTransform:s,worldBounds:n,textureSize:o,weightsTexture:c,weightsScale:f}=this.state;this.state.isWeightMapDirty=!1;let _=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i===\"SUM\"){let{viewport:C}=this.context,R=C.distanceScales.metersPerUnit[2]*(_[2]-_[0])/o;this.state.colorDomain=r.map(N=>N*R*f)}else this.state.colorDomain=r||kQ;let w={radiusPixels:t,commonBounds:_,textureWidth:o,weightsScale:f};s.update({elementCount:this.getNumInstances()}),bn(this.context.gl,{clearColor:[0,0,0,0]},()=>{s.run({uniforms:w,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:this.getAttributes(),moduleSettings:this.getModuleSettings()})}),this._updateMaxWeightValue(),c.setParameters({10240:9729,10241:9729})}_debouncedUpdateWeightmap(t=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;t?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(t,r={}){let{useLayerCoordinateSystem:i=!1}=r,[s,n,o,c]=t,{viewport:f}=this.context,{textureSize:_}=this.state,{coordinateSystem:w}=this.props,C=i&&(w===Yr.LNGLAT_OFFSETS||w===Yr.METER_OFFSETS),R=C?f.projectPosition(this.props.coordinateOrigin):[0,0],N=_*O_t/f.scale,j,Y;return i&&!C?(j=this.projectPosition([s,n,0]),Y=this.projectPosition([o,c,0])):(j=f.projectPosition([s,n,0]),Y=f.projectPosition([o,c,0])),wQ([j[0]-R[0],j[1]-R[1],Y[0]-R[0],Y[1]-R[1]],N,N)}_commonToWorldBounds(t){let[r,i,s,n]=t,{viewport:o}=this.context,c=o.unprojectPosition([r,i]),f=o.unprojectPosition([s,n]);return c.slice(0,2).concat(f.slice(0,2))}};G(Bp,\"layerName\",\"HeatmapLayer\");G(Bp,\"defaultProps\",F_t);var{data:koe,getPosition:Roe,...V_t}=Bp.defaultProps,RQ={_validate:!0},j_t={...V_t,...RQ},gS=class extends tn{static defaultProps=j_t;static layerName=\"GeoArrowHeatmapLayer\";renderLayers(){let{data:t}=this.props,r=Ro(t,Ks.POINT);if(r!==null)return this._renderLayersPoint(r);let i=this.props.getPosition;if(i!==void 0&&sn.isPointVector(i))return this._renderLayersPoint(i);throw new Error(\"getPosition not GeoArrow point\")}_renderLayersPoint(t){let{data:r}=this.props;this.props._validate&&(br(sn.isPointVector(t)),Oo(this.props,r));let[i,s]=Do(this.props,[\"getPosition\"]),n=ra(r.data),o=[];for(let c=0;cr.text()),earcutWorkerPool:null}}async initEarcutPool(){if(this.state.earcutWorkerPool)return this.state.earcutWorkerPool;let t=await this.state.earcutWorkerRequest;if(!t)return null;let r=W$(()=>j$(G$.fromText(t)),8);return this.state.earcutWorkerPool=r,this.state.earcutWorkerPool}async finalizeState(t){await this.state?.earcutWorkerPool?.terminate(),console.log(\"terminated\")}async updateData(){let{data:t}=this.props,r=await this._updateEarcut(t),i=ra(t.data);this.setState({table:this.props.data,triangles:r,tableOffsets:i})}async _updateEarcut(t){let r=Ro(t,Ks.POLYGON);if(r!==null)return this._earcutPolygonVector(r);let i=Ro(t,Ks.MULTIPOLYGON);if(i!==null)return this._earcutMultiPolygonVector(i);let s=this.props.getPolygon;if(s!==void 0&&sn.isPolygonVector(s))return this._earcutPolygonVector(s);if(s!==void 0&&sn.isMultiPolygonVector(s))return this._earcutMultiPolygonVector(s);throw new Error(\"geometryColumn not Polygon or MultiPolygon\")}async _earcutPolygonVector(t){let r=await this.initEarcutPool();if(!r)return this._earcutPolygonVectorMainThread(t);let i=new Array(t.data.length);console.time(\"earcut\");for(let s=0;s{let _=await f(A6(o,c));i[s]=_})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{let w=await _(A6(c,f));i[s]=w})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutMultiPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{this.table=w2(this.model.get(t))};this.model.on(`change:${t}`,r),this.callbacks.set(`change:${t}`,r)}},BI=class extends Np{static layerType=\"arc\";greatCircle;numSegments;widthUnits;widthScale;widthMinPixels;widthMaxPixels;getSourcePosition;getTargetPosition;getSourceColor;getTargetColor;getWidth;getHeight;getTilt;constructor(t,r){super(t,r),this.initRegularAttribute(\"great_circle\",\"greatCircle\"),this.initRegularAttribute(\"num_segments\",\"numSegments\"),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initVectorizedAccessor(\"get_source_position\",\"getSourcePosition\"),this.initVectorizedAccessor(\"get_target_position\",\"getTargetPosition\"),this.initVectorizedAccessor(\"get_source_color\",\"getSourceColor\"),this.initVectorizedAccessor(\"get_target_color\",\"getTargetColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\"),this.initVectorizedAccessor(\"get_height\",\"getHeight\"),this.initVectorizedAccessor(\"get_tilt\",\"getTilt\")}layerProps(){return{data:this.table,getSourcePosition:this.getSourcePosition,getTargetPosition:this.getTargetPosition,...ce(this.greatCircle)&&{greatCircle:this.greatCircle},...ce(this.numSegments)&&{numSegments:this.numSegments},...ce(this.widthUnits)&&{widthUnits:this.widthUnits},...ce(this.widthScale)&&{widthScale:this.widthScale},...ce(this.widthMinPixels)&&{widthMinPixels:this.widthMinPixels},...ce(this.widthMaxPixels)&&{widthMaxPixels:this.widthMaxPixels},...ce(this.getSourceColor)&&{getSourceColor:this.getSourceColor},...ce(this.getTargetColor)&&{getTargetColor:this.getTargetColor},...ce(this.getWidth)&&{getWidth:this.getWidth},...ce(this.getHeight)&&{getHeight:this.getHeight},...ce(this.getTilt)&&{getTilt:this.getTilt}}}render(){return new uS({...this.baseLayerProps(),...this.layerProps()})}},FI=class extends Lg{static layerType=\"bitmap\";image;bounds;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"image\",\"image\"),this.initRegularAttribute(\"bounds\",\"bounds\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}layerProps(){return{...ce(this.image)&&{image:this.image},...ce(this.bounds)&&{bounds:this.bounds},...ce(this.desaturate)&&{desaturate:this.desaturate},...ce(this.transparentColor)&&{transparentColor:this.transparentColor},...ce(this.tintColor)&&{tintColor:this.tintColor}}}render(){return new wp({...this.baseLayerProps(),...this.layerProps(),data:void 0,pickable:!1})}},zI=class extends Lg{static layerType=\"bitmap-tile\";data;tileSize;zoomOffset;maxZoom;minZoom;extent;maxCacheSize;maxCacheByteSize;refinementStrategy;maxRequests;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"data\",\"data\"),this.initRegularAttribute(\"tile_size\",\"tileSize\"),this.initRegularAttribute(\"zoom_offset\",\"zoomOffset\"),this.initRegularAttribute(\"max_zoom\",\"maxZoom\"),this.initRegularAttribute(\"min_zoom\",\"minZoom\"),this.initRegularAttribute(\"extent\",\"extent\"),this.initRegularAttribute(\"max_cache_size\",\"maxCacheSize\"),this.initRegularAttribute(\"max_cache_byte_size\",\"maxCacheByteSize\"),this.initRegularAttribute(\"refinement_strategy\",\"refinementStrategy\"),this.initRegularAttribute(\"max_requests\",\"maxRequests\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}bitmapLayerProps(){return{...ce(this.desaturate)&&{desaturate:this.desaturate},...ce(this.transparentColor)&&{transparentColor:this.transparentColor},...ce(this.tintColor)&&{tintColor:this.tintColor}}}layerProps(){return{data:this.data,...ce(this.tileSize)&&{tileSize:this.tileSize},...ce(this.zoomOffset)&&{zoomOffset:this.zoomOffset},...ce(this.maxZoom)&&{maxZoom:this.maxZoom},...ce(this.minZoom)&&{minZoom:this.minZoom},...ce(this.extent)&&{extent:this.extent},...ce(this.maxCacheSize)&&{maxCacheSize:this.maxCacheSize},...ce(this.maxCacheByteSize)&&{maxCacheByteSize:this.maxCacheByteSize},...ce(this.refinementStrategy)&&{refinementStrategy:this.refinementStrategy},...ce(this.maxRequests)&&{maxRequests:this.maxRequests}}}render(){return new Mm({...this.baseLayerProps(),...this.layerProps(),renderSubLayers:t=>{let[r,i]=t.tile.boundingBox;return new wp(t,{...this.bitmapLayerProps(),data:void 0,image:t.data,bounds:[r[0],r[1],i[0],i[1]]})}})}},NI=class extends Np{static layerType=\"column\";diskResolution;radius;angle;vertices;offset;coverage;elevationScale;filled;stroked;extruded;wireframe;flatShading;radiusUnits;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;material;getPosition;getFillColor;getLineColor;getElevation;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"disk_resolution\",\"diskResolution\"),this.initRegularAttribute(\"radius\",\"radius\"),this.initRegularAttribute(\"angle\",\"angle\"),this.initRegularAttribute(\"vertices\",\"vertices\"),this.initRegularAttribute(\"offset\",\"offset\"),this.initRegularAttribute(\"coverage\",\"coverage\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"flat_shading\",\"flatShading\"),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"material\",\"material\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...ce(this.diskResolution)&&{diskResolution:this.diskResolution},...ce(this.radius)&&{radius:this.radius},...ce(this.angle)&&{angle:this.angle},...ce(this.vertices)&&this.vertices!==void 0&&{vertices:this.vertices},...ce(this.offset)&&{offset:this.offset},...ce(this.coverage)&&{coverage:this.coverage},...ce(this.elevationScale)&&{elevationScale:this.elevationScale},...ce(this.filled)&&{filled:this.filled},...ce(this.stroked)&&{stroked:this.stroked},...ce(this.extruded)&&{extruded:this.extruded},...ce(this.wireframe)&&{wireframe:this.wireframe},...ce(this.flatShading)&&{flatShading:this.flatShading},...ce(this.radiusUnits)&&{radiusUnits:this.radiusUnits},...ce(this.lineWidthUnits)&&{lineWidthUnits:this.lineWidthUnits},...ce(this.lineWidthScale)&&{lineWidthScale:this.lineWidthScale},...ce(this.lineWidthMinPixels)&&{lineWidthMinPixels:this.lineWidthMinPixels},...ce(this.lineWidthMaxPixels)&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...ce(this.material)&&{material:this.material},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor},...ce(this.getElevation)&&{getElevation:this.getElevation},...ce(this.getLineWidth)&&{getLineWidth:this.getLineWidth}}}render(){return new hS({...this.baseLayerProps(),...this.layerProps()})}},UI=class extends Np{static layerType=\"heatmap\";radiusPixels;colorRange;intensity;threshold;colorDomain;aggregation;weightsTextureSize;debounceTimeout;getPosition;getWeight;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_pixels\",\"radiusPixels\"),this.initRegularAttribute(\"color_range\",\"colorRange\"),this.initRegularAttribute(\"intensity\",\"intensity\"),this.initRegularAttribute(\"threshold\",\"threshold\"),this.initRegularAttribute(\"color_domain\",\"colorDomain\"),this.initRegularAttribute(\"aggregation\",\"aggregation\"),this.initRegularAttribute(\"weights_texture_size\",\"weightsTextureSize\"),this.initRegularAttribute(\"debounce_timeout\",\"debounceTimeout\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_weight\",\"getWeight\")}layerProps(){return{data:this.table,...ce(this.radiusPixels)&&{radiusPixels:this.radiusPixels},...ce(this.colorRange)&&{colorRange:this.colorRange},...ce(this.intensity)&&{intensity:this.intensity},...ce(this.threshold)&&{threshold:this.threshold},...ce(this.colorDomain)&&{colorDomain:this.colorDomain},...ce(this.aggregation)&&{aggregation:this.aggregation},...ce(this.weightsTextureSize)&&{weightsTextureSize:this.weightsTextureSize},...ce(this.debounceTimeout)&&{debounceTimeout:this.debounceTimeout},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getWeight)&&{getWeight:this.getWeight}}}render(){return new gS({...this.baseLayerProps(),...this.layerProps()})}},DS=class extends Np{static layerType=\"path\";widthUnits;widthScale;widthMinPixels;widthMaxPixels;jointRounded;capRounded;miterLimit;billboard;getColor;getWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initRegularAttribute(\"joint_rounded\",\"jointRounded\"),this.initRegularAttribute(\"cap_rounded\",\"capRounded\"),this.initRegularAttribute(\"miter_limit\",\"miterLimit\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\")}layerProps(){return{data:this.table,...ce(this.widthUnits)&&{widthUnits:this.widthUnits},...ce(this.widthScale)&&{widthScale:this.widthScale},...ce(this.widthMinPixels)&&{widthMinPixels:this.widthMinPixels},...ce(this.widthMaxPixels)&&{widthMaxPixels:this.widthMaxPixels},...ce(this.jointRounded)&&{jointRounded:this.jointRounded},...ce(this.capRounded)&&{capRounded:this.capRounded},...ce(this.miterLimit)&&{miterLimit:this.miterLimit},...ce(this.billboard)&&{billboard:this.billboard},...ce(this.getColor)&&{getColor:this.getColor},...ce(this.getWidth)&&{getWidth:this.getWidth}}}render(){return new px({...this.baseLayerProps(),...this.layerProps()})}},OS=class extends Np{static layerType=\"scatterplot\";radiusUnits;radiusScale;radiusMinPixels;radiusMaxPixels;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;stroked;filled;billboard;antialiasing;getRadius;getFillColor;getLineColor;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"radius_scale\",\"radiusScale\"),this.initRegularAttribute(\"radius_min_pixels\",\"radiusMinPixels\"),this.initRegularAttribute(\"radius_max_pixels\",\"radiusMaxPixels\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"antialiasing\",\"antialiasing\"),this.initVectorizedAccessor(\"get_radius\",\"getRadius\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...ce(this.radiusUnits)&&{radiusUnits:this.radiusUnits},...ce(this.radiusScale)&&{radiusScale:this.radiusScale},...ce(this.radiusMinPixels)&&{radiusMinPixels:this.radiusMinPixels},...ce(this.radiusMaxPixels)&&{radiusMaxPixels:this.radiusMaxPixels},...ce(this.lineWidthUnits)&&{lineWidthUnits:this.lineWidthUnits},...ce(this.lineWidthScale)&&{lineWidthScale:this.lineWidthScale},...ce(this.lineWidthMinPixels)&&{lineWidthMinPixels:this.lineWidthMinPixels},...ce(this.lineWidthMaxPixels)&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...ce(this.stroked)&&{stroked:this.stroked},...ce(this.filled)&&{filled:this.filled},...ce(this.billboard)&&{billboard:this.billboard},...ce(this.antialiasing)&&{antialiasing:this.antialiasing},...ce(this.getRadius)&&{getRadius:this.getRadius},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor},...ce(this.getLineWidth)&&{getLineWidth:this.getLineWidth}}}render(){return new kS({...this.baseLayerProps(),...this.layerProps()})}},BS=class extends Np{static layerType=\"solid-polygon\";filled;extruded;wireframe;elevationScale;getElevation;getFillColor;getLineColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\")}layerProps(){return{data:this.table,...ce(this.filled)&&{filled:this.filled},...ce(this.extruded)&&{extruded:this.extruded},...ce(this.wireframe)&&{wireframe:this.wireframe},...ce(this.elevationScale)&&{elevationScale:this.elevationScale},...ce(this.getElevation)&&{getElevation:this.getElevation},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor}}}render(){return new Tx({...this.baseLayerProps(),...this.layerProps()})}},VI=class extends Np{static layerType=\"text\";billboard;sizeScale;sizeUnits;sizeMinPixels;sizeMaxPixels;getBackgroundColor;getBorderColor;getBorderWidth;backgroundPadding;characterSet;fontFamily;fontWeight;lineHeight;outlineWidth;outlineColor;fontSettings;wordBreak;maxWidth;getText;getPosition;getColor;getSize;getAngle;getTextAnchor;getAlignmentBaseline;getPixelOffset;constructor(t,r){super(t,r),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"size_scale\",\"sizeScale\"),this.initRegularAttribute(\"size_units\",\"sizeUnits\"),this.initRegularAttribute(\"size_min_pixels\",\"sizeMinPixels\"),this.initRegularAttribute(\"size_max_pixels\",\"sizeMaxPixels\"),this.initRegularAttribute(\"background_padding\",\"backgroundPadding\"),this.initRegularAttribute(\"character_set\",\"characterSet\"),this.initRegularAttribute(\"font_family\",\"fontFamily\"),this.initRegularAttribute(\"font_weight\",\"fontWeight\"),this.initRegularAttribute(\"line_height\",\"lineHeight\"),this.initRegularAttribute(\"outline_width\",\"outlineWidth\"),this.initRegularAttribute(\"outline_color\",\"outlineColor\"),this.initRegularAttribute(\"font_settings\",\"fontSettings\"),this.initRegularAttribute(\"word_break\",\"wordBreak\"),this.initRegularAttribute(\"max_width\",\"maxWidth\"),this.initVectorizedAccessor(\"get_background_color\",\"getBackgroundColor\"),this.initVectorizedAccessor(\"get_border_color\",\"getBorderColor\"),this.initVectorizedAccessor(\"get_border_width\",\"getBorderWidth\"),this.initVectorizedAccessor(\"get_text\",\"getText\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_size\",\"getSize\"),this.initVectorizedAccessor(\"get_angle\",\"getAngle\"),this.initVectorizedAccessor(\"get_text_anchor\",\"getTextAnchor\"),this.initVectorizedAccessor(\"get_alignment_baseline\",\"getAlignmentBaseline\"),this.initVectorizedAccessor(\"get_pixel_offset\",\"getPixelOffset\")}layerProps(){return{data:this.table,getText:this.getText,...ce(this.billboard)&&{billboard:this.billboard},...ce(this.sizeScale)&&{sizeScale:this.sizeScale},...ce(this.sizeUnits)&&{sizeUnits:this.sizeUnits},...ce(this.sizeMinPixels)&&{sizeMinPixels:this.sizeMinPixels},...ce(this.sizeMaxPixels)&&{sizeMaxPixels:this.sizeMaxPixels},...ce(this.backgroundPadding)&&{backgroundPadding:this.backgroundPadding},...ce(this.characterSet)&&{characterSet:this.characterSet},...ce(this.fontFamily)&&{fontFamily:this.fontFamily},...ce(this.fontWeight)&&{fontWeight:this.fontWeight},...ce(this.lineHeight)&&{lineHeight:this.lineHeight},...ce(this.outlineWidth)&&{outlineWidth:this.outlineWidth},...ce(this.outlineColor)&&{outlineColor:this.outlineColor},...ce(this.fontSettings)&&{fontSettings:this.fontSettings},...ce(this.wordBreak)&&{wordBreak:this.wordBreak},...ce(this.maxWidth)&&{maxWidth:this.maxWidth},...ce(this.getBackgroundColor)&&{getBackgroundColor:this.getBackgroundColor},...ce(this.getBorderColor)&&{getBorderColor:this.getBorderColor},...ce(this.getBorderWidth)&&{getBorderWidth:this.getBorderWidth},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getColor)&&{getColor:this.getColor},...ce(this.getSize)&&{getSize:this.getSize},...ce(this.getAngle)&&{getAngle:this.getAngle},...ce(this.getTextAnchor)&&{getTextAnchor:this.getTextAnchor},...ce(this.getAlignmentBaseline)&&{getAlignmentBaseline:this.getAlignmentBaseline},...ce(this.getPixelOffset)&&{getPixelOffset:this.getPixelOffset}}}render(){return new RS({...this.baseLayerProps(),...this.layerProps()})}};async function _6(e,t){let r=e.get(\"_layer_type\"),i;switch(r){case BI.layerType:i=new BI(e,t);break;case FI.layerType:i=new FI(e,t);break;case zI.layerType:i=new zI(e,t);break;case NI.layerType:i=new NI(e,t);break;case UI.layerType:i=new UI(e,t);break;case DS.layerType:i=new DS(e,t);break;case OS.layerType:i=new OS(e,t);break;case BS.layerType:i=new BS(e,t);break;case VI.layerType:i=new VI(e,t);break;default:throw new Error(`no layer supported for ${r}`)}return await i.loadSubModels(),i}var jI=Symbol.for(\"rowIndex\");function Fxt(e){return`\n \n ${Object.keys(e).map(t=>{let r=e[t];return`\n \n \n `}).join(\"\")}\n \n
${t}${r}
`}function q$({object:e}){if(e){if(e[jI]===null||e[jI]===void 0||e[jI]&&e[jI]<0)return null;let t=e.toJSON();return!t||(delete t.geometry,Object.keys(t).length===0)?null:{className:\"lonboard-tooltip\",html:Fxt(t),style:{backgroundColor:\"#fff\",boxShadow:\"0 0 15px rgba(0, 0, 0, 0.1)\",color:\"#000\",padding:\"6px\"}}}return null}var GI,zxt=new Uint8Array(16);function y6(){if(!GI&&(GI=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!GI))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return GI(zxt)}var Ma=[];for(let e=0;e<256;++e)Ma.push((e+256).toString(16).slice(1));function Z$(e,t=0){return Ma[e[t+0]]+Ma[e[t+1]]+Ma[e[t+2]]+Ma[e[t+3]]+\"-\"+Ma[e[t+4]]+Ma[e[t+5]]+\"-\"+Ma[e[t+6]]+Ma[e[t+7]]+\"-\"+Ma[e[t+8]]+Ma[e[t+9]]+\"-\"+Ma[e[t+10]]+Ma[e[t+11]]+Ma[e[t+12]]+Ma[e[t+13]]+Ma[e[t+14]]+Ma[e[t+15]]}var Nxt=typeof crypto<\"u\"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),v6={randomUUID:Nxt};function Uxt(e,t,r){if(v6.randomUUID&&!t&&!e)return v6.randomUUID();e=e||{};let i=e.random||(e.rng||y6)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let s=0;s<16;++s)t[r+s]=i[s];return t}return Z$(i)}var x6=Uxt;await XW();var Vxt={latitude:10,longitude:0,zoom:.5,bearing:0,pitch:0},jxt=\"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";async function Gxt(e,t,r,i){let s={},n=()=>i(new Date);for(let o=0;o{(async()=>{let j=await d3(f.widget_manager,_),Y=await Gxt(j,_,o,C);c(Y)})().catch(console.error)},[_]);let R=[];for(let N of Object.values(o))R.push(N.render());return(0,$g.useEffect)(()=>{if(r)return;let j=document.getElementById(`map-${n}`)?.parentElement;if(j){let Y=window.getComputedStyle(j);(!Y.height||Y.height===\"0px\")&&(j.style.height=\"100%\",j.style.minHeight=\"500px\")}},[]),WI.createElement(\"div\",{id:`map-${n}`,style:{height:r||\"100%\"}},WI.createElement(SD,{initialViewState:[\"longitude\",\"latitude\",\"zoom\"].every(N=>Object.keys(e).includes(N))?e:Vxt,controller:!0,layers:R,getTooltip:i&&q$,pickingRadius:s},WI.createElement(j8,{mapStyle:t||jxt})))}var Hxt={render:E8(Wxt)},Bce=Hxt;export{Bce as default};\n/*! Bundled license information:\n\nreact/cjs/react.production.min.js:\n (**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.min.js:\n (**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.min.js:\n (**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nhammerjs/hammer.js:\n (*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license *)\n*/\n", + "_height": null, + "_initial_view_state": { + "latitude": 30.27504616188673, + "longitude": 21.17458729027878, + "zoom": 1 + }, + "_model_module": "anywidget", + "_model_module_version": "0.9.0", + "_model_name": "AnyModel", + "_view_module": "anywidget", + "_view_module_version": "0.9.0", + "_view_name": "AnyView", + "basemap_style": "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json", + "layers": [ + "IPY_MODEL_fdfd2c5dc30f43a3b51962546e8e0850" + ], + "layout": "IPY_MODEL_d51b07e818d04c83a8714c0d1e798549", + "picking_radius": 5, + "show_tooltip": true + } + }, + "11bd92458c3346a08ae34cbfd23b514b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "DirectionalLinkModel", + "state": { + "source": [ + "IPY_MODEL_b067bf2c7a2d44e8a2c633a43fd91f50", + "value" + ], + "target": [ + "IPY_MODEL_fdfd2c5dc30f43a3b51962546e8e0850", + "filter_range" + ] + } + }, + "202d717a8515400187c9c310b7bd7652": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "24158c5e180e45e7aa19315d9ca327da": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "248d002a8e4a4d30b86212e228a00f85": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "3842b5bedc9a4a2b88c65eaf1dcb052f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "3c79b4994cb64414af30ca882ff5a7e2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Latency: ", + "layout": "IPY_MODEL_6f870f37842747f0a3cfbfe0c1e655f1", + "max": 500, + "style": "IPY_MODEL_076e4a659ccf4a03b7793a50b9217d51", + "value": [ + 0, + 100 + ] + } + }, + "45ea03cf622d40ba9f8c2ea8dd56baa2": { + "model_module": "anywidget", + "model_module_version": "0.9.0", + "model_name": "AnyModel", + "state": { + "_anywidget_id": "lonboard._map.Map", + "_css": ".lonboard-tooltip{font-family:var(--jp-ui-font-family);font-size:var(--jp-ui-font-size1)}.lonboard-tooltip table{border-collapse:collapse}.lonboard-tooltip table tr:nth-child(odd){background-color:#fff}.lonboard-tooltip table tr:nth-child(2n){background-color:#f1f1f1}.lonboard-tooltip td{border:1px solid rgb(204,204,204);padding:5px}.lonboard-tooltip td:first-child{font-weight:450}\n", + "_esm": "var DK=Object.create;var IC=Object.defineProperty;var OK=Object.getOwnPropertyDescriptor;var BK=Object.getOwnPropertyNames;var FK=Object.getPrototypeOf,zK=Object.prototype.hasOwnProperty;var Br=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),dA=(e,t)=>{for(var r in t)IC(e,r,{get:t[r],enumerable:!0})},NK=(e,t,r,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let s of BK(t))!zK.call(e,s)&&s!==r&&IC(e,s,{get:()=>t[s],enumerable:!(i=OK(t,s))||i.enumerable});return e};var ki=(e,t,r)=>(r=e!=null?DK(FK(e)):{},NK(t||!e||!e.__esModule?IC(r,\"default\",{value:e,enumerable:!0}):r,e));var e5=Br(Ri=>{\"use strict\";var Zx=Symbol.for(\"react.element\"),UK=Symbol.for(\"react.portal\"),VK=Symbol.for(\"react.fragment\"),jK=Symbol.for(\"react.strict_mode\"),GK=Symbol.for(\"react.profiler\"),WK=Symbol.for(\"react.provider\"),HK=Symbol.for(\"react.context\"),qK=Symbol.for(\"react.forward_ref\"),ZK=Symbol.for(\"react.suspense\"),YK=Symbol.for(\"react.memo\"),QK=Symbol.for(\"react.lazy\"),HF=Symbol.iterator;function $K(e){return e===null||typeof e!=\"object\"?null:(e=HF&&e[HF]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var YF={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},QF=Object.assign,$F={};function b_(e,t,r){this.props=e,this.context=t,this.refs=$F,this.updater=r||YF}b_.prototype.isReactComponent={};b_.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};b_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function XF(){}XF.prototype=b_.prototype;function LC(e,t,r){this.props=e,this.context=t,this.refs=$F,this.updater=r||YF}var kC=LC.prototype=new XF;kC.constructor=LC;QF(kC,b_.prototype);kC.isPureReactComponent=!0;var qF=Array.isArray,KF=Object.prototype.hasOwnProperty,RC={current:null},JF={key:!0,ref:!0,__self:!0,__source:!0};function t5(e,t,r){var i,s={},n=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(n=\"\"+t.key),t)KF.call(t,i)&&!JF.hasOwnProperty(i)&&(s[i]=t[i]);var c=arguments.length-2;if(c===1)s.children=r;else if(1{\"use strict\";r5.exports=e5()});var f5=Br(Bn=>{\"use strict\";function zC(e,t){var r=e.length;e.push(t);t:for(;0>>1,s=e[i];if(0>>1;iiT(c,r))fiT(_,c)?(e[i]=_,e[f]=r,i=f):(e[i]=c,e[o]=r,i=o);else if(fiT(_,r))e[i]=_,e[f]=r,i=f;else break t}}return t}function iT(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance==\"object\"&&typeof performance.now==\"function\"?(i5=performance,Bn.unstable_now=function(){return i5.now()}):(OC=Date,n5=OC.now(),Bn.unstable_now=function(){return OC.now()-n5});var i5,OC,n5,Ef=[],pA=[],eJ=1,vu=null,Ha=3,oT=!1,d0=!1,Qx=!1,a5=typeof setTimeout==\"function\"?setTimeout:null,l5=typeof clearTimeout==\"function\"?clearTimeout:null,s5=typeof setImmediate<\"u\"?setImmediate:null;typeof navigator<\"u\"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function NC(e){for(var t=wh(pA);t!==null;){if(t.callback===null)sT(pA);else if(t.startTime<=e)sT(pA),t.sortIndex=t.expirationTime,zC(Ef,t);else break;t=wh(pA)}}function UC(e){if(Qx=!1,NC(e),!d0)if(wh(Ef)!==null)d0=!0,jC(VC);else{var t=wh(pA);t!==null&&GC(UC,t.startTime-e)}}function VC(e,t){d0=!1,Qx&&(Qx=!1,l5($x),$x=-1),oT=!0;var r=Ha;try{for(NC(t),vu=wh(Ef);vu!==null&&(!(vu.expirationTime>t)||e&&!h5());){var i=vu.callback;if(typeof i==\"function\"){vu.callback=null,Ha=vu.priorityLevel;var s=i(vu.expirationTime<=t);t=Bn.unstable_now(),typeof s==\"function\"?vu.callback=s:vu===wh(Ef)&&sT(Ef),NC(t)}else sT(Ef);vu=wh(Ef)}if(vu!==null)var n=!0;else{var o=wh(pA);o!==null&&GC(UC,o.startTime-t),n=!1}return n}finally{vu=null,Ha=r,oT=!1}}var aT=!1,nT=null,$x=-1,c5=5,u5=-1;function h5(){return!(Bn.unstable_now()-u5e||125i?(e.sortIndex=r,zC(pA,e),wh(Ef)===null&&e===wh(pA)&&(Qx?(l5($x),$x=-1):Qx=!0,GC(UC,r-i))):(e.sortIndex=s,zC(Ef,e),d0||oT||(d0=!0,jC(VC))),e};Bn.unstable_shouldYield=h5;Bn.unstable_wrapCallback=function(e){var t=Ha;return function(){var r=Ha;Ha=t;try{return e.apply(this,arguments)}finally{Ha=r}}}});var p5=Br(($xt,d5)=>{\"use strict\";d5.exports=f5()});var v8=Br(Wc=>{\"use strict\";var xz=Ji(),jc=p5();function Ee(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=1;r\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),fL=Object.prototype.hasOwnProperty,rJ=/^[: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]*$/,A5={},m5={};function iJ(e){return fL.call(m5,e)?!0:fL.call(A5,e)?!1:rJ.test(e)?m5[e]=!0:(A5[e]=!0,!1)}function nJ(e,t,r,i){if(r!==null&&r.type===0)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return i?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!==\"data-\"&&e!==\"aria-\");default:return!1}}function sJ(e,t,r,i){if(t===null||typeof t>\"u\"||nJ(e,t,r,i))return!0;if(i)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function xl(e,t,r,i,s,n,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=s,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=n,this.removeEmptyString=o}var ga={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){ga[e]=new xl(e,0,!1,e,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];ga[t]=new xl(t,1,!1,e[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ga[e]=new xl(e,2,!1,e.toLowerCase(),null,!1,!1)});[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ga[e]=new xl(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){ga[e]=new xl(e,3,!1,e.toLowerCase(),null,!1,!1)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ga[e]=new xl(e,3,!0,e,null,!1,!1)});[\"capture\",\"download\"].forEach(function(e){ga[e]=new xl(e,4,!1,e,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ga[e]=new xl(e,6,!1,e,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(e){ga[e]=new xl(e,5,!1,e.toLowerCase(),null,!1,!1)});var nk=/[\\-:]([a-z])/g;function sk(e){return e[1].toUpperCase()}\"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(nk,sk);ga[t]=new xl(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(nk,sk);ga[t]=new xl(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(nk,sk);ga[t]=new xl(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ga[e]=new xl(e,1,!1,e.toLowerCase(),null,!1,!1)});ga.xlinkHref=new xl(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){ga[e]=new xl(e,1,!1,e.toLowerCase(),null,!0,!0)});function ok(e,t,r,i){var s=ga.hasOwnProperty(t)?ga[t]:null;(s!==null?s.type!==0:i||!(2c||s[o]!==n[c]){var f=`\n`+s[o].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),f}while(1<=o&&0<=c);break}}}finally{HC=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:\"\")?s1(e):\"\"}function oJ(e){switch(e.tag){case 5:return s1(e.type);case 16:return s1(\"Lazy\");case 13:return s1(\"Suspense\");case 19:return s1(\"SuspenseList\");case 0:case 2:case 15:return e=qC(e.type,!1),e;case 11:return e=qC(e.type.render,!1),e;case 1:return e=qC(e.type,!0),e;default:return\"\"}}function mL(e){if(e==null)return null;if(typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case M_:return\"Fragment\";case T_:return\"Portal\";case dL:return\"Profiler\";case ak:return\"StrictMode\";case pL:return\"Suspense\";case AL:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case Sz:return(e.displayName||\"Context\")+\".Consumer\";case wz:return(e._context.displayName||\"Context\")+\".Provider\";case lk:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||\"\",e=e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case ck:return t=e.displayName||null,t!==null?t:mL(e.type)||\"Memo\";case mA:t=e._payload,e=e._init;try{return mL(e(t))}catch{}}return null}function aJ(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=t.render,e=e.displayName||e.name||\"\",t.displayName||(e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return mL(t);case 8:return t===ak?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==\"function\")return t.displayName||t.name||null;if(typeof t==\"string\")return t}return null}function CA(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function Mz(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function lJ(e){var t=Mz(e)?\"checked\":\"value\",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof r<\"u\"&&typeof r.get==\"function\"&&typeof r.set==\"function\"){var s=r.get,n=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){i=\"\"+o,n.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return i},setValue:function(o){i=\"\"+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function cT(e){e._valueTracker||(e._valueTracker=lJ(e))}function Ez(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),i=\"\";return e&&(i=Mz(e)?e.checked?\"true\":\"false\":e.value),e=i,e!==r?(t.setValue(e),!0):!1}function FT(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}function gL(e,t){var r=t.checked;return ps({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function _5(e,t){var r=t.defaultValue==null?\"\":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;r=CA(t.value!=null?t.value:r),e._wrapperState={initialChecked:i,initialValue:r,controlled:t.type===\"checkbox\"||t.type===\"radio\"?t.checked!=null:t.value!=null}}function Pz(e,t){t=t.checked,t!=null&&ok(e,\"checked\",t,!1)}function _L(e,t){Pz(e,t);var r=CA(t.value),i=t.type;if(r!=null)i===\"number\"?(r===0&&e.value===\"\"||e.value!=r)&&(e.value=\"\"+r):e.value!==\"\"+r&&(e.value=\"\"+r);else if(i===\"submit\"||i===\"reset\"){e.removeAttribute(\"value\");return}t.hasOwnProperty(\"value\")?yL(e,t.type,r):t.hasOwnProperty(\"defaultValue\")&&yL(e,t.type,CA(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function y5(e,t,r){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var i=t.type;if(!(i!==\"submit\"&&i!==\"reset\"||t.value!==void 0&&t.value!==null))return;t=\"\"+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==\"\"&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,r!==\"\"&&(e.name=r)}function yL(e,t,r){(t!==\"number\"||FT(e.ownerDocument)!==e)&&(r==null?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+r&&(e.defaultValue=\"\"+r))}var o1=Array.isArray;function F_(e,t,r,i){if(e=e.options,t){t={};for(var s=0;s\"+t.valueOf().toString()+\"\",t=uT.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function y1(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var c1={animationIterationCount:!0,aspectRatio:!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},cJ=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(c1).forEach(function(e){cJ.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),c1[t]=c1[e]})});function kz(e,t,r){return t==null||typeof t==\"boolean\"||t===\"\"?\"\":r||typeof t!=\"number\"||t===0||c1.hasOwnProperty(e)&&c1[e]?(\"\"+t).trim():t+\"px\"}function Rz(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var i=r.indexOf(\"--\")===0,s=kz(r,t[r],i);r===\"float\"&&(r=\"cssFloat\"),i?e.setProperty(r,s):e[r]=s}}var uJ=ps({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 bL(e,t){if(t){if(uJ[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ee(60));if(typeof t.dangerouslySetInnerHTML!=\"object\"||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(Ee(61))}if(t.style!=null&&typeof t.style!=\"object\")throw Error(Ee(62))}}function wL(e,t){if(e.indexOf(\"-\")===-1)return typeof t.is==\"string\";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}}var SL=null;function uk(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var TL=null,z_=null,N_=null;function b5(e){if(e=F1(e)){if(typeof TL!=\"function\")throw Error(Ee(280));var t=e.stateNode;t&&(t=hM(t),TL(e.stateNode,e.type,t))}}function Dz(e){z_?N_?N_.push(e):N_=[e]:z_=e}function Oz(){if(z_){var e=z_,t=N_;if(N_=z_=null,b5(e),t)for(e=0;e>>=0,e===0?32:31-(xJ(e)/bJ|0)|0}var hT=64,fT=4194304;function a1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function VT(e,t){var r=e.pendingLanes;if(r===0)return 0;var i=0,s=e.suspendedLanes,n=e.pingedLanes,o=r&268435455;if(o!==0){var c=o&~s;c!==0?i=a1(c):(n&=o,n!==0&&(i=a1(n)))}else o=r&~s,o!==0?i=a1(o):n!==0&&(i=a1(n));if(i===0)return 0;if(t!==0&&t!==i&&!(t&s)&&(s=i&-i,n=t&-t,s>=n||s===16&&(n&4194240)!==0))return t;if(i&4&&(i|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0r;r++)t.push(e);return t}function O1(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ph(t),e[t]=r}function MJ(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=h1),L5=\" \",k5=!1;function eN(e,t){switch(e){case\"keyup\":return ttt.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function rN(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var E_=!1;function rtt(e,t){switch(e){case\"compositionend\":return rN(t);case\"keypress\":return t.which!==32?null:(k5=!0,L5);case\"textInput\":return e=t.data,e===L5&&k5?null:e;default:return null}}function itt(e,t){if(E_)return e===\"compositionend\"||!_k&&eN(e,t)?(e=Jz(),PT=Ak=vA=null,E_=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=i}t:{for(;r;){if(r.nextSibling){r=r.nextSibling;break t}r=r.parentNode}r=void 0}r=O5(r)}}function oN(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?oN(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function aN(){for(var e=window,t=FT();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href==\"string\"}catch{r=!1}if(r)e=t.contentWindow;else break;t=FT(e.document)}return t}function yk(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}function ftt(e){var t=aN(),r=e.focusedElem,i=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&oN(r.ownerDocument.documentElement,r)){if(i!==null&&yk(r)){if(t=i.start,e=i.end,e===void 0&&(e=t),\"selectionStart\"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=r.textContent.length,n=Math.min(i.start,s);i=i.end===void 0?n:Math.min(i.end,s),!e.extend&&n>i&&(s=i,i=n,n=s),s=B5(r,n);var o=B5(r,i);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),n>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus==\"function\"&&r.focus(),r=0;r=document.documentMode,P_=null,LL=null,d1=null,kL=!1;function F5(e,t,r){var i=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;kL||P_==null||P_!==FT(i)||(i=P_,\"selectionStart\"in i&&yk(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),d1&&T1(d1,i)||(d1=i,i=WT(LL,\"onSelect\"),0L_||(e.current=zL[L_],zL[L_]=null,L_--)}function Fn(e,t){L_++,zL[L_]=e.current,e.current=t}var LA={},Qa=RA(LA),Yl=RA(!1),x0=LA;function W_(e,t){var r=e.type.contextTypes;if(!r)return LA;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var s={},n;for(n in r)s[n]=t[n];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Ql(e){return e=e.childContextTypes,e!=null}function qT(){Hn(Yl),Hn(Qa)}function q5(e,t,r){if(Qa.current!==LA)throw Error(Ee(168));Fn(Qa,t),Fn(Yl,r)}function mN(e,t,r){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=\"function\")return r;i=i.getChildContext();for(var s in i)if(!(s in t))throw Error(Ee(108,aJ(e)||\"Unknown\",s));return ps({},r,i)}function ZT(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||LA,x0=Qa.current,Fn(Qa,e),Fn(Yl,Yl.current),!0}function Z5(e,t,r){var i=e.stateNode;if(!i)throw Error(Ee(169));r?(e=mN(e,t,x0),i.__reactInternalMemoizedMergedChildContext=e,Hn(Yl),Hn(Qa),Fn(Qa,e)):Hn(Yl),Fn(Yl,r)}var jd=null,fM=!1,iL=!1;function gN(e){jd===null?jd=[e]:jd.push(e)}function btt(e){fM=!0,gN(e)}function DA(){if(!iL&&jd!==null){iL=!0;var e=0,t=mn;try{var r=jd;for(mn=1;e>=o,s-=o,Gd=1<<32-Ph(t)+s|r<Zt?(le=Kt,Kt=null):le=Kt.sibling;var ue=R($,Kt,tt[Zt],ut);if(ue===null){Kt===null&&(Kt=le);break}e&&Kt&&ue.alternate===null&&t($,Kt),K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue,Kt=le}if(Zt===tt.length)return r($,Kt),es&&p0($,Zt),Pt;if(Kt===null){for(;ZtZt?(le=Kt,Kt=null):le=Kt.sibling;var Ge=R($,Kt,ue.value,ut);if(Ge===null){Kt===null&&(Kt=le);break}e&&Kt&&Ge.alternate===null&&t($,Kt),K=n(Ge,K,Zt),Ot===null?Pt=Ge:Ot.sibling=Ge,Ot=Ge,Kt=le}if(ue.done)return r($,Kt),es&&p0($,Zt),Pt;if(Kt===null){for(;!ue.done;Zt++,ue=tt.next())ue=C($,ue.value,ut),ue!==null&&(K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue);return es&&p0($,Zt),Pt}for(Kt=i($,Kt);!ue.done;Zt++,ue=tt.next())ue=N(Kt,$,Zt,ue.value,ut),ue!==null&&(e&&ue.alternate!==null&&Kt.delete(ue.key===null?Zt:ue.key),K=n(ue,K,Zt),Ot===null?Pt=ue:Ot.sibling=ue,Ot=ue);return e&&Kt.forEach(function(tr){return t($,tr)}),es&&p0($,Zt),Pt}function rt($,K,tt,ut){if(typeof tt==\"object\"&&tt!==null&&tt.type===M_&&tt.key===null&&(tt=tt.props.children),typeof tt==\"object\"&&tt!==null){switch(tt.$$typeof){case lT:t:{for(var Pt=tt.key,Ot=K;Ot!==null;){if(Ot.key===Pt){if(Pt=tt.type,Pt===M_){if(Ot.tag===7){r($,Ot.sibling),K=s(Ot,tt.props.children),K.return=$,$=K;break t}}else if(Ot.elementType===Pt||typeof Pt==\"object\"&&Pt!==null&&Pt.$$typeof===mA&&tz(Pt)===Ot.type){r($,Ot.sibling),K=s(Ot,tt.props),K.ref=e1($,Ot,tt),K.return=$,$=K;break t}r($,Ot);break}else t($,Ot);Ot=Ot.sibling}tt.type===M_?(K=v0(tt.props.children,$.mode,ut,tt.key),K.return=$,$=K):(ut=BT(tt.type,tt.key,tt.props,null,$.mode,ut),ut.ref=e1($,K,tt),ut.return=$,$=ut)}return o($);case T_:t:{for(Ot=tt.key;K!==null;){if(K.key===Ot)if(K.tag===4&&K.stateNode.containerInfo===tt.containerInfo&&K.stateNode.implementation===tt.implementation){r($,K.sibling),K=s(K,tt.children||[]),K.return=$,$=K;break t}else{r($,K);break}else t($,K);K=K.sibling}K=hL(tt,$.mode,ut),K.return=$,$=K}return o($);case mA:return Ot=tt._init,rt($,K,Ot(tt._payload),ut)}if(o1(tt))return j($,K,tt,ut);if(Xx(tt))return Y($,K,tt,ut);wT($,tt)}return typeof tt==\"string\"&&tt!==\"\"||typeof tt==\"number\"?(tt=\"\"+tt,K!==null&&K.tag===6?(r($,K.sibling),K=s(K,tt),K.return=$,$=K):(r($,K),K=uL(tt,$.mode,ut),K.return=$,$=K),o($)):r($,K)}return rt}var q_=TN(!0),MN=TN(!1),z1={},kf=RA(z1),I1=RA(z1),C1=RA(z1);function _0(e){if(e===z1)throw Error(Ee(174));return e}function Pk(e,t){switch(Fn(C1,t),Fn(I1,e),Fn(kf,z1),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:xL(null,\"\");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=xL(t,e)}Hn(kf),Fn(kf,t)}function Z_(){Hn(kf),Hn(I1),Hn(C1)}function EN(e){_0(C1.current);var t=_0(kf.current),r=xL(t,e.type);t!==r&&(Fn(I1,e),Fn(kf,r))}function Ik(e){I1.current===e&&(Hn(kf),Hn(I1))}var fs=RA(0);function JT(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data===\"$?\"||r.data===\"$!\"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var nL=[];function Ck(){for(var e=0;er?r:4,e(!0);var i=sL.transition;sL.transition={};try{e(!1),t()}finally{mn=r,sL.transition=i}}function GN(){return Mu().memoizedState}function Mtt(e,t,r){var i=PA(e);if(r={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null},WN(e))HN(t,r);else if(r=xN(e,t,r,i),r!==null){var s=vl();Ih(r,e,i,s),qN(r,t,i)}}function Ett(e,t,r){var i=PA(e),s={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null};if(WN(e))HN(t,s);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var o=t.lastRenderedState,c=n(o,r);if(s.hasEagerState=!0,s.eagerState=c,Ch(c,o)){var f=t.interleaved;f===null?(s.next=s,Mk(t)):(s.next=f.next,f.next=s),t.interleaved=s;return}}catch{}finally{}r=xN(e,t,s,i),r!==null&&(s=vl(),Ih(r,e,i,s),qN(r,t,i))}}function WN(e){var t=e.alternate;return e===ds||t!==null&&t===ds}function HN(e,t){p1=tM=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function qN(e,t,r){if(r&4194240){var i=t.lanes;i&=e.pendingLanes,r|=i,t.lanes=r,fk(e,r)}}var eM={readContext:Tu,useCallback:qa,useContext:qa,useEffect:qa,useImperativeHandle:qa,useInsertionEffect:qa,useLayoutEffect:qa,useMemo:qa,useReducer:qa,useRef:qa,useState:qa,useDebugValue:qa,useDeferredValue:qa,useTransition:qa,useMutableSource:qa,useSyncExternalStore:qa,useId:qa,unstable_isNewReconciler:!1},Ptt={readContext:Tu,useCallback:function(e,t){return If().memoizedState=[e,t===void 0?null:t],e},useContext:Tu,useEffect:rz,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,kT(4194308,4,zN.bind(null,t,e),r)},useLayoutEffect:function(e,t){return kT(4194308,4,e,t)},useInsertionEffect:function(e,t){return kT(4,2,e,t)},useMemo:function(e,t){var r=If();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var i=If();return t=r!==void 0?r(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=Mtt.bind(null,ds,e),[i.memoizedState,e]},useRef:function(e){var t=If();return e={current:e},t.memoizedState=e},useState:ez,useDebugValue:Ok,useDeferredValue:function(e){return If().memoizedState=e},useTransition:function(){var e=ez(!1),t=e[0];return e=Ttt.bind(null,e[1]),If().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var i=ds,s=If();if(es){if(r===void 0)throw Error(Ee(407));r=r()}else{if(r=t(),Xo===null)throw Error(Ee(349));w0&30||CN(i,t,r)}s.memoizedState=r;var n={value:r,getSnapshot:t};return s.queue=n,rz(kN.bind(null,i,n,e),[e]),i.flags|=2048,R1(9,LN.bind(null,i,n,r,t),void 0,null),r},useId:function(){var e=If(),t=Xo.identifierPrefix;if(es){var r=Wd,i=Gd;r=(i&~(1<<32-Ph(i)-1)).toString(32)+r,t=\":\"+t+\"R\"+r,r=L1++,0<\\/script>\",e=e.removeChild(e.firstChild)):typeof i.is==\"string\"?e=o.createElement(r,{is:i.is}):(e=o.createElement(r),r===\"select\"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,r),e[Cf]=t,e[P1]=i,e8(e,t,!1,!1),t.stateNode=e;t:{switch(o=wL(r,i),r){case\"dialog\":Wn(\"cancel\",e),Wn(\"close\",e),s=i;break;case\"iframe\":case\"object\":case\"embed\":Wn(\"load\",e),s=i;break;case\"video\":case\"audio\":for(s=0;sQ_&&(t.flags|=128,i=!0,r1(n,!1),t.lanes=4194304)}else{if(!i)if(e=JT(o),e!==null){if(t.flags|=128,i=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),r1(n,!0),n.tail===null&&n.tailMode===\"hidden\"&&!o.alternate&&!es)return Za(t),null}else 2*qs()-n.renderingStartTime>Q_&&r!==1073741824&&(t.flags|=128,i=!0,r1(n,!1),t.lanes=4194304);n.isBackwards?(o.sibling=t.child,t.child=o):(r=n.last,r!==null?r.sibling=o:t.child=o,n.last=o)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=qs(),t.sibling=null,r=fs.current,Fn(fs,i?r&1|2:r&1),t):(Za(t),null);case 22:case 23:return Vk(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Nc&1073741824&&(Za(t),t.subtreeFlags&6&&(t.flags|=8192)):Za(t),null;case 24:return null;case 25:return null}throw Error(Ee(156,t.tag))}function Btt(e,t){switch(xk(t),t.tag){case 1:return Ql(t.type)&&qT(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Z_(),Hn(Yl),Hn(Qa),Ck(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ik(t),null;case 13:if(Hn(fs),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ee(340));H_()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Hn(fs),null;case 4:return Z_(),null;case 10:return Tk(t.type._context),null;case 22:case 23:return Vk(),null;case 24:return null;default:return null}}var TT=!1,Ya=!1,Ftt=typeof WeakSet==\"function\"?WeakSet:Set,cr=null;function O_(e,t){var r=e.ref;if(r!==null)if(typeof r==\"function\")try{r(null)}catch(i){Is(e,t,i)}else r.current=null}function $L(e,t,r){try{r()}catch(i){Is(e,t,i)}}var hz=!1;function ztt(e,t){if(RL=jT,e=aN(),yk(e)){if(\"selectionStart\"in e)var r={start:e.selectionStart,end:e.selectionEnd};else t:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var s=i.anchorOffset,n=i.focusNode;i=i.focusOffset;try{r.nodeType,n.nodeType}catch{r=null;break t}var o=0,c=-1,f=-1,_=0,w=0,C=e,R=null;e:for(;;){for(var N;C!==r||s!==0&&C.nodeType!==3||(c=o+s),C!==n||i!==0&&C.nodeType!==3||(f=o+i),C.nodeType===3&&(o+=C.nodeValue.length),(N=C.firstChild)!==null;)R=C,C=N;for(;;){if(C===e)break e;if(R===r&&++_===s&&(c=o),R===n&&++w===i&&(f=o),(N=C.nextSibling)!==null)break;C=R,R=C.parentNode}C=N}r=c===-1||f===-1?null:{start:c,end:f}}else r=null}r=r||{start:0,end:0}}else r=null;for(DL={focusedElem:e,selectionRange:r},jT=!1,cr=t;cr!==null;)if(t=cr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,cr=e;else for(;cr!==null;){t=cr;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var Y=j.memoizedProps,rt=j.memoizedState,$=t.stateNode,K=$.getSnapshotBeforeUpdate(t.elementType===t.type?Y:Th(t.type,Y),rt);$.__reactInternalSnapshotBeforeUpdate=K}break;case 3:var tt=t.stateNode.containerInfo;tt.nodeType===1?tt.textContent=\"\":tt.nodeType===9&&tt.documentElement&&tt.removeChild(tt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ee(163))}}catch(ut){Is(t,t.return,ut)}if(e=t.sibling,e!==null){e.return=t.return,cr=e;break}cr=t.return}return j=hz,hz=!1,j}function A1(e,t,r){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var s=i=i.next;do{if((s.tag&e)===e){var n=s.destroy;s.destroy=void 0,n!==void 0&&$L(t,r,n)}s=s.next}while(s!==i)}}function AM(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var i=r.create;r.destroy=i()}r=r.next}while(r!==t)}}function XL(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t==\"function\"?t(e):t.current=e}}function n8(e){var t=e.alternate;t!==null&&(e.alternate=null,n8(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Cf],delete t[P1],delete t[FL],delete t[vtt],delete t[xtt])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function s8(e){return e.tag===5||e.tag===3||e.tag===4}function fz(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||s8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function KL(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=HT));else if(i!==4&&(e=e.child,e!==null))for(KL(e,t,r),e=e.sibling;e!==null;)KL(e,t,r),e=e.sibling}function JL(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(JL(e,t,r),e=e.sibling;e!==null;)JL(e,t,r),e=e.sibling}var Aa=null,Mh=!1;function AA(e,t,r){for(r=r.child;r!==null;)o8(e,t,r),r=r.sibling}function o8(e,t,r){if(Lf&&typeof Lf.onCommitFiberUnmount==\"function\")try{Lf.onCommitFiberUnmount(aM,r)}catch{}switch(r.tag){case 5:Ya||O_(r,t);case 6:var i=Aa,s=Mh;Aa=null,AA(e,t,r),Aa=i,Mh=s,Aa!==null&&(Mh?(e=Aa,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Aa.removeChild(r.stateNode));break;case 18:Aa!==null&&(Mh?(e=Aa,r=r.stateNode,e.nodeType===8?rL(e.parentNode,r):e.nodeType===1&&rL(e,r),w1(e)):rL(Aa,r.stateNode));break;case 4:i=Aa,s=Mh,Aa=r.stateNode.containerInfo,Mh=!0,AA(e,t,r),Aa=i,Mh=s;break;case 0:case 11:case 14:case 15:if(!Ya&&(i=r.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){s=i=i.next;do{var n=s,o=n.destroy;n=n.tag,o!==void 0&&(n&2||n&4)&&$L(r,t,o),s=s.next}while(s!==i)}AA(e,t,r);break;case 1:if(!Ya&&(O_(r,t),i=r.stateNode,typeof i.componentWillUnmount==\"function\"))try{i.props=r.memoizedProps,i.state=r.memoizedState,i.componentWillUnmount()}catch(c){Is(r,t,c)}AA(e,t,r);break;case 21:AA(e,t,r);break;case 22:r.mode&1?(Ya=(i=Ya)||r.memoizedState!==null,AA(e,t,r),Ya=i):AA(e,t,r);break;default:AA(e,t,r)}}function dz(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Ftt),t.forEach(function(i){var s=Ztt.bind(null,e,i);r.has(i)||(r.add(i),i.then(s,s))})}}function Sh(e,t){var r=t.deletions;if(r!==null)for(var i=0;is&&(s=o),i&=~n}if(i=s,i=qs()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Utt(i/1960))-i,10e?16:e,xA===null)var i=!1;else{if(e=xA,xA=null,nM=0,Wi&6)throw Error(Ee(331));var s=Wi;for(Wi|=4,cr=e.current;cr!==null;){var n=cr,o=n.child;if(cr.flags&16){var c=n.deletions;if(c!==null){for(var f=0;fqs()-Nk?y0(e,0):zk|=r),$l(e,t)}function p8(e,t){t===0&&(e.mode&1?(t=fT,fT<<=1,!(fT&130023424)&&(fT=4194304)):t=1);var r=vl();e=Yd(e,t),e!==null&&(O1(e,t,r),$l(e,r))}function qtt(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),p8(e,r)}function Ztt(e,t){var r=0;switch(e.tag){case 13:var i=e.stateNode,s=e.memoizedState;s!==null&&(r=s.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(Ee(314))}i!==null&&i.delete(t),p8(e,r)}var A8;A8=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Yl.current)Zl=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Zl=!1,Dtt(e,t,r);Zl=!!(e.flags&131072)}else Zl=!1,es&&t.flags&1048576&&_N(t,QT,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;RT(e,t),e=t.pendingProps;var s=W_(t,Qa.current);V_(t,r),s=kk(null,t,i,e,s,r);var n=Rk();return t.flags|=1,typeof s==\"object\"&&s!==null&&typeof s.render==\"function\"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ql(i)?(n=!0,ZT(t)):n=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Ek(t),s.updater=dM,t.stateNode=s,s._reactInternals=t,GL(t,i,e,r),t=qL(null,t,i,!0,n,r)):(t.tag=0,es&&n&&vk(t),yl(null,t,s,r),t=t.child),t;case 16:i=t.elementType;t:{switch(RT(e,t),e=t.pendingProps,s=i._init,i=s(i._payload),t.type=i,s=t.tag=Qtt(i),e=Th(i,e),s){case 0:t=HL(null,t,i,e,r);break t;case 1:t=lz(null,t,i,e,r);break t;case 11:t=oz(null,t,i,e,r);break t;case 14:t=az(null,t,i,Th(i.type,e),r);break t}throw Error(Ee(306,i,\"\"))}return t;case 0:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),HL(e,t,i,s,r);case 1:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),lz(e,t,i,s,r);case 3:t:{if(KN(t),e===null)throw Error(Ee(387));i=t.pendingProps,n=t.memoizedState,s=n.element,bN(e,t),KT(t,i,null,r);var o=t.memoizedState;if(i=o.element,n.isDehydrated)if(n={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){s=Y_(Error(Ee(423)),t),t=cz(e,t,i,r,s);break t}else if(i!==s){s=Y_(Error(Ee(424)),t),t=cz(e,t,i,r,s);break t}else for(Uc=TA(t.stateNode.containerInfo.firstChild),Vc=t,es=!0,Eh=null,r=MN(t,null,i,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(H_(),i===s){t=Qd(e,t,r);break t}yl(e,t,i,r)}t=t.child}return t;case 5:return EN(t),e===null&&UL(t),i=t.type,s=t.pendingProps,n=e!==null?e.memoizedProps:null,o=s.children,OL(i,s)?o=null:n!==null&&OL(i,n)&&(t.flags|=32),XN(e,t),yl(e,t,o,r),t.child;case 6:return e===null&&UL(t),null;case 13:return JN(e,t,r);case 4:return Pk(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=q_(t,null,i,r):yl(e,t,i,r),t.child;case 11:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),oz(e,t,i,s,r);case 7:return yl(e,t,t.pendingProps,r),t.child;case 8:return yl(e,t,t.pendingProps.children,r),t.child;case 12:return yl(e,t,t.pendingProps.children,r),t.child;case 10:t:{if(i=t.type._context,s=t.pendingProps,n=t.memoizedProps,o=s.value,Fn($T,i._currentValue),i._currentValue=o,n!==null)if(Ch(n.value,o)){if(n.children===s.children&&!Yl.current){t=Qd(e,t,r);break t}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var c=n.dependencies;if(c!==null){o=n.child;for(var f=c.firstContext;f!==null;){if(f.context===i){if(n.tag===1){f=Hd(-1,r&-r),f.tag=2;var _=n.updateQueue;if(_!==null){_=_.shared;var w=_.pending;w===null?f.next=f:(f.next=w.next,w.next=f),_.pending=f}}n.lanes|=r,f=n.alternate,f!==null&&(f.lanes|=r),VL(n.return,r,t),c.lanes|=r;break}f=f.next}}else if(n.tag===10)o=n.type===t.type?null:n.child;else if(n.tag===18){if(o=n.return,o===null)throw Error(Ee(341));o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),VL(o,r,t),o=n.sibling}else o=n.child;if(o!==null)o.return=n;else for(o=n;o!==null;){if(o===t){o=null;break}if(n=o.sibling,n!==null){n.return=o.return,o=n;break}o=o.return}n=o}yl(e,t,s.children,r),t=t.child}return t;case 9:return s=t.type,i=t.pendingProps.children,V_(t,r),s=Tu(s),i=i(s),t.flags|=1,yl(e,t,i,r),t.child;case 14:return i=t.type,s=Th(i,t.pendingProps),s=Th(i.type,s),az(e,t,i,s,r);case 15:return QN(e,t,t.type,t.pendingProps,r);case 17:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Th(i,s),RT(e,t),t.tag=1,Ql(i)?(e=!0,ZT(t)):e=!1,V_(t,r),SN(t,i,s),GL(t,i,s,r),qL(null,t,i,!0,e,r);case 19:return t8(e,t,r);case 22:return $N(e,t,r)}throw Error(Ee(156,t.tag))};function m8(e,t){return jz(e,t)}function Ytt(e,t,r,i){this.tag=e,this.key=r,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=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wu(e,t,r,i){return new Ytt(e,t,r,i)}function Gk(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Qtt(e){if(typeof e==\"function\")return Gk(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lk)return 11;if(e===ck)return 14}return 2}function IA(e,t){var r=e.alternate;return r===null?(r=wu(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function BT(e,t,r,i,s,n){var o=2;if(i=e,typeof e==\"function\")Gk(e)&&(o=1);else if(typeof e==\"string\")o=5;else t:switch(e){case M_:return v0(r.children,s,n,t);case ak:o=8,s|=8;break;case dL:return e=wu(12,r,t,s|2),e.elementType=dL,e.lanes=n,e;case pL:return e=wu(13,r,t,s),e.elementType=pL,e.lanes=n,e;case AL:return e=wu(19,r,t,s),e.elementType=AL,e.lanes=n,e;case Tz:return gM(r,s,n,t);default:if(typeof e==\"object\"&&e!==null)switch(e.$$typeof){case wz:o=10;break t;case Sz:o=9;break t;case lk:o=11;break t;case ck:o=14;break t;case mA:o=16,i=null;break t}throw Error(Ee(130,e==null?e:typeof e,\"\"))}return t=wu(o,r,t,s),t.elementType=e,t.type=i,t.lanes=n,t}function v0(e,t,r,i){return e=wu(7,e,i,t),e.lanes=r,e}function gM(e,t,r,i){return e=wu(22,e,i,t),e.elementType=Tz,e.lanes=r,e.stateNode={isHidden:!1},e}function uL(e,t,r){return e=wu(6,e,null,t),e.lanes=r,e}function hL(e,t,r){return t=wu(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $tt(e,t,r,i,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=YC(0),this.expirationTimes=YC(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=YC(0),this.identifierPrefix=i,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Wk(e,t,r,i,s,n,o,c,f){return e=new $tt(e,t,r,c,f),t===1?(t=1,n===!0&&(t|=8)):t=0,n=wu(3,null,null,t),e.current=n,n.stateNode=e,n.memoizedState={element:i,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ek(n),e}function Xtt(e,t,r){var i=3{\"use strict\";function x8(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(x8)}catch(e){console.error(e)}}x8(),b8.exports=v8()});var S8=Br(Yk=>{\"use strict\";var w8=bM();Yk.createRoot=w8.createRoot,Yk.hydrateRoot=w8.hydrateRoot;var Jxt});var U8=Br((s4,o4)=>{(function(e,t){typeof s4==\"object\"&&typeof o4<\"u\"?o4.exports=t():(e=typeof globalThis<\"u\"?globalThis:e||self,e.maplibregl=t())})(s4,function(){\"use strict\";var e,t,r;function i(n,o){if(!e)e=o;else if(!t)t=o;else{var c=\"var sharedChunk = {}; (\"+e+\")(sharedChunk); (\"+t+\")(sharedChunk);\",f={};e(f),r=o(f),typeof window<\"u\"&&(r.workerUrl=window.URL.createObjectURL(new Blob([c],{type:\"text/javascript\"})))}}i([\"exports\"],function(n){\"use strict\";function o(u,a,h,A){return new(h||(h=Promise))(function(x,E){function P(V){try{F(A.next(V))}catch(q){E(q)}}function D(V){try{F(A.throw(V))}catch(q){E(q)}}function F(V){var q;V.done?x(V.value):(q=V.value,q instanceof h?q:new h(function(X){X(q)})).then(P,D)}F((A=A.apply(u,a||[])).next())})}function c(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,\"default\")?u.default:u}typeof SuppressedError==\"function\"&&SuppressedError;var f=_;function _(u,a){this.x=u,this.y=a}_.prototype={clone:function(){return new _(this.x,this.y)},add:function(u){return this.clone()._add(u)},sub:function(u){return this.clone()._sub(u)},multByPoint:function(u){return this.clone()._multByPoint(u)},divByPoint:function(u){return this.clone()._divByPoint(u)},mult:function(u){return this.clone()._mult(u)},div:function(u){return this.clone()._div(u)},rotate:function(u){return this.clone()._rotate(u)},rotateAround:function(u,a){return this.clone()._rotateAround(u,a)},matMult:function(u){return this.clone()._matMult(u)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(u){return this.x===u.x&&this.y===u.y},dist:function(u){return Math.sqrt(this.distSqr(u))},distSqr:function(u){var a=u.x-this.x,h=u.y-this.y;return a*a+h*h},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(u){return Math.atan2(this.y-u.y,this.x-u.x)},angleWith:function(u){return this.angleWithSep(u.x,u.y)},angleWithSep:function(u,a){return Math.atan2(this.x*a-this.y*u,this.x*u+this.y*a)},_matMult:function(u){var a=u[2]*this.x+u[3]*this.y;return this.x=u[0]*this.x+u[1]*this.y,this.y=a,this},_add:function(u){return this.x+=u.x,this.y+=u.y,this},_sub:function(u){return this.x-=u.x,this.y-=u.y,this},_mult:function(u){return this.x*=u,this.y*=u,this},_div:function(u){return this.x/=u,this.y/=u,this},_multByPoint:function(u){return this.x*=u.x,this.y*=u.y,this},_divByPoint:function(u){return this.x/=u.x,this.y/=u.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var u=this.y;return this.y=this.x,this.x=-u,this},_rotate:function(u){var a=Math.cos(u),h=Math.sin(u),A=h*this.x+a*this.y;return this.x=a*this.x-h*this.y,this.y=A,this},_rotateAround:function(u,a){var h=Math.cos(u),A=Math.sin(u),x=a.y+A*(this.x-a.x)+h*(this.y-a.y);return this.x=a.x+h*(this.x-a.x)-A*(this.y-a.y),this.y=x,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},_.convert=function(u){return u instanceof _?u:Array.isArray(u)?new _(u[0],u[1]):u};var w=c(f),C=R;function R(u,a,h,A){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(A-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=a,this.p2x=h,this.p2y=A}R.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,a){if(a===void 0&&(a=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,A=0;A<8;A++){var x=this.sampleCurveX(h)-u;if(Math.abs(x)x?P=h:D=h,h=.5*(D-P)+P;return h},solve:function(u,a){return this.sampleCurveY(this.solveCurveX(u,a))}};var N=c(C);let j,Y;function rt(){return j==null&&(j=typeof OffscreenCanvas<\"u\"&&new OffscreenCanvas(1,1).getContext(\"2d\")&&typeof createImageBitmap==\"function\"),j}function $(){if(Y==null&&(Y=!1,rt())){let a=new OffscreenCanvas(5,5).getContext(\"2d\",{willReadFrequently:!0});if(a){for(let A=0;A<5*5;A++){let x=4*A;a.fillStyle=`rgb(${x},${x+1},${x+2})`,a.fillRect(A%5,Math.floor(A/5),1,1)}let h=a.getImageData(0,0,5,5).data;for(let A=0;A<5*5*4;A++)if(A%4!=3&&h[A]!==A){Y=!0;break}}}return Y||!1}function K(u,a,h,A){let x=new N(u,a,h,A);return function(E){return x.solve(E)}}let tt=K(.25,.1,.25,1);function ut(u,a,h){return Math.min(h,Math.max(a,u))}function Pt(u,a,h){let A=h-a,x=((u-a)%A+A)%A+a;return x===a?h:x}function Ot(u,...a){for(let h of a)for(let A in h)u[A]=h[A];return u}let Kt=1;function Zt(u,a,h){let A={};for(let x in u)A[x]=a.call(h||this,u[x],x,u);return A}function le(u,a,h){let A={};for(let x in u)a.call(h||this,u[x],x,u)&&(A[x]=u[x]);return A}function ue(u){return Array.isArray(u)?u.map(ue):typeof u==\"object\"&&u?Zt(u,ue):u}let Ge={};function tr(u){Ge[u]||(typeof console<\"u\"&&console.warn(u),Ge[u]=!0)}function er(u,a,h){return(h.y-u.y)*(a.x-u.x)>(a.y-u.y)*(h.x-u.x)}function Lr(u){let a=0;for(let h,A,x=0,E=u.length,P=E-1;x\"u\")throw new Error(\"VideoFrame not supported\");let E=new VideoFrame(u,{timestamp:0});try{let P=E?.format;if(!P||!P.startsWith(\"BGR\")&&!P.startsWith(\"RGB\"))throw new Error(`Unrecognized format ${P}`);let D=P.startsWith(\"BGR\"),F=new Uint8ClampedArray(A*x*4);if(yield E.copyTo(F,function(V,q,X,et,at){let ct=4*Math.max(-q,0),mt=(Math.max(0,X)-X)*et*4+ct,bt=4*et,Et=Math.max(0,q),Vt=Math.max(0,X);return{rect:{x:Et,y:Vt,width:Math.min(V.width,q+et)-Et,height:Math.min(V.height,X+at)-Vt},layout:[{offset:mt,stride:bt}]}}(u,a,h,A,x)),D)for(let V=0;VcancelAnimationFrame(a)}},getImageData(u,a=0){return this.getImageCanvasContext(u).getImageData(-a,-a,u.width+2*a,u.height+2*a)},getImageCanvasContext(u){let a=window.document.createElement(\"canvas\"),h=a.getContext(\"2d\",{willReadFrequently:!0});if(!h)throw new Error(\"failed to create canvas 2d context\");return a.width=u.width,a.height=u.height,h.drawImage(u,0,0,u.width,u.height),h},resolveURL:u=>(Ds||(Ds=document.createElement(\"a\")),Ds.href=u,Ds.href),hardwareConcurrency:typeof navigator<\"u\"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(sl==null&&(sl=matchMedia(\"(prefers-reduced-motion: reduce)\")),sl.matches)}},Cc={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:\"\"};class Zi extends Error{constructor(a,h,A,x){super(`AJAXError: ${h} (${a}): ${A}`),this.status=a,this.statusText=h,this.url=A,this.body=x}}let $n=zi()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol===\"blob:\"?window.parent:window).location.href,Ii=u=>Cc.REGISTERED_PROTOCOLS[u.substring(0,u.indexOf(\"://\"))];function Xn(u,a){let h=new AbortController,A=new Request(u.url,{method:u.method||\"GET\",body:u.body,credentials:u.credentials,headers:u.headers,cache:u.cache,referrer:$n(),signal:h.signal}),x=!1,E=!1;return u.type===\"json\"&&A.headers.set(\"Accept\",\"application/json\"),E||fetch(A).then(P=>P.ok?(D=>{(u.type===\"arrayBuffer\"||u.type===\"image\"?D.arrayBuffer():u.type===\"json\"?D.json():D.text()).then(F=>{E||(x=!0,a(null,F,D.headers.get(\"Cache-Control\"),D.headers.get(\"Expires\")))}).catch(F=>{E||a(new Error(F.message))})})(P):P.blob().then(D=>a(new Zi(P.status,P.statusText,u.url,D)))).catch(P=>{P.code!==20&&a(new Error(P.message))}),{cancel:()=>{E=!0,x||h.abort()}}}let No=function(u,a){if(/:\\/\\//.test(u.url)&&!/^https?:|^file:/.test(u.url)){if(zi()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a);if(!zi())return(Ii(u.url)||Xn)(u,a)}if(!(/^file:/.test(h=u.url)||/^file:/.test($n())&&!/^\\w+:/.test(h))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return Xn(u,a);if(zi()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a,void 0,!0)}var h;return function(A,x){let E=new XMLHttpRequest;E.open(A.method||\"GET\",A.url,!0),A.type!==\"arrayBuffer\"&&A.type!==\"image\"||(E.responseType=\"arraybuffer\");for(let P in A.headers)E.setRequestHeader(P,A.headers[P]);return A.type===\"json\"&&(E.responseType=\"text\",E.setRequestHeader(\"Accept\",\"application/json\")),E.withCredentials=A.credentials===\"include\",E.onerror=()=>{x(new Error(E.statusText))},E.onload=()=>{if((E.status>=200&&E.status<300||E.status===0)&&E.response!==null){let P=E.response;if(A.type===\"json\")try{P=JSON.parse(E.response)}catch(D){return x(D)}x(null,P,E.getResponseHeader(\"Cache-Control\"),E.getResponseHeader(\"Expires\"))}else{let P=new Blob([E.response],{type:E.getResponseHeader(\"Content-Type\")});x(new Zi(E.status,E.statusText,A.url,P))}},E.send(A.body),{cancel:()=>E.abort()}}(u,a)},ol=function(u,a){return No(Ot(u,{type:\"arrayBuffer\"}),a)};function fo(u){if(!u||u.indexOf(\"://\")<=0||u.indexOf(\"data:image/\")===0||u.indexOf(\"blob:\")===0)return!0;let a=new URL(u),h=window.location;return a.protocol===h.protocol&&a.host===h.host}function Ea(u,a,h){h[u]&&h[u].indexOf(a)!==-1||(h[u]=h[u]||[],h[u].push(a))}function na(u,a,h){if(h&&h[u]){let A=h[u].indexOf(a);A!==-1&&h[u].splice(A,1)}}class ss{constructor(a,h={}){Ot(this,h),this.type=a}}class to extends ss{constructor(a,h={}){super(\"error\",Ot({error:a},h))}}class Ol{on(a,h){return this._listeners=this._listeners||{},Ea(a,h,this._listeners),this}off(a,h){return na(a,h,this._listeners),na(a,h,this._oneTimeListeners),this}once(a,h){return h?(this._oneTimeListeners=this._oneTimeListeners||{},Ea(a,h,this._oneTimeListeners),this):new Promise(A=>this.once(a,A))}fire(a,h){typeof a==\"string\"&&(a=new ss(a,h||{}));let A=a.type;if(this.listens(A)){a.target=this;let x=this._listeners&&this._listeners[A]?this._listeners[A].slice():[];for(let D of x)D.call(this,a);let E=this._oneTimeListeners&&this._oneTimeListeners[A]?this._oneTimeListeners[A].slice():[];for(let D of E)na(A,D,this._oneTimeListeners),D.call(this,a);let P=this._eventedParent;P&&(Ot(a,typeof this._eventedParentData==\"function\"?this._eventedParentData():this._eventedParentData),P.fire(a))}else a instanceof to&&console.error(a.error);return this}listens(a){return this._listeners&&this._listeners[a]&&this._listeners[a].length>0||this._oneTimeListeners&&this._oneTimeListeners[a]&&this._oneTimeListeners[a].length>0||this._eventedParent&&this._eventedParent.listens(a)}setEventedParent(a,h){return this._eventedParent=a,this._eventedParentData=h,this}}var te={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},terrain:{type:\"terrain\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"sprite\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{},custom:{}},default:\"mapbox\"},redFactor:{type:\"number\",default:1},blueFactor:{type:\"number\",default:1},greenFactor:{type:\"number\",default:1},baseShift:{type:\"number\",default:0},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{required:!0,type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},filter:{type:\"*\"},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!1},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterMinPoints:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"!\":\"icon-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"padding\",default:[2],units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},\"viewport-glyph\":{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-variable-anchor-offset\":{type:\"variableAnchorOffsetCollection\",requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\",{\"!\":\"text-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{},within:{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},terrain:{source:{type:\"string\",required:!0},exaggeration:{type:\"number\",minimum:0,default:1}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}};let os=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"];function fn(u,a){let h={};for(let A in u)A!==\"ref\"&&(h[A]=u[A]);return os.forEach(A=>{A in a&&(h[A]=a[A])}),h}function gi(u,a){if(Array.isArray(u)){if(!Array.isArray(a)||u.length!==a.length)return!1;for(let h=0;h`:u.itemType.kind===\"value\"?\"array\":`array<${a}>`}return u.kind}let _t=[Ia,Se,Dr,mr,Os,gt,Ca,vt(Tr),J,nt,ht];function Dt(u,a){if(a.kind===\"error\")return null;if(u.kind===\"array\"){if(a.kind===\"array\"&&(a.N===0&&a.itemType.kind===\"value\"||!Dt(u.itemType,a.itemType))&&(typeof u.N!=\"number\"||u.N===a.N))return null}else{if(u.kind===a.kind)return null;if(u.kind===\"value\"){for(let h of _t)if(!Dt(h,a))return null}}return`Expected ${xt(u)} but found ${xt(a)} instead.`}function Mt(u,a){return a.some(h=>h.kind===u.kind)}function Ut(u,a){return a.some(h=>h===\"null\"?u===null:h===\"array\"?Array.isArray(u):h===\"object\"?u&&!Array.isArray(u)&&typeof u==\"object\":h===typeof u)}function re(u,a){return u.kind===\"array\"&&a.kind===\"array\"?u.itemType.kind===a.itemType.kind&&typeof u.N==\"number\":u.kind===a.kind}let ne=.96422,oe=.82521,ar=4/29,_r=6/29,Ye=3*_r*_r,lr=_r*_r*_r,xr=Math.PI/180,vi=180/Math.PI;function Bi(u){return(u%=360)<0&&(u+=360),u}function ni([u,a,h,A]){let x,E,P=Un((.2225045*(u=Hr(u))+.7168786*(a=Hr(a))+.0606169*(h=Hr(h)))/1);u===a&&a===h?x=E=P:(x=Un((.4360747*u+.3850649*a+.1430804*h)/ne),E=Un((.0139322*u+.0971045*a+.7141733*h)/oe));let D=116*P-16;return[D<0?0:D,500*(x-P),200*(P-E),A]}function Hr(u){return u<=.04045?u/12.92:Math.pow((u+.055)/1.055,2.4)}function Un(u){return u>lr?Math.pow(u,1/3):u/Ye+ar}function Li([u,a,h,A]){let x=(u+16)/116,E=isNaN(a)?x:x+a/500,P=isNaN(h)?x:x-h/200;return x=1*Kn(x),E=ne*Kn(E),P=oe*Kn(P),[gn(3.1338561*E-1.6168667*x-.4906146*P),gn(-.9787684*E+1.9161415*x+.033454*P),gn(.0719453*E-.2289914*x+1.4052427*P),A]}function gn(u){return(u=u<=.00304?12.92*u:1.055*Math.pow(u,1/2.4)-.055)<0?0:u>1?1:u}function Kn(u){return u>_r?u*u*u:Ye*(u-ar)}function oa(u){return parseInt(u.padEnd(2,u),16)/255}function Om(u,a){return Fl(a?u/100:u,0,1)}function Fl(u,a,h){return Math.min(Math.max(a,u),h)}function ws(u){return!u.some(Number.isNaN)}let ih={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],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],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],rebeccapurple:[102,51,153],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]};class ai{constructor(a,h,A,x=1,E=!0){this.r=a,this.g=h,this.b=A,this.a=x,E||(this.r*=x,this.g*=x,this.b*=x,x||this.overwriteGetter(\"rgb\",[a,h,A,x]))}static parse(a){if(a instanceof ai)return a;if(typeof a!=\"string\")return;let h=function(A){if((A=A.toLowerCase().trim())===\"transparent\")return[0,0,0,0];let x=ih[A];if(x){let[P,D,F]=x;return[P/255,D/255,F/255,1]}if(A.startsWith(\"#\")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(A)){let P=A.length<6?1:2,D=1;return[oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+P)||\"ff\")]}if(A.startsWith(\"rgb\")){let P=A.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(P){let[D,F,V,q,X,et,at,ct,mt,bt,Et,Vt]=P,kt=[q||\" \",at||\" \",bt].join(\"\");if(kt===\" \"||kt===\" /\"||kt===\",,\"||kt===\",,,\"){let jt=[V,et,mt].join(\"\"),qt=jt===\"%%%\"?100:jt===\"\"?255:0;if(qt){let ae=[Fl(+F/qt,0,1),Fl(+X/qt,0,1),Fl(+ct/qt,0,1),Et?Om(+Et,Vt):1];if(ws(ae))return ae}}return}}let E=A.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(E){let[P,D,F,V,q,X,et,at,ct]=E,mt=[F||\" \",q||\" \",et].join(\"\");if(mt===\" \"||mt===\" /\"||mt===\",,\"||mt===\",,,\"){let bt=[+D,Fl(+V,0,100),Fl(+X,0,100),at?Om(+at,ct):1];if(ws(bt))return function([Et,Vt,kt,jt]){function qt(ae){let Be=(ae+Et/30)%12,Je=Vt*Math.min(kt,1-kt);return kt-Je*Math.max(-1,Math.min(Be-3,9-Be,1))}return Et=Bi(Et),Vt/=100,kt/=100,[qt(0),qt(8),qt(4),jt]}(bt)}}}(a);return h?new ai(...h,!1):void 0}get rgb(){let{r:a,g:h,b:A,a:x}=this,E=x||1/0;return this.overwriteGetter(\"rgb\",[a/E,h/E,A/E,x])}get hcl(){return this.overwriteGetter(\"hcl\",function(a){let[h,A,x,E]=ni(a),P=Math.sqrt(A*A+x*x);return[Math.round(1e4*P)?Bi(Math.atan2(x,A)*vi):NaN,P,h,E]}(this.rgb))}get lab(){return this.overwriteGetter(\"lab\",ni(this.rgb))}overwriteGetter(a,h){return Object.defineProperty(this,a,{value:h}),h}toString(){let[a,h,A,x]=this.rgb;return`rgba(${[a,h,A].map(E=>Math.round(255*E)).join(\",\")},${x})`}}ai.black=new ai(0,0,0,1),ai.white=new ai(1,1,1,1),ai.transparent=new ai(0,0,0,0),ai.red=new ai(1,0,0,1);class La{constructor(a,h,A){this.sensitivity=a?h?\"variant\":\"case\":h?\"accent\":\"base\",this.locale=A,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"})}compare(a,h){return this.collator.compare(a,h)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Lc{constructor(a,h,A,x,E){this.text=a,this.image=h,this.scale=A,this.fontStack=x,this.textColor=E}}class on{constructor(a){this.sections=a}static fromString(a){return new on([new Lc(a,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(a=>a.text.length!==0||a.image&&a.image.name.length!==0)}static factory(a){return a instanceof on?a:on.fromString(a)}toString(){return this.sections.length===0?\"\":this.sections.map(a=>a.text).join(\"\")}}class kn{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof kn)return a;if(typeof a==\"number\")return new kn([a,a,a,a]);if(Array.isArray(a)&&!(a.length<1||a.length>4)){for(let h of a)if(typeof h!=\"number\")return;switch(a.length){case 1:a=[a[0],a[0],a[0],a[0]];break;case 2:a=[a[0],a[1],a[0],a[1]];break;case 3:a=[a[0],a[1],a[2],a[1]]}return new kn(a)}}toString(){return JSON.stringify(this.values)}}let Bm=new Set([\"center\",\"left\",\"right\",\"top\",\"bottom\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]);class Vo{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof Vo)return a;if(Array.isArray(a)&&!(a.length<1)&&a.length%2==0){for(let h=0;h=0&&u<=255&&typeof a==\"number\"&&a>=0&&a<=255&&typeof h==\"number\"&&h>=0&&h<=255?A===void 0||typeof A==\"number\"&&A>=0&&A<=1?null:`Invalid rgba value [${[u,a,h,A].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof A==\"number\"?[u,a,h,A]:[u,a,h]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function zl(u){if(u===null||typeof u==\"string\"||typeof u==\"boolean\"||typeof u==\"number\"||u instanceof ai||u instanceof La||u instanceof on||u instanceof kn||u instanceof Vo||u instanceof Vn)return!0;if(Array.isArray(u)){for(let a of u)if(!zl(a))return!1;return!0}if(typeof u==\"object\"){for(let a in u)if(!zl(u[a]))return!1;return!0}return!1}function Yi(u){if(u===null)return Ia;if(typeof u==\"string\")return Dr;if(typeof u==\"boolean\")return mr;if(typeof u==\"number\")return Se;if(u instanceof ai)return Os;if(u instanceof La)return sa;if(u instanceof on)return gt;if(u instanceof kn)return J;if(u instanceof Vo)return ht;if(u instanceof Vn)return nt;if(Array.isArray(u)){let a=u.length,h;for(let A of u){let x=Yi(A);if(h){if(h===x)continue;h=Tr;break}h=x}return vt(h||Tr,a)}return Ca}function _i(u){let a=typeof u;return u===null?\"\":a===\"string\"||a===\"number\"||a===\"boolean\"?String(u):u instanceof ai||u instanceof on||u instanceof kn||u instanceof Vo||u instanceof Vn?u.toString():JSON.stringify(u)}class Nl{constructor(a,h){this.type=a,this.value=h}static parse(a,h){if(a.length!==2)return h.error(`'literal' expression requires exactly one argument, but found ${a.length-1} instead.`);if(!zl(a[1]))return h.error(\"invalid value\");let A=a[1],x=Yi(A),E=h.expectedType;return x.kind!==\"array\"||x.N!==0||!E||E.kind!==\"array\"||typeof E.N==\"number\"&&E.N!==0||(x=E),new Nl(x,A)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class an{constructor(a){this.name=\"ExpressionEvaluationError\",this.message=a}toJSON(){return this.message}}let hu={string:Dr,number:Se,boolean:mr,object:Ca};class Jn{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A,x=1,E=a[0];if(E===\"array\"){let D,F;if(a.length>2){let V=a[1];if(typeof V!=\"string\"||!(V in hu)||V===\"object\")return h.error('The item type argument of \"array\" must be one of string, number, boolean',1);D=hu[V],x++}else D=Tr;if(a.length>3){if(a[2]!==null&&(typeof a[2]!=\"number\"||a[2]<0||a[2]!==Math.floor(a[2])))return h.error('The length argument to \"array\" must be a positive integer literal',2);F=a[2],x++}A=vt(D,F)}else{if(!hu[E])throw new Error(`Types doesn't contain name = ${E}`);A=hu[E]}let P=[];for(;xa.outputDefined())}}let Up={\"to-boolean\":mr,\"to-color\":Os,\"to-number\":Se,\"to-string\":Dr};class Ul{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[0];if(!Up[A])throw new Error(`Can't parse ${A} as it is not part of the known types`);if((A===\"to-boolean\"||A===\"to-string\")&&a.length!==2)return h.error(\"Expected one argument.\");let x=Up[A],E=[];for(let P=1;P4?`Invalid rbga value ${JSON.stringify(h)}: expected an array containing either three or four numeric values.`:mo(h[0],h[1],h[2],h[3]),!A))return new ai(h[0]/255,h[1]/255,h[2]/255,h[3])}throw new an(A||`Could not parse color from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"padding\":{let h;for(let A of this.args){h=A.evaluate(a);let x=kn.parse(h);if(x)return x}throw new an(`Could not parse padding from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"variableAnchorOffsetCollection\":{let h;for(let A of this.args){h=A.evaluate(a);let x=Vo.parse(h);if(x)return x}throw new an(`Could not parse variableAnchorOffsetCollection from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"number\":{let h=null;for(let A of this.args){if(h=A.evaluate(a),h===null)return 0;let x=Number(h);if(!isNaN(x))return x}throw new an(`Could not convert ${JSON.stringify(h)} to number.`)}case\"formatted\":return on.fromString(_i(this.args[0].evaluate(a)));case\"resolvedImage\":return Vn.fromString(_i(this.args[0].evaluate(a)));default:return _i(this.args[0].evaluate(a))}}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}let md=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class gd{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&\"id\"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==\"number\"?md[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(a){let h=this._parseColorCache[a];return h||(h=this._parseColorCache[a]=ai.parse(a)),h}}class _d{constructor(a,h,A=[],x,E=new Bl,P=[]){this.registry=a,this.path=A,this.key=A.map(D=>`[${D}]`).join(\"\"),this.scope=E,this.errors=P,this.expectedType=x,this._isConstant=h}parse(a,h,A,x,E={}){return h?this.concat(h,A,x)._parse(a,E):this._parse(a,E)}_parse(a,h){function A(x,E,P){return P===\"assert\"?new Jn(E,[x]):P===\"coerce\"?new Ul(E,[x]):x}if(a!==null&&typeof a!=\"string\"&&typeof a!=\"boolean\"&&typeof a!=\"number\"||(a=[\"literal\",a]),Array.isArray(a)){if(a.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');let x=a[0];if(typeof x!=\"string\")return this.error(`Expression name must be a string, but found ${typeof x} instead. If you wanted a literal array, use [\"literal\", [...]].`,0),null;let E=this.registry[x];if(E){let P=E.parse(a,this);if(!P)return null;if(this.expectedType){let D=this.expectedType,F=P.type;if(D.kind!==\"string\"&&D.kind!==\"number\"&&D.kind!==\"boolean\"&&D.kind!==\"object\"&&D.kind!==\"array\"||F.kind!==\"value\")if(D.kind!==\"color\"&&D.kind!==\"formatted\"&&D.kind!==\"resolvedImage\"||F.kind!==\"value\"&&F.kind!==\"string\")if(D.kind!==\"padding\"||F.kind!==\"value\"&&F.kind!==\"number\"&&F.kind!==\"array\")if(D.kind!==\"variableAnchorOffsetCollection\"||F.kind!==\"value\"&&F.kind!==\"array\"){if(this.checkSubtype(D,F))return null}else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"assert\")}if(!(P instanceof Nl)&&P.type.kind!==\"resolvedImage\"&&this._isConstant(P)){let D=new gd;try{P=new Nl(P.type,P.evaluate(D))}catch(F){return this.error(F.message),null}}return P}return this.error(`Unknown expression \"${x}\". If you wanted a literal array, use [\"literal\", [...]].`,0)}return this.error(a===void 0?\"'undefined' value invalid. Use null instead.\":typeof a==\"object\"?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof a} instead.`)}concat(a,h,A){let x=typeof a==\"number\"?this.path.concat(a):this.path,E=A?this.scope.concat(A):this.scope;return new _d(this.registry,this._isConstant,x,h||null,E,this.errors)}error(a,...h){let A=`${this.key}${h.map(x=>`[${x}]`).join(\"\")}`;this.errors.push(new dn(A,a))}checkSubtype(a,h){let A=Dt(a,h);return A&&this.error(A),A}}class yd{constructor(a,h,A){this.type=sa,this.locale=A,this.caseSensitive=a,this.diacriticSensitive=h}static parse(a,h){if(a.length!==2)return h.error(\"Expected one argument.\");let A=a[1];if(typeof A!=\"object\"||Array.isArray(A))return h.error(\"Collator options argument must be an object.\");let x=h.parse(A[\"case-sensitive\"]!==void 0&&A[\"case-sensitive\"],1,mr);if(!x)return null;let E=h.parse(A[\"diacritic-sensitive\"]!==void 0&&A[\"diacritic-sensitive\"],1,mr);if(!E)return null;let P=null;return A.locale&&(P=h.parse(A.locale,1,Dr),!P)?null:new yd(x,E,P)}evaluate(a){return new La(this.caseSensitive.evaluate(a),this.diacriticSensitive.evaluate(a),this.locale?this.locale.evaluate(a):null)}eachChild(a){a(this.caseSensitive),a(this.diacriticSensitive),this.locale&&a(this.locale)}outputDefined(){return!1}}let lt=8192;function ft(u,a){u[0]=Math.min(u[0],a[0]),u[1]=Math.min(u[1],a[1]),u[2]=Math.max(u[2],a[0]),u[3]=Math.max(u[3],a[1])}function Lt(u,a){return!(u[0]<=a[0]||u[2]>=a[2]||u[1]<=a[1]||u[3]>=a[3])}function $t(u,a){let h=(180+u[0])/360,A=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u[1]*Math.PI/360)))/360,x=Math.pow(2,a.z);return[Math.round(h*x*lt),Math.round(A*x*lt)]}function ge(u,a,h){let A=u[0]-a[0],x=u[1]-a[1],E=u[0]-h[0],P=u[1]-h[1];return A*P-E*x==0&&A*E<=0&&x*P<=0}function qe(u,a){let h=!1;for(let P=0,D=a.length;P(A=u)[1]!=(E=F[V+1])[1]>A[1]&&A[0]<(E[0]-x[0])*(A[1]-x[1])/(E[1]-x[1])+x[0]&&(h=!h)}}var A,x,E;return h}function ti(u,a){for(let h=0;h0&&D<0||P<0&&D>0}function Ss(u,a,h){for(let V of h)for(let q=0;qh[2]){let x=.5*A,E=u[0]-h[0]>x?-A:h[0]-u[0]>x?A:0;E===0&&(E=u[0]-h[2]>x?-A:h[2]-u[0]>x?A:0),u[0]+=E}ft(a,u)}function Xg(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let D of u)for(let F of D){let V=[F.x+E[0],F.y+E[1]];Ex(V,a,h,x),P.push(V)}return P}function Kg(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let F of u){let V=[];for(let q of F){let X=[q.x+E[0],q.y+E[1]];ft(a,X),V.push(X)}P.push(V)}if(a[2]-a[0]<=x/2){(D=a)[0]=D[1]=1/0,D[2]=D[3]=-1/0;for(let F of P)for(let V of F)Ex(V,a,h,x)}var D;return P}class Af{constructor(a,h){this.type=mr,this.geojson=a,this.geometries=h}static parse(a,h){if(a.length!==2)return h.error(`'within' expression requires exactly one argument, but found ${a.length-1} instead.`);if(zl(a[1])){let A=a[1];if(A.type===\"FeatureCollection\")for(let x=0;x!Array.isArray(V)||V.length===a.length-1),F=null;for(let[V,q]of D){F=new _d(h.registry,Nm,h.path,null,h.scope);let X=[],et=!1;for(let at=1;at{return et=X,Array.isArray(et)?`(${et.map(xt).join(\", \")})`:`(${xt(et.type)}...)`;var et}).join(\" | \"),q=[];for(let X=1;X{h=a?h&&Nm(A):h&&A instanceof Nl}),!!h&&Um(u)&&Vm(u,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Um(u){if(u instanceof cl&&(u.name===\"get\"&&u.args.length===1||u.name===\"feature-state\"||u.name===\"has\"&&u.args.length===1||u.name===\"properties\"||u.name===\"geometry-type\"||u.name===\"id\"||/^filter-/.test(u.name))||u instanceof Af)return!1;let a=!0;return u.eachChild(h=>{a&&!Um(h)&&(a=!1)}),a}function Vp(u){if(u instanceof cl&&u.name===\"feature-state\")return!1;let a=!0;return u.eachChild(h=>{a&&!Vp(h)&&(a=!1)}),a}function Vm(u,a){if(u instanceof cl&&a.indexOf(u.name)>=0)return!1;let h=!0;return u.eachChild(A=>{h&&!Vm(A,a)&&(h=!1)}),h}function vd(u,a){let h=u.length-1,A,x,E=0,P=h,D=0;for(;E<=P;)if(D=Math.floor((E+P)/2),A=u[D],x=u[D+1],A<=a){if(D===h||aa))throw new an(\"Input is not a number.\");P=D-1}return 0}class nh{constructor(a,h,A){this.type=a,this.input=h,this.labels=[],this.outputs=[];for(let[x,E]of A)this.labels.push(x),this.outputs.push(E)}static parse(a,h){if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");let A=h.parse(a[1],1,Se);if(!A)return null;let x=[],E=null;h.expectedType&&h.expectedType.kind!==\"value\"&&(E=h.expectedType);for(let P=1;P=D)return h.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',V);let X=h.parse(F,q,E);if(!X)return null;E=E||X.type,x.push([D,X])}return new nh(E,A,x)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;return x>=h[E-1]?A[E-1].evaluate(a):A[vd(h,x)].evaluate(a)}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function ui(u,a,h){return u+h*(a-u)}function jm(u,a,h){return u.map((A,x)=>ui(A,a[x],h))}let Ra={number:ui,color:function(u,a,h,A=\"rgb\"){switch(A){case\"rgb\":{let[x,E,P,D]=jm(u.rgb,a.rgb,h);return new ai(x,E,P,D,!1)}case\"hcl\":{let[x,E,P,D]=u.hcl,[F,V,q,X]=a.hcl,et,at;if(isNaN(x)||isNaN(F))isNaN(x)?isNaN(F)?et=NaN:(et=F,P!==1&&P!==0||(at=V)):(et=x,q!==1&&q!==0||(at=E));else{let Vt=F-x;F>x&&Vt>180?Vt-=360:F180&&(Vt+=360),et=x+h*Vt}let[ct,mt,bt,Et]=function([Vt,kt,jt,qt]){return Vt=isNaN(Vt)?0:Vt*xr,Li([jt,Math.cos(Vt)*kt,Math.sin(Vt)*kt,qt])}([et,at??ui(E,V,h),ui(P,q,h),ui(D,X,h)]);return new ai(ct,mt,bt,Et,!1)}case\"lab\":{let[x,E,P,D]=Li(jm(u.lab,a.lab,h));return new ai(x,E,P,D,!1)}}},array:jm,padding:function(u,a,h){return new kn(jm(u.values,a.values,h))},variableAnchorOffsetCollection:function(u,a,h){let A=u.values,x=a.values;if(A.length!==x.length)throw new an(`Cannot interpolate values of different length. from: ${u.toString()}, to: ${a.toString()}`);let E=[];for(let P=0;Ptypeof q!=\"number\"||q<0||q>1))return h.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);x={name:\"cubic-bezier\",controlPoints:V}}}if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");if(E=h.parse(E,2,Se),!E)return null;let D=[],F=null;A===\"interpolate-hcl\"||A===\"interpolate-lab\"?F=Os:h.expectedType&&h.expectedType.kind!==\"value\"&&(F=h.expectedType);for(let V=0;V=q)return h.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',et);let ct=h.parse(X,at,F);if(!ct)return null;F=F||ct.type,D.push([q,ct])}return re(F,Se)||re(F,Os)||re(F,J)||re(F,ht)||re(F,vt(Se))?new Da(F,A,x,E,D):h.error(`Type ${xt(F)} is not interpolatable.`)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;if(x>=h[E-1])return A[E-1].evaluate(a);let P=vd(h,x),D=Da.interpolationFactor(this.interpolation,x,h[P],h[P+1]),F=A[P].evaluate(a),V=A[P+1].evaluate(a);switch(this.operator){case\"interpolate\":return Ra[this.type.kind](F,V,D);case\"interpolate-hcl\":return Ra.color(F,V,D,\"hcl\");case\"interpolate-lab\":return Ra.color(F,V,D,\"lab\")}}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function Jg(u,a,h,A){let x=A-h,E=u-h;return x===0?0:a===1?E/x:(Math.pow(a,E)-1)/(Math.pow(a,x)-1)}class Gm{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expectected at least one argument.\");let A=null,x=h.expectedType;x&&x.kind!==\"value\"&&(A=x);let E=[];for(let D of a.slice(1)){let F=h.parse(D,1+E.length,A,void 0,{typeAnnotation:\"omit\"});if(!F)return null;A=A||F.type,E.push(F)}if(!A)throw new Error(\"No output type\");let P=x&&E.some(D=>Dt(x,D.type));return new Gm(P?Tr:A,E)}evaluate(a){let h,A=null,x=0;for(let E of this.args)if(x++,A=E.evaluate(a),A&&A instanceof Vn&&!A.available&&(h||(h=A.name),A=null,x===this.args.length&&(A=h)),A!==null)break;return A}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}class Wm{constructor(a,h){this.type=h.type,this.bindings=[].concat(a),this.result=h}evaluate(a){return this.result.evaluate(a)}eachChild(a){for(let h of this.bindings)a(h[1]);a(this.result)}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found ${a.length-1} instead.`);let A=[];for(let E=1;E=A.length)throw new an(`Array index out of bounds: ${h} > ${A.length-1}.`);if(h!==Math.floor(h))throw new an(`Array index must be an integer, but found ${h} instead.`);return A[h]}eachChild(a){a(this.index),a(this.input)}outputDefined(){return!1}}class Hm{constructor(a,h){this.type=mr,this.needle=a,this.haystack=h}static parse(a,h){if(a.length!==3)return h.error(`Expected 2 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Tr);return A&&x?Mt(A.type,[mr,Dr,Se,Ia,Tr])?new Hm(A,x):h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`):null}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!A)return!1;if(!Ut(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Yi(h))} instead.`);if(!Ut(A,[\"string\",\"array\"]))throw new an(`Expected second argument to be of type array or string, but found ${xt(Yi(A))} instead.`);return A.indexOf(h)>=0}eachChild(a){a(this.needle),a(this.haystack)}outputDefined(){return!0}}class Gp{constructor(a,h,A){this.type=Se,this.needle=a,this.haystack=h,this.fromIndex=A}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Tr);if(!A||!x)return null;if(!Mt(A.type,[mr,Dr,Se,Ia,Tr]))return h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Se);return E?new Gp(A,x,E):null}return new Gp(A,x)}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!Ut(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Yi(h))} instead.`);if(!Ut(A,[\"string\",\"array\"]))throw new an(`Expected second argument to be of type array or string, but found ${xt(Yi(A))} instead.`);if(this.fromIndex){let x=this.fromIndex.evaluate(a);return A.indexOf(h,x)}return A.indexOf(h)}eachChild(a){a(this.needle),a(this.haystack),this.fromIndex&&a(this.fromIndex)}outputDefined(){return!1}}class xd{constructor(a,h,A,x,E,P){this.inputType=a,this.type=h,this.input=A,this.cases=x,this.outputs=E,this.otherwise=P}static parse(a,h){if(a.length<5)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if(a.length%2!=1)return h.error(\"Expected an even number of arguments.\");let A,x;h.expectedType&&h.expectedType.kind!==\"value\"&&(x=h.expectedType);let E={},P=[];for(let V=2;VNumber.MAX_SAFE_INTEGER)return et.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof ct==\"number\"&&Math.floor(ct)!==ct)return et.error(\"Numeric branch labels must be integer values.\");if(A){if(et.checkSubtype(A,Yi(ct)))return null}else A=Yi(ct);if(E[String(ct)]!==void 0)return et.error(\"Branch labels must be unique.\");E[String(ct)]=P.length}let at=h.parse(X,V,x);if(!at)return null;x=x||at.type,P.push(at)}let D=h.parse(a[1],1,Tr);if(!D)return null;let F=h.parse(a[a.length-1],a.length-1,x);return F?D.type.kind!==\"value\"&&h.concat(1).checkSubtype(A,D.type)?null:new xd(A,x,D,E,P,F):null}evaluate(a){let h=this.input.evaluate(a);return(Yi(h)===this.inputType&&this.outputs[this.cases[h]]||this.otherwise).evaluate(a)}eachChild(a){a(this.input),this.outputs.forEach(a),a(this.otherwise)}outputDefined(){return this.outputs.every(a=>a.outputDefined())&&this.otherwise.outputDefined()}}class Wp{constructor(a,h,A){this.type=a,this.branches=h,this.otherwise=A}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found only ${a.length-1}.`);if(a.length%2!=0)return h.error(\"Expected an odd number of arguments.\");let A;h.expectedType&&h.expectedType.kind!==\"value\"&&(A=h.expectedType);let x=[];for(let P=1;Ph.outputDefined())&&this.otherwise.outputDefined()}}class bd{constructor(a,h,A,x){this.type=a,this.input=h,this.beginIndex=A,this.endIndex=x}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Tr),x=h.parse(a[2],2,Se);if(!A||!x)return null;if(!Mt(A.type,[vt(Tr),Dr,Tr]))return h.error(`Expected first argument to be of type array or string, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Se);return E?new bd(A.type,A,x,E):null}return new bd(A.type,A,x)}evaluate(a){let h=this.input.evaluate(a),A=this.beginIndex.evaluate(a);if(!Ut(h,[\"string\",\"array\"]))throw new an(`Expected first argument to be of type array or string, but found ${xt(Yi(h))} instead.`);if(this.endIndex){let x=this.endIndex.evaluate(a);return h.slice(A,x)}return h.slice(A)}eachChild(a){a(this.input),a(this.beginIndex),this.endIndex&&a(this.endIndex)}outputDefined(){return!1}}function qm(u,a){return u===\"==\"||u===\"!=\"?a.kind===\"boolean\"||a.kind===\"string\"||a.kind===\"number\"||a.kind===\"null\"||a.kind===\"value\":a.kind===\"string\"||a.kind===\"number\"||a.kind===\"value\"}function wd(u,a,h,A){return A.compare(a,h)===0}function fu(u,a,h){let A=u!==\"==\"&&u!==\"!=\";return class N8{constructor(E,P,D){this.type=mr,this.lhs=E,this.rhs=P,this.collator=D,this.hasUntypedArgument=E.type.kind===\"value\"||P.type.kind===\"value\"}static parse(E,P){if(E.length!==3&&E.length!==4)return P.error(\"Expected two or three arguments.\");let D=E[0],F=P.parse(E[1],1,Tr);if(!F)return null;if(!qm(D,F.type))return P.concat(1).error(`\"${D}\" comparisons are not supported for type '${xt(F.type)}'.`);let V=P.parse(E[2],2,Tr);if(!V)return null;if(!qm(D,V.type))return P.concat(2).error(`\"${D}\" comparisons are not supported for type '${xt(V.type)}'.`);if(F.type.kind!==V.type.kind&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(`Cannot compare types '${xt(F.type)}' and '${xt(V.type)}'.`);A&&(F.type.kind===\"value\"&&V.type.kind!==\"value\"?F=new Jn(V.type,[F]):F.type.kind!==\"value\"&&V.type.kind===\"value\"&&(V=new Jn(F.type,[V])));let q=null;if(E.length===4){if(F.type.kind!==\"string\"&&V.type.kind!==\"string\"&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(\"Cannot use collator to compare non-string types.\");if(q=P.parse(E[3],3,sa),!q)return null}return new N8(F,V,q)}evaluate(E){let P=this.lhs.evaluate(E),D=this.rhs.evaluate(E);if(A&&this.hasUntypedArgument){let F=Yi(P),V=Yi(D);if(F.kind!==V.kind||F.kind!==\"string\"&&F.kind!==\"number\")throw new an(`Expected arguments for \"${u}\" to be (string, string) or (number, number), but found (${F.kind}, ${V.kind}) instead.`)}if(this.collator&&!A&&this.hasUntypedArgument){let F=Yi(P),V=Yi(D);if(F.kind!==\"string\"||V.kind!==\"string\")return a(E,P,D)}return this.collator?h(E,P,D,this.collator.evaluate(E)):a(E,P,D)}eachChild(E){E(this.lhs),E(this.rhs),this.collator&&E(this.collator)}outputDefined(){return!0}}}let sh=fu(\"==\",function(u,a,h){return a===h},wd),Ht=fu(\"!=\",function(u,a,h){return a!==h},function(u,a,h,A){return!wd(0,a,h,A)}),fe=fu(\"<\",function(u,a,h){return a\",function(u,a,h){return a>h},function(u,a,h,A){return A.compare(a,h)>0}),vr=fu(\"<=\",function(u,a,h){return a<=h},function(u,a,h,A){return A.compare(a,h)<=0}),g=fu(\">=\",function(u,a,h){return a>=h},function(u,a,h,A){return A.compare(a,h)>=0});class Ni{constructor(a,h,A,x,E){this.type=Dr,this.number=a,this.locale=h,this.currency=A,this.minFractionDigits=x,this.maxFractionDigits=E}static parse(a,h){if(a.length!==3)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Se);if(!A)return null;let x=a[2];if(typeof x!=\"object\"||Array.isArray(x))return h.error(\"NumberFormat options argument must be an object.\");let E=null;if(x.locale&&(E=h.parse(x.locale,1,Dr),!E))return null;let P=null;if(x.currency&&(P=h.parse(x.currency,1,Dr),!P))return null;let D=null;if(x[\"min-fraction-digits\"]&&(D=h.parse(x[\"min-fraction-digits\"],1,Se),!D))return null;let F=null;return x[\"max-fraction-digits\"]&&(F=h.parse(x[\"max-fraction-digits\"],1,Se),!F)?null:new Ni(A,E,P,D,F)}evaluate(a){return new Intl.NumberFormat(this.locale?this.locale.evaluate(a):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(a):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(a):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(a):void 0}).format(this.number.evaluate(a))}eachChild(a){a(this.number),this.locale&&a(this.locale),this.currency&&a(this.currency),this.minFractionDigits&&a(this.minFractionDigits),this.maxFractionDigits&&a(this.maxFractionDigits)}outputDefined(){return!1}}class Si{constructor(a){this.type=gt,this.sections=a}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[1];if(!Array.isArray(A)&&typeof A==\"object\")return h.error(\"First argument must be an image or text section.\");let x=[],E=!1;for(let P=1;P<=a.length-1;++P){let D=a[P];if(E&&typeof D==\"object\"&&!Array.isArray(D)){E=!1;let F=null;if(D[\"font-scale\"]&&(F=h.parse(D[\"font-scale\"],1,Se),!F))return null;let V=null;if(D[\"text-font\"]&&(V=h.parse(D[\"text-font\"],1,vt(Dr)),!V))return null;let q=null;if(D[\"text-color\"]&&(q=h.parse(D[\"text-color\"],1,Os),!q))return null;let X=x[x.length-1];X.scale=F,X.font=V,X.textColor=q}else{let F=h.parse(a[P],1,Tr);if(!F)return null;let V=F.type.kind;if(V!==\"string\"&&V!==\"value\"&&V!==\"null\"&&V!==\"resolvedImage\")return h.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");E=!0,x.push({content:F,scale:null,font:null,textColor:null})}}return new Si(x)}evaluate(a){return new on(this.sections.map(h=>{let A=h.content.evaluate(a);return Yi(A)===nt?new Lc(\"\",A,null,null,null):new Lc(_i(A),null,h.scale?h.scale.evaluate(a):null,h.font?h.font.evaluate(a).join(\",\"):null,h.textColor?h.textColor.evaluate(a):null)}))}eachChild(a){for(let h of this.sections)a(h.content),h.scale&&a(h.scale),h.font&&a(h.font),h.textColor&&a(h.textColor)}outputDefined(){return!1}}class Tt{constructor(a){this.type=nt,this.input=a}static parse(a,h){if(a.length!==2)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Dr);return A?new Tt(A):h.error(\"No image name provided.\")}evaluate(a){let h=this.input.evaluate(a),A=Vn.fromString(h);return A&&a.availableImages&&(A.available=a.availableImages.indexOf(h)>-1),A}eachChild(a){a(this.input)}outputDefined(){return!1}}class Ts{constructor(a){this.type=Se,this.input=a}static parse(a,h){if(a.length!==2)return h.error(`Expected 1 argument, but found ${a.length-1} instead.`);let A=h.parse(a[1],1);return A?A.type.kind!==\"array\"&&A.type.kind!==\"string\"&&A.type.kind!==\"value\"?h.error(`Expected argument of type string or array, but found ${xt(A.type)} instead.`):new Ts(A):null}evaluate(a){let h=this.input.evaluate(a);if(typeof h==\"string\"||Array.isArray(h))return h.length;throw new an(`Expected value to be of type string or array, but found ${xt(Yi(h))} instead.`)}eachChild(a){a(this.input)}outputDefined(){return!1}}let as={\"==\":sh,\"!=\":Ht,\">\":De,\"<\":fe,\">=\":g,\"<=\":vr,array:Jn,at:jp,boolean:Jn,case:Wp,coalesce:Gm,collator:yd,format:Si,image:Tt,in:Hm,\"index-of\":Gp,interpolate:Da,\"interpolate-hcl\":Da,\"interpolate-lab\":Da,length:Ts,let:Wm,literal:Nl,match:xd,number:Jn,\"number-format\":Ni,object:Jn,slice:bd,step:nh,string:Jn,\"to-boolean\":Ul,\"to-color\":Ul,\"to-number\":Ul,\"to-string\":Ul,var:zm,within:Af};function li(u,[a,h,A,x]){a=a.evaluate(u),h=h.evaluate(u),A=A.evaluate(u);let E=x?x.evaluate(u):1,P=mo(a,h,A,E);if(P)throw new an(P);return new ai(a/255,h/255,A/255,E,!1)}function _n(u,a){return u in a}function ul(u,a){let h=a[u];return h===void 0?null:h}function Ur(u){return{type:u}}function hi(u){return{result:\"success\",value:u}}function go(u){return{result:\"error\",value:u}}function mf(u){return u[\"property-type\"]===\"data-driven\"||u[\"property-type\"]===\"cross-faded-data-driven\"}function t_(u){return!!u.expression&&u.expression.parameters.indexOf(\"zoom\")>-1}function Sd(u){return!!u.expression&&u.expression.interpolated}function qr(u){return u instanceof Number?\"number\":u instanceof String?\"string\":u instanceof Boolean?\"boolean\":Array.isArray(u)?\"array\":u===null?\"null\":typeof u}function Qi(u){return typeof u==\"object\"&&u!==null&&!Array.isArray(u)}function kc(u){return u}function ci(u,a){let h=a.type===\"color\",A=u.stops&&typeof u.stops[0][0]==\"object\",x=A||!(A||u.property!==void 0),E=u.type||(Sd(a)?\"exponential\":\"interval\");if(h||a.type===\"padding\"){let q=h?ai.parse:kn.parse;(u=Uo({},u)).stops&&(u.stops=u.stops.map(X=>[X[0],q(X[1])])),u.default=q(u.default?u.default:a.default)}if(u.colorSpace&&(P=u.colorSpace)!==\"rgb\"&&P!==\"hcl\"&&P!==\"lab\")throw new Error(`Unknown color space: \"${u.colorSpace}\"`);var P;let D,F,V;if(E===\"exponential\")D=Ti;else if(E===\"interval\")D=It;else if(E===\"categorical\"){D=$e,F=Object.create(null);for(let q of u.stops)F[q[0]]=q[1];V=typeof u.stops[0][0]}else{if(E!==\"identity\")throw new Error(`Unknown function type \"${E}\"`);D=Zm}if(A){let q={},X=[];for(let ct=0;ctct[0]),evaluate:({zoom:ct},mt)=>Ti({stops:et,base:u.base},a,ct).evaluate(ct,mt)}}if(x){let q=E===\"exponential\"?{name:\"exponential\",base:u.base!==void 0?u.base:1}:null;return{kind:\"camera\",interpolationType:q,interpolationFactor:Da.interpolationFactor.bind(void 0,q),zoomStops:u.stops.map(X=>X[0]),evaluate:({zoom:X})=>D(u,a,X,F,V)}}return{kind:\"source\",evaluate(q,X){let et=X&&X.properties?X.properties[u.property]:void 0;return et===void 0?aa(u.default,a.default):D(u,a,et,F,V)}}}function aa(u,a,h){return u!==void 0?u:a!==void 0?a:h!==void 0?h:void 0}function $e(u,a,h,A,x){return aa(typeof h===x?A[h]:void 0,u.default,a.default)}function It(u,a,h){if(qr(h)!==\"number\")return aa(u.default,a.default);let A=u.stops.length;if(A===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[A-1][0])return u.stops[A-1][1];let x=vd(u.stops.map(E=>E[0]),h);return u.stops[x][1]}function Ti(u,a,h){let A=u.base!==void 0?u.base:1;if(qr(h)!==\"number\")return aa(u.default,a.default);let x=u.stops.length;if(x===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[x-1][0])return u.stops[x-1][1];let E=vd(u.stops.map(q=>q[0]),h),P=function(q,X,et,at){let ct=at-et,mt=q-et;return ct===0?0:X===1?mt/ct:(Math.pow(X,mt)-1)/(Math.pow(X,ct)-1)}(h,A,u.stops[E][0],u.stops[E+1][0]),D=u.stops[E][1],F=u.stops[E+1][1],V=Ra[a.type]||kc;return typeof D.evaluate==\"function\"?{evaluate(...q){let X=D.evaluate.apply(void 0,q),et=F.evaluate.apply(void 0,q);if(X!==void 0&&et!==void 0)return V(X,et,P,u.colorSpace)}}:V(D,F,P,u.colorSpace)}function Zm(u,a,h){switch(a.type){case\"color\":h=ai.parse(h);break;case\"formatted\":h=on.fromString(h.toString());break;case\"resolvedImage\":h=Vn.fromString(h.toString());break;case\"padding\":h=kn.parse(h);break;default:qr(h)===a.type||a.type===\"enum\"&&a.values[h]||(h=void 0)}return aa(h,u.default,a.default)}cl.register(as,{error:[{kind:\"error\"},[Dr],(u,[a])=>{throw new an(a.evaluate(u))}],typeof:[Dr,[Tr],(u,[a])=>xt(Yi(a.evaluate(u)))],\"to-rgba\":[vt(Se,4),[Os],(u,[a])=>{let[h,A,x,E]=a.evaluate(u).rgb;return[255*h,255*A,255*x,E]}],rgb:[Os,[Se,Se,Se],li],rgba:[Os,[Se,Se,Se,Se],li],has:{type:mr,overloads:[[[Dr],(u,[a])=>_n(a.evaluate(u),u.properties())],[[Dr,Ca],(u,[a,h])=>_n(a.evaluate(u),h.evaluate(u))]]},get:{type:Tr,overloads:[[[Dr],(u,[a])=>ul(a.evaluate(u),u.properties())],[[Dr,Ca],(u,[a,h])=>ul(a.evaluate(u),h.evaluate(u))]]},\"feature-state\":[Tr,[Dr],(u,[a])=>ul(a.evaluate(u),u.featureState||{})],properties:[Ca,[],u=>u.properties()],\"geometry-type\":[Dr,[],u=>u.geometryType()],id:[Tr,[],u=>u.id()],zoom:[Se,[],u=>u.globals.zoom],\"heatmap-density\":[Se,[],u=>u.globals.heatmapDensity||0],\"line-progress\":[Se,[],u=>u.globals.lineProgress||0],accumulated:[Tr,[],u=>u.globals.accumulated===void 0?null:u.globals.accumulated],\"+\":[Se,Ur(Se),(u,a)=>{let h=0;for(let A of a)h+=A.evaluate(u);return h}],\"*\":[Se,Ur(Se),(u,a)=>{let h=1;for(let A of a)h*=A.evaluate(u);return h}],\"-\":{type:Se,overloads:[[[Se,Se],(u,[a,h])=>a.evaluate(u)-h.evaluate(u)],[[Se],(u,[a])=>-a.evaluate(u)]]},\"/\":[Se,[Se,Se],(u,[a,h])=>a.evaluate(u)/h.evaluate(u)],\"%\":[Se,[Se,Se],(u,[a,h])=>a.evaluate(u)%h.evaluate(u)],ln2:[Se,[],()=>Math.LN2],pi:[Se,[],()=>Math.PI],e:[Se,[],()=>Math.E],\"^\":[Se,[Se,Se],(u,[a,h])=>Math.pow(a.evaluate(u),h.evaluate(u))],sqrt:[Se,[Se],(u,[a])=>Math.sqrt(a.evaluate(u))],log10:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))/Math.LN10],ln:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))],log2:[Se,[Se],(u,[a])=>Math.log(a.evaluate(u))/Math.LN2],sin:[Se,[Se],(u,[a])=>Math.sin(a.evaluate(u))],cos:[Se,[Se],(u,[a])=>Math.cos(a.evaluate(u))],tan:[Se,[Se],(u,[a])=>Math.tan(a.evaluate(u))],asin:[Se,[Se],(u,[a])=>Math.asin(a.evaluate(u))],acos:[Se,[Se],(u,[a])=>Math.acos(a.evaluate(u))],atan:[Se,[Se],(u,[a])=>Math.atan(a.evaluate(u))],min:[Se,Ur(Se),(u,a)=>Math.min(...a.map(h=>h.evaluate(u)))],max:[Se,Ur(Se),(u,a)=>Math.max(...a.map(h=>h.evaluate(u)))],abs:[Se,[Se],(u,[a])=>Math.abs(a.evaluate(u))],round:[Se,[Se],(u,[a])=>{let h=a.evaluate(u);return h<0?-Math.round(-h):Math.round(h)}],floor:[Se,[Se],(u,[a])=>Math.floor(a.evaluate(u))],ceil:[Se,[Se],(u,[a])=>Math.ceil(a.evaluate(u))],\"filter-==\":[mr,[Dr,Tr],(u,[a,h])=>u.properties()[a.value]===h.value],\"filter-id-==\":[mr,[Tr],(u,[a])=>u.id()===a.value],\"filter-type-==\":[mr,[Dr],(u,[a])=>u.geometryType()===a.value],\"filter-<\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A{let h=u.id(),A=a.value;return typeof h==typeof A&&h\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>x}],\"filter-id->\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>A}],\"filter-<=\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A<=x}],\"filter-id-<=\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h<=A}],\"filter->=\":[mr,[Dr,Tr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>=x}],\"filter-id->=\":[mr,[Tr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>=A}],\"filter-has\":[mr,[Tr],(u,[a])=>a.value in u.properties()],\"filter-has-id\":[mr,[],u=>u.id()!==null&&u.id()!==void 0],\"filter-type-in\":[mr,[vt(Dr)],(u,[a])=>a.value.indexOf(u.geometryType())>=0],\"filter-id-in\":[mr,[vt(Tr)],(u,[a])=>a.value.indexOf(u.id())>=0],\"filter-in-small\":[mr,[Dr,vt(Tr)],(u,[a,h])=>h.value.indexOf(u.properties()[a.value])>=0],\"filter-in-large\":[mr,[Dr,vt(Tr)],(u,[a,h])=>function(A,x,E,P){for(;E<=P;){let D=E+P>>1;if(x[D]===A)return!0;x[D]>A?P=D-1:E=D+1}return!1}(u.properties()[a.value],h.value,0,h.value.length-1)],all:{type:mr,overloads:[[[mr,mr],(u,[a,h])=>a.evaluate(u)&&h.evaluate(u)],[Ur(mr),(u,a)=>{for(let h of a)if(!h.evaluate(u))return!1;return!0}]]},any:{type:mr,overloads:[[[mr,mr],(u,[a,h])=>a.evaluate(u)||h.evaluate(u)],[Ur(mr),(u,a)=>{for(let h of a)if(h.evaluate(u))return!0;return!1}]]},\"!\":[mr,[mr],(u,[a])=>!a.evaluate(u)],\"is-supported-script\":[mr,[Dr],(u,[a])=>{let h=u.globals&&u.globals.isSupportedScript;return!h||h(a.evaluate(u))}],upcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toUpperCase()],downcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toLowerCase()],concat:[Dr,Ur(Tr),(u,a)=>a.map(h=>_i(h.evaluate(u))).join(\"\")],\"resolved-locale\":[Dr,[sa],(u,[a])=>a.evaluate(u).resolvedLocale()]});class Ym{constructor(a,h){var A;this.expression=a,this._warningHistory={},this._evaluator=new gd,this._defaultValue=h?(A=h).type===\"color\"&&Qi(A.default)?new ai(0,0,0,0):A.type===\"color\"?ai.parse(A.default)||null:A.type===\"padding\"?kn.parse(A.default)||null:A.type===\"variableAnchorOffsetCollection\"?Vo.parse(A.default)||null:A.default===void 0?null:A.default:null,this._enumValues=h&&h.type===\"enum\"?h.values:null}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._evaluator.globals=a,this._evaluator.feature=h,this._evaluator.featureState=A,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P,this.expression.evaluate(this._evaluator)}evaluate(a,h,A,x,E,P){this._evaluator.globals=a,this._evaluator.feature=h||null,this._evaluator.featureState=A||null,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P||null;try{let D=this.expression.evaluate(this._evaluator);if(D==null||typeof D==\"number\"&&D!=D)return this._defaultValue;if(this._enumValues&&!(D in this._enumValues))throw new an(`Expected value to be one of ${Object.keys(this._enumValues).map(F=>JSON.stringify(F)).join(\", \")}, but found ${JSON.stringify(D)} instead.`);return D}catch(D){return this._warningHistory[D.message]||(this._warningHistory[D.message]=!0,typeof console<\"u\"&&console.warn(D.message)),this._defaultValue}}}function Hp(u){return Array.isArray(u)&&u.length>0&&typeof u[0]==\"string\"&&u[0]in as}function qp(u,a){let h=new _d(as,Nm,[],a?function(x){let E={color:Os,string:Dr,number:Se,enum:Dr,boolean:mr,formatted:gt,padding:J,resolvedImage:nt,variableAnchorOffsetCollection:ht};return x.type===\"array\"?vt(E[x.value]||Tr,x.length):E[x.type]}(a):void 0),A=h.parse(u,void 0,void 0,void 0,a&&a.type===\"string\"?{typeAnnotation:\"coerce\"}:void 0);return A?hi(new Ym(A,a)):go(h.errors)}class Qm{constructor(a,h){this.kind=a,this._styleExpression=h,this.isStateDependent=a!==\"constant\"&&!Vp(h.expression)}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}}class wt{constructor(a,h,A,x){this.kind=a,this.zoomStops=A,this._styleExpression=h,this.isStateDependent=a!==\"camera\"&&!Vp(h.expression),this.interpolationType=x}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}interpolationFactor(a,h,A){return this.interpolationType?Da.interpolationFactor(this.interpolationType,a,h,A):0}}function $m(u,a){let h=qp(u,a);if(h.result===\"error\")return h;let A=h.value.expression,x=Um(A);if(!x&&!mf(a))return go([new dn(\"\",\"data expressions not supported\")]);let E=Vm(A,[\"zoom\"]);if(!E&&!t_(a))return go([new dn(\"\",\"zoom expressions not supported\")]);let P=Md(A);return P||E?P instanceof dn?go([P]):P instanceof Da&&!Sd(a)?go([new dn(\"\",'\"interpolate\" expressions cannot be used with this property')]):hi(P?new wt(x?\"camera\":\"composite\",h.value,P.labels,P instanceof Da?P.interpolation:void 0):new Qm(x?\"constant\":\"source\",h.value)):go([new dn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class Td{constructor(a,h){this._parameters=a,this._specification=h,Uo(this,ci(this._parameters,this._specification))}static deserialize(a){return new Td(a._parameters,a._specification)}static serialize(a){return{_parameters:a._parameters,_specification:a._specification}}}function Md(u){let a=null;if(u instanceof Wm)a=Md(u.result);else if(u instanceof Gm){for(let h of u.args)if(a=Md(h),a)break}else(u instanceof nh||u instanceof Da)&&u.input instanceof cl&&u.input.name===\"zoom\"&&(a=u);return a instanceof dn||u.eachChild(h=>{let A=Md(h);A instanceof dn?a=A:!a&&A?a=new dn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):a&&A&&a!==A&&(a=new dn(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'))}),a}function Ed(u){if(u===!0||u===!1)return!0;if(!Array.isArray(u)||u.length===0)return!1;switch(u[0]){case\"has\":return u.length>=2&&u[1]!==\"$id\"&&u[1]!==\"$type\";case\"in\":return u.length>=3&&(typeof u[1]!=\"string\"||Array.isArray(u[2]));case\"!in\":case\"!has\":case\"none\":return!1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return u.length!==3||Array.isArray(u[1])||Array.isArray(u[2]);case\"any\":case\"all\":for(let a of u.slice(1))if(!Ed(a)&&typeof a!=\"boolean\")return!1;return!0;default:return!0}}let Px={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Xm(u){if(u==null)return{filter:()=>!0,needGeometry:!1};Ed(u)||(u=gf(u));let a=qp(u,Px);if(a.result===\"error\")throw new Error(a.value.map(h=>`${h.key}: ${h.message}`).join(\", \"));return{filter:(h,A,x)=>a.value.evaluate(h,A,{},x),needGeometry:r_(u)}}function e_(u,a){return ua?1:0}function r_(u){if(!Array.isArray(u))return!1;if(u[0]===\"within\")return!0;for(let a=1;a\"||a===\"<=\"||a===\">=\"?Oa(u[1],u[2],a):a===\"any\"?(h=u.slice(1),[\"any\"].concat(h.map(gf))):a===\"all\"?[\"all\"].concat(u.slice(1).map(gf)):a===\"none\"?[\"all\"].concat(u.slice(1).map(gf).map(Pd)):a===\"in\"?jn(u[1],u.slice(2)):a===\"!in\"?Pd(jn(u[1],u.slice(2))):a===\"has\"?i_(u[1]):a===\"!has\"?Pd(i_(u[1])):a!==\"within\"||u;var h}function Oa(u,a,h){switch(u){case\"$type\":return[`filter-type-${h}`,a];case\"$id\":return[`filter-id-${h}`,a];default:return[`filter-${h}`,u,a]}}function jn(u,a){if(a.length===0)return!1;switch(u){case\"$type\":return[\"filter-type-in\",[\"literal\",a]];case\"$id\":return[\"filter-id-in\",[\"literal\",a]];default:return a.length>200&&!a.some(h=>typeof h!=typeof a[0])?[\"filter-in-large\",u,[\"literal\",a.sort(e_)]]:[\"filter-in-small\",u,[\"literal\",a]]}}function i_(u){switch(u){case\"$type\":return!0;case\"$id\":return[\"filter-has-id\"];default:return[\"filter-has\",u]}}function Pd(u){return[\"!\",u]}function Zp(u){let a=typeof u;if(a===\"number\"||a===\"boolean\"||a===\"string\"||u==null)return JSON.stringify(u);if(Array.isArray(u)){let x=\"[\";for(let E of u)x+=`${Zp(E)},`;return`${x}]`}let h=Object.keys(u).sort(),A=\"{\";for(let x=0;xA.maximum?[new ve(a,h,`${h} is greater than the maximum value ${A.maximum}`)]:[]}function Qp(u){let a=u.valueSpec,h=Pn(u.value.type),A,x,E,P={},D=h!==\"categorical\"&&u.value.property===void 0,F=!D,V=qr(u.value.stops)===\"array\"&&qr(u.value.stops[0])===\"array\"&&qr(u.value.stops[0][0])===\"object\",q=fi({key:u.key,value:u.value,valueSpec:u.styleSpec.function,validateSpec:u.validateSpec,style:u.style,styleSpec:u.styleSpec,objectElementValidators:{stops:function(at){if(h===\"identity\")return[new ve(at.key,at.value,'identity function may not have a \"stops\" property')];let ct=[],mt=at.value;return ct=ct.concat(du({key:at.key,value:mt,valueSpec:at.valueSpec,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,arrayElementValidator:X})),qr(mt)===\"array\"&&mt.length===0&&ct.push(new ve(at.key,mt,\"array must have at least one stop\")),ct},default:function(at){return at.validateSpec({key:at.key,value:at.value,valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec})}}});return h===\"identity\"&&D&&q.push(new ve(u.key,u.value,'missing required property \"property\"')),h===\"identity\"||u.value.stops||q.push(new ve(u.key,u.value,'missing required property \"stops\"')),h===\"exponential\"&&u.valueSpec.expression&&!Sd(u.valueSpec)&&q.push(new ve(u.key,u.value,\"exponential functions not supported\")),u.styleSpec.$version>=8&&(F&&!mf(u.valueSpec)?q.push(new ve(u.key,u.value,\"property functions not supported\")):D&&!t_(u.valueSpec)&&q.push(new ve(u.key,u.value,\"zoom functions not supported\"))),h!==\"categorical\"&&!V||u.value.property!==void 0||q.push(new ve(u.key,u.value,'\"property\" property is required')),q;function X(at){let ct=[],mt=at.value,bt=at.key;if(qr(mt)!==\"array\")return[new ve(bt,mt,`array expected, ${qr(mt)} found`)];if(mt.length!==2)return[new ve(bt,mt,`array length 2 expected, length ${mt.length} found`)];if(V){if(qr(mt[0])!==\"object\")return[new ve(bt,mt,`object expected, ${qr(mt[0])} found`)];if(mt[0].zoom===void 0)return[new ve(bt,mt,\"object stop key must have zoom\")];if(mt[0].value===void 0)return[new ve(bt,mt,\"object stop key must have value\")];if(E&&E>Pn(mt[0].zoom))return[new ve(bt,mt[0].zoom,\"stop zoom values must appear in ascending order\")];Pn(mt[0].zoom)!==E&&(E=Pn(mt[0].zoom),x=void 0,P={}),ct=ct.concat(fi({key:`${bt}[0]`,value:mt[0],valueSpec:{zoom:{}},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,objectElementValidators:{zoom:_f,value:et}}))}else ct=ct.concat(et({key:`${bt}[0]`,value:mt[0],valueSpec:{},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec},mt));return Hp(oh(mt[1]))?ct.concat([new ve(`${bt}[1]`,mt[1],\"expressions are not allowed in function stops.\")]):ct.concat(at.validateSpec({key:`${bt}[1]`,value:mt[1],valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec}))}function et(at,ct){let mt=qr(at.value),bt=Pn(at.value),Et=at.value!==null?at.value:ct;if(A){if(mt!==A)return[new ve(at.key,Et,`${mt} stop domain type must match previous stop domain type ${A}`)]}else A=mt;if(mt!==\"number\"&&mt!==\"string\"&&mt!==\"boolean\")return[new ve(at.key,Et,\"stop domain value must be a number, string, or boolean\")];if(mt!==\"number\"&&h!==\"categorical\"){let Vt=`number expected, ${mt} found`;return mf(a)&&h===void 0&&(Vt+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new ve(at.key,Et,Vt)]}return h!==\"categorical\"||mt!==\"number\"||isFinite(bt)&&Math.floor(bt)===bt?h!==\"categorical\"&&mt===\"number\"&&x!==void 0&&btnew ve(`${u.key}${A.key}`,u.value,A.message));let h=a.value.expression||a.value._styleExpression.expression;if(u.expressionContext===\"property\"&&u.propertyKey===\"text-font\"&&!h.outputDefined())return[new ve(u.key,u.value,`Invalid data expression for \"${u.propertyKey}\". Output values must be contained as literals within the expression.`)];if(u.expressionContext===\"property\"&&u.propertyType===\"layout\"&&!Vp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(u.expressionContext===\"filter\"&&!Vp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with filters.')];if(u.expressionContext&&u.expressionContext.indexOf(\"cluster\")===0){if(!Vm(h,[\"zoom\",\"feature-state\"]))return[new ve(u.key,u.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(u.expressionContext===\"cluster-initial\"&&!Um(h))return[new ve(u.key,u.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return[]}function Id(u){let a=u.key,h=u.value,A=u.valueSpec,x=[];return Array.isArray(A.values)?A.values.indexOf(Pn(h))===-1&&x.push(new ve(a,h,`expected one of [${A.values.join(\", \")}], ${JSON.stringify(h)} found`)):Object.keys(A.values).indexOf(Pn(h))===-1&&x.push(new ve(a,h,`expected one of [${Object.keys(A.values).join(\", \")}], ${JSON.stringify(h)} found`)),x}function lh(u){return Ed(oh(u.value))?ah(Uo({},u,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):$p(u)}function $p(u){let a=u.value,h=u.key;if(qr(a)!==\"array\")return[new ve(h,a,`array expected, ${qr(a)} found`)];let A=u.styleSpec,x,E=[];if(a.length<1)return[new ve(h,a,\"filter array must have at least 1 element\")];switch(E=E.concat(Id({key:`${h}[0]`,value:a[0],valueSpec:A.filter_operator,style:u.style,styleSpec:u.styleSpec})),Pn(a[0])){case\"<\":case\"<=\":case\">\":case\">=\":a.length>=2&&Pn(a[1])===\"$type\"&&E.push(new ve(h,a,`\"$type\" cannot be use with operator \"${a[0]}\"`));case\"==\":case\"!=\":a.length!==3&&E.push(new ve(h,a,`filter array for operator \"${a[0]}\" must have 3 elements`));case\"in\":case\"!in\":a.length>=2&&(x=qr(a[1]),x!==\"string\"&&E.push(new ve(`${h}[1]`,a[1],`string expected, ${x} found`)));for(let P=2;P{V in h&&a.push(new ve(A,h[V],`\"${V}\" is prohibited for ref layers`))}),x.layers.forEach(V=>{Pn(V.id)===D&&(F=V)}),F?F.ref?a.push(new ve(A,h.ref,\"ref cannot reference another ref layer\")):P=Pn(F.type):a.push(new ve(A,h.ref,`ref layer \"${D}\" not found`))}else if(P!==\"background\")if(h.source){let F=x.sources&&x.sources[h.source],V=F&&Pn(F.type);F?V===\"vector\"&&P===\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster source`)):V!==\"raster-dem\"&&P===\"hillshade\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster-dem source`)):V===\"raster\"&&P!==\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a vector source`)):V!==\"vector\"||h[\"source-layer\"]?V===\"raster-dem\"&&P!==\"hillshade\"?a.push(new ve(A,h.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):P!==\"line\"||!h.paint||!h.paint[\"line-gradient\"]||V===\"geojson\"&&F.lineMetrics||a.push(new ve(A,h,`layer \"${h.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):a.push(new ve(A,h,`layer \"${h.id}\" must specify a \"source-layer\"`)):a.push(new ve(A,h.source,`source \"${h.source}\" not found`))}else a.push(new ve(A,h,'missing required property \"source\"'));return a=a.concat(fi({key:A,value:h,valueSpec:E.layer,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,objectElementValidators:{\"*\":()=>[],type:()=>u.validateSpec({key:`${A}.type`,value:h.type,valueSpec:E.layer.type,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,object:h,objectKey:\"type\"}),filter:lh,layout:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>s_(Uo({layerType:P},V))}}),paint:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>n_(Uo({layerType:P},V))}})}})),a}function hl(u){let a=u.value,h=u.key,A=qr(a);return A!==\"string\"?[new ve(h,a,`string expected, ${A} found`)]:[]}let ch={promoteId:function({key:u,value:a}){if(qr(a)===\"string\")return hl({key:u,value:a});{let h=[];for(let A in a)h.push(...hl({key:`${u}.${A}`,value:a[A]}));return h}}};function la(u){let a=u.value,h=u.key,A=u.styleSpec,x=u.style,E=u.validateSpec;if(!a.type)return[new ve(h,a,'\"type\" is required')];let P=Pn(a.type),D;switch(P){case\"vector\":case\"raster\":return D=fi({key:h,value:a,valueSpec:A[`source_${P.replace(\"-\",\"_\")}`],style:u.style,styleSpec:A,objectElementValidators:ch,validateSpec:E}),D;case\"raster-dem\":return D=function(F){var V;let q=(V=F.sourceName)!==null&&V!==void 0?V:\"\",X=F.value,et=F.styleSpec,at=et.source_raster_dem,ct=F.style,mt=[],bt=qr(X);if(X===void 0)return mt;if(bt!==\"object\")return mt.push(new ve(\"source_raster_dem\",X,`object expected, ${bt} found`)),mt;let Et=Pn(X.encoding)===\"custom\",Vt=[\"redFactor\",\"greenFactor\",\"blueFactor\",\"baseShift\"],kt=F.value.encoding?`\"${F.value.encoding}\"`:\"Default\";for(let jt in X)!Et&&Vt.includes(jt)?mt.push(new ve(jt,X[jt],`In \"${q}\": \"${jt}\" is only valid when \"encoding\" is set to \"custom\". ${kt} encoding found`)):at[jt]?mt=mt.concat(F.validateSpec({key:jt,value:X[jt],valueSpec:at[jt],validateSpec:F.validateSpec,style:ct,styleSpec:et})):mt.push(new ve(jt,X[jt],`unknown property \"${jt}\"`));return mt}({sourceName:h,value:a,style:u.style,styleSpec:A,validateSpec:E}),D;case\"geojson\":if(D=fi({key:h,value:a,valueSpec:A.source_geojson,style:x,styleSpec:A,validateSpec:E,objectElementValidators:ch}),a.cluster)for(let F in a.clusterProperties){let[V,q]=a.clusterProperties[F],X=typeof V==\"string\"?[V,[\"accumulated\"],[\"get\",F]]:V;D.push(...ah({key:`${h}.${F}.map`,value:q,validateSpec:E,expressionContext:\"cluster-map\"})),D.push(...ah({key:`${h}.${F}.reduce`,value:X,validateSpec:E,expressionContext:\"cluster-reduce\"}))}return D;case\"video\":return fi({key:h,value:a,valueSpec:A.source_video,style:x,validateSpec:E,styleSpec:A});case\"image\":return fi({key:h,value:a,valueSpec:A.source_image,style:x,validateSpec:E,styleSpec:A});case\"canvas\":return[new ve(h,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Id({key:`${h}.type`,value:a.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:x,validateSpec:E,styleSpec:A})}}function Cd(u){let a=u.value,h=u.styleSpec,A=h.light,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"light\",a,`object expected, ${P} found`)]),E;for(let D in a){let F=D.match(/^(.*)-transition$/);E=E.concat(F&&A[F[1]]&&A[F[1]].transition?u.validateSpec({key:D,value:a[D],valueSpec:h.transition,validateSpec:u.validateSpec,style:x,styleSpec:h}):A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)])}return E}function o_(u){let a=u.value,h=u.styleSpec,A=h.terrain,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"terrain\",a,`object expected, ${P} found`)]),E;for(let D in a)E=E.concat(A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)]);return E}function Fs(u){let a=[],h=u.value,A=u.key;if(Array.isArray(h)){let x=[],E=[];for(let P in h)h[P].id&&x.includes(h[P].id)&&a.push(new ve(A,h,`all the sprites' ids must be unique, but ${h[P].id} is duplicated`)),x.push(h[P].id),h[P].url&&E.includes(h[P].url)&&a.push(new ve(A,h,`all the sprites' URLs must be unique, but ${h[P].url} is duplicated`)),E.push(h[P].url),a=a.concat(fi({key:`${A}[${P}]`,value:h[P],valueSpec:{id:{type:\"string\",required:!0},url:{type:\"string\",required:!0}},validateSpec:u.validateSpec}));return a}return hl({key:A,value:h})}let pu={\"*\":()=>[],array:du,boolean:function(u){let a=u.value,h=u.key,A=qr(a);return A!==\"boolean\"?[new ve(h,a,`boolean expected, ${A} found`)]:[]},number:_f,color:function(u){let a=u.key,h=u.value,A=qr(h);return A!==\"string\"?[new ve(a,h,`color expected, ${A} found`)]:ai.parse(String(h))?[]:[new ve(a,h,`color expected, \"${h}\" found`)]},constants:Km,enum:Id,filter:lh,function:Qp,layer:Jm,object:fi,source:la,light:Cd,terrain:o_,string:hl,formatted:function(u){return hl(u).length===0?[]:ah(u)},resolvedImage:function(u){return hl(u).length===0?[]:ah(u)},padding:function(u){let a=u.key,h=u.value;if(qr(h)===\"array\"){if(h.length<1||h.length>4)return[new ve(a,h,`padding requires 1 to 4 values; ${h.length} values found`)];let A={type:\"number\"},x=[];for(let E=0;E[]}})),u.constants&&(h=h.concat(Km({key:\"constants\",value:u.constants,style:u,styleSpec:a,validateSpec:In}))),Ld(h)}function Ba(u){return function(a){return u({...a,validateSpec:In})}}function Ld(u){return[].concat(u).sort((a,h)=>a.line-h.line)}function fl(u){return function(...a){return Ld(u.apply(this,a))}}ca.source=fl(Ba(la)),ca.sprite=fl(Ba(Fs)),ca.glyphs=fl(Ba(Kp)),ca.light=fl(Ba(Cd)),ca.terrain=fl(Ba(o_)),ca.layer=fl(Ba(Jm)),ca.filter=fl(Ba(lh)),ca.paintProperty=fl(Ba(n_)),ca.layoutProperty=fl(Ba(s_));let Fa=ca,uh=Fa.light,Jp=Fa.paintProperty,t0=Fa.layoutProperty;function hh(u,a){let h=!1;if(a&&a.length)for(let A of a)u.fire(new to(new Error(A.message))),h=!0;return h}class za{constructor(a,h,A){let x=this.cells=[];if(a instanceof ArrayBuffer){this.arrayBuffer=a;let P=new Int32Array(this.arrayBuffer);a=P[0],this.d=(h=P[1])+2*(A=P[2]);for(let F=0;F=X[ct+0]&&x>=X[ct+1])?(D[at]=!0,P.push(q[at])):D[at]=!1}}}}_forEachCell(a,h,A,x,E,P,D,F){let V=this._convertToCellCoord(a),q=this._convertToCellCoord(h),X=this._convertToCellCoord(A),et=this._convertToCellCoord(x);for(let at=V;at<=X;at++)for(let ct=q;ct<=et;ct++){let mt=this.d*ct+at;if((!F||F(this._convertFromCellCoord(at),this._convertFromCellCoord(ct),this._convertFromCellCoord(at+1),this._convertFromCellCoord(ct+1)))&&E.call(this,a,h,A,x,mt,P,D,F))return}}_convertFromCellCoord(a){return(a-this.padding)/this.scale}_convertToCellCoord(a){return Math.max(0,Math.min(this.d-1,Math.floor(a*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let a=this.cells,h=3+this.cells.length+1+1,A=0;for(let P=0;P=0)continue;let P=u[E];x[E]=ro[A].shallow.indexOf(E)>=0?P:Vl(P,a)}u instanceof Error&&(x.message=u.message)}if(x.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return A!==\"Object\"&&(x.$name=A),x}throw new Error(\"can't serialize object of type \"+typeof u)}function yf(u){if(u==null||typeof u==\"boolean\"||typeof u==\"number\"||typeof u==\"string\"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob||kd(u)||Pc(u)||ArrayBuffer.isView(u)||u instanceof ImageData)return u;if(Array.isArray(u))return u.map(yf);if(typeof u==\"object\"){let a=u.$name||\"Object\";if(!ro[a])throw new Error(`can't deserialize unregistered class ${a}`);let{klass:h}=ro[a];if(!h)throw new Error(`can't deserialize unregistered class ${a}`);if(h.deserialize)return h.deserialize(u);let A=Object.create(h.prototype);for(let x of Object.keys(u)){if(x===\"$name\")continue;let E=u[x];A[x]=ro[a].shallow.indexOf(x)>=0?E:yf(E)}return A}throw new Error(\"can't deserialize object of type \"+typeof u)}class a_{constructor(){this.first=!0}update(a,h){let A=Math.floor(a);return this.first?(this.first=!1,this.lastIntegerZoom=A,this.lastIntegerZoomTime=0,this.lastZoom=a,this.lastFloorZoom=A,!0):(this.lastFloorZoom>A?(this.lastIntegerZoom=A+1,this.lastIntegerZoomTime=h):this.lastFloorZoomu>=128&&u<=255,Arabic:u=>u>=1536&&u<=1791,\"Arabic Supplement\":u=>u>=1872&&u<=1919,\"Arabic Extended-A\":u=>u>=2208&&u<=2303,\"Hangul Jamo\":u=>u>=4352&&u<=4607,\"Unified Canadian Aboriginal Syllabics\":u=>u>=5120&&u<=5759,Khmer:u=>u>=6016&&u<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":u=>u>=6320&&u<=6399,\"General Punctuation\":u=>u>=8192&&u<=8303,\"Letterlike Symbols\":u=>u>=8448&&u<=8527,\"Number Forms\":u=>u>=8528&&u<=8591,\"Miscellaneous Technical\":u=>u>=8960&&u<=9215,\"Control Pictures\":u=>u>=9216&&u<=9279,\"Optical Character Recognition\":u=>u>=9280&&u<=9311,\"Enclosed Alphanumerics\":u=>u>=9312&&u<=9471,\"Geometric Shapes\":u=>u>=9632&&u<=9727,\"Miscellaneous Symbols\":u=>u>=9728&&u<=9983,\"Miscellaneous Symbols and Arrows\":u=>u>=11008&&u<=11263,\"CJK Radicals Supplement\":u=>u>=11904&&u<=12031,\"Kangxi Radicals\":u=>u>=12032&&u<=12255,\"Ideographic Description Characters\":u=>u>=12272&&u<=12287,\"CJK Symbols and Punctuation\":u=>u>=12288&&u<=12351,Hiragana:u=>u>=12352&&u<=12447,Katakana:u=>u>=12448&&u<=12543,Bopomofo:u=>u>=12544&&u<=12591,\"Hangul Compatibility Jamo\":u=>u>=12592&&u<=12687,Kanbun:u=>u>=12688&&u<=12703,\"Bopomofo Extended\":u=>u>=12704&&u<=12735,\"CJK Strokes\":u=>u>=12736&&u<=12783,\"Katakana Phonetic Extensions\":u=>u>=12784&&u<=12799,\"Enclosed CJK Letters and Months\":u=>u>=12800&&u<=13055,\"CJK Compatibility\":u=>u>=13056&&u<=13311,\"CJK Unified Ideographs Extension A\":u=>u>=13312&&u<=19903,\"Yijing Hexagram Symbols\":u=>u>=19904&&u<=19967,\"CJK Unified Ideographs\":u=>u>=19968&&u<=40959,\"Yi Syllables\":u=>u>=40960&&u<=42127,\"Yi Radicals\":u=>u>=42128&&u<=42191,\"Hangul Jamo Extended-A\":u=>u>=43360&&u<=43391,\"Hangul Syllables\":u=>u>=44032&&u<=55215,\"Hangul Jamo Extended-B\":u=>u>=55216&&u<=55295,\"Private Use Area\":u=>u>=57344&&u<=63743,\"CJK Compatibility Ideographs\":u=>u>=63744&&u<=64255,\"Arabic Presentation Forms-A\":u=>u>=64336&&u<=65023,\"Vertical Forms\":u=>u>=65040&&u<=65055,\"CJK Compatibility Forms\":u=>u>=65072&&u<=65103,\"Small Form Variants\":u=>u>=65104&&u<=65135,\"Arabic Presentation Forms-B\":u=>u>=65136&&u<=65279,\"Halfwidth and Fullwidth Forms\":u=>u>=65280&&u<=65519};function e0(u){for(let a of u)if(fh(a.charCodeAt(0)))return!0;return!1}function r0(u){for(let a of u)if(!Ix(a.charCodeAt(0)))return!1;return!0}function Ix(u){return!(Re.Arabic(u)||Re[\"Arabic Supplement\"](u)||Re[\"Arabic Extended-A\"](u)||Re[\"Arabic Presentation Forms-A\"](u)||Re[\"Arabic Presentation Forms-B\"](u))}function fh(u){return!(u!==746&&u!==747&&(u<4352||!(Re[\"Bopomofo Extended\"](u)||Re.Bopomofo(u)||Re[\"CJK Compatibility Forms\"](u)&&!(u>=65097&&u<=65103)||Re[\"CJK Compatibility Ideographs\"](u)||Re[\"CJK Compatibility\"](u)||Re[\"CJK Radicals Supplement\"](u)||Re[\"CJK Strokes\"](u)||!(!Re[\"CJK Symbols and Punctuation\"](u)||u>=12296&&u<=12305||u>=12308&&u<=12319||u===12336)||Re[\"CJK Unified Ideographs Extension A\"](u)||Re[\"CJK Unified Ideographs\"](u)||Re[\"Enclosed CJK Letters and Months\"](u)||Re[\"Hangul Compatibility Jamo\"](u)||Re[\"Hangul Jamo Extended-A\"](u)||Re[\"Hangul Jamo Extended-B\"](u)||Re[\"Hangul Jamo\"](u)||Re[\"Hangul Syllables\"](u)||Re.Hiragana(u)||Re[\"Ideographic Description Characters\"](u)||Re.Kanbun(u)||Re[\"Kangxi Radicals\"](u)||Re[\"Katakana Phonetic Extensions\"](u)||Re.Katakana(u)&&u!==12540||!(!Re[\"Halfwidth and Fullwidth Forms\"](u)||u===65288||u===65289||u===65293||u>=65306&&u<=65310||u===65339||u===65341||u===65343||u>=65371&&u<=65503||u===65507||u>=65512&&u<=65519)||!(!Re[\"Small Form Variants\"](u)||u>=65112&&u<=65118||u>=65123&&u<=65126)||Re[\"Unified Canadian Aboriginal Syllabics\"](u)||Re[\"Unified Canadian Aboriginal Syllabics Extended\"](u)||Re[\"Vertical Forms\"](u)||Re[\"Yijing Hexagram Symbols\"](u)||Re[\"Yi Syllables\"](u)||Re[\"Yi Radicals\"](u))))}function l_(u){return!(fh(u)||function(a){return!!(Re[\"Latin-1 Supplement\"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Re[\"General Punctuation\"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Re[\"Letterlike Symbols\"](a)||Re[\"Number Forms\"](a)||Re[\"Miscellaneous Technical\"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Re[\"Control Pictures\"](a)&&a!==9251||Re[\"Optical Character Recognition\"](a)||Re[\"Enclosed Alphanumerics\"](a)||Re[\"Geometric Shapes\"](a)||Re[\"Miscellaneous Symbols\"](a)&&!(a>=9754&&a<=9759)||Re[\"Miscellaneous Symbols and Arrows\"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Re[\"CJK Symbols and Punctuation\"](a)||Re.Katakana(a)||Re[\"Private Use Area\"](a)||Re[\"CJK Compatibility Forms\"](a)||Re[\"Small Form Variants\"](a)||Re[\"Halfwidth and Fullwidth Forms\"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(u))}function i0(u){return u>=1424&&u<=2303||Re[\"Arabic Presentation Forms-A\"](u)||Re[\"Arabic Presentation Forms-B\"](u)}function n0(u,a){return!(!a&&i0(u)||u>=2304&&u<=3583||u>=3840&&u<=4255||Re.Khmer(u))}function vf(u){for(let a of u)if(i0(a.charCodeAt(0)))return!0;return!1}let s0=\"deferred\",tA=\"loading\",eA=\"loaded\",dh=null,ls=\"unavailable\",Au=null,Rc=function(u){u&&typeof u==\"string\"&&u.indexOf(\"NetworkError\")>-1&&(ls=\"error\"),dh&&dh(u)};function o0(){Rd.fire(new ss(\"pluginStateChange\",{pluginStatus:ls,pluginURL:Au}))}let Rd=new Ol,a0=function(){return ls},c_=function(){if(ls!==s0||!Au)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");ls=tA,o0(),Au&&ol({url:Au},u=>{u?Rc(u):(ls=eA,o0())})},ua={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ls===eA||ua.applyArabicShaping!=null,isLoading:()=>ls===tA,setState(u){if(!zi())throw new Error(\"Cannot set the state of the rtl-text-plugin when not in the web-worker context\");ls=u.pluginStatus,Au=u.pluginURL},isParsed(){if(!zi())throw new Error(\"rtl-text-plugin is only parsed on the worker-threads\");return ua.applyArabicShaping!=null&&ua.processBidirectionalText!=null&&ua.processStyledBidirectionalText!=null},getPluginURL(){if(!zi())throw new Error(\"rtl-text-plugin url can only be queried from the worker threads\");return Au}};class ln{constructor(a,h){this.zoom=a,h?(this.now=h.now,this.fadeDuration=h.fadeDuration,this.zoomHistory=h.zoomHistory,this.transition=h.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new a_,this.transition={})}isSupportedScript(a){return function(h,A){for(let x of h)if(!n0(x.charCodeAt(0),A))return!1;return!0}(a,ua.isLoaded())}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let a=this.zoom,h=a-Math.floor(a),A=this.crossFadingFactor();return a>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:h+(1-h)*A}:{fromScale:.5,toScale:1,t:1-(1-A)*h}}}class rA{constructor(a,h){this.property=a,this.value=h,this.expression=function(A,x){if(Qi(A))return new Td(A,x);if(Hp(A)){let E=$m(A,x);if(E.result===\"error\")throw new Error(E.value.map(P=>`${P.key}: ${P.message}`).join(\", \"));return E.value}{let E=A;return x.type===\"color\"&&typeof A==\"string\"?E=ai.parse(A):x.type!==\"padding\"||typeof A!=\"number\"&&!Array.isArray(A)?x.type===\"variableAnchorOffsetCollection\"&&Array.isArray(A)&&(E=Vo.parse(A)):E=kn.parse(A),{kind:\"constant\",evaluate:()=>E}}}(h===void 0?a.specification.default:h,a.specification)}isDataDriven(){return this.expression.kind===\"source\"||this.expression.kind===\"composite\"}possiblyEvaluate(a,h,A){return this.property.possiblyEvaluate(this,a,h,A)}}class l0{constructor(a){this.property=a,this.value=new rA(a,void 0)}transitioned(a,h){return new u_(this.property,this.value,h,Ot({},a.transition,this.transition),a.now)}untransitioned(){return new u_(this.property,this.value,null,{},0)}}class ph{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitionablePropertyValues)}getValue(a){return ue(this._values[a].value.value)}setValue(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new l0(this._values[a].property)),this._values[a].value=new rA(this._values[a].property,h===null?void 0:ue(h))}getTransition(a){return ue(this._values[a].transition)}setTransition(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new l0(this._values[a].property)),this._values[a].transition=ue(h)||void 0}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A);let x=this.getTransition(h);x!==void 0&&(a[`${h}-transition`]=x)}return a}transitioned(a,h){let A=new h_(this._properties);for(let x of Object.keys(this._values))A._values[x]=this._values[x].transitioned(a,h._values[x]);return A}untransitioned(){let a=new h_(this._properties);for(let h of Object.keys(this._values))a._values[h]=this._values[h].untransitioned();return a}}class u_{constructor(a,h,A,x,E){this.property=a,this.value=h,this.begin=E+x.delay||0,this.end=this.begin+x.duration||0,a.specification.transition&&(x.delay||x.duration)&&(this.prior=A)}possiblyEvaluate(a,h,A){let x=a.now||0,E=this.value.possiblyEvaluate(a,h,A),P=this.prior;if(P){if(x>this.end)return this.prior=null,E;if(this.value.isDataDriven())return this.prior=null,E;if(x=1)return 1;let V=F*F,q=V*F;return 4*(F<.5?q:3*(F-V)+q-.75)}(D))}}return E}}class h_{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitioningPropertyValues)}possiblyEvaluate(a,h,A){let x=new iA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}hasTransition(){for(let a of Object.keys(this._values))if(this._values[a].prior)return!0;return!1}}class Cx{constructor(a){this._properties=a,this._values=Object.create(a.defaultPropertyValues)}hasValue(a){return this._values[a].value!==void 0}getValue(a){return ue(this._values[a].value)}setValue(a,h){this._values[a]=new rA(this._values[a].property,h===null?void 0:ue(h))}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A)}return a}possiblyEvaluate(a,h,A){let x=new iA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}}class _o{constructor(a,h,A){this.property=a,this.value=h,this.parameters=A}isConstant(){return this.value.kind===\"constant\"}constantOr(a){return this.value.kind===\"constant\"?this.value.value:a}evaluate(a,h,A,x){return this.property.evaluate(this.value,this.parameters,a,h,A,x)}}class iA{constructor(a){this._properties=a,this._values=Object.create(a.defaultPossiblyEvaluatedValues)}get(a){return this._values[a]}}class rr{constructor(a){this.specification=a}possiblyEvaluate(a,h){if(a.isDataDriven())throw new Error(\"Value should not be data driven\");return a.expression.evaluate(h)}interpolate(a,h,A){let x=Ra[this.specification.type];return x?x(a,h,A):a}}class fr{constructor(a,h){this.specification=a,this.overrides=h}possiblyEvaluate(a,h,A,x){return new _o(this,a.expression.kind===\"constant\"||a.expression.kind===\"camera\"?{kind:\"constant\",value:a.expression.evaluate(h,null,{},A,x)}:a.expression,h)}interpolate(a,h,A){if(a.value.kind!==\"constant\"||h.value.kind!==\"constant\")return a;if(a.value.value===void 0||h.value.value===void 0)return new _o(this,{kind:\"constant\",value:void 0},a.parameters);let x=Ra[this.specification.type];if(x){let E=x(a.value.value,h.value.value,A);return new _o(this,{kind:\"constant\",value:E},a.parameters)}return a}evaluate(a,h,A,x,E,P){return a.kind===\"constant\"?a.value:a.evaluate(h,A,x,E,P)}}class xf extends fr{possiblyEvaluate(a,h,A,x){if(a.value===void 0)return new _o(this,{kind:\"constant\",value:void 0},h);if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x),P=a.property.specification.type===\"resolvedImage\"&&typeof E!=\"string\"?E.name:E,D=this._calculate(P,P,P,h);return new _o(this,{kind:\"constant\",value:D},h)}if(a.expression.kind===\"camera\"){let E=this._calculate(a.expression.evaluate({zoom:h.zoom-1}),a.expression.evaluate({zoom:h.zoom}),a.expression.evaluate({zoom:h.zoom+1}),h);return new _o(this,{kind:\"constant\",value:E},h)}return new _o(this,a.expression,h)}evaluate(a,h,A,x,E,P){if(a.kind===\"source\"){let D=a.evaluate(h,A,x,E,P);return this._calculate(D,D,D,h)}return a.kind===\"composite\"?this._calculate(a.evaluate({zoom:Math.floor(h.zoom)-1},A,x),a.evaluate({zoom:Math.floor(h.zoom)},A,x),a.evaluate({zoom:Math.floor(h.zoom)+1},A,x),h):a.value}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class nA{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){if(a.value!==void 0){if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x);return this._calculate(E,E,E,h)}return this._calculate(a.expression.evaluate(new ln(Math.floor(h.zoom-1),h)),a.expression.evaluate(new ln(Math.floor(h.zoom),h)),a.expression.evaluate(new ln(Math.floor(h.zoom+1),h)),h)}}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class Dd{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){return!!a.expression.evaluate(h,null,{},A,x)}interpolate(){return!1}}class Gn{constructor(a){this.properties=a,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let h in a){let A=a[h];A.specification.overridable&&this.overridableProperties.push(h);let x=this.defaultPropertyValues[h]=new rA(A,void 0),E=this.defaultTransitionablePropertyValues[h]=new l0(A);this.defaultTransitioningPropertyValues[h]=E.untransitioned(),this.defaultPossiblyEvaluatedValues[h]=x.possiblyEvaluate({})}}}Ue(\"DataDrivenProperty\",fr),Ue(\"DataConstantProperty\",rr),Ue(\"CrossFadedDataDrivenProperty\",xf),Ue(\"CrossFadedProperty\",nA),Ue(\"ColorRampProperty\",Dd);let io=\"-transition\";class Ui extends Ol{constructor(a,h){if(super(),this.id=a.id,this.type=a.type,this._featureFilter={filter:()=>!0,needGeometry:!1},a.type!==\"custom\"&&(this.metadata=a.metadata,this.minzoom=a.minzoom,this.maxzoom=a.maxzoom,a.type!==\"background\"&&(this.source=a.source,this.sourceLayer=a[\"source-layer\"],this.filter=a.filter),h.layout&&(this._unevaluatedLayout=new Cx(h.layout)),h.paint)){this._transitionablePaint=new ph(h.paint);for(let A in a.paint)this.setPaintProperty(A,a.paint[A],{validate:!1});for(let A in a.layout)this.setLayoutProperty(A,a.layout[A],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new iA(h.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(a){return a===\"visibility\"?this.visibility:this._unevaluatedLayout.getValue(a)}setLayoutProperty(a,h,A={}){h!=null&&this._validate(t0,`layers.${this.id}.layout.${a}`,a,h,A)||(a!==\"visibility\"?this._unevaluatedLayout.setValue(a,h):this.visibility=h)}getPaintProperty(a){return a.endsWith(io)?this._transitionablePaint.getTransition(a.slice(0,-11)):this._transitionablePaint.getValue(a)}setPaintProperty(a,h,A={}){if(h!=null&&this._validate(Jp,`layers.${this.id}.paint.${a}`,a,h,A))return!1;if(a.endsWith(io))return this._transitionablePaint.setTransition(a.slice(0,-11),h||void 0),!1;{let x=this._transitionablePaint._values[a],E=x.property.specification[\"property-type\"]===\"cross-faded-data-driven\",P=x.value.isDataDriven(),D=x.value;this._transitionablePaint.setValue(a,h),this._handleSpecialPaintPropertyUpdate(a);let F=this._transitionablePaint._values[a].value;return F.isDataDriven()||P||E||this._handleOverridablePaintPropertyUpdate(a,D,F)}}_handleSpecialPaintPropertyUpdate(a){}_handleOverridablePaintPropertyUpdate(a,h,A){return!1}isHidden(a){return!!(this.minzoom&&a=this.maxzoom)||this.visibility===\"none\"}updateTransitions(a){this._transitioningPaint=this._transitionablePaint.transitioned(a,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(a,h){a.getCrossfadeParameters&&(this._crossfadeParameters=a.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(a,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(a,void 0,h)}serialize(){let a={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(a.layout=a.layout||{},a.layout.visibility=this.visibility),le(a,(h,A)=>!(h===void 0||A===\"layout\"&&!Object.keys(h).length||A===\"paint\"&&!Object.keys(h).length))}_validate(a,h,A,x,E={}){return(!E||E.validate!==!1)&&hh(this,a.call(Fa,{key:h,layerType:this.type,objectKey:A,value:x,styleSpec:te,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let a in this.paint._values){let h=this.paint.get(a);if(h instanceof _o&&mf(h.property.specification)&&(h.value.kind===\"source\"||h.value.kind===\"composite\")&&h.value.isStateDependent)return!0}return!1}}let f_={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Ah{constructor(a,h){this._structArray=a,this._pos1=h*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Cn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(a,h){return a._trim(),h&&(a.isTransferred=!0,h.push(a.arrayBuffer)),{length:a.length,arrayBuffer:a.arrayBuffer}}static deserialize(a){let h=Object.create(this.prototype);return h.arrayBuffer=a.arrayBuffer,h.length=a.length,h.capacity=a.arrayBuffer.byteLength/h.bytesPerElement,h._refreshViews(),h}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(a){this.reserve(a),this.length=a}reserve(a){if(a>this.capacity){this.capacity=Math.max(a,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let h=this.uint8;this._refreshViews(),h&&this.uint8.set(h)}}_refreshViews(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")}}function yn(u,a=1){let h=0,A=0;return{members:u.map(x=>{let E=f_[x.type].BYTES_PER_ELEMENT,P=h=bf(h,Math.max(a,E)),D=x.components||1;return A=Math.max(A,E),h+=E*D,{name:x.name,type:x.type,components:D,offset:P}}),size:bf(h,Math.max(A,a)),alignment:a}}function bf(u,a){return Math.ceil(u/a)*a}class Ms extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.int16[x+0]=h,this.int16[x+1]=A,a}}Ms.prototype.bytesPerElement=4,Ue(\"StructArrayLayout2i4\",Ms);class mh extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.int16[E+0]=h,this.int16[E+1]=A,this.int16[E+2]=x,a}}mh.prototype.bytesPerElement=6,Ue(\"StructArrayLayout3i6\",mh);class jo extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.int16[P+0]=h,this.int16[P+1]=A,this.int16[P+2]=x,this.int16[P+3]=E,a}}jo.prototype.bytesPerElement=8,Ue(\"StructArrayLayout4i8\",jo);class c0 extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}c0.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2i4i12\",c0);class Od extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=4*a,V=8*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.uint8[V+4]=x,this.uint8[V+5]=E,this.uint8[V+6]=P,this.uint8[V+7]=D,a}}Od.prototype.bytesPerElement=8,Ue(\"StructArrayLayout2i4ub8\",Od);class wf extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.float32[x+0]=h,this.float32[x+1]=A,a}}wf.prototype.bytesPerElement=8,Ue(\"StructArrayLayout2f8\",wf);class Go extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q){let X=this.length;return this.resize(X+1),this.emplace(X,a,h,A,x,E,P,D,F,V,q)}emplace(a,h,A,x,E,P,D,F,V,q,X){let et=10*a;return this.uint16[et+0]=h,this.uint16[et+1]=A,this.uint16[et+2]=x,this.uint16[et+3]=E,this.uint16[et+4]=P,this.uint16[et+5]=D,this.uint16[et+6]=F,this.uint16[et+7]=V,this.uint16[et+8]=q,this.uint16[et+9]=X,a}}Go.prototype.bytesPerElement=20,Ue(\"StructArrayLayout10ui20\",Go);class sA extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et){let at=this.length;return this.resize(at+1),this.emplace(at,a,h,A,x,E,P,D,F,V,q,X,et)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at){let ct=12*a;return this.int16[ct+0]=h,this.int16[ct+1]=A,this.int16[ct+2]=x,this.int16[ct+3]=E,this.uint16[ct+4]=P,this.uint16[ct+5]=D,this.uint16[ct+6]=F,this.uint16[ct+7]=V,this.int16[ct+8]=q,this.int16[ct+9]=X,this.int16[ct+10]=et,this.int16[ct+11]=at,a}}sA.prototype.bytesPerElement=24,Ue(\"StructArrayLayout4i4ui4i24\",sA);class xi extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.float32[E+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}xi.prototype.bytesPerElement=12,Ue(\"StructArrayLayout3f12\",xi);class T extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint32[1*a+0]=h,a}}T.prototype.bytesPerElement=4,Ue(\"StructArrayLayout1ul4\",T);class l extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V){let q=this.length;return this.resize(q+1),this.emplace(q,a,h,A,x,E,P,D,F,V)}emplace(a,h,A,x,E,P,D,F,V,q){let X=10*a,et=5*a;return this.int16[X+0]=h,this.int16[X+1]=A,this.int16[X+2]=x,this.int16[X+3]=E,this.int16[X+4]=P,this.int16[X+5]=D,this.uint32[et+3]=F,this.uint16[X+8]=V,this.uint16[X+9]=q,a}}l.prototype.bytesPerElement=20,Ue(\"StructArrayLayout6i1ul2ui20\",l);class d extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}d.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2i2i2i12\",d);class v extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E){let P=this.length;return this.resize(P+1),this.emplace(P,a,h,A,x,E)}emplace(a,h,A,x,E,P){let D=4*a,F=8*a;return this.float32[D+0]=h,this.float32[D+1]=A,this.float32[D+2]=x,this.int16[F+6]=E,this.int16[F+7]=P,a}}v.prototype.bytesPerElement=16,Ue(\"StructArrayLayout2f1f2i16\",v);class b extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=12*a,D=3*a;return this.uint8[P+0]=h,this.uint8[P+1]=A,this.float32[D+1]=x,this.float32[D+2]=E,a}}b.prototype.bytesPerElement=12,Ue(\"StructArrayLayout2ub2f12\",b);class M extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[E+0]=h,this.uint16[E+1]=A,this.uint16[E+2]=x,a}}M.prototype.bytesPerElement=6,Ue(\"StructArrayLayout3ui6\",M);class O extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et){let Vt=this.length;return this.resize(Vt+1),this.emplace(Vt,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt){let kt=24*a,jt=12*a,qt=48*a;return this.int16[kt+0]=h,this.int16[kt+1]=A,this.uint16[kt+2]=x,this.uint16[kt+3]=E,this.uint32[jt+2]=P,this.uint32[jt+3]=D,this.uint32[jt+4]=F,this.uint16[kt+10]=V,this.uint16[kt+11]=q,this.uint16[kt+12]=X,this.float32[jt+7]=et,this.float32[jt+8]=at,this.uint8[qt+36]=ct,this.uint8[qt+37]=mt,this.uint8[qt+38]=bt,this.uint32[jt+10]=Et,this.int16[kt+22]=Vt,a}}O.prototype.bytesPerElement=48,Ue(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",O);class B extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He){let Pe=this.length;return this.resize(Pe+1),this.emplace(Pe,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He)}emplace(a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt,bt,Et,Vt,kt,jt,qt,ae,Be,Je,Oe,ke,Te,He,Pe){let Ae=32*a,ur=16*a;return this.int16[Ae+0]=h,this.int16[Ae+1]=A,this.int16[Ae+2]=x,this.int16[Ae+3]=E,this.int16[Ae+4]=P,this.int16[Ae+5]=D,this.int16[Ae+6]=F,this.int16[Ae+7]=V,this.uint16[Ae+8]=q,this.uint16[Ae+9]=X,this.uint16[Ae+10]=et,this.uint16[Ae+11]=at,this.uint16[Ae+12]=ct,this.uint16[Ae+13]=mt,this.uint16[Ae+14]=bt,this.uint16[Ae+15]=Et,this.uint16[Ae+16]=Vt,this.uint16[Ae+17]=kt,this.uint16[Ae+18]=jt,this.uint16[Ae+19]=qt,this.uint16[Ae+20]=ae,this.uint16[Ae+21]=Be,this.uint16[Ae+22]=Je,this.uint32[ur+12]=Oe,this.float32[ur+13]=ke,this.float32[ur+14]=Te,this.uint16[Ae+30]=He,this.uint16[Ae+31]=Pe,a}}B.prototype.bytesPerElement=64,Ue(\"StructArrayLayout8i15ui1ul2f2ui64\",B);class U extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.float32[1*a+0]=h,a}}U.prototype.bytesPerElement=4,Ue(\"StructArrayLayout1f4\",U);class W extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[6*a+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}W.prototype.bytesPerElement=12,Ue(\"StructArrayLayout1ui2f12\",W);class Z extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=4*a;return this.uint32[2*a+0]=h,this.uint16[E+2]=A,this.uint16[E+3]=x,a}}Z.prototype.bytesPerElement=8,Ue(\"StructArrayLayout1ul2ui8\",Z);class Q extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.uint16[x+0]=h,this.uint16[x+1]=A,a}}Q.prototype.bytesPerElement=4,Ue(\"StructArrayLayout2ui4\",Q);class st extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint16[1*a+0]=h,a}}st.prototype.bytesPerElement=2,Ue(\"StructArrayLayout1ui2\",st);class At extends Cn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.float32[P+0]=h,this.float32[P+1]=A,this.float32[P+2]=x,this.float32[P+3]=E,a}}At.prototype.bytesPerElement=16,Ue(\"StructArrayLayout4f16\",At);class pt extends Ah{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new w(this.anchorPointX,this.anchorPointY)}}pt.prototype.size=20;class yt extends l{get(a){return new pt(this,a)}}Ue(\"CollisionBoxArray\",yt);class dt extends Ah{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(a){this._structArray.uint8[this._pos1+37]=a}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(a){this._structArray.uint8[this._pos1+38]=a}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(a){this._structArray.uint32[this._pos4+10]=a}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}dt.prototype.size=48;class Ft extends O{get(a){return new dt(this,a)}}Ue(\"PlacedSymbolArray\",Ft);class Wt extends Ah{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(a){this._structArray.uint32[this._pos4+12]=a}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}Wt.prototype.size=64;class St extends B{get(a){return new Wt(this,a)}}Ue(\"SymbolInstanceArray\",St);class Bt extends U{getoffsetX(a){return this.float32[1*a+0]}}Ue(\"GlyphOffsetArray\",Bt);class Yt extends mh{getx(a){return this.int16[3*a+0]}gety(a){return this.int16[3*a+1]}gettileUnitDistanceFromAnchor(a){return this.int16[3*a+2]}}Ue(\"SymbolLineVertexArray\",Yt);class Qt extends Ah{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}Qt.prototype.size=12;class se extends W{get(a){return new Qt(this,a)}}Ue(\"TextAnchorOffsetArray\",se);class pe extends Ah{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}pe.prototype.size=8;class he extends Z{get(a){return new pe(this,a)}}Ue(\"FeatureIndexArray\",he);class xe extends Ms{}class We extends Ms{}class Kr extends Ms{}class Me extends c0{}class dr extends Od{}class Xe extends wf{}class Vi extends Go{}class Jr extends sA{}class Vr extends xi{}class ei extends T{}class Rn extends d{}class $i extends b{}class zs extends M{}class cs extends Q{}let Dn=yn([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:Wo}=Dn;class jr{constructor(a=[]){this.segments=a}prepareSegment(a,h,A,x){let E=this.segments[this.segments.length-1];return a>jr.MAX_VERTEX_ARRAY_LENGTH&&tr(`Max vertices per segment is ${jr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${a}`),(!E||E.vertexLength+a>jr.MAX_VERTEX_ARRAY_LENGTH||E.sortKey!==x)&&(E={vertexOffset:h.length,primitiveOffset:A.length,vertexLength:0,primitiveLength:0},x!==void 0&&(E.sortKey=x),this.segments.push(E)),E}get(){return this.segments}destroy(){for(let a of this.segments)for(let h in a.vaos)a.vaos[h].destroy()}static simpleSegment(a,h,A,x){return new jr([{vertexOffset:a,primitiveOffset:h,vertexLength:A,primitiveLength:x,vaos:{},sortKey:0}])}}function jl(u,a){return 256*(u=ut(Math.floor(u),0,255))+ut(Math.floor(a),0,255)}jr.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ue(\"SegmentVector\",jr);let Gl=yn([{name:\"a_pattern_from\",components:4,type:\"Uint16\"},{name:\"a_pattern_to\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio_from\",components:1,type:\"Uint16\"},{name:\"a_pixel_ratio_to\",components:1,type:\"Uint16\"}]);var mu={exports:{}},gu={exports:{}};gu.exports=function(u,a){var h,A,x,E,P,D,F,V;for(A=u.length-(h=3&u.length),x=a,P=3432918353,D=461845907,V=0;V>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295)<<13|x>>>19))+((5*(x>>>16)&65535)<<16)&4294967295))+((58964+(E>>>16)&65535)<<16);switch(F=0,h){case 3:F^=(255&u.charCodeAt(V+2))<<16;case 2:F^=(255&u.charCodeAt(V+1))<<8;case 1:x^=F=(65535&(F=(F=(65535&(F^=255&u.charCodeAt(V)))*P+(((F>>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295}return x^=u.length,x=2246822507*(65535&(x^=x>>>16))+((2246822507*(x>>>16)&65535)<<16)&4294967295,x=3266489909*(65535&(x^=x>>>13))+((3266489909*(x>>>16)&65535)<<16)&4294967295,(x^=x>>>16)>>>0};var gh=gu.exports,Ns={exports:{}};Ns.exports=function(u,a){for(var h,A=u.length,x=a^A,E=0;A>=4;)h=1540483477*(65535&(h=255&u.charCodeAt(E)|(255&u.charCodeAt(++E))<<8|(255&u.charCodeAt(++E))<<16|(255&u.charCodeAt(++E))<<24))+((1540483477*(h>>>16)&65535)<<16),x=1540483477*(65535&x)+((1540483477*(x>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),A-=4,++E;switch(A){case 3:x^=(255&u.charCodeAt(E+2))<<16;case 2:x^=(255&u.charCodeAt(E+1))<<8;case 1:x=1540483477*(65535&(x^=255&u.charCodeAt(E)))+((1540483477*(x>>>16)&65535)<<16)}return x=1540483477*(65535&(x^=x>>>13))+((1540483477*(x>>>16)&65535)<<16),(x^=x>>>15)>>>0};var Es=gh,yo=Ns.exports;mu.exports=Es,mu.exports.murmur3=Es,mu.exports.murmur2=yo;var _h=c(mu.exports);class On{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(a,h,A,x){this.ids.push(us(a)),this.positions.push(h,A,x)}getPositions(a){if(!this.indexed)throw new Error(\"Trying to get index, but feature positions are not indexed\");let h=us(a),A=0,x=this.ids.length-1;for(;A>1;this.ids[P]>=h?x=P:A=P+1}let E=[];for(;this.ids[A]===h;)E.push({index:this.positions[3*A],start:this.positions[3*A+1],end:this.positions[3*A+2]}),A++;return E}static serialize(a,h){let A=new Float64Array(a.ids),x=new Uint32Array(a.positions);return Ho(A,x,0,A.length-1),h&&h.push(A.buffer,x.buffer),{ids:A,positions:x}}static deserialize(a){let h=new On;return h.ids=a.ids,h.positions=a.positions,h.indexed=!0,h}}function us(u){let a=+u;return!isNaN(a)&&a<=Number.MAX_SAFE_INTEGER?a:_h(String(u))}function Ho(u,a,h,A){for(;h>1],E=h-1,P=A+1;for(;;){do E++;while(u[E]x);if(E>=P)break;pn(u,E,P),pn(a,3*E,3*P),pn(a,3*E+1,3*P+1),pn(a,3*E+2,3*P+2)}P-h`u_${x}`),this.type=A}setUniform(a,h,A){a.set(A.constantOr(this.value))}getBinding(a,h,A){return this.type===\"color\"?new d_(a,h):new Gr(a,h)}}class qo{constructor(a,h){this.uniformNames=h.map(A=>`u_${A}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(a,h){this.pixelRatioFrom=h.pixelRatio,this.pixelRatioTo=a.pixelRatio,this.patternFrom=h.tlbr,this.patternTo=a.tlbr}setUniform(a,h,A,x){let E=x===\"u_pattern_to\"?this.patternTo:x===\"u_pattern_from\"?this.patternFrom:x===\"u_pixel_ratio_to\"?this.pixelRatioTo:x===\"u_pixel_ratio_from\"?this.pixelRatioFrom:null;E&&a.set(E)}getBinding(a,h,A){return A.substr(0,9)===\"u_pattern\"?new Na(a,h):new Gr(a,h)}}class me{constructor(a,h,A,x){this.expression=a,this.type=A,this.maxValue=0,this.paintVertexAttributes=h.map(E=>({name:`a_${E}`,type:\"Float32\",components:A===\"color\"?2:1,offset:0})),this.paintVertexArray=new x}populatePaintArray(a,h,A,x,E){let P=this.paintVertexArray.length,D=this.expression.evaluate(new ln(0),h,{},x,[],E);this.paintVertexArray.resize(a),this._setPaintValue(P,a,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:0},A,x);this._setPaintValue(a,h,E)}_setPaintValue(a,h,A){if(this.type===\"color\"){let x=oA(A);for(let E=a;E`u_${D}_t`),this.type=A,this.useIntegerZoom=x,this.zoom=E,this.maxValue=0,this.paintVertexAttributes=h.map(D=>({name:`a_${D}`,type:\"Float32\",components:A===\"color\"?4:2,offset:0})),this.paintVertexArray=new P}populatePaintArray(a,h,A,x,E){let P=this.expression.evaluate(new ln(this.zoom),h,{},x,[],E),D=this.expression.evaluate(new ln(this.zoom+1),h,{},x,[],E),F=this.paintVertexArray.length;this.paintVertexArray.resize(a),this._setPaintValue(F,a,P,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:this.zoom},A,x),P=this.expression.evaluate({zoom:this.zoom+1},A,x);this._setPaintValue(a,h,E,P)}_setPaintValue(a,h,A,x){if(this.type===\"color\"){let E=oA(A),P=oA(x);for(let D=a;D`#define HAS_UNIFORM_${x}`))}return a}getBinderAttributes(){let a=[];for(let h in this.binders){let A=this.binders[h];if(A instanceof me||A instanceof Le)for(let x=0;x!0){this.programConfigurations={};for(let x of a)this.programConfigurations[x.id]=new Sf(x,h,A);this.needsUpload=!1,this._featureMap=new On,this._bufferOffset=0}populatePaintArrays(a,h,A,x,E,P){for(let D in this.programConfigurations)this.programConfigurations[D].populatePaintArrays(a,h,x,E,P);h.id!==void 0&&this._featureMap.add(h.id,A,this._bufferOffset,a),this._bufferOffset=a,this.needsUpload=!0}updatePaintArrays(a,h,A,x){for(let E of A)this.needsUpload=this.programConfigurations[E.id].updatePaintArrays(a,this._featureMap,h,E,x)||this.needsUpload}get(a){return this.programConfigurations[a]}upload(a){if(this.needsUpload){for(let h in this.programConfigurations)this.programConfigurations[h].upload(a);this.needsUpload=!1}}destroy(){for(let a in this.programConfigurations)this.programConfigurations[a].destroy()}}function Dc(u,a){return{\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"]}[u]||[u.replace(`${a}-`,\"\").replace(/-/g,\"_\")]}function Lx(u,a,h){let A={color:{source:wf,composite:At},number:{source:U,composite:wf}},x=function(E){return{\"line-pattern\":{source:Vi,composite:Vi},\"fill-pattern\":{source:Vi,composite:Vi},\"fill-extrusion-pattern\":{source:Vi,composite:Vi}}[E]}(u);return x&&x[h]||A[a][h]}Ue(\"ConstantBinder\",Wl),Ue(\"CrossFadedConstantBinder\",qo),Ue(\"SourceExpressionBinder\",me),Ue(\"CrossFadedCompositeBinder\",dl),Ue(\"CompositeExpressionBinder\",Le),Ue(\"ProgramConfiguration\",Sf,{omit:[\"_buffers\"]}),Ue(\"ProgramConfigurationSet\",Ua);let Xi=8192,p=Math.pow(2,14)-1,m=-p-1;function y(u){let a=Xi/u.extent,h=u.loadGeometry();for(let A=0;AP.x+1||FP.y+1)&&tr(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\")}}return h}function S(u,a){return{type:u.type,id:u.id,properties:u.properties,geometry:a?y(u):[]}}function I(u,a,h,A,x){u.emplaceBack(2*a+(A+1)/2,2*h+(x+1)/2)}class k{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new We,this.indexArray=new zs,this.segments=new jr,this.programConfigurations=new Ua(a.layers,a.zoom),this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){let x=this.layers[0],E=[],P=null,D=!1;x.type===\"circle\"&&(P=x.layout.get(\"circle-sort-key\"),D=!P.isConstant());for(let{feature:F,id:V,index:q,sourceLayerIndex:X}of a){let et=this.layers[0]._featureFilter.needGeometry,at=S(F,et);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),at,A))continue;let ct=D?P.evaluate(at,{},A):void 0,mt={id:V,properties:F.properties,type:F.type,sourceLayerIndex:X,index:q,geometry:et?at.geometry:y(F),patterns:{},sortKey:ct};E.push(mt)}D&&E.sort((F,V)=>F.sortKey-V.sortKey);for(let F of E){let{geometry:V,index:q,sourceLayerIndex:X}=F,et=a[q].feature;this.addFeature(F,V,q,A),h.featureIndex.insert(et,V,q,X,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,Wo),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(a,h,A,x){for(let E of h)for(let P of E){let D=P.x,F=P.y;if(D<0||D>=Xi||F<0||F>=Xi)continue;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,a.sortKey),q=V.vertexLength;I(this.layoutVertexArray,D,F,-1,-1),I(this.layoutVertexArray,D,F,1,-1),I(this.layoutVertexArray,D,F,1,1),I(this.layoutVertexArray,D,F,-1,1),this.indexArray.emplaceBack(q,q+1,q+2),this.indexArray.emplaceBack(q,q+3,q+2),V.vertexLength+=4,V.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,{},x)}}function L(u,a){for(let h=0;h1){if(ot(u,a))return!0;for(let A=0;A1?h:h.sub(a)._mult(x)._add(a))}function ee(u,a){let h,A,x,E=!1;for(let P=0;Pa.y!=x.y>a.y&&a.x<(x.x-A.x)*(a.y-A.y)/(x.y-A.y)+A.x&&(E=!E)}return E}function ie(u,a){let h=!1;for(let A=0,x=u.length-1;Aa.y!=P.y>a.y&&a.x<(P.x-E.x)*(a.y-E.y)/(P.y-E.y)+E.x&&(h=!h)}return h}function Ce(u,a,h){let A=h[0],x=h[2];if(u.xx.x&&a.x>x.x||u.yx.y&&a.y>x.y)return!1;let E=er(u,a,h[0]);return E!==er(u,a,h[1])||E!==er(u,a,h[2])||E!==er(u,a,h[3])}function Ve(u,a,h){let A=a.paint.get(u).value;return A.kind===\"constant\"?A.value:h.programConfigurations.get(a.id).getMaxValue(u)}function Jt(u){return Math.sqrt(u[0]*u[0]+u[1]*u[1])}function _e(u,a,h,A,x){if(!a[0]&&!a[1])return u;let E=w.convert(a)._mult(x);h===\"viewport\"&&E._rotate(-A);let P=[];for(let D=0;DAn(bt,mt))}(V,F),at=X?q*D:q;for(let ct of x)for(let mt of ct){let bt=X?mt:An(mt,F),Et=at,Vt=Ei([],[mt.x,mt.y,0,1],F);if(this.paint.get(\"circle-pitch-scale\")===\"viewport\"&&this.paint.get(\"circle-pitch-alignment\")===\"map\"?Et*=Vt[3]/P.cameraToCenterDistance:this.paint.get(\"circle-pitch-scale\")===\"map\"&&this.paint.get(\"circle-pitch-alignment\")===\"viewport\"&&(Et*=P.cameraToCenterDistance/Vt[3]),z(et,bt,Et))return!0}return!1}}function An(u,a){let h=Ei([],[u.x,u.y,0,1],a);return new w(h[0]/h[3],h[1]/h[3])}class Or extends k{}let b6;Ue(\"HeatmapBucket\",Or,{omit:[\"layers\"]});var Y$={get paint(){return b6=b6||new Gn({\"heatmap-radius\":new fr(te.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new fr(te.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new rr(te.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new Dd(te.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new rr(te.paint_heatmap[\"heatmap-opacity\"])})}};function HI(u,{width:a,height:h},A,x){if(x){if(x instanceof Uint8ClampedArray)x=new Uint8Array(x.buffer);else if(x.length!==a*h*A)throw new RangeError(`mismatched image size. expected: ${x.length} but got: ${a*h*A}`)}else x=new Uint8Array(a*h*A);return u.width=a,u.height=h,u.data=x,u}function w6(u,{width:a,height:h},A){if(a===u.width&&h===u.height)return;let x=HI({},{width:a,height:h},A);qI(u,x,{x:0,y:0},{x:0,y:0},{width:Math.min(u.width,a),height:Math.min(u.height,h)},A),u.width=a,u.height=h,u.data=x.data}function qI(u,a,h,A,x,E){if(x.width===0||x.height===0)return a;if(x.width>u.width||x.height>u.height||h.x>u.width-x.width||h.y>u.height-x.height)throw new RangeError(\"out of range source coordinates for image copy\");if(x.width>a.width||x.height>a.height||A.x>a.width-x.width||A.y>a.height-x.height)throw new RangeError(\"out of range destination coordinates for image copy\");let P=u.data,D=a.data;if(P===D)throw new Error(\"srcData equals dstData, so image is already copied\");for(let F=0;F{a[u.evaluationKey]=F;let V=u.expression.evaluate(a);x.data[P+D+0]=Math.floor(255*V.r/V.a),x.data[P+D+1]=Math.floor(255*V.g/V.a),x.data[P+D+2]=Math.floor(255*V.b/V.a),x.data[P+D+3]=Math.floor(255*V.a)};if(u.clips)for(let P=0,D=0;P80*h){A=E=u[0],x=P=u[1];for(var ct=h;ctE&&(E=D),F>P&&(P=F);V=(V=Math.max(E-A,P-x))!==0?32767/V:0}return Rx(et,at,h,A,x,V,0),at}function M6(u,a,h,A,x){var E,P;if(x===$I(u,a,h,A)>0)for(E=a;E=a;E-=A)P=I6(E,u[E],u[E+1],P);return P&&zS(P,P.next)&&(Ox(P),P=P.next),P}function u0(u,a){if(!u)return u;a||(a=u);var h,A=u;do if(h=!1,A.steiner||!zS(A,A.next)&&hs(A.prev,A,A.next)!==0)A=A.next;else{if(Ox(A),(A=a=A.prev)===A.next)break;h=!0}while(h||A!==a);return a}function Rx(u,a,h,A,x,E,P){if(u){!P&&E&&function(q,X,et,at){var ct=q;do ct.z===0&&(ct.z=YI(ct.x,ct.y,X,et,at)),ct.prevZ=ct.prev,ct.nextZ=ct.next,ct=ct.next;while(ct!==q);ct.prevZ.nextZ=null,ct.prevZ=null,function(mt){var bt,Et,Vt,kt,jt,qt,ae,Be,Je=1;do{for(Et=mt,mt=null,jt=null,qt=0;Et;){for(qt++,Vt=Et,ae=0,bt=0;bt0||Be>0&&Vt;)ae!==0&&(Be===0||!Vt||Et.z<=Vt.z)?(kt=Et,Et=Et.nextZ,ae--):(kt=Vt,Vt=Vt.nextZ,Be--),jt?jt.nextZ=kt:mt=kt,kt.prevZ=jt,jt=kt;Et=Vt}jt.nextZ=null,Je*=2}while(qt>1)}(ct)}(u,A,x,E);for(var D,F,V=u;u.prev!==u.next;)if(D=u.prev,F=u.next,E?eX(u,A,x,E):tX(u))a.push(D.i/h|0),a.push(u.i/h|0),a.push(F.i/h|0),Ox(u),u=F.next,V=F.next;else if((u=F)===V){P?P===1?Rx(u=rX(u0(u),a,h),a,h,A,x,E,2):P===2&&iX(u,a,h,A,x,E):Rx(u0(u),a,h,A,x,E,1);break}}}function tX(u){var a=u.prev,h=u,A=u.next;if(hs(a,h,A)>=0)return!1;for(var x=a.x,E=h.x,P=A.x,D=a.y,F=h.y,V=A.y,q=xE?x>P?x:P:E>P?E:P,at=D>F?D>V?D:V:F>V?F:V,ct=A.next;ct!==a;){if(ct.x>=q&&ct.x<=et&&ct.y>=X&&ct.y<=at&&p_(x,D,E,F,P,V,ct.x,ct.y)&&hs(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function eX(u,a,h,A){var x=u.prev,E=u,P=u.next;if(hs(x,E,P)>=0)return!1;for(var D=x.x,F=E.x,V=P.x,q=x.y,X=E.y,et=P.y,at=DF?D>V?D:V:F>V?F:V,bt=q>X?q>et?q:et:X>et?X:et,Et=YI(at,ct,a,h,A),Vt=YI(mt,bt,a,h,A),kt=u.prevZ,jt=u.nextZ;kt&&kt.z>=Et&&jt&&jt.z<=Vt;){if(kt.x>=at&&kt.x<=mt&&kt.y>=ct&&kt.y<=bt&&kt!==x&&kt!==P&&p_(D,q,F,X,V,et,kt.x,kt.y)&&hs(kt.prev,kt,kt.next)>=0||(kt=kt.prevZ,jt.x>=at&&jt.x<=mt&&jt.y>=ct&&jt.y<=bt&&jt!==x&&jt!==P&&p_(D,q,F,X,V,et,jt.x,jt.y)&&hs(jt.prev,jt,jt.next)>=0))return!1;jt=jt.nextZ}for(;kt&&kt.z>=Et;){if(kt.x>=at&&kt.x<=mt&&kt.y>=ct&&kt.y<=bt&&kt!==x&&kt!==P&&p_(D,q,F,X,V,et,kt.x,kt.y)&&hs(kt.prev,kt,kt.next)>=0)return!1;kt=kt.prevZ}for(;jt&&jt.z<=Vt;){if(jt.x>=at&&jt.x<=mt&&jt.y>=ct&&jt.y<=bt&&jt!==x&&jt!==P&&p_(D,q,F,X,V,et,jt.x,jt.y)&&hs(jt.prev,jt,jt.next)>=0)return!1;jt=jt.nextZ}return!0}function rX(u,a,h){var A=u;do{var x=A.prev,E=A.next.next;!zS(x,E)&&E6(x,A,A.next,E)&&Dx(x,E)&&Dx(E,x)&&(a.push(x.i/h|0),a.push(A.i/h|0),a.push(E.i/h|0),Ox(A),Ox(A.next),A=u=E),A=A.next}while(A!==u);return u0(A)}function iX(u,a,h,A,x,E){var P=u;do{for(var D=P.next.next;D!==P.prev;){if(P.i!==D.i&&lX(P,D)){var F=P6(P,D);return P=u0(P,P.next),F=u0(F,F.next),Rx(P,a,h,A,x,E,0),void Rx(F,a,h,A,x,E,0)}D=D.next}P=P.next}while(P!==u)}function nX(u,a){return u.x-a.x}function sX(u,a){var h=function(x,E){var P,D=E,F=x.x,V=x.y,q=-1/0;do{if(V<=D.y&&V>=D.next.y&&D.next.y!==D.y){var X=D.x+(V-D.y)*(D.next.x-D.x)/(D.next.y-D.y);if(X<=F&&X>q&&(q=X,P=D.x=D.x&&D.x>=ct&&F!==D.x&&p_(VP.x||D.x===P.x&&oX(P,D)))&&(P=D,bt=et)),D=D.next;while(D!==at);return P}(u,a);if(!h)return a;var A=P6(h,u);return u0(A,A.next),u0(h,h.next)}function oX(u,a){return hs(u.prev,u,a.prev)<0&&hs(a.next,u,u.next)<0}function YI(u,a,h,A,x){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=(u-h)*x|0)|u<<8))|u<<4))|u<<2))|u<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-A)*x|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function aX(u){var a=u,h=u;do(a.x=(u-P)*(E-D)&&(u-P)*(A-D)>=(h-P)*(a-D)&&(h-P)*(E-D)>=(x-P)*(A-D)}function lX(u,a){return u.next.i!==a.i&&u.prev.i!==a.i&&!function(h,A){var x=h;do{if(x.i!==h.i&&x.next.i!==h.i&&x.i!==A.i&&x.next.i!==A.i&&E6(x,x.next,h,A))return!0;x=x.next}while(x!==h);return!1}(u,a)&&(Dx(u,a)&&Dx(a,u)&&function(h,A){var x=h,E=!1,P=(h.x+A.x)/2,D=(h.y+A.y)/2;do x.y>D!=x.next.y>D&&x.next.y!==x.y&&P<(x.next.x-x.x)*(D-x.y)/(x.next.y-x.y)+x.x&&(E=!E),x=x.next;while(x!==h);return E}(u,a)&&(hs(u.prev,u,a.prev)||hs(u,a.prev,a))||zS(u,a)&&hs(u.prev,u,u.next)>0&&hs(a.prev,a,a.next)>0)}function hs(u,a,h){return(a.y-u.y)*(h.x-a.x)-(a.x-u.x)*(h.y-a.y)}function zS(u,a){return u.x===a.x&&u.y===a.y}function E6(u,a,h,A){var x=US(hs(u,a,h)),E=US(hs(u,a,A)),P=US(hs(h,A,u)),D=US(hs(h,A,a));return x!==E&&P!==D||!(x!==0||!NS(u,h,a))||!(E!==0||!NS(u,A,a))||!(P!==0||!NS(h,u,A))||!(D!==0||!NS(h,a,A))}function NS(u,a,h){return a.x<=Math.max(u.x,h.x)&&a.x>=Math.min(u.x,h.x)&&a.y<=Math.max(u.y,h.y)&&a.y>=Math.min(u.y,h.y)}function US(u){return u>0?1:u<0?-1:0}function Dx(u,a){return hs(u.prev,u,u.next)<0?hs(u,a,u.next)>=0&&hs(u,u.prev,a)>=0:hs(u,a,u.prev)<0||hs(u,u.next,a)<0}function P6(u,a){var h=new QI(u.i,u.x,u.y),A=new QI(a.i,a.x,a.y),x=u.next,E=a.prev;return u.next=a,a.prev=u,h.next=x,x.prev=h,A.next=h,h.prev=A,E.next=A,A.prev=E,A}function I6(u,a,h,A){var x=new QI(u,a,h);return A?(x.next=A.next,x.prev=A,A.next.prev=x,A.next=x):(x.prev=x,x.next=x),x}function Ox(u){u.next.prev=u.prev,u.prev.next=u.next,u.prevZ&&(u.prevZ.nextZ=u.nextZ),u.nextZ&&(u.nextZ.prevZ=u.prevZ)}function QI(u,a,h){this.i=u,this.x=a,this.y=h,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function $I(u,a,h,A){for(var x=0,E=a,P=h-A;E0&&h.holes.push(A+=u[x-1].length)}return h};var C6=c(ZI.exports);function cX(u,a,h,A,x){L6(u,a,h||0,A||u.length-1,x||uX)}function L6(u,a,h,A,x){for(;A>h;){if(A-h>600){var E=A-h+1,P=a-h+1,D=Math.log(E),F=.5*Math.exp(2*D/3),V=.5*Math.sqrt(D*F*(E-F)/E)*(P-E/2<0?-1:1);L6(u,a,Math.max(h,Math.floor(a-P*F/E+V)),Math.min(A,Math.floor(a+(E-P)*F/E+V)),x)}var q=u[a],X=h,et=A;for(Bx(u,h,a),x(u[A],q)>0&&Bx(u,h,A);X0;)et--}x(u[h],q)===0?Bx(u,h,et):Bx(u,++et,A),et<=a&&(h=et+1),a<=et&&(A=et-1)}}function Bx(u,a,h){var A=u[a];u[a]=u[h],u[h]=A}function uX(u,a){return ua?1:0}function XI(u,a){let h=u.length;if(h<=1)return[u];let A=[],x,E;for(let P=0;P1)for(let P=0;Ph.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Kr,this.indexArray=new zs,this.indexArray2=new cs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.segments2=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=KI(\"fill\",this.layers,h);let x=this.layers[0].layout.get(\"fill-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,et=S(D,X);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),et,A))continue;let at=E?x.evaluate(et,{},A,h.availableImages):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?et.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=JI(\"fill\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,J$),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.indexBuffer2=a.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(a,h,A,x,E){for(let P of XI(h,500)){let D=0;for(let at of P)D+=at.length;let F=this.segments.prepareSegment(D,this.layoutVertexArray,this.indexArray),V=F.vertexLength,q=[],X=[];for(let at of P){if(at.length===0)continue;at!==P[0]&&X.push(q.length/2);let ct=this.segments2.prepareSegment(at.length,this.layoutVertexArray,this.indexArray2),mt=ct.vertexLength;this.layoutVertexArray.emplaceBack(at[0].x,at[0].y),this.indexArray2.emplaceBack(mt+at.length-1,mt),q.push(at[0].x),q.push(at[0].y);for(let bt=1;bt>3}if(x--,A===1||A===2)E+=u.readSVarint(),P+=u.readSVarint(),A===1&&(a&&D.push(a),a=[]),a.push(new gX(E,P));else{if(A!==7)throw new Error(\"unknown command \"+A);a&&a.push(a[0].clone())}}return a&&D.push(a),D},A_.prototype.bbox=function(){var u=this._pbf;u.pos=this._geometry;for(var a=u.readVarint()+u.pos,h=1,A=0,x=0,E=0,P=1/0,D=-1/0,F=1/0,V=-1/0;u.pos>3}if(A--,h===1||h===2)(x+=u.readSVarint())D&&(D=x),(E+=u.readSVarint())V&&(V=E);else if(h!==7)throw new Error(\"unknown command \"+h)}return[P,F,D,V]},A_.prototype.toGeoJSON=function(u,a,h){var A,x,E=this.extent*Math.pow(2,h),P=this.extent*u,D=this.extent*a,F=this.loadGeometry(),V=A_.types[this.type];function q(at){for(var ct=0;ct>3;x=P===1?A.readString():P===2?A.readFloat():P===3?A.readDouble():P===4?A.readVarint64():P===5?A.readVarint():P===6?A.readSVarint():P===7?A.readBoolean():null}return x}(h))}B6.prototype.feature=function(u){if(u<0||u>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[u];var a=this._pbf.readVarint()+this._pbf.pos;return new vX(this._pbf,a,this.extent,this._keys,this._values)};var bX=O6;function wX(u,a,h){if(u===3){var A=new bX(h,h.readVarint()+h.pos);A.length&&(a[A.name]=A)}}aA.VectorTile=function(u,a){this.layers=u.readFields(wX,{},a)},aA.VectorTileFeature=D6,aA.VectorTileLayer=O6;let SX=aA.VectorTileFeature.types,eC=Math.pow(2,13);function Fx(u,a,h,A,x,E,P,D){u.emplaceBack(a,h,2*Math.floor(A*eC)+P,x*eC*2,E*eC*2,Math.round(D))}class rC{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new Me,this.centroidVertexArray=new xe,this.indexArray=new zs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.features=[],this.hasPattern=KI(\"fill-extrusion\",this.layers,h);for(let{feature:x,id:E,index:P,sourceLayerIndex:D}of a){let F=this.layers[0]._featureFilter.needGeometry,V=S(x,F);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),V,A))continue;let q={id:E,sourceLayerIndex:D,index:P,geometry:F?V.geometry:y(x),properties:x.properties,type:x.type,patterns:{}};this.hasPattern?this.features.push(JI(\"fill-extrusion\",this.layers,q,this.zoom,h)):this.addFeature(q,q.geometry,P,A,{}),h.featureIndex.insert(x,q.geometry,P,D,this.index,!0)}}addFeatures(a,h,A){for(let x of this.features){let{geometry:E}=x;this.addFeature(x,E,x.index,h,A)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,mX),this.centroidVertexBuffer=a.createVertexBuffer(this.centroidVertexArray,AX.members,!0),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(a,h,A,x,E){let P={x:0,y:0,vertexCount:0};for(let D of XI(h,500)){let F=0;for(let ct of D)F+=ct.length;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(let ct of D){if(ct.length===0||MX(ct))continue;let mt=0;for(let bt=0;bt=1){let Vt=ct[bt-1];if(!TX(Et,Vt)){V.vertexLength+4>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let kt=Et.sub(Vt)._perp()._unit(),jt=Vt.dist(Et);mt+jt>32768&&(mt=0),Fx(this.layoutVertexArray,Et.x,Et.y,kt.x,kt.y,0,0,mt),Fx(this.layoutVertexArray,Et.x,Et.y,kt.x,kt.y,0,1,mt),P.x+=2*Et.x,P.y+=2*Et.y,P.vertexCount+=2,mt+=jt,Fx(this.layoutVertexArray,Vt.x,Vt.y,kt.x,kt.y,0,0,mt),Fx(this.layoutVertexArray,Vt.x,Vt.y,kt.x,kt.y,0,1,mt),P.x+=2*Vt.x,P.y+=2*Vt.y,P.vertexCount+=2;let qt=V.vertexLength;this.indexArray.emplaceBack(qt,qt+2,qt+1),this.indexArray.emplaceBack(qt+1,qt+2,qt+3),V.vertexLength+=4,V.primitiveLength+=2}}}}if(V.vertexLength+F>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(F,this.layoutVertexArray,this.indexArray)),SX[a.type]!==\"Polygon\")continue;let q=[],X=[],et=V.vertexLength;for(let ct of D)if(ct.length!==0){ct!==D[0]&&X.push(q.length/2);for(let mt=0;mtXi)||u.y===a.y&&(u.y<0||u.y>Xi)}function MX(u){return u.every(a=>a.x<0)||u.every(a=>a.x>Xi)||u.every(a=>a.y<0)||u.every(a=>a.y>Xi)}let F6;Ue(\"FillExtrusionBucket\",rC,{omit:[\"layers\",\"features\"]});var EX={get paint(){return F6=F6||new Gn({\"fill-extrusion-opacity\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new xf(te[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new fr(te[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new rr(te[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})}};class PX extends Ui{constructor(a){super(a,EX)}createBucket(a){return new rC(a)}queryRadius(){return Jt(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return!0}queryIntersectsFeature(a,h,A,x,E,P,D,F){let V=_e(a,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),P.angle,D),q=this.paint.get(\"fill-extrusion-height\").evaluate(h,A),X=this.paint.get(\"fill-extrusion-base\").evaluate(h,A),et=function(ct,mt,bt,Et){let Vt=[];for(let kt of ct){let jt=[kt.x,kt.y,0,1];Ei(jt,jt,mt),Vt.push(new w(jt[0]/jt[3],jt[1]/jt[3]))}return Vt}(V,F),at=function(ct,mt,bt,Et){let Vt=[],kt=[],jt=Et[8]*mt,qt=Et[9]*mt,ae=Et[10]*mt,Be=Et[11]*mt,Je=Et[8]*bt,Oe=Et[9]*bt,ke=Et[10]*bt,Te=Et[11]*bt;for(let He of ct){let Pe=[],Ae=[];for(let ur of He){let ir=ur.x,ri=ur.y,xn=Et[0]*ir+Et[4]*ri+Et[12],Ln=Et[1]*ir+Et[5]*ri+Et[13],Vs=Et[2]*ir+Et[6]*ri+Et[14],Hl=Et[3]*ir+Et[7]*ri+Et[15],Va=Vs+ae,Ps=Hl+Be,vo=xn+Je,Yo=Ln+Oe,ja=Vs+ke,Ga=Hl+Te,js=new w((xn+jt)/Ps,(Ln+qt)/Ps);js.z=Va/Ps,Pe.push(js);let Gs=new w(vo/Ga,Yo/Ga);Gs.z=ja/Ga,Ae.push(Gs)}Vt.push(Pe),kt.push(Ae)}return[Vt,kt]}(x,X,q,F);return function(ct,mt,bt){let Et=1/0;H(bt,mt)&&(Et=z6(bt,mt[0]));for(let Vt=0;Vth.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(h=>{this.gradients[h.id]={}}),this.layoutVertexArray=new dr,this.layoutVertexArray2=new Xe,this.indexArray=new zs,this.programConfigurations=new Ua(a.layers,a.zoom),this.segments=new jr,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=KI(\"line\",this.layers,h);let x=this.layers[0].layout.get(\"line-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,et=S(D,X);if(!this.layers[0]._featureFilter.filter(new ln(this.zoom),et,A))continue;let at=E?x.evaluate(et,{},A):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?et.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=JI(\"line\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=a.createVertexBuffer(this.layoutVertexArray2,kX)),this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,CX),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(a){if(a.properties&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_start\")&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_end\"))return{start:+a.properties.mapbox_clip_start,end:+a.properties.mapbox_clip_end}}addFeature(a,h,A,x,E){let P=this.layers[0].layout,D=P.get(\"line-join\").evaluate(a,{}),F=P.get(\"line-cap\"),V=P.get(\"line-miter-limit\"),q=P.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(a);for(let X of h)this.addLine(X,a,D,F,V,q);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}addLine(a,h,A,x,E,P){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let Et=0;Et=2&&a[F-1].equals(a[F-2]);)F--;let V=0;for(;V0;if(Be&&Et>V){let Te=et.dist(at);if(Te>2*q){let He=et.sub(et.sub(at)._mult(q/Te)._round());this.updateDistance(at,He),this.addCurrentVertex(He,mt,0,0,X),at=He}}let Oe=at&&ct,ke=Oe?A:D?\"butt\":x;if(Oe&&ke===\"round\"&&(qtE&&(ke=\"bevel\"),ke===\"bevel\"&&(qt>2&&(ke=\"flipbevel\"),qt100)Vt=bt.mult(-1);else{let Te=qt*mt.add(bt).mag()/mt.sub(bt).mag();Vt._perp()._mult(Te*(Je?-1:1))}this.addCurrentVertex(et,Vt,0,0,X),this.addCurrentVertex(et,Vt.mult(-1),0,0,X)}else if(ke===\"bevel\"||ke===\"fakeround\"){let Te=-Math.sqrt(qt*qt-1),He=Je?Te:0,Pe=Je?0:Te;if(at&&this.addCurrentVertex(et,mt,He,Pe,X),ke===\"fakeround\"){let Ae=Math.round(180*ae/Math.PI/20);for(let ur=1;ur2*q){let He=et.add(ct.sub(et)._mult(q/Te)._round());this.updateDistance(et,He),this.addCurrentVertex(He,bt,0,0,X),et=He}}}}addCurrentVertex(a,h,A,x,E,P=!1){let D=h.y*x-h.x,F=-h.y-h.x*x;this.addHalfVertex(a,h.x+h.y*A,h.y-h.x*A,P,!1,A,E),this.addHalfVertex(a,D,F,P,!0,-x,E),this.distance>N6/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(a,h,A,x,E,P))}addHalfVertex({x:a,y:h},A,x,E,P,D,F){let V=.5*(this.lineClips?this.scaledDistance*(N6-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((a<<1)+(E?1:0),(h<<1)+(P?1:0),Math.round(63*A)+128,Math.round(63*x)+128,1+(D===0?0:D<0?-1:1)|(63&V)<<2,V>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);let q=F.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,q),F.primitiveLength++),P?this.e2=q:this.e1=q}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(a,h){this.distance+=a.dist(h),this.updateScaledDistance()}}let U6,V6;Ue(\"LineBucket\",iC,{omit:[\"layers\",\"patternFeatures\"]});var j6={get paint(){return V6=V6||new Gn({\"line-opacity\":new fr(te.paint_line[\"line-opacity\"]),\"line-color\":new fr(te.paint_line[\"line-color\"]),\"line-translate\":new rr(te.paint_line[\"line-translate\"]),\"line-translate-anchor\":new rr(te.paint_line[\"line-translate-anchor\"]),\"line-width\":new fr(te.paint_line[\"line-width\"]),\"line-gap-width\":new fr(te.paint_line[\"line-gap-width\"]),\"line-offset\":new fr(te.paint_line[\"line-offset\"]),\"line-blur\":new fr(te.paint_line[\"line-blur\"]),\"line-dasharray\":new nA(te.paint_line[\"line-dasharray\"]),\"line-pattern\":new xf(te.paint_line[\"line-pattern\"]),\"line-gradient\":new Dd(te.paint_line[\"line-gradient\"])})},get layout(){return U6=U6||new Gn({\"line-cap\":new rr(te.layout_line[\"line-cap\"]),\"line-join\":new fr(te.layout_line[\"line-join\"]),\"line-miter-limit\":new rr(te.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new rr(te.layout_line[\"line-round-limit\"]),\"line-sort-key\":new fr(te.layout_line[\"line-sort-key\"])})}};class OX extends fr{possiblyEvaluate(a,h){return h=new ln(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),super.possiblyEvaluate(a,h)}evaluate(a,h,A,x){return h=Ot({},h,{zoom:Math.floor(h.zoom)}),super.evaluate(a,h,A,x)}}let VS;class BX extends Ui{constructor(a){super(a,j6),this.gradientVersion=0,VS||(VS=new OX(j6.paint.properties[\"line-width\"].specification),VS.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(a){if(a===\"line-gradient\"){let h=this.gradientExpression();this.stepInterpolant=!!function(A){return A._styleExpression!==void 0}(h)&&h._styleExpression.expression instanceof nh,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}recalculate(a,h){super.recalculate(a,h),this.paint._values[\"line-floorwidth\"]=VS.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,a)}createBucket(a){return new iC(a)}queryRadius(a){let h=a,A=G6(Ve(\"line-width\",this,h),Ve(\"line-gap-width\",this,h)),x=Ve(\"line-offset\",this,h);return A/2+Math.abs(x)+Jt(this.paint.get(\"line-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D){let F=_e(a,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),P.angle,D),V=D/2*G6(this.paint.get(\"line-width\").evaluate(h,A),this.paint.get(\"line-gap-width\").evaluate(h,A)),q=this.paint.get(\"line-offset\").evaluate(h,A);return q&&(x=function(X,et){let at=[];for(let ct=0;ct=3){for(let bt=0;bt0?a+2*u:u}let FX=yn([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),zX=yn([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);yn([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);let NX=yn([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);yn([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);let W6=yn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),UX=yn([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function VX(u,a,h){return u.sections.forEach(A=>{A.text=function(x,E,P){let D=E.layout.get(\"text-transform\").evaluate(P,{});return D===\"uppercase\"?x=x.toLocaleUpperCase():D===\"lowercase\"&&(x=x.toLocaleLowerCase()),ua.applyArabicShaping&&(x=ua.applyArabicShaping(x)),x}(A.text,a,h)}),u}yn([{name:\"triangle\",components:3,type:\"Uint16\"}]),yn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),yn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",name:\"collisionCircleDiameter\"},{type:\"Uint16\",name:\"textAnchorOffsetStartIndex\"},{type:\"Uint16\",name:\"textAnchorOffsetEndIndex\"}]),yn([{type:\"Float32\",name:\"offsetX\"}]),yn([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]),yn([{type:\"Uint16\",name:\"textAnchor\"},{type:\"Float32\",components:2,name:\"textOffset\"}]);let Nx={\"!\":\"\\uFE15\",\"#\":\"\\uFF03\",$:\"\\uFF04\",\"%\":\"\\uFF05\",\"&\":\"\\uFF06\",\"(\":\"\\uFE35\",\")\":\"\\uFE36\",\"*\":\"\\uFF0A\",\"+\":\"\\uFF0B\",\",\":\"\\uFE10\",\"-\":\"\\uFE32\",\".\":\"\\u30FB\",\"/\":\"\\uFF0F\",\":\":\"\\uFE13\",\";\":\"\\uFE14\",\"<\":\"\\uFE3F\",\"=\":\"\\uFF1D\",\">\":\"\\uFE40\",\"?\":\"\\uFE16\",\"@\":\"\\uFF20\",\"[\":\"\\uFE47\",\"\\\\\":\"\\uFF3C\",\"]\":\"\\uFE48\",\"^\":\"\\uFF3E\",_:\"\\uFE33\",\"`\":\"\\uFF40\",\"{\":\"\\uFE37\",\"|\":\"\\u2015\",\"}\":\"\\uFE38\",\"~\":\"\\uFF5E\",\"\\xA2\":\"\\uFFE0\",\"\\xA3\":\"\\uFFE1\",\"\\xA5\":\"\\uFFE5\",\"\\xA6\":\"\\uFFE4\",\"\\xAC\":\"\\uFFE2\",\"\\xAF\":\"\\uFFE3\",\"\\u2013\":\"\\uFE32\",\"\\u2014\":\"\\uFE31\",\"\\u2018\":\"\\uFE43\",\"\\u2019\":\"\\uFE44\",\"\\u201C\":\"\\uFE41\",\"\\u201D\":\"\\uFE42\",\"\\u2026\":\"\\uFE19\",\"\\u2027\":\"\\u30FB\",\"\\u20A9\":\"\\uFFE6\",\"\\u3001\":\"\\uFE11\",\"\\u3002\":\"\\uFE12\",\"\\u3008\":\"\\uFE3F\",\"\\u3009\":\"\\uFE40\",\"\\u300A\":\"\\uFE3D\",\"\\u300B\":\"\\uFE3E\",\"\\u300C\":\"\\uFE41\",\"\\u300D\":\"\\uFE42\",\"\\u300E\":\"\\uFE43\",\"\\u300F\":\"\\uFE44\",\"\\u3010\":\"\\uFE3B\",\"\\u3011\":\"\\uFE3C\",\"\\u3014\":\"\\uFE39\",\"\\u3015\":\"\\uFE3A\",\"\\u3016\":\"\\uFE17\",\"\\u3017\":\"\\uFE18\",\"\\uFF01\":\"\\uFE15\",\"\\uFF08\":\"\\uFE35\",\"\\uFF09\":\"\\uFE36\",\"\\uFF0C\":\"\\uFE10\",\"\\uFF0D\":\"\\uFE32\",\"\\uFF0E\":\"\\u30FB\",\"\\uFF1A\":\"\\uFE13\",\"\\uFF1B\":\"\\uFE14\",\"\\uFF1C\":\"\\uFE3F\",\"\\uFF1E\":\"\\uFE40\",\"\\uFF1F\":\"\\uFE16\",\"\\uFF3B\":\"\\uFE47\",\"\\uFF3D\":\"\\uFE48\",\"\\uFF3F\":\"\\uFE33\",\"\\uFF5B\":\"\\uFE37\",\"\\uFF5C\":\"\\u2015\",\"\\uFF5D\":\"\\uFE38\",\"\\uFF5F\":\"\\uFE35\",\"\\uFF60\":\"\\uFE36\",\"\\uFF61\":\"\\uFE12\",\"\\uFF62\":\"\\uFE41\",\"\\uFF63\":\"\\uFE42\"};var Us=24,H6=Ki,q6=function(u,a,h,A,x){var E,P,D=8*x-A-1,F=(1<>1,q=-7,X=h?x-1:0,et=h?-1:1,at=u[a+X];for(X+=et,E=at&(1<<-q)-1,at>>=-q,q+=D;q>0;E=256*E+u[a+X],X+=et,q-=8);for(P=E&(1<<-q)-1,E>>=-q,q+=A;q>0;P=256*P+u[a+X],X+=et,q-=8);if(E===0)E=1-V;else{if(E===F)return P?NaN:1/0*(at?-1:1);P+=Math.pow(2,A),E-=V}return(at?-1:1)*P*Math.pow(2,E-A)},Z6=function(u,a,h,A,x,E){var P,D,F,V=8*E-x-1,q=(1<>1,et=x===23?Math.pow(2,-24)-Math.pow(2,-77):0,at=A?0:E-1,ct=A?1:-1,mt=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(D=isNaN(a)?1:0,P=q):(P=Math.floor(Math.log(a)/Math.LN2),a*(F=Math.pow(2,-P))<1&&(P--,F*=2),(a+=P+X>=1?et/F:et*Math.pow(2,1-X))*F>=2&&(P++,F/=2),P+X>=q?(D=0,P=q):P+X>=1?(D=(a*F-1)*Math.pow(2,x),P+=X):(D=a*Math.pow(2,X-1)*Math.pow(2,x),P=0));x>=8;u[h+at]=255&D,at+=ct,D/=256,x-=8);for(P=P<0;u[h+at]=255&P,at+=ct,P/=256,V-=8);u[h+at-ct]|=128*mt};function Ki(u){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(u)?u:new Uint8Array(u||0),this.pos=0,this.type=0,this.length=this.buf.length}Ki.Varint=0,Ki.Fixed64=1,Ki.Bytes=2,Ki.Fixed32=5;var nC=4294967296,Y6=1/nC,Q6=typeof TextDecoder>\"u\"?null:new TextDecoder(\"utf8\");function Fd(u){return u.type===Ki.Bytes?u.readVarint()+u.pos:u.pos+1}function m_(u,a,h){return h?4294967296*a+(u>>>0):4294967296*(a>>>0)+(u>>>0)}function $6(u,a,h){var A=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));h.realloc(A);for(var x=h.pos-1;x>=u;x--)h.buf[x+A]=h.buf[x]}function jX(u,a){for(var h=0;h>>8,u[h+2]=a>>>16,u[h+3]=a>>>24}function X6(u,a){return(u[a]|u[a+1]<<8|u[a+2]<<16)+(u[a+3]<<24)}Ki.prototype={destroy:function(){this.buf=null},readFields:function(u,a,h){for(h=h||this.length;this.pos>3,E=this.pos;this.type=7&A,u(x,a,this),this.pos===E&&this.skip(A)}return a},readMessage:function(u,a){return this.readFields(u,a,this.readVarint()+this.pos)},readFixed32:function(){var u=jS(this.buf,this.pos);return this.pos+=4,u},readSFixed32:function(){var u=X6(this.buf,this.pos);return this.pos+=4,u},readFixed64:function(){var u=jS(this.buf,this.pos)+jS(this.buf,this.pos+4)*nC;return this.pos+=8,u},readSFixed64:function(){var u=jS(this.buf,this.pos)+X6(this.buf,this.pos+4)*nC;return this.pos+=8,u},readFloat:function(){var u=q6(this.buf,this.pos,!0,23,4);return this.pos+=4,u},readDouble:function(){var u=q6(this.buf,this.pos,!0,52,8);return this.pos+=8,u},readVarint:function(u){var a,h,A=this.buf;return a=127&(h=A[this.pos++]),h<128?a:(a|=(127&(h=A[this.pos++]))<<7,h<128?a:(a|=(127&(h=A[this.pos++]))<<14,h<128?a:(a|=(127&(h=A[this.pos++]))<<21,h<128?a:function(x,E,P){var D,F,V=P.buf;if(D=(112&(F=V[P.pos++]))>>4,F<128||(D|=(127&(F=V[P.pos++]))<<3,F<128)||(D|=(127&(F=V[P.pos++]))<<10,F<128)||(D|=(127&(F=V[P.pos++]))<<17,F<128)||(D|=(127&(F=V[P.pos++]))<<24,F<128)||(D|=(1&(F=V[P.pos++]))<<31,F<128))return m_(x,D,E);throw new Error(\"Expected varint not more than 10 bytes\")}(a|=(15&(h=A[this.pos]))<<28,u,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var u=this.readVarint();return u%2==1?(u+1)/-2:u/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var u=this.readVarint()+this.pos,a=this.pos;return this.pos=u,u-a>=12&&Q6?function(h,A,x){return Q6.decode(h.subarray(A,x))}(this.buf,a,u):function(h,A,x){for(var E=\"\",P=A;P239?4:q>223?3:q>191?2:1;if(P+et>x)break;et===1?q<128&&(X=q):et===2?(192&(D=h[P+1]))==128&&(X=(31&q)<<6|63&D)<=127&&(X=null):et===3?(F=h[P+2],(192&(D=h[P+1]))==128&&(192&F)==128&&((X=(15&q)<<12|(63&D)<<6|63&F)<=2047||X>=55296&&X<=57343)&&(X=null)):et===4&&(F=h[P+2],V=h[P+3],(192&(D=h[P+1]))==128&&(192&F)==128&&(192&V)==128&&((X=(15&q)<<18|(63&D)<<12|(63&F)<<6|63&V)<=65535||X>=1114112)&&(X=null)),X===null?(X=65533,et=1):X>65535&&(X-=65536,E+=String.fromCharCode(X>>>10&1023|55296),X=56320|1023&X),E+=String.fromCharCode(X),P+=et}return E}(this.buf,a,u)},readBytes:function(){var u=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,u);return this.pos=u,a},readPackedVarint:function(u,a){if(this.type!==Ki.Bytes)return u.push(this.readVarint(a));var h=Fd(this);for(u=u||[];this.pos127;);else if(a===Ki.Bytes)this.pos=this.readVarint()+this.pos;else if(a===Ki.Fixed32)this.pos+=4;else{if(a!==Ki.Fixed64)throw new Error(\"Unimplemented type: \"+a);this.pos+=8}},writeTag:function(u,a){this.writeVarint(u<<3|a)},realloc:function(u){for(var a=this.length||16;a268435455||u<0?function(a,h){var A,x;if(a>=0?(A=a%4294967296|0,x=a/4294967296|0):(x=~(-a/4294967296),4294967295^(A=~(-a%4294967296))?A=A+1|0:(A=0,x=x+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error(\"Given varint doesn't fit into 10 bytes\");h.realloc(10),function(E,P,D){D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,D.buf[D.pos]=127&(E>>>=7)}(A,0,h),function(E,P){var D=(7&E)<<4;P.buf[P.pos++]|=D|((E>>>=3)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E)))))}(x,h)}(u,this):(this.realloc(4),this.buf[this.pos++]=127&u|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=u>>>7&127))))},writeSVarint:function(u){this.writeVarint(u<0?2*-u-1:2*u)},writeBoolean:function(u){this.writeVarint(!!u)},writeString:function(u){u=String(u),this.realloc(4*u.length),this.pos++;var a=this.pos;this.pos=function(A,x,E){for(var P,D,F=0;F55295&&P<57344){if(!D){P>56319||F+1===x.length?(A[E++]=239,A[E++]=191,A[E++]=189):D=P;continue}if(P<56320){A[E++]=239,A[E++]=191,A[E++]=189,D=P;continue}P=D-55296<<10|P-56320|65536,D=null}else D&&(A[E++]=239,A[E++]=191,A[E++]=189,D=null);P<128?A[E++]=P:(P<2048?A[E++]=P>>6|192:(P<65536?A[E++]=P>>12|224:(A[E++]=P>>18|240,A[E++]=P>>12&63|128),A[E++]=P>>6&63|128),A[E++]=63&P|128)}return E}(this.buf,u,this.pos);var h=this.pos-a;h>=128&&$6(a,h,this),this.pos=a-1,this.writeVarint(h),this.pos+=h},writeFloat:function(u){this.realloc(4),Z6(this.buf,u,this.pos,!0,23,4),this.pos+=4},writeDouble:function(u){this.realloc(8),Z6(this.buf,u,this.pos,!0,52,8),this.pos+=8},writeBytes:function(u){var a=u.length;this.writeVarint(a),this.realloc(a);for(var h=0;h=128&&$6(h,A,this),this.pos=h-1,this.writeVarint(A),this.pos+=A},writeMessage:function(u,a,h){this.writeTag(u,Ki.Bytes),this.writeRawMessage(a,h)},writePackedVarint:function(u,a){a.length&&this.writeMessage(u,jX,a)},writePackedSVarint:function(u,a){a.length&&this.writeMessage(u,GX,a)},writePackedBoolean:function(u,a){a.length&&this.writeMessage(u,qX,a)},writePackedFloat:function(u,a){a.length&&this.writeMessage(u,WX,a)},writePackedDouble:function(u,a){a.length&&this.writeMessage(u,HX,a)},writePackedFixed32:function(u,a){a.length&&this.writeMessage(u,ZX,a)},writePackedSFixed32:function(u,a){a.length&&this.writeMessage(u,YX,a)},writePackedFixed64:function(u,a){a.length&&this.writeMessage(u,QX,a)},writePackedSFixed64:function(u,a){a.length&&this.writeMessage(u,$X,a)},writeBytesField:function(u,a){this.writeTag(u,Ki.Bytes),this.writeBytes(a)},writeFixed32Field:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeSFixed64(a)},writeVarintField:function(u,a){this.writeTag(u,Ki.Varint),this.writeVarint(a)},writeSVarintField:function(u,a){this.writeTag(u,Ki.Varint),this.writeSVarint(a)},writeStringField:function(u,a){this.writeTag(u,Ki.Bytes),this.writeString(a)},writeFloatField:function(u,a){this.writeTag(u,Ki.Fixed32),this.writeFloat(a)},writeDoubleField:function(u,a){this.writeTag(u,Ki.Fixed64),this.writeDouble(a)},writeBooleanField:function(u,a){this.writeVarintField(u,!!a)}};var sC=c(H6);let oC=3;function XX(u,a,h){u===1&&h.readMessage(KX,a)}function KX(u,a,h){if(u===3){let{id:A,bitmap:x,width:E,height:P,left:D,top:F,advance:V}=h.readMessage(JX,{});a.push({id:A,bitmap:new kx({width:E+2*oC,height:P+2*oC},x),metrics:{width:E,height:P,left:D,top:F,advance:V}})}}function JX(u,a,h){u===1?a.id=h.readVarint():u===2?a.bitmap=h.readBytes():u===3?a.width=h.readVarint():u===4?a.height=h.readVarint():u===5?a.left=h.readSVarint():u===6?a.top=h.readSVarint():u===7&&(a.advance=h.readVarint())}let K6=oC;function J6(u){let a=0,h=0;for(let P of u)a+=P.w*P.h,h=Math.max(h,P.w);u.sort((P,D)=>D.h-P.h);let A=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),h),h:1/0}],x=0,E=0;for(let P of u)for(let D=A.length-1;D>=0;D--){let F=A[D];if(!(P.w>F.w||P.h>F.h)){if(P.x=F.x,P.y=F.y,E=Math.max(E,P.y+P.h),x=Math.max(x,P.x+P.w),P.w===F.w&&P.h===F.h){let V=A.pop();D=0&&A>=a&&WS[this.text.charCodeAt(A)];A--)h--;this.text=this.text.substring(a,h),this.sectionIndex=this.sectionIndex.slice(a,h)}substring(a,h){let A=new __;return A.text=this.text.substring(a,h),A.sectionIndex=this.sectionIndex.slice(a,h),A.sections=this.sections,A}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((a,h)=>Math.max(a,this.sections[h].scale),0)}addTextSection(a,h){this.text+=a.text,this.sections.push(Vx.forText(a.scale,a.fontStack||h));let A=this.sections.length-1;for(let x=0;x=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function GS(u,a,h,A,x,E,P,D,F,V,q,X,et,at,ct,mt){let bt=__.fromFeature(u,x),Et;X===n.ai.vertical&&bt.verticalizePunctuation();let{processBidirectionalText:Vt,processStyledBidirectionalText:kt}=ua;if(Vt&&bt.sections.length===1){Et=[];let ae=Vt(bt.toString(),lC(bt,V,E,a,A,at,ct));for(let Be of ae){let Je=new __;Je.text=Be,Je.sections=bt.sections;for(let Oe=0;Oe0&&Nd>Al&&(Al=Nd)}else{let Fc=Je[di.fontStack],gl=Fc&&Fc[Qo];if(gl&&gl.rect)yh=gl.rect,_u=gl.metrics;else{let Nd=Be[di.fontStack],qx=Nd&&Nd[Qo];if(!qx)continue;_u=qx.metrics}Hs=(Gs-di.scale)*Us}yu?(ae.verticalizable=!0,fa.push({glyph:Qo,imageName:vh,x:xn,y:Ln+Hs,vertical:yu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:_u,rect:yh}),xn+=zd*di.scale+ur):(fa.push({glyph:Qo,imageName:vh,x:xn,y:Ln+Hs,vertical:yu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:_u,rect:yh}),xn+=_u.advance*di.scale+ur)}fa.length!==0&&(Vs=Math.max(xn-ur,Vs),rK(fa,0,fa.length-1,Va,Al)),xn=0;let ml=Te*Gs+Al;Wa.lineOffset=Math.max(Al,ha),Ln+=ml,Hl=Math.max(ml,Hl),++Ps}var vo;let Yo=Ln-Ux,{horizontalAlign:ja,verticalAlign:Ga}=cC(He);(function(js,Gs,ha,Wa,fa,Al,ml,Ws,di){let da=(Gs-ha)*fa,Qo=0;Qo=Al!==ml?-Ws*Wa-Ux:(-Wa*di+.5)*ml;for(let Hs of js)for(let _u of Hs.positionedGlyphs)_u.x+=da,_u.y+=Qo})(ae.positionedLines,Va,ja,Ga,Vs,Hl,Te,Yo,ke.length),ae.top+=-Ga*Yo,ae.bottom=ae.top+Yo,ae.left+=-ja*Vs,ae.right=ae.left+Vs}(qt,a,h,A,Et,P,D,F,X,V,et,mt),!function(ae){for(let Be of ae)if(Be.positionedGlyphs.length!==0)return!1;return!0}(jt)&&qt}let WS={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},tK={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function eF(u,a,h,A,x,E){if(a.imageName){let P=A[a.imageName];return P?P.displaySize[0]*a.scale*Us/E+x:0}{let P=h[a.fontStack],D=P&&P[u];return D?D.metrics.advance*a.scale+x:0}}function rF(u,a,h,A){let x=Math.pow(u-a,2);return A?u=0,q=0;for(let et=0;etP.id),this.index=a.index,this.pixelRatio=a.pixelRatio,this.sourceLayerIndex=a.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Zr([]),this.placementViewportMatrix=Zr([]);let h=this.layers[0]._unevaluatedLayout._values;this.textSizeData=oF(this.zoom,h[\"text-size\"]),this.iconSizeData=oF(this.zoom,h[\"icon-size\"]);let A=this.layers[0].layout,x=A.get(\"symbol-sort-key\"),E=A.get(\"symbol-z-order\");this.canOverlap=uC(A,\"text-overlap\",\"text-allow-overlap\")!==\"never\"||uC(A,\"icon-overlap\",\"icon-allow-overlap\")!==\"never\"||A.get(\"text-ignore-placement\")||A.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=E!==\"viewport-y\"&&!x.isConstant(),this.sortFeaturesByY=(E===\"viewport-y\"||E===\"auto\"&&!this.sortFeaturesByKey)&&this.canOverlap,A.get(\"symbol-placement\")===\"point\"&&(this.writingModes=A.get(\"text-writing-mode\").map(P=>n.ai[P])),this.stateDependentLayerIds=this.layers.filter(P=>P.isStateDependent()).map(P=>P.id),this.sourceID=a.sourceID}createArrays(){this.text=new fC(new Ua(this.layers,this.zoom,a=>/^text/.test(a))),this.icon=new fC(new Ua(this.layers,this.zoom,a=>/^icon/.test(a))),this.glyphOffsetArray=new Bt,this.lineVertexArray=new Yt,this.symbolInstances=new St,this.textAnchorOffsets=new se}calculateGlyphDependencies(a,h,A,x,E){for(let P=0;P0)&&(P.value.kind!==\"constant\"||P.value.value.length>0),q=F.value.kind!==\"constant\"||!!F.value.value||Object.keys(F.parameters).length>0,X=E.get(\"symbol-sort-key\");if(this.features=[],!V&&!q)return;let et=h.iconDependencies,at=h.glyphDependencies,ct=h.availableImages,mt=new ln(this.zoom);for(let{feature:bt,id:Et,index:Vt,sourceLayerIndex:kt}of a){let jt=x._featureFilter.needGeometry,qt=S(bt,jt);if(!x._featureFilter.filter(mt,qt,A))continue;let ae,Be;if(jt||(qt.geometry=y(bt)),V){let Oe=x.getValueAndResolveTokens(\"text-field\",qt,A,ct),ke=on.factory(Oe);oK(ke)&&(this.hasRTLText=!0),(!this.hasRTLText||a0()===\"unavailable\"||this.hasRTLText&&ua.isParsed())&&(ae=VX(ke,x,qt))}if(q){let Oe=x.getValueAndResolveTokens(\"icon-image\",qt,A,ct);Be=Oe instanceof Vn?Oe:Vn.fromString(Oe)}if(!ae&&!Be)continue;let Je=this.sortFeaturesByKey?X.evaluate(qt,{},A):void 0;if(this.features.push({id:Et,text:ae,icon:Be,index:Vt,sourceLayerIndex:kt,geometry:qt.geometry,properties:bt.properties,type:nK[bt.type],sortKey:Je}),Be&&(et[Be.name]=!0),ae){let Oe=P.evaluate(qt,{},A).join(\",\"),ke=E.get(\"text-rotation-alignment\")!==\"viewport\"&&E.get(\"symbol-placement\")!==\"point\";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(n.ai.vertical)>=0;for(let Te of ae.sections)if(Te.image)et[Te.image.name]=!0;else{let He=e0(ae.toString()),Pe=Te.fontStack||Oe,Ae=at[Pe]=at[Pe]||{};this.calculateGlyphDependencies(Te.text,Ae,ke,this.allowVerticalPlacement,He)}}}E.get(\"symbol-placement\")===\"line\"&&(this.features=function(bt){let Et={},Vt={},kt=[],jt=0;function qt(Oe){kt.push(bt[Oe]),jt++}function ae(Oe,ke,Te){let He=Vt[Oe];return delete Vt[Oe],Vt[ke]=He,kt[He].geometry[0].pop(),kt[He].geometry[0]=kt[He].geometry[0].concat(Te[0]),He}function Be(Oe,ke,Te){let He=Et[ke];return delete Et[ke],Et[Oe]=He,kt[He].geometry[0].shift(),kt[He].geometry[0]=Te[0].concat(kt[He].geometry[0]),He}function Je(Oe,ke,Te){let He=Te?ke[0][ke[0].length-1]:ke[0][0];return`${Oe}:${He.x}:${He.y}`}for(let Oe=0;OeOe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((bt,Et)=>bt.sortKey-Et.sortKey)}update(a,h,A){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(a,h,this.layers,A),this.icon.programConfigurations.updatePaintArrays(a,h,this.layers,A))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(a){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(a),this.iconCollisionBox.upload(a)),this.text.upload(a,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(a,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(a,h){let A=this.lineVertexArray.length;if(a.segment!==void 0){let x=a.dist(h[a.segment+1]),E=a.dist(h[a.segment]),P={};for(let D=a.segment+1;D=0;D--)P[D]={x:h[D].x,y:h[D].y,tileUnitDistanceFromAnchor:E},D>0&&(E+=h[D-1].dist(h[D]));for(let D=0;D0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(a,h){let A=a.placedSymbolArray.get(h),x=A.vertexStartIndex+4*A.numGlyphs;for(let E=A.vertexStartIndex;Ex[D]-x[F]||E[F]-E[D]),P}addToSortKeyRanges(a,h){let A=this.sortKeyRanges[this.sortKeyRanges.length-1];A&&A.sortKey===h?A.symbolInstanceEnd=a+1:this.sortKeyRanges.push({sortKey:h,symbolInstanceStart:a,symbolInstanceEnd:a+1})}sortFeatures(a){if(this.sortFeaturesByY&&this.sortedAngle!==a&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(a),this.sortedAngle=a,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let h of this.symbolInstanceIndexes){let A=this.symbolInstances.get(h);this.featureSortOrder.push(A.featureIndex),[A.rightJustifiedTextSymbolIndex,A.centerJustifiedTextSymbolIndex,A.leftJustifiedTextSymbolIndex].forEach((x,E,P)=>{x>=0&&P.indexOf(x)===E&&this.addIndicesForPlacedSymbol(this.text,x)}),A.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,A.verticalPlacedTextSymbolIndex),A.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.placedIconSymbolIndex),A.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let aF,lF;Ue(\"SymbolBucket\",y_,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),y_.MAX_GLYPHS=65535,y_.addDynamicAttributes=hC;var pC={get paint(){return lF=lF||new Gn({\"icon-opacity\":new fr(te.paint_symbol[\"icon-opacity\"]),\"icon-color\":new fr(te.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new fr(te.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new fr(te.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new fr(te.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new rr(te.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new rr(te.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new fr(te.paint_symbol[\"text-opacity\"]),\"text-color\":new fr(te.paint_symbol[\"text-color\"],{runtimeType:Os,getOverride:u=>u.textColor,hasOverride:u=>!!u.textColor}),\"text-halo-color\":new fr(te.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new fr(te.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new fr(te.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new rr(te.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new rr(te.paint_symbol[\"text-translate-anchor\"])})},get layout(){return aF=aF||new Gn({\"symbol-placement\":new rr(te.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new rr(te.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new rr(te.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new fr(te.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new rr(te.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new rr(te.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new rr(te.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new rr(te.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new rr(te.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new rr(te.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new fr(te.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new rr(te.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new rr(te.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new fr(te.layout_symbol[\"icon-image\"]),\"icon-rotate\":new fr(te.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new fr(te.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new rr(te.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new fr(te.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new fr(te.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new rr(te.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new rr(te.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new rr(te.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new fr(te.layout_symbol[\"text-field\"]),\"text-font\":new fr(te.layout_symbol[\"text-font\"]),\"text-size\":new fr(te.layout_symbol[\"text-size\"]),\"text-max-width\":new fr(te.layout_symbol[\"text-max-width\"]),\"text-line-height\":new rr(te.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new fr(te.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new fr(te.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new fr(te.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new rr(te.layout_symbol[\"text-variable-anchor\"]),\"text-variable-anchor-offset\":new fr(te.layout_symbol[\"text-variable-anchor-offset\"]),\"text-anchor\":new fr(te.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new rr(te.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new rr(te.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new fr(te.layout_symbol[\"text-rotate\"]),\"text-padding\":new rr(te.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new rr(te.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new fr(te.layout_symbol[\"text-transform\"]),\"text-offset\":new fr(te.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new rr(te.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new rr(te.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new rr(te.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new rr(te.layout_symbol[\"text-optional\"])})}};class cF{constructor(a){if(a.property.overrides===void 0)throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");this.type=a.property.overrides?a.property.overrides.runtimeType:Ia,this.defaultValue=a}evaluate(a){if(a.formattedSection){let h=this.defaultValue.property.overrides;if(h&&h.hasOverride(a.formattedSection))return h.getOverride(a.formattedSection)}return a.feature&&a.featureState?this.defaultValue.evaluate(a.feature,a.featureState):this.defaultValue.property.specification.default}eachChild(a){this.defaultValue.isConstant()||a(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Ue(\"FormatSectionOverride\",cF,{omit:[\"defaultValue\"]});class qS extends Ui{constructor(a){super(a,pC)}recalculate(a,h){if(super.recalculate(a,h),this.layout.get(\"icon-rotation-alignment\")===\"auto\"&&(this.layout._values[\"icon-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-rotation-alignment\")===\"auto\"&&(this.layout._values[\"text-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-pitch-alignment\")===\"auto\"&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")===\"map\"?\"map\":\"viewport\"),this.layout.get(\"icon-pitch-alignment\")===\"auto\"&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),this.layout.get(\"symbol-placement\")===\"point\"){let A=this.layout.get(\"text-writing-mode\");if(A){let x=[];for(let E of A)x.indexOf(E)<0&&x.push(E);this.layout._values[\"text-writing-mode\"]=x}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"]}this._setPaintOverrides()}getValueAndResolveTokens(a,h,A,x){let E=this.layout.get(a).evaluate(h,{},A,x),P=this._unevaluatedLayout._values[a];return P.isDataDriven()||Hp(P.value)||!E?E:function(D,F){return F.replace(/{([^{}]+)}/g,(V,q)=>D&&q in D?String(D[q]):\"\")}(h.properties,E)}createBucket(a){return new y_(a)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(let a of pC.paint.overridableProperties){if(!qS.hasPaintOverride(this.layout,a))continue;let h=this.paint.get(a),A=new cF(h),x=new Ym(A,h.property.specification),E=null;E=h.value.kind===\"constant\"||h.value.kind===\"source\"?new Qm(\"source\",x):new wt(\"composite\",x,h.value.zoomStops),this.paint._values[a]=new _o(h.property,E,h.parameters)}}_handleOverridablePaintPropertyUpdate(a,h,A){return!(!this.layout||h.isDataDriven()||A.isDataDriven())&&qS.hasPaintOverride(this.layout,a)}static hasPaintOverride(a,h){let A=a.get(\"text-field\"),x=pC.paint.properties[h],E=!1,P=D=>{for(let F of D)if(x.overrides&&x.overrides.hasOverride(F))return void(E=!0)};if(A.value.kind===\"constant\"&&A.value.value instanceof on)P(A.value.value.sections);else if(A.value.kind===\"source\"){let D=V=>{E||(V instanceof Nl&&Yi(V.value)===gt?P(V.value.sections):V instanceof Si?P(V.sections):V.eachChild(D))},F=A.value;F._styleExpression&&D(F._styleExpression.expression)}return E}}let uF;var aK={get paint(){return uF=uF||new Gn({\"background-color\":new rr(te.paint_background[\"background-color\"]),\"background-pattern\":new nA(te.paint_background[\"background-pattern\"]),\"background-opacity\":new rr(te.paint_background[\"background-opacity\"])})}};class lK extends Ui{constructor(a){super(a,aK)}}let hF;var cK={get paint(){return hF=hF||new Gn({\"raster-opacity\":new rr(te.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new rr(te.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new rr(te.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new rr(te.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new rr(te.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new rr(te.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new rr(te.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new rr(te.paint_raster[\"raster-fade-duration\"])})}};class uK extends Ui{constructor(a){super(a,cK)}}class hK extends Ui{constructor(a){super(a,{}),this.onAdd=h=>{this.implementation.onAdd&&this.implementation.onAdd(h,h.painter.context.gl)},this.onRemove=h=>{this.implementation.onRemove&&this.implementation.onRemove(h,h.painter.context.gl)},this.implementation=a}is3D(){return this.implementation.renderingMode===\"3d\"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error(\"Custom layers cannot be serialized\")}}class fK{constructor(a){this._callback=a,this._triggered=!1,typeof MessageChannel<\"u\"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){delete this._channel,this._callback=()=>{}}}let AC=63710088e-1;class uA{constructor(a,h){if(isNaN(a)||isNaN(h))throw new Error(`Invalid LngLat object: (${a}, ${h})`);if(this.lng=+a,this.lat=+h,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new uA(Pt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(a){let h=Math.PI/180,A=this.lat*h,x=a.lat*h,E=Math.sin(A)*Math.sin(x)+Math.cos(A)*Math.cos(x)*Math.cos((a.lng-this.lng)*h);return AC*Math.acos(Math.min(E,1))}static convert(a){if(a instanceof uA)return a;if(Array.isArray(a)&&(a.length===2||a.length===3))return new uA(Number(a[0]),Number(a[1]));if(!Array.isArray(a)&&typeof a==\"object\"&&a!==null)return new uA(Number(\"lng\"in a?a.lng:a.lon),Number(a.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\")}}let fF=2*Math.PI*AC;function dF(u){return fF*Math.cos(u*Math.PI/180)}function pF(u){return(180+u)/360}function AF(u){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u*Math.PI/360)))/360}function mF(u,a){return u/dF(a)}function gF(u){return 360*u-180}function mC(u){return 360/Math.PI*Math.atan(Math.exp((180-360*u)*Math.PI/180))-90}class ZS{constructor(a,h,A=0){this.x=+a,this.y=+h,this.z=+A}static fromLngLat(a,h=0){let A=uA.convert(a);return new ZS(pF(A.lng),AF(A.lat),mF(h,A.lat))}toLngLat(){return new uA(gF(this.x),mC(this.y))}toAltitude(){return this.z*dF(mC(this.y))}meterInMercatorCoordinateUnits(){return 1/fF*(a=mC(this.y),1/Math.cos(a*Math.PI/180));var a}}function _F(u,a,h){var A=2*Math.PI*6378137/256/Math.pow(2,h);return[u*A-2*Math.PI*6378137/2,a*A-2*Math.PI*6378137/2]}class gC{constructor(a,h,A){if(a<0||a>25||A<0||A>=Math.pow(2,a)||h<0||h>=Math.pow(2,a))throw new Error(`x=${h}, y=${A}, z=${a} outside of bounds. 0<=x<${Math.pow(2,a)}, 0<=y<${Math.pow(2,a)} 0<=z<=25 `);this.z=a,this.x=h,this.y=A,this.key=Gx(0,a,a,h,A)}equals(a){return this.z===a.z&&this.x===a.x&&this.y===a.y}url(a,h,A){let x=(P=this.y,D=this.z,F=_F(256*(E=this.x),256*(P=Math.pow(2,D)-P-1),D),V=_F(256*(E+1),256*(P+1),D),F[0]+\",\"+F[1]+\",\"+V[0]+\",\"+V[1]);var E,P,D,F,V;let q=function(X,et,at){let ct,mt=\"\";for(let bt=X;bt>0;bt--)ct=1<1?\"@2x\":\"\").replace(/{quadkey}/g,q).replace(/{bbox-epsg-3857}/g,x)}isChildOf(a){let h=this.z-a.z;return h>0&&a.x===this.x>>h&&a.y===this.y>>h}getTilePoint(a){let h=Math.pow(2,this.z);return new w((a.x*h-this.x)*Xi,(a.y*h-this.y)*Xi)}toString(){return`${this.z}/${this.x}/${this.y}`}}class yF{constructor(a,h){this.wrap=a,this.canonical=h,this.key=Gx(a,h.z,h.z,h.x,h.y)}}class Bc{constructor(a,h,A,x,E){if(a= z; overscaledZ = ${a}; z = ${A}`);this.overscaledZ=a,this.wrap=h,this.canonical=new gC(A,+x,+E),this.key=Gx(h,a,A,x,E)}clone(){return new Bc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(a){return this.overscaledZ===a.overscaledZ&&this.wrap===a.wrap&&this.canonical.equals(a.canonical)}scaledTo(a){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let h=this.canonical.z-a;return a>this.canonical.z?new Bc(a,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Bc(a,this.wrap,a,this.canonical.x>>h,this.canonical.y>>h)}calculateScaledKey(a,h){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let A=this.canonical.z-a;return a>this.canonical.z?Gx(this.wrap*+h,a,this.canonical.z,this.canonical.x,this.canonical.y):Gx(this.wrap*+h,a,a,this.canonical.x>>A,this.canonical.y>>A)}isChildOf(a){if(a.wrap!==this.wrap)return!1;let h=this.canonical.z-a.canonical.z;return a.overscaledZ===0||a.overscaledZ>h&&a.canonical.y===this.canonical.y>>h}children(a){if(this.overscaledZ>=a)return[new Bc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let h=this.canonical.z+1,A=2*this.canonical.x,x=2*this.canonical.y;return[new Bc(h,this.wrap,h,A,x),new Bc(h,this.wrap,h,A+1,x),new Bc(h,this.wrap,h,A,x+1),new Bc(h,this.wrap,h,A+1,x+1)]}isLessThan(a){return this.wrapa.wrap)&&(this.overscaledZa.overscaledZ)&&(this.canonical.xa.canonical.x)&&this.canonical.ythis.max&&(this.max=X),X=this.dim+1||h<-1||h>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return(h+1)*this.stride+(a+1)}unpack(a,h,A){return a*this.redFactor+h*this.greenFactor+A*this.blueFactor-this.baseShift}getPixels(){return new Oc({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(a,h,A){if(this.dim!==a.dim)throw new Error(\"dem dimension mismatch\");let x=h*this.dim,E=h*this.dim+this.dim,P=A*this.dim,D=A*this.dim+this.dim;switch(h){case-1:x=E-1;break;case 1:E=x+1}switch(A){case-1:P=D-1;break;case 1:D=P+1}let F=-h*this.dim,V=-A*this.dim;for(let q=P;q=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${a} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[a]}}class bF{constructor(a,h,A,x,E){this.type=\"Feature\",this._vectorTileFeature=a,a._z=h,a._x=A,a._y=x,this.properties=a.properties,this.id=E}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(a){this._geometry=a}toJSON(){let a={geometry:this.geometry};for(let h in this)h!==\"_geometry\"&&h!==\"_vectorTileFeature\"&&(a[h]=this[h]);return a}}class wF{constructor(a,h){this.tileID=a,this.x=a.canonical.x,this.y=a.canonical.y,this.z=a.canonical.z,this.grid=new za(Xi,16,0),this.grid3D=new za(Xi,16,0),this.featureIndexArray=new he,this.promoteId=h}insert(a,h,A,x,E,P){let D=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(A,x,E);let F=P?this.grid3D:this.grid;for(let V=0;V=0&&X[3]>=0&&F.insert(D,X[0],X[1],X[2],X[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new aA.VectorTile(new sC(this.rawTileData)).layers,this.sourceLayerCoder=new xF(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(a,h,A,x){this.loadVTLayers();let E=a.params||{},P=Xi/a.tileSize/a.scale,D=Xm(E.filter),F=a.queryGeometry,V=a.queryPadding*P,q=TF(F),X=this.grid.query(q.minX-V,q.minY-V,q.maxX+V,q.maxY+V),et=TF(a.cameraQueryGeometry),at=this.grid3D.query(et.minX-V,et.minY-V,et.maxX+V,et.maxY+V,(bt,Et,Vt,kt)=>function(jt,qt,ae,Be,Je){for(let ke of jt)if(qt<=ke.x&&ae<=ke.y&&Be>=ke.x&&Je>=ke.y)return!0;let Oe=[new w(qt,ae),new w(qt,Je),new w(Be,Je),new w(Be,ae)];if(jt.length>2){for(let ke of Oe)if(ie(jt,ke))return!0}for(let ke=0;ke(kt||(kt=y(jt)),qt.queryIntersectsFeature(F,jt,ae,kt,this.z,a.transform,P,a.pixelPosMatrix)))}return ct}loadMatchingFeature(a,h,A,x,E,P,D,F,V,q,X){let et=this.bucketLayerIDs[h];if(P&&!function(bt,Et){for(let Vt=0;Vt=0)return!0;return!1}(P,et))return;let at=this.sourceLayerCoder.decode(A),ct=this.vtLayers[at].feature(x);if(E.needGeometry){let bt=S(ct,!0);if(!E.filter(new ln(this.tileID.overscaledZ),bt,this.tileID.canonical))return}else if(!E.filter(new ln(this.tileID.overscaledZ),ct))return;let mt=this.getId(ct,at);for(let bt=0;bt{let D=a instanceof iA?a.get(P):null;return D&&D.evaluate?D.evaluate(h,A,x):D})}function TF(u){let a=1/0,h=1/0,A=-1/0,x=-1/0;for(let E of u)a=Math.min(a,E.x),h=Math.min(h,E.y),A=Math.max(A,E.x),x=Math.max(x,E.y);return{minX:a,minY:h,maxX:A,maxY:x}}function dK(u,a){return a-u}function MF(u,a,h,A,x){let E=[];for(let P=0;P=A&&X.x>=A||(q.x>=A?q=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round():X.x>=A&&(X=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round()),q.y>=x&&X.y>=x||(q.y>=x?q=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round():X.y>=x&&(X=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round()),F&&q.equals(F[F.length-1])||(F=[q],E.push(F)),F.push(X)))))}}return E}Ue(\"FeatureIndex\",wF,{omit:[\"rawTileData\",\"sourceLayerCoder\"]});class hA extends w{constructor(a,h,A,x){super(a,h),this.angle=A,x!==void 0&&(this.segment=x)}clone(){return new hA(this.x,this.y,this.angle,this.segment)}}function EF(u,a,h,A,x){if(a.segment===void 0||h===0)return!0;let E=a,P=a.segment+1,D=0;for(;D>-h/2;){if(P--,P<0)return!1;D-=u[P].dist(E),E=u[P]}D+=u[P].dist(u[P+1]),P++;let F=[],V=0;for(;DA;)V-=F.shift().angleDelta;if(V>x)return!1;P++,D+=q.dist(X)}return!0}function PF(u){let a=0;for(let h=0;hV){let ct=(V-F)/at,mt=Ra.number(X.x,et.x,ct),bt=Ra.number(X.y,et.y,ct),Et=new hA(mt,bt,et.angleTo(X),q);return Et._round(),!P||EF(u,Et,D,P,a)?Et:void 0}F+=at}}function AK(u,a,h,A,x,E,P,D,F){let V=IF(A,E,P),q=CF(A,x),X=q*P,et=u[0].x===0||u[0].x===F||u[0].y===0||u[0].y===F;return a-X
=0&&jt=0&&qt=0&&et+V<=q){let ae=new hA(jt,qt,Vt,ct);ae._round(),A&&!EF(u,ae,E,A,x)||at.push(ae)}}X+=Et}return D||at.length||P||(at=LF(u,X/2,h,A,x,E,P,!0,F)),at}Ue(\"Anchor\",hA);let v_=pl;function kF(u,a,h,A){let x=[],E=u.image,P=E.pixelRatio,D=E.paddedRect.w-2*v_,F=E.paddedRect.h-2*v_,V=u.right-u.left,q=u.bottom-u.top,X=E.stretchX||[[0,D]],et=E.stretchY||[[0,F]],at=(Te,He)=>Te+He[1]-He[0],ct=X.reduce(at,0),mt=et.reduce(at,0),bt=D-ct,Et=F-mt,Vt=0,kt=ct,jt=0,qt=mt,ae=0,Be=bt,Je=0,Oe=Et;if(E.content&&A){let Te=E.content;Vt=YS(X,0,Te[0]),jt=YS(et,0,Te[1]),kt=YS(X,Te[0],Te[2]),qt=YS(et,Te[1],Te[3]),ae=Te[0]-Vt,Je=Te[1]-jt,Be=Te[2]-Te[0]-kt,Oe=Te[3]-Te[1]-qt}let ke=(Te,He,Pe,Ae)=>{let ur=QS(Te.stretch-Vt,kt,V,u.left),ir=$S(Te.fixed-ae,Be,Te.stretch,ct),ri=QS(He.stretch-jt,qt,q,u.top),xn=$S(He.fixed-Je,Oe,He.stretch,mt),Ln=QS(Pe.stretch-Vt,kt,V,u.left),Vs=$S(Pe.fixed-ae,Be,Pe.stretch,ct),Hl=QS(Ae.stretch-jt,qt,q,u.top),Va=$S(Ae.fixed-Je,Oe,Ae.stretch,mt),Ps=new w(ur,ri),vo=new w(Ln,ri),Yo=new w(Ln,Hl),ja=new w(ur,Hl),Ga=new w(ir/P,xn/P),js=new w(Vs/P,Va/P),Gs=a*Math.PI/180;if(Gs){let fa=Math.sin(Gs),Al=Math.cos(Gs),ml=[Al,-fa,fa,Al];Ps._matMult(ml),vo._matMult(ml),ja._matMult(ml),Yo._matMult(ml)}let ha=Te.stretch+Te.fixed,Wa=He.stretch+He.fixed;return{tl:Ps,tr:vo,bl:ja,br:Yo,tex:{x:E.paddedRect.x+v_+ha,y:E.paddedRect.y+v_+Wa,w:Pe.stretch+Pe.fixed-ha,h:Ae.stretch+Ae.fixed-Wa},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Ga,pixelOffsetBR:js,minFontScaleX:Be/P/V,minFontScaleY:Oe/P/q,isSDF:h}};if(A&&(E.stretchX||E.stretchY)){let Te=RF(X,bt,ct),He=RF(et,Et,mt);for(let Pe=0;Pe0&&(ct=Math.max(10,ct),this.circleDiameter=ct)}else{let X=P.top*D-F[0],et=P.bottom*D+F[2],at=P.left*D-F[3],ct=P.right*D+F[1],mt=P.collisionPadding;if(mt&&(at-=mt[0]*D,X-=mt[1]*D,ct+=mt[2]*D,et+=mt[3]*D),q){let bt=new w(at,X),Et=new w(ct,X),Vt=new w(at,et),kt=new w(ct,et),jt=q*Math.PI/180;bt._rotate(jt),Et._rotate(jt),Vt._rotate(jt),kt._rotate(jt),at=Math.min(bt.x,Et.x,Vt.x,kt.x),ct=Math.max(bt.x,Et.x,Vt.x,kt.x),X=Math.min(bt.y,Et.y,Vt.y,kt.y),et=Math.max(bt.y,Et.y,Vt.y,kt.y)}a.emplaceBack(h.x,h.y,at,X,ct,et,A,x,E)}this.boxEndIndex=a.length}}class mK{constructor(a=[],h=gK){if(this.data=a,this.length=this.data.length,this.compare=h,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(a){this.data.push(a),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let a=this.data[0],h=this.data.pop();return this.length--,this.length>0&&(this.data[0]=h,this._down(0)),a}peek(){return this.data[0]}_up(a){let{data:h,compare:A}=this,x=h[a];for(;a>0;){let E=a-1>>1,P=h[E];if(A(x,P)>=0)break;h[a]=P,a=E}h[a]=x}_down(a){let{data:h,compare:A}=this,x=this.length>>1,E=h[a];for(;a=0)break;h[a]=D,a=P}h[a]=E}}function gK(u,a){return ua?1:0}function _K(u,a=1,h=!1){let A=1/0,x=1/0,E=-1/0,P=-1/0,D=u[0];for(let at=0;atE)&&(E=ct.x),(!at||ct.y>P)&&(P=ct.y)}let F=Math.min(E-A,P-x),V=F/2,q=new mK([],yK);if(F===0)return new w(A,x);for(let at=A;atX.d||!X.d)&&(X=at,h&&console.log(\"found best %d after %d probes\",Math.round(1e4*at.d)/1e4,et)),at.max-X.d<=a||(V=at.h/2,q.push(new x_(at.p.x-V,at.p.y-V,V,u)),q.push(new x_(at.p.x+V,at.p.y-V,V,u)),q.push(new x_(at.p.x-V,at.p.y+V,V,u)),q.push(new x_(at.p.x+V,at.p.y+V,V,u)),et+=4)}return h&&(console.log(`num probes: ${et}`),console.log(`best distance: ${X.d}`)),X.p}function yK(u,a){return a.max-u.max}function x_(u,a,h,A){this.p=new w(u,a),this.h=h,this.d=function(x,E){let P=!1,D=1/0;for(let F=0;Fx.y!=ct.y>x.y&&x.x<(ct.x-at.x)*(x.y-at.y)/(ct.y-at.y)+at.x&&(P=!P),D=Math.min(D,Gt(x,at,ct))}}return(P?1:-1)*Math.sqrt(D)}(this.p,A),this.max=this.d+this.h*Math.SQRT2}var Zo;n.aq=void 0,(Zo=n.aq||(n.aq={}))[Zo.center=1]=\"center\",Zo[Zo.left=2]=\"left\",Zo[Zo.right=3]=\"right\",Zo[Zo.top=4]=\"top\",Zo[Zo.bottom=5]=\"bottom\",Zo[Zo[\"top-left\"]=6]=\"top-left\",Zo[Zo[\"top-right\"]=7]=\"top-right\",Zo[Zo[\"bottom-left\"]=8]=\"bottom-left\",Zo[Zo[\"bottom-right\"]=9]=\"bottom-right\";let fA=7,_C=Number.POSITIVE_INFINITY;function DF(u,a){return a[1]!==_C?function(h,A,x){let E=0,P=0;switch(A=Math.abs(A),x=Math.abs(x),h){case\"top-right\":case\"top-left\":case\"top\":P=x-fA;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":P=-x+fA}switch(h){case\"top-right\":case\"bottom-right\":case\"right\":E=-A;break;case\"top-left\":case\"bottom-left\":case\"left\":E=A}return[E,P]}(u,a[0],a[1]):function(h,A){let x=0,E=0;A<0&&(A=0);let P=A/Math.SQRT2;switch(h){case\"top-right\":case\"top-left\":E=P-fA;break;case\"bottom-right\":case\"bottom-left\":E=-P+fA;break;case\"bottom\":E=-A+fA;break;case\"top\":E=A-fA}switch(h){case\"top-right\":case\"bottom-right\":x=-P;break;case\"top-left\":case\"bottom-left\":x=P;break;case\"left\":x=A;break;case\"right\":x=-A}return[x,E]}(u,a[0])}function OF(u,a,h){var A;let x=u.layout,E=(A=x.get(\"text-variable-anchor-offset\"))===null||A===void 0?void 0:A.evaluate(a,{},h);if(E){let D=E.values,F=[];for(let V=0;Vet*Us);q.startsWith(\"top\")?X[1]-=fA:q.startsWith(\"bottom\")&&(X[1]+=fA),F[V+1]=X}return new Vo(F)}let P=x.get(\"text-variable-anchor\");if(P){let D;D=u._unevaluatedLayout.getValue(\"text-radial-offset\")!==void 0?[x.get(\"text-radial-offset\").evaluate(a,{},h)*Us,_C]:x.get(\"text-offset\").evaluate(a,{},h).map(V=>V*Us);let F=[];for(let V of P)F.push(V,DF(V,D));return new Vo(F)}return null}function yC(u){switch(u){case\"right\":case\"top-right\":case\"bottom-right\":return\"right\";case\"left\":case\"top-left\":case\"bottom-left\":return\"left\"}return\"center\"}function vK(u,a,h,A,x,E,P,D,F,V,q){let X=E.textMaxSize.evaluate(a,{});X===void 0&&(X=P);let et=u.layers[0].layout,at=et.get(\"icon-offset\").evaluate(a,{},q),ct=FF(h.horizontal),mt=P/24,bt=u.tilePixelRatio*mt,Et=u.tilePixelRatio*X/24,Vt=u.tilePixelRatio*D,kt=u.tilePixelRatio*et.get(\"symbol-spacing\"),jt=et.get(\"text-padding\")*u.tilePixelRatio,qt=function(Ae,ur,ir,ri=1){let xn=Ae.get(\"icon-padding\").evaluate(ur,{},ir),Ln=xn&&xn.values;return[Ln[0]*ri,Ln[1]*ri,Ln[2]*ri,Ln[3]*ri]}(et,a,q,u.tilePixelRatio),ae=et.get(\"text-max-angle\")/180*Math.PI,Be=et.get(\"text-rotation-alignment\")!==\"viewport\"&&et.get(\"symbol-placement\")!==\"point\",Je=et.get(\"icon-rotation-alignment\")===\"map\"&&et.get(\"symbol-placement\")!==\"point\",Oe=et.get(\"symbol-placement\"),ke=kt/2,Te=et.get(\"icon-text-fit\"),He;A&&Te!==\"none\"&&(u.allowVerticalPlacement&&h.vertical&&(He=sF(A,h.vertical,Te,et.get(\"icon-text-fit-padding\"),at,mt)),ct&&(A=sF(A,ct,Te,et.get(\"icon-text-fit-padding\"),at,mt)));let Pe=(Ae,ur)=>{ur.x<0||ur.x>=Xi||ur.y<0||ur.y>=Xi||function(ir,ri,xn,Ln,Vs,Hl,Va,Ps,vo,Yo,ja,Ga,js,Gs,ha,Wa,fa,Al,ml,Ws,di,da,Qo,Hs,_u){let yh=ir.addToLineVertexArray(ri,xn),vh,zd,yu,Fc,gl=0,Nd=0,qx=0,VF=0,EC=-1,PC=-1,Ud={},jF=_h(\"\");if(ir.allowVerticalPlacement&&Ln.vertical){let pa=Ps.layout.get(\"text-rotate\").evaluate(di,{},Hs)+90;yu=new XS(vo,ri,Yo,ja,Ga,Ln.vertical,js,Gs,ha,pa),Va&&(Fc=new XS(vo,ri,Yo,ja,Ga,Va,fa,Al,ha,pa))}if(Vs){let pa=Ps.layout.get(\"icon-rotate\").evaluate(di,{}),zc=Ps.layout.get(\"icon-text-fit\")!==\"none\",h0=kF(Vs,pa,Qo,zc),bh=Va?kF(Va,pa,Qo,zc):void 0;zd=new XS(vo,ri,Yo,ja,Ga,Vs,fa,Al,!1,pa),gl=4*h0.length;let f0=ir.iconSizeData,Mf=null;f0.kind===\"source\"?(Mf=[Tf*Ps.layout.get(\"icon-size\").evaluate(di,{})],Mf[0]>cA&&tr(`${ir.layerIds[0]}: Value for \"icon-size\" is >= ${jx}. Reduce your \"icon-size\".`)):f0.kind===\"composite\"&&(Mf=[Tf*da.compositeIconSizes[0].evaluate(di,{},Hs),Tf*da.compositeIconSizes[1].evaluate(di,{},Hs)],(Mf[0]>cA||Mf[1]>cA)&&tr(`${ir.layerIds[0]}: Value for \"icon-size\" is >= ${jx}. Reduce your \"icon-size\".`)),ir.addSymbols(ir.icon,h0,Mf,Ws,ml,di,n.ai.none,ri,yh.lineStartIndex,yh.lineLength,-1,Hs),EC=ir.icon.placedSymbolArray.length-1,bh&&(Nd=4*bh.length,ir.addSymbols(ir.icon,bh,Mf,Ws,ml,di,n.ai.vertical,ri,yh.lineStartIndex,yh.lineLength,-1,Hs),PC=ir.icon.placedSymbolArray.length-1)}let GF=Object.keys(Ln.horizontal);for(let pa of GF){let zc=Ln.horizontal[pa];if(!vh){jF=_h(zc.text);let bh=Ps.layout.get(\"text-rotate\").evaluate(di,{},Hs);vh=new XS(vo,ri,Yo,ja,Ga,zc,js,Gs,ha,bh)}let h0=zc.positionedLines.length===1;if(qx+=BF(ir,ri,zc,Hl,Ps,ha,di,Wa,yh,Ln.vertical?n.ai.horizontal:n.ai.horizontalOnly,h0?GF:[pa],Ud,EC,da,Hs),h0)break}Ln.vertical&&(VF+=BF(ir,ri,Ln.vertical,Hl,Ps,ha,di,Wa,yh,n.ai.vertical,[\"vertical\"],Ud,PC,da,Hs));let wK=vh?vh.boxStartIndex:ir.collisionBoxArray.length,SK=vh?vh.boxEndIndex:ir.collisionBoxArray.length,TK=yu?yu.boxStartIndex:ir.collisionBoxArray.length,MK=yu?yu.boxEndIndex:ir.collisionBoxArray.length,EK=zd?zd.boxStartIndex:ir.collisionBoxArray.length,PK=zd?zd.boxEndIndex:ir.collisionBoxArray.length,IK=Fc?Fc.boxStartIndex:ir.collisionBoxArray.length,CK=Fc?Fc.boxEndIndex:ir.collisionBoxArray.length,xh=-1,JS=(pa,zc)=>pa&&pa.circleDiameter?Math.max(pa.circleDiameter,zc):zc;xh=JS(vh,xh),xh=JS(yu,xh),xh=JS(zd,xh),xh=JS(Fc,xh);let WF=xh>-1?1:0;WF&&(xh*=_u/Us),ir.glyphOffsetArray.length>=y_.MAX_GLYPHS&&tr(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),di.sortKey!==void 0&&ir.addToSortKeyRanges(ir.symbolInstances.length,di.sortKey);let LK=OF(Ps,di,Hs),[kK,RK]=function(pa,zc){let h0=pa.length,bh=zc?.values;if(bh?.length>0)for(let f0=0;f0=0?Ud.right:-1,Ud.center>=0?Ud.center:-1,Ud.left>=0?Ud.left:-1,Ud.vertical||-1,EC,PC,jF,wK,SK,TK,MK,EK,PK,IK,CK,Yo,qx,VF,gl,Nd,WF,0,js,xh,kK,RK)}(u,ur,Ae,h,A,x,He,u.layers[0],u.collisionBoxArray,a.index,a.sourceLayerIndex,u.index,bt,[jt,jt,jt,jt],Be,F,Vt,qt,Je,at,a,E,V,q,P)};if(Oe===\"line\")for(let Ae of MF(a.geometry,0,0,Xi,Xi)){let ur=AK(Ae,kt,ae,h.vertical||ct,A,24,Et,u.overscaling,Xi);for(let ir of ur)ct&&xK(u,ct.text,ke,ir)||Pe(Ae,ir)}else if(Oe===\"line-center\"){for(let Ae of a.geometry)if(Ae.length>1){let ur=pK(Ae,ae,h.vertical||ct,A,24,Et);ur&&Pe(Ae,ur)}}else if(a.type===\"Polygon\")for(let Ae of XI(a.geometry,0)){let ur=_K(Ae,16);Pe(Ae[0],new hA(ur.x,ur.y,0))}else if(a.type===\"LineString\")for(let Ae of a.geometry)Pe(Ae,new hA(Ae[0].x,Ae[0].y,0));else if(a.type===\"Point\")for(let Ae of a.geometry)for(let ur of Ae)Pe([ur],new hA(ur.x,ur.y,0))}function BF(u,a,h,A,x,E,P,D,F,V,q,X,et,at,ct){let mt=function(Vt,kt,jt,qt,ae,Be,Je,Oe){let ke=qt.layout.get(\"text-rotate\").evaluate(Be,{})*Math.PI/180,Te=[];for(let He of kt.positionedLines)for(let Pe of He.positionedGlyphs){if(!Pe.rect)continue;let Ae=Pe.rect||{},ur=K6+1,ir=!0,ri=1,xn=0,Ln=(ae||Oe)&&Pe.vertical,Vs=Pe.metrics.advance*Pe.scale/2;if(Oe&&kt.verticalizable&&(xn=He.lineOffset/2-(Pe.imageName?-(Us-Pe.metrics.width*Pe.scale)/2:(Pe.scale-1)*Us)),Pe.imageName){let Ws=Je[Pe.imageName];ir=Ws.sdf,ri=Ws.pixelRatio,ur=pl/ri}let Hl=ae?[Pe.x+Vs,Pe.y]:[0,0],Va=ae?[0,0]:[Pe.x+Vs+jt[0],Pe.y+jt[1]-xn],Ps=[0,0];Ln&&(Ps=Va,Va=[0,0]);let vo=Pe.metrics.isDoubleResolution?2:1,Yo=(Pe.metrics.left-ur)*Pe.scale-Vs+Va[0],ja=(-Pe.metrics.top-ur)*Pe.scale+Va[1],Ga=Yo+Ae.w/vo*Pe.scale/ri,js=ja+Ae.h/vo*Pe.scale/ri,Gs=new w(Yo,ja),ha=new w(Ga,ja),Wa=new w(Yo,js),fa=new w(Ga,js);if(Ln){let Ws=new w(-Vs,Vs-Ux),di=-Math.PI/2,da=Us/2-Vs,Qo=new w(5-Ux-da,-(Pe.imageName?da:0)),Hs=new w(...Ps);Gs._rotateAround(di,Ws)._add(Qo)._add(Hs),ha._rotateAround(di,Ws)._add(Qo)._add(Hs),Wa._rotateAround(di,Ws)._add(Qo)._add(Hs),fa._rotateAround(di,Ws)._add(Qo)._add(Hs)}if(ke){let Ws=Math.sin(ke),di=Math.cos(ke),da=[di,-Ws,Ws,di];Gs._matMult(da),ha._matMult(da),Wa._matMult(da),fa._matMult(da)}let Al=new w(0,0),ml=new w(0,0);Te.push({tl:Gs,tr:ha,bl:Wa,br:fa,tex:Ae,writingMode:kt.writingMode,glyphOffset:Hl,sectionIndex:Pe.sectionIndex,isSDF:ir,pixelOffsetTL:Al,pixelOffsetBR:ml,minFontScaleX:0,minFontScaleY:0})}return Te}(0,h,D,x,E,P,A,u.allowVerticalPlacement),bt=u.textSizeData,Et=null;bt.kind===\"source\"?(Et=[Tf*x.layout.get(\"text-size\").evaluate(P,{})],Et[0]>cA&&tr(`${u.layerIds[0]}: Value for \"text-size\" is >= ${jx}. Reduce your \"text-size\".`)):bt.kind===\"composite\"&&(Et=[Tf*at.compositeTextSizes[0].evaluate(P,{},ct),Tf*at.compositeTextSizes[1].evaluate(P,{},ct)],(Et[0]>cA||Et[1]>cA)&&tr(`${u.layerIds[0]}: Value for \"text-size\" is >= ${jx}. Reduce your \"text-size\".`)),u.addSymbols(u.text,mt,Et,D,E,P,V,a,F.lineStartIndex,F.lineLength,et,ct);for(let Vt of q)X[Vt]=u.text.placedSymbolArray.length-1;return 4*mt.length}function FF(u){for(let a in u)return u[a];return null}function xK(u,a,h,A){let x=u.compareText;if(a in x){let E=x[a];for(let P=E.length-1;P>=0;P--)if(A.dist(E[P])>4;if(x!==1)throw new Error(`Got v${x} data when expected v1.`);let E=zF[15&A];if(!E)throw new Error(\"Unrecognized array type.\");let[P]=new Uint16Array(a,2,1),[D]=new Uint32Array(a,4,1);return new vC(D,P,E,a)}constructor(a,h=64,A=Float64Array,x){if(isNaN(a)||a<0)throw new Error(`Unpexpected numItems value: ${a}.`);this.numItems=+a,this.nodeSize=Math.min(Math.max(+h,2),65535),this.ArrayType=A,this.IndexArrayType=a<65536?Uint16Array:Uint32Array;let E=zF.indexOf(this.ArrayType),P=2*a*this.ArrayType.BYTES_PER_ELEMENT,D=a*this.IndexArrayType.BYTES_PER_ELEMENT,F=(8-D%8)%8;if(E<0)throw new Error(`Unexpected typed array class: ${A}.`);x&&x instanceof ArrayBuffer?(this.data=x,this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=2*a,this._finished=!0):(this.data=new ArrayBuffer(8+P+D+F),this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+E]),new Uint16Array(this.data,2,1)[0]=h,new Uint32Array(this.data,4,1)[0]=a)}add(a,h){let A=this._pos>>1;return this.ids[A]=A,this.coords[this._pos++]=a,this.coords[this._pos++]=h,A}finish(){let a=this._pos>>1;if(a!==this.numItems)throw new Error(`Added ${a} items when expected ${this.numItems}.`);return xC(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(a,h,A,x){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:E,coords:P,nodeSize:D}=this,F=[0,E.length-1,0],V=[];for(;F.length;){let q=F.pop()||0,X=F.pop()||0,et=F.pop()||0;if(X-et<=D){for(let bt=et;bt<=X;bt++){let Et=P[2*bt],Vt=P[2*bt+1];Et>=a&&Et<=A&&Vt>=h&&Vt<=x&&V.push(E[bt])}continue}let at=et+X>>1,ct=P[2*at],mt=P[2*at+1];ct>=a&&ct<=A&&mt>=h&&mt<=x&&V.push(E[at]),(q===0?a<=ct:h<=mt)&&(F.push(et),F.push(at-1),F.push(1-q)),(q===0?A>=ct:x>=mt)&&(F.push(at+1),F.push(X),F.push(1-q))}return V}within(a,h,A){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:x,coords:E,nodeSize:P}=this,D=[0,x.length-1,0],F=[],V=A*A;for(;D.length;){let q=D.pop()||0,X=D.pop()||0,et=D.pop()||0;if(X-et<=P){for(let bt=et;bt<=X;bt++)UF(E[2*bt],E[2*bt+1],a,h)<=V&&F.push(x[bt]);continue}let at=et+X>>1,ct=E[2*at],mt=E[2*at+1];UF(ct,mt,a,h)<=V&&F.push(x[at]),(q===0?a-A<=ct:h-A<=mt)&&(D.push(et),D.push(at-1),D.push(1-q)),(q===0?a+A>=ct:h+A>=mt)&&(D.push(at+1),D.push(X),D.push(1-q))}return F}}function xC(u,a,h,A,x,E){if(x-A<=h)return;let P=A+x>>1;NF(u,a,P,A,x,E),xC(u,a,h,A,P-1,1-E),xC(u,a,h,P+1,x,1-E)}function NF(u,a,h,A,x,E){for(;x>A;){if(x-A>600){let V=x-A+1,q=h-A+1,X=Math.log(V),et=.5*Math.exp(2*X/3),at=.5*Math.sqrt(X*et*(V-et)/V)*(q-V/2<0?-1:1);NF(u,a,h,Math.max(A,Math.floor(h-q*et/V+at)),Math.min(x,Math.floor(h+(V-q)*et/V+at)),E)}let P=a[2*h+E],D=A,F=x;for(Wx(u,a,A,h),a[2*x+E]>P&&Wx(u,a,A,x);DP;)F--}a[2*A+E]===P?Wx(u,a,A,F):(F++,Wx(u,a,F,x)),F<=h&&(A=F+1),h<=F&&(x=F-1)}}function Wx(u,a,h,A){bC(u,h,A),bC(a,2*h,2*A),bC(a,2*h+1,2*A+1)}function bC(u,a,h){let A=u[a];u[a]=u[h],u[h]=A}function UF(u,a,h,A){let x=u-h,E=a-A;return x*x+E*E}var wC;n.bh=void 0,(wC=n.bh||(n.bh={})).create=\"create\",wC.load=\"load\",wC.fullLoad=\"fullLoad\";let KS=null,Hx=[],SC=1e3/60,TC=\"loadTime\",MC=\"fullLoadTime\",bK={mark(u){performance.mark(u)},frame(u){let a=u;KS!=null&&Hx.push(a-KS),KS=a},clearMetrics(){KS=null,Hx=[],performance.clearMeasures(TC),performance.clearMeasures(MC);for(let u in n.bh)performance.clearMarks(n.bh[u])},getPerformanceMetrics(){performance.measure(TC,n.bh.create,n.bh.load),performance.measure(MC,n.bh.create,n.bh.fullLoad);let u=performance.getEntriesByName(TC)[0].duration,a=performance.getEntriesByName(MC)[0].duration,h=Hx.length,A=1/(Hx.reduce((E,P)=>E+P,0)/h/1e3),x=Hx.filter(E=>E>SC).reduce((E,P)=>E+(P-SC)/SC,0);return{loadTime:u,fullLoadTime:a,fps:A,percentDroppedFrames:x/(h+x)*100,totalFrames:h}}};n.$=function(u,a,h){var A,x,E,P,D,F,V,q,X,et,at,ct,mt=h[0],bt=h[1],Et=h[2];return a===u?(u[12]=a[0]*mt+a[4]*bt+a[8]*Et+a[12],u[13]=a[1]*mt+a[5]*bt+a[9]*Et+a[13],u[14]=a[2]*mt+a[6]*bt+a[10]*Et+a[14],u[15]=a[3]*mt+a[7]*bt+a[11]*Et+a[15]):(x=a[1],E=a[2],P=a[3],D=a[4],F=a[5],V=a[6],q=a[7],X=a[8],et=a[9],at=a[10],ct=a[11],u[0]=A=a[0],u[1]=x,u[2]=E,u[3]=P,u[4]=D,u[5]=F,u[6]=V,u[7]=q,u[8]=X,u[9]=et,u[10]=at,u[11]=ct,u[12]=A*mt+D*bt+X*Et+a[12],u[13]=x*mt+F*bt+et*Et+a[13],u[14]=E*mt+V*bt+at*Et+a[14],u[15]=P*mt+q*bt+ct*Et+a[15]),u},n.A=ze,n.B=Ra,n.C=class{constructor(u,a,h){this.receive=A=>{let x=A.data,E=x.id;if(E&&(!x.targetMapId||this.mapId===x.targetMapId))if(x.type===\"\"){delete this.tasks[E];let P=this.cancelCallbacks[E];delete this.cancelCallbacks[E],P&&P()}else zi()||x.mustQueue?(this.tasks[E]=x,this.taskQueue.push(E),this.invoker.trigger()):this.processTask(E,x)},this.process=()=>{if(!this.taskQueue.length)return;let A=this.taskQueue.shift(),x=this.tasks[A];delete this.tasks[A],this.taskQueue.length&&this.invoker.trigger(),x&&this.processTask(A,x)},this.target=u,this.parent=a,this.mapId=h,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new fK(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=zi()?u:window}send(u,a,h,A,x=!1){let E=Math.round(1e18*Math.random()).toString(36).substring(0,10);h&&(this.callbacks[E]=h);let P=[],D={id:E,type:u,hasCallback:!!h,targetMapId:A,mustQueue:x,sourceMapId:this.mapId,data:Vl(a,P)};return this.target.postMessage(D,{transfer:P}),{cancel:()=>{h&&delete this.callbacks[E],this.target.postMessage({id:E,type:\"\",targetMapId:A,sourceMapId:this.mapId})}}}processTask(u,a){if(a.type===\"\"){let h=this.callbacks[u];delete this.callbacks[u],h&&(a.error?h(yf(a.error)):h(null,yf(a.data)))}else{let h=!1,A=[],x=a.hasCallback?(D,F)=>{h=!0,delete this.cancelCallbacks[u];let V={id:u,type:\"\",sourceMapId:this.mapId,error:D?Vl(D):null,data:Vl(F,A)};this.target.postMessage(V,{transfer:A})}:D=>{h=!0},E=null,P=yf(a.data);if(this.parent[a.type])E=this.parent[a.type](a.sourceMapId,P,x);else if(\"getWorkerSource\"in this.parent){let D=a.type.split(\".\");E=this.parent.getWorkerSource(a.sourceMapId,D[0],P.source)[D[1]](P,x)}else x(new Error(`Could not find function ${a.type}`));!h&&E&&E.cancel&&(this.cancelCallbacks[u]=E.cancel)}}remove(){this.invoker.remove(),this.target.removeEventListener(\"message\",this.receive,!1)}},n.D=rr,n.E=Ol,n.F=function(u,a){let h={};for(let A=0;A{}}},n.Y=ve,n.Z=function(){var u=new ze(16);return ze!=Float32Array&&(u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=0,u[12]=0,u[13]=0,u[14]=0),u[0]=1,u[5]=1,u[10]=1,u[15]=1,u},n._=o,n.a=Pc,n.a$=class extends st{},n.a0=function(u,a,h){var A=h[0],x=h[1],E=h[2];return u[0]=a[0]*A,u[1]=a[1]*A,u[2]=a[2]*A,u[3]=a[3]*A,u[4]=a[4]*x,u[5]=a[5]*x,u[6]=a[6]*x,u[7]=a[7]*x,u[8]=a[8]*E,u[9]=a[9]*E,u[10]=a[10]*E,u[11]=a[11]*E,u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.a1=Gi,n.a2=function(){return Kt++},n.a3=yt,n.a4=y_,n.a5=function(){ua.isLoading()||ua.isLoaded()||a0()!==\"deferred\"||c_()},n.a6=Xm,n.a7=S,n.a8=ln,n.a9=bF,n.aA=Rc,n.aB=function(u){u=u.slice();let a=Object.create(null);for(let h=0;h{A[P.source]?h.push({command:oi.removeLayer,args:[P.id]}):E.push(P)}),h=h.concat(x),function(P,D,F){D=D||[];let V=(P=P||[]).map(Pa),q=D.map(Pa),X=P.reduce(Ao,{}),et=D.reduce(Ao,{}),at=V.slice(),ct=Object.create(null),mt,bt,Et,Vt,kt,jt,qt;for(mt=0,bt=0;mt@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,(h,A,x,E)=>{let P=x||E;return a[A]=!P||P.toLowerCase(),\"\"}),a[\"max-age\"]){let h=parseInt(a[\"max-age\"],10);isNaN(h)?delete a[\"max-age\"]:a[\"max-age\"]=h}return a},n.ab=function(u,a){let h=[];for(let A in u)A in a||h.push(A);return h},n.ac=function(u){if(Bo==null){let a=u.navigator?u.navigator.userAgent:null;Bo=!!u.safari||!(!a||!(/\\b(iPad|iPhone|iPod)\\b/.test(a)||a.match(\"Safari\")&&!a.match(\"Chrome\")))}return Bo},n.ad=ut,n.ae=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[0],P=a[1],D=a[2],F=a[3],V=a[4],q=a[5],X=a[6],et=a[7];return a!==u&&(u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[0]=E*x+V*A,u[1]=P*x+q*A,u[2]=D*x+X*A,u[3]=F*x+et*A,u[4]=V*x-E*A,u[5]=q*x-P*A,u[6]=X*x-D*A,u[7]=et*x-F*A,u},n.af=function(u){var a=new ze(16);return a[0]=u[0],a[1]=u[1],a[2]=u[2],a[3]=u[3],a[4]=u[4],a[5]=u[5],a[6]=u[6],a[7]=u[7],a[8]=u[8],a[9]=u[9],a[10]=u[10],a[11]=u[11],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15],a},n.ag=Ei,n.ah=function(u,a){let h=0,A=0;if(u.kind===\"constant\")A=u.layoutSize;else if(u.kind!==\"source\"){let{interpolationType:x,minZoom:E,maxZoom:P}=u,D=x?ut(Da.interpolationFactor(x,a,E,P),0,1):0;u.kind===\"camera\"?A=Ra.number(u.minSize,u.maxSize,D):h=D}return{uSizeT:h,uSize:A}},n.aj=function(u,{uSize:a,uSizeT:h},{lowerSize:A,upperSize:x}){return u.kind===\"source\"?A/Tf:u.kind===\"composite\"?Ra.number(A/Tf,x/Tf,h):a},n.ak=hC,n.al=function(u,a,h,A){let x=a.y-u.y,E=a.x-u.x,P=A.y-h.y,D=A.x-h.x,F=P*E-D*x;if(F===0)return null;let V=(D*(u.y-h.y)-P*(u.x-h.x))/F;return new w(u.x+V*E,u.y+V*x)},n.am=MF,n.an=L,n.ao=Zr,n.ap=Us,n.ar=uC,n.as=function(u,a){var h=a[0],A=a[1],x=a[2],E=a[3],P=a[4],D=a[5],F=a[6],V=a[7],q=a[8],X=a[9],et=a[10],at=a[11],ct=a[12],mt=a[13],bt=a[14],Et=a[15],Vt=h*D-A*P,kt=h*F-x*P,jt=h*V-E*P,qt=A*F-x*D,ae=A*V-E*D,Be=x*V-E*F,Je=q*mt-X*ct,Oe=q*bt-et*ct,ke=q*Et-at*ct,Te=X*bt-et*mt,He=X*Et-at*mt,Pe=et*Et-at*bt,Ae=Vt*Pe-kt*He+jt*Te+qt*ke-ae*Oe+Be*Je;return Ae?(u[0]=(D*Pe-F*He+V*Te)*(Ae=1/Ae),u[1]=(x*He-A*Pe-E*Te)*Ae,u[2]=(mt*Be-bt*ae+Et*qt)*Ae,u[3]=(et*ae-X*Be-at*qt)*Ae,u[4]=(F*ke-P*Pe-V*Oe)*Ae,u[5]=(h*Pe-x*ke+E*Oe)*Ae,u[6]=(bt*jt-ct*Be-Et*kt)*Ae,u[7]=(q*Be-et*jt+at*kt)*Ae,u[8]=(P*He-D*ke+V*Je)*Ae,u[9]=(A*ke-h*He-E*Je)*Ae,u[10]=(ct*ae-mt*jt+Et*Vt)*Ae,u[11]=(X*jt-q*ae-at*Vt)*Ae,u[12]=(D*Oe-P*Te-F*Je)*Ae,u[13]=(h*Te-A*Oe+x*Je)*Ae,u[14]=(mt*kt-ct*qt-bt*Vt)*Ae,u[15]=(q*qt-X*kt+et*Vt)*Ae,u):null},n.at=yC,n.au=cC,n.av=vC,n.aw=function(){let u={},a=te.$version;for(let h in te.$root){let A=te.$root[h];if(A.required){let x=null;x=h===\"version\"?a:A.type===\"array\"?[]:{},x!=null&&(u[h]=x)}}return u},n.ax=oi,n.ay=a_,n.az=$n,n.b=function(u,a){let h=new Blob([new Uint8Array(u)],{type:\"image/png\"});createImageBitmap(h).then(A=>{a(null,A)}).catch(A=>{a(new Error(`Could not load image because of ${A.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})},n.b0=zs,n.b1=function(u,a){var h=u[0],A=u[1],x=u[2],E=u[3],P=u[4],D=u[5],F=u[6],V=u[7],q=u[8],X=u[9],et=u[10],at=u[11],ct=u[12],mt=u[13],bt=u[14],Et=u[15],Vt=a[0],kt=a[1],jt=a[2],qt=a[3],ae=a[4],Be=a[5],Je=a[6],Oe=a[7],ke=a[8],Te=a[9],He=a[10],Pe=a[11],Ae=a[12],ur=a[13],ir=a[14],ri=a[15];return Math.abs(h-Vt)<=be*Math.max(1,Math.abs(h),Math.abs(Vt))&&Math.abs(A-kt)<=be*Math.max(1,Math.abs(A),Math.abs(kt))&&Math.abs(x-jt)<=be*Math.max(1,Math.abs(x),Math.abs(jt))&&Math.abs(E-qt)<=be*Math.max(1,Math.abs(E),Math.abs(qt))&&Math.abs(P-ae)<=be*Math.max(1,Math.abs(P),Math.abs(ae))&&Math.abs(D-Be)<=be*Math.max(1,Math.abs(D),Math.abs(Be))&&Math.abs(F-Je)<=be*Math.max(1,Math.abs(F),Math.abs(Je))&&Math.abs(V-Oe)<=be*Math.max(1,Math.abs(V),Math.abs(Oe))&&Math.abs(q-ke)<=be*Math.max(1,Math.abs(q),Math.abs(ke))&&Math.abs(X-Te)<=be*Math.max(1,Math.abs(X),Math.abs(Te))&&Math.abs(et-He)<=be*Math.max(1,Math.abs(et),Math.abs(He))&&Math.abs(at-Pe)<=be*Math.max(1,Math.abs(at),Math.abs(Pe))&&Math.abs(ct-Ae)<=be*Math.max(1,Math.abs(ct),Math.abs(Ae))&&Math.abs(mt-ur)<=be*Math.max(1,Math.abs(mt),Math.abs(ur))&&Math.abs(bt-ir)<=be*Math.max(1,Math.abs(bt),Math.abs(ir))&&Math.abs(Et-ri)<=be*Math.max(1,Math.abs(Et),Math.abs(ri))},n.b2=function(u,a){return u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[4]=a[4],u[5]=a[5],u[6]=a[6],u[7]=a[7],u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.b3=function(u,a,h){return u[0]=a[0]*h[0],u[1]=a[1]*h[1],u[2]=a[2]*h[2],u[3]=a[3]*h[3],u},n.b4=function(u,a){return u[0]*a[0]+u[1]*a[1]+u[2]*a[2]+u[3]*a[3]},n.b5=Pt,n.b6=yF,n.b7=mF,n.b8=function(u,a,h,A,x){var E,P=1/Math.tan(a/2);return u[0]=P/h,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=P,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=-1,u[12]=0,u[13]=0,u[15]=0,x!=null&&x!==1/0?(u[10]=(x+A)*(E=1/(A-x)),u[14]=2*x*A*E):(u[10]=-1,u[14]=-2*A),u},n.b9=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[4],P=a[5],D=a[6],F=a[7],V=a[8],q=a[9],X=a[10],et=a[11];return a!==u&&(u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[4]=E*x+V*A,u[5]=P*x+q*A,u[6]=D*x+X*A,u[7]=F*x+et*A,u[8]=V*x-E*A,u[9]=q*x-P*A,u[10]=X*x-D*A,u[11]=et*x-F*A,u},n.bA=f,n.bB=H6,n.bC=qp,n.bD=ua,n.ba=K,n.bb=tt,n.bc=function(u,a){return u[0]=a[0],u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=a[1],u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=a[2],u[11]=0,u[12]=0,u[13]=0,u[14]=0,u[15]=1,u},n.bd=class extends mh{},n.be=AC,n.bf=gF,n.bg=bK,n.bi=Zi,n.bj=function(u,a,h=!1){if(ls===s0||ls===tA||ls===eA)throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");Au=Ic.resolveURL(u),ls=s0,dh=a,o0(),h||c_()},n.bk=a0,n.bl=function(u,a){let h={};for(let x=0;xAe*Us)}let Oe=P?\"center\":h.get(\"text-justify\").evaluate(V,{},u.canonical),ke=h.get(\"symbol-placement\"),Te=ke===\"point\"?h.get(\"text-max-width\").evaluate(V,{},u.canonical)*Us:0,He=()=>{u.bucket.allowVerticalPlacement&&e0(jt)&&(ct.vertical=GS(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Te,E,Be,\"left\",ae,Et,n.ai.vertical,!0,ke,et,X))};if(!P&&Je){let Pe=new Set;if(Oe===\"auto\")for(let ur=0;ur{a(null,h),URL.revokeObjectURL(h.src),h.onload=null,window.requestAnimationFrame(()=>{h.src=Fo})},h.onerror=()=>a(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));let A=new Blob([new Uint8Array(u)],{type:\"image/png\"});h.src=u.byteLength?URL.createObjectURL(A):Fo},n.e=Ot,n.f=function(u,a){return No(Ot(u,{type:\"json\"}),a)},n.g=Ii,n.h=Ic,n.i=zi,n.j=to,n.k=ss,n.l=ol,n.m=No,n.n=function(u){return new sC(u).readFields(XX,[])},n.o=function(u,a,h){if(!u.length)return h(null,[]);let A=u.length,x=new Array(u.length),E=null;u.forEach((P,D)=>{a(P,(F,V)=>{F&&(E=F),x[D]=V,--A==0&&h(E,x)})})},n.p=J6,n.q=kx,n.r=Gn,n.s=fo,n.t=uh,n.u=Re,n.v=te,n.w=tr,n.x=hh,n.y=Fa,n.z=function([u,a,h]){return a+=90,a*=Math.PI/180,h*=Math.PI/180,{x:u*Math.cos(a)*Math.sin(h),y:u*Math.sin(a)*Math.sin(h),z:u*Math.cos(h)}}}),i([\"./shared\"],function(n){\"use strict\";class o{constructor(J){this.keyCache={},J&&this.replace(J)}replace(J){this._layerConfigs={},this._layers={},this.update(J,[])}update(J,nt){for(let vt of J){this._layerConfigs[vt.id]=vt;let xt=this._layers[vt.id]=n.aC(vt);xt._featureFilter=n.a6(xt.filter),this.keyCache[vt.id]&&delete this.keyCache[vt.id]}for(let vt of nt)delete this.keyCache[vt],delete this._layerConfigs[vt],delete this._layers[vt];this.familiesBySource={};let ht=n.bl(Object.values(this._layerConfigs),this.keyCache);for(let vt of ht){let xt=vt.map(ne=>this._layers[ne.id]),_t=xt[0];if(_t.visibility===\"none\")continue;let Dt=_t.source||\"\",Mt=this.familiesBySource[Dt];Mt||(Mt=this.familiesBySource[Dt]={});let Ut=_t.sourceLayer||\"_geojsonTileLayer\",re=Mt[Ut];re||(re=Mt[Ut]=[]),re.push(xt)}}}class c{constructor(J){let nt={},ht=[];for(let Dt in J){let Mt=J[Dt],Ut=nt[Dt]={};for(let re in Mt){let ne=Mt[+re];if(!ne||ne.bitmap.width===0||ne.bitmap.height===0)continue;let oe={x:0,y:0,w:ne.bitmap.width+2,h:ne.bitmap.height+2};ht.push(oe),Ut[re]={rect:oe,metrics:ne.metrics}}}let{w:vt,h:xt}=n.p(ht),_t=new n.q({width:vt||1,height:xt||1});for(let Dt in J){let Mt=J[Dt];for(let Ut in Mt){let re=Mt[+Ut];if(!re||re.bitmap.width===0||re.bitmap.height===0)continue;let ne=nt[Dt][Ut].rect;n.q.copy(re.bitmap,_t,{x:0,y:0},{x:ne.x+1,y:ne.y+1},re.bitmap)}}this.image=_t,this.positions=nt}}n.bm(\"GlyphAtlas\",c);class f{constructor(J){this.tileID=new n.O(J.tileID.overscaledZ,J.tileID.wrap,J.tileID.canonical.z,J.tileID.canonical.x,J.tileID.canonical.y),this.uid=J.uid,this.zoom=J.zoom,this.pixelRatio=J.pixelRatio,this.tileSize=J.tileSize,this.source=J.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=J.showCollisionBoxes,this.collectResourceTiming=!!J.collectResourceTiming,this.returnDependencies=!!J.returnDependencies,this.promoteId=J.promoteId,this.inFlightDependencies=[],this.dependencySentinel=-1}parse(J,nt,ht,vt,xt){this.status=\"parsing\",this.data=J,this.collisionBoxArray=new n.a3;let _t=new n.bn(Object.keys(J.layers).sort()),Dt=new n.bo(this.tileID,this.promoteId);Dt.bucketLayerIDs=[];let Mt={},Ut={featureIndex:Dt,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:ht},re=nt.familiesBySource[this.source];for(let ni in re){let Hr=J.layers[ni];if(!Hr)continue;Hr.version===1&&n.w(`Vector tile source \"${this.source}\" layer \"${ni}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);let Un=_t.encode(ni),Li=[];for(let gn=0;gn=Kn.maxzoom||Kn.visibility!==\"none\"&&(_(gn,this.zoom,ht),(Mt[Kn.id]=Kn.createBucket({index:Dt.bucketLayerIDs.length,layers:gn,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Un,sourceID:this.source})).populate(Li,Ut,this.tileID.canonical),Dt.bucketLayerIDs.push(gn.map(oa=>oa.id)))}}let ne,oe,ar,_r,Ye=n.aH(Ut.glyphDependencies,ni=>Object.keys(ni).map(Number));this.inFlightDependencies.forEach(ni=>ni?.cancel()),this.inFlightDependencies=[];let lr=++this.dependencySentinel;Object.keys(Ye).length?this.inFlightDependencies.push(vt.send(\"getGlyphs\",{uid:this.uid,stacks:Ye,source:this.source,tileID:this.tileID,type:\"glyphs\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,oe=Hr,Bi.call(this)))})):oe={};let xr=Object.keys(Ut.iconDependencies);xr.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:xr,source:this.source,tileID:this.tileID,type:\"icons\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,ar=Hr,Bi.call(this)))})):ar={};let vi=Object.keys(Ut.patternDependencies);function Bi(){if(ne)return xt(ne);if(oe&&ar&&_r){let ni=new c(oe),Hr=new n.bp(ar,_r);for(let Un in Mt){let Li=Mt[Un];Li instanceof n.a4?(_(Li.layers,this.zoom,ht),n.bq({bucket:Li,glyphMap:oe,glyphPositions:ni.positions,imageMap:ar,imagePositions:Hr.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Li.hasPattern&&(Li instanceof n.br||Li instanceof n.bs||Li instanceof n.bt)&&(_(Li.layers,this.zoom,ht),Li.addFeatures(Ut,this.tileID.canonical,Hr.patternPositions))}this.status=\"done\",xt(null,{buckets:Object.values(Mt).filter(Un=>!Un.isEmpty()),featureIndex:Dt,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ni.image,imageAtlas:Hr,glyphMap:this.returnDependencies?oe:null,iconMap:this.returnDependencies?ar:null,glyphPositions:this.returnDependencies?ni.positions:null})}}vi.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:vi,source:this.source,tileID:this.tileID,type:\"patterns\"},(ni,Hr)=>{lr===this.dependencySentinel&&(ne||(ne=ni,_r=Hr,Bi.call(this)))})):_r={},Bi.call(this)}}function _(gt,J,nt){let ht=new n.a8(J);for(let vt of gt)vt.recalculate(ht,nt)}function w(gt,J){let nt=n.l(gt.request,(ht,vt,xt,_t)=>{if(ht)J(ht);else if(vt)try{let Dt=new n.bw.VectorTile(new n.bv(vt));J(null,{vectorTile:Dt,rawData:vt,cacheControl:xt,expires:_t})}catch(Dt){let Mt=new Uint8Array(vt),Ut=`Unable to parse the tile at ${gt.request.url}, `;Ut+=Mt[0]===31&&Mt[1]===139?\"please make sure the data is not gzipped and that you have configured the relevant header in the server\":`got error: ${Dt.messge}`,J(new Error(Ut))}});return()=>{nt.cancel(),J()}}class C{constructor(J,nt,ht,vt){this.actor=J,this.layerIndex=nt,this.availableImages=ht,this.loadVectorData=vt||w,this.fetching={},this.loading={},this.loaded={}}loadTile(J,nt){let ht=J.uid;this.loading||(this.loading={});let vt=!!(J&&J.request&&J.request.collectResourceTiming)&&new n.bu(J.request),xt=this.loading[ht]=new f(J);xt.abort=this.loadVectorData(J,(_t,Dt)=>{if(delete this.loading[ht],_t||!Dt)return xt.status=\"done\",this.loaded[ht]=xt,nt(_t);let Mt=Dt.rawData,Ut={};Dt.expires&&(Ut.expires=Dt.expires),Dt.cacheControl&&(Ut.cacheControl=Dt.cacheControl);let re={};if(vt){let ne=vt.finish();ne&&(re.resourceTiming=JSON.parse(JSON.stringify(ne)))}xt.vectorTile=Dt.vectorTile,xt.parse(Dt.vectorTile,this.layerIndex,this.availableImages,this.actor,(ne,oe)=>{if(delete this.fetching[ht],ne||!oe)return nt(ne);nt(null,n.e({rawTileData:Mt.slice(0)},oe,Ut,re))}),this.loaded=this.loaded||{},this.loaded[ht]=xt,this.fetching[ht]={rawTileData:Mt,cacheControl:Ut,resourceTiming:re}})}reloadTile(J,nt){let ht=this.loaded,vt=J.uid;if(ht&&ht[vt]){let xt=ht[vt];xt.showCollisionBoxes=J.showCollisionBoxes,xt.status===\"parsing\"?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,(_t,Dt)=>{if(_t||!Dt)return nt(_t,Dt);let Mt;if(this.fetching[vt]){let{rawTileData:Ut,cacheControl:re,resourceTiming:ne}=this.fetching[vt];delete this.fetching[vt],Mt=n.e({rawTileData:Ut.slice(0)},Dt,re,ne)}else Mt=Dt;nt(null,Mt)}):xt.status===\"done\"&&(xt.vectorTile?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,nt):nt())}}abortTile(J,nt){let ht=this.loading,vt=J.uid;ht&&ht[vt]&&ht[vt].abort&&(ht[vt].abort(),delete ht[vt]),nt()}removeTile(J,nt){let ht=this.loaded,vt=J.uid;ht&&ht[vt]&&delete ht[vt],nt()}}class R{constructor(){this.loaded={}}loadTile(J,nt){return n._(this,void 0,void 0,function*(){let{uid:ht,encoding:vt,rawImageData:xt,redFactor:_t,greenFactor:Dt,blueFactor:Mt,baseShift:Ut}=J,re=xt.width+2,ne=xt.height+2,oe=n.a(xt)?new n.R({width:re,height:ne},yield n.bx(xt,-1,-1,re,ne)):xt,ar=new n.by(ht,oe,vt,_t,Dt,Mt,Ut);this.loaded=this.loaded||{},this.loaded[ht]=ar,nt(null,ar)})}removeTile(J){let nt=this.loaded,ht=J.uid;nt&&nt[ht]&&delete nt[ht]}}function N(gt,J){if(gt.length!==0){j(gt[0],J);for(var nt=1;nt=Math.abs(Dt)?nt-Mt+Dt:Dt-Mt+nt,nt=Mt}nt+ht>=0!=!!J&>.reverse()}var Y=n.bz(function gt(J,nt){var ht,vt=J&&J.type;if(vt===\"FeatureCollection\")for(ht=0;ht>31}function zi(gt,J){for(var nt=gt.loadGeometry(),ht=gt.type,vt=0,xt=0,_t=nt.length,Dt=0;Dt<_t;Dt++){var Mt=nt[Dt],Ut=1;ht===1&&(Ut=Mt.length),J.writeVarint(er(1,Ut));for(var re=ht===3?Mt.length-1:Mt.length,ne=0;negt},rh=Math.fround||(zo=new Float32Array(1),gt=>(zo[0]=+gt,zo[0]));var zo;let wi=3,Ds=5,sl=6;class Ic{constructor(J){this.options=Object.assign(Object.create(Fo),J),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(J){let{log:nt,minZoom:ht,maxZoom:vt}=this.options;nt&&console.time(\"total time\");let xt=`prepare ${J.length} points`;nt&&console.time(xt),this.points=J;let _t=[];for(let Mt=0;Mt=ht;Mt--){let Ut=+Date.now();Dt=this.trees[Mt]=this._createTree(this._cluster(Dt,Mt)),nt&&console.log(\"z%d: %d clusters in %dms\",Mt,Dt.numItems,+Date.now()-Ut)}return nt&&console.timeEnd(\"total time\"),this}getClusters(J,nt){let ht=((J[0]+180)%360+360)%360-180,vt=Math.max(-90,Math.min(90,J[1])),xt=J[2]===180?180:((J[2]+180)%360+360)%360-180,_t=Math.max(-90,Math.min(90,J[3]));if(J[2]-J[0]>=360)ht=-180,xt=180;else if(ht>xt){let ne=this.getClusters([ht,vt,180,_t],nt),oe=this.getClusters([-180,vt,xt,_t],nt);return ne.concat(oe)}let Dt=this.trees[this._limitZoom(nt)],Mt=Dt.range($n(ht),Ii(_t),$n(xt),Ii(vt)),Ut=Dt.data,re=[];for(let ne of Mt){let oe=this.stride*ne;re.push(Ut[oe+Ds]>1?Cc(Ut,oe,this.clusterProps):this.points[Ut[oe+wi]])}return re}getChildren(J){let nt=this._getOriginId(J),ht=this._getOriginZoom(J),vt=\"No cluster with the specified id.\",xt=this.trees[ht];if(!xt)throw new Error(vt);let _t=xt.data;if(nt*this.stride>=_t.length)throw new Error(vt);let Dt=this.options.radius/(this.options.extent*Math.pow(2,ht-1)),Mt=xt.within(_t[nt*this.stride],_t[nt*this.stride+1],Dt),Ut=[];for(let re of Mt){let ne=re*this.stride;_t[ne+4]===J&&Ut.push(_t[ne+Ds]>1?Cc(_t,ne,this.clusterProps):this.points[_t[ne+wi]])}if(Ut.length===0)throw new Error(vt);return Ut}getLeaves(J,nt,ht){let vt=[];return this._appendLeaves(vt,J,nt=nt||10,ht=ht||0,0),vt}getTile(J,nt,ht){let vt=this.trees[this._limitZoom(J)],xt=Math.pow(2,J),{extent:_t,radius:Dt}=this.options,Mt=Dt/_t,Ut=(ht-Mt)/xt,re=(ht+1+Mt)/xt,ne={features:[]};return this._addTileFeatures(vt.range((nt-Mt)/xt,Ut,(nt+1+Mt)/xt,re),vt.data,nt,ht,xt,ne),nt===0&&this._addTileFeatures(vt.range(1-Mt/xt,Ut,1,re),vt.data,xt,ht,xt,ne),nt===xt-1&&this._addTileFeatures(vt.range(0,Ut,Mt/xt,re),vt.data,-1,ht,xt,ne),ne.features.length?ne:null}getClusterExpansionZoom(J){let nt=this._getOriginZoom(J)-1;for(;nt<=this.options.maxZoom;){let ht=this.getChildren(J);if(nt++,ht.length!==1)break;J=ht[0].properties.cluster_id}return nt}_appendLeaves(J,nt,ht,vt,xt){let _t=this.getChildren(nt);for(let Dt of _t){let Mt=Dt.properties;if(Mt&&Mt.cluster?xt+Mt.point_count<=vt?xt+=Mt.point_count:xt=this._appendLeaves(J,Mt.cluster_id,ht,vt,xt):xt1,re,ne,oe;if(Ut)re=Zi(nt,Mt,this.clusterProps),ne=nt[Mt],oe=nt[Mt+1];else{let Ye=this.points[nt[Mt+wi]];re=Ye.properties;let[lr,xr]=Ye.geometry.coordinates;ne=$n(lr),oe=Ii(xr)}let ar={type:1,geometry:[[Math.round(this.options.extent*(ne*xt-ht)),Math.round(this.options.extent*(oe*xt-vt))]],tags:re},_r;_r=Ut||this.options.generateId?nt[Mt+wi]:this.points[nt[Mt+wi]].id,_r!==void 0&&(ar.id=_r),_t.features.push(ar)}}_limitZoom(J){return Math.max(this.options.minZoom,Math.min(Math.floor(+J),this.options.maxZoom+1))}_cluster(J,nt){let{radius:ht,extent:vt,reduce:xt,minPoints:_t}=this.options,Dt=ht/(vt*Math.pow(2,nt)),Mt=J.data,Ut=[],re=this.stride;for(let ne=0;nent&&(lr+=Mt[vi+Ds])}if(lr>Ye&&lr>=_t){let xr,vi=oe*Ye,Bi=ar*Ye,ni=-1,Hr=((ne/re|0)<<5)+(nt+1)+this.points.length;for(let Un of _r){let Li=Un*re;if(Mt[Li+2]<=nt)continue;Mt[Li+2]=nt;let gn=Mt[Li+Ds];vi+=Mt[Li]*gn,Bi+=Mt[Li+1]*gn,Mt[Li+4]=Hr,xt&&(xr||(xr=this._map(Mt,ne,!0),ni=this.clusterProps.length,this.clusterProps.push(xr)),xt(xr,this._map(Mt,Li)))}Mt[ne+4]=Hr,Ut.push(vi/lr,Bi/lr,1/0,Hr,-1,lr),xt&&Ut.push(ni)}else{for(let xr=0;xr1)for(let xr of _r){let vi=xr*re;if(!(Mt[vi+2]<=nt)){Mt[vi+2]=nt;for(let Bi=0;Bi>5}_getOriginZoom(J){return(J-this.points.length)%32}_map(J,nt,ht){if(J[nt+Ds]>1){let _t=this.clusterProps[J[nt+sl]];return ht?Object.assign({},_t):_t}let vt=this.points[J[nt+wi]].properties,xt=this.options.map(vt);return ht&&xt===vt?Object.assign({},xt):xt}}function Cc(gt,J,nt){return{type:\"Feature\",id:gt[J+wi],properties:Zi(gt,J,nt),geometry:{type:\"Point\",coordinates:[(ht=gt[J],360*(ht-.5)),Xn(gt[J+1])]}};var ht}function Zi(gt,J,nt){let ht=gt[J+Ds],vt=ht>=1e4?`${Math.round(ht/1e3)}k`:ht>=1e3?Math.round(ht/100)/10+\"k\":ht,xt=gt[J+sl],_t=xt===-1?{}:Object.assign({},nt[xt]);return Object.assign(_t,{cluster:!0,cluster_id:gt[J+wi],point_count:ht,point_count_abbreviated:vt})}function $n(gt){return gt/360+.5}function Ii(gt){let J=Math.sin(gt*Math.PI/180),nt=.5-.25*Math.log((1+J)/(1-J))/Math.PI;return nt<0?0:nt>1?1:nt}function Xn(gt){let J=(180-360*gt)*Math.PI/180;return 360*Math.atan(Math.exp(J))/Math.PI-90}function No(gt,J,nt,ht){for(var vt,xt=ht,_t=nt-J>>1,Dt=nt-J,Mt=gt[J],Ut=gt[J+1],re=gt[nt],ne=gt[nt+1],oe=J+3;oext)vt=oe,xt=ar;else if(ar===xt){var _r=Math.abs(oe-_t);_rht&&(vt-J>3&&No(gt,J,vt,ht),gt[vt+2]=xt,nt-vt>3&&No(gt,vt,nt,ht))}function ol(gt,J,nt,ht,vt,xt){var _t=vt-nt,Dt=xt-ht;if(_t!==0||Dt!==0){var Mt=((gt-nt)*_t+(J-ht)*Dt)/(_t*_t+Dt*Dt);Mt>1?(nt=vt,ht=xt):Mt>0&&(nt+=_t*Mt,ht+=Dt*Mt)}return(_t=gt-nt)*_t+(Dt=J-ht)*Dt}function fo(gt,J,nt,ht){var vt={id:gt===void 0?null:gt,type:J,geometry:nt,tags:ht,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(xt){var _t=xt.geometry,Dt=xt.type;if(Dt===\"Point\"||Dt===\"MultiPoint\"||Dt===\"LineString\")Ea(xt,_t);else if(Dt===\"Polygon\"||Dt===\"MultiLineString\")for(var Mt=0;Mt<_t.length;Mt++)Ea(xt,_t[Mt]);else if(Dt===\"MultiPolygon\")for(Mt=0;Mt<_t.length;Mt++)for(var Ut=0;Ut<_t[Mt].length;Ut++)Ea(xt,_t[Mt][Ut])}(vt),vt}function Ea(gt,J){for(var nt=0;nt0&&(_t+=ht?(vt*Ut-Mt*xt)/2:Math.sqrt(Math.pow(Mt-vt,2)+Math.pow(Ut-xt,2))),vt=Mt,xt=Ut}var re=J.length-3;J[2]=1,No(J,0,re,nt),J[re+2]=1,J.size=Math.abs(_t),J.start=0,J.end=J.size}function Ol(gt,J,nt,ht){for(var vt=0;vt1?1:nt}function fn(gt,J,nt,ht,vt,xt,_t,Dt){if(ht/=J,xt>=(nt/=J)&&_t=ht)return null;for(var Mt=[],Ut=0;Ut=nt&&_r=ht)){var Ye=[];if(oe===\"Point\"||oe===\"MultiPoint\")gi(ne,Ye,nt,ht,vt);else if(oe===\"LineString\")oi(ne,Ye,nt,ht,vt,!1,Dt.lineMetrics);else if(oe===\"MultiLineString\")uu(ne,Ye,nt,ht,vt,!1);else if(oe===\"Polygon\")uu(ne,Ye,nt,ht,vt,!0);else if(oe===\"MultiPolygon\")for(var lr=0;lr=nt&&_t<=ht&&(J.push(gt[xt]),J.push(gt[xt+1]),J.push(gt[xt+2]))}}function oi(gt,J,nt,ht,vt,xt,_t){for(var Dt,Mt,Ut=eo(gt),re=vt===0?po:ll,ne=gt.start,oe=0;oent&&(Mt=re(Ut,ar,_r,lr,xr,nt),_t&&(Ut.start=ne+Dt*Mt)):vi>ht?Bi=nt&&(Mt=re(Ut,ar,_r,lr,xr,nt),ni=!0),Bi>ht&&vi<=ht&&(Mt=re(Ut,ar,_r,lr,xr,ht),ni=!0),!xt&&ni&&(_t&&(Ut.end=ne+Dt*Mt),J.push(Ut),Ut=eo(gt)),_t&&(ne+=Dt)}var Hr=gt.length-3;ar=gt[Hr],_r=gt[Hr+1],Ye=gt[Hr+2],(vi=vt===0?ar:_r)>=nt&&vi<=ht&&al(Ut,ar,_r,Ye),Hr=Ut.length-3,xt&&Hr>=3&&(Ut[Hr]!==Ut[0]||Ut[Hr+1]!==Ut[1])&&al(Ut,Ut[0],Ut[1],Ut[2]),Ut.length&&J.push(Ut)}function eo(gt){var J=[];return J.size=gt.size,J.start=gt.start,J.end=gt.end,J}function uu(gt,J,nt,ht,vt,xt){for(var _t=0;_t_t.maxX&&(_t.maxX=re),ne>_t.maxY&&(_t.maxY=ne)}return _t}function Bl(gt,J,nt,ht){var vt=J.geometry,xt=J.type,_t=[];if(xt===\"Point\"||xt===\"MultiPoint\")for(var Dt=0;Dt0&&J.size<(vt?_t:ht))nt.numPoints+=J.length/3;else{for(var Dt=[],Mt=0;Mt_t)&&(nt.numSimplified++,Dt.push(J[Mt]),Dt.push(J[Mt+1])),nt.numPoints++;vt&&function(Ut,re){for(var ne=0,oe=0,ar=Ut.length,_r=ar-2;oe0===re)for(oe=0,ar=Ut.length;oe24)throw new Error(\"maxZoom should be in the 0-24 range\");if(J.promoteId&&J.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var ht=function(vt,xt){var _t=[];if(vt.type===\"FeatureCollection\")for(var Dt=0;Dt1&&console.time(\"creation\"),oe=this.tiles[ne]=dn(gt,J,nt,ht,Mt),this.tileCoords.push({z:J,x:nt,y:ht}),Ut)){Ut>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",J,nt,ht,oe.numFeatures,oe.numPoints,oe.numSimplified),console.timeEnd(\"creation\"));var ar=\"z\"+J;this.stats[ar]=(this.stats[ar]||0)+1,this.total++}if(oe.source=gt,vt){if(J===Mt.maxZoom||J===vt)continue;var _r=1<1&&console.time(\"clipping\");var Ye,lr,xr,vi,Bi,ni,Hr=.5*Mt.buffer/Mt.extent,Un=.5-Hr,Li=.5+Hr,gn=1+Hr;Ye=lr=xr=vi=null,Bi=fn(gt,re,nt-Hr,nt+Li,0,oe.minX,oe.maxX,Mt),ni=fn(gt,re,nt+Un,nt+gn,0,oe.minX,oe.maxX,Mt),gt=null,Bi&&(Ye=fn(Bi,re,ht-Hr,ht+Li,1,oe.minY,oe.maxY,Mt),lr=fn(Bi,re,ht+Un,ht+gn,1,oe.minY,oe.maxY,Mt),Bi=null),ni&&(xr=fn(ni,re,ht-Hr,ht+Li,1,oe.minY,oe.maxY,Mt),vi=fn(ni,re,ht+Un,ht+gn,1,oe.minY,oe.maxY,Mt),ni=null),Ut>1&&console.timeEnd(\"clipping\"),Dt.push(Ye||[],J+1,2*nt,2*ht),Dt.push(lr||[],J+1,2*nt,2*ht+1),Dt.push(xr||[],J+1,2*nt+1,2*ht),Dt.push(vi||[],J+1,2*nt+1,2*ht+1)}}},Se.prototype.getTile=function(gt,J,nt){var ht=this.options,vt=ht.extent,xt=ht.debug;if(gt<0||gt>24)return null;var _t=1<1&&console.log(\"drilling down to z%d-%d-%d\",gt,J,nt);for(var Mt,Ut=gt,re=J,ne=nt;!Mt&&Ut>0;)Ut--,re=Math.floor(re/2),ne=Math.floor(ne/2),Mt=this.tiles[Dr(Ut,re,ne)];return Mt&&Mt.source?(xt>1&&console.log(\"found parent tile z%d-%d-%d\",Ut,re,ne),xt>1&&console.time(\"drilling down\"),this.splitTile(Mt.source,Ut,re,ne,gt,J,nt),xt>1&&console.timeEnd(\"drilling down\"),this.tiles[Dt]?ve(this.tiles[Dt],vt):null):null};class Tr extends C{constructor(J,nt,ht,vt){super(J,nt,ht),this._dataUpdateable=new Map,this.loadGeoJSON=(xt,_t)=>{let{promoteId:Dt}=xt;if(xt.request)return n.f(xt.request,(Mt,Ut,re,ne)=>{this._dataUpdateable=Os(Ut,Dt)?Ca(Ut,Dt):void 0,_t(Mt,Ut,re,ne)});if(typeof xt.data==\"string\")try{let Mt=JSON.parse(xt.data);this._dataUpdateable=Os(Mt,Dt)?Ca(Mt,Dt):void 0,_t(null,Mt)}catch{_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`))}else xt.dataDiff?this._dataUpdateable?(function(Mt,Ut,re){var ne,oe,ar,_r;if(Ut.removeAll&&Mt.clear(),Ut.remove)for(let Ye of Ut.remove)Mt.delete(Ye);if(Ut.add)for(let Ye of Ut.add){let lr=mr(Ye,re);lr!=null&&Mt.set(lr,Ye)}if(Ut.update)for(let Ye of Ut.update){let lr=Mt.get(Ye.id);if(lr==null)continue;let xr=!Ye.removeAllProperties&&(((ne=Ye.removeProperties)===null||ne===void 0?void 0:ne.length)>0||((oe=Ye.addOrUpdateProperties)===null||oe===void 0?void 0:oe.length)>0);if((Ye.newGeometry||Ye.removeAllProperties||xr)&&(lr=Object.assign({},lr),Mt.set(Ye.id,lr),xr&&(lr.properties=Object.assign({},lr.properties))),Ye.newGeometry&&(lr.geometry=Ye.newGeometry),Ye.removeAllProperties)lr.properties={};else if(((ar=Ye.removeProperties)===null||ar===void 0?void 0:ar.length)>0)for(let vi of Ye.removeProperties)Object.prototype.hasOwnProperty.call(lr.properties,vi)&&delete lr.properties[vi];if(((_r=Ye.addOrUpdateProperties)===null||_r===void 0?void 0:_r.length)>0)for(let{key:vi,value:Bi}of Ye.addOrUpdateProperties)lr.properties[vi]=Bi}}(this._dataUpdateable,xt.dataDiff,Dt),_t(null,{type:\"FeatureCollection\",features:Array.from(this._dataUpdateable.values())})):_t(new Error(`Cannot update existing geojson data in ${xt.source}`)):_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`));return{cancel:()=>{}}},this.loadVectorData=this.loadGeoJSONTile,vt&&(this.loadGeoJSON=vt)}loadGeoJSONTile(J,nt){let ht=J.tileID.canonical;if(!this._geoJSONIndex)return nt(null,null);let vt=this._geoJSONIndex.getTile(ht.z,ht.x,ht.y);if(!vt)return nt(null,null);let xt=new class{constructor(Dt){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=n.N,this.length=Dt.length,this._features=Dt}feature(Dt){return new class{constructor(Mt){this._feature=Mt,this.extent=n.N,this.type=Mt.type,this.properties=Mt.tags,\"id\"in Mt&&!isNaN(Mt.id)&&(this.id=parseInt(Mt.id,10))}loadGeometry(){if(this._feature.type===1){let Mt=[];for(let Ut of this._feature.geometry)Mt.push([new n.P(Ut[0],Ut[1])]);return Mt}{let Mt=[];for(let Ut of this._feature.geometry){let re=[];for(let ne of Ut)re.push(new n.P(ne[0],ne[1]));Mt.push(re)}return Mt}}toGeoJSON(Mt,Ut,re){return rt.call(this,Mt,Ut,re)}}(this._features[Dt])}}(vt.features),_t=Pc(xt);_t.byteOffset===0&&_t.byteLength===_t.buffer.byteLength||(_t=new Uint8Array(_t)),nt(null,{vectorTile:xt,rawData:_t.buffer})}loadData(J,nt){var ht;(ht=this._pendingRequest)===null||ht===void 0||ht.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});let vt=!!(J&&J.request&&J.request.collectResourceTiming)&&new n.bu(J.request);this._pendingCallback=nt,this._pendingRequest=this.loadGeoJSON(J,(xt,_t)=>{if(delete this._pendingCallback,delete this._pendingRequest,xt||!_t)return nt(xt);if(typeof _t!=\"object\")return nt(new Error(`Input data given to '${J.source}' is not a valid GeoJSON object.`));{Y(_t,!0);try{if(J.filter){let Mt=n.bC(J.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(Mt.result===\"error\")throw new Error(Mt.value.map(re=>`${re.key}: ${re.message}`).join(\", \"));_t={type:\"FeatureCollection\",features:_t.features.filter(re=>Mt.value.evaluate({zoom:0},re))}}this._geoJSONIndex=J.cluster?new Ic(function({superclusterOptions:Mt,clusterProperties:Ut}){if(!Ut||!Mt)return Mt;let re={},ne={},oe={accumulated:null,zoom:0},ar={properties:null},_r=Object.keys(Ut);for(let Ye of _r){let[lr,xr]=Ut[Ye],vi=n.bC(xr),Bi=n.bC(typeof lr==\"string\"?[lr,[\"accumulated\"],[\"get\",Ye]]:lr);re[Ye]=vi.value,ne[Ye]=Bi.value}return Mt.map=Ye=>{ar.properties=Ye;let lr={};for(let xr of _r)lr[xr]=re[xr].evaluate(oe,ar);return lr},Mt.reduce=(Ye,lr)=>{ar.properties=lr;for(let xr of _r)oe.accumulated=Ye[xr],Ye[xr]=ne[xr].evaluate(oe,ar)},Mt}(J)).load(_t.features):function(Mt,Ut){return new Se(Mt,Ut)}(_t,J.geojsonVtOptions)}catch(Mt){return nt(Mt)}this.loaded={};let Dt={};if(vt){let Mt=vt.finish();Mt&&(Dt.resourceTiming={},Dt.resourceTiming[J.source]=JSON.parse(JSON.stringify(Mt)))}nt(null,Dt)}})}reloadTile(J,nt){let ht=this.loaded;return ht&&ht[J.uid]?super.reloadTile(J,nt):this.loadTile(J,nt)}removeSource(J,nt){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),nt()}getClusterExpansionZoom(J,nt){try{nt(null,this._geoJSONIndex.getClusterExpansionZoom(J.clusterId))}catch(ht){nt(ht)}}getClusterChildren(J,nt){try{nt(null,this._geoJSONIndex.getChildren(J.clusterId))}catch(ht){nt(ht)}}getClusterLeaves(J,nt){try{nt(null,this._geoJSONIndex.getLeaves(J.clusterId,J.limit,J.offset))}catch(ht){nt(ht)}}}class sa{constructor(J){this.self=J,this.actor=new n.C(J,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:C,geojson:Tr},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(nt,ht)=>{if(this.workerSourceTypes[nt])throw new Error(`Worker source with name \"${nt}\" already registered.`);this.workerSourceTypes[nt]=ht},this.self.registerRTLTextPlugin=nt=>{if(n.bD.isParsed())throw new Error(\"RTL text plugin already registered.\");n.bD.applyArabicShaping=nt.applyArabicShaping,n.bD.processBidirectionalText=nt.processBidirectionalText,n.bD.processStyledBidirectionalText=nt.processStyledBidirectionalText}}setReferrer(J,nt){this.referrer=nt}setImages(J,nt,ht){this.availableImages[J]=nt;for(let vt in this.workerSources[J]){let xt=this.workerSources[J][vt];for(let _t in xt)xt[_t].availableImages=nt}ht()}setLayers(J,nt,ht){this.getLayerIndex(J).replace(nt),ht()}updateLayers(J,nt,ht){this.getLayerIndex(J).update(nt.layers,nt.removedIds),ht()}loadTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).loadTile(nt,ht)}loadDEMTile(J,nt,ht){this.getDEMWorkerSource(J,nt.source).loadTile(nt,ht)}reloadTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).reloadTile(nt,ht)}abortTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).abortTile(nt,ht)}removeTile(J,nt,ht){this.getWorkerSource(J,nt.type,nt.source).removeTile(nt,ht)}removeDEMTile(J,nt){this.getDEMWorkerSource(J,nt.source).removeTile(nt)}removeSource(J,nt,ht){if(!this.workerSources[J]||!this.workerSources[J][nt.type]||!this.workerSources[J][nt.type][nt.source])return;let vt=this.workerSources[J][nt.type][nt.source];delete this.workerSources[J][nt.type][nt.source],vt.removeSource!==void 0?vt.removeSource(nt,ht):ht()}loadWorkerSource(J,nt,ht){try{this.self.importScripts(nt.url),ht()}catch(vt){ht(vt.toString())}}syncRTLPluginState(J,nt,ht){try{n.bD.setState(nt);let vt=n.bD.getPluginURL();if(n.bD.isLoaded()&&!n.bD.isParsed()&&vt!=null){this.self.importScripts(vt);let xt=n.bD.isParsed();ht(xt?void 0:new Error(`RTL Text Plugin failed to import scripts from ${vt}`),xt)}}catch(vt){ht(vt.toString())}}getAvailableImages(J){let nt=this.availableImages[J];return nt||(nt=[]),nt}getLayerIndex(J){let nt=this.layerIndexes[J];return nt||(nt=this.layerIndexes[J]=new o),nt}getWorkerSource(J,nt,ht){return this.workerSources[J]||(this.workerSources[J]={}),this.workerSources[J][nt]||(this.workerSources[J][nt]={}),this.workerSources[J][nt][ht]||(this.workerSources[J][nt][ht]=new this.workerSourceTypes[nt]({send:(vt,xt,_t)=>{this.actor.send(vt,xt,_t,J)}},this.getLayerIndex(J),this.getAvailableImages(J))),this.workerSources[J][nt][ht]}getDEMWorkerSource(J,nt){return this.demWorkerSources[J]||(this.demWorkerSources[J]={}),this.demWorkerSources[J][nt]||(this.demWorkerSources[J][nt]=new R),this.demWorkerSources[J][nt]}}return n.i()&&(self.worker=new sa(self)),sa}),i([\"./shared\"],function(n){\"use strict\";var o=\"3.6.2\";class c{static testProp(l){if(!c.docStyle)return l[0];for(let d=0;d{window.removeEventListener(\"click\",c.suppressClickInternal,!0)},0)}static mousePos(l,d){let v=l.getBoundingClientRect();return new n.P(d.clientX-v.left-l.clientLeft,d.clientY-v.top-l.clientTop)}static touchPos(l,d){let v=l.getBoundingClientRect(),b=[];for(let M=0;M{l=[],d=0,v=0,b={}},T.addThrottleControl=W=>{let Z=v++;return b[Z]=W,Z},T.removeThrottleControl=W=>{delete b[W],B()},T.getImage=(W,Z,Q=!0)=>{f.supported&&(W.headers||(W.headers={}),W.headers.accept=\"image/webp,*/*\");let st={requestParameters:W,supportImageRefresh:Q,callback:Z,cancelled:!1,completed:!1,cancel:()=>{st.completed||st.cancelled||(st.cancelled=!0,st.innerRequest&&(st.innerRequest.cancel(),d--),B())}};return l.push(st),B(),st};let M=W=>{let{requestParameters:Z,supportImageRefresh:Q,callback:st}=W;return n.e(Z,{type:\"image\"}),(Q!==!1||n.i()||n.g(Z.url)||Z.headers&&!Object.keys(Z.headers).reduce((At,pt)=>At&&pt===\"accept\",!0)?n.m:U)(Z,(At,pt,yt,dt)=>{O(W,st,At,pt,yt,dt)})},O=(W,Z,Q,st,At,pt)=>{Q?Z(Q):st instanceof HTMLImageElement||n.a(st)?Z(null,st):st&&((yt,dt)=>{typeof createImageBitmap==\"function\"?n.b(yt,dt):n.d(yt,dt)})(st,(yt,dt)=>{yt!=null?Z(yt):dt!=null&&Z(null,dt,{cacheControl:At,expires:pt})}),W.cancelled||(W.completed=!0,d--,B())},B=()=>{let W=(()=>{let Z=Object.keys(b),Q=!1;if(Z.length>0){for(let st of Z)if(Q=b[st](),Q)break}return Q})()?n.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:n.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let Z=d;Z0;Z++){let Q=l.shift();if(Q.cancelled){Z--;continue}let st=M(Q);d++,Q.innerRequest=st}},U=(W,Z)=>{let Q=new Image,st=W.url,At=!1,pt=W.credentials;return pt&&pt===\"include\"?Q.crossOrigin=\"use-credentials\":(pt&&pt===\"same-origin\"||!n.s(st))&&(Q.crossOrigin=\"anonymous\"),Q.fetchPriority=\"high\",Q.onload=()=>{Z(null,Q),Q.onerror=Q.onload=null},Q.onerror=()=>{At||Z(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\")),Q.onerror=Q.onload=null},Q.src=st,{cancel:()=>{At=!0,Q.src=\"\"}}}}(j||(j={})),j.resetRequestQueue(),function(T){T.Glyphs=\"Glyphs\",T.Image=\"Image\",T.Source=\"Source\",T.SpriteImage=\"SpriteImage\",T.SpriteJSON=\"SpriteJSON\",T.Style=\"Style\",T.Tile=\"Tile\",T.Unknown=\"Unknown\"}(Y||(Y={}));class rt{constructor(l){this._transformRequestFn=l}transformRequest(l,d){return this._transformRequestFn&&this._transformRequestFn(l,d)||{url:l}}normalizeSpriteURL(l,d,v){let b=function(M){let O=M.match($);if(!O)throw new Error(`Unable to parse URL \"${M}\"`);return{protocol:O[1],authority:O[2],path:O[3]||\"/\",params:O[4]?O[4].split(\"&\"):[]}}(l);return b.path+=`${d}${v}`,function(M){let O=M.params.length?`?${M.params.join(\"&\")}`:\"\";return`${M.protocol}://${M.authority}${M.path}${O}`}(b)}setTransformRequest(l){this._transformRequestFn=l}}let $=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function K(T){var l=new n.A(3);return l[0]=T[0],l[1]=T[1],l[2]=T[2],l}var tt,ut=function(T,l,d){return T[0]=l[0]-d[0],T[1]=l[1]-d[1],T[2]=l[2]-d[2],T};tt=new n.A(3),n.A!=Float32Array&&(tt[0]=0,tt[1]=0,tt[2]=0);var Pt=function(T){var l=T[0],d=T[1];return l*l+d*d};function Ot(T){let l=[];if(typeof T==\"string\")l.push({id:\"default\",url:T});else if(T&&T.length>0){let d=[];for(let{id:v,url:b}of T){let M=`${v}${b}`;d.indexOf(M)===-1&&(d.push(M),l.push({id:v,url:b}))}}return l}function Kt(T,l,d,v,b){if(v)return void T(v);if(b!==Object.values(l).length||b!==Object.values(d).length)return;let M={};for(let O in l){M[O]={};let B=n.h.getImageCanvasContext(d[O]),U=l[O];for(let W in U){let{width:Z,height:Q,x:st,y:At,sdf:pt,pixelRatio:yt,stretchX:dt,stretchY:Ft,content:Wt}=U[W];M[O][W]={data:null,pixelRatio:yt,sdf:pt,stretchX:dt,stretchY:Ft,content:Wt,spriteData:{width:Z,height:Q,x:st,y:At,context:B}}}}T(null,M)}(function(){var T=new n.A(2);n.A!=Float32Array&&(T[0]=0,T[1]=0)})();class Zt{constructor(l,d,v,b){this.context=l,this.format=v,this.texture=l.gl.createTexture(),this.update(d,b)}update(l,d,v){let{width:b,height:M}=l,O=!(this.size&&this.size[0]===b&&this.size[1]===M||v),{context:B}=this,{gl:U}=B;if(this.useMipmap=!!(d&&d.useMipmap),U.bindTexture(U.TEXTURE_2D,this.texture),B.pixelStoreUnpackFlipY.set(!1),B.pixelStoreUnpack.set(1),B.pixelStoreUnpackPremultiplyAlpha.set(this.format===U.RGBA&&(!d||d.premultiply!==!1)),O)this.size=[b,M],l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texImage2D(U.TEXTURE_2D,0,this.format,this.format,U.UNSIGNED_BYTE,l):U.texImage2D(U.TEXTURE_2D,0,this.format,b,M,0,this.format,U.UNSIGNED_BYTE,l.data);else{let{x:W,y:Z}=v||{x:0,y:0};l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texSubImage2D(U.TEXTURE_2D,0,W,Z,U.RGBA,U.UNSIGNED_BYTE,l):U.texSubImage2D(U.TEXTURE_2D,0,W,Z,b,M,U.RGBA,U.UNSIGNED_BYTE,l.data)}this.useMipmap&&this.isSizePowerOfTwo()&&U.generateMipmap(U.TEXTURE_2D)}bind(l,d,v){let{context:b}=this,{gl:M}=b;M.bindTexture(M.TEXTURE_2D,this.texture),v!==M.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(v=M.LINEAR),l!==this.filter&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MAG_FILTER,l),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MIN_FILTER,v||l),this.filter=l),d!==this.wrap&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_S,d),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_T,d),this.wrap=d)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:l}=this.context;l.deleteTexture(this.texture),this.texture=null}}function le(T){let{userImage:l}=T;return!!(l&&l.render&&l.render())&&(T.data.replace(new Uint8Array(l.data.buffer)),!0)}class ue extends n.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new n.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(l){if(this.loaded!==l&&(this.loaded=l,l)){for(let{ids:d,callback:v}of this.requestors)this._notify(d,v);this.requestors=[]}}getImage(l){let d=this.images[l];if(d&&!d.data&&d.spriteData){let v=d.spriteData;d.data=new n.R({width:v.width,height:v.height},v.context.getImageData(v.x,v.y,v.width,v.height).data),d.spriteData=null}return d}addImage(l,d){if(this.images[l])throw new Error(`Image id ${l} already exist, use updateImage instead`);this._validate(l,d)&&(this.images[l]=d)}_validate(l,d){let v=!0,b=d.data||d.spriteData;return this._validateStretch(d.stretchX,b&&b.width)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchX\" value`))),v=!1),this._validateStretch(d.stretchY,b&&b.height)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchY\" value`))),v=!1),this._validateContent(d.content,d)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"content\" value`))),v=!1),v}_validateStretch(l,d){if(!l)return!0;let v=0;for(let b of l){if(b[0]-1);U++,M[U]=B,O[U]=W,O[U+1]=Ge}for(let B=0,U=0;B{let B=this.entries[b];B||(B=this.entries[b]={glyphs:{},requests:{},ranges:{}});let U=B.glyphs[M];if(U!==void 0)return void O(null,{stack:b,id:M,glyph:U});if(U=this._tinySDF(B,b,M),U)return B.glyphs[M]=U,void O(null,{stack:b,id:M,glyph:U});let W=Math.floor(M/256);if(256*W>65535)return void O(new Error(\"glyphs > 65535 not supported\"));if(B.ranges[W])return void O(null,{stack:b,id:M,glyph:U});if(!this.url)return void O(new Error(\"glyphsUrl is not set\"));let Z=B.requests[W];Z||(Z=B.requests[W]=[],Lr.loadGlyphRange(b,W,this.url,this.requestManager,(Q,st)=>{if(st){for(let At in st)this._doesCharSupportLocalGlyph(+At)||(B.glyphs[+At]=st[+At]);B.ranges[W]=!0}for(let At of Z)At(Q,st);delete B.requests[W]})),Z.push((Q,st)=>{Q?O(Q):st&&O(null,{stack:b,id:M,glyph:st[M]||null})})},(b,M)=>{if(b)d(b);else if(M){let O={};for(let{stack:B,id:U,glyph:W}of M)(O[B]||(O[B]={}))[U]=W&&{id:W.id,bitmap:W.bitmap.clone(),metrics:W.metrics};d(null,O)}})}_doesCharSupportLocalGlyph(l){return!!this.localIdeographFontFamily&&(n.u[\"CJK Unified Ideographs\"](l)||n.u[\"Hangul Syllables\"](l)||n.u.Hiragana(l)||n.u.Katakana(l))}_tinySDF(l,d,v){let b=this.localIdeographFontFamily;if(!b||!this._doesCharSupportLocalGlyph(v))return;let M=l.tinySDF;if(!M){let B=\"400\";/bold/i.test(d)?B=\"900\":/medium/i.test(d)?B=\"500\":/light/i.test(d)&&(B=\"200\"),M=l.tinySDF=new Lr.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:b,fontWeight:B})}let O=M.draw(String.fromCharCode(v));return{id:v,bitmap:new n.q({width:O.width||60,height:O.height||60},O.data),metrics:{width:O.glyphWidth/2||24,height:O.glyphHeight/2||24,left:O.glyphLeft/2+.5||0,top:O.glyphTop/2-27.5||-8,advance:O.glyphAdvance/2||24,isDoubleResolution:!0}}}}Lr.loadGlyphRange=function(T,l,d,v,b){let M=256*l,O=M+255,B=v.transformRequest(d.replace(\"{fontstack}\",T).replace(\"{range}\",`${M}-${O}`),Y.Glyphs);n.l(B,(U,W)=>{if(U)b(U);else if(W){let Z={};for(let Q of n.n(W))Z[Q.id]=Q;b(null,Z)}})},Lr.TinySDF=class{constructor({fontSize:T=24,buffer:l=3,radius:d=8,cutoff:v=.25,fontFamily:b=\"sans-serif\",fontWeight:M=\"normal\",fontStyle:O=\"normal\"}={}){this.buffer=l,this.cutoff=v,this.radius=d;let B=this.size=T+4*l,U=this._createCanvas(B),W=this.ctx=U.getContext(\"2d\",{willReadFrequently:!0});W.font=`${O} ${M} ${T}px ${b}`,W.textBaseline=\"alphabetic\",W.textAlign=\"left\",W.fillStyle=\"black\",this.gridOuter=new Float64Array(B*B),this.gridInner=new Float64Array(B*B),this.f=new Float64Array(B),this.z=new Float64Array(B+1),this.v=new Uint16Array(B)}_createCanvas(T){let l=document.createElement(\"canvas\");return l.width=l.height=T,l}draw(T){let{width:l,actualBoundingBoxAscent:d,actualBoundingBoxDescent:v,actualBoundingBoxLeft:b,actualBoundingBoxRight:M}=this.ctx.measureText(T),O=Math.ceil(d),B=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(M-b))),U=Math.min(this.size-this.buffer,O+Math.ceil(v)),W=B+2*this.buffer,Z=U+2*this.buffer,Q=Math.max(W*Z,0),st=new Uint8ClampedArray(Q),At={data:st,width:W,height:Z,glyphWidth:B,glyphHeight:U,glyphTop:O,glyphLeft:0,glyphAdvance:l};if(B===0||U===0)return At;let{ctx:pt,buffer:yt,gridInner:dt,gridOuter:Ft}=this;pt.clearRect(yt,yt,B,U),pt.fillText(T,yt,yt+O);let Wt=pt.getImageData(yt,yt,B,U);Ft.fill(Ge,0,Q),dt.fill(0,0,Q);for(let St=0;St0?se*se:0,dt[Qt]=se<0?se*se:0}}tr(Ft,0,0,W,Z,W,this.f,this.v,this.z),tr(dt,yt,yt,B,U,W,this.f,this.v,this.z);for(let St=0;St1&&(U=l[++B]);let Z=Math.abs(W-U.left),Q=Math.abs(W-U.right),st=Math.min(Z,Q),At,pt=M/v*(b+1);if(U.isDash){let yt=b-Math.abs(pt);At=Math.sqrt(st*st+yt*yt)}else At=b-Math.sqrt(st*st+pt*pt);this.data[O+W]=Math.max(0,Math.min(255,At+128))}}}addRegularDash(l){for(let B=l.length-1;B>=0;--B){let U=l[B],W=l[B+1];U.zeroLength?l.splice(B,1):W&&W.isDash===U.isDash&&(W.left=U.left,l.splice(B,1))}let d=l[0],v=l[l.length-1];d.isDash===v.isDash&&(d.left=v.left-this.width,v.right=d.right+this.width);let b=this.width*this.nextRow,M=0,O=l[M];for(let B=0;B1&&(O=l[++M]);let U=Math.abs(B-O.left),W=Math.abs(B-O.right),Z=Math.min(U,W);this.data[b+B]=Math.max(0,Math.min(255,(O.isDash?Z:-Z)+128))}}addDash(l,d){let v=d?7:0,b=2*v+1;if(this.nextRow+b>this.height)return n.w(\"LineAtlas out of space\"),null;let M=0;for(let B=0;B{b.send(l,d,M)},v=v||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(l=!0){this.actors.forEach(d=>{d.remove()}),this.actors=[],l&&this.workerPool.release(this.id)}}function zo(T,l,d){let v=function(b,M){if(b)return d(b);if(M){let O=n.F(n.e(M,T),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);M.vector_layers&&(O.vectorLayers=M.vector_layers,O.vectorLayerIds=O.vectorLayers.map(B=>B.id)),d(null,O)}};return T.url?n.f(l.transformRequest(T.url,Y.Source),v):n.h.frame(()=>v(null,T))}class wi{constructor(l,d){l&&(d?this.setSouthWest(l).setNorthEast(d):Array.isArray(l)&&(l.length===4?this.setSouthWest([l[0],l[1]]).setNorthEast([l[2],l[3]]):this.setSouthWest(l[0]).setNorthEast(l[1])))}setNorthEast(l){return this._ne=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}setSouthWest(l){return this._sw=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}extend(l){let d=this._sw,v=this._ne,b,M;if(l instanceof n.L)b=l,M=l;else{if(!(l instanceof wi))return Array.isArray(l)?l.length===4||l.every(Array.isArray)?this.extend(wi.convert(l)):this.extend(n.L.convert(l)):l&&(\"lng\"in l||\"lon\"in l)&&\"lat\"in l?this.extend(n.L.convert(l)):this;if(b=l._sw,M=l._ne,!b||!M)return this}return d||v?(d.lng=Math.min(b.lng,d.lng),d.lat=Math.min(b.lat,d.lat),v.lng=Math.max(M.lng,v.lng),v.lat=Math.max(M.lat,v.lat)):(this._sw=new n.L(b.lng,b.lat),this._ne=new n.L(M.lng,M.lat)),this}getCenter(){return new n.L((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new n.L(this.getWest(),this.getNorth())}getSouthEast(){return new n.L(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(l){let{lng:d,lat:v}=n.L.convert(l),b=this._sw.lng<=d&&d<=this._ne.lng;return this._sw.lng>this._ne.lng&&(b=this._sw.lng>=d&&d>=this._ne.lng),this._sw.lat<=v&&v<=this._ne.lat&&b}static convert(l){return l instanceof wi?l:l&&new wi(l)}static fromLngLat(l,d=0){let v=360*d/40075017,b=v/Math.cos(Math.PI/180*l.lat);return new wi(new n.L(l.lng-b,l.lat-v),new n.L(l.lng+b,l.lat+v))}}class Ds{constructor(l,d,v){this.bounds=wi.convert(this.validateBounds(l)),this.minzoom=d||0,this.maxzoom=v||24}validateBounds(l){return Array.isArray(l)&&l.length===4?[Math.max(-180,l[0]),Math.max(-90,l[1]),Math.min(180,l[2]),Math.min(90,l[3])]:[-180,-90,180,90]}contains(l){let d=Math.pow(2,l.z),v=Math.floor(n.G(this.bounds.getWest())*d),b=Math.floor(n.H(this.bounds.getNorth())*d),M=Math.ceil(n.G(this.bounds.getEast())*d),O=Math.ceil(n.H(this.bounds.getSouth())*d);return l.x>=v&&l.x=b&&l.y{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=zo(this._options,this.map._requestManager,(M,O)=>{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),M?this.fire(new n.j(M)):O&&(n.e(this,O),O.bounds&&(this.tileBounds=new Ds(O.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})},this.serialize=()=>n.e({},this._options),this.id=l,this.dispatcher=v,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=n.e({type:\"vector\"},d),this._collectResourceTiming=d.collectResourceTiming,this.tileSize!==512)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(b)}loaded(){return this._loaded}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}onAdd(l){this.map=l,this.load()}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}setUrl(l){return this.setSourceProperty(()=>{this.url=l,this._options.url=l}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b={request:this.map._requestManager.transformRequest(v,Y.Tile),uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,tileSize:this.tileSize*l.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function M(O,B){return delete l.request,l.aborted?d(null):O&&O.status!==404?d(O):(B&&B.resourceTiming&&(l.resourceTiming=B.resourceTiming),this.map._refreshExpiredTiles&&B&&l.setExpiryData(B),l.loadVectorData(B,this.map.painter),d(null),void(l.reloadCallback&&(this.loadTile(l,l.reloadCallback),l.reloadCallback=null)))}b.request.collectResourceTiming=this._collectResourceTiming,l.actor&&l.state!==\"expired\"?l.state===\"loading\"?l.reloadCallback=d:l.request=l.actor.send(\"reloadTile\",b,M.bind(this)):(l.actor=this.dispatcher.getActor(),l.request=l.actor.send(\"loadTile\",b,M.bind(this)))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.actor&&l.actor.send(\"abortTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}unloadTile(l){l.unloadVectorData(),l.actor&&l.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}hasTransition(){return!1}}class Ic extends n.E{constructor(l,d,v,b){super(),this.id=l,this.dispatcher=v,this.setEventedParent(b),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=n.e({type:\"raster\"},d),n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\"]))}load(){this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=zo(this._options,this.map._requestManager,(l,d)=>{this._tileJSONRequest=null,this._loaded=!0,l?this.fire(new n.j(l)):d&&(n.e(this,d),d.bounds&&(this.tileBounds=new Ds(d.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})}loaded(){return this._loaded}onAdd(l){this.map=l,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}serialize(){return n.e({},this._options)}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);l.request=j.getImage(this.map._requestManager.transformRequest(v,Y.Tile),(b,M,O)=>{if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(b)l.state=\"errored\",d(b);else if(M){this.map._refreshExpiredTiles&&O&&l.setExpiryData(O);let B=this.map.painter.context,U=B.gl;l.texture=this.map.painter.getTileTexture(M.width),l.texture?l.texture.update(M,{useMipmap:!0}):(l.texture=new Zt(B,M,U.RGBA,{useMipmap:!0}),l.texture.bind(U.LINEAR,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST),B.extTextureFilterAnisotropic&&U.texParameterf(U.TEXTURE_2D,B.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,B.extTextureFilterAnisotropicMax)),l.state=\"loaded\",d(null)}},this.map._refreshExpiredTiles)}abortTile(l,d){l.request&&(l.request.cancel(),delete l.request),d()}unloadTile(l,d){l.texture&&this.map.painter.saveTileTexture(l.texture),d()}hasTransition(){return!1}}class Cc extends Ic{constructor(l,d,v,b){super(l,d,v,b),this.type=\"raster-dem\",this.maxzoom=22,this._options=n.e({type:\"raster-dem\"},d),this.encoding=d.encoding||\"mapbox\",this.redFactor=d.redFactor,this.greenFactor=d.greenFactor,this.blueFactor=d.blueFactor,this.baseShift=d.baseShift}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b=this.map._requestManager.transformRequest(v,Y.Tile);function M(O,B){O&&(l.state=\"errored\",d(O)),B&&(l.dem=B,l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0,l.state=\"loaded\",d(null))}l.neighboringTiles=this._getNeighboringTiles(l.tileID),l.request=j.getImage(b,(O,B,U)=>n._(this,void 0,void 0,function*(){if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(O)l.state=\"errored\",d(O);else if(B){this.map._refreshExpiredTiles&&l.setExpiryData(U);let W=n.a(B)&&n.J()?B:yield function(Q){return n._(this,void 0,void 0,function*(){if(typeof VideoFrame<\"u\"&&n.K()){let st=Q.width+2,At=Q.height+2;try{return new n.R({width:st,height:At},yield n.M(Q,-1,-1,st,At))}catch{}}return n.h.getImageData(Q,1)})}(B),Z={uid:l.uid,coord:l.tileID,source:this.id,rawImageData:W,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};l.actor&&l.state!==\"expired\"||(l.actor=this.dispatcher.getActor(),l.actor.send(\"loadDEMTile\",Z,M))}}),this.map._refreshExpiredTiles)}_getNeighboringTiles(l){let d=l.canonical,v=Math.pow(2,d.z),b=(d.x-1+v)%v,M=d.x===0?l.wrap-1:l.wrap,O=(d.x+1+v)%v,B=d.x+1===v?l.wrap+1:l.wrap,U={};return U[new n.O(l.overscaledZ,M,d.z,b,d.y).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y).key]={backfilled:!1},d.y>0&&(U[new n.O(l.overscaledZ,M,d.z,b,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,l.wrap,d.z,d.x,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y-1).key]={backfilled:!1}),d.y+1{this._updateWorkerData()},this.serialize=()=>n.e({},this._options,{type:this.type,data:this._data}),this.id=l,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=v.getActor(),this.setEventedParent(b),this._data=d.data,this._options=n.e({},d),this._collectResourceTiming=d.collectResourceTiming,d.maxzoom!==void 0&&(this.maxzoom=d.maxzoom),d.type&&(this.type=d.type),d.attribution&&(this.attribution=d.attribution),this.promoteId=d.promoteId;let M=n.N/this.tileSize;this.workerOptions=n.e({source:this.id,cluster:d.cluster||!1,geojsonVtOptions:{buffer:(d.buffer!==void 0?d.buffer:128)*M,tolerance:(d.tolerance!==void 0?d.tolerance:.375)*M,extent:n.N,maxZoom:this.maxzoom,lineMetrics:d.lineMetrics||!1,generateId:d.generateId||!1},superclusterOptions:{maxZoom:d.clusterMaxZoom!==void 0?d.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,d.clusterMinPoints||2),extent:n.N,radius:(d.clusterRadius||50)*M,log:!1,generateId:d.generateId||!1},clusterProperties:d.clusterProperties,filter:d.filter},d.workerOptions),typeof this.promoteId==\"string\"&&(this.workerOptions.promoteId=this.promoteId)}onAdd(l){this.map=l,this.load()}setData(l){return this._data=l,this._updateWorkerData(),this}updateData(l){return this._updateWorkerData(l),this}setClusterOptions(l){return this.workerOptions.cluster=l.cluster,l&&(l.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=l.clusterRadius),l.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=l.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(l,d){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:l,source:this.id},d),this}getClusterChildren(l,d){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:l,source:this.id},d),this}getClusterLeaves(l,d,v,b){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,clusterId:l,limit:d,offset:v},b),this}_updateWorkerData(l){let d=n.e({},this.workerOptions);l?d.dataDiff=l:typeof this._data==\"string\"?(d.request=this.map._requestManager.transformRequest(n.h.resolveURL(this._data),Y.Source),d.request.collectResourceTiming=this._collectResourceTiming):d.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.actor.send(`${this.type}.loadData`,d,(v,b)=>{if(this._pendingLoads--,this._removed||b&&b.abandoned)return void this.fire(new n.k(\"dataabort\",{dataType:\"source\"}));let M=null;if(b&&b.resourceTiming&&b.resourceTiming[this.id]&&(M=b.resourceTiming[this.id].slice(0)),v)return void this.fire(new n.j(v));let O={dataType:\"source\"};this._collectResourceTiming&&M&&M.length>0&&n.e(O,{resourceTiming:M}),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"metadata\"}))),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"content\"})))})}loaded(){return this._pendingLoads===0}loadTile(l,d){let v=l.actor?\"reloadTile\":\"loadTile\";l.actor=this.actor;let b={type:this.type,uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};l.request=this.actor.send(v,b,(M,O)=>(delete l.request,l.unloadVectorData(),l.aborted?d(null):M?d(M):(l.loadVectorData(O,this.map.painter,v===\"reloadTile\"),d(null))))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.aborted=!0}unloadTile(l){l.unloadVectorData(),this.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id})}onRemove(){this._removed=!0,this.actor.send(\"removeSource\",{type:this.type,source:this.id})}hasTransition(){return!1}}var $n=n.Q([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class Ii extends n.E{constructor(l,d,v,b){super(),this.load=(M,O)=>{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,this._request=j.getImage(this.map._requestManager.transformRequest(this.url,Y.Image),(B,U)=>{this._request=null,this._loaded=!0,B?this.fire(new n.j(B)):U&&(this.image=U,M&&(this.coordinates=M),O&&O(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||!this.image)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture||(this.texture=new Zt(M,this.image,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"image\",url:this.options.url,coordinates:this.coordinates}),this.id=l,this.dispatcher=v,this.coordinates=d.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(b),this.options=d}loaded(){return this._loaded}updateImage(l){return l.url?(this._request&&(this._request.cancel(),this._request=null),this.options.url=l.url,this.load(l.coordinates,()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})))}onAdd(l){this.map=l,this.load()}onRemove(){this._request&&(this._request.cancel(),this._request=null)}setCoordinates(l){this.coordinates=l;let d=l.map(n.U.fromLngLat);this.tileID=function(b){let M=1/0,O=1/0,B=-1/0,U=-1/0;for(let st of b)M=Math.min(M,st.x),O=Math.min(O,st.y),B=Math.max(B,st.x),U=Math.max(U,st.y);let W=Math.max(B-M,U-O),Z=Math.max(0,Math.floor(-Math.log(W)/Math.LN2)),Q=Math.pow(2,Z);return new n.W(Z,Math.floor((M+B)/2*Q),Math.floor((O+U)/2*Q))}(d),this.minzoom=this.maxzoom=this.tileID.z;let v=d.map(b=>this.tileID.getTilePoint(b)._round());return this._boundsArray=new n.V,this._boundsArray.emplaceBack(v[0].x,v[0].y,0,0),this._boundsArray.emplaceBack(v[1].x,v[1].y,n.N,0),this._boundsArray.emplaceBack(v[3].x,v[3].y,0,n.N),this._boundsArray.emplaceBack(v[2].x,v[2].y,n.N,n.N),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}loadTile(l,d){this.tileID&&this.tileID.equals(l.tileID.canonical)?(this.tiles[String(l.tileID.wrap)]=l,l.buckets={},d(null)):(l.state=\"errored\",d(null))}hasTransition(){return!1}}class Xn extends Ii{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!1;let M=this.options;this.urls=[];for(let O of M.urls)this.urls.push(this.map._requestManager.transformRequest(O,Y.Source).url);n.X(this.urls,(O,B)=>{this._loaded=!0,O?this.fire(new n.j(O)):B&&(this.video=B,this.video.loop=!0,this.video.addEventListener(\"playing\",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE),O.texSubImage2D(O.TEXTURE_2D,0,0,0,O.RGBA,O.UNSIGNED_BYTE,this.video)):(this.texture=new Zt(M,this.video,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"video\",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type=\"video\",this.options=d}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(l){if(this.video){let d=this.video.seekable;ld.end(0)?this.fire(new n.j(new n.Y(`sources.${this.id}`,null,`Playback for this video can be set only between the ${d.start(0)} and ${d.end(0)}-second mark.`))):this.video.currentTime=l}}getVideo(){return this.video}onAdd(l){this.map||(this.map=l,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}hasTransition(){return this.video&&!this.video.paused}}class No extends Ii{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new n.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},this.prepare=()=>{let M=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,M=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,M=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let O=this.map.painter.context,B=O.gl;this.boundsBuffer||(this.boundsBuffer=O.createVertexBuffer(this._boundsArray,$n.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?(M||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new Zt(O,this.canvas,B.RGBA,{premultiply:!0});let U=!1;for(let W in this.tiles){let Z=this.tiles[W];Z.state!==\"loaded\"&&(Z.state=\"loaded\",Z.texture=this.texture,U=!0)}U&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"canvas\",coordinates:this.coordinates}),d.coordinates?Array.isArray(d.coordinates)&&d.coordinates.length===4&&!d.coordinates.some(M=>!Array.isArray(M)||M.length!==2||M.some(O=>typeof O!=\"number\"))||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"coordinates\"'))),d.animate&&typeof d.animate!=\"boolean\"&&this.fire(new n.j(new n.Y(`sources.${l}`,null,'optional \"animate\" property must be a boolean value'))),d.canvas?typeof d.canvas==\"string\"||d.canvas instanceof HTMLCanvasElement||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"canvas\"'))),this.options=d,this.animate=d.animate===void 0||d.animate}getCanvas(){return this.canvas}onAdd(l){this.map=l,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let l of[this.canvas.width,this.canvas.height])if(isNaN(l)||l<=0)return!0;return!1}}let ol={},fo=T=>{switch(T){case\"geojson\":return Zi;case\"image\":return Ii;case\"raster\":return Ic;case\"raster-dem\":return Cc;case\"vector\":return sl;case\"video\":return Xn;case\"canvas\":return No}return ol[T]};function Ea(T,l){let d=n.Z();return n.$(d,d,[1,1,0]),n.a0(d,d,[.5*T.width,.5*T.height,1]),n.a1(d,d,T.calculatePosMatrix(l.toUnwrapped()))}function na(T,l,d,v,b,M){let O=function(Q,st,At){if(Q)for(let pt of Q){let yt=st[pt];if(yt&&yt.source===At&&yt.type===\"fill-extrusion\")return!0}else for(let pt in st){let yt=st[pt];if(yt.source===At&&yt.type===\"fill-extrusion\")return!0}return!1}(b&&b.layers,l,T.id),B=M.maxPitchScaleFactor(),U=T.tilesIn(v,B,O);U.sort(ss);let W=[];for(let Q of U)W.push({wrappedTileID:Q.tileID.wrapped().key,queryResults:Q.tile.queryRenderedFeatures(l,d,T._state,Q.queryGeometry,Q.cameraQueryGeometry,Q.scale,b,M,B,Ea(T.transform,Q.tileID))});let Z=function(Q){let st={},At={};for(let pt of Q){let yt=pt.queryResults,dt=pt.wrappedTileID,Ft=At[dt]=At[dt]||{};for(let Wt in yt){let St=yt[Wt],Bt=Ft[Wt]=Ft[Wt]||{},Yt=st[Wt]=st[Wt]||[];for(let Qt of St)Bt[Qt.featureIndex]||(Bt[Qt.featureIndex]=!0,Yt.push(Qt))}}return st}(W);for(let Q in Z)Z[Q].forEach(st=>{let At=st.feature,pt=T.getFeatureState(At.layer[\"source-layer\"],At.id);At.source=At.layer.source,At.layer[\"source-layer\"]&&(At.sourceLayer=At.layer[\"source-layer\"]),At.state=pt});return Z}function ss(T,l){let d=T.tileID,v=l.tileID;return d.overscaledZ-v.overscaledZ||d.canonical.y-v.canonical.y||d.wrap-v.wrap||d.canonical.x-v.canonical.x}class to{constructor(l,d){this.timeAdded=0,this.fadeEndTime=0,this.tileID=l,this.uid=n.a2(),this.uses=0,this.tileSize=d,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state=\"loading\"}registerFadeDuration(l){let d=l+this.timeAdded;dM.getLayer(W)).filter(Boolean);if(U.length!==0){B.layers=U,B.stateDependentLayerIds&&(B.stateDependentLayers=B.stateDependentLayerIds.map(W=>U.filter(Z=>Z.id===W)[0]));for(let W of U)O[W.id]=B}}return O}(l.buckets,d.style),this.hasSymbolBuckets=!1;for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4){if(this.hasSymbolBuckets=!0,!v)break;M.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4&&M.hasRTLText){this.hasRTLText=!0,n.a5();break}}this.queryPadding=0;for(let b in this.buckets){let M=this.buckets[b];this.queryPadding=Math.max(this.queryPadding,d.style.getLayer(b).queryRadius(M))}l.imageAtlas&&(this.imageAtlas=l.imageAtlas),l.glyphAtlasImage&&(this.glyphAtlasImage=l.glyphAtlasImage)}else this.collisionBoxArray=new n.a3}unloadVectorData(){for(let l in this.buckets)this.buckets[l].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\"}getBucket(l){return this.buckets[l.id]}upload(l){for(let v in this.buckets){let b=this.buckets[v];b.uploadPending()&&b.upload(l)}let d=l.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Zt(l,this.imageAtlas.image,d.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Zt(l,this.glyphAtlasImage,d.ALPHA),this.glyphAtlasImage=null)}prepare(l){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(l,this.imageAtlasTexture)}queryRenderedFeatures(l,d,v,b,M,O,B,U,W,Z){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:b,cameraQueryGeometry:M,scale:O,tileSize:this.tileSize,pixelPosMatrix:Z,transform:U,params:B,queryPadding:this.queryPadding*W},l,d,v):{}}querySourceFeatures(l,d){let v=this.latestFeatureIndex;if(!v||!v.rawTileData)return;let b=v.loadVTLayers(),M=d&&d.sourceLayer?d.sourceLayer:\"\",O=b._geojsonTileLayer||b[M];if(!O)return;let B=n.a6(d&&d.filter),{z:U,x:W,y:Z}=this.tileID.canonical,Q={z:U,x:W,y:Z};for(let st=0;stv)b=!1;else if(d)if(this.expirationTime{this.remove(l,M)},v)),this.data[b].push(M),this.order.push(b),this.order.length>this.max){let O=this._getAndRemoveByKey(this.order[0]);O&&this.onRemove(O)}return this}has(l){return l.wrapped().key in this.data}getAndRemove(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null}_getAndRemoveByKey(l){let d=this.data[l].shift();return d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),d.value}getByKey(l){let d=this.data[l];return d?d[0].value:null}get(l){return this.has(l)?this.data[l.wrapped().key][0].value:null}remove(l,d){if(!this.has(l))return this;let v=l.wrapped().key,b=d===void 0?0:this.data[v].indexOf(d),M=this.data[v][b];return this.data[v].splice(b,1),M.timeout&&clearTimeout(M.timeout),this.data[v].length===0&&delete this.data[v],this.onRemove(M.value),this.order.splice(this.order.indexOf(v),1),this}setMaxSize(l){for(this.max=l;this.order.length>this.max;){let d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this}filter(l){let d=[];for(let v in this.data)for(let b of this.data[v])l(b.value)||d.push(b);for(let v of d)this.remove(v.value.tileID,v)}}class te{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(l,d,v){let b=String(d);if(this.stateChanges[l]=this.stateChanges[l]||{},this.stateChanges[l][b]=this.stateChanges[l][b]||{},n.e(this.stateChanges[l][b],v),this.deletedStates[l]===null){this.deletedStates[l]={};for(let M in this.state[l])M!==b&&(this.deletedStates[l][M]=null)}else if(this.deletedStates[l]&&this.deletedStates[l][b]===null){this.deletedStates[l][b]={};for(let M in this.state[l][b])v[M]||(this.deletedStates[l][b][M]=null)}else for(let M in v)this.deletedStates[l]&&this.deletedStates[l][b]&&this.deletedStates[l][b][M]===null&&delete this.deletedStates[l][b][M]}removeFeatureState(l,d,v){if(this.deletedStates[l]===null)return;let b=String(d);if(this.deletedStates[l]=this.deletedStates[l]||{},v&&d!==void 0)this.deletedStates[l][b]!==null&&(this.deletedStates[l][b]=this.deletedStates[l][b]||{},this.deletedStates[l][b][v]=null);else if(d!==void 0)if(this.stateChanges[l]&&this.stateChanges[l][b])for(v in this.deletedStates[l][b]={},this.stateChanges[l][b])this.deletedStates[l][b][v]=null;else this.deletedStates[l][b]=null;else this.deletedStates[l]=null}getState(l,d){let v=String(d),b=n.e({},(this.state[l]||{})[v],(this.stateChanges[l]||{})[v]);if(this.deletedStates[l]===null)return{};if(this.deletedStates[l]){let M=this.deletedStates[l][d];if(M===null)return{};for(let O in M)delete b[O]}return b}initializeTileState(l,d){l.setFeatureState(this.state,d)}coalesceChanges(l,d){let v={};for(let b in this.stateChanges){this.state[b]=this.state[b]||{};let M={};for(let O in this.stateChanges[b])this.state[b][O]||(this.state[b][O]={}),n.e(this.state[b][O],this.stateChanges[b][O]),M[O]=this.state[b][O];v[b]=M}for(let b in this.deletedStates){this.state[b]=this.state[b]||{};let M={};if(this.deletedStates[b]===null)for(let O in this.state[b])M[O]={},this.state[b][O]={};else for(let O in this.deletedStates[b]){if(this.deletedStates[b][O]===null)this.state[b][O]={};else for(let B of Object.keys(this.deletedStates[b][O]))delete this.state[b][O][B];M[O]=this.state[b][O]}v[b]=v[b]||{},n.e(v[b],M)}if(this.stateChanges={},this.deletedStates={},Object.keys(v).length!==0)for(let b in l)l[b].setFeatureState(v,d)}}class os extends n.E{constructor(l,d,v){super(),this.id=l,this.dispatcher=v,this.on(\"data\",b=>{b.dataType===\"source\"&&b.sourceDataType===\"metadata\"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&b.dataType===\"source\"&&b.sourceDataType===\"content\"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on(\"dataloading\",()=>{this._sourceErrored=!1}),this.on(\"error\",()=>{this._sourceErrored=this._source.loaded()}),this._source=((b,M,O,B)=>{let U=new(fo(M.type))(b,M,O,B);if(U.id!==b)throw new Error(`Expected Source id to be ${b} instead of ${U.id}`);return U})(l,d,v,this),this._tiles={},this._cache=new Ol(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new te,this._didEmitContent=!1,this._updated=!1}onAdd(l){this.map=l,this._maxTileCacheSize=l?l._maxTileCacheSize:null,this._maxTileCacheZoomLevels=l?l._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(l)}onRemove(l){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(l)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(let l in this._tiles){let d=this._tiles[l];if(d.state!==\"loaded\"&&d.state!==\"errored\")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let l=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,l&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(l,d){return this._source.loadTile(l,d)}_unloadTile(l){if(this._source.unloadTile)return this._source.unloadTile(l,()=>{})}_abortTile(l){this._source.abortTile&&this._source.abortTile(l,()=>{}),this._source.fire(new n.k(\"dataabort\",{tile:l,coord:l.tileID,dataType:\"source\"}))}serialize(){return this._source.serialize()}prepare(l){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(let d in this._tiles){let v=this._tiles[d];v.upload(l),v.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(l=>l.tileID).sort(fn).map(l=>l.key)}getRenderableIds(l){let d=[];for(let v in this._tiles)this._isIdRenderable(v,l)&&d.push(this._tiles[v]);return l?d.sort((v,b)=>{let M=v.tileID,O=b.tileID,B=new n.P(M.canonical.x,M.canonical.y)._rotate(this.transform.angle),U=new n.P(O.canonical.x,O.canonical.y)._rotate(this.transform.angle);return M.overscaledZ-O.overscaledZ||U.y-B.y||U.x-B.x}).map(v=>v.tileID.key):d.map(v=>v.tileID).sort(fn).map(v=>v.key)}hasRenderableParent(l){let d=this.findLoadedParent(l,0);return!!d&&this._isIdRenderable(d.tileID.key)}_isIdRenderable(l,d){return this._tiles[l]&&this._tiles[l].hasData()&&!this._coveredTiles[l]&&(d||!this._tiles[l].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let l in this._tiles)this._tiles[l].state!==\"errored\"&&this._reloadTile(l,\"reloading\")}}_reloadTile(l,d){let v=this._tiles[l];v&&(v.state!==\"loading\"&&(v.state=d),this._loadTile(v,this._tileLoaded.bind(this,v,l,d)))}_tileLoaded(l,d,v,b){if(b)return l.state=\"errored\",void(b.status!==404?this._source.fire(new n.j(b,{tile:l})):this.update(this.transform,this.terrain));l.timeAdded=n.h.now(),v===\"expired\"&&(l.refreshedUponExpiration=!0),this._setTileReloadTimer(d,l),this.getSource().type===\"raster-dem\"&&l.dem&&this._backfillDEM(l),this._state.initializeTileState(l,this.map?this.map.painter:null),l.aborted||this._source.fire(new n.k(\"data\",{dataType:\"source\",tile:l,coord:l.tileID}))}_backfillDEM(l){let d=this.getRenderableIds();for(let b=0;b1||(Math.abs(O)>1&&(Math.abs(O+U)===1?O+=U:Math.abs(O-U)===1&&(O-=U)),M.dem&&b.dem&&(b.dem.backfillBorder(M.dem,O,B),b.neighboringTiles&&b.neighboringTiles[W]&&(b.neighboringTiles[W].backfilled=!0)))}}getTile(l){return this.getTileByID(l.key)}getTileByID(l){return this._tiles[l]}_retainLoadedChildren(l,d,v,b){for(let M in this._tiles){let O=this._tiles[M];if(b[M]||!O.hasData()||O.tileID.overscaledZ<=d||O.tileID.overscaledZ>v)continue;let B=O.tileID;for(;O&&O.tileID.overscaledZ>d+1;){let W=O.tileID.scaledTo(O.tileID.overscaledZ-1);O=this._tiles[W.key],O&&O.hasData()&&(B=W)}let U=B;for(;U.overscaledZ>d;)if(U=U.scaledTo(U.overscaledZ-1),l[U.key]){b[B.key]=B;break}}}findLoadedParent(l,d){if(l.key in this._loadedParentTiles){let v=this._loadedParentTiles[l.key];return v&&v.tileID.overscaledZ>=d?v:null}for(let v=l.overscaledZ-1;v>=d;v--){let b=l.scaledTo(v),M=this._getLoadedTile(b);if(M)return M}}_getLoadedTile(l){let d=this._tiles[l.key];return d&&d.hasData()?d:this._cache.getByKey(l.wrapped().key)}updateCacheSize(l){let d=Math.ceil(l.width/this._source.tileSize)+1,v=Math.ceil(l.height/this._source.tileSize)+1,b=Math.floor(d*v*(this._maxTileCacheZoomLevels===null?n.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),M=typeof this._maxTileCacheSize==\"number\"?Math.min(this._maxTileCacheSize,b):b;this._cache.setMaxSize(M)}handleWrapJump(l){let d=Math.round((l-(this._prevLng===void 0?l:this._prevLng))/360);if(this._prevLng=l,d){let v={};for(let b in this._tiles){let M=this._tiles[b];M.tileID=M.tileID.unwrapTo(M.tileID.wrap+d),v[M.tileID.key]=M}this._tiles=v;for(let b in this._timers)clearTimeout(this._timers[b]),delete this._timers[b];for(let b in this._tiles)this._setTileReloadTimer(b,this._tiles[b])}}update(l,d){if(this.transform=l,this.terrain=d,!this._sourceLoaded||this._paused)return;let v;this.updateCacheSize(l),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?v=l.getVisibleUnwrappedCoordinates(this._source.tileID).map(Z=>new n.O(Z.canonical.z,Z.wrap,Z.canonical.z,Z.canonical.x,Z.canonical.y)):(v=l.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:d}),this._source.hasTile&&(v=v.filter(Z=>this._source.hasTile(Z)))):v=[];let b=l.coveringZoomLevel(this._source),M=Math.max(b-os.maxOverzooming,this._source.minzoom),O=Math.max(b+os.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){let Z={};for(let Q of v)if(Q.canonical.z>this._source.minzoom){let st=Q.scaledTo(Q.canonical.z-1);Z[st.key]=st;let At=Q.scaledTo(Math.max(this._source.minzoom,Math.min(Q.canonical.z,5)));Z[At.key]=At}v=v.concat(Object.values(Z))}let B=v.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,B&&this.fire(new n.k(\"data\",{sourceDataType:\"idle\",dataType:\"source\",sourceId:this.id}));let U=this._updateRetainedTiles(v,b);if(gi(this._source.type)){let Z={},Q={},st=Object.keys(U),At=n.h.now();for(let pt of st){let yt=U[pt],dt=this._tiles[pt];if(!dt||dt.fadeEndTime!==0&&dt.fadeEndTime<=At)continue;let Ft=this.findLoadedParent(yt,M);Ft&&(this._addTile(Ft.tileID),Z[Ft.tileID.key]=Ft.tileID),Q[pt]=yt}this._retainLoadedChildren(Q,b,O,U);for(let pt in Z)U[pt]||(this._coveredTiles[pt]=!0,U[pt]=Z[pt]);if(d){let pt={},yt={};for(let dt of v)this._tiles[dt.key].hasData()?pt[dt.key]=dt:yt[dt.key]=dt;for(let dt in yt){let Ft=yt[dt].children(this._source.maxzoom);this._tiles[Ft[0].key]&&this._tiles[Ft[1].key]&&this._tiles[Ft[2].key]&&this._tiles[Ft[3].key]&&(pt[Ft[0].key]=U[Ft[0].key]=Ft[0],pt[Ft[1].key]=U[Ft[1].key]=Ft[1],pt[Ft[2].key]=U[Ft[2].key]=Ft[2],pt[Ft[3].key]=U[Ft[3].key]=Ft[3],delete yt[dt])}for(let dt in yt){let Ft=this.findLoadedParent(yt[dt],this._source.minzoom);if(Ft){pt[Ft.tileID.key]=U[Ft.tileID.key]=Ft.tileID;for(let Wt in pt)pt[Wt].isChildOf(Ft.tileID)&&delete pt[Wt]}}for(let dt in this._tiles)pt[dt]||(this._coveredTiles[dt]=!0)}}for(let Z in U)this._tiles[Z].clearFadeHold();let W=n.ab(this._tiles,U);for(let Z of W){let Q=this._tiles[Z];Q.hasSymbolBuckets&&!Q.holdingForFade()?Q.setHoldDuration(this.map._fadeDuration):Q.hasSymbolBuckets&&!Q.symbolFadeFinished()||this._removeTile(Z)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(let l in this._tiles)this._tiles[l].holdingForFade()&&this._removeTile(l)}_updateRetainedTiles(l,d){let v={},b={},M=Math.max(d-os.maxOverzooming,this._source.minzoom),O=Math.max(d+os.maxUnderzooming,this._source.minzoom),B={};for(let U of l){let W=this._addTile(U);v[U.key]=U,W.hasData()||dthis._source.maxzoom){let Q=U.children(this._source.maxzoom)[0],st=this.getTile(Q);if(st&&st.hasData()){v[Q.key]=Q;continue}}else{let Q=U.children(this._source.maxzoom);if(v[Q[0].key]&&v[Q[1].key]&&v[Q[2].key]&&v[Q[3].key])continue}let Z=W.wasRequested();for(let Q=U.overscaledZ-1;Q>=M;--Q){let st=U.scaledTo(Q);if(b[st.key])break;if(b[st.key]=!0,W=this.getTile(st),!W&&Z&&(W=this._addTile(st)),W){let At=W.hasData();if((Z||At)&&(v[st.key]=st),Z=W.wasRequested(),At)break}}}return v}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let l in this._tiles){let d=[],v,b=this._tiles[l].tileID;for(;b.overscaledZ>0;){if(b.key in this._loadedParentTiles){v=this._loadedParentTiles[b.key];break}d.push(b.key);let M=b.scaledTo(b.overscaledZ-1);if(v=this._getLoadedTile(M),v)break;b=M}for(let M of d)this._loadedParentTiles[M]=v}}_addTile(l){let d=this._tiles[l.key];if(d)return d;d=this._cache.getAndRemove(l),d&&(this._setTileReloadTimer(l.key,d),d.tileID=l,this._state.initializeTileState(d,this.map?this.map.painter:null),this._cacheTimers[l.key]&&(clearTimeout(this._cacheTimers[l.key]),delete this._cacheTimers[l.key],this._setTileReloadTimer(l.key,d)));let v=d;return d||(d=new to(l,this._source.tileSize*l.overscaleFactor()),this._loadTile(d,this._tileLoaded.bind(this,d,l.key,d.state))),d.uses++,this._tiles[l.key]=d,v||this._source.fire(new n.k(\"dataloading\",{tile:d,coord:d.tileID,dataType:\"source\"})),d}_setTileReloadTimer(l,d){l in this._timers&&(clearTimeout(this._timers[l]),delete this._timers[l]);let v=d.getExpiryTimeout();v&&(this._timers[l]=setTimeout(()=>{this._reloadTile(l,\"expired\"),delete this._timers[l]},v))}_removeTile(l){let d=this._tiles[l];d&&(d.uses--,delete this._tiles[l],this._timers[l]&&(clearTimeout(this._timers[l]),delete this._timers[l]),d.uses>0||(d.hasData()&&d.state!==\"reloading\"?this._cache.add(d.tileID,d,d.getExpiryTimeout()):(d.aborted=!0,this._abortTile(d),this._unloadTile(d))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let l in this._tiles)this._removeTile(l);this._cache.reset()}tilesIn(l,d,v){let b=[],M=this.transform;if(!M)return b;let O=v?M.getCameraQueryGeometry(l):l,B=l.map(pt=>M.pointCoordinate(pt,this.terrain)),U=O.map(pt=>M.pointCoordinate(pt,this.terrain)),W=this.getIds(),Z=1/0,Q=1/0,st=-1/0,At=-1/0;for(let pt of U)Z=Math.min(Z,pt.x),Q=Math.min(Q,pt.y),st=Math.max(st,pt.x),At=Math.max(At,pt.y);for(let pt=0;pt=0&&St[1].y+Wt>=0){let Bt=B.map(Qt=>dt.getTilePoint(Qt)),Yt=U.map(Qt=>dt.getTilePoint(Qt));b.push({tile:yt,tileID:dt,queryGeometry:Bt,cameraQueryGeometry:Yt,scale:Ft})}}return b}getVisibleCoordinates(l){let d=this.getRenderableIds(l).map(v=>this._tiles[v].tileID);for(let v of d)v.posMatrix=this.transform.calculatePosMatrix(v.toUnwrapped());return d}hasTransition(){if(this._source.hasTransition())return!0;if(gi(this._source.type)){let l=n.h.now();for(let d in this._tiles)if(this._tiles[d].fadeEndTime>=l)return!0}return!1}setFeatureState(l,d,v){this._state.updateState(l=l||\"_geojsonTileLayer\",d,v)}removeFeatureState(l,d,v){this._state.removeFeatureState(l=l||\"_geojsonTileLayer\",d,v)}getFeatureState(l,d){return this._state.getState(l=l||\"_geojsonTileLayer\",d)}setDependencies(l,d,v){let b=this._tiles[l];b&&b.setDependencies(d,v)}reloadTilesForDependencies(l,d){for(let v in this._tiles)this._tiles[v].hasDependency(l,d)&&this._reloadTile(v,\"reloading\");this._cache.filter(v=>!v.hasDependency(l,d))}}function fn(T,l){let d=Math.abs(2*T.wrap)-+(T.wrap<0),v=Math.abs(2*l.wrap)-+(l.wrap<0);return T.overscaledZ-l.overscaledZ||v-d||l.canonical.y-T.canonical.y||l.canonical.x-T.canonical.x}function gi(T){return T===\"raster\"||T===\"image\"||T===\"video\"}os.maxOverzooming=10,os.maxUnderzooming=3;let oi=\"mapboxgl_preloaded_worker_pool\";class eo{constructor(){this.active={}}acquire(l){if(!this.workers)for(this.workers=[];this.workers.length{d.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[oi]}numActive(){return Object.keys(this.active).length}}let uu=Math.floor(n.h.hardwareConcurrency/2),al;function po(){return al||(al=new eo),al}eo.workerCount=n.ac(globalThis)?Math.max(Math.min(uu,3),1):1;class ll{constructor(l,d){this.reset(l,d)}reset(l,d){this.points=l||[],this._distances=[0];for(let v=1;v0?(b-O)/B:0;return this.points[M].mult(1-U).add(this.points[d].mult(U))}}function Pa(T,l){let d=!0;return T===\"always\"||T!==\"never\"&&l!==\"never\"||(d=!1),d}class Ao{constructor(l,d,v){let b=this.boxCells=[],M=this.circleCells=[];this.xCellCount=Math.ceil(l/v),this.yCellCount=Math.ceil(d/v);for(let O=0;Othis.width||b<0||d>this.height)return[];let U=[];if(l<=0&&d<=0&&this.width<=v&&this.height<=b){if(M)return[{key:null,x1:l,y1:d,x2:v,y2:b}];for(let W=0;W0}hitTestCircle(l,d,v,b,M){let O=l-v,B=l+v,U=d-v,W=d+v;if(B<0||O>this.width||W<0||U>this.height)return!1;let Z=[];return this._forEachCell(O,U,B,W,this._queryCellCircle,Z,{hitTest:!0,overlapMode:b,circle:{x:l,y:d,radius:v},seenUids:{box:{},circle:{}}},M),Z.length>0}_queryCell(l,d,v,b,M,O,B,U){let{seenUids:W,hitTest:Z,overlapMode:Q}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!W.box[yt]){W.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(l<=pt[dt+2]&&d<=pt[dt+3]&&v>=pt[dt+0]&&b>=pt[dt+1]&&(!U||U(Ft))&&(!Z||!Pa(Q,Ft.overlapMode))&&(O.push({key:Ft,x1:pt[dt],y1:pt[dt+1],x2:pt[dt+2],y2:pt[dt+3]}),Z))return!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!W.circle[yt]){W.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circleAndRectCollide(pt[dt],pt[dt+1],pt[dt+2],l,d,v,b)&&(!U||U(Ft))&&(!Z||!Pa(Q,Ft.overlapMode))){let Wt=pt[dt],St=pt[dt+1],Bt=pt[dt+2];if(O.push({key:Ft,x1:Wt-Bt,y1:St-Bt,x2:Wt+Bt,y2:St+Bt}),Z)return!0}}}return!1}_queryCellCircle(l,d,v,b,M,O,B,U){let{circle:W,seenUids:Z,overlapMode:Q}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!Z.box[yt]){Z.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(this._circleAndRectCollide(W.x,W.y,W.radius,pt[dt+0],pt[dt+1],pt[dt+2],pt[dt+3])&&(!U||U(Ft))&&!Pa(Q,Ft.overlapMode))return O.push(!0),!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!Z.circle[yt]){Z.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circlesCollide(pt[dt],pt[dt+1],pt[dt+2],W.x,W.y,W.radius)&&(!U||U(Ft))&&!Pa(Q,Ft.overlapMode))return O.push(!0),!0}}}_forEachCell(l,d,v,b,M,O,B,U){let W=this._convertToXCellCoord(l),Z=this._convertToYCellCoord(d),Q=this._convertToXCellCoord(v),st=this._convertToYCellCoord(b);for(let At=W;At<=Q;At++)for(let pt=Z;pt<=st;pt++)if(M.call(this,l,d,v,b,this.xCellCount*pt+At,O,B,U))return}_convertToXCellCoord(l){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(l*this.xScale)))}_convertToYCellCoord(l){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(l*this.yScale)))}_circlesCollide(l,d,v,b,M,O){let B=b-l,U=M-d,W=v+O;return W*W>B*B+U*U}_circleAndRectCollide(l,d,v,b,M,O,B){let U=(O-b)/2,W=Math.abs(l-(b+U));if(W>U+v)return!1;let Z=(B-M)/2,Q=Math.abs(d-(M+Z));if(Q>Z+v)return!1;if(W<=U||Q<=Z)return!0;let st=W-U,At=Q-Z;return st*st+At*At<=v*v}}function ve(T,l,d,v,b){let M=n.Z();return l?(n.a0(M,M,[1/b,1/b,1]),d||n.ae(M,M,v.angle)):n.a1(M,v.labelPlaneMatrix,T),M}function Uo(T,l,d,v,b){if(l){let M=n.af(T);return n.a0(M,M,[b,b,1]),d||n.ae(M,M,-v.angle),M}return v.glCoordMatrix}function dn(T,l,d){let v;d?(v=[T.x,T.y,d(T.x,T.y),1],n.ag(v,v,l)):(v=[T.x,T.y,0,1],vt(v,v,l));let b=v[3];return{point:new n.P(v[0]/b,v[1]/b),signedDistanceFromCamera:b}}function Bl(T,l){return .5+T/l*.5}function Ia(T,l){let d=T[0]/T[3],v=T[1]/T[3];return d>=-l[0]&&d<=l[0]&&v>=-l[1]&&v<=l[1]}function Se(T,l,d,v,b,M,O,B,U,W){let Z=v?T.textSizeData:T.iconSizeData,Q=n.ah(Z,d.transform.zoom),st=[256/d.width*2+1,256/d.height*2+1],At=v?T.text.dynamicLayoutVertexArray:T.icon.dynamicLayoutVertexArray;At.clear();let pt=T.lineVertexArray,yt=v?T.text.placedSymbolArray:T.icon.placedSymbolArray,dt=d.transform.width/d.transform.height,Ft=!1;for(let Wt=0;WtMath.abs(d.x-l.x)*v?{useVertical:!0}:(T===n.ai.vertical?l.yd.x)?{needsFlipping:!0}:null}function Os(T,l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt){let dt=l/24,Ft=T.lineOffsetX*dt,Wt=T.lineOffsetY*dt,St;if(T.numGlyphs>1){let Bt=T.glyphStartIndex+T.numGlyphs,Yt=T.lineStartIndex,Qt=T.lineStartIndex+T.lineLength,se=Dr(dt,B,Ft,Wt,d,Z,Q,T,U,M,st,pt,yt);if(!se)return{notEnoughRoom:!0};let pe=dn(se.first.point,O,yt).point,he=dn(se.last.point,O,yt).point;if(v&&!d){let xe=mr(T.writingMode,pe,he,At);if(xe)return xe}St=[se.first];for(let xe=T.glyphStartIndex+1;xe0?pe.point:Ca(Q,se,Yt,1,b,yt),xe=mr(T.writingMode,Yt,he,At);if(xe)return xe}let Bt=J(dt*B.getoffsetX(T.glyphStartIndex),Ft,Wt,d,Z,Q,T.segment,T.lineStartIndex,T.lineStartIndex+T.lineLength,U,M,st,pt,yt);if(!Bt)return{notEnoughRoom:!0};St=[Bt]}for(let Bt of St)n.ak(W,Bt.point,Bt.angle);return{}}function Ca(T,l,d,v,b,M){let O=dn(T.add(T.sub(l)._unit()),b,M).point,B=d.sub(O);return d.add(B._mult(v/B.mag()))}function Tr(T,l){let{projectionCache:d,lineVertexArray:v,labelPlaneMatrix:b,tileAnchorPoint:M,distanceFromAnchor:O,getElevation:B,previousVertex:U,direction:W,absOffsetX:Z}=l;if(d.projections[T])return d.projections[T];let Q=new n.P(v.getx(T),v.gety(T)),st=dn(Q,b,B);if(st.signedDistanceFromCamera>0)return d.projections[T]=st.point,st.point;let At=T-W;return Ca(O===0?M:new n.P(v.getx(At),v.gety(At)),Q,U,Z-O+1,b,B)}function sa(T,l,d){return T._unit()._perp()._mult(l*d)}function gt(T,l,d,v,b,M,O,B){let{projectionCache:U,direction:W}=B;if(U.offsets[T])return U.offsets[T];let Z=d.add(l);if(T+W=b)return U.offsets[T]=Z,Z;let Q=Tr(T+W,B),st=sa(Q.sub(d),O,W),At=d.add(st),pt=Q.add(st);return U.offsets[T]=n.al(M,Z,At,pt)||Z,U.offsets[T]}function J(T,l,d,v,b,M,O,B,U,W,Z,Q,st,At){let pt=v?T-l:T+l,yt=pt>0?1:-1,dt=0;v&&(yt*=-1,dt=Math.PI),yt<0&&(dt+=Math.PI);let Ft,Wt,St=yt>0?B+O:B+O+1,Bt=b,Yt=b,Qt=0,se=0,pe=Math.abs(pt),he=[],xe;for(;Qt+se<=pe;){if(St+=yt,St=U)return null;Qt+=se,Yt=Bt,Wt=Ft;let Me={projectionCache:Q,lineVertexArray:W,labelPlaneMatrix:Z,tileAnchorPoint:M,distanceFromAnchor:Qt,getElevation:At,previousVertex:Yt,direction:yt,absOffsetX:pe};if(Bt=Tr(St,Me),d===0)he.push(Yt),xe=Bt.sub(Yt);else{let dr,Xe=Bt.sub(Yt);dr=Xe.mag()===0?sa(Tr(St+yt,Me).sub(Bt),d,yt):sa(Xe,d,yt),Wt||(Wt=Yt.add(dr)),Ft=gt(St,dr,Bt,B,U,Wt,d,Me),he.push(Wt),xe=Ft.sub(Wt)}se=xe.mag()}let We=xe._mult((pe-Qt)/se)._add(Wt||Yt),Kr=dt+Math.atan2(Bt.y-Yt.y,Bt.x-Yt.x);return he.push(We),{point:We,angle:st?Kr:0,path:he}}let nt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ht(T,l){for(let d=0;d=1;Vr--)Xe.push(Me.path[Vr]);for(let Vr=1;Vrdn(ei,U,pt));Xe=Vr.some(ei=>ei.signedDistanceFromCamera<=0)?[]:Vr.map(ei=>ei.point)}let Jr=[];if(Xe.length>0){let Vr=Xe[0].clone(),ei=Xe[0].clone();for(let Rn=1;Rn=xe.x&&ei.x<=We.x&&Vr.y>=xe.y&&ei.y<=We.y?[Xe]:ei.xWe.x||ei.yWe.y?[]:n.am([Xe],xe.x,xe.y,We.x,We.y)}for(let Vr of Jr){Kr.reset(Vr,.25*he);let ei=0;ei=Kr.length<=.5*he?1:Math.ceil(Kr.paddedLength/Vi)+1;for(let Rn=0;Rn=this.screenRightBoundary||bthis.screenBottomBoundary}isInsideGrid(l,d,v,b){return v>=0&&l=0&&dv.collisionGroupID===d}}return this.collisionGroups[l]}}function _r(T,l,d,v,b){let{horizontalAlign:M,verticalAlign:O}=n.au(T);return new n.P(-(M-.5)*l+v[0]*b,-(O-.5)*d+v[1]*b)}function Ye(T,l,d,v,b,M){let{x1:O,x2:B,y1:U,y2:W,anchorPointX:Z,anchorPointY:Q}=T,st=new n.P(l,d);return v&&st._rotate(b?M:-M),{x1:O+st.x,y1:U+st.y,x2:B+st.x,y2:W+st.y,anchorPointX:Z,anchorPointY:Q}}class lr{constructor(l,d,v,b,M){this.transform=l.clone(),this.terrain=d,this.collisionIndex=new _t(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=v,this.retainedQueryData={},this.collisionGroups=new ar(b),this.collisionCircleArrays={},this.prevPlacement=M,M&&(M.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(l,d,v,b){let M=v.getBucket(d),O=v.latestFeatureIndex;if(!M||!O||d.id!==M.layerIds[0])return;let B=v.collisionBoxArray,U=M.layers[0].layout,W=Math.pow(2,this.transform.zoom-v.tileID.overscaledZ),Z=v.tileSize/n.N,Q=this.transform.calculatePosMatrix(v.tileID.toUnwrapped()),st=U.get(\"text-pitch-alignment\")===\"map\",At=U.get(\"text-rotation-alignment\")===\"map\",pt=Dt(v,1,this.transform.zoom),yt=ve(Q,st,At,this.transform,pt),dt=null;if(st){let Wt=Uo(Q,st,At,this.transform,pt);dt=n.a1([],this.transform.labelPlaneMatrix,Wt)}this.retainedQueryData[M.bucketInstanceId]=new oe(M.bucketInstanceId,O,M.sourceLayerIndex,M.index,v.tileID);let Ft={bucket:M,layout:U,posMatrix:Q,textLabelPlaneMatrix:yt,labelToScreenMatrix:dt,scale:W,textPixelRatio:Z,holdingForFade:v.holdingForFade(),collisionBoxArray:B,partiallyEvaluatedTextSize:n.ah(M.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(M.sourceID)};if(b)for(let Wt of M.sortKeyRanges){let{sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Yt}=Wt;l.push({sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Yt,parameters:Ft})}else l.push({symbolInstanceStart:0,symbolInstanceEnd:M.symbolInstances.length,parameters:Ft})}attemptAnchorPlacement(l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt,dt){let Ft=n.aq[l.textAnchor],Wt=[l.textOffset0,l.textOffset1],St=_r(Ft,v,b,Wt,M),Bt=this.collisionIndex.placeCollisionBox(Ye(d,St.x,St.y,O,B,this.transform.angle),Q,U,W,Z.predicate,dt);if((!yt||this.collisionIndex.placeCollisionBox(Ye(yt,St.x,St.y,O,B,this.transform.angle),Q,U,W,Z.predicate,dt).box.length!==0)&&Bt.box.length>0){let Yt;if(this.prevPlacement&&this.prevPlacement.variableOffsets[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID].text&&(Yt=this.prevPlacement.variableOffsets[st.crossTileID].anchor),st.crossTileID===0)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[st.crossTileID]={textOffset:Wt,width:v,height:b,anchor:Ft,textBoxScale:M,prevAnchor:Yt},this.markUsedJustification(At,Ft,st,pt),At.allowVerticalPlacement&&(this.markUsedOrientation(At,pt,st),this.placedOrientations[st.crossTileID]=pt),{shift:St,placedGlyphBoxes:Bt}}}placeLayerBucketPart(l,d,v){let{bucket:b,layout:M,posMatrix:O,textLabelPlaneMatrix:B,labelToScreenMatrix:U,textPixelRatio:W,holdingForFade:Z,collisionBoxArray:Q,partiallyEvaluatedTextSize:st,collisionGroup:At}=l.parameters,pt=M.get(\"text-optional\"),yt=M.get(\"icon-optional\"),dt=n.ar(M,\"text-overlap\",\"text-allow-overlap\"),Ft=dt===\"always\",Wt=n.ar(M,\"icon-overlap\",\"icon-allow-overlap\"),St=Wt===\"always\",Bt=M.get(\"text-rotation-alignment\")===\"map\",Yt=M.get(\"text-pitch-alignment\")===\"map\",Qt=M.get(\"icon-text-fit\")!==\"none\",se=M.get(\"symbol-z-order\")===\"viewport-y\",pe=Ft&&(St||!b.hasIconData()||yt),he=St&&(Ft||!b.hasTextData()||pt);!b.collisionArrays&&Q&&b.deserializeCollisionBoxes(Q);let xe=this.retainedQueryData[b.bucketInstanceId].tileID,We=this.terrain?(Me,dr)=>this.terrain.getElevation(xe,Me,dr):null,Kr=(Me,dr)=>{var Xe,Vi;if(d[Me.crossTileID])return;if(Z)return void(this.placements[Me.crossTileID]=new re(!1,!1,!1));let Jr=!1,Vr=!1,ei=!0,Rn=null,$i={box:null,offscreen:null},zs={box:null,offscreen:null},cs=null,Dn=null,Wo=null,jr=0,jl=0,Gl=0;dr.textFeatureIndex?jr=dr.textFeatureIndex:Me.useRuntimeCollisionCircles&&(jr=Me.featureIndex),dr.verticalTextFeatureIndex&&(jl=dr.verticalTextFeatureIndex);let mu=dr.textBox;if(mu){let Ns=On=>{let us=n.ai.horizontal;if(b.allowVerticalPlacement&&!On&&this.prevPlacement){let Ho=this.prevPlacement.placedOrientations[Me.crossTileID];Ho&&(this.placedOrientations[Me.crossTileID]=Ho,us=Ho,this.markUsedOrientation(b,us,Me))}return us},Es=(On,us)=>{if(b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&dr.verticalTextBox){for(let Ho of b.writingModes)if(Ho===n.ai.vertical?($i=us(),zs=$i):$i=On(),$i&&$i.box&&$i.box.length)break}else $i=On()},yo=Me.textAnchorOffsetStartIndex,_h=Me.textAnchorOffsetEndIndex;if(_h===yo){let On=(us,Ho)=>{let pn=this.collisionIndex.placeCollisionBox(us,dt,W,O,At.predicate,We);return pn&&pn.box&&pn.box.length&&(this.markUsedOrientation(b,Ho,Me),this.placedOrientations[Me.crossTileID]=Ho),pn};Es(()=>On(mu,n.ai.horizontal),()=>{let us=dr.verticalTextBox;return b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&us?On(us,n.ai.vertical):{box:null,offscreen:null}}),Ns($i&&$i.box&&$i.box.length)}else{let On=n.aq[(Vi=(Xe=this.prevPlacement)===null||Xe===void 0?void 0:Xe.variableOffsets[Me.crossTileID])===null||Vi===void 0?void 0:Vi.anchor],us=(pn,no,Gr)=>{let Na=pn.x2-pn.x1,d_=pn.y2-pn.y1,Bd=Me.textBoxScale,oA=Qt&&Wt===\"never\"?no:null,Wl={box:[],offscreen:!1},qo=dt===\"never\"?1:2,me=\"never\";On&&qo++;for(let Le=0;Leus(mu,dr.iconBox,n.ai.horizontal),()=>{let pn=dr.verticalTextBox;return b.allowVerticalPlacement&&!($i&&$i.box&&$i.box.length)&&Me.numVerticalGlyphVertices>0&&pn?us(pn,dr.verticalIconBox,n.ai.vertical):{box:null,offscreen:null}}),$i&&(Jr=$i.box,ei=$i.offscreen);let Ho=Ns($i&&$i.box);if(!Jr&&this.prevPlacement){let pn=this.prevPlacement.variableOffsets[Me.crossTileID];pn&&(this.variableOffsets[Me.crossTileID]=pn,this.markUsedJustification(b,pn.anchor,Me,Ho))}}}if(cs=$i,Jr=cs&&cs.box&&cs.box.length>0,ei=cs&&cs.offscreen,Me.useRuntimeCollisionCircles){let Ns=b.text.placedSymbolArray.get(Me.centerJustifiedTextSymbolIndex),Es=n.aj(b.textSizeData,st,Ns),yo=M.get(\"text-padding\");Dn=this.collisionIndex.placeCollisionCircles(dt,Ns,b.lineVertexArray,b.glyphOffsetArray,Es,O,B,U,v,Yt,At.predicate,Me.collisionCircleDiameter,yo,We),Dn.circles.length&&Dn.collisionDetected&&!v&&n.w(\"Collisions detected, but collision boxes are not shown\"),Jr=Ft||Dn.circles.length>0&&!Dn.collisionDetected,ei=ei&&Dn.offscreen}if(dr.iconFeatureIndex&&(Gl=dr.iconFeatureIndex),dr.iconBox){let Ns=Es=>{let yo=Qt&&Rn?Ye(Es,Rn.x,Rn.y,Bt,Yt,this.transform.angle):Es;return this.collisionIndex.placeCollisionBox(yo,Wt,W,O,At.predicate,We)};zs&&zs.box&&zs.box.length&&dr.verticalIconBox?(Wo=Ns(dr.verticalIconBox),Vr=Wo.box.length>0):(Wo=Ns(dr.iconBox),Vr=Wo.box.length>0),ei=ei&&Wo.offscreen}let gu=pt||Me.numHorizontalGlyphVertices===0&&Me.numVerticalGlyphVertices===0,gh=yt||Me.numIconVertices===0;if(gu||gh?gh?gu||(Vr=Vr&&Jr):Jr=Vr&&Jr:Vr=Jr=Vr&&Jr,Jr&&cs&&cs.box&&this.collisionIndex.insertCollisionBox(cs.box,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,zs&&zs.box&&jl?jl:jr,At.ID),Vr&&Wo&&this.collisionIndex.insertCollisionBox(Wo.box,Wt,M.get(\"icon-ignore-placement\"),b.bucketInstanceId,Gl,At.ID),Dn&&(Jr&&this.collisionIndex.insertCollisionCircles(Dn.circles,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,jr,At.ID),v)){let Ns=b.bucketInstanceId,Es=this.collisionCircleArrays[Ns];Es===void 0&&(Es=this.collisionCircleArrays[Ns]=new ne);for(let yo=0;yo=0;--dr){let Xe=Me[dr];Kr(b.symbolInstances.get(Xe),b.collisionArrays[Xe])}}else for(let Me=l.symbolInstanceStart;Me=0&&(l.text.placedSymbolArray.get(B).crossTileID=M>=0&&B!==M?0:v.crossTileID)}markUsedOrientation(l,d,v){let b=d===n.ai.horizontal||d===n.ai.horizontalOnly?d:0,M=d===n.ai.vertical?d:0,O=[v.leftJustifiedTextSymbolIndex,v.centerJustifiedTextSymbolIndex,v.rightJustifiedTextSymbolIndex];for(let B of O)l.text.placedSymbolArray.get(B).placedOrientation=b;v.verticalPlacedTextSymbolIndex&&(l.text.placedSymbolArray.get(v.verticalPlacedTextSymbolIndex).placedOrientation=M)}commit(l){this.commitTime=l,this.zoomAtLastRecencyCheck=this.transform.zoom;let d=this.prevPlacement,v=!1;this.prevZoomAdjustment=d?d.zoomAdjustment(this.transform.zoom):0;let b=d?d.symbolFadeChange(l):1,M=d?d.opacities:{},O=d?d.variableOffsets:{},B=d?d.placedOrientations:{};for(let U in this.placements){let W=this.placements[U],Z=M[U];Z?(this.opacities[U]=new Ut(Z,b,W.text,W.icon),v=v||W.text!==Z.text.placed||W.icon!==Z.icon.placed):(this.opacities[U]=new Ut(null,b,W.text,W.icon,W.skipFade),v=v||W.text||W.icon)}for(let U in M){let W=M[U];if(!this.opacities[U]){let Z=new Ut(W,b,!1,!1);Z.isHidden()||(this.opacities[U]=Z,v=v||W.text.placed||W.icon.placed)}}for(let U in O)this.variableOffsets[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.variableOffsets[U]=O[U]);for(let U in B)this.placedOrientations[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.placedOrientations[U]=B[U]);if(d&&d.lastPlacementChangeTime===void 0)throw new Error(\"Last placement time for previous placement is not defined\");v?this.lastPlacementChangeTime=l:typeof this.lastPlacementChangeTime!=\"number\"&&(this.lastPlacementChangeTime=d?d.lastPlacementChangeTime:l)}updateLayerOpacities(l,d){let v={};for(let b of d){let M=b.getBucket(l);M&&b.latestFeatureIndex&&l.id===M.layerIds[0]&&this.updateBucketOpacities(M,v,b.collisionBoxArray)}}updateBucketOpacities(l,d,v){l.hasTextData()&&(l.text.opacityVertexArray.clear(),l.text.hasVisibleVertices=!1),l.hasIconData()&&(l.icon.opacityVertexArray.clear(),l.icon.hasVisibleVertices=!1),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexArray.clear(),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexArray.clear();let b=l.layers[0],M=b.layout,O=new Ut(null,0,!1,!1,!0),B=M.get(\"text-allow-overlap\"),U=M.get(\"icon-allow-overlap\"),W=b._unevaluatedLayout.hasValue(\"text-variable-anchor\")||b._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"),Z=M.get(\"text-rotation-alignment\")===\"map\",Q=M.get(\"text-pitch-alignment\")===\"map\",st=M.get(\"icon-text-fit\")!==\"none\",At=new Ut(null,0,B&&(U||!l.hasIconData()||M.get(\"icon-optional\")),U&&(B||!l.hasTextData()||M.get(\"text-optional\")),!0);!l.collisionArrays&&v&&(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData())&&l.deserializeCollisionBoxes(v);let pt=(yt,dt,Ft)=>{for(let Wt=0;Wt

0,Qt=this.placedOrientations[dt.crossTileID],se=Qt===n.ai.vertical,pe=Qt===n.ai.horizontal||Qt===n.ai.horizontalOnly;if(Ft>0||Wt>0){let he=Kn(Bt.text);pt(l.text,Ft,se?oa:he),pt(l.text,Wt,pe?oa:he);let xe=Bt.text.isHidden();[dt.rightJustifiedTextSymbolIndex,dt.centerJustifiedTextSymbolIndex,dt.leftJustifiedTextSymbolIndex].forEach(Me=>{Me>=0&&(l.text.placedSymbolArray.get(Me).hidden=xe||se?1:0)}),dt.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(dt.verticalPlacedTextSymbolIndex).hidden=xe||pe?1:0);let We=this.variableOffsets[dt.crossTileID];We&&this.markUsedJustification(l,We.anchor,dt,Qt);let Kr=this.placedOrientations[dt.crossTileID];Kr&&(this.markUsedJustification(l,\"left\",dt,Kr),this.markUsedOrientation(l,Kr,dt))}if(Yt){let he=Kn(Bt.icon),xe=!(st&&dt.verticalPlacedIconSymbolIndex&&se);dt.placedIconSymbolIndex>=0&&(pt(l.icon,dt.numIconVertices,xe?he:oa),l.icon.placedSymbolArray.get(dt.placedIconSymbolIndex).hidden=Bt.icon.isHidden()),dt.verticalPlacedIconSymbolIndex>=0&&(pt(l.icon,dt.numVerticalIconVertices,xe?oa:he),l.icon.placedSymbolArray.get(dt.verticalPlacedIconSymbolIndex).hidden=Bt.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){let he=l.collisionArrays[yt];if(he){let xe=new n.P(0,0);if(he.textBox||he.verticalTextBox){let Kr=!0;if(W){let Me=this.variableOffsets[St];Me?(xe=_r(Me.anchor,Me.width,Me.height,Me.textOffset,Me.textBoxScale),Z&&xe._rotate(Q?this.transform.angle:-this.transform.angle)):Kr=!1}he.textBox&&xr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||se,xe.x,xe.y),he.verticalTextBox&&xr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||pe,xe.x,xe.y)}let We=!!(!pe&&he.verticalIconBox);he.iconBox&&xr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,We,st?xe.x:0,st?xe.y:0),he.verticalIconBox&&xr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,!We,st?xe.x:0,st?xe.y:0)}}}if(l.sortFeatures(this.transform.angle),this.retainedQueryData[l.bucketInstanceId]&&(this.retainedQueryData[l.bucketInstanceId].featureSortOrder=l.featureSortOrder),l.hasTextData()&&l.text.opacityVertexBuffer&&l.text.opacityVertexBuffer.updateData(l.text.opacityVertexArray),l.hasIconData()&&l.icon.opacityVertexBuffer&&l.icon.opacityVertexBuffer.updateData(l.icon.opacityVertexArray),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexBuffer&&l.iconCollisionBox.collisionVertexBuffer.updateData(l.iconCollisionBox.collisionVertexArray),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexBuffer&&l.textCollisionBox.collisionVertexBuffer.updateData(l.textCollisionBox.collisionVertexArray),l.text.opacityVertexArray.length!==l.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${l.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${l.text.layoutVertexArray.length}) / 4`);if(l.icon.opacityVertexArray.length!==l.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${l.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${l.icon.layoutVertexArray.length}) / 4`);if(l.bucketInstanceId in this.collisionCircleArrays){let yt=this.collisionCircleArrays[l.bucketInstanceId];l.placementInvProjMatrix=yt.invProjMatrix,l.placementViewportMatrix=yt.viewportMatrix,l.collisionCircleArray=yt.circles,delete this.collisionCircleArrays[l.bucketInstanceId]}}symbolFadeChange(l){return this.fadeDuration===0?1:(l-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(l){return Math.max(0,(this.transform.zoom-l)/1.5)}hasTransitions(l){return this.stale||l-this.lastPlacementChangeTimel}setStale(){this.stale=!0}}function xr(T,l,d,v,b){T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0)}let vi=Math.pow(2,25),Bi=Math.pow(2,24),ni=Math.pow(2,17),Hr=Math.pow(2,16),Un=Math.pow(2,9),Li=Math.pow(2,8),gn=Math.pow(2,1);function Kn(T){if(T.opacity===0&&!T.placed)return 0;if(T.opacity===1&&T.placed)return 4294967295;let l=T.placed?1:0,d=Math.floor(127*T.opacity);return d*vi+l*Bi+d*ni+l*Hr+d*Un+l*Li+d*gn+l}let oa=0;class Om{constructor(l){this._sortAcrossTiles=l.layout.get(\"symbol-z-order\")!==\"viewport-y\"&&!l.layout.get(\"symbol-sort-key\").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(l,d,v,b,M){let O=this._bucketParts;for(;this._currentTileIndexB.sortKey-U.sortKey));this._currentPartIndex!this._forceFullPlacement&&n.h.now()-b>2;for(;this._currentPlacementIndex>=0;){let O=d[l[this._currentPlacementIndex]],B=this.placement.collisionIndex.transform.zoom;if(O.type===\"symbol\"&&(!O.minzoom||O.minzoom<=B)&&(!O.maxzoom||O.maxzoom>B)){if(this._inProgressLayer||(this._inProgressLayer=new Om(O)),this._inProgressLayer.continuePlacement(v[O.source],this.placement,this._showCollisionBoxes,O,M))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(l){return this.placement.commit(l),this.placement}}let ws=512/n.N/2;class ih{constructor(l,d,v){this.tileID=l,this.bucketInstanceId=v,this._symbolsByKey={};let b=new Map;for(let M=0;M({x:Math.floor(U.anchorX*ws),y:Math.floor(U.anchorY*ws)})),crossTileIDs:O.map(U=>U.crossTileID)};if(B.positions.length>128){let U=new n.av(B.positions.length,16,Uint16Array);for(let{x:W,y:Z}of B.positions)U.add(W,Z);U.finish(),delete B.positions,B.index=U}this._symbolsByKey[M]=B}}getScaledCoordinates(l,d){let{x:v,y:b,z:M}=this.tileID.canonical,{x:O,y:B,z:U}=d.canonical,W=ws/Math.pow(2,U-M),Z=(B*n.N+l.anchorY)*W,Q=b*n.N*ws;return{x:Math.floor((O*n.N+l.anchorX)*W-v*n.N*ws),y:Math.floor(Z-Q)}}findMatches(l,d,v){let b=this.tileID.canonical.zl)}}class ai{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class La{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(l){let d=Math.round((l-this.lng)/360);if(d!==0)for(let v in this.indexes){let b=this.indexes[v],M={};for(let O in b){let B=b[O];B.tileID=B.tileID.unwrapTo(B.tileID.wrap+d),M[B.tileID.key]=B}this.indexes[v]=M}this.lng=l}addBucket(l,d,v){if(this.indexes[l.overscaledZ]&&this.indexes[l.overscaledZ][l.key]){if(this.indexes[l.overscaledZ][l.key].bucketInstanceId===d.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(l.overscaledZ,this.indexes[l.overscaledZ][l.key])}for(let M=0;Ml.overscaledZ)for(let B in O){let U=O[B];U.tileID.isChildOf(l)&&U.findMatches(d.symbolInstances,l,b)}else{let B=O[l.scaledTo(Number(M)).key];B&&B.findMatches(d.symbolInstances,l,b)}}for(let M=0;M{d[v]=!0});for(let v in this.layerIndexes)d[v]||delete this.layerIndexes[v]}}let on=(T,l)=>n.x(T,l&&l.filter(d=>d.identifier!==\"source.canvas\")),kn=n.F(n.ax,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\",\"setGlyphs\",\"setSprite\"]),Bm=n.F(n.ax,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),Vo=n.aw();class Vn extends n.E{constructor(l,d={}){super(),this.map=l,this.dispatcher=new rh(po(),this,l._getMapId()),this.imageManager=new ue,this.imageManager.setEventedParent(this),this.glyphManager=new Lr(l._requestManager,d.localIdeographFontFamily),this.lineAtlas=new Fo(256,512),this.crossTileSymbolIndex=new Lc,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new n.ay,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",n.az());let v=this;this._rtlTextPluginCallback=Vn.registerForPluginStateChange(b=>{v.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:b.pluginStatus,pluginURL:b.pluginURL},(M,O)=>{if(n.aA(M),O&&O.every(B=>B))for(let B in v.sourceCaches){let U=v.sourceCaches[B].getSource().type;U!==\"vector\"&&U!==\"geojson\"||v.sourceCaches[B].reload()}})}),this.on(\"data\",b=>{if(b.dataType!==\"source\"||b.sourceDataType!==\"metadata\")return;let M=this.sourceCaches[b.sourceId];if(!M)return;let O=M.getSource();if(O&&O.vectorLayerIds)for(let B in this._layers){let U=this._layers[B];U.source===O.id&&this._validateLayer(U)}})}loadURL(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),d.validate=typeof d.validate!=\"boolean\"||d.validate;let b=this.map._requestManager.transformRequest(l,Y.Style);this._request=n.f(b,(M,O)=>{this._request=null,M?this.fire(new n.j(M)):O&&this._load(O,d,v)})}loadJSON(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._request=n.h.frame(()=>{this._request=null,d.validate=d.validate!==!1,this._load(l,d,v)})}loadEmpty(){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._load(Vo,{validate:!1})}_load(l,d,v){var b;let M=d.transformStyle?d.transformStyle(v,l):l;if(!d.validate||!on(this,n.y(M))){this._loaded=!0,this.stylesheet=M;for(let O in M.sources)this.addSource(O,M.sources[O],{validate:!1});M.sprite?this._loadSprite(M.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(M.glyphs),this._createLayers(),this.light=new Pc(this.stylesheet.light),this.map.setTerrain((b=this.stylesheet.terrain)!==null&&b!==void 0?b:null),this.fire(new n.k(\"data\",{dataType:\"style\"})),this.fire(new n.k(\"style.load\"))}}_createLayers(){let l=n.aB(this.stylesheet.layers);this.dispatcher.broadcast(\"setLayers\",l),this._order=l.map(d=>d.id),this._layers={},this._serializedLayers=null;for(let d of l){let v=n.aC(d);v.setEventedParent(this,{layer:{id:d.id}}),this._layers[d.id]=v}}_loadSprite(l,d=!1,v=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(b,M,O,B){let U=Ot(b),W=U.length,Z=O>1?\"@2x\":\"\",Q={},st={},At={};for(let{id:pt,url:yt}of U){let dt=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".json\"),Y.SpriteJSON),Ft=`${pt}_${dt.url}`;Q[Ft]=n.f(dt,(Bt,Yt)=>{delete Q[Ft],st[pt]=Yt,Kt(B,st,At,Bt,W)});let Wt=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".png\"),Y.SpriteImage),St=`${pt}_${Wt.url}`;Q[St]=j.getImage(Wt,(Bt,Yt)=>{delete Q[St],At[pt]=Yt,Kt(B,st,At,Bt,W)})}return{cancel(){for(let pt of Object.values(Q))pt.cancel()}}}(l,this.map._requestManager,this.map.getPixelRatio(),(b,M)=>{if(this._spriteRequest=null,b)this.fire(new n.j(b));else if(M)for(let O in M){this._spritesImagesIds[O]=[];let B=this._spritesImagesIds[O]?this._spritesImagesIds[O].filter(U=>!(U in M)):[];for(let U of B)this.imageManager.removeImage(U),this._changedImages[U]=!0;for(let U in M[O]){let W=O===\"default\"?U:`${O}:${U}`;this._spritesImagesIds[O].push(W),W in this.imageManager.images?this.imageManager.updateImage(W,M[O][U],!1):this.imageManager.addImage(W,M[O][U]),d&&(this._changedImages[W]=!0)}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),d&&(this._changed=!0),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"})),v&&v(b)})}_unloadSprite(){for(let l of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(l),this._changedImages[l]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}_validateLayer(l){let d=this.sourceCaches[l.source];if(!d)return;let v=l.sourceLayer;if(!v)return;let b=d.getSource();(b.type===\"geojson\"||b.vectorLayerIds&&b.vectorLayerIds.indexOf(v)===-1)&&this.fire(new n.j(new Error(`Source layer \"${v}\" does not exist on source \"${b.id}\" as specified by style layer \"${l.id}\".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let l in this.sourceCaches)if(!this.sourceCaches[l].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(l){let d=this._serializedAllLayers();if(!l||l.length===0)return Object.values(d);let v=[];for(let b of l)d[b]&&v.push(d[b]);return v}_serializedAllLayers(){let l=this._serializedLayers;if(l)return l;l=this._serializedLayers={};let d=Object.keys(this._layers);for(let v of d){let b=this._layers[v];b.type!==\"custom\"&&(l[v]=b.serialize())}return l}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(let l in this.sourceCaches)if(this.sourceCaches[l].hasTransition())return!0;for(let l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading.\")}update(l){if(!this._loaded)return;let d=this._changed;if(this._changed){let b=Object.keys(this._updatedLayers),M=Object.keys(this._removedLayers);(b.length||M.length)&&this._updateWorkerLayers(b,M);for(let O in this._updatedSources){let B=this._updatedSources[O];if(B===\"reload\")this._reloadSource(O);else{if(B!==\"clear\")throw new Error(`Invalid action ${B}`);this._clearSource(O)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let O in this._updatedPaintProps)this._layers[O].updateTransitions(l);this.light.updateTransitions(l),this._resetUpdates()}let v={};for(let b in this.sourceCaches){let M=this.sourceCaches[b];v[b]=M.used,M.used=!1}for(let b of this._order){let M=this._layers[b];M.recalculate(l,this._availableImages),!M.isHidden(l.zoom)&&M.source&&(this.sourceCaches[M.source].used=!0)}for(let b in v){let M=this.sourceCaches[b];v[b]!==M.used&&M.fire(new n.k(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:b}))}this.light.recalculate(l),this.z=l.zoom,d&&this.fire(new n.k(\"data\",{dataType:\"style\"}))}_updateTilesForChangedImages(){let l=Object.keys(this._changedImages);if(l.length){for(let d in this.sourceCaches)this.sourceCaches[d].reloadTilesForDependencies([\"icons\",\"patterns\"],l);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let l in this.sourceCaches)this.sourceCaches[l].reloadTilesForDependencies([\"glyphs\"],[\"\"]);this._glyphsDidChange=!1}}_updateWorkerLayers(l,d){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeByIds(l),removedIds:d})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(l,d={}){this._checkLoaded();let v=this.serialize();if(l=d.transformStyle?d.transformStyle(v,l):l,on(this,n.y(l)))return!1;(l=n.aD(l)).layers=n.aB(l.layers);let b=n.aE(v,l).filter(O=>!(O.command in Bm));if(b.length===0)return!1;let M=b.filter(O=>!(O.command in kn));if(M.length>0)throw new Error(`Unimplemented: ${M.map(O=>O.command).join(\", \")}.`);for(let O of b)O.command!==\"setTransition\"&&this[O.command].apply(this,O.args);return this.stylesheet=l,this._serializedLayers=null,!0}addImage(l,d){if(this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" already exists.`)));this.imageManager.addImage(l,d),this._afterImageUpdated(l)}updateImage(l,d){this.imageManager.updateImage(l,d)}getImage(l){return this.imageManager.getImage(l)}removeImage(l){if(!this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" does not exist.`)));this.imageManager.removeImage(l),this._afterImageUpdated(l)}_afterImageUpdated(l){this._availableImages=this.imageManager.listImages(),this._changedImages[l]=!0,this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(l,d,v={}){if(this._checkLoaded(),this.sourceCaches[l]!==void 0)throw new Error(`Source \"${l}\" already exists.`);if(!d.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(d).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(d.type)>=0&&this._validate(n.y.source,`sources.${l}`,d,null,v))return;this.map&&this.map._collectResourceTiming&&(d.collectResourceTiming=!0);let b=this.sourceCaches[l]=new os(l,d,this.dispatcher);b.style=this,b.setEventedParent(this,()=>({isSourceLoaded:b.loaded(),source:b.serialize(),sourceId:l})),b.onAdd(this.map),this._changed=!0}removeSource(l){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(\"There is no source with this ID\");for(let v in this._layers)if(this._layers[v].source===l)return this.fire(new n.j(new Error(`Source \"${l}\" cannot be removed while layer \"${v}\" is using it.`)));let d=this.sourceCaches[l];delete this.sourceCaches[l],delete this._updatedSources[l],d.fire(new n.k(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:l})),d.setEventedParent(null),d.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(l,d){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(`There is no source with this ID=${l}`);let v=this.sourceCaches[l].getSource();if(v.type!==\"geojson\")throw new Error(`geojsonSource.type is ${v.type}, which is !== 'geojson`);v.setData(d),this._changed=!0}getSource(l){return this.sourceCaches[l]&&this.sourceCaches[l].getSource()}addLayer(l,d,v={}){this._checkLoaded();let b=l.id;if(this.getLayer(b))return void this.fire(new n.j(new Error(`Layer \"${b}\" already exists on this map.`)));let M;if(l.type===\"custom\"){if(on(this,n.aF(l)))return;M=n.aC(l)}else{if(\"source\"in l&&typeof l.source==\"object\"&&(this.addSource(b,l.source),l=n.aD(l),l=n.e(l,{source:b})),this._validate(n.y.layer,`layers.${b}`,l,{arrayIndex:-1},v))return;M=n.aC(l),this._validateLayer(M),M.setEventedParent(this,{layer:{id:b}})}let O=d?this._order.indexOf(d):this._order.length;if(d&&O===-1)this.fire(new n.j(new Error(`Cannot add layer \"${b}\" before non-existing layer \"${d}\".`)));else{if(this._order.splice(O,0,b),this._layerOrderChanged=!0,this._layers[b]=M,this._removedLayers[b]&&M.source&&M.type!==\"custom\"){let B=this._removedLayers[b];delete this._removedLayers[b],B.type!==M.type?this._updatedSources[M.source]=\"clear\":(this._updatedSources[M.source]=\"reload\",this.sourceCaches[M.source].pause())}this._updateLayer(M),M.onAdd&&M.onAdd(this.map)}}moveLayer(l,d){if(this._checkLoaded(),this._changed=!0,!this._layers[l])return void this.fire(new n.j(new Error(`The layer '${l}' does not exist in the map's style and cannot be moved.`)));if(l===d)return;let v=this._order.indexOf(l);this._order.splice(v,1);let b=d?this._order.indexOf(d):this._order.length;d&&b===-1?this.fire(new n.j(new Error(`Cannot move layer \"${l}\" before non-existing layer \"${d}\".`))):(this._order.splice(b,0,l),this._layerOrderChanged=!0)}removeLayer(l){this._checkLoaded();let d=this._layers[l];if(!d)return void this.fire(new n.j(new Error(`Cannot remove non-existing layer \"${l}\".`)));d.setEventedParent(null);let v=this._order.indexOf(l);this._order.splice(v,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[l]=d,delete this._layers[l],this._serializedLayers&&delete this._serializedLayers[l],delete this._updatedLayers[l],delete this._updatedPaintProps[l],d.onRemove&&d.onRemove(this.map)}getLayer(l){return this._layers[l]}getLayersOrder(){return[...this._order]}hasLayer(l){return l in this._layers}setLayerZoomRange(l,d,v){this._checkLoaded();let b=this.getLayer(l);b?b.minzoom===d&&b.maxzoom===v||(d!=null&&(b.minzoom=d),v!=null&&(b.maxzoom=v),this._updateLayer(b)):this.fire(new n.j(new Error(`Cannot set the zoom range of non-existing layer \"${l}\".`)))}setFilter(l,d,v={}){this._checkLoaded();let b=this.getLayer(l);if(b){if(!n.aG(b.filter,d))return d==null?(b.filter=void 0,void this._updateLayer(b)):void(this._validate(n.y.filter,`layers.${b.id}.filter`,d,null,v)||(b.filter=n.aD(d),this._updateLayer(b)))}else this.fire(new n.j(new Error(`Cannot filter non-existing layer \"${l}\".`)))}getFilter(l){return n.aD(this.getLayer(l).filter)}setLayoutProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getLayoutProperty(d),v)||(M.setLayoutProperty(d,v,b),this._updateLayer(M)):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getLayoutProperty(l,d){let v=this.getLayer(l);if(v)return v.getLayoutProperty(d);this.fire(new n.j(new Error(`Cannot get style of non-existing layer \"${l}\".`)))}setPaintProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getPaintProperty(d),v)||(M.setPaintProperty(d,v,b)&&this._updateLayer(M),this._changed=!0,this._updatedPaintProps[l]=!0):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getPaintProperty(l,d){return this.getLayer(l).getPaintProperty(d)}setFeatureState(l,d){this._checkLoaded();let v=l.source,b=l.sourceLayer,M=this.sourceCaches[v];if(M===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let O=M.getSource().type;O===\"geojson\"&&b?this.fire(new n.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):O!==\"vector\"||b?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),M.setFeatureState(b,l.id,d)):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}removeFeatureState(l,d){this._checkLoaded();let v=l.source,b=this.sourceCaches[v];if(b===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let M=b.getSource().type,O=M===\"vector\"?l.sourceLayer:void 0;M!==\"vector\"||O?d&&typeof l.id!=\"string\"&&typeof l.id!=\"number\"?this.fire(new n.j(new Error(\"A feature id is required to remove its specific state property.\"))):b.removeFeatureState(O,l.id,d):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}getFeatureState(l){this._checkLoaded();let d=l.source,v=l.sourceLayer,b=this.sourceCaches[d];if(b!==void 0)return b.getSource().type!==\"vector\"||v?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),b.getFeatureState(v,l.id)):void this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));this.fire(new n.j(new Error(`The source '${d}' does not exist in the map's style.`)))}getTransition(){return n.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;let l=n.aH(this.sourceCaches,M=>M.serialize()),d=this._serializeByIds(this._order),v=this.map.getTerrain()||void 0,b=this.stylesheet;return n.aI({version:b.version,name:b.name,metadata:b.metadata,light:b.light,center:b.center,zoom:b.zoom,bearing:b.bearing,pitch:b.pitch,sprite:b.sprite,glyphs:b.glyphs,transition:b.transition,sources:l,layers:d,terrain:v},M=>M!==void 0)}_updateLayer(l){this._updatedLayers[l.id]=!0,l.source&&!this._updatedSources[l.source]&&this.sourceCaches[l.source].getSource().type!==\"raster\"&&(this._updatedSources[l.source]=\"reload\",this.sourceCaches[l.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(l){let d=O=>this._layers[O].type===\"fill-extrusion\",v={},b=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B)){v[B]=O;for(let U of l){let W=U[B];if(W)for(let Z of W)b.push(Z)}}}b.sort((O,B)=>B.intersectionZ-O.intersectionZ);let M=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B))for(let U=b.length-1;U>=0;U--){let W=b[U].feature;if(v[W.layer.id]{let pe=Ft.featureSortOrder;if(pe){let he=pe.indexOf(Qt.featureIndex);return pe.indexOf(se.featureIndex)-he}return se.featureIndex-Qt.featureIndex});for(let Qt of Yt)Bt.push(Qt)}}for(let Ft in pt)pt[Ft].forEach(Wt=>{let St=Wt.feature,Bt=W[B[Ft].source].getFeatureState(St.layer[\"source-layer\"],St.id);St.source=St.layer.source,St.layer[\"source-layer\"]&&(St.sourceLayer=St.layer[\"source-layer\"]),St.state=Bt});return pt}(this._layers,O,this.sourceCaches,l,d,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(M)}querySourceFeatures(l,d){d&&d.filter&&this._validate(n.y.filter,\"querySourceFeatures.filter\",d.filter,null,d);let v=this.sourceCaches[l];return v?function(b,M){let O=b.getRenderableIds().map(W=>b.getTileByID(W)),B=[],U={};for(let W=0;W{ol[b]=M})(l,d),d.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:l,url:d.workerSourceURL},v):v(null,null))}getLight(){return this.light.getLight()}setLight(l,d={}){this._checkLoaded();let v=this.light.getLight(),b=!1;for(let O in l)if(!n.aG(l[O],v[O])){b=!0;break}if(!b)return;let M={now:n.h.now(),transition:n.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(l,d),this.light.updateTransitions(M)}_validate(l,d,v,b,M={}){return(!M||M.validate!==!1)&&on(this,l.call(n.y,n.e({key:d,style:this.serialize(),value:v,styleSpec:n.v},b)))}_remove(l=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),n.aJ.off(\"pluginStateChange\",this._rtlTextPluginCallback);for(let d in this._layers)this._layers[d].setEventedParent(null);for(let d in this.sourceCaches){let v=this.sourceCaches[d];v.setEventedParent(null),v.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(l)}_clearSource(l){this.sourceCaches[l].clearTiles()}_reloadSource(l){this.sourceCaches[l].resume(),this.sourceCaches[l].reload()}_updateSources(l){for(let d in this.sourceCaches)this.sourceCaches[d].update(l,this.map.terrain)}_generateCollisionBoxes(){for(let l in this.sourceCaches)this._reloadSource(l)}_updatePlacement(l,d,v,b,M=!1){let O=!1,B=!1,U={};for(let W of this._order){let Z=this._layers[W];if(Z.type!==\"symbol\")continue;if(!U[Z.source]){let st=this.sourceCaches[Z.source];U[Z.source]=st.getRenderableIds(!0).map(At=>st.getTileByID(At)).sort((At,pt)=>pt.tileID.overscaledZ-At.tileID.overscaledZ||(At.tileID.isLessThan(pt.tileID)?-1:1))}let Q=this.crossTileSymbolIndex.addLayer(Z,U[Z.source],l.center.lng);O=O||Q}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((M=M||this._layerOrderChanged||v===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(n.h.now(),l.zoom))&&(this.pauseablePlacement=new Fl(l,this.map.terrain,this._order,M,d,v,b,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,U),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(n.h.now()),B=!0),O&&this.pauseablePlacement.placement.setStale()),B||O)for(let W of this._order){let Z=this._layers[W];Z.type===\"symbol\"&&this.placement.updateLayerOpacities(Z,U[Z.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(n.h.now())}_releaseSymbolFadeTiles(){for(let l in this.sourceCaches)this.sourceCaches[l].releaseSymbolFadeTiles()}getImages(l,d,v){this.imageManager.getImages(d.icons,v),this._updateTilesForChangedImages();let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,d.icons)}getGlyphs(l,d,v){this.glyphManager.getGlyphs(d.stacks,v);let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,[\"\"])}getResource(l,d,v){return n.m(d,v)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(l,d={}){this._checkLoaded(),l&&this._validate(n.y.glyphs,\"glyphs\",l,null,d)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=l,this.glyphManager.entries={},this.glyphManager.setURL(l))}addSprite(l,d,v={},b){this._checkLoaded();let M=[{id:l,url:d}],O=[...Ot(this.stylesheet.sprite),...M];this._validate(n.y.sprite,\"sprite\",O,null,v)||(this.stylesheet.sprite=O,this._loadSprite(M,!0,b))}removeSprite(l){this._checkLoaded();let d=Ot(this.stylesheet.sprite);if(d.find(v=>v.id===l)){if(this._spritesImagesIds[l])for(let v of this._spritesImagesIds[l])this.imageManager.removeImage(v),this._changedImages[v]=!0;d.splice(d.findIndex(v=>v.id===l),1),this.stylesheet.sprite=d.length>0?d:void 0,delete this._spritesImagesIds[l],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}else this.fire(new n.j(new Error(`Sprite \"${l}\" doesn't exists on this map.`)))}getSprite(){return Ot(this.stylesheet.sprite)}setSprite(l,d={},v){this._checkLoaded(),l&&this._validate(n.y.sprite,\"sprite\",l,null,d)||(this.stylesheet.sprite=l,l?this._loadSprite(l,!0,v):(this._unloadSprite(),v&&v(null)))}}Vn.registerForPluginStateChange=n.aK;var mo=n.Q([{name:\"a_pos\",type:\"Int16\",components:2}]),zl=\"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\";let Yi={prelude:_i(`#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n`,`#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}`),background:_i(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),backgroundPattern:_i(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),circle:_i(`varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:_i(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:_i(`uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:_i(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),collisionBox:_i(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),collisionCircle:_i(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\",\"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:_i(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\",\"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"),fill:_i(`#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:_i(`varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:_i(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:_i(`varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:_i(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:_i(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),line:_i(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),lineGradient:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),linePattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:_i(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),symbolIcon:_i(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:_i(`#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:_i(`#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:_i(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",zl),terrainDepth:_i(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\",zl),terrainCoords:_i(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\",zl)};function _i(T,l){let d=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,v=l.match(/attribute ([\\w]+) ([\\w]+)/g),b=T.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),M=l.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),O=M?M.concat(b):b,B={};return{fragmentSource:T=T.replace(d,(U,W,Z,Q,st)=>(B[st]=!0,W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nvarying ${Z} ${Q} ${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`)),vertexSource:l=l.replace(d,(U,W,Z,Q,st)=>{let At=Q===\"float\"?\"vec2\":\"vec4\",pt=st.match(/color/)?\"color\":At;return B[st]?W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\nvarying ${Z} ${Q} ${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = a_${st};\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\n#else\nuniform ${Z} ${Q} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = a_${st};\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${Q} ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${Q} ${st} = u_${st};\n#endif\n`}),staticAttributes:v,staticUniforms:O}}class Nl{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(l,d,v,b,M,O,B,U,W){this.context=l;let Z=this.boundPaintVertexBuffers.length!==b.length;for(let Q=0;!Z&&Q({u_depth:new n.aL(Qt,se.u_depth),u_terrain:new n.aL(Qt,se.u_terrain),u_terrain_dim:new n.aM(Qt,se.u_terrain_dim),u_terrain_matrix:new n.aN(Qt,se.u_terrain_matrix),u_terrain_unpack:new n.aO(Qt,se.u_terrain_unpack),u_terrain_exaggeration:new n.aM(Qt,se.u_terrain_exaggeration)}))(l,Yt),this.binderUniforms=v?v.getUniforms(l,Yt):[]}draw(l,d,v,b,M,O,B,U,W,Z,Q,st,At,pt,yt,dt,Ft,Wt){let St=l.gl;if(this.failedToCreate)return;if(l.program.set(this.program),l.setDepthMode(v),l.setStencilMode(b),l.setColorMode(M),l.setCullFace(O),U){l.activeTexture.set(St.TEXTURE2),St.bindTexture(St.TEXTURE_2D,U.depthTexture),l.activeTexture.set(St.TEXTURE3),St.bindTexture(St.TEXTURE_2D,U.texture);for(let Yt in this.terrainUniforms)this.terrainUniforms[Yt].set(U[Yt])}for(let Yt in this.fixedUniforms)this.fixedUniforms[Yt].set(B[Yt]);yt&&yt.setUniforms(l,this.binderUniforms,At,{zoom:pt});let Bt=0;switch(d){case St.LINES:Bt=2;break;case St.TRIANGLES:Bt=3;break;case St.LINE_STRIP:Bt=1}for(let Yt of st.get()){let Qt=Yt.vaos||(Yt.vaos={});(Qt[W]||(Qt[W]=new Nl)).bind(l,this,Z,yt?yt.getPaintVertexBuffers():[],Q,Yt.vertexOffset,dt,Ft,Wt),St.drawElements(d,Yt.primitiveLength*Bt,St.UNSIGNED_SHORT,Yt.primitiveOffset*Bt*2)}}}function Jn(T,l,d){let v=1/Dt(d,1,l.transform.tileZoom),b=Math.pow(2,d.tileID.overscaledZ),M=d.tileSize*Math.pow(2,l.transform.tileZoom)/b,O=M*(d.tileID.canonical.x+d.tileID.wrap*b),B=M*d.tileID.canonical.y;return{u_image:0,u_texsize:d.imageAtlasTexture.size,u_scale:[v,T.fromScale,T.toScale],u_fade:T.t,u_pixel_coord_upper:[O>>16,B>>16],u_pixel_coord_lower:[65535&O,65535&B]}}let Up=(T,l,d,v)=>{let b=l.style.light,M=b.properties.get(\"position\"),O=[M.x,M.y,M.z],B=function(){var W=new n.A(9);return n.A!=Float32Array&&(W[1]=0,W[2]=0,W[3]=0,W[5]=0,W[6]=0,W[7]=0),W[0]=1,W[4]=1,W[8]=1,W}();b.properties.get(\"anchor\")===\"viewport\"&&function(W,Z){var Q=Math.sin(Z),st=Math.cos(Z);W[0]=st,W[1]=Q,W[2]=0,W[3]=-Q,W[4]=st,W[5]=0,W[6]=0,W[7]=0,W[8]=1}(B,-l.transform.angle),function(W,Z,Q){var st=Z[0],At=Z[1],pt=Z[2];W[0]=st*Q[0]+At*Q[3]+pt*Q[6],W[1]=st*Q[1]+At*Q[4]+pt*Q[7],W[2]=st*Q[2]+At*Q[5]+pt*Q[8]}(O,O,B);let U=b.properties.get(\"color\");return{u_matrix:T,u_lightpos:O,u_lightintensity:b.properties.get(\"intensity\"),u_lightcolor:[U.r,U.g,U.b],u_vertical_gradient:+d,u_opacity:v}},Ul=(T,l,d,v,b,M,O)=>n.e(Up(T,l,d,v),Jn(M,l,O),{u_height_factor:-Math.pow(2,b.overscaledZ)/O.tileSize/8}),md=T=>({u_matrix:T}),gd=(T,l,d,v)=>n.e(md(T),Jn(d,l,v)),_d=(T,l)=>({u_matrix:T,u_world:l}),yd=(T,l,d,v,b)=>n.e(gd(T,l,d,v),{u_world:b}),lt=(T,l,d,v)=>{let b=T.transform,M,O;if(v.paint.get(\"circle-pitch-alignment\")===\"map\"){let B=Dt(d,1,b.zoom);M=!0,O=[B,B]}else M=!1,O=b.pixelsToGLUnits;return{u_camera_to_center_distance:b.cameraToCenterDistance,u_scale_with_map:+(v.paint.get(\"circle-pitch-scale\")===\"map\"),u_matrix:T.translatePosMatrix(l.posMatrix,d,v.paint.get(\"circle-translate\"),v.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+M,u_device_pixel_ratio:T.pixelRatio,u_extrude_scale:O}},ft=(T,l,d)=>{let v=Dt(d,1,l.zoom),b=Math.pow(2,l.zoom-d.tileID.overscaledZ),M=d.tileID.overscaleFactor();return{u_matrix:T,u_camera_to_center_distance:l.cameraToCenterDistance,u_pixels_to_tile_units:v,u_extrude_scale:[l.pixelsToGLUnits[0]/(v*b),l.pixelsToGLUnits[1]/(v*b)],u_overscale_factor:M}},Lt=(T,l,d=1)=>({u_matrix:T,u_color:l,u_overlay:0,u_overlay_scale:d}),$t=T=>({u_matrix:T}),ge=(T,l,d,v)=>({u_matrix:T,u_extrude_scale:Dt(l,1,d),u_intensity:v});function qe(T,l){let d=Math.pow(2,l.canonical.z),v=l.canonical.y;return[new n.U(0,v/d).toLngLat().lat,new n.U(0,(v+1)/d).toLngLat().lat]}let ti=(T,l,d,v)=>{let b=T.transform;return{u_matrix:Fm(T,l,d,v),u_ratio:1/Dt(l,1,b.zoom),u_device_pixel_ratio:T.pixelRatio,u_units_to_pixels:[1/b.pixelsToGLUnits[0],1/b.pixelsToGLUnits[1]]}},ts=(T,l,d,v,b)=>n.e(ti(T,l,d,b),{u_image:0,u_image_height:v}),Ss=(T,l,d,v,b)=>{let M=T.transform,O=ka(l,M);return{u_matrix:Fm(T,l,d,b),u_texsize:l.imageAtlasTexture.size,u_ratio:1/Dt(l,1,M.zoom),u_device_pixel_ratio:T.pixelRatio,u_image:0,u_scale:[O,v.fromScale,v.toScale],u_fade:v.t,u_units_to_pixels:[1/M.pixelsToGLUnits[0],1/M.pixelsToGLUnits[1]]}},Bs=(T,l,d,v,b,M)=>{let O=T.lineAtlas,B=ka(l,T.transform),U=d.layout.get(\"line-cap\")===\"round\",W=O.getDash(v.from,U),Z=O.getDash(v.to,U),Q=W.width*b.fromScale,st=Z.width*b.toScale;return n.e(ti(T,l,d,M),{u_patternscale_a:[B/Q,-W.height/2],u_patternscale_b:[B/st,-Z.height/2],u_sdfgamma:O.width/(256*Math.min(Q,st)*T.pixelRatio)/2,u_image:0,u_tex_y_a:W.y,u_tex_y_b:Z.y,u_mix:b.t})};function ka(T,l){return 1/Dt(T,1,l.tileZoom)}function Fm(T,l,d,v){return T.translatePosMatrix(v?v.posMatrix:l.tileID.posMatrix,l,d.paint.get(\"line-translate\"),d.paint.get(\"line-translate-anchor\"))}let Mx=(T,l,d,v,b)=>{return{u_matrix:T,u_tl_parent:l,u_scale_parent:d,u_buffer_scale:1,u_fade_t:v.mix,u_opacity:v.opacity*b.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:b.paint.get(\"raster-brightness-min\"),u_brightness_high:b.paint.get(\"raster-brightness-max\"),u_saturation_factor:(O=b.paint.get(\"raster-saturation\"),O>0?1-1/(1.001-O):-O),u_contrast_factor:(M=b.paint.get(\"raster-contrast\"),M>0?1/(1-M):1+M),u_spin_weights:Ex(b.paint.get(\"raster-hue-rotate\"))};var M,O};function Ex(T){T*=Math.PI/180;let l=Math.sin(T),d=Math.cos(T);return[(2*d+1)/3,(-Math.sqrt(3)*l-d+1)/3,(Math.sqrt(3)*l-d+1)/3]}let Xg=(T,l,d,v,b,M,O,B,U,W)=>{let Z=b.transform;return{u_is_size_zoom_constant:+(T===\"constant\"||T===\"source\"),u_is_size_feature_constant:+(T===\"constant\"||T===\"camera\"),u_size_t:l?l.uSizeT:0,u_size:l?l.uSize:0,u_camera_to_center_distance:Z.cameraToCenterDistance,u_pitch:Z.pitch/360*2*Math.PI,u_rotate_symbol:+d,u_aspect_ratio:Z.width/Z.height,u_fade_change:b.options.fadeDuration?b.symbolFadeChange:1,u_matrix:M,u_label_plane_matrix:O,u_coord_matrix:B,u_is_text:+U,u_pitch_with_map:+v,u_texsize:W,u_texture:0}},Kg=(T,l,d,v,b,M,O,B,U,W,Z)=>{let Q=b.transform;return n.e(Xg(T,l,d,v,b,M,O,B,U,W),{u_gamma_scale:v?Math.cos(Q._pitch)*Q.cameraToCenterDistance:1,u_device_pixel_ratio:b.pixelRatio,u_is_halo:+Z})},Af=(T,l,d,v,b,M,O,B,U,W)=>n.e(Kg(T,l,d,v,b,M,O,B,!0,U,!0),{u_texsize_icon:W,u_texture_icon:1}),zm=(T,l,d)=>({u_matrix:T,u_opacity:l,u_color:d}),cl=(T,l,d,v,b,M)=>n.e(function(O,B,U,W){let Z=U.imageManager.getPattern(O.from.toString()),Q=U.imageManager.getPattern(O.to.toString()),{width:st,height:At}=U.imageManager.getPixelSize(),pt=Math.pow(2,W.tileID.overscaledZ),yt=W.tileSize*Math.pow(2,U.transform.tileZoom)/pt,dt=yt*(W.tileID.canonical.x+W.tileID.wrap*pt),Ft=yt*W.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Z.tl,u_pattern_br_a:Z.br,u_pattern_tl_b:Q.tl,u_pattern_br_b:Q.br,u_texsize:[st,At],u_mix:B.t,u_pattern_size_a:Z.displaySize,u_pattern_size_b:Q.displaySize,u_scale_a:B.fromScale,u_scale_b:B.toScale,u_tile_units_to_pixels:1/Dt(W,1,U.transform.tileZoom),u_pixel_coord_upper:[dt>>16,Ft>>16],u_pixel_coord_lower:[65535&dt,65535&Ft]}}(v,M,d,b),{u_matrix:T,u_opacity:l}),Nm={fillExtrusion:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_lightpos:new n.aP(T,l.u_lightpos),u_lightintensity:new n.aM(T,l.u_lightintensity),u_lightcolor:new n.aP(T,l.u_lightcolor),u_vertical_gradient:new n.aM(T,l.u_vertical_gradient),u_opacity:new n.aM(T,l.u_opacity)}),fillExtrusionPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_lightpos:new n.aP(T,l.u_lightpos),u_lightintensity:new n.aM(T,l.u_lightintensity),u_lightcolor:new n.aP(T,l.u_lightcolor),u_vertical_gradient:new n.aM(T,l.u_vertical_gradient),u_height_factor:new n.aM(T,l.u_height_factor),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade),u_opacity:new n.aM(T,l.u_opacity)}),fill:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix)}),fillPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),fillOutline:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world)}),fillOutlinePattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world),u_image:new n.aL(T,l.u_image),u_texsize:new n.aQ(T,l.u_texsize),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),circle:(T,l)=>({u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_scale_with_map:new n.aL(T,l.u_scale_with_map),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_extrude_scale:new n.aQ(T,l.u_extrude_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_matrix:new n.aN(T,l.u_matrix)}),collisionBox:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pixels_to_tile_units:new n.aM(T,l.u_pixels_to_tile_units),u_extrude_scale:new n.aQ(T,l.u_extrude_scale),u_overscale_factor:new n.aM(T,l.u_overscale_factor)}),collisionCircle:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_inv_matrix:new n.aN(T,l.u_inv_matrix),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_viewport_size:new n.aQ(T,l.u_viewport_size)}),debug:(T,l)=>({u_color:new n.aR(T,l.u_color),u_matrix:new n.aN(T,l.u_matrix),u_overlay:new n.aL(T,l.u_overlay),u_overlay_scale:new n.aM(T,l.u_overlay_scale)}),clippingMask:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix)}),heatmap:(T,l)=>({u_extrude_scale:new n.aM(T,l.u_extrude_scale),u_intensity:new n.aM(T,l.u_intensity),u_matrix:new n.aN(T,l.u_matrix)}),heatmapTexture:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_world:new n.aQ(T,l.u_world),u_image:new n.aL(T,l.u_image),u_color_ramp:new n.aL(T,l.u_color_ramp),u_opacity:new n.aM(T,l.u_opacity)}),hillshade:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_latrange:new n.aQ(T,l.u_latrange),u_light:new n.aQ(T,l.u_light),u_shadow:new n.aR(T,l.u_shadow),u_highlight:new n.aR(T,l.u_highlight),u_accent:new n.aR(T,l.u_accent)}),hillshadePrepare:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_image:new n.aL(T,l.u_image),u_dimension:new n.aQ(T,l.u_dimension),u_zoom:new n.aM(T,l.u_zoom),u_unpack:new n.aO(T,l.u_unpack)}),line:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels)}),lineGradient:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_image:new n.aL(T,l.u_image),u_image_height:new n.aM(T,l.u_image_height)}),linePattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texsize:new n.aQ(T,l.u_texsize),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_image:new n.aL(T,l.u_image),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_scale:new n.aP(T,l.u_scale),u_fade:new n.aM(T,l.u_fade)}),lineSDF:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ratio:new n.aM(T,l.u_ratio),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_units_to_pixels:new n.aQ(T,l.u_units_to_pixels),u_patternscale_a:new n.aQ(T,l.u_patternscale_a),u_patternscale_b:new n.aQ(T,l.u_patternscale_b),u_sdfgamma:new n.aM(T,l.u_sdfgamma),u_image:new n.aL(T,l.u_image),u_tex_y_a:new n.aM(T,l.u_tex_y_a),u_tex_y_b:new n.aM(T,l.u_tex_y_b),u_mix:new n.aM(T,l.u_mix)}),raster:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_tl_parent:new n.aQ(T,l.u_tl_parent),u_scale_parent:new n.aM(T,l.u_scale_parent),u_buffer_scale:new n.aM(T,l.u_buffer_scale),u_fade_t:new n.aM(T,l.u_fade_t),u_opacity:new n.aM(T,l.u_opacity),u_image0:new n.aL(T,l.u_image0),u_image1:new n.aL(T,l.u_image1),u_brightness_low:new n.aM(T,l.u_brightness_low),u_brightness_high:new n.aM(T,l.u_brightness_high),u_saturation_factor:new n.aM(T,l.u_saturation_factor),u_contrast_factor:new n.aM(T,l.u_contrast_factor),u_spin_weights:new n.aP(T,l.u_spin_weights)}),symbolIcon:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texture:new n.aL(T,l.u_texture)}),symbolSDF:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texture:new n.aL(T,l.u_texture),u_gamma_scale:new n.aM(T,l.u_gamma_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_is_halo:new n.aL(T,l.u_is_halo)}),symbolTextAndIcon:(T,l)=>({u_is_size_zoom_constant:new n.aL(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new n.aL(T,l.u_is_size_feature_constant),u_size_t:new n.aM(T,l.u_size_t),u_size:new n.aM(T,l.u_size),u_camera_to_center_distance:new n.aM(T,l.u_camera_to_center_distance),u_pitch:new n.aM(T,l.u_pitch),u_rotate_symbol:new n.aL(T,l.u_rotate_symbol),u_aspect_ratio:new n.aM(T,l.u_aspect_ratio),u_fade_change:new n.aM(T,l.u_fade_change),u_matrix:new n.aN(T,l.u_matrix),u_label_plane_matrix:new n.aN(T,l.u_label_plane_matrix),u_coord_matrix:new n.aN(T,l.u_coord_matrix),u_is_text:new n.aL(T,l.u_is_text),u_pitch_with_map:new n.aL(T,l.u_pitch_with_map),u_texsize:new n.aQ(T,l.u_texsize),u_texsize_icon:new n.aQ(T,l.u_texsize_icon),u_texture:new n.aL(T,l.u_texture),u_texture_icon:new n.aL(T,l.u_texture_icon),u_gamma_scale:new n.aM(T,l.u_gamma_scale),u_device_pixel_ratio:new n.aM(T,l.u_device_pixel_ratio),u_is_halo:new n.aL(T,l.u_is_halo)}),background:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_opacity:new n.aM(T,l.u_opacity),u_color:new n.aR(T,l.u_color)}),backgroundPattern:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_opacity:new n.aM(T,l.u_opacity),u_image:new n.aL(T,l.u_image),u_pattern_tl_a:new n.aQ(T,l.u_pattern_tl_a),u_pattern_br_a:new n.aQ(T,l.u_pattern_br_a),u_pattern_tl_b:new n.aQ(T,l.u_pattern_tl_b),u_pattern_br_b:new n.aQ(T,l.u_pattern_br_b),u_texsize:new n.aQ(T,l.u_texsize),u_mix:new n.aM(T,l.u_mix),u_pattern_size_a:new n.aQ(T,l.u_pattern_size_a),u_pattern_size_b:new n.aQ(T,l.u_pattern_size_b),u_scale_a:new n.aM(T,l.u_scale_a),u_scale_b:new n.aM(T,l.u_scale_b),u_pixel_coord_upper:new n.aQ(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new n.aQ(T,l.u_pixel_coord_lower),u_tile_units_to_pixels:new n.aM(T,l.u_tile_units_to_pixels)}),terrain:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texture:new n.aL(T,l.u_texture),u_ele_delta:new n.aM(T,l.u_ele_delta)}),terrainDepth:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_ele_delta:new n.aM(T,l.u_ele_delta)}),terrainCoords:(T,l)=>({u_matrix:new n.aN(T,l.u_matrix),u_texture:new n.aL(T,l.u_texture),u_terrain_coords_id:new n.aM(T,l.u_terrain_coords_id),u_ele_delta:new n.aM(T,l.u_ele_delta)})};class Um{constructor(l,d,v){this.context=l;let b=l.gl;this.buffer=b.createBuffer(),this.dynamicDraw=!!v,this.context.unbindVAO(),l.bindElementBuffer.set(this.buffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?b.DYNAMIC_DRAW:b.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(l){let d=this.context.gl;if(!this.dynamicDraw)throw new Error(\"Attempted to update data while not in dynamic mode.\");this.context.unbindVAO(),this.bind(),d.bufferSubData(d.ELEMENT_ARRAY_BUFFER,0,l.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}let Vp={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Vm{constructor(l,d,v,b){this.length=d.length,this.attributes=v,this.itemSize=d.bytesPerElement,this.dynamicDraw=b,this.context=l;let M=l.gl;this.buffer=M.createBuffer(),l.bindVertexBuffer.set(this.buffer),M.bufferData(M.ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?M.DYNAMIC_DRAW:M.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(l){if(l.length!==this.length)throw new Error(`Length of new data is ${l.length}, which doesn't match current length of ${this.length}`);let d=this.context.gl;this.bind(),d.bufferSubData(d.ARRAY_BUFFER,0,l.arrayBuffer)}enableAttributes(l,d){for(let v=0;v0){let xe=n.Z(),We=se;n.aU(xe,Qt.placementInvProjMatrix,T.transform.glCoordMatrix),n.aU(xe,xe,Qt.placementViewportMatrix),Z.push({circleArray:he,circleOffset:st,transform:We,invTransform:xe,coord:Bt}),Q+=he.length/4,st=Q}pe&&W.draw(B,U.LINES,ci.disabled,$e.disabled,T.colorModeForRenderPass(),It.disabled,ft(se,T.transform,Yt),T.style.map.terrain&&T.style.map.terrain.getTerrainData(Bt),d.id,pe.layoutVertexBuffer,pe.indexBuffer,pe.segments,null,T.transform.zoom,null,null,pe.collisionVertexBuffer)}if(!O||!Z.length)return;let At=T.useProgram(\"collisionCircle\"),pt=new n.aV;pt.resize(4*Q),pt._trim();let yt=0;for(let St of Z)for(let Bt=0;Bt=0&&(pt[dt.associatedIconIndex]={shiftedAnchor:Kr,angle:Me})}else ht(dt.numGlyphs,st)}if(W){At.clear();let yt=T.icon.placedSymbolArray;for(let dt=0;dtT.style.map.terrain.getElevation(pe,Ho,pn):null,us=d.layout.get(\"text-rotation-alignment\")===\"map\";Se(xe,pe.posMatrix,T,b,jr,jl,dt,W,us,On)}let gu=T.translatePosMatrix(pe.posMatrix,he,M,O),gh=Ft||b&&Qt||mu?Ym:jr,Ns=T.translatePosMatrix(jl,he,M,O,!0),Es=Me&&d.paint.get(b?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,yo;yo=Me?xe.iconsInText?Af(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,ei,cs):Kg(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,b,ei,!0):Xg(dr.kind,Jr,Wt,dt,T,gu,gh,Ns,b,ei);let _h={program:Vi,buffers:We,uniformValues:yo,atlasTexture:Rn,atlasTextureIcon:Dn,atlasInterpolation:$i,atlasInterpolationIcon:zs,isSDF:Me,hasHalo:Es};if(St&&xe.canOverlap){Bt=!0;let On=We.segments.get();for(let us of On)se.push({segments:new n.S([us]),sortKey:us.sortKey,state:_h,terrainData:Vr})}else se.push({segments:We.segments,sortKey:0,state:_h,terrainData:Vr})}Bt&&se.sort((pe,he)=>pe.sortKey-he.sortKey);for(let pe of se){let he=pe.state;if(st.activeTexture.set(At.TEXTURE0),he.atlasTexture.bind(he.atlasInterpolation,At.CLAMP_TO_EDGE),he.atlasTextureIcon&&(st.activeTexture.set(At.TEXTURE1),he.atlasTextureIcon&&he.atlasTextureIcon.bind(he.atlasInterpolationIcon,At.CLAMP_TO_EDGE)),he.isSDF){let xe=he.uniformValues;he.hasHalo&&(xe.u_is_halo=1,$m(he.buffers,pe.segments,d,T,he.program,Yt,Z,Q,xe,pe.terrainData)),xe.u_is_halo=0}$m(he.buffers,pe.segments,d,T,he.program,Yt,Z,Q,he.uniformValues,pe.terrainData)}}function $m(T,l,d,v,b,M,O,B,U,W){let Z=v.context;b.draw(Z,Z.gl.TRIANGLES,M,O,B,It.disabled,U,W,d.id,T.layoutVertexBuffer,T.indexBuffer,l,d.paint,v.transform.zoom,T.programConfigurations.get(d.id),T.dynamicLayoutVertexBuffer,T.opacityVertexBuffer)}function Td(T,l,d,v,b){if(!d||!v||!v.imageAtlas)return;let M=v.imageAtlas.patternPositions,O=M[d.to.toString()],B=M[d.from.toString()];if(!O&&B&&(O=B),!B&&O&&(B=O),!O||!B){let U=b.getPaintProperty(l);O=M[U],B=M[U]}O&&B&&T.setConstantPatternPositions(O,B)}function Md(T,l,d,v,b,M,O){let B=T.context.gl,U=\"fill-pattern\",W=d.paint.get(U),Z=W&&W.constantOr(1),Q=d.getCrossfadeParameters(),st,At,pt,yt,dt;O?(At=Z&&!d.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",st=B.LINES):(At=Z?\"fillPattern\":\"fill\",st=B.TRIANGLES);let Ft=W.constantOr(null);for(let Wt of v){let St=l.getTile(Wt);if(Z&&!St.patternsLoaded())continue;let Bt=St.getBucket(d);if(!Bt)continue;let Yt=Bt.programConfigurations.get(d.id),Qt=T.useProgram(At,Yt),se=T.style.map.terrain&&T.style.map.terrain.getTerrainData(Wt);Z&&(T.context.activeTexture.set(B.TEXTURE0),St.imageAtlasTexture.bind(B.LINEAR,B.CLAMP_TO_EDGE),Yt.updatePaintBuffers(Q)),Td(Yt,U,Ft,St,d);let pe=se?Wt:null,he=T.translatePosMatrix(pe?pe.posMatrix:Wt.posMatrix,St,d.paint.get(\"fill-translate\"),d.paint.get(\"fill-translate-anchor\"));if(O){yt=Bt.indexBuffer2,dt=Bt.segments2;let xe=[B.drawingBufferWidth,B.drawingBufferHeight];pt=At===\"fillOutlinePattern\"&&Z?yd(he,T,Q,St,xe):_d(he,xe)}else yt=Bt.indexBuffer,dt=Bt.segments,pt=Z?gd(he,T,Q,St):md(he);Qt.draw(T.context,st,b,T.stencilModeForClipping(Wt),M,It.disabled,pt,se,d.id,Bt.layoutVertexBuffer,yt,dt,d.paint,T.transform.zoom,Yt)}}function Ed(T,l,d,v,b,M,O){let B=T.context,U=B.gl,W=\"fill-extrusion-pattern\",Z=d.paint.get(W),Q=Z.constantOr(1),st=d.getCrossfadeParameters(),At=d.paint.get(\"fill-extrusion-opacity\"),pt=Z.constantOr(null);for(let yt of v){let dt=l.getTile(yt),Ft=dt.getBucket(d);if(!Ft)continue;let Wt=T.style.map.terrain&&T.style.map.terrain.getTerrainData(yt),St=Ft.programConfigurations.get(d.id),Bt=T.useProgram(Q?\"fillExtrusionPattern\":\"fillExtrusion\",St);Q&&(T.context.activeTexture.set(U.TEXTURE0),dt.imageAtlasTexture.bind(U.LINEAR,U.CLAMP_TO_EDGE),St.updatePaintBuffers(st)),Td(St,W,pt,dt,d);let Yt=T.translatePosMatrix(yt.posMatrix,dt,d.paint.get(\"fill-extrusion-translate\"),d.paint.get(\"fill-extrusion-translate-anchor\")),Qt=d.paint.get(\"fill-extrusion-vertical-gradient\"),se=Q?Ul(Yt,T,Qt,At,yt,st,dt):Up(Yt,T,Qt,At);Bt.draw(B,B.gl.TRIANGLES,b,M,O,It.backCCW,se,Wt,d.id,Ft.layoutVertexBuffer,Ft.indexBuffer,Ft.segments,d.paint,T.transform.zoom,St,T.style.map.terrain&&Ft.centroidVertexBuffer)}}function Px(T,l,d,v,b,M,O){let B=T.context,U=B.gl,W=d.fbo;if(!W)return;let Z=T.useProgram(\"hillshade\"),Q=T.style.map.terrain&&T.style.map.terrain.getTerrainData(l);B.activeTexture.set(U.TEXTURE0),U.bindTexture(U.TEXTURE_2D,W.colorAttachment.get()),Z.draw(B,U.TRIANGLES,b,M,O,It.disabled,((st,At,pt,yt)=>{let dt=pt.paint.get(\"hillshade-shadow-color\"),Ft=pt.paint.get(\"hillshade-highlight-color\"),Wt=pt.paint.get(\"hillshade-accent-color\"),St=pt.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);pt.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(St-=st.transform.angle);let Bt=!st.options.moving;return{u_matrix:yt?yt.posMatrix:st.transform.calculatePosMatrix(At.tileID.toUnwrapped(),Bt),u_image:0,u_latrange:qe(0,At.tileID),u_light:[pt.paint.get(\"hillshade-exaggeration\"),St],u_shadow:dt,u_highlight:Ft,u_accent:Wt}})(T,d,v,Q?l:null),Q,v.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments)}function Xm(T,l,d,v,b,M){let O=T.context,B=O.gl,U=l.dem;if(U&&U.data){let W=U.dim,Z=U.stride,Q=U.getPixels();if(O.activeTexture.set(B.TEXTURE1),O.pixelStoreUnpackPremultiplyAlpha.set(!1),l.demTexture=l.demTexture||T.getTileTexture(Z),l.demTexture){let At=l.demTexture;At.update(Q,{premultiply:!1}),At.bind(B.NEAREST,B.CLAMP_TO_EDGE)}else l.demTexture=new Zt(O,Q,B.RGBA,{premultiply:!1}),l.demTexture.bind(B.NEAREST,B.CLAMP_TO_EDGE);O.activeTexture.set(B.TEXTURE0);let st=l.fbo;if(!st){let At=new Zt(O,{width:W,height:W,data:null},B.RGBA);At.bind(B.LINEAR,B.CLAMP_TO_EDGE),st=l.fbo=O.createFramebuffer(W,W,!0,!1),st.colorAttachment.set(At.texture)}O.bindFramebuffer.set(st.framebuffer),O.viewport.set([0,0,W,W]),T.useProgram(\"hillshadePrepare\").draw(O,B.TRIANGLES,v,b,M,It.disabled,((At,pt)=>{let yt=pt.stride,dt=n.Z();return n.aS(dt,0,n.N,-n.N,0,0,1),n.$(dt,dt,[0,-n.N,0]),{u_matrix:dt,u_image:1,u_dimension:[yt,yt],u_zoom:At.overscaledZ,u_unpack:pt.getUnpackVector()}})(l.tileID,U),null,d.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments),l.needsHillshadePrepare=!1}}function e_(T,l,d,v,b,M){let O=v.paint.get(\"raster-fade-duration\");if(!M&&O>0){let B=n.h.now(),U=(B-T.timeAdded)/O,W=l?(B-l.timeAdded)/O:-1,Z=d.getSource(),Q=b.coveringZoomLevel({tileSize:Z.tileSize,roundZoom:Z.roundZoom}),st=!l||Math.abs(l.tileID.overscaledZ-Q)>Math.abs(T.tileID.overscaledZ-Q),At=st&&T.refreshedUponExpiration?1:n.ad(st?U:1-W,0,1);return T.refreshedUponExpiration&&U>=1&&(T.refreshedUponExpiration=!1),l?{opacity:1,mix:1-At}:{opacity:At,mix:0}}return{opacity:1,mix:0}}let r_=new n.aT(1,0,0,1),gf=new n.aT(0,1,0,1),Oa=new n.aT(0,0,1,1),jn=new n.aT(1,0,1,1),i_=new n.aT(0,1,1,1);function Pd(T,l,d,v){Yp(T,0,l+d/2,T.transform.width,d,v)}function Zp(T,l,d,v){Yp(T,l-d/2,0,d,T.transform.height,v)}function Yp(T,l,d,v,b,M){let O=T.context,B=O.gl;B.enable(B.SCISSOR_TEST),B.scissor(l*T.pixelRatio,d*T.pixelRatio,v*T.pixelRatio,b*T.pixelRatio),O.clear({color:M}),B.disable(B.SCISSOR_TEST)}function Km(T,l,d){let v=T.context,b=v.gl,M=d.posMatrix,O=T.useProgram(\"debug\"),B=ci.disabled,U=$e.disabled,W=T.colorModeForRenderPass(),Z=\"$debug\",Q=T.style.map.terrain&&T.style.map.terrain.getTerrainData(d);v.activeTexture.set(b.TEXTURE0);let st=l.getTileByID(d.key).latestRawTileData,At=Math.floor((st&&st.byteLength||0)/1024),pt=l.getTile(d).tileSize,yt=512/Math.min(pt,512)*(d.overscaledZ/T.transform.zoom)*.5,dt=d.canonical.toString();d.overscaledZ!==d.canonical.z&&(dt+=` => ${d.overscaledZ}`),function(Ft,Wt){Ft.initDebugOverlayCanvas();let St=Ft.debugOverlayCanvas,Bt=Ft.context.gl,Yt=Ft.debugOverlayCanvas.getContext(\"2d\");Yt.clearRect(0,0,St.width,St.height),Yt.shadowColor=\"white\",Yt.shadowBlur=2,Yt.lineWidth=1.5,Yt.strokeStyle=\"white\",Yt.textBaseline=\"top\",Yt.font=\"bold 36px Open Sans, sans-serif\",Yt.fillText(Wt,5,5),Yt.strokeText(Wt,5,5),Ft.debugOverlayTexture.update(St),Ft.debugOverlayTexture.bind(Bt.LINEAR,Bt.CLAMP_TO_EDGE)}(T,`${dt} ${At}kB`),O.draw(v,b.TRIANGLES,B,U,Qi.alphaBlended,It.disabled,Lt(M,n.aT.transparent,yt),null,Z,T.debugBuffer,T.quadTriangleIndexBuffer,T.debugSegments),O.draw(v,b.LINE_STRIP,B,U,W,It.disabled,Lt(M,n.aT.red),Q,Z,T.debugBuffer,T.tileBorderIndexBuffer,T.debugSegments)}function Pn(T,l,d){let v=T.context,b=v.gl,M=T.colorModeForRenderPass(),O=new ci(b.LEQUAL,ci.ReadWrite,T.depthRangeFor3D),B=T.useProgram(\"terrain\"),U=l.getTerrainMesh();v.bindFramebuffer.set(null),v.viewport.set([0,0,T.width,T.height]);for(let W of d){let Z=T.renderToTexture.getTexture(W),Q=l.getTerrainData(W.tileID);v.activeTexture.set(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,Z.texture);let st={u_matrix:T.transform.calculatePosMatrix(W.tileID.toUnwrapped()),u_texture:0,u_ele_delta:l.getMeshFrameDelta(T.transform.zoom)};B.draw(v,b.TRIANGLES,O,$e.disabled,M,It.backCCW,st,Q,\"terrain\",U.vertexBuffer,U.indexBuffer,U.segments)}}class oh{constructor(l,d){this.context=new kc(l),this.transform=d,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:n.Z(),renderTime:0},this.setup(),this.numSublayers=os.maxUnderzooming+os.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Lc}resize(l,d,v){if(this.width=Math.floor(l*v),this.height=Math.floor(d*v),this.pixelRatio=v,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let b of this.style._order)this.style._layers[b].resize()}setup(){let l=this.context,d=new n.a_;d.emplaceBack(0,0),d.emplaceBack(n.N,0),d.emplaceBack(0,n.N),d.emplaceBack(n.N,n.N),this.tileExtentBuffer=l.createVertexBuffer(d,mo.members),this.tileExtentSegments=n.S.simpleSegment(0,0,4,2);let v=new n.a_;v.emplaceBack(0,0),v.emplaceBack(n.N,0),v.emplaceBack(0,n.N),v.emplaceBack(n.N,n.N),this.debugBuffer=l.createVertexBuffer(v,mo.members),this.debugSegments=n.S.simpleSegment(0,0,4,5);let b=new n.V;b.emplaceBack(0,0,0,0),b.emplaceBack(n.N,0,n.N,0),b.emplaceBack(0,n.N,0,n.N),b.emplaceBack(n.N,n.N,n.N,n.N),this.rasterBoundsBuffer=l.createVertexBuffer(b,$n.members),this.rasterBoundsSegments=n.S.simpleSegment(0,0,4,2);let M=new n.a_;M.emplaceBack(0,0),M.emplaceBack(1,0),M.emplaceBack(0,1),M.emplaceBack(1,1),this.viewportBuffer=l.createVertexBuffer(M,mo.members),this.viewportSegments=n.S.simpleSegment(0,0,4,2);let O=new n.a$;O.emplaceBack(0),O.emplaceBack(1),O.emplaceBack(3),O.emplaceBack(2),O.emplaceBack(0),this.tileBorderIndexBuffer=l.createIndexBuffer(O);let B=new n.b0;B.emplaceBack(0,1,2),B.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=l.createIndexBuffer(B);let U=this.context.gl;this.stencilClearMode=new $e({func:U.ALWAYS,mask:0},0,255,U.ZERO,U.ZERO,U.ZERO)}clearStencil(){let l=this.context,d=l.gl;this.nextStencilID=1,this.currentStencilSource=void 0;let v=n.Z();n.aS(v,0,this.width,this.height,0,0,1),n.a0(v,v,[d.drawingBufferWidth,d.drawingBufferHeight,0]),this.useProgram(\"clippingMask\").draw(l,d.TRIANGLES,ci.disabled,this.stencilClearMode,Qi.disabled,It.disabled,$t(v),null,\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(l,d){if(this.currentStencilSource===l.source||!l.isTileClipped()||!d||!d.length)return;this.currentStencilSource=l.source;let v=this.context,b=v.gl;this.nextStencilID+d.length>256&&this.clearStencil(),v.setColorMode(Qi.disabled),v.setDepthMode(ci.disabled);let M=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let O of d){let B=this._tileClippingMaskIDs[O.key]=this.nextStencilID++,U=this.style.map.terrain&&this.style.map.terrain.getTerrainData(O);M.draw(v,b.TRIANGLES,ci.disabled,new $e({func:b.ALWAYS,mask:0},B,255,b.KEEP,b.KEEP,b.REPLACE),Qi.disabled,It.disabled,$t(O.posMatrix),U,\"$clipping\",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let l=this.nextStencilID++,d=this.context.gl;return new $e({func:d.NOTEQUAL,mask:255},l,255,d.KEEP,d.KEEP,d.REPLACE)}stencilModeForClipping(l){let d=this.context.gl;return new $e({func:d.EQUAL,mask:255},this._tileClippingMaskIDs[l.key],0,d.KEEP,d.KEEP,d.REPLACE)}stencilConfigForOverlap(l){let d=this.context.gl,v=l.sort((O,B)=>B.overscaledZ-O.overscaledZ),b=v[v.length-1].overscaledZ,M=v[0].overscaledZ-b+1;if(M>1){this.currentStencilSource=void 0,this.nextStencilID+M>256&&this.clearStencil();let O={};for(let B=0;B=0;this.currentLayer--){let U=this.style._layers[v[this.currentLayer]],W=b[U.source],Z=M[U.source];this._renderTileClippingMasks(U,Z),this.renderLayer(this,W,U,Z)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerdt.source&&!dt.isHidden(Z)?[W.sourceCaches[dt.source]]:[]),At=st.filter(dt=>dt.getSource().type===\"vector\"),pt=st.filter(dt=>dt.getSource().type!==\"vector\"),yt=dt=>{(!Q||Q.getSource().maxzoomyt(dt)),Q||pt.forEach(dt=>yt(dt)),Q}(this.style,this.transform.zoom);U&&function(W,Z,Q){for(let st=0;stAt.style.map.terrain.getElevation(Qt,dr,Xe):null)}}}(U,M,B,O,B.layout.get(\"text-rotation-alignment\"),B.layout.get(\"text-pitch-alignment\"),W),B.paint.get(\"icon-opacity\").constantOr(1)!==0&&wt(M,O,B,U,!1,B.paint.get(\"icon-translate\"),B.paint.get(\"icon-translate-anchor\"),B.layout.get(\"icon-rotation-alignment\"),B.layout.get(\"icon-pitch-alignment\"),B.layout.get(\"icon-keep-upright\"),Z,Q),B.paint.get(\"text-opacity\").constantOr(1)!==0&&wt(M,O,B,U,!0,B.paint.get(\"text-translate\"),B.paint.get(\"text-translate-anchor\"),B.layout.get(\"text-rotation-alignment\"),B.layout.get(\"text-pitch-alignment\"),B.layout.get(\"text-keep-upright\"),Z,Q),O.map.showCollisionBoxes&&(Zm(M,O,B,U,B.paint.get(\"text-translate\"),B.paint.get(\"text-translate-anchor\"),!0),Zm(M,O,B,U,B.paint.get(\"icon-translate\"),B.paint.get(\"icon-translate-anchor\"),!1))})(l,d,v,b,this.style.placement.variableOffsets);break;case\"circle\":(function(M,O,B,U){if(M.renderPass!==\"translucent\")return;let W=B.paint.get(\"circle-opacity\"),Z=B.paint.get(\"circle-stroke-width\"),Q=B.paint.get(\"circle-stroke-opacity\"),st=!B.layout.get(\"circle-sort-key\").isConstant();if(W.constantOr(1)===0&&(Z.constantOr(1)===0||Q.constantOr(1)===0))return;let At=M.context,pt=At.gl,yt=M.depthModeForSublayer(0,ci.ReadOnly),dt=$e.disabled,Ft=M.colorModeForRenderPass(),Wt=[];for(let St=0;StSt.sortKey-Bt.sortKey);for(let St of Wt){let{programConfiguration:Bt,program:Yt,layoutVertexBuffer:Qt,indexBuffer:se,uniformValues:pe,terrainData:he}=St.state;Yt.draw(At,pt.TRIANGLES,yt,dt,Ft,It.disabled,pe,he,B.id,Qt,se,St.segments,B.paint,M.transform.zoom,Bt)}})(l,d,v,b);break;case\"heatmap\":(function(M,O,B,U){if(B.paint.get(\"heatmap-opacity\")!==0)if(M.renderPass===\"offscreen\"){let W=M.context,Z=W.gl,Q=$e.disabled,st=new Qi([Z.ONE,Z.ONE],n.aT.transparent,[!0,!0,!0,!0]);(function(At,pt,yt){let dt=At.gl;At.activeTexture.set(dt.TEXTURE1),At.viewport.set([0,0,pt.width/4,pt.height/4]);let Ft=yt.heatmapFbo;if(Ft)dt.bindTexture(dt.TEXTURE_2D,Ft.colorAttachment.get()),At.bindFramebuffer.set(Ft.framebuffer);else{let Wt=dt.createTexture();dt.bindTexture(dt.TEXTURE_2D,Wt),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_WRAP_S,dt.CLAMP_TO_EDGE),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_WRAP_T,dt.CLAMP_TO_EDGE),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_MIN_FILTER,dt.LINEAR),dt.texParameteri(dt.TEXTURE_2D,dt.TEXTURE_MAG_FILTER,dt.LINEAR),Ft=yt.heatmapFbo=At.createFramebuffer(pt.width/4,pt.height/4,!1,!1),function(St,Bt,Yt,Qt){var se,pe;let he=St.gl,xe=(se=St.HALF_FLOAT)!==null&&se!==void 0?se:he.UNSIGNED_BYTE,We=(pe=St.RGBA16F)!==null&&pe!==void 0?pe:he.RGBA;he.texImage2D(he.TEXTURE_2D,0,We,Bt.width/4,Bt.height/4,0,he.RGBA,xe,null),Qt.colorAttachment.set(Yt)}(At,pt,Wt,Ft)}})(W,M,B),W.clear({color:n.aT.transparent});for(let At=0;At{let St=n.Z();n.aS(St,0,yt.width,yt.height,0,0,1);let Bt=yt.context.gl;return{u_matrix:St,u_world:[Bt.drawingBufferWidth,Bt.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:dt.paint.get(\"heatmap-opacity\")}})(W,Z),null,Z.id,W.viewportBuffer,W.quadTriangleIndexBuffer,W.viewportSegments,Z.paint,W.transform.zoom)}(M,B))})(l,d,v,b);break;case\"line\":(function(M,O,B,U){if(M.renderPass!==\"translucent\")return;let W=B.paint.get(\"line-opacity\"),Z=B.paint.get(\"line-width\");if(W.constantOr(1)===0||Z.constantOr(1)===0)return;let Q=M.depthModeForSublayer(0,ci.ReadOnly),st=M.colorModeForRenderPass(),At=B.paint.get(\"line-dasharray\"),pt=B.paint.get(\"line-pattern\"),yt=pt.constantOr(1),dt=B.paint.get(\"line-gradient\"),Ft=B.getCrossfadeParameters(),Wt=yt?\"linePattern\":At?\"lineSDF\":dt?\"lineGradient\":\"line\",St=M.context,Bt=St.gl,Yt=!0;for(let Qt of U){let se=O.getTile(Qt);if(yt&&!se.patternsLoaded())continue;let pe=se.getBucket(B);if(!pe)continue;let he=pe.programConfigurations.get(B.id),xe=M.context.program.get(),We=M.useProgram(Wt,he),Kr=Yt||We.program!==xe,Me=M.style.map.terrain&&M.style.map.terrain.getTerrainData(Qt),dr=pt.constantOr(null);if(dr&&se.imageAtlas){let Jr=se.imageAtlas,Vr=Jr.patternPositions[dr.to.toString()],ei=Jr.patternPositions[dr.from.toString()];Vr&&ei&&he.setConstantPatternPositions(Vr,ei)}let Xe=Me?Qt:null,Vi=yt?Ss(M,se,B,Ft,Xe):At?Bs(M,se,B,At,Ft,Xe):dt?ts(M,se,B,pe.lineClipsArray.length,Xe):ti(M,se,B,Xe);if(yt)St.activeTexture.set(Bt.TEXTURE0),se.imageAtlasTexture.bind(Bt.LINEAR,Bt.CLAMP_TO_EDGE),he.updatePaintBuffers(Ft);else if(At&&(Kr||M.lineAtlas.dirty))St.activeTexture.set(Bt.TEXTURE0),M.lineAtlas.bind(St);else if(dt){let Jr=pe.gradients[B.id],Vr=Jr.texture;if(B.gradientVersion!==Jr.version){let ei=256;if(B.stepInterpolant){let Rn=O.getSource().maxzoom,$i=Qt.canonical.z===Rn?Math.ceil(1<0?d.pop():null}isPatternMissing(l){if(!l)return!1;if(!l.from||!l.to)return!0;let d=this.imageManager.getPattern(l.from.toString()),v=this.imageManager.getPattern(l.to.toString());return!d||!v}useProgram(l,d){this.cache=this.cache||{};let v=l+(d?d.cacheKey:\"\")+(this._showOverdrawInspector?\"/overdraw\":\"\")+(this.style.map.terrain?\"/terrain\":\"\");return this.cache[v]||(this.cache[v]=new hu(this.context,Yi[l],d,Nm[l],this._showOverdrawInspector,this.style.map.terrain)),this.cache[v]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let l=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(l.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement(\"canvas\"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Zt(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){let{drawingBufferWidth:l,drawingBufferHeight:d}=this.context.gl;return this.width!==l||this.height!==d}}class fi{constructor(l,d){this.points=l,this.planes=d}static fromInvProjectionMatrix(l,d,v){let b=Math.pow(2,v),M=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(B=>{let U=1/(B=n.ag([],B,l))[3]/d*b;return n.b3(B,B,[U,U,1/B[3],U])}),O=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(B=>{let U=function(st,At){var pt=At[0],yt=At[1],dt=At[2],Ft=pt*pt+yt*yt+dt*dt;return Ft>0&&(Ft=1/Math.sqrt(Ft)),st[0]=At[0]*Ft,st[1]=At[1]*Ft,st[2]=At[2]*Ft,st}([],function(st,At,pt){var yt=At[0],dt=At[1],Ft=At[2],Wt=pt[0],St=pt[1],Bt=pt[2];return st[0]=dt*Bt-Ft*St,st[1]=Ft*Wt-yt*Bt,st[2]=yt*St-dt*Wt,st}([],ut([],M[B[0]],M[B[1]]),ut([],M[B[2]],M[B[1]]))),W=-((Z=U)[0]*(Q=M[B[1]])[0]+Z[1]*Q[1]+Z[2]*Q[2]);var Z,Q;return U.concat(W)});return new fi(M,O)}}class du{constructor(l,d){this.min=l,this.max=d,this.center=function(v,b,M){return v[0]=.5*b[0],v[1]=.5*b[1],v[2]=.5*b[2],v}([],function(v,b,M){return v[0]=b[0]+M[0],v[1]=b[1]+M[1],v[2]=b[2]+M[2],v}([],this.min,this.max))}quadrant(l){let d=[l%2==0,l<2],v=K(this.min),b=K(this.max);for(let M=0;M=0&&O++;if(O===0)return 0;O!==d.length&&(v=!1)}if(v)return 2;for(let b=0;b<3;b++){let M=Number.MAX_VALUE,O=-Number.MAX_VALUE;for(let B=0;Bthis.max[b]-this.min[b])return 0}return 1}}class _f{constructor(l=0,d=0,v=0,b=0){if(isNaN(l)||l<0||isNaN(d)||d<0||isNaN(v)||v<0||isNaN(b)||b<0)throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");this.top=l,this.bottom=d,this.left=v,this.right=b}interpolate(l,d,v){return d.top!=null&&l.top!=null&&(this.top=n.B.number(l.top,d.top,v)),d.bottom!=null&&l.bottom!=null&&(this.bottom=n.B.number(l.bottom,d.bottom,v)),d.left!=null&&l.left!=null&&(this.left=n.B.number(l.left,d.left,v)),d.right!=null&&l.right!=null&&(this.right=n.B.number(l.right,d.right,v)),this}getCenter(l,d){let v=n.ad((this.left+l-this.right)/2,0,l),b=n.ad((this.top+d-this.bottom)/2,0,d);return new n.P(v,b)}equals(l){return this.top===l.top&&this.bottom===l.bottom&&this.left===l.left&&this.right===l.right}clone(){return new _f(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class Qp{constructor(l,d,v,b,M){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=M===void 0||!!M,this._minZoom=l||0,this._maxZoom=d||22,this._minPitch=v??0,this._maxPitch=b??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new n.L(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new _f,this._posMatrixCache={},this._alignedPosMatrixCache={},this._minEleveationForCurrentTile=0}clone(){let l=new Qp(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return l.apply(this),l}apply(l){this.tileSize=l.tileSize,this.latRange=l.latRange,this.width=l.width,this.height=l.height,this._center=l._center,this._elevation=l._elevation,this._minEleveationForCurrentTile=l._minEleveationForCurrentTile,this.zoom=l.zoom,this.angle=l.angle,this._fov=l._fov,this._pitch=l._pitch,this._unmodified=l._unmodified,this._edgeInsets=l._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(l){this._minZoom!==l&&(this._minZoom=l,this.zoom=Math.max(this.zoom,l))}get maxZoom(){return this._maxZoom}set maxZoom(l){this._maxZoom!==l&&(this._maxZoom=l,this.zoom=Math.min(this.zoom,l))}get minPitch(){return this._minPitch}set minPitch(l){this._minPitch!==l&&(this._minPitch=l,this.pitch=Math.max(this.pitch,l))}get maxPitch(){return this._maxPitch}set maxPitch(l){this._maxPitch!==l&&(this._maxPitch=l,this.pitch=Math.min(this.pitch,l))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(l){l===void 0?l=!0:l===null&&(l=!1),this._renderWorldCopies=l}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new n.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(l){let d=-n.b5(l,-180,180)*Math.PI/180;this.angle!==d&&(this._unmodified=!1,this.angle=d,this._calcMatrices(),this.rotationMatrix=function(){var v=new n.A(4);return n.A!=Float32Array&&(v[1]=0,v[2]=0),v[0]=1,v[3]=1,v}(),function(v,b,M){var O=b[0],B=b[1],U=b[2],W=b[3],Z=Math.sin(M),Q=Math.cos(M);v[0]=O*Q+U*Z,v[1]=B*Q+W*Z,v[2]=O*-Z+U*Q,v[3]=B*-Z+W*Q}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(l){let d=n.ad(l,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==d&&(this._unmodified=!1,this._pitch=d,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(l){l=Math.max(.01,Math.min(60,l)),this._fov!==l&&(this._unmodified=!1,this._fov=l/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(l){let d=Math.min(Math.max(l,this.minZoom),this.maxZoom);this._zoom!==d&&(this._unmodified=!1,this._zoom=d,this.tileZoom=Math.max(0,Math.floor(d)),this.scale=this.zoomScale(d),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(l){l.lat===this._center.lat&&l.lng===this._center.lng||(this._unmodified=!1,this._center=l,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(l){l!==this._elevation&&(this._elevation=l,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(l){this._edgeInsets.equals(l)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,l,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(l){return this._edgeInsets.equals(l)}interpolatePadding(l,d,v){this._unmodified=!1,this._edgeInsets.interpolate(l,d,v),this._constrain(),this._calcMatrices()}coveringZoomLevel(l){let d=(l.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/l.tileSize));return Math.max(0,d)}getVisibleUnwrappedCoordinates(l){let d=[new n.b6(0,l)];if(this._renderWorldCopies){let v=this.pointCoordinate(new n.P(0,0)),b=this.pointCoordinate(new n.P(this.width,0)),M=this.pointCoordinate(new n.P(this.width,this.height)),O=this.pointCoordinate(new n.P(0,this.height)),B=Math.floor(Math.min(v.x,b.x,M.x,O.x)),U=Math.floor(Math.max(v.x,b.x,M.x,O.x)),W=1;for(let Z=B-W;Z<=U+W;Z++)Z!==0&&d.push(new n.b6(Z,l))}return d}coveringTiles(l){var d,v;let b=this.coveringZoomLevel(l),M=b;if(l.minzoom!==void 0&&bl.maxzoom&&(b=l.maxzoom);let O=this.pointCoordinate(this.getCameraPoint()),B=n.U.fromLngLat(this.center),U=Math.pow(2,b),W=[U*O.x,U*O.y,0],Z=[U*B.x,U*B.y,0],Q=fi.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,b),st=l.minzoom||0;!l.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(st=b);let At=l.terrain?2/Math.min(this.tileSize,l.tileSize)*this.tileSize:3,pt=St=>({aabb:new du([St*U,0,0],[(St+1)*U,U,0]),zoom:0,x:0,y:0,wrap:St,fullyVisible:!1}),yt=[],dt=[],Ft=b,Wt=l.reparseOverscaled?M:b;if(this._renderWorldCopies)for(let St=1;St<=3;St++)yt.push(pt(-St)),yt.push(pt(St));for(yt.push(pt(0));yt.length>0;){let St=yt.pop(),Bt=St.x,Yt=St.y,Qt=St.fullyVisible;if(!Qt){let We=St.aabb.intersects(Q);if(We===0)continue;Qt=We===2}let se=l.terrain?W:Z,pe=St.aabb.distanceX(se),he=St.aabb.distanceY(se),xe=Math.max(Math.abs(pe),Math.abs(he));if(St.zoom===Ft||xe>At+(1<=st){let We=Ft-St.zoom,Kr=W[0]-.5-(Bt<>1),dr=St.zoom+1,Xe=St.aabb.quadrant(We);if(l.terrain){let Vi=new n.O(dr,St.wrap,dr,Kr,Me),Jr=l.terrain.getMinMaxElevation(Vi),Vr=(d=Jr.minElevation)!==null&&d!==void 0?d:this.elevation,ei=(v=Jr.maxElevation)!==null&&v!==void 0?v:this.elevation;Xe=new du([Xe.min[0],Xe.min[1],Vr],[Xe.max[0],Xe.max[1],ei])}yt.push({aabb:Xe,zoom:dr,x:Kr,y:Me,wrap:St.wrap,fullyVisible:Qt})}}return dt.sort((St,Bt)=>St.distanceSq-Bt.distanceSq).map(St=>St.tileID)}resize(l,d){this.width=l,this.height=d,this.pixelsToGLUnits=[2/l,-2/d],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(l){return Math.pow(2,l)}scaleZoom(l){return Math.log(l)/Math.LN2}project(l){let d=n.ad(l.lat,-this.maxValidLatitude,this.maxValidLatitude);return new n.P(n.G(l.lng)*this.worldSize,n.H(d)*this.worldSize)}unproject(l){return new n.U(l.x/this.worldSize,l.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(l){let d=this.pointLocation(this.centerPoint,l),v=l.getElevationForLngLatZoom(d,this.tileZoom);if(!(this.elevation-v))return;let b=this.getCameraPosition(),M=n.U.fromLngLat(b.lngLat,b.altitude),O=n.U.fromLngLat(d,v),B=M.x-O.x,U=M.y-O.y,W=M.z-O.z,Z=Math.sqrt(B*B+U*U+W*W),Q=this.scaleZoom(this.cameraToCenterDistance/Z/this.tileSize);this._elevation=v,this._center=d,this.zoom=Q}setLocationAtPoint(l,d){let v=this.pointCoordinate(d),b=this.pointCoordinate(this.centerPoint),M=this.locationCoordinate(l),O=new n.U(M.x-(v.x-b.x),M.y-(v.y-b.y));this.center=this.coordinateLocation(O),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(l,d){return d?this.coordinatePoint(this.locationCoordinate(l),d.getElevationForLngLatZoom(l,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(l))}pointLocation(l,d){return this.coordinateLocation(this.pointCoordinate(l,d))}locationCoordinate(l){return n.U.fromLngLat(l)}coordinateLocation(l){return l&&l.toLngLat()}pointCoordinate(l,d){if(d){let st=d.pointCoordinate(l);if(st!=null)return st}let v=[l.x,l.y,0,1],b=[l.x,l.y,1,1];n.ag(v,v,this.pixelMatrixInverse),n.ag(b,b,this.pixelMatrixInverse);let M=v[3],O=b[3],B=v[1]/M,U=b[1]/O,W=v[2]/M,Z=b[2]/O,Q=W===Z?0:(0-W)/(Z-W);return new n.U(n.B.number(v[0]/M,b[0]/O,Q)/this.worldSize,n.B.number(B,U,Q)/this.worldSize)}coordinatePoint(l,d=0,v=this.pixelMatrix){let b=[l.x*this.worldSize,l.y*this.worldSize,d,1];return n.ag(b,b,v),new n.P(b[0]/b[3],b[1]/b[3])}getBounds(){let l=Math.max(0,this.height/2-this.getHorizon());return new wi().extend(this.pointLocation(new n.P(0,l))).extend(this.pointLocation(new n.P(this.width,l))).extend(this.pointLocation(new n.P(this.width,this.height))).extend(this.pointLocation(new n.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new wi([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(l){l?(this.lngRange=[l.getWest(),l.getEast()],this.latRange=[l.getSouth(),l.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])}calculatePosMatrix(l,d=!1){let v=l.key,b=d?this._alignedPosMatrixCache:this._posMatrixCache;if(b[v])return b[v];let M=l.canonical,O=this.worldSize/this.zoomScale(M.z),B=M.x+Math.pow(2,M.z)*l.wrap,U=n.ao(new Float64Array(16));return n.$(U,U,[B*O,M.y*O,0]),n.a0(U,U,[O/n.N,O/n.N,1]),n.a1(U,d?this.alignedProjMatrix:this.projMatrix,U),b[v]=new Float32Array(U),b[v]}customLayerMatrix(){return this.mercatorMatrix.slice()}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let l,d,v,b,M=-90,O=90,B=-180,U=180,W=this.size,Z=this._unmodified;if(this.latRange){let At=this.latRange;M=n.H(At[1])*this.worldSize,O=n.H(At[0])*this.worldSize,l=O-MO&&(b=O-pt)}if(this.lngRange){let At=(B+U)/2,pt=n.b5(Q.x,At-this.worldSize/2,At+this.worldSize/2),yt=W.x/2;pt-ytU&&(v=U-yt)}v===void 0&&b===void 0||(this.center=this.unproject(new n.P(v!==void 0?v:Q.x,b!==void 0?b:Q.y)).wrap()),this._unmodified=Z,this._constraining=!1}_calcMatrices(){if(!this.height)return;let l=this.centerOffset,d=this.point.x,v=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=n.b7(1,this.center.lat)*this.worldSize;let b=n.ao(new Float64Array(16));n.a0(b,b,[this.width/2,-this.height/2,1]),n.$(b,b,[1,-1,0]),this.labelPlaneMatrix=b,b=n.ao(new Float64Array(16)),n.a0(b,b,[1,-1,1]),n.$(b,b,[-1,-1,0]),n.a0(b,b,[2/this.width,2/this.height,1]),this.glCoordMatrix=b;let M=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),O=Math.min(this.elevation,this._minEleveationForCurrentTile),B=M-O*this._pixelPerMeter/Math.cos(this._pitch),U=O<0?B:M,W=Math.PI/2+this._pitch,Z=this._fov*(.5+l.y/this.height),Q=Math.sin(Z)*U/Math.sin(n.ad(Math.PI-W-Z,.01,Math.PI-.01)),st=this.getHorizon(),At=2*Math.atan(st/this.cameraToCenterDistance)*(.5+l.y/(2*st)),pt=Math.sin(At)*U/Math.sin(n.ad(Math.PI-W-At,.01,Math.PI-.01)),yt=Math.min(Q,pt),dt=1.01*(Math.cos(Math.PI/2-this._pitch)*yt+U),Ft=this.height/50;b=new Float64Array(16),n.b8(b,this._fov,this.width/this.height,Ft,dt),b[8]=2*-l.x/this.width,b[9]=2*l.y/this.height,n.a0(b,b,[1,-1,1]),n.$(b,b,[0,0,-this.cameraToCenterDistance]),n.b9(b,b,this._pitch),n.ae(b,b,this.angle),n.$(b,b,[-d,-v,0]),this.mercatorMatrix=n.a0([],b,[this.worldSize,this.worldSize,this.worldSize]),n.a0(b,b,[1,1,this._pixelPerMeter]),this.pixelMatrix=n.a1(new Float64Array(16),this.labelPlaneMatrix,b),n.$(b,b,[0,0,-this.elevation]),this.projMatrix=b,this.invProjMatrix=n.as([],b),this.pixelMatrix3D=n.a1(new Float64Array(16),this.labelPlaneMatrix,b);let Wt=this.width%2/2,St=this.height%2/2,Bt=Math.cos(this.angle),Yt=Math.sin(this.angle),Qt=d-Math.round(d)+Bt*Wt+Yt*St,se=v-Math.round(v)+Bt*St+Yt*Wt,pe=new Float64Array(b);if(n.$(pe,pe,[Qt>.5?Qt-1:Qt,se>.5?se-1:se,0]),this.alignedProjMatrix=pe,b=n.as(new Float64Array(16),this.pixelMatrix),!b)throw new Error(\"failed to invert matrix\");this.pixelMatrixInverse=b,this._posMatrixCache={},this._alignedPosMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;let l=this.pointCoordinate(new n.P(0,0)),d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.ag(d,d,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){let l=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new n.P(0,l))}getCameraQueryGeometry(l){let d=this.getCameraPoint();if(l.length===1)return[l[0],d];{let v=d.x,b=d.y,M=d.x,O=d.y;for(let B of l)v=Math.min(v,B.x),b=Math.min(b,B.y),M=Math.max(M,B.x),O=Math.max(O,B.y);return[new n.P(v,b),new n.P(M,b),new n.P(M,O),new n.P(v,O),new n.P(v,b)]}}}function ah(T,l){let d,v=!1,b=null,M=null,O=()=>{b=null,v&&(T.apply(M,d),b=setTimeout(O,l),v=!1)};return(...B)=>(v=!0,M=this,d=B,b||O(),b)}class Id{constructor(l){this._getCurrentHash=()=>{let d=window.location.hash.replace(\"#\",\"\");if(this._hashName){let v;return d.split(\"&\").map(b=>b.split(\"=\")).forEach(b=>{b[0]===this._hashName&&(v=b)}),(v&&v[1]||\"\").split(\"/\")}return d.split(\"/\")},this._onHashChange=()=>{let d=this._getCurrentHash();if(d.length>=3&&!d.some(v=>isNaN(v))){let v=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(d[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+d[2],+d[1]],zoom:+d[0],bearing:v,pitch:+(d[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{let d=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,d)}catch{}},this._updateHash=ah(this._updateHashUnthrottled,300),this._hashName=l&&encodeURIComponent(l)}addTo(l){return this._map=l,addEventListener(\"hashchange\",this._onHashChange,!1),this._map.on(\"moveend\",this._updateHash),this}remove(){return removeEventListener(\"hashchange\",this._onHashChange,!1),this._map.off(\"moveend\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(l){let d=this._map.getCenter(),v=Math.round(100*this._map.getZoom())/100,b=Math.ceil((v*Math.LN2+Math.log(512/360/.5))/Math.LN10),M=Math.pow(10,b),O=Math.round(d.lng*M)/M,B=Math.round(d.lat*M)/M,U=this._map.getBearing(),W=this._map.getPitch(),Z=\"\";if(Z+=l?`/${O}/${B}/${v}`:`${v}/${B}/${O}`,(U||W)&&(Z+=\"/\"+Math.round(10*U)/10),W&&(Z+=`/${Math.round(W)}`),this._hashName){let Q=this._hashName,st=!1,At=window.location.hash.slice(1).split(\"&\").map(pt=>{let yt=pt.split(\"=\")[0];return yt===Q?(st=!0,`${yt}=${Z}`):pt}).filter(pt=>pt);return st||At.push(`${Q}=${Z}`),`#${At.join(\"&\")}`}return`#${Z}`}}let lh={linearity:.3,easing:n.ba(0,0,.3,1)},$p=n.e({deceleration:2500,maxSpeed:1400},lh),Xp=n.e({deceleration:20,maxSpeed:1400},lh),n_=n.e({deceleration:1e3,maxSpeed:360},lh),s_=n.e({deceleration:1e3,maxSpeed:90},lh);class Jm{constructor(l){this._map=l,this.clear()}clear(){this._inertiaBuffer=[]}record(l){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:n.h.now(),settings:l})}_drainInertiaBuffer(){let l=this._inertiaBuffer,d=n.h.now();for(;l.length>0&&d-l[0].time>160;)l.shift()}_onMoveEnd(l){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let d={zoom:0,bearing:0,pitch:0,pan:new n.P(0,0),pinchAround:void 0,around:void 0};for(let{settings:M}of this._inertiaBuffer)d.zoom+=M.zoomDelta||0,d.bearing+=M.bearingDelta||0,d.pitch+=M.pitchDelta||0,M.panDelta&&d.pan._add(M.panDelta),M.around&&(d.around=M.around),M.pinchAround&&(d.pinchAround=M.pinchAround);let v=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,b={};if(d.pan.mag()){let M=ch(d.pan.mag(),v,n.e({},$p,l||{}));b.offset=d.pan.mult(M.amount/d.pan.mag()),b.center=this._map.transform.center,hl(b,M)}if(d.zoom){let M=ch(d.zoom,v,Xp);b.zoom=this._map.transform.zoom+M.amount,hl(b,M)}if(d.bearing){let M=ch(d.bearing,v,n_);b.bearing=this._map.transform.bearing+n.ad(M.amount,-179,179),hl(b,M)}if(d.pitch){let M=ch(d.pitch,v,s_);b.pitch=this._map.transform.pitch+M.amount,hl(b,M)}if(b.zoom||b.bearing){let M=d.pinchAround===void 0?d.around:d.pinchAround;b.around=M?this._map.unproject(M):this._map.getCenter()}return this.clear(),n.e(b,{noMoveStart:!0})}}function hl(T,l){(!T.duration||T.durationd.unproject(U)),B=M.reduce((U,W,Z,Q)=>U.add(W.div(Q.length)),new n.P(0,0));super(l,{points:M,point:B,lngLats:O,lngLat:d.unproject(B),originalEvent:v}),this._defaultPrevented=!1}}class o_ extends n.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(l,d,v){super(l,{originalEvent:v}),this._defaultPrevented=!1}}class Fs{constructor(l,d){this._map=l,this._clickTolerance=d.clickTolerance}reset(){delete this._mousedownPos}wheel(l){return this._firePreventable(new o_(l.type,this._map,l))}mousedown(l,d){return this._mousedownPos=d,this._firePreventable(new la(l.type,this._map,l))}mouseup(l){this._map.fire(new la(l.type,this._map,l))}click(l,d){this._mousedownPos&&this._mousedownPos.dist(d)>=this._clickTolerance||this._map.fire(new la(l.type,this._map,l))}dblclick(l){return this._firePreventable(new la(l.type,this._map,l))}mouseover(l){this._map.fire(new la(l.type,this._map,l))}mouseout(l){this._map.fire(new la(l.type,this._map,l))}touchstart(l){return this._firePreventable(new Cd(l.type,this._map,l))}touchmove(l){this._map.fire(new Cd(l.type,this._map,l))}touchend(l){this._map.fire(new Cd(l.type,this._map,l))}touchcancel(l){this._map.fire(new Cd(l.type,this._map,l))}_firePreventable(l){if(this._map.fire(l),l.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class pu{constructor(l){this._map=l}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(l){this._map.fire(new la(l.type,this._map,l))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new la(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(l){this._delayContextMenu?this._contextMenuEvent=l:this._ignoreContextMenu||this._map.fire(new la(l.type,this._map,l)),this._map.listens(\"contextmenu\")&&l.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class In{constructor(l){this._map=l}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(l){return this.transform.pointLocation(n.P.convert(l),this._map.terrain)}}class Kp{constructor(l,d){this._map=l,this._tr=new In(l),this._el=l.getCanvasContainer(),this._container=l.getContainer(),this._clickTolerance=d.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(l,d){this.isEnabled()&&l.shiftKey&&l.button===0&&(c.disableDrag(),this._startPos=this._lastPos=d,this._active=!0)}mousemoveWindow(l,d){if(!this._active)return;let v=d;if(this._lastPos.equals(v)||!this._box&&v.dist(this._startPos)M.fitScreenCoordinates(v,b,this._tr.bearing,{linear:!0})};this._fireEvent(\"boxzoomcancel\",l)}keydown(l){this._active&&l.keyCode===27&&(this.reset(),this._fireEvent(\"boxzoomcancel\",l))}reset(){this._active=!1,this._container.classList.remove(\"maplibregl-crosshair\"),this._box&&(c.remove(this._box),this._box=null),c.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(l,d){return this._map.fire(new n.k(l,{originalEvent:d}))}}function ca(T,l){if(T.length!==l.length)throw new Error(`The number of touches and points are not equal - touches ${T.length}, points ${l.length}`);let d={};for(let v=0;vthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=l.timeStamp),v.length===this.numTouches&&(this.centroid=function(b){let M=new n.P(0,0);for(let O of b)M._add(O);return M.div(b.length)}(d),this.touches=ca(v,d)))}touchmove(l,d,v){if(this.aborted||!this.centroid)return;let b=ca(v,d);for(let M in this.touches){let O=b[M];(!O||O.dist(this.touches[M])>30)&&(this.aborted=!0)}}touchend(l,d,v){if((!this.centroid||l.timeStamp-this.startTime>500)&&(this.aborted=!0),v.length===0){let b=!this.aborted&&this.centroid;if(this.reset(),b)return b}}}class Ld{constructor(l){this.singleTap=new Ba(l),this.numTaps=l.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(l,d,v){this.singleTap.touchstart(l,d,v)}touchmove(l,d,v){this.singleTap.touchmove(l,d,v)}touchend(l,d,v){let b=this.singleTap.touchend(l,d,v);if(b){let M=l.timeStamp-this.lastTime<500,O=!this.lastTap||this.lastTap.dist(b)<30;if(M&&O||this.reset(),this.count++,this.lastTime=l.timeStamp,this.lastTap=b,this.count===this.numTaps)return this.reset(),b}}}class fl{constructor(l){this._tr=new In(l),this._zoomIn=new Ld({numTouches:1,numTaps:2}),this._zoomOut=new Ld({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(l,d,v){this._zoomIn.touchstart(l,d,v),this._zoomOut.touchstart(l,d,v)}touchmove(l,d,v){this._zoomIn.touchmove(l,d,v),this._zoomOut.touchmove(l,d,v)}touchend(l,d,v){let b=this._zoomIn.touchend(l,d,v),M=this._zoomOut.touchend(l,d,v),O=this._tr;return b?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:B=>B.easeTo({duration:300,zoom:O.zoom+1,around:O.unproject(b)},{originalEvent:l})}):M?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:B=>B.easeTo({duration:300,zoom:O.zoom-1,around:O.unproject(M)},{originalEvent:l})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Fa{constructor(l){this._enabled=!!l.enable,this._moveStateManager=l.moveStateManager,this._clickTolerance=l.clickTolerance||1,this._moveFunction=l.move,this._activateOnStart=!!l.activateOnStart,l.assignEvents(this),this.reset()}reset(l){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(l)}_move(...l){let d=this._moveFunction(...l);if(d.bearingDelta||d.pitchDelta||d.around||d.panDelta)return this._active=!0,d}dragStart(l,d){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(l)&&(this._moveStateManager.startMove(l),this._lastPoint=d.length?d[0]:d,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(l,d){if(!this.isEnabled())return;let v=this._lastPoint;if(!v)return;if(l.preventDefault(),!this._moveStateManager.isValidMoveEvent(l))return void this.reset(l);let b=d.length?d[0]:d;return!this._moved&&b.dist(v){T.mousedown=T.dragStart,T.mousemoveWindow=T.dragMove,T.mouseup=T.dragEnd,T.contextmenu=function(l){l.preventDefault()}},za=({enable:T,clickTolerance:l,bearingDegreesPerPixelMoved:d=.8})=>{let v=new Jp({checkCorrectEvent:b=>c.mouseButton(b)===0&&b.ctrlKey||c.mouseButton(b)===2});return new Fa({clickTolerance:l,move:(b,M)=>({bearingDelta:(M.x-b.x)*d}),moveStateManager:v,enable:T,assignEvents:hh})},ro=({enable:T,clickTolerance:l,pitchDegreesPerPixelMoved:d=-.5})=>{let v=new Jp({checkCorrectEvent:b=>c.mouseButton(b)===0&&b.ctrlKey||c.mouseButton(b)===2});return new Fa({clickTolerance:l,move:(b,M)=>({pitchDelta:(M.y-b.y)*d}),moveStateManager:v,enable:T,assignEvents:hh})};class Ue{constructor(l,d){this._minTouches=l.cooperativeGestures?2:1,this._clickTolerance=l.clickTolerance||1,this._map=d,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new n.P(0,0),setTimeout(()=>{this._cancelCooperativeMessage=!1},200)}touchstart(l,d,v){return this._calculateTransform(l,d,v)}touchmove(l,d,v){if(this._map._cooperativeGestures&&(this._minTouches===2&&v.length<2&&!this._cancelCooperativeMessage?this._map._onCooperativeGesture(l,!1,v.length):this._cancelCooperativeMessage||(this._cancelCooperativeMessage=!0)),this._active&&!(v.length0&&(this._active=!0);let b=ca(v,d),M=new n.P(0,0),O=new n.P(0,0),B=0;for(let W in b){let Z=b[W],Q=this._touches[W];Q&&(M._add(Z),O._add(Z.sub(Q)),B++,b[W]=Z)}if(this._touches=b,BMath.abs(T.x)}class Ix extends kd{constructor(l){super(),this._map=l}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(l,d,v){super.touchstart(l,d,v),this._currentTouchCount=v.length}_start(l){this._lastPoints=l,r0(l[0].sub(l[1]))&&(this._valid=!1)}_move(l,d,v){if(this._map._cooperativeGestures&&this._currentTouchCount<3)return;let b=l[0].sub(this._lastPoints[0]),M=l[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(b,M,v.timeStamp),this._valid?(this._lastPoints=l,this._active=!0,{pitchDelta:(b.y+M.y)/2*-.5}):void 0}gestureBeginsVertically(l,d,v){if(this._valid!==void 0)return this._valid;let b=l.mag()>=2,M=d.mag()>=2;if(!b&&!M)return;if(!b||!M)return this._firstMove===void 0&&(this._firstMove=v),v-this._firstMove<100&&void 0;let O=l.y>0==d.y>0;return r0(l)&&r0(d)&&O}}let fh={panStep:100,bearingStep:15,pitchStep:10};class l_{constructor(l){this._tr=new In(l);let d=fh;this._panStep=d.panStep,this._bearingStep=d.bearingStep,this._pitchStep=d.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(l){if(l.altKey||l.ctrlKey||l.metaKey)return;let d=0,v=0,b=0,M=0,O=0;switch(l.keyCode){case 61:case 107:case 171:case 187:d=1;break;case 189:case 109:case 173:d=-1;break;case 37:l.shiftKey?v=-1:(l.preventDefault(),M=-1);break;case 39:l.shiftKey?v=1:(l.preventDefault(),M=1);break;case 38:l.shiftKey?b=1:(l.preventDefault(),O=-1);break;case 40:l.shiftKey?b=-1:(l.preventDefault(),O=1);break;default:return}return this._rotationDisabled&&(v=0,b=0),{cameraAnimation:B=>{let U=this._tr;B.easeTo({duration:300,easeId:\"keyboardHandler\",easing:i0,zoom:d?Math.round(U.zoom)+d*(l.shiftKey?2:1):U.zoom,bearing:U.bearing+v*this._bearingStep,pitch:U.pitch+b*this._pitchStep,offset:[-M*this._panStep,-O*this._panStep],center:U.center},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function i0(T){return T*(2-T)}let n0=4.000244140625;class vf{constructor(l,d){this._onTimeout=v=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(v)},this._map=l,this._tr=new In(l),this._el=l.getCanvasContainer(),this._triggerRenderFrame=d,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(l){this._defaultZoomRate=l}setWheelZoomRate(l){this._wheelZoomRate=l}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(l){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!l&&l.around===\"center\")}disable(){this.isEnabled()&&(this._enabled=!1)}wheel(l){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!l[this._map._metaKey])return;l.preventDefault()}let d=l.deltaMode===WheelEvent.DOM_DELTA_LINE?40*l.deltaY:l.deltaY,v=n.h.now(),b=v-(this._lastWheelEventTime||0);this._lastWheelEventTime=v,d!==0&&d%n0==0?this._type=\"wheel\":d!==0&&Math.abs(d)<4?this._type=\"trackpad\":b>400?(this._type=null,this._lastValue=d,this._timeout=setTimeout(this._onTimeout,40,l)):this._type||(this._type=Math.abs(b*d)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,d+=this._lastValue)),l.shiftKey&&d&&(d/=4),this._type&&(this._lastWheelEvent=l,this._delta-=d,this._active||this._start(l)),l.preventDefault()}_start(l){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let d=c.mousePos(this._el,l),v=this._tr;this._around=n.L.convert(this._aroundCenter?v.center:v.unproject(d)),this._aroundPoint=v.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let l=this._tr.transform;if(this._delta!==0){let B=this._type===\"wheel\"&&Math.abs(this._delta)>n0?this._wheelZoomRate:this._defaultZoomRate,U=2/(1+Math.exp(-Math.abs(this._delta*B)));this._delta<0&&U!==0&&(U=1/U);let W=typeof this._targetZoom==\"number\"?l.zoomScale(this._targetZoom):l.scale;this._targetZoom=Math.min(l.maxZoom,Math.max(l.minZoom,l.scaleZoom(W*U))),this._type===\"wheel\"&&(this._startZoom=l.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}let d=typeof this._targetZoom==\"number\"?this._targetZoom:l.zoom,v=this._startZoom,b=this._easing,M,O=!1;if(this._type===\"wheel\"&&v&&b){let B=Math.min((n.h.now()-this._lastWheelEventTime)/200,1),U=b(B);M=n.B.number(v,d,U),B<1?this._frameId||(this._frameId=!0):O=!0}else M=d,O=!0;return this._active=!0,O&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!O,zoomDelta:M-l.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(l){let d=n.bb;if(this._prevEase){let v=this._prevEase,b=(n.h.now()-v.start)/v.duration,M=v.easing(b+.01)-v.easing(b),O=.27/Math.sqrt(M*M+1e-4)*.01,B=Math.sqrt(.0729-O*O);d=n.ba(O,B,.25,1)}return this._prevEase={start:n.h.now(),duration:l,easing:d},d}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class s0{constructor(l,d){this._clickZoom=l,this._tapZoom=d}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class tA{constructor(l){this._tr=new In(l),this.reset()}reset(){this._active=!1}dblclick(l,d){return l.preventDefault(),{cameraAnimation:v=>{v.easeTo({duration:300,zoom:this._tr.zoom+(l.shiftKey?-1:1),around:this._tr.unproject(d)},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class eA{constructor(){this._tap=new Ld({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(l,d,v){if(!this._swipePoint)if(this._tapTime){let b=d[0],M=l.timeStamp-this._tapTime<500,O=this._tapPoint.dist(b)<30;M&&O?v.length>0&&(this._swipePoint=b,this._swipeTouch=v[0].identifier):this.reset()}else this._tap.touchstart(l,d,v)}touchmove(l,d,v){if(this._tapTime){if(this._swipePoint){if(v[0].identifier!==this._swipeTouch)return;let b=d[0],M=b.y-this._swipePoint.y;return this._swipePoint=b,l.preventDefault(),this._active=!0,{zoomDelta:M/128}}}else this._tap.touchmove(l,d,v)}touchend(l,d,v){if(this._tapTime)this._swipePoint&&v.length===0&&this.reset();else{let b=this._tap.touchend(l,d,v);b&&(this._tapTime=l.timeStamp,this._tapPoint=b)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class dh{constructor(l,d,v){this._el=l,this._mousePan=d,this._touchPan=v}enable(l){this._inertiaOptions=l||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(\"maplibregl-touch-drag-pan\")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"maplibregl-touch-drag-pan\")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class ls{constructor(l,d,v){this._pitchWithRotate=l.pitchWithRotate,this._mouseRotate=d,this._mousePitch=v}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Au{constructor(l,d,v,b){this._el=l,this._touchZoom=d,this._touchRotate=v,this._tapDragZoom=b,this._rotationDisabled=!1,this._enabled=!0}enable(l){this._touchZoom.enable(l),this._rotationDisabled||this._touchRotate.enable(l),this._tapDragZoom.enable(),this._el.classList.add(\"maplibregl-touch-zoom-rotate\")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"maplibregl-touch-zoom-rotate\")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}let Rc=T=>T.zoom||T.drag||T.pitch||T.rotate;class o0 extends n.k{}function Rd(T){return T.panDelta&&T.panDelta.mag()||T.zoomDelta||T.bearingDelta||T.pitchDelta}class a0{constructor(l,d){this.handleWindowEvent=b=>{this.handleEvent(b,`${b.type}Window`)},this.handleEvent=(b,M)=>{if(b.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let O=b.type===\"renderFrame\"?void 0:b,B={needsRenderFrame:!1},U={},W={},Z=b.touches,Q=Z?this._getMapTouches(Z):void 0,st=Q?c.touchPos(this._el,Q):c.mousePos(this._el,b);for(let{handlerName:yt,handler:dt,allowed:Ft}of this._handlers){if(!dt.isEnabled())continue;let Wt;this._blockedByActive(W,Ft,yt)?dt.reset():dt[M||b.type]&&(Wt=dt[M||b.type](b,st,Q),this.mergeHandlerResult(B,U,Wt,yt,O),Wt&&Wt.needsRenderFrame&&this._triggerRenderFrame()),(Wt||dt.isActive())&&(W[yt]=dt)}let At={};for(let yt in this._previousActiveHandlers)W[yt]||(At[yt]=O);this._previousActiveHandlers=W,(Object.keys(At).length||Rd(B))&&(this._changes.push([B,U,At]),this._triggerRenderFrame()),(Object.keys(W).length||Rd(B))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:pt}=B;pt&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],pt(this._map))},this._map=l,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Jm(l),this._bearingSnap=d.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(d);let v=this._el;this._listeners=[[v,\"touchstart\",{passive:!0}],[v,\"touchmove\",{passive:!1}],[v,\"touchend\",void 0],[v,\"touchcancel\",void 0],[v,\"mousedown\",void 0],[v,\"mousemove\",void 0],[v,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[v,\"mouseover\",void 0],[v,\"mouseout\",void 0],[v,\"dblclick\",void 0],[v,\"click\",void 0],[v,\"keydown\",{capture:!1}],[v,\"keyup\",void 0],[v,\"wheel\",{passive:!1}],[v,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(let[b,M,O]of this._listeners)c.addEventListener(b,M,b===document?this.handleWindowEvent:this.handleEvent,O)}destroy(){for(let[l,d,v]of this._listeners)c.removeEventListener(l,d,l===document?this.handleWindowEvent:this.handleEvent,v)}_addDefaultHandlers(l){let d=this._map,v=d.getCanvasContainer();this._add(\"mapEvent\",new Fs(d,l));let b=d.boxZoom=new Kp(d,l);this._add(\"boxZoom\",b),l.interactive&&l.boxZoom&&b.enable();let M=new fl(d),O=new tA(d);d.doubleClickZoom=new s0(O,M),this._add(\"tapZoom\",M),this._add(\"clickZoom\",O),l.interactive&&l.doubleClickZoom&&d.doubleClickZoom.enable();let B=new eA;this._add(\"tapDragZoom\",B);let U=d.touchPitch=new Ix(d);this._add(\"touchPitch\",U),l.interactive&&l.touchPitch&&d.touchPitch.enable(l.touchPitch);let W=za(l),Z=ro(l);d.dragRotate=new ls(l,W,Z),this._add(\"mouseRotate\",W,[\"mousePitch\"]),this._add(\"mousePitch\",Z,[\"mouseRotate\"]),l.interactive&&l.dragRotate&&d.dragRotate.enable();let Q=(({enable:Ft,clickTolerance:Wt})=>{let St=new Jp({checkCorrectEvent:Bt=>c.mouseButton(Bt)===0&&!Bt.ctrlKey});return new Fa({clickTolerance:Wt,move:(Bt,Yt)=>({around:Yt,panDelta:Yt.sub(Bt)}),activateOnStart:!0,moveStateManager:St,enable:Ft,assignEvents:hh})})(l),st=new Ue(l,d);d.dragPan=new dh(v,Q,st),this._add(\"mousePan\",Q),this._add(\"touchPan\",st,[\"touchZoom\",\"touchRotate\"]),l.interactive&&l.dragPan&&d.dragPan.enable(l.dragPan);let At=new e0,pt=new a_;d.touchZoomRotate=new Au(v,pt,At,B),this._add(\"touchRotate\",At,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",pt,[\"touchPan\",\"touchRotate\"]),l.interactive&&l.touchZoomRotate&&d.touchZoomRotate.enable(l.touchZoomRotate);let yt=d.scrollZoom=new vf(d,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",yt,[\"mousePan\"]),l.interactive&&l.scrollZoom&&d.scrollZoom.enable(l.scrollZoom);let dt=d.keyboard=new l_(d);this._add(\"keyboard\",dt),l.interactive&&l.keyboard&&d.keyboard.enable(),this._add(\"blockableMapEvent\",new pu(d))}_add(l,d,v){this._handlers.push({handlerName:l,handler:d,allowed:v}),this._handlersById[l]=d}stop(l){if(!this._updatingCamera){for(let{handler:d}of this._handlers)d.reset();this._inertia.clear(),this._fireEvents({},{},l),this._changes=[]}}isActive(){for(let{handler:l}of this._handlers)if(l.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Rc(this._eventsInProgress)||this.isZooming()}_blockedByActive(l,d,v){for(let b in l)if(b!==v&&(!d||d.indexOf(b)<0))return!0;return!1}_getMapTouches(l){let d=[];for(let v of l)this._el.contains(v.target)&&d.push(v);return d}mergeHandlerResult(l,d,v,b,M){if(!v)return;n.e(l,v);let O={handlerName:b,originalEvent:v.originalEvent||M};v.zoomDelta!==void 0&&(d.zoom=O),v.panDelta!==void 0&&(d.drag=O),v.pitchDelta!==void 0&&(d.pitch=O),v.bearingDelta!==void 0&&(d.rotate=O)}_applyChanges(){let l={},d={},v={};for(let[b,M,O]of this._changes)b.panDelta&&(l.panDelta=(l.panDelta||new n.P(0,0))._add(b.panDelta)),b.zoomDelta&&(l.zoomDelta=(l.zoomDelta||0)+b.zoomDelta),b.bearingDelta&&(l.bearingDelta=(l.bearingDelta||0)+b.bearingDelta),b.pitchDelta&&(l.pitchDelta=(l.pitchDelta||0)+b.pitchDelta),b.around!==void 0&&(l.around=b.around),b.pinchAround!==void 0&&(l.pinchAround=b.pinchAround),b.noInertia&&(l.noInertia=b.noInertia),n.e(d,M),n.e(v,O);this._updateMapTransform(l,d,v),this._changes=[]}_updateMapTransform(l,d,v){let b=this._map,M=b._getTransformForUpdate(),O=b.terrain;if(!(Rd(l)||O&&this._terrainMovement))return this._fireEvents(d,v,!0);let{panDelta:B,zoomDelta:U,bearingDelta:W,pitchDelta:Z,around:Q,pinchAround:st}=l;st!==void 0&&(Q=st),b._stop(!0),Q=Q||b.transform.centerPoint;let At=M.pointLocation(B?Q.sub(B):Q);W&&(M.bearing+=W),Z&&(M.pitch+=Z),U&&(M.zoom+=U),O?this._terrainMovement||!d.drag&&!d.zoom?d.drag&&this._terrainMovement?M.center=M.pointLocation(M.centerPoint.sub(B)):M.setLocationAtPoint(At,Q):(this._terrainMovement=!0,this._map._elevationFreeze=!0,M.setLocationAtPoint(At,Q),this._map.once(\"moveend\",()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,M.recalculateZoom(b.terrain)})):M.setLocationAtPoint(At,Q),b._applyUpdatedTransform(M),this._map._update(),l.noInertia||this._inertia.record(l),this._fireEvents(d,v,!0)}_fireEvents(l,d,v){let b=Rc(this._eventsInProgress),M=Rc(l),O={};for(let Z in l){let{originalEvent:Q}=l[Z];this._eventsInProgress[Z]||(O[`${Z}start`]=Q),this._eventsInProgress[Z]=l[Z]}!b&&M&&this._fireEvent(\"movestart\",M.originalEvent);for(let Z in O)this._fireEvent(Z,O[Z]);M&&this._fireEvent(\"move\",M.originalEvent);for(let Z in l){let{originalEvent:Q}=l[Z];this._fireEvent(Z,Q)}let B={},U;for(let Z in this._eventsInProgress){let{handlerName:Q,originalEvent:st}=this._eventsInProgress[Z];this._handlersById[Q].isActive()||(delete this._eventsInProgress[Z],U=d[Q]||st,B[`${Z}end`]=U)}for(let Z in B)this._fireEvent(Z,B[Z]);let W=Rc(this._eventsInProgress);if(v&&(b||M)&&!W){this._updatingCamera=!0;let Z=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),Q=st=>st!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new o0(\"renderFrame\",{timeStamp:l})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class c_ extends n.E{constructor(l,d){super(),this._renderFrameCallback=()=>{let v=Math.min((n.h.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(v)),v<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=l,this._bearingSnap=d.bearingSnap,this.on(\"moveend\",()=>{delete this._requestedCameraState})}getCenter(){return new n.L(this.transform.center.lng,this.transform.center.lat)}setCenter(l,d){return this.jumpTo({center:l},d)}panBy(l,d,v){return l=n.P.convert(l).mult(-1),this.panTo(this.transform.center,n.e({offset:l},d),v)}panTo(l,d,v){return this.easeTo(n.e({center:l},d),v)}getZoom(){return this.transform.zoom}setZoom(l,d){return this.jumpTo({zoom:l},d),this}zoomTo(l,d,v){return this.easeTo(n.e({zoom:l},d),v)}zoomIn(l,d){return this.zoomTo(this.getZoom()+1,l,d),this}zoomOut(l,d){return this.zoomTo(this.getZoom()-1,l,d),this}getBearing(){return this.transform.bearing}setBearing(l,d){return this.jumpTo({bearing:l},d),this}getPadding(){return this.transform.padding}setPadding(l,d){return this.jumpTo({padding:l},d),this}rotateTo(l,d,v){return this.easeTo(n.e({bearing:l},d),v)}resetNorth(l,d){return this.rotateTo(0,n.e({duration:1e3},l),d),this}resetNorthPitch(l,d){return this.easeTo(n.e({bearing:0,pitch:0,duration:1e3},l),d),this}snapToNorth(l,d){return Math.abs(this.getBearing()){if(this._zooming&&(v.zoom=n.B.number(b,U,Qt)),this._rotating&&(v.bearing=n.B.number(M,W,Qt)),this._pitching&&(v.pitch=n.B.number(O,Z,Qt)),this._padding&&(v.interpolatePadding(B,Q,Qt),At=v.centerPoint.add(st)),this.terrain&&!l.freezeElevation&&this._updateElevation(Qt),St)v.setLocationAtPoint(St,Bt);else{let se=v.zoomScale(v.zoom-b),pe=U>b?Math.min(2,Wt):Math.max(.5,Wt),he=Math.pow(pe,1-Qt),xe=v.unproject(dt.add(Ft.mult(Qt*he)).mult(se));v.setLocationAtPoint(v.renderWorldCopies?xe.wrap():xe,At)}this._applyUpdatedTransform(v),this._fireMoveEvents(d)},Qt=>{this.terrain&&this._finalizeElevation(),this._afterEase(d,Qt)},l),this}_prepareEase(l,d,v={}){this._moving=!0,d||v.moving||this.fire(new n.k(\"movestart\",l)),this._zooming&&!v.zooming&&this.fire(new n.k(\"zoomstart\",l)),this._rotating&&!v.rotating&&this.fire(new n.k(\"rotatestart\",l)),this._pitching&&!v.pitching&&this.fire(new n.k(\"pitchstart\",l))}_prepareElevation(l){this._elevationCenter=l,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(l,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(l){this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);let d=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(l<1&&d!==this._elevationTarget){let v=this._elevationTarget-this._elevationStart;this._elevationStart+=l*(v-(d-(v*l+this._elevationStart))/(1-l)),this._elevationTarget=d}this.transform.elevation=n.B.number(this._elevationStart,this._elevationTarget,l)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(l){if(!this.transformCameraUpdate)return;let d=l.clone(),{center:v,zoom:b,pitch:M,bearing:O,elevation:B}=this.transformCameraUpdate(d);v&&(d.center=v),b!==void 0&&(d.zoom=b),M!==void 0&&(d.pitch=M),O!==void 0&&(d.bearing=O),B!==void 0&&(d.elevation=B),this.transform.apply(d)}_fireMoveEvents(l){this.fire(new n.k(\"move\",l)),this._zooming&&this.fire(new n.k(\"zoom\",l)),this._rotating&&this.fire(new n.k(\"rotate\",l)),this._pitching&&this.fire(new n.k(\"pitch\",l))}_afterEase(l,d){if(this._easeId&&d&&this._easeId===d)return;delete this._easeId;let v=this._zooming,b=this._rotating,M=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,v&&this.fire(new n.k(\"zoomend\",l)),b&&this.fire(new n.k(\"rotateend\",l)),M&&this.fire(new n.k(\"pitchend\",l)),this.fire(new n.k(\"moveend\",l))}flyTo(l,d){if(!l.essential&&n.h.prefersReducedMotion){let Xe=n.F(l,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Xe,d)}this.stop(),l=n.e({offset:[0,0],speed:1.2,curve:1.42,easing:n.bb},l);let v=this._getTransformForUpdate(),b=this.getZoom(),M=this.getBearing(),O=this.getPitch(),B=this.getPadding(),U=\"zoom\"in l?n.ad(+l.zoom,v.minZoom,v.maxZoom):b,W=\"bearing\"in l?this._normalizeBearing(l.bearing,M):M,Z=\"pitch\"in l?+l.pitch:O,Q=\"padding\"in l?l.padding:v.padding,st=v.zoomScale(U-b),At=n.P.convert(l.offset),pt=v.centerPoint.add(At),yt=v.pointLocation(pt),dt=n.L.convert(l.center||yt);this._normalizeCenter(dt);let Ft=v.project(yt),Wt=v.project(dt).sub(Ft),St=l.curve,Bt=Math.max(v.width,v.height),Yt=Bt/st,Qt=Wt.mag();if(\"minZoom\"in l){let Xe=n.ad(Math.min(l.minZoom,b,U),v.minZoom,v.maxZoom),Vi=Bt/v.zoomScale(Xe-b);St=Math.sqrt(Vi/Qt*2)}let se=St*St;function pe(Xe){let Vi=(Yt*Yt-Bt*Bt+(Xe?-1:1)*se*se*Qt*Qt)/(2*(Xe?Yt:Bt)*se*Qt);return Math.log(Math.sqrt(Vi*Vi+1)-Vi)}function he(Xe){return(Math.exp(Xe)-Math.exp(-Xe))/2}function xe(Xe){return(Math.exp(Xe)+Math.exp(-Xe))/2}let We=pe(!1),Kr=function(Xe){return xe(We)/xe(We+St*Xe)},Me=function(Xe){return Bt*((xe(We)*(he(Vi=We+St*Xe)/xe(Vi))-he(We))/se)/Qt;var Vi},dr=(pe(!0)-We)/St;if(Math.abs(Qt)<1e-6||!isFinite(dr)){if(Math.abs(Bt-Yt)<1e-6)return this.easeTo(l,d);let Xe=Ytl.maxDuration&&(l.duration=0),this._zooming=!0,this._rotating=M!==W,this._pitching=Z!==O,this._padding=!v.isPaddingEqual(Q),this._prepareEase(d,!1),this.terrain&&this._prepareElevation(dt),this._ease(Xe=>{let Vi=Xe*dr,Jr=1/Kr(Vi);v.zoom=Xe===1?U:b+v.scaleZoom(Jr),this._rotating&&(v.bearing=n.B.number(M,W,Xe)),this._pitching&&(v.pitch=n.B.number(O,Z,Xe)),this._padding&&(v.interpolatePadding(B,Q,Xe),pt=v.centerPoint.add(At)),this.terrain&&!l.freezeElevation&&this._updateElevation(Xe);let Vr=Xe===1?dt:v.unproject(Ft.add(Wt.mult(Me(Vi))).mult(Jr));v.setLocationAtPoint(v.renderWorldCopies?Vr.wrap():Vr,pt),this._applyUpdatedTransform(v),this._fireMoveEvents(d)},()=>{this.terrain&&this._finalizeElevation(),this._afterEase(d)},l),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(l,d){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let v=this._onEaseEnd;delete this._onEaseEnd,v.call(this,d)}if(!l){let v=this.handlers;v&&v.stop(!1)}return this}_ease(l,d,v){v.animate===!1||v.duration===0?(l(1),d()):(this._easeStart=n.h.now(),this._easeOptions=v,this._onEaseFrame=l,this._onEaseEnd=d,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(l,d){l=n.b5(l,-180,180);let v=Math.abs(l-d);return Math.abs(l-360-d)180?-360:v<-180?360:0}queryTerrainElevation(l){return this.terrain?this.terrain.getElevationForLngLatZoom(n.L.convert(l),this.transform.tileZoom)-this.transform.elevation:null}}class ua{constructor(l={}){this._toggleAttribution=()=>{this._container.classList.contains(\"maplibregl-compact\")&&(this._container.classList.contains(\"maplibregl-compact-show\")?(this._container.setAttribute(\"open\",\"\"),this._container.classList.remove(\"maplibregl-compact-show\")):(this._container.classList.add(\"maplibregl-compact-show\"),this._container.removeAttribute(\"open\")))},this._updateData=d=>{!d||d.sourceDataType!==\"metadata\"&&d.sourceDataType!==\"visibility\"&&d.dataType!==\"style\"&&d.type!==\"terrain\"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute(\"open\",\"\"):this._container.classList.contains(\"maplibregl-compact\")||this._container.classList.contains(\"maplibregl-attrib-empty\")||(this._container.setAttribute(\"open\",\"\"),this._container.classList.add(\"maplibregl-compact\",\"maplibregl-compact-show\")):(this._container.setAttribute(\"open\",\"\"),this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.remove(\"maplibregl-compact\",\"maplibregl-compact-show\"))},this._updateCompactMinimize=()=>{this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.contains(\"maplibregl-compact-show\")&&this._container.classList.remove(\"maplibregl-compact-show\")},this.options=l}getDefaultPosition(){return\"bottom-right\"}onAdd(l){return this._map=l,this._compact=this.options&&this.options.compact,this._container=c.create(\"details\",\"maplibregl-ctrl maplibregl-ctrl-attrib\"),this._compactButton=c.create(\"summary\",\"maplibregl-ctrl-attrib-button\",this._container),this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._setElementTitle(this._compactButton,\"ToggleAttribution\"),this._innerContainer=c.create(\"div\",\"maplibregl-ctrl-attrib-inner\",this._container),this._updateAttributions(),this._updateCompact(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"terrain\",this._updateData),this._map.on(\"resize\",this._updateCompact),this._map.on(\"drag\",this._updateCompactMinimize),this._container}onRemove(){c.remove(this._container),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"terrain\",this._updateData),this._map.off(\"resize\",this._updateCompact),this._map.off(\"drag\",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(l,d){let v=this._map._getUIString(`AttributionControl.${d}`);l.title=v,l.setAttribute(\"aria-label\",v)}_updateAttributions(){if(!this._map.style)return;let l=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?l=l.concat(this.options.customAttribution.map(b=>typeof b!=\"string\"?\"\":b)):typeof this.options.customAttribution==\"string\"&&l.push(this.options.customAttribution)),this._map.style.stylesheet){let b=this._map.style.stylesheet;this.styleOwner=b.owner,this.styleId=b.id}let d=this._map.style.sourceCaches;for(let b in d){let M=d[b];if(M.used||M.usedForTerrain){let O=M.getSource();O.attribution&&l.indexOf(O.attribution)<0&&l.push(O.attribution)}}l=l.filter(b=>String(b).trim()),l.sort((b,M)=>b.length-M.length),l=l.filter((b,M)=>{for(let O=M+1;O=0)return!1;return!0});let v=l.join(\" | \");v!==this._attribHTML&&(this._attribHTML=v,l.length?(this._innerContainer.innerHTML=v,this._container.classList.remove(\"maplibregl-attrib-empty\")):this._container.classList.add(\"maplibregl-attrib-empty\"),this._updateCompact(),this._editLink=null)}}class ln{constructor(l={}){this._updateCompact=()=>{let d=this._container.children;if(d.length){let v=d[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&v.classList.add(\"maplibregl-compact\"):v.classList.remove(\"maplibregl-compact\")}},this.options=l}getDefaultPosition(){return\"bottom-left\"}onAdd(l){this._map=l,this._compact=this.options&&this.options.compact,this._container=c.create(\"div\",\"maplibregl-ctrl\");let d=c.create(\"a\",\"maplibregl-ctrl-logo\");return d.target=\"_blank\",d.rel=\"noopener nofollow\",d.href=\"https://maplibre.org/\",d.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),d.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(d),this._container.style.display=\"block\",this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container}onRemove(){c.remove(this._container),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._compact=void 0}}class rA{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(l){let d=++this._id;return this._queue.push({callback:l,id:d,cancelled:!1}),d}remove(l){let d=this._currentlyRunning,v=d?this._queue.concat(d):this._queue;for(let b of v)if(b.id===l)return void(b.cancelled=!0)}run(l=0){if(this._currentlyRunning)throw new Error(\"Attempting to run(), but is already running.\");let d=this._currentlyRunning=this._queue;this._queue=[];for(let v of d)if(!v.cancelled&&(v.callback(l),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}let l0={\"AttributionControl.ToggleAttribution\":\"Toggle attribution\",\"AttributionControl.MapFeedback\":\"Map feedback\",\"FullscreenControl.Enter\":\"Enter fullscreen\",\"FullscreenControl.Exit\":\"Exit fullscreen\",\"GeolocateControl.FindMyLocation\":\"Find my location\",\"GeolocateControl.LocationNotAvailable\":\"Location not available\",\"LogoControl.Title\":\"Mapbox logo\",\"NavigationControl.ResetBearing\":\"Reset bearing to north\",\"NavigationControl.ZoomIn\":\"Zoom in\",\"NavigationControl.ZoomOut\":\"Zoom out\",\"ScaleControl.Feet\":\"ft\",\"ScaleControl.Meters\":\"m\",\"ScaleControl.Kilometers\":\"km\",\"ScaleControl.Miles\":\"mi\",\"ScaleControl.NauticalMiles\":\"nm\",\"TerrainControl.enableTerrain\":\"Enable terrain\",\"TerrainControl.disableTerrain\":\"Disable terrain\"};var ph=n.Q([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class u_ extends n.E{constructor(l){super(),this.sourceCache=l,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,l.usedForTerrain=!0,l.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(l,d){this.sourceCache.update(l,d),this._renderableTilesKeys=[];let v={};for(let b of l.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:d}))v[b.key]=!0,this._renderableTilesKeys.push(b.key),this._tiles[b.key]||(b.posMatrix=new Float64Array(16),n.aS(b.posMatrix,0,n.N,0,n.N,0,1),this._tiles[b.key]=new to(b,this.tileSize));for(let b in this._tiles)v[b]||delete this._tiles[b]}freeRtt(l){for(let d in this._tiles){let v=this._tiles[d];(!l||v.tileID.equals(l)||v.tileID.isChildOf(l)||l.isChildOf(v.tileID))&&(v.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(l=>this.getTileByID(l))}getTileByID(l){return this._tiles[l]}getTerrainCoords(l){let d={};for(let v of this._renderableTilesKeys){let b=this._tiles[v].tileID;if(b.canonical.equals(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16),n.aS(M.posMatrix,0,n.N,0,n.N,0,1),d[v]=M}else if(b.canonical.isChildOf(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=b.canonical.z-l.canonical.z,B=b.canonical.x-(b.canonical.x>>O<>O<>O;n.aS(M.posMatrix,0,W,0,W,0,1),n.$(M.posMatrix,M.posMatrix,[-B*W,-U*W,0]),d[v]=M}else if(l.canonical.isChildOf(b.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=l.canonical.z-b.canonical.z,B=l.canonical.x-(l.canonical.x>>O<>O<>O;n.aS(M.posMatrix,0,n.N,0,n.N,0,1),n.$(M.posMatrix,M.posMatrix,[B*W,U*W,0]),n.a0(M.posMatrix,M.posMatrix,[1/2**O,1/2**O,0]),d[v]=M}}return d}getSourceTile(l,d){let v=this.sourceCache._source,b=l.overscaledZ-this.deltaZoom;if(b>v.maxzoom&&(b=v.maxzoom),b=v.minzoom&&(!M||!M.dem);)M=this.sourceCache.getTileByID(l.scaledTo(b--).key);return M}tilesAfterTime(l=Date.now()){return Object.values(this._tiles).filter(d=>d.timeAdded>=l)}}class h_{constructor(l,d,v){this.painter=l,this.sourceCache=new u_(d),this.options=v,this.exaggeration=typeof v.exaggeration==\"number\"?v.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(l,d,v,b=n.N){var M;if(!(d>=0&&d=0&&vl.canonical.z&&(l.canonical.z>=b?M=l.canonical.z-b:n.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let O=l.canonical.x-(l.canonical.x>>M<>M<>8<<4|M>>8,d[O+3]=0;let v=new n.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(d.buffer)),b=new Zt(l,v,l.gl.RGBA,{premultiply:!1});return b.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._coordsTexture=b,b}pointCoordinate(l){let d=new Uint8Array(4),v=this.painter.context,b=v.gl;v.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),b.readPixels(l.x,this.painter.height/devicePixelRatio-l.y-1,1,1,b.RGBA,b.UNSIGNED_BYTE,d),v.bindFramebuffer.set(null);let M=d[0]+(d[2]>>4<<8),O=d[1]+((15&d[2])<<8),B=this.coordsIndex[255-d[3]],U=B&&this.sourceCache.getTileByID(B);if(!U)return null;let W=this._coordsTextureSize,Z=(1<0&&Math.sign(M)<0||!v&&Math.sign(b)<0&&Math.sign(M)>0?(b=360*Math.sign(M)+b,n.G(b)):d}}class Cx{constructor(l,d,v){this._context=l,this._size=d,this._tileSize=v,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(let l of this._objects)l.texture.destroy(),l.fbo.destroy()}_createObject(l){let d=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),v=new Zt(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return v.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),d.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),d.colorAttachment.set(v.texture),{id:l,fbo:d,texture:v,stamp:-1,inUse:!1}}getObjectForId(l){return this._objects[l]}useObject(l){l.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(d=>l.id!==d),this._recentlyUsed.push(l.id)}stampObject(l){l.stamp=++this._stamp}getOrCreateFreeObject(){for(let d of this._recentlyUsed)if(!this._objects[d].inUse)return this._objects[d];if(this._objects.length>=this._size)throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");let l=this._createObject(this._objects.length);return this._objects.push(l),l}freeObject(l){l.inUse=!1}freeAllObjects(){for(let l of this._objects)this.freeObject(l)}isFull(){return!(this._objects.length!l.inUse)===!1}}let _o={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class iA{constructor(l,d){this.painter=l,this.terrain=d,this.pool=new Cx(l.context,30,d.sourceCache.tileSize*d.qualityFactor)}destruct(){this.pool.destruct()}getTexture(l){return this.pool.getObjectForId(l.rtt[this._stacks.length-1].id).texture}prepareForRender(l,d){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=l._order.filter(v=>!l._layers[v].isHidden(d)),this._coordsDescendingInv={};for(let v in l.sourceCaches){this._coordsDescendingInv[v]={};let b=l.sourceCaches[v].getVisibleCoordinates();for(let M of b){let O=this.terrain.sourceCache.getTerrainCoords(M);for(let B in O)this._coordsDescendingInv[v][B]||(this._coordsDescendingInv[v][B]=[]),this._coordsDescendingInv[v][B].push(O[B])}}this._coordsDescendingInvStr={};for(let v of l._order){let b=l._layers[v],M=b.source;if(_o[b.type]&&!this._coordsDescendingInvStr[M]){this._coordsDescendingInvStr[M]={};for(let O in this._coordsDescendingInv[M])this._coordsDescendingInvStr[M][O]=this._coordsDescendingInv[M][O].map(B=>B.key).sort().join()}}for(let v of this._renderableTiles)for(let b in this._coordsDescendingInvStr){let M=this._coordsDescendingInvStr[b][v.tileID.key];M&&M!==v.rttCoords[b]&&(v.rtt=[])}}renderLayer(l){if(l.isHidden(this.painter.transform.zoom))return!1;let d=l.type,v=this.painter,b=this._renderableLayerIds[this._renderableLayerIds.length-1]===l.id;if(_o[d]&&(this._prevType&&_o[this._prevType]||this._stacks.push([]),this._prevType=d,this._stacks[this._stacks.length-1].push(l.id),!b))return!0;if(_o[this._prevType]||_o[d]&&b){this._prevType=d;let M=this._stacks.length-1,O=this._stacks[M]||[];for(let B of this._renderableTiles){if(this.pool.isFull()&&(Pn(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(B),B.rtt[M]){let W=this.pool.getObjectForId(B.rtt[M].id);if(W.stamp===B.rtt[M].stamp){this.pool.useObject(W);continue}}let U=this.pool.getOrCreateFreeObject();this.pool.useObject(U),this.pool.stampObject(U),B.rtt[M]={id:U.id,stamp:U.stamp},v.context.bindFramebuffer.set(U.fbo.framebuffer),v.context.clear({color:n.aT.transparent,stencil:0}),v.currentStencilSource=void 0;for(let W=0;W{T.touchstart=T.dragStart,T.touchmoveWindow=T.dragMove,T.touchend=T.dragEnd},nA={showCompass:!0,showZoom:!0,visualizePitch:!1};class Dd{constructor(l,d,v=!1){this.mousedown=O=>{this.startMouse(n.e({},O,{ctrlKey:!0,preventDefault:()=>O.preventDefault()}),c.mousePos(this.element,O)),c.addEventListener(window,\"mousemove\",this.mousemove),c.addEventListener(window,\"mouseup\",this.mouseup)},this.mousemove=O=>{this.moveMouse(O,c.mousePos(this.element,O))},this.mouseup=O=>{this.mouseRotate.dragEnd(O),this.mousePitch&&this.mousePitch.dragEnd(O),this.offTemp()},this.touchstart=O=>{O.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=c.touchPos(this.element,O.targetTouches)[0],this.startTouch(O,this._startPos),c.addEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.addEventListener(window,\"touchend\",this.touchend))},this.touchmove=O=>{O.targetTouches.length!==1?this.reset():(this._lastPos=c.touchPos(this.element,O.targetTouches)[0],this.moveTouch(O,this._lastPos))},this.touchend=O=>{O.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;let b=l.dragRotate._mouseRotate.getClickTolerance(),M=l.dragRotate._mousePitch.getClickTolerance();this.element=d,this.mouseRotate=za({clickTolerance:b,enable:!0}),this.touchRotate=(({enable:O,clickTolerance:B,bearingDegreesPerPixelMoved:U=.8})=>{let W=new t0;return new Fa({clickTolerance:B,move:(Z,Q)=>({bearingDelta:(Q.x-Z.x)*U}),moveStateManager:W,enable:O,assignEvents:xf})})({clickTolerance:b,enable:!0}),this.map=l,v&&(this.mousePitch=ro({clickTolerance:M,enable:!0}),this.touchPitch=(({enable:O,clickTolerance:B,pitchDegreesPerPixelMoved:U=-.5})=>{let W=new t0;return new Fa({clickTolerance:B,move:(Z,Q)=>({pitchDelta:(Q.y-Z.y)*U}),moveStateManager:W,enable:O,assignEvents:xf})})({clickTolerance:M,enable:!0})),c.addEventListener(d,\"mousedown\",this.mousedown),c.addEventListener(d,\"touchstart\",this.touchstart,{passive:!1}),c.addEventListener(d,\"touchcancel\",this.reset)}startMouse(l,d){this.mouseRotate.dragStart(l,d),this.mousePitch&&this.mousePitch.dragStart(l,d),c.disableDrag()}startTouch(l,d){this.touchRotate.dragStart(l,d),this.touchPitch&&this.touchPitch.dragStart(l,d),c.disableDrag()}moveMouse(l,d){let v=this.map,{bearingDelta:b}=this.mouseRotate.dragMove(l,d)||{};if(b&&v.setBearing(v.getBearing()+b),this.mousePitch){let{pitchDelta:M}=this.mousePitch.dragMove(l,d)||{};M&&v.setPitch(v.getPitch()+M)}}moveTouch(l,d){let v=this.map,{bearingDelta:b}=this.touchRotate.dragMove(l,d)||{};if(b&&v.setBearing(v.getBearing()+b),this.touchPitch){let{pitchDelta:M}=this.touchPitch.dragMove(l,d)||{};M&&v.setPitch(v.getPitch()+M)}}off(){let l=this.element;c.removeEventListener(l,\"mousedown\",this.mousedown),c.removeEventListener(l,\"touchstart\",this.touchstart,{passive:!1}),c.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.removeEventListener(window,\"touchend\",this.touchend),c.removeEventListener(l,\"touchcancel\",this.reset),this.offTemp()}offTemp(){c.enableDrag(),c.removeEventListener(window,\"mousemove\",this.mousemove),c.removeEventListener(window,\"mouseup\",this.mouseup),c.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),c.removeEventListener(window,\"touchend\",this.touchend)}}let Gn;function io(T,l,d){if(T=new n.L(T.lng,T.lat),l){let v=new n.L(T.lng-360,T.lat),b=new n.L(T.lng+360,T.lat),M=d.locationPoint(T).distSqr(l);d.locationPoint(v).distSqr(l)180;){let v=d.locationPoint(T);if(v.x>=0&&v.y>=0&&v.x<=d.width&&v.y<=d.height)break;T.lng>d.center.lng?T.lng-=360:T.lng+=360}return T}let Ui={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};function f_(T,l,d){let v=T.classList;for(let b in Ui)v.remove(`maplibregl-${d}-anchor-${b}`);v.add(`maplibregl-${d}-anchor-${l}`)}class Ah extends n.E{constructor(l){if(super(),this._onKeyPress=d=>{let v=d.code,b=d.charCode||d.keyCode;v!==\"Space\"&&v!==\"Enter\"&&b!==32&&b!==13||this.togglePopup()},this._onMapClick=d=>{let v=d.originalEvent.target,b=this._element;this._popup&&(v===b||b.contains(v))&&this.togglePopup()},this._update=d=>{if(!this._map)return;let v=this._map.loaded()&&!this._map.isMoving();(d?.type===\"terrain\"||d?.type===\"render\"&&!v)&&this._map.once(\"render\",this._update),this._map.transform.renderWorldCopies&&(this._lngLat=io(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let b=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?b=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(b=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let M=\"\";this._pitchAlignment===\"viewport\"||this._pitchAlignment===\"auto\"?M=\"rotateX(0deg)\":this._pitchAlignment===\"map\"&&(M=`rotateX(${this._map.getPitch()}deg)`),d&&d.type!==\"moveend\"||(this._pos=this._pos.round()),c.setTransform(this._element,`${Ui[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${M} ${b}`),this._map.terrain&&!this._opacityTimeout&&(this._opacityTimeout=setTimeout(()=>{let O=this._map.unproject(this._pos),B=40075016686e-3*Math.abs(Math.cos(this._lngLat.lat*Math.PI/180))/Math.pow(2,this._map.transform.tileZoom+8);this._element.style.opacity=O.distanceTo(this._lngLat)>20*B?\"0.2\":\"1.0\",this._opacityTimeout=null},100))},this._onMove=d=>{if(!this._isDragging){let v=this._clickTolerance||this._map._clickTolerance;this._isDragging=d.point.dist(this._pointerdownPos)>=v}this._isDragging&&(this._pos=d.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",this._state===\"pending\"&&(this._state=\"active\",this.fire(new n.k(\"dragstart\"))),this.fire(new n.k(\"drag\")))},this._onUp=()=>{this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),this._state===\"active\"&&this.fire(new n.k(\"dragend\")),this._state=\"inactive\"},this._addDragHandler=d=>{this._element.contains(d.originalEvent.target)&&(d.preventDefault(),this._positionDelta=d.point.sub(this._pos).add(this._offset),this._pointerdownPos=d.point,this._state=\"pending\",this._map.on(\"mousemove\",this._onMove),this._map.on(\"touchmove\",this._onMove),this._map.once(\"mouseup\",this._onUp),this._map.once(\"touchend\",this._onUp))},this._anchor=l&&l.anchor||\"center\",this._color=l&&l.color||\"#3FB1CE\",this._scale=l&&l.scale||1,this._draggable=l&&l.draggable||!1,this._clickTolerance=l&&l.clickTolerance||0,this._isDragging=!1,this._state=\"inactive\",this._rotation=l&&l.rotation||0,this._rotationAlignment=l&&l.rotationAlignment||\"auto\",this._pitchAlignment=l&&l.pitchAlignment&&l.pitchAlignment!==\"auto\"?l.pitchAlignment:this._rotationAlignment,l&&l.element)this._element=l.element,this._offset=n.P.convert(l&&l.offset||[0,0]);else{this._defaultMarker=!0,this._element=c.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");let d=c.createNS(\"http://www.w3.org/2000/svg\",\"svg\"),v=41,b=27;d.setAttributeNS(null,\"display\",\"block\"),d.setAttributeNS(null,\"height\",`${v}px`),d.setAttributeNS(null,\"width\",`${b}px`),d.setAttributeNS(null,\"viewBox\",`0 0 ${b} ${v}`);let M=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");M.setAttributeNS(null,\"stroke\",\"none\"),M.setAttributeNS(null,\"stroke-width\",\"1\"),M.setAttributeNS(null,\"fill\",\"none\"),M.setAttributeNS(null,\"fill-rule\",\"evenodd\");let O=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");O.setAttributeNS(null,\"fill-rule\",\"nonzero\");let B=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");B.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),B.setAttributeNS(null,\"fill\",\"#000000\");let U=[{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"9.5\",ry:\"4.77275007\"},{rx:\"8.5\",ry:\"4.29549936\"},{rx:\"7.5\",ry:\"3.81822308\"},{rx:\"6.5\",ry:\"3.34094679\"},{rx:\"5.5\",ry:\"2.86367051\"},{rx:\"4.5\",ry:\"2.38636864\"}];for(let Ft of U){let Wt=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");Wt.setAttributeNS(null,\"opacity\",\"0.04\"),Wt.setAttributeNS(null,\"cx\",\"10.5\"),Wt.setAttributeNS(null,\"cy\",\"5.80029008\"),Wt.setAttributeNS(null,\"rx\",Ft.rx),Wt.setAttributeNS(null,\"ry\",Ft.ry),B.appendChild(Wt)}let W=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");W.setAttributeNS(null,\"fill\",this._color);let Z=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Z.setAttributeNS(null,\"d\",\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"),W.appendChild(Z);let Q=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Q.setAttributeNS(null,\"opacity\",\"0.25\"),Q.setAttributeNS(null,\"fill\",\"#000000\");let st=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");st.setAttributeNS(null,\"d\",\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"),Q.appendChild(st);let At=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");At.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),At.setAttributeNS(null,\"fill\",\"#FFFFFF\");let pt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");pt.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");let yt=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");yt.setAttributeNS(null,\"fill\",\"#000000\"),yt.setAttributeNS(null,\"opacity\",\"0.25\"),yt.setAttributeNS(null,\"cx\",\"5.5\"),yt.setAttributeNS(null,\"cy\",\"5.5\"),yt.setAttributeNS(null,\"r\",\"5.4999962\");let dt=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");dt.setAttributeNS(null,\"fill\",\"#FFFFFF\"),dt.setAttributeNS(null,\"cx\",\"5.5\"),dt.setAttributeNS(null,\"cy\",\"5.5\"),dt.setAttributeNS(null,\"r\",\"5.4999962\"),pt.appendChild(yt),pt.appendChild(dt),O.appendChild(B),O.appendChild(W),O.appendChild(Q),O.appendChild(At),O.appendChild(pt),d.appendChild(O),d.setAttributeNS(null,\"height\",v*this._scale+\"px\"),d.setAttributeNS(null,\"width\",b*this._scale+\"px\"),this._element.appendChild(d),this._offset=n.P.convert(l&&l.offset||[0,-14])}if(this._element.classList.add(\"maplibregl-marker\"),this._element.addEventListener(\"dragstart\",d=>{d.preventDefault()}),this._element.addEventListener(\"mousedown\",d=>{d.preventDefault()}),f_(this._element,this._anchor,\"marker\"),l&&l.className)for(let d of l.className.split(\" \"))this._element.classList.add(d);this._popup=null}addTo(l){return this.remove(),this._map=l,l.getCanvasContainer().appendChild(this._element),l.on(\"move\",this._update),l.on(\"moveend\",this._update),l.on(\"terrain\",this._update),this.setDraggable(this._draggable),this._update(),this._map.on(\"click\",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off(\"click\",this._onMapClick),this._map.off(\"move\",this._update),this._map.off(\"moveend\",this._update),this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler),this._map.off(\"mouseup\",this._onUp),this._map.off(\"touchend\",this._onUp),this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),delete this._map),c.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(l){return this._lngLat=n.L.convert(l),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(l){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),l){if(!(\"offset\"in l.options)){let b=Math.abs(13.5)/Math.SQRT2;l.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-38.1],\"bottom-left\":[b,-1*(38.1-13.5+b)],\"bottom-right\":[-b,-1*(38.1-13.5+b)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=l,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress)}return this}getPopup(){return this._popup}togglePopup(){let l=this._popup;return l?(l.isOpen()?l.remove():l.addTo(this._map),this):this}getOffset(){return this._offset}setOffset(l){return this._offset=n.P.convert(l),this._update(),this}addClassName(l){this._element.classList.add(l)}removeClassName(l){this._element.classList.remove(l)}toggleClassName(l){return this._element.classList.toggle(l)}setDraggable(l){return this._draggable=!!l,this._map&&(l?(this._map.on(\"mousedown\",this._addDragHandler),this._map.on(\"touchstart\",this._addDragHandler)):(this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(l){return this._rotation=l||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(l){return this._rotationAlignment=l||\"auto\",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(l){return this._pitchAlignment=l&&l!==\"auto\"?l:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}let Cn={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},yn=0,bf=!1,Ms={maxWidth:100,unit:\"metric\"};function mh(T,l,d){let v=d&&d.maxWidth||100,b=T._container.clientHeight/2,M=T.unproject([0,b]),O=T.unproject([v,b]),B=M.distanceTo(O);if(d&&d.unit===\"imperial\"){let U=3.2808*B;U>5280?jo(l,v,U/5280,T._getUIString(\"ScaleControl.Miles\")):jo(l,v,U,T._getUIString(\"ScaleControl.Feet\"))}else d&&d.unit===\"nautical\"?jo(l,v,B/1852,T._getUIString(\"ScaleControl.NauticalMiles\")):B>=1e3?jo(l,v,B/1e3,T._getUIString(\"ScaleControl.Kilometers\")):jo(l,v,B,T._getUIString(\"ScaleControl.Meters\"))}function jo(T,l,d,v){let b=function(M){let O=Math.pow(10,`${Math.floor(M)}`.length-1),B=M/O;return B=B>=10?10:B>=5?5:B>=3?3:B>=2?2:B>=1?1:function(U){let W=Math.pow(10,Math.ceil(-Math.log(U)/Math.LN10));return Math.round(U*W)/W}(B),O*B}(d);T.style.width=l*(b/d)+\"px\",T.innerHTML=`${b} ${v}`}let c0={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},Od=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function wf(T){if(T){if(typeof T==\"number\"){let l=Math.round(Math.abs(T)/Math.SQRT2);return{center:new n.P(0,0),top:new n.P(0,T),\"top-left\":new n.P(l,l),\"top-right\":new n.P(-l,l),bottom:new n.P(0,-T),\"bottom-left\":new n.P(l,-l),\"bottom-right\":new n.P(-l,-l),left:new n.P(T,0),right:new n.P(-T,0)}}if(T instanceof n.P||Array.isArray(T)){let l=n.P.convert(T);return{center:l,top:l,\"top-left\":l,\"top-right\":l,bottom:l,\"bottom-left\":l,\"bottom-right\":l,left:l,right:l}}return{center:n.P.convert(T.center||[0,0]),top:n.P.convert(T.top||[0,0]),\"top-left\":n.P.convert(T[\"top-left\"]||[0,0]),\"top-right\":n.P.convert(T[\"top-right\"]||[0,0]),bottom:n.P.convert(T.bottom||[0,0]),\"bottom-left\":n.P.convert(T[\"bottom-left\"]||[0,0]),\"bottom-right\":n.P.convert(T[\"bottom-right\"]||[0,0]),left:n.P.convert(T.left||[0,0]),right:n.P.convert(T.right||[0,0])}}return wf(new n.P(0,0))}let Go={extend:(T,...l)=>n.e(T,...l),run(T){T()},logToElement(T,l=!1,d=\"log\"){let v=window.document.getElementById(d);v&&(l&&(v.innerHTML=\"\"),v.innerHTML+=`
${T}`)}},sA=o;class xi{static get version(){return sA}static get workerCount(){return eo.workerCount}static set workerCount(l){eo.workerCount=l}static get maxParallelImageRequests(){return n.c.MAX_PARALLEL_IMAGE_REQUESTS}static set maxParallelImageRequests(l){n.c.MAX_PARALLEL_IMAGE_REQUESTS=l}static get workerUrl(){return n.c.WORKER_URL}static set workerUrl(l){n.c.WORKER_URL=l}static addProtocol(l,d){n.c.REGISTERED_PROTOCOLS[l]=d}static removeProtocol(l){delete n.c.REGISTERED_PROTOCOLS[l]}}return xi.Map=class extends c_{constructor(T){if(n.bg.mark(n.bh.create),(T=n.e({},fr,T)).minZoom!=null&&T.maxZoom!=null&&T.minZoom>T.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(T.minPitch!=null&&T.maxPitch!=null&&T.minPitch>T.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(T.minPitch!=null&&T.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T.maxPitch!=null&&T.maxPitch>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(super(new Qp(T.minZoom,T.maxZoom,T.minPitch,T.maxPitch,T.renderWorldCopies),{bearingSnap:T.bearingSnap}),this._cooperativeGesturesOnWheel=l=>{this._onCooperativeGesture(l,l[this._metaKey],1)},this._contextLost=l=>{l.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new n.k(\"webglcontextlost\",{originalEvent:l}))},this._contextRestored=l=>{this._setupPainter(),this.resize(),this._update(),this.fire(new n.k(\"webglcontextrestored\",{originalEvent:l}))},this._onMapScroll=l=>{if(l.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=T.interactive,this._cooperativeGestures=T.cooperativeGestures,this._metaKey=navigator.platform.indexOf(\"Mac\")===0?\"metaKey\":\"ctrlKey\",this._maxTileCacheSize=T.maxTileCacheSize,this._maxTileCacheZoomLevels=T.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=T.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=T.preserveDrawingBuffer,this._antialias=T.antialias,this._trackResize=T.trackResize,this._bearingSnap=T.bearingSnap,this._refreshExpiredTiles=T.refreshExpiredTiles,this._fadeDuration=T.fadeDuration,this._crossSourceCollisions=T.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=T.collectResourceTiming,this._renderTaskQueue=new rA,this._controls=[],this._mapId=n.a2(),this._locale=n.e({},l0,T.locale),this._clickTolerance=T.clickTolerance,this._overridePixelRatio=T.pixelRatio,this._maxCanvasSize=T.maxCanvasSize,this.transformCameraUpdate=T.transformCameraUpdate,this._imageQueueHandle=j.addThrottleControl(()=>this.isMoving()),this._requestManager=new rt(T.transformRequest),typeof T.container==\"string\"){if(this._container=document.getElementById(T.container),!this._container)throw new Error(`Container '${T.container}' not found.`)}else{if(!(T.container instanceof HTMLElement))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=T.container}if(T.maxBounds&&this.setMaxBounds(T.maxBounds),this._setupContainer(),this._setupPainter(),this.on(\"move\",()=>this._update(!1)),this.on(\"moveend\",()=>this._update(!1)),this.on(\"zoom\",()=>this._update(!0)),this.on(\"terrain\",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once(\"idle\",()=>{this._idleTriggered=!0}),typeof window<\"u\"){addEventListener(\"online\",this._onWindowOnline,!1);let l=!1,d=ah(v=>{this._trackResize&&!this._removed&&this.resize(v)._update()},50);this._resizeObserver=new ResizeObserver(v=>{l?d(v):l=!0}),this._resizeObserver.observe(this._container)}this.handlers=new a0(this,T),this._cooperativeGestures&&this._setupCooperativeGestures(),this._hash=T.hash&&new Id(typeof T.hash==\"string\"&&T.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:T.center,zoom:T.zoom,bearing:T.bearing,pitch:T.pitch}),T.bounds&&(this.resize(),this.fitBounds(T.bounds,n.e({},T.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=T.localIdeographFontFamily,this._validateStyle=T.validateStyle,T.style&&this.setStyle(T.style,{localIdeographFontFamily:T.localIdeographFontFamily}),T.attributionControl&&this.addControl(new ua({customAttribution:T.customAttribution})),T.maplibreLogo&&this.addControl(new ln,T.logoPosition),this.on(\"style.load\",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on(\"data\",l=>{this._update(l.dataType===\"style\"),this.fire(new n.k(`${l.dataType}data`,l))}),this.on(\"dataloading\",l=>{this.fire(new n.k(`${l.dataType}dataloading`,l))}),this.on(\"dataabort\",l=>{this.fire(new n.k(\"sourcedataabort\",l))})}_getMapId(){return this._mapId}addControl(T,l){if(l===void 0&&(l=T.getDefaultPosition?T.getDefaultPosition():\"top-right\"),!T||!T.onAdd)return this.fire(new n.j(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));let d=T.onAdd(this);this._controls.push(T);let v=this._controlPositions[l];return l.indexOf(\"bottom\")!==-1?v.insertBefore(d,v.firstChild):v.appendChild(d),this}removeControl(T){if(!T||!T.onRemove)return this.fire(new n.j(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));let l=this._controls.indexOf(T);return l>-1&&this._controls.splice(l,1),T.onRemove(this),this}hasControl(T){return this._controls.indexOf(T)>-1}calculateCameraOptionsFromTo(T,l,d,v){return v==null&&this.terrain&&(v=this.terrain.getElevationForLngLatZoom(d,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(T,l,d,v)}resize(T){var l;let d=this._containerDimensions(),v=d[0],b=d[1],M=this._getClampedPixelRatio(v,b);if(this._resizeCanvas(v,b,M),this.painter.resize(v,b,M),this.painter.overLimit()){let B=this.painter.context.gl;this._maxCanvasSize=[B.drawingBufferWidth,B.drawingBufferHeight];let U=this._getClampedPixelRatio(v,b);this._resizeCanvas(v,b,U),this.painter.resize(v,b,U)}this.transform.resize(v,b),(l=this._requestedCameraState)===null||l===void 0||l.resize(v,b);let O=!this._moving;return O&&(this.stop(),this.fire(new n.k(\"movestart\",T)).fire(new n.k(\"move\",T))),this.fire(new n.k(\"resize\",T)),O&&this.fire(new n.k(\"moveend\",T)),this}_getClampedPixelRatio(T,l){let{0:d,1:v}=this._maxCanvasSize,b=this.getPixelRatio(),M=T*b,O=l*b;return Math.min(M>d?d/M:1,O>v?v/O:1)*b}getPixelRatio(){var T;return(T=this._overridePixelRatio)!==null&&T!==void 0?T:devicePixelRatio}setPixelRatio(T){this._overridePixelRatio=T,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(T){return this.transform.setMaxBounds(wi.convert(T)),this._update()}setMinZoom(T){if((T=T??-2)>=-2&&T<=this.transform.maxZoom)return this.transform.minZoom=T,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=T,this._update(),this.getZoom()>T&&this.setZoom(T),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(T){if((T=T??0)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T>=0&&T<=this.transform.maxPitch)return this.transform.minPitch=T,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(T>=this.transform.minPitch)return this.transform.maxPitch=T,this._update(),this.getPitch()>T&&this.setPitch(T),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(T){return this.transform.renderWorldCopies=T,this._update()}getCooperativeGestures(){return this._cooperativeGestures}setCooperativeGestures(T){return this._cooperativeGestures=T,this._cooperativeGestures?this._setupCooperativeGestures():this._destroyCooperativeGestures(),this}project(T){return this.transform.locationPoint(n.L.convert(T),this.style&&this.terrain)}unproject(T){return this.transform.pointLocation(n.P.convert(T),this.terrain)}isMoving(){var T;return this._moving||((T=this.handlers)===null||T===void 0?void 0:T.isMoving())}isZooming(){var T;return this._zooming||((T=this.handlers)===null||T===void 0?void 0:T.isZooming())}isRotating(){var T;return this._rotating||((T=this.handlers)===null||T===void 0?void 0:T.isRotating())}_createDelegatedListener(T,l,d){if(T===\"mouseenter\"||T===\"mouseover\"){let v=!1;return{layer:l,listener:d,delegates:{mousemove:M=>{let O=this.getLayer(l)?this.queryRenderedFeatures(M.point,{layers:[l]}):[];O.length?v||(v=!0,d.call(this,new la(T,this,M.originalEvent,{features:O}))):v=!1},mouseout:()=>{v=!1}}}}if(T===\"mouseleave\"||T===\"mouseout\"){let v=!1;return{layer:l,listener:d,delegates:{mousemove:O=>{(this.getLayer(l)?this.queryRenderedFeatures(O.point,{layers:[l]}):[]).length?v=!0:v&&(v=!1,d.call(this,new la(T,this,O.originalEvent)))},mouseout:O=>{v&&(v=!1,d.call(this,new la(T,this,O.originalEvent)))}}}}{let v=b=>{let M=this.getLayer(l)?this.queryRenderedFeatures(b.point,{layers:[l]}):[];M.length&&(b.features=M,d.call(this,b),delete b.features)};return{layer:l,listener:d,delegates:{[T]:v}}}}on(T,l,d){if(d===void 0)return super.on(T,l);let v=this._createDelegatedListener(T,l,d);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[T]=this._delegatedListeners[T]||[],this._delegatedListeners[T].push(v);for(let b in v.delegates)this.on(b,v.delegates[b]);return this}once(T,l,d){if(d===void 0)return super.once(T,l);let v=this._createDelegatedListener(T,l,d);for(let b in v.delegates)this.once(b,v.delegates[b]);return this}off(T,l,d){return d===void 0?super.off(T,l):(this._delegatedListeners&&this._delegatedListeners[T]&&(v=>{let b=this._delegatedListeners[T];for(let M=0;Mthis._updateStyle(T,l));let d=this.style&&l.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!T)),T?(this.style=new Vn(this,l||{}),this.style.setEventedParent(this,{style:this.style}),typeof T==\"string\"?this.style.loadURL(T,l,d):this.style.loadJSON(T,l,d),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Vn(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(T,l){if(typeof T==\"string\"){let d=this._requestManager.transformRequest(T,Y.Style);n.f(d,(v,b)=>{v?this.fire(new n.j(v)):b&&this._updateDiff(b,l)})}else typeof T==\"object\"&&this._updateDiff(T,l)}_updateDiff(T,l){try{this.style.setState(T,l)&&this._update(!0)}catch(d){n.w(`Unable to perform style diff: ${d.message||d.error||d}. Rebuilding the style from scratch.`),this._updateStyle(T,l)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():n.w(\"There is no style added to the map.\")}addSource(T,l){return this._lazyInitEmptyStyle(),this.style.addSource(T,l),this._update(!0)}isSourceLoaded(T){let l=this.style&&this.style.sourceCaches[T];if(l!==void 0)return l.loaded();this.fire(new n.j(new Error(`There is no source with ID '${T}'`)))}setTerrain(T){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),T){let l=this.style.sourceCaches[T.source];if(!l)throw new Error(`cannot load terrain, because there exists no source with ID: ${T.source}`);for(let d in this.style._layers){let v=this.style._layers[d];v.type===\"hillshade\"&&v.source===T.source&&n.w(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\")}this.terrain=new h_(this.painter,l,T),this.painter.renderToTexture=new iA(this.painter,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=d=>{d.dataType===\"style\"?this.terrain.sourceCache.freeRtt():d.dataType===\"source\"&&d.tile&&(d.sourceId!==T.source||this._elevationFreeze||(this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(d.tile.tileID))},this.style.on(\"data\",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0;return this.fire(new n.k(\"terrain\",{terrain:T})),this}getTerrain(){var T,l;return(l=(T=this.terrain)===null||T===void 0?void 0:T.options)!==null&&l!==void 0?l:null}areTilesLoaded(){let T=this.style&&this.style.sourceCaches;for(let l in T){let d=T[l]._tiles;for(let v in d){let b=d[v];if(b.state!==\"loaded\"&&b.state!==\"errored\")return!1}}return!0}addSourceType(T,l,d){return this._lazyInitEmptyStyle(),this.style.addSourceType(T,l,d)}removeSource(T){return this.style.removeSource(T),this._update(!0)}getSource(T){return this.style.getSource(T)}addImage(T,l,d={}){let{pixelRatio:v=1,sdf:b=!1,stretchX:M,stretchY:O,content:B}=d;if(this._lazyInitEmptyStyle(),!(l instanceof HTMLImageElement||n.a(l))){if(l.width===void 0||l.height===void 0)return this.fire(new n.j(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));{let{width:U,height:W,data:Z}=l,Q=l;return this.style.addImage(T,{data:new n.R({width:U,height:W},new Uint8Array(Z)),pixelRatio:v,stretchX:M,stretchY:O,content:B,sdf:b,version:0,userImage:Q}),Q.onAdd&&Q.onAdd(this,T),this}}{let{width:U,height:W,data:Z}=n.h.getImageData(l);this.style.addImage(T,{data:new n.R({width:U,height:W},Z),pixelRatio:v,stretchX:M,stretchY:O,content:B,sdf:b,version:0})}}updateImage(T,l){let d=this.style.getImage(T);if(!d)return this.fire(new n.j(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));let v=l instanceof HTMLImageElement||n.a(l)?n.h.getImageData(l):l,{width:b,height:M,data:O}=v;if(b===void 0||M===void 0)return this.fire(new n.j(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(b!==d.data.width||M!==d.data.height)return this.fire(new n.j(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));let B=!(l instanceof HTMLImageElement||n.a(l));return d.data.replace(O,B),this.style.updateImage(T,d),this}getImage(T){return this.style.getImage(T)}hasImage(T){return T?!!this.style.getImage(T):(this.fire(new n.j(new Error(\"Missing required image id\"))),!1)}removeImage(T){this.style.removeImage(T)}loadImage(T,l){j.getImage(this._requestManager.transformRequest(T,Y.Image),l)}listImages(){return this.style.listImages()}addLayer(T,l){return this._lazyInitEmptyStyle(),this.style.addLayer(T,l),this._update(!0)}moveLayer(T,l){return this.style.moveLayer(T,l),this._update(!0)}removeLayer(T){return this.style.removeLayer(T),this._update(!0)}getLayer(T){return this.style.getLayer(T)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(T,l,d){return this.style.setLayerZoomRange(T,l,d),this._update(!0)}setFilter(T,l,d={}){return this.style.setFilter(T,l,d),this._update(!0)}getFilter(T){return this.style.getFilter(T)}setPaintProperty(T,l,d,v={}){return this.style.setPaintProperty(T,l,d,v),this._update(!0)}getPaintProperty(T,l){return this.style.getPaintProperty(T,l)}setLayoutProperty(T,l,d,v={}){return this.style.setLayoutProperty(T,l,d,v),this._update(!0)}getLayoutProperty(T,l){return this.style.getLayoutProperty(T,l)}setGlyphs(T,l={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(T,l),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(T,l,d={}){return this._lazyInitEmptyStyle(),this.style.addSprite(T,l,d,v=>{v||this._update(!0)}),this}removeSprite(T){return this._lazyInitEmptyStyle(),this.style.removeSprite(T),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(T,l={}){return this._lazyInitEmptyStyle(),this.style.setSprite(T,l,d=>{d||this._update(!0)}),this}setLight(T,l={}){return this._lazyInitEmptyStyle(),this.style.setLight(T,l),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(T,l){return this.style.setFeatureState(T,l),this._update()}removeFeatureState(T,l){return this.style.removeFeatureState(T,l),this._update()}getFeatureState(T){return this.style.getFeatureState(T)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let T=0,l=0;return this._container&&(T=this._container.clientWidth||400,l=this._container.clientHeight||300),[T,l]}_setupContainer(){let T=this._container;T.classList.add(\"maplibregl-map\");let l=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",T);this._interactive&&l.classList.add(\"maplibregl-interactive\"),this._canvas=c.create(\"canvas\",\"maplibregl-canvas\",l),this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"tabindex\",\"0\"),this._canvas.setAttribute(\"aria-label\",\"Map\"),this._canvas.setAttribute(\"role\",\"region\");let d=this._containerDimensions(),v=this._getClampedPixelRatio(d[0],d[1]);this._resizeCanvas(d[0],d[1],v);let b=this._controlContainer=c.create(\"div\",\"maplibregl-control-container\",T),M=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(O=>{M[O]=c.create(\"div\",`maplibregl-ctrl-${O} `,b)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_setupCooperativeGestures(){this._cooperativeGesturesScreen=c.create(\"div\",\"maplibregl-cooperative-gesture-screen\",this._container);let T=typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.windowsHelpText?this._cooperativeGestures.windowsHelpText:\"Use Ctrl + scroll to zoom the map\";navigator.platform.indexOf(\"Mac\")===0&&(T=typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.macHelpText?this._cooperativeGestures.macHelpText:\"Use \\u2318 + scroll to zoom the map\"),this._cooperativeGesturesScreen.innerHTML=`\n
${T}
\n
${typeof this._cooperativeGestures!=\"boolean\"&&this._cooperativeGestures.mobileHelpText?this._cooperativeGestures.mobileHelpText:\"Use two fingers to move the map\"}
\n `,this._cooperativeGesturesScreen.setAttribute(\"aria-hidden\",\"true\"),this._canvasContainer.addEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.add(\"maplibregl-cooperative-gestures\")}_destroyCooperativeGestures(){c.remove(this._cooperativeGesturesScreen),this._canvasContainer.removeEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.remove(\"maplibregl-cooperative-gestures\")}_resizeCanvas(T,l,d){this._canvas.width=Math.floor(d*T),this._canvas.height=Math.floor(d*l),this._canvas.style.width=`${T}px`,this._canvas.style.height=`${l}px`}_setupPainter(){let T={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1},l=null;this._canvas.addEventListener(\"webglcontextcreationerror\",v=>{l={requestedAttributes:T},v&&(l.statusMessage=v.statusMessage,l.type=v.type)},{once:!0});let d=this._canvas.getContext(\"webgl2\",T)||this._canvas.getContext(\"webgl\",T);if(!d){let v=\"Failed to initialize WebGL\";throw l?(l.message=v,new Error(JSON.stringify(l))):new Error(v)}this.painter=new oh(d,this.transform),f.testSupport(d)}_onCooperativeGesture(T,l,d){return!l&&d<2&&(this._cooperativeGesturesScreen.classList.add(\"maplibregl-show\"),setTimeout(()=>{this._cooperativeGesturesScreen.classList.remove(\"maplibregl-show\")},100)),!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(T){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||T,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(T){return this._update(),this._renderTaskQueue.add(T)}_cancelRenderFrame(T){this._renderTaskQueue.remove(T)}_render(T){let l=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(T),this._removed)return;let d=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let b=this.transform.zoom,M=n.h.now();this.style.zoomHistory.update(b,M);let O=new n.a8(b,{now:M,fadeDuration:l,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),B=O.crossFadingFactor();B===1&&B===this._crossFadingFactor||(d=!0,this._crossFadingFactor=B),this.style.update(O)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,l,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:l,showPadding:this.showPadding}),this.fire(new n.k(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,n.bg.mark(n.bh.load),this.fire(new n.k(\"load\"))),this.style&&(this.style.hasTransitions()||d)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let v=this._sourcesDirty||this._styleDirty||this._placementDirty;return v||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new n.k(\"idle\")),!this._loaded||this._fullyLoaded||v||(this._fullyLoaded=!0,n.bg.mark(n.bh.fullLoad)),this}redraw(){return this.style&&(this._frame&&(this._frame.cancel(),this._frame=null),this._render(0)),this}remove(){var T;this._hash&&this._hash.remove();for(let d of this._controls)d.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<\"u\"&&removeEventListener(\"online\",this._onWindowOnline,!1),j.removeThrottleControl(this._imageQueueHandle),(T=this._resizeObserver)===null||T===void 0||T.disconnect();let l=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");l&&l.loseContext(),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),c.remove(this._canvasContainer),c.remove(this._controlContainer),this._cooperativeGestures&&this._destroyCooperativeGestures(),this._container.classList.remove(\"maplibregl-map\"),n.bg.clearMetrics(),this._removed=!0,this.fire(new n.k(\"remove\"))}triggerRepaint(){this.style&&!this._frame&&(this._frame=n.h.frame(T=>{n.bg.frame(T),this._frame=null,this._render(T)}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(T){this._showTileBoundaries!==T&&(this._showTileBoundaries=T,this._update())}get showPadding(){return!!this._showPadding}set showPadding(T){this._showPadding!==T&&(this._showPadding=T,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(T){this._showCollisionBoxes!==T&&(this._showCollisionBoxes=T,T?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(T){this._showOverdrawInspector!==T&&(this._showOverdrawInspector=T,this._update())}get repaint(){return!!this._repaint}set repaint(T){this._repaint!==T&&(this._repaint=T,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(T){this._vertices=T,this._update()}get version(){return rr}getCameraTargetElevation(){return this.transform.elevation}},xi.NavigationControl=class{constructor(T){this._updateZoomButtons=()=>{let l=this._map.getZoom(),d=l===this._map.getMaxZoom(),v=l===this._map.getMinZoom();this._zoomInButton.disabled=d,this._zoomOutButton.disabled=v,this._zoomInButton.setAttribute(\"aria-disabled\",d.toString()),this._zoomOutButton.setAttribute(\"aria-disabled\",v.toString())},this._rotateCompassArrow=()=>{let l=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=l},this._setButtonTitle=(l,d)=>{let v=this._map._getUIString(`NavigationControl.${d}`);l.title=v,l.setAttribute(\"aria-label\",v)},this.options=n.e({},nA,T),this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",l=>l.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton(\"maplibregl-ctrl-zoom-in\",l=>this._map.zoomIn({},{originalEvent:l})),c.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"maplibregl-ctrl-zoom-out\",l=>this._map.zoomOut({},{originalEvent:l})),c.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(this._compass=this._createButton(\"maplibregl-ctrl-compass\",l=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:l}):this._map.resetNorth({},{originalEvent:l})}),this._compassIcon=c.create(\"span\",\"maplibregl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"))}onAdd(T){return this._map=T,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),this._map.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&this._map.on(\"pitch\",this._rotateCompassArrow),this._map.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Dd(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){c.remove(this._container),this.options.showZoom&&this._map.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(\"pitch\",this._rotateCompassArrow),this._map.off(\"rotate\",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(T,l){let d=c.create(\"button\",T,this._container);return d.type=\"button\",d.addEventListener(\"click\",l),d}},xi.GeolocateControl=class extends n.E{constructor(T){super(),this._onSuccess=l=>{if(this._map){if(this._isOutOfMapMaxBounds(l))return this._setErrorState(),this.fire(new n.k(\"outofmaxbounds\",l)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=l,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!==\"OFF\"&&this._updateMarker(l),this.options.trackUserLocation&&this._watchState!==\"ACTIVE_LOCK\"||this._updateCamera(l),this.options.showUserLocation&&this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\"),this.fire(new n.k(\"geolocate\",l)),this._finish()}},this._updateCamera=l=>{let d=new n.L(l.coords.longitude,l.coords.latitude),v=l.coords.accuracy,b=this._map.getBearing(),M=n.e({bearing:b},this.options.fitBoundsOptions),O=wi.fromLngLat(d,v);this._map.fitBounds(O,M,{geolocateSource:!0})},this._updateMarker=l=>{if(l){let d=new n.L(l.coords.longitude,l.coords.latitude);this._accuracyCircleMarker.setLngLat(d).addTo(this._map),this._userLocationDotMarker.setLngLat(d).addTo(this._map),this._accuracy=l.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=l=>{if(this._map){if(this.options.trackUserLocation)if(l.code===1){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;let d=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(l.code===3&&bf)return;this._setErrorState()}this._watchState!==\"OFF\"&&this.options.showUserLocation&&this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"),this.fire(new n.k(\"error\",l)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=l=>{if(this._map){if(this._container.addEventListener(\"contextmenu\",d=>d.preventDefault()),this._geolocateButton=c.create(\"button\",\"maplibregl-ctrl-geolocate\",this._container),c.create(\"span\",\"maplibregl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",\"true\"),this._geolocateButton.type=\"button\",l===!1){n.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");let d=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d)}else{let d=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.title=d,this._geolocateButton.setAttribute(\"aria-label\",d)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=c.create(\"div\",\"maplibregl-user-location-dot\"),this._userLocationDotMarker=new Ah({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Ah({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",d=>{d.geolocateSource||this._watchState!==\"ACTIVE_LOCK\"||d.originalEvent&&d.originalEvent.type===\"resize\"||(this._watchState=\"BACKGROUND\",this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this.fire(new n.k(\"trackuserlocationend\")))})}},this.options=n.e({},Cn,T)}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),function(l,d=!1){Gn===void 0||d?window.navigator.permissions!==void 0?window.navigator.permissions.query({name:\"geolocation\"}).then(v=>{Gn=v.state!==\"denied\",l(Gn)}).catch(()=>{Gn=!!window.navigator.geolocation,l(Gn)}):(Gn=!!window.navigator.geolocation,l(Gn)):l(Gn)}(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),c.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,yn=0,bf=!1}_isOutOfMapMaxBounds(T){let l=this._map.getMaxBounds(),d=T.coords;return l&&(d.longitudel.getEast()||d.latitudel.getNorth())}_setErrorState(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"ACTIVE_ERROR\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){let T=this._map.getBounds(),l=T.getSouthEast(),d=T.getNorthEast(),v=l.distanceTo(d),b=Math.ceil(this._accuracy/(v/this._map._container.clientHeight)*2);this._circleElement.style.width=`${b}px`,this._circleElement.style.height=`${b}px`}trigger(){if(!this._setup)return n.w(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new n.k(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":yn--,bf=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this.fire(new n.k(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new n.k(\"trackuserlocationstart\"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"OFF\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState===\"OFF\"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let T;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),yn++,yn>1?(T={maximumAge:6e5,timeout:0},bf=!0):(T=this.options.positionOptions,bf=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,T)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null)}},xi.AttributionControl=ua,xi.LogoControl=ln,xi.ScaleControl=class{constructor(T){this._onMove=()=>{mh(this._map,this._container,this.options)},this.setUnit=l=>{this.options.unit=l,mh(this._map,this._container,this.options)},this.options=n.e({},Ms,T)}getDefaultPosition(){return\"bottom-left\"}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",T.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container}onRemove(){c.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0}},xi.FullscreenControl=class extends n.E{constructor(T={}){super(),this._onFullscreenChange=()=>{(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,T&&T.container&&(T.container instanceof HTMLElement?this._container=T.container:n.w(\"Full screen control 'container' must be a DOM element.\")),\"onfullscreenchange\"in document?this._fullscreenchange=\"fullscreenchange\":\"onmozfullscreenchange\"in document?this._fullscreenchange=\"mozfullscreenchange\":\"onwebkitfullscreenchange\"in document?this._fullscreenchange=\"webkitfullscreenchange\":\"onmsfullscreenchange\"in document&&(this._fullscreenchange=\"MSFullscreenChange\")}onAdd(T){return this._map=T,this._container||(this._container=this._map.getContainer()),this._controlContainer=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),this._controlContainer}onRemove(){c.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){let T=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",T).setAttribute(\"aria-hidden\",\"true\"),T.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let T=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",T),this._fullscreenButton.title=T}_getTitle(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"),this._updateTitle(),this._fullscreen?(this.fire(new n.k(\"fullscreenstart\")),this._map._cooperativeGestures&&(this._prevCooperativeGestures=this._map._cooperativeGestures,this._map.setCooperativeGestures())):(this.fire(new n.k(\"fullscreenend\")),this._prevCooperativeGestures&&(this._map.setCooperativeGestures(this._prevCooperativeGestures),delete this._prevCooperativeGestures))}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"),this._handleFullscreenChange(),this._map.resize()}},xi.TerrainControl=class{constructor(T){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"),this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"),this._map.terrain?(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.disableTerrain\")):(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.enableTerrain\"))},this.options=T}onAdd(T){return this._map=T,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._terrainButton=c.create(\"button\",\"maplibregl-ctrl-terrain\",this._container),c.create(\"span\",\"maplibregl-ctrl-icon\",this._terrainButton).setAttribute(\"aria-hidden\",\"true\"),this._terrainButton.type=\"button\",this._terrainButton.addEventListener(\"click\",this._toggleTerrain),this._updateTerrainIcon(),this._map.on(\"terrain\",this._updateTerrainIcon),this._container}onRemove(){c.remove(this._container),this._map.off(\"terrain\",this._updateTerrainIcon),this._map=void 0}},xi.Popup=class extends n.E{constructor(T){super(),this.remove=()=>(this._content&&c.remove(this._content),this._container&&(c.remove(this._container),delete this._container),this._map&&(this._map.off(\"move\",this._update),this._map.off(\"move\",this._onClose),this._map.off(\"click\",this._onClose),this._map.off(\"remove\",this.remove),this._map.off(\"mousemove\",this._onMouseMove),this._map.off(\"mouseup\",this._onMouseUp),this._map.off(\"drag\",this._onDrag),delete this._map),this.fire(new n.k(\"close\")),this),this._onMouseUp=l=>{this._update(l.point)},this._onMouseMove=l=>{this._update(l.point)},this._onDrag=l=>{this._update(l.point)},this._update=l=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=c.create(\"div\",\"maplibregl-popup\",this._map.getContainer()),this._tip=c.create(\"div\",\"maplibregl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className)for(let O of this.options.className.split(\" \"))this._container.classList.add(O);this._trackPointer&&this._container.classList.add(\"maplibregl-popup-track-pointer\")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=io(this._lngLat,this._pos,this._map.transform)),this._trackPointer&&!l)return;let d=this._pos=this._trackPointer&&l?l:this._map.project(this._lngLat),v=this.options.anchor,b=wf(this.options.offset);if(!v){let O=this._container.offsetWidth,B=this._container.offsetHeight,U;U=d.y+b.bottom.ythis._map.transform.height-B?[\"bottom\"]:[],d.xthis._map.transform.width-O/2&&U.push(\"right\"),v=U.length===0?\"bottom\":U.join(\"-\")}let M=d.add(b[v]).round();c.setTransform(this._container,`${Ui[v]} translate(${M.x}px,${M.y}px)`),f_(this._container,v,\"popup\")},this._onClose=()=>{this.remove()},this.options=n.e(Object.create(c0),T)}addTo(T){return this._map&&this.remove(),this._map=T,this.options.closeOnClick&&this._map.on(\"click\",this._onClose),this.options.closeOnMove&&this._map.on(\"move\",this._onClose),this._map.on(\"remove\",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"mouseup\",this._onMouseUp),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new n.k(\"open\")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(T){return this._lngLat=n.L.convert(T),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(\"move\",this._update),this._map.off(\"mousemove\",this._onMouseMove),this._container&&this._container.classList.remove(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off(\"move\",this._update),this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"drag\",this._onDrag),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")),this}getElement(){return this._container}setText(T){return this.setDOMContent(document.createTextNode(T))}setHTML(T){let l=document.createDocumentFragment(),d=document.createElement(\"body\"),v;for(d.innerHTML=T;v=d.firstChild,v;)l.appendChild(v);return this.setDOMContent(l)}getMaxWidth(){var T;return(T=this._container)===null||T===void 0?void 0:T.style.maxWidth}setMaxWidth(T){return this.options.maxWidth=T,this._update(),this}setDOMContent(T){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=c.create(\"div\",\"maplibregl-popup-content\",this._container);return this._content.appendChild(T),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(T){this._container&&this._container.classList.add(T)}removeClassName(T){this._container&&this._container.classList.remove(T)}setOffset(T){return this.options.offset=T,this._update(),this}toggleClassName(T){if(this._container)return this._container.classList.toggle(T)}_createCloseButton(){this.options.closeButton&&(this._closeButton=c.create(\"button\",\"maplibregl-popup-close-button\",this._content),this._closeButton.type=\"button\",this._closeButton.setAttribute(\"aria-label\",\"Close popup\"),this._closeButton.innerHTML=\"×\",this._closeButton.addEventListener(\"click\",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let T=this._container.querySelector(Od);T&&T.focus()}},xi.Marker=Ah,xi.Style=Vn,xi.LngLat=n.L,xi.LngLatBounds=wi,xi.Point=n.P,xi.MercatorCoordinate=n.U,xi.Evented=n.E,xi.AJAXError=n.bi,xi.config=n.c,xi.CanvasSource=No,xi.GeoJSONSource=Zi,xi.ImageSource=Ii,xi.RasterDEMTileSource=Cc,xi.RasterTileSource=Ic,xi.VectorTileSource=sl,xi.VideoSource=Xn,xi.setRTLTextPlugin=n.bj,xi.getRTLTextPluginStatus=n.bk,xi.prewarm=function(){po().acquire(oi)},xi.clearPrewarmedResources=function(){let T=al;T&&(T.isPreloaded()&&T.numActive()===1?(T.release(oi),al=null):console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"))},Go.extend(xi,{isSafari:n.ac,getPerformanceMetrics:n.bg.getPerformanceMetrics}),xi});var s=r;return s})});var eG=Br((d6t,GE)=>{(function(e,t,r,i){\"use strict\";var s=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],n=t.createElement(\"div\"),o=\"function\",c=Math.round,f=Math.abs,_=Date.now;function w(lt,ft,Lt){return setTimeout(K(lt,Lt),ft)}function C(lt,ft,Lt){return Array.isArray(lt)?(R(lt,Lt[ft],Lt),!0):!1}function R(lt,ft,Lt){var $t;if(lt)if(lt.forEach)lt.forEach(ft,Lt);else if(lt.length!==i)for($t=0;$t\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",ti=e.console&&(e.console.warn||e.console.log);return ti&&ti.call(e.console,$t,qe),lt.apply(this,arguments)}}var j;typeof Object.assign!=\"function\"?j=function(ft){if(ft===i||ft===null)throw new TypeError(\"Cannot convert undefined or null to object\");for(var Lt=Object(ft),$t=1;$t-1}function le(lt){return lt.trim().split(/\\s+/g)}function ue(lt,ft,Lt){if(lt.indexOf&&!Lt)return lt.indexOf(ft);for(var $t=0;$tBs[ft]}):$t=$t.sort()),$t}function er(lt,ft){for(var Lt,$t,ge=ft[0].toUpperCase()+ft.slice(1),qe=0;qe1&&!Lt.firstMultiple?Lt.firstMultiple=po(ft):ge===1&&(Lt.firstMultiple=!1);var qe=Lt.firstInput,ti=Lt.firstMultiple,ts=ti?ti.center:qe.center,Ss=ft.center=ll($t);ft.timeStamp=_(),ft.deltaTime=ft.timeStamp-qe.timeStamp,ft.angle=Uo(ts,Ss),ft.distance=ve(ts,Ss),uu(Lt,ft),ft.offsetDirection=Ao(ft.deltaX,ft.deltaY);var Bs=Pa(ft.deltaTime,ft.deltaX,ft.deltaY);ft.overallVelocityX=Bs.x,ft.overallVelocityY=Bs.y,ft.overallVelocity=f(Bs.x)>f(Bs.y)?Bs.x:Bs.y,ft.scale=ti?Bl(ti.pointers,$t):1,ft.rotation=ti?dn(ti.pointers,$t):0,ft.maxPointers=Lt.prevInput?ft.pointers.length>Lt.prevInput.maxPointers?ft.pointers.length:Lt.prevInput.maxPointers:ft.pointers.length,al(Lt,ft);var ka=lt.element;Kt(ft.srcEvent.target,ka)&&(ka=ft.srcEvent.target),ft.target=ka}function uu(lt,ft){var Lt=ft.center,$t=lt.offsetDelta||{},ge=lt.prevDelta||{},qe=lt.prevInput||{};(ft.eventType===Zi||qe.eventType===Ii)&&(ge=lt.prevDelta={x:qe.deltaX||0,y:qe.deltaY||0},$t=lt.offsetDelta={x:Lt.x,y:Lt.y}),ft.deltaX=ge.x+(Lt.x-$t.x),ft.deltaY=ge.y+(Lt.y-$t.y)}function al(lt,ft){var Lt=lt.lastInterval||ft,$t=ft.timeStamp-Lt.timeStamp,ge,qe,ti,ts;if(ft.eventType!=Xn&&($t>Cc||Lt.velocity===i)){var Ss=ft.deltaX-Lt.deltaX,Bs=ft.deltaY-Lt.deltaY,ka=Pa($t,Ss,Bs);qe=ka.x,ti=ka.y,ge=f(ka.x)>f(ka.y)?ka.x:ka.y,ts=Ao(Ss,Bs),lt.lastInterval=ft}else ge=Lt.velocity,qe=Lt.velocityX,ti=Lt.velocityY,ts=Lt.direction;ft.velocity=ge,ft.velocityX=qe,ft.velocityY=ti,ft.direction=ts}function po(lt){for(var ft=[],Lt=0;Lt=f(ft)?lt<0?ol:fo:ft<0?Ea:na}function ve(lt,ft,Lt){Lt||(Lt=te);var $t=ft[Lt[0]]-lt[Lt[0]],ge=ft[Lt[1]]-lt[Lt[1]];return Math.sqrt($t*$t+ge*ge)}function Uo(lt,ft,Lt){Lt||(Lt=te);var $t=ft[Lt[0]]-lt[Lt[0]],ge=ft[Lt[1]]-lt[Lt[1]];return Math.atan2(ge,$t)*180/Math.PI}function dn(lt,ft){return Uo(ft[1],ft[0],os)+Uo(lt[1],lt[0],os)}function Bl(lt,ft){return ve(ft[0],ft[1],os)/ve(lt[0],lt[1],os)}var Ia={mousedown:Zi,mousemove:$n,mouseup:Ii},Se=\"mousedown\",Dr=\"mousemove mouseup\";function mr(){this.evEl=Se,this.evWin=Dr,this.pressed=!1,fn.apply(this,arguments)}$(mr,fn,{handler:function(ft){var Lt=Ia[ft.type];Lt&Zi&&ft.button===0&&(this.pressed=!0),Lt&$n&&ft.which!==1&&(Lt=Ii),this.pressed&&(Lt&Ii&&(this.pressed=!1),this.callback(this.manager,Lt,{pointers:[ft],changedPointers:[ft],pointerType:sl,srcEvent:ft}))}});var Os={pointerdown:Zi,pointermove:$n,pointerup:Ii,pointercancel:Xn,pointerout:Xn},Ca={2:wi,3:Ds,4:sl,5:Ic},Tr=\"pointerdown\",sa=\"pointermove pointerup pointercancel\";e.MSPointerEvent&&!e.PointerEvent&&(Tr=\"MSPointerDown\",sa=\"MSPointerMove MSPointerUp MSPointerCancel\");function gt(){this.evEl=Tr,this.evWin=sa,fn.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}$(gt,fn,{handler:function(ft){var Lt=this.store,$t=!1,ge=ft.type.toLowerCase().replace(\"ms\",\"\"),qe=Os[ge],ti=Ca[ft.pointerType]||ft.pointerType,ts=ti==wi,Ss=ue(Lt,ft.pointerId,\"pointerId\");qe&Zi&&(ft.button===0||ts)?Ss<0&&(Lt.push(ft),Ss=Lt.length-1):qe&(Ii|Xn)&&($t=!0),!(Ss<0)&&(Lt[Ss]=ft,this.callback(this.manager,qe,{pointers:Lt,changedPointers:[ft],pointerType:ti,srcEvent:ft}),$t&&Lt.splice(Ss,1))}});var J={touchstart:Zi,touchmove:$n,touchend:Ii,touchcancel:Xn},nt=\"touchstart\",ht=\"touchstart touchmove touchend touchcancel\";function vt(){this.evTarget=nt,this.evWin=ht,this.started=!1,fn.apply(this,arguments)}$(vt,fn,{handler:function(ft){var Lt=J[ft.type];if(Lt===Zi&&(this.started=!0),!!this.started){var $t=xt.call(this,ft,Lt);Lt&(Ii|Xn)&&$t[0].length-$t[1].length===0&&(this.started=!1),this.callback(this.manager,Lt,{pointers:$t[0],changedPointers:$t[1],pointerType:wi,srcEvent:ft})}}});function xt(lt,ft){var Lt=Ge(lt.touches),$t=Ge(lt.changedTouches);return ft&(Ii|Xn)&&(Lt=tr(Lt.concat($t),\"identifier\",!0)),[Lt,$t]}var _t={touchstart:Zi,touchmove:$n,touchend:Ii,touchcancel:Xn},Dt=\"touchstart touchmove touchend touchcancel\";function Mt(){this.evTarget=Dt,this.targetIds={},fn.apply(this,arguments)}$(Mt,fn,{handler:function(ft){var Lt=_t[ft.type],$t=Ut.call(this,ft,Lt);$t&&this.callback(this.manager,Lt,{pointers:$t[0],changedPointers:$t[1],pointerType:wi,srcEvent:ft})}});function Ut(lt,ft){var Lt=Ge(lt.touches),$t=this.targetIds;if(ft&(Zi|$n)&&Lt.length===1)return $t[Lt[0].identifier]=!0,[Lt,Lt];var ge,qe,ti=Ge(lt.changedTouches),ts=[],Ss=this.target;if(qe=Lt.filter(function(Bs){return Kt(Bs.target,Ss)}),ft===Zi)for(ge=0;ge-1&&$t.splice(qe,1)};setTimeout(ge,re)}}function Ye(lt){for(var ft=lt.srcEvent.clientX,Lt=lt.srcEvent.clientY,$t=0;$t-1&&this.requireFail.splice(ft,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(lt){return!!this.simultaneous[lt.id]},emit:function(lt){var ft=this,Lt=this.state;function $t(ge){ft.manager.emit(ge,lt)}Lt=ai&&$t(ft.options.event+Bm(Lt))},tryEmit:function(lt){if(this.canEmit())return this.emit(lt);this.state=on},canEmit:function(){for(var lt=0;ltft.threshold&&ge&ft.direction},attrTest:function(lt){return mo.prototype.attrTest.call(this,lt)&&(this.state&ws||!(this.state&ws)&&this.directionTest(lt))},emit:function(lt){this.pX=lt.deltaX,this.pY=lt.deltaY;var ft=Vo(lt.direction);ft&&(lt.additionalEvent=this.options.event+ft),this._super.emit.call(this,lt)}});function Yi(){mo.apply(this,arguments)}$(Yi,mo,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[Hr]},attrTest:function(lt){return this._super.attrTest.call(this,lt)&&(Math.abs(lt.scale-1)>this.options.threshold||this.state&ws)},emit:function(lt){if(lt.scale!==1){var ft=lt.scale<1?\"in\":\"out\";lt.additionalEvent=this.options.event+ft}this._super.emit.call(this,lt)}});function _i(){kn.apply(this,arguments),this._timer=null,this._input=null}$(_i,kn,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Bi]},process:function(lt){var ft=this.options,Lt=lt.pointers.length===ft.pointers,$t=lt.distanceft.time;if(this._input=lt,!$t||!Lt||lt.eventType&(Ii|Xn)&&!ge)this.reset();else if(lt.eventType&Zi)this.reset(),this._timer=w(function(){this.state=La,this.tryEmit()},ft.time,this);else if(lt.eventType&Ii)return La;return on},reset:function(){clearTimeout(this._timer)},emit:function(lt){this.state===La&&(lt&<.eventType&Ii?this.manager.emit(this.options.event+\"up\",lt):(this._input.timeStamp=_(),this.manager.emit(this.options.event,this._input)))}});function Nl(){mo.apply(this,arguments)}$(Nl,mo,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[Hr]},attrTest:function(lt){return this._super.attrTest.call(this,lt)&&(Math.abs(lt.rotation)>this.options.threshold||this.state&ws)}});function an(){mo.apply(this,arguments)}$(an,mo,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:ss|to,pointers:1},getTouchAction:function(){return zl.prototype.getTouchAction.call(this)},attrTest:function(lt){var ft=this.options.direction,Lt;return ft&(ss|to)?Lt=lt.overallVelocity:ft&ss?Lt=lt.overallVelocityX:ft&to&&(Lt=lt.overallVelocityY),this._super.attrTest.call(this,lt)&&ft<.offsetDirection&<.distance>this.options.threshold&<.maxPointers==this.options.pointers&&f(Lt)>this.options.velocity&<.eventType&Ii},emit:function(lt){var ft=Vo(lt.offsetDirection);ft&&this.manager.emit(this.options.event+ft,lt),this.manager.emit(this.options.event,lt)}});function hu(){kn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}$(hu,kn,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ni]},process:function(lt){var ft=this.options,Lt=lt.pointers.length===ft.pointers,$t=lt.distance{\"use strict\";QO.exports=b3;QO.exports.default=b3;function b3(e,t,r){r=r||2;var i=t&&t.length,s=i?t[0]*r:e.length,n=GH(e,0,s,r,!0),o=[];if(!n||n.next===n.prev)return o;var c,f,_,w,C,R,N;if(i&&(n=Sdt(e,t,n,r)),e.length>80*r){c=_=e[0],f=w=e[1];for(var j=r;j_&&(_=C),R>w&&(w=R);N=Math.max(_-c,w-f),N=N!==0?32767/N:0}return z2(n,o,r,c,f,N,0),o}function GH(e,t,r,i,s){var n,o;if(s===YO(e,t,r,i)>0)for(n=t;n=t;n-=i)o=jH(n,e[n],e[n+1],o);return o&&w3(o,o.next)&&(U2(o),o=o.next),o}function Rg(e,t){if(!e)return e;t||(t=e);var r=e,i;do if(i=!1,!r.steiner&&(w3(r,r.next)||_s(r.prev,r,r.next)===0)){if(U2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function z2(e,t,r,i,s,n,o){if(e){!o&&n&&Idt(e,i,s,n);for(var c=e,f,_;e.prev!==e.next;){if(f=e.prev,_=e.next,n?xdt(e,i,s,n):vdt(e)){t.push(f.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),U2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=bdt(Rg(e),t,r),z2(e,t,r,i,s,n,2)):o===2&&wdt(e,t,r,i,s,n):z2(Rg(e),t,r,i,s,n,1);break}}}}function vdt(e){var t=e.prev,r=e,i=e.next;if(_s(t,r,i)>=0)return!1;for(var s=t.x,n=r.x,o=i.x,c=t.y,f=r.y,_=i.y,w=sn?s>o?s:o:n>o?n:o,N=c>f?c>_?c:_:f>_?f:_,j=i.next;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=C&&j.y<=N&&jv(s,c,n,f,o,_,j.x,j.y)&&_s(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function xdt(e,t,r,i){var s=e.prev,n=e,o=e.next;if(_s(s,n,o)>=0)return!1;for(var c=s.x,f=n.x,_=o.x,w=s.y,C=n.y,R=o.y,N=cf?c>_?c:_:f>_?f:_,rt=w>C?w>R?w:R:C>R?C:R,$=qO(N,j,t,r,i),K=qO(Y,rt,t,r,i),tt=e.prevZ,ut=e.nextZ;tt&&tt.z>=$&&ut&&ut.z<=K;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&jv(c,w,f,C,_,R,tt.x,tt.y)&&_s(tt.prev,tt,tt.next)>=0||(tt=tt.prevZ,ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&jv(c,w,f,C,_,R,ut.x,ut.y)&&_s(ut.prev,ut,ut.next)>=0))return!1;ut=ut.nextZ}for(;tt&&tt.z>=$;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&jv(c,w,f,C,_,R,tt.x,tt.y)&&_s(tt.prev,tt,tt.next)>=0)return!1;tt=tt.prevZ}for(;ut&&ut.z<=K;){if(ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&jv(c,w,f,C,_,R,ut.x,ut.y)&&_s(ut.prev,ut,ut.next)>=0)return!1;ut=ut.nextZ}return!0}function bdt(e,t,r){var i=e;do{var s=i.prev,n=i.next.next;!w3(s,n)&&WH(s,i,i.next,n)&&N2(s,n)&&N2(n,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(n.i/r|0),U2(i),U2(i.next),i=e=n),i=i.next}while(i!==e);return Rg(i)}function wdt(e,t,r,i,s,n){var o=e;do{for(var c=o.next.next;c!==o.prev;){if(o.i!==c.i&&kdt(o,c)){var f=HH(o,c);o=Rg(o,o.next),f=Rg(f,f.next),z2(o,t,r,i,s,n,0),z2(f,t,r,i,s,n,0);return}c=c.next}o=o.next}while(o!==e)}function Sdt(e,t,r,i){var s=[],n,o,c,f,_;for(n=0,o=t.length;n=r.next.y&&r.next.y!==r.y){var c=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(c<=i&&c>n&&(n=c,o=r.x=r.x&&r.x>=_&&i!==r.x&&jv(so.x||r.x===o.x&&Pdt(o,r)))&&(o=r,C=R)),r=r.next;while(r!==f);return o}function Pdt(e,t){return _s(e.prev,e,t.prev)<0&&_s(t.next,e,e.next)<0}function Idt(e,t,r,i){var s=e;do s.z===0&&(s.z=qO(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,Cdt(s)}function Cdt(e){var t,r,i,s,n,o,c,f,_=1;do{for(r=e,e=null,n=null,o=0;r;){for(o++,i=r,c=0,t=0;t<_&&(c++,i=i.nextZ,!!i);t++);for(f=_;c>0||f>0&&i;)c!==0&&(f===0||!i||r.z<=i.z)?(s=r,r=r.nextZ,c--):(s=i,i=i.nextZ,f--),n?n.nextZ=s:e=s,s.prevZ=n,n=s;r=i}n.nextZ=null,_*=2}while(o>1);return e}function qO(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Ldt(e){var t=e,r=e;do(t.x=(e-o)*(n-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(n-c)>=(s-o)*(i-c)}function kdt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Rdt(e,t)&&(N2(e,t)&&N2(t,e)&&Ddt(e,t)&&(_s(e.prev,e,t.prev)||_s(e,t.prev,t))||w3(e,t)&&_s(e.prev,e,e.next)>0&&_s(t.prev,t,t.next)>0)}function _s(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function w3(e,t){return e.x===t.x&&e.y===t.y}function WH(e,t,r,i){var s=x3(_s(e,t,r)),n=x3(_s(e,t,i)),o=x3(_s(r,i,e)),c=x3(_s(r,i,t));return!!(s!==n&&o!==c||s===0&&v3(e,r,t)||n===0&&v3(e,i,t)||o===0&&v3(r,e,i)||c===0&&v3(r,t,i))}function v3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function x3(e){return e>0?1:e<0?-1:0}function Rdt(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&WH(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function N2(e,t){return _s(e.prev,e,e.next)<0?_s(e,t,e.next)>=0&&_s(e,e.prev,t)>=0:_s(e,t,e.prev)<0||_s(e,e.next,t)<0}function Ddt(e,t){var r=e,i=!1,s=(e.x+t.x)/2,n=(e.y+t.y)/2;do r.y>n!=r.next.y>n&&r.next.y!==r.y&&s<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function HH(e,t){var r=new ZO(e.i,e.x,e.y),i=new ZO(t.i,t.x,t.y),s=e.next,n=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,n.next=i,i.prev=n,i}function jH(e,t,r,i){var s=new ZO(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function U2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function ZO(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}b3.deviation=function(e,t,r,i){var s=t&&t.length,n=s?t[0]*r:e.length,o=Math.abs(YO(e,0,n,r));if(s)for(var c=0,f=t.length;c0&&(i+=e[s-1].length,r.holes.push(i))}return r}});var jB=Br(Ax=>{\"use strict\";Object.defineProperty(Ax,\"__esModule\",{value:!0});Ax.DefaultSerializer=Ax.extendSerializer=void 0;function W_t(e,t){let r=e.deserialize.bind(e),i=e.serialize.bind(e);return{deserialize(s){return t.deserialize(s,r)},serialize(s){return t.serialize(s,i)}}}Ax.extendSerializer=W_t;var DQ={deserialize(e){return Object.assign(Error(e.message),{name:e.name,stack:e.stack})},serialize(e){return{__error_marker:\"$$error\",message:e.message,name:e.name,stack:e.stack}}},H_t=e=>e&&typeof e==\"object\"&&\"__error_marker\"in e&&e.__error_marker===\"$$error\";Ax.DefaultSerializer={deserialize(e){return H_t(e)?DQ.deserialize(e):e},serialize(e){return e instanceof Error?DQ.serialize(e):e}}});var mx=Br(Em=>{\"use strict\";Object.defineProperty(Em,\"__esModule\",{value:!0});Em.serialize=Em.deserialize=Em.registerSerializer=void 0;var OQ=jB(),vI=OQ.DefaultSerializer;function q_t(e){vI=OQ.extendSerializer(vI,e)}Em.registerSerializer=q_t;function Z_t(e){return vI.deserialize(e)}Em.deserialize=Z_t;function Y_t(e){return vI.serialize(e)}Em.serialize=Y_t});var FQ=Br(gx=>{\"use strict\";Object.defineProperty(gx,\"__esModule\",{value:!0});gx.getBundleURL=gx.getBaseURL=void 0;var GB;function Q_t(){return GB||(GB=$_t()),GB}gx.getBundleURL=Q_t;function $_t(){try{throw new Error}catch(e){let t=(\"\"+e.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);if(t)return BQ(t[0])}return\"/\"}function BQ(e){return(\"\"+e).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/,\"$1\")+\"/\"}gx.getBaseURL=BQ});var HB=Br(Pm=>{\"use strict\";Object.defineProperty(Pm,\"__esModule\",{value:!0});Pm.isWorkerRuntime=Pm.getWorkerImplementation=Pm.defaultPoolSize=void 0;var zQ=FQ();Pm.defaultPoolSize=typeof navigator<\"u\"&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:4;var NQ=e=>/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.test(e);function UQ(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function X_t(){if(typeof Worker>\"u\")return class{constructor(){throw Error(\"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.\")}};class e extends Worker{constructor(i,s){var n,o;typeof i==\"string\"&&s&&s._baseURL?i=new URL(i,s._baseURL):typeof i==\"string\"&&!NQ(i)&&zQ.getBundleURL().match(/^file:\\/\\//i)&&(i=new URL(i,zQ.getBundleURL().replace(/\\/[^\\/]+$/,\"/\")),(!((n=s?.CORSWorkaround)!==null&&n!==void 0)||n)&&(i=UQ(`importScripts(${JSON.stringify(i)});`))),typeof i==\"string\"&&NQ(i)&&(!((o=s?.CORSWorkaround)!==null&&o!==void 0)||o)&&(i=UQ(`importScripts(${JSON.stringify(i)});`)),super(i,s)}}class t extends e{constructor(i,s){let n=window.URL.createObjectURL(i);super(n,s)}static fromText(i,s){let n=new window.Blob([i],{type:\"text/javascript\"});return new t(n,s)}}return{blob:t,default:e}}var WB;function K_t(){return WB||(WB=X_t()),WB}Pm.getWorkerImplementation=K_t;function J_t(){let e=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!e)}Pm.isWorkerRuntime=J_t});var jQ=Br((Qoe,VQ)=>{var _x=1e3,yx=_x*60,vx=yx*60,qg=vx*24,tyt=qg*7,eyt=qg*365.25;VQ.exports=function(e,t){t=t||{};var r=typeof e;if(r===\"string\"&&e.length>0)return ryt(e);if(r===\"number\"&&isFinite(e))return t.long?nyt(e):iyt(e);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(e))};function ryt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),i=(t[2]||\"ms\").toLowerCase();switch(i){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return r*eyt;case\"weeks\":case\"week\":case\"w\":return r*tyt;case\"days\":case\"day\":case\"d\":return r*qg;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return r*vx;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return r*yx;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return r*_x;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return r;default:return}}}}function iyt(e){var t=Math.abs(e);return t>=qg?Math.round(e/qg)+\"d\":t>=vx?Math.round(e/vx)+\"h\":t>=yx?Math.round(e/yx)+\"m\":t>=_x?Math.round(e/_x)+\"s\":e+\"ms\"}function nyt(e){var t=Math.abs(e);return t>=qg?xI(e,t,qg,\"day\"):t>=vx?xI(e,t,vx,\"hour\"):t>=yx?xI(e,t,yx,\"minute\"):t>=_x?xI(e,t,_x,\"second\"):e+\" ms\"}function xI(e,t,r,i){var s=t>=r*1.5;return Math.round(e/r)+\" \"+i+(s?\"s\":\"\")}});var WQ=Br(($oe,GQ)=>{function syt(e){r.debug=r,r.default=r,r.coerce=f,r.disable=n,r.enable=s,r.enabled=o,r.humanize=jQ(),r.destroy=_,Object.keys(e).forEach(w=>{r[w]=e[w]}),r.names=[],r.skips=[],r.formatters={};function t(w){let C=0;for(let R=0;R{if(Ot===\"%%\")return\"%\";ut++;let Zt=r.formatters[Kt];if(typeof Zt==\"function\"){let le=rt[ut];Ot=Zt.call($,le),rt.splice(ut,1),ut--}return Ot}),r.formatArgs.call($,rt),($.log||r.log).apply($,rt)}return Y.namespace=w,Y.useColors=r.useColors(),Y.color=r.selectColor(w),Y.extend=i,Y.destroy=r.destroy,Object.defineProperty(Y,\"enabled\",{enumerable:!0,configurable:!1,get:()=>R!==null?R:(N!==r.namespaces&&(N=r.namespaces,j=r.enabled(w)),j),set:rt=>{R=rt}}),typeof r.init==\"function\"&&r.init(Y),Y}function i(w,C){let R=r(this.namespace+(typeof C>\"u\"?\":\":C)+w);return R.log=this.log,R}function s(w){r.save(w),r.namespaces=w,r.names=[],r.skips=[];let C,R=(typeof w==\"string\"?w:\"\").split(/[\\s,]+/),N=R.length;for(C=0;C\"-\"+C)].join(\",\");return r.enable(\"\"),w}function o(w){if(w[w.length-1]===\"*\")return!0;let C,R;for(C=0,R=r.skips.length;C{lu.formatArgs=ayt;lu.save=lyt;lu.load=cyt;lu.useColors=oyt;lu.storage=uyt();lu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})();lu.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function oyt(){return typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs)?!0:typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function ayt(e){if(e[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+e[0]+(this.useColors?\"%c \":\" \")+\"+\"+bI.exports.humanize(this.diff),!this.useColors)return;let t=\"color: \"+this.color;e.splice(1,0,t,\"color: inherit\");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!==\"%%\"&&(r++,s===\"%c\"&&(i=r))}),e.splice(i,0,t)}lu.log=console.debug||console.log||(()=>{});function lyt(e){try{e?lu.storage.setItem(\"debug\",e):lu.storage.removeItem(\"debug\")}catch{}}function cyt(){let e;try{e=lu.storage.getItem(\"debug\")}catch{}return!e&&typeof process<\"u\"&&\"env\"in process&&(e=process.env.DEBUG),e}function uyt(){try{return localStorage}catch{}}bI.exports=WQ()(lu);var{formatters:hyt}=bI.exports;hyt.j=function(e){try{return JSON.stringify(e)}catch(t){return\"[UnexpectedJSONParseError]: \"+t.message}}});var _S=Br(xx=>{\"use strict\";var fyt=xx&&xx.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(xx,\"__esModule\",{value:!0});xx.AsyncSerialScheduler=void 0;var qB=class{constructor(t){this._baseObserver=t,this._pendingPromises=new Set}complete(){Promise.all(this._pendingPromises).then(()=>this._baseObserver.complete()).catch(t=>this._baseObserver.error(t))}error(t){this._baseObserver.error(t)}schedule(t){let r=Promise.all(this._pendingPromises),i=[],s=o=>i.push(o),n=Promise.resolve().then(()=>fyt(this,void 0,void 0,function*(){yield r,yield t(s),this._pendingPromises.delete(n);for(let o of i)this._baseObserver.next(o)})).catch(o=>{this._pendingPromises.delete(n),this._baseObserver.error(o)});this._pendingPromises.add(n)}};xx.AsyncSerialScheduler=qB});var qQ=Br(HQ=>{\"use strict\";Object.defineProperty(HQ,\"__esModule\",{value:!0})});var ZB=Br(Rl=>{\"use strict\";Object.defineProperty(Rl,\"__esModule\",{value:!0});Rl.registerObservableSymbol=Rl.getSymbol=Rl.hasSymbol=Rl.hasSymbols=void 0;var dyt=()=>typeof Symbol==\"function\";Rl.hasSymbols=dyt;var pyt=e=>Rl.hasSymbols()&&!!Symbol[e];Rl.hasSymbol=pyt;var Ayt=e=>Rl.hasSymbol(e)?Symbol[e]:\"@@\"+e;Rl.getSymbol=Ayt;function myt(){Rl.hasSymbols()&&!Rl.hasSymbol(\"observable\")&&(Symbol.observable=Symbol(\"observable\"))}Rl.registerObservableSymbol=myt;Rl.hasSymbol(\"asyncIterator\")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for(\"Symbol.asyncIterator\"))});var Ad=Br(Fp=>{\"use strict\";Object.defineProperty(Fp,\"__esModule\",{value:!0});Fp.Observable=Fp.SubscriptionObserver=Fp.Subscription=void 0;qQ();var vS=ZB(),gyt=vS.getSymbol(\"iterator\"),QB=vS.getSymbol(\"observable\"),ZQ=vS.getSymbol(\"species\");function TI(e,t){let r=e[t];if(r!=null){if(typeof r!=\"function\")throw new TypeError(r+\" is not a function\");return r}}function yS(e){let t=e.constructor;return t!==void 0&&(t=t[ZQ],t===null&&(t=void 0)),t!==void 0?t:Zg}function _yt(e){return e instanceof Zg}function bx(e){bx.log?bx.log(e):setTimeout(()=>{throw e},0)}function SI(e){Promise.resolve().then(()=>{try{e()}catch(t){bx(t)}})}function YQ(e){let t=e._cleanup;if(t!==void 0&&(e._cleanup=void 0,!!t))try{if(typeof t==\"function\")t();else{let r=TI(t,\"unsubscribe\");r&&r.call(t)}}catch(r){bx(r)}}function $B(e){e._observer=void 0,e._queue=void 0,e._state=\"closed\"}function yyt(e){let t=e._queue;if(t){e._queue=void 0,e._state=\"ready\";for(let r of t)if(QQ(e,r.type,r.value),e._state===\"closed\")break}}function QQ(e,t,r){e._state=\"running\";let i=e._observer;try{let s=i?TI(i,t):void 0;switch(t){case\"next\":s&&s.call(i,r);break;case\"error\":if($B(e),s)s.call(i,r);else throw r;break;case\"complete\":$B(e),s&&s.call(i);break}}catch(s){bx(s)}e._state===\"closed\"?YQ(e):e._state===\"running\"&&(e._state=\"ready\")}function YB(e,t,r){if(e._state!==\"closed\"){if(e._state===\"buffering\"){e._queue=e._queue||[],e._queue.push({type:t,value:r});return}if(e._state!==\"ready\"){e._state=\"buffering\",e._queue=[{type:t,value:r}],SI(()=>yyt(e));return}QQ(e,t,r)}}var MI=class{constructor(t,r){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state=\"initializing\";let i=new EI(this);try{this._cleanup=r.call(void 0,i)}catch(s){i.error(s)}this._state===\"initializing\"&&(this._state=\"ready\")}get closed(){return this._state===\"closed\"}unsubscribe(){this._state!==\"closed\"&&($B(this),YQ(this))}};Fp.Subscription=MI;var EI=class{constructor(t){this._subscription=t}get closed(){return this._subscription._state===\"closed\"}next(t){YB(this._subscription,\"next\",t)}error(t){YB(this._subscription,\"error\",t)}complete(){YB(this._subscription,\"complete\")}};Fp.SubscriptionObserver=EI;var Zg=class e{constructor(t){if(!(this instanceof e))throw new TypeError(\"Observable cannot be called as a function\");if(typeof t!=\"function\")throw new TypeError(\"Observable initializer must be a function\");this._subscriber=t}subscribe(t,r,i){return(typeof t!=\"object\"||t===null)&&(t={next:t,error:r,complete:i}),new MI(t,this._subscriber)}pipe(t,...r){let i=this;for(let s of[t,...r])i=s(i);return i}tap(t,r,i){let s=typeof t!=\"object\"||t===null?{next:t,error:r,complete:i}:t;return new e(n=>this.subscribe({next(o){s.next&&s.next(o),n.next(o)},error(o){s.error&&s.error(o),n.error(o)},complete(){s.complete&&s.complete(),n.complete()},start(o){s.start&&s.start(o)}}))}forEach(t){return new Promise((r,i)=>{if(typeof t!=\"function\"){i(new TypeError(t+\" is not a function\"));return}function s(){n.unsubscribe(),r(void 0)}let n=this.subscribe({next(o){try{t(o,s)}catch(c){i(c),n.unsubscribe()}},error(o){i(o)},complete(){r(void 0)}})})}map(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>this.subscribe({next(s){let n=s;try{n=t(s)}catch(o){return i.error(o)}i.next(n)},error(s){i.error(s)},complete(){i.complete()}}))}filter(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>this.subscribe({next(s){try{if(!t(s))return}catch(n){return i.error(n)}i.next(s)},error(s){i.error(s)},complete(){i.complete()}}))}reduce(t,r){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let i=yS(this),s=arguments.length>1,n=!1,o=r;return new i(c=>this.subscribe({next(f){let _=!n;if(n=!0,!_||s)try{o=t(o,f)}catch(w){return c.error(w)}else o=f},error(f){c.error(f)},complete(){if(!n&&!s)return c.error(new TypeError(\"Cannot reduce an empty sequence\"));c.next(o),c.complete()}}))}concat(...t){let r=yS(this);return new r(i=>{let s,n=0;function o(c){s=c.subscribe({next(f){i.next(f)},error(f){i.error(f)},complete(){n===t.length?(s=void 0,i.complete()):o(r.from(t[n++]))}})}return o(this),()=>{s&&(s.unsubscribe(),s=void 0)}})}flatMap(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=yS(this);return new r(i=>{let s=[],n=this.subscribe({next(c){let f;if(t)try{f=t(c)}catch(w){return i.error(w)}else f=c;let _=r.from(f).subscribe({next(w){i.next(w)},error(w){i.error(w)},complete(){let w=s.indexOf(_);w>=0&&s.splice(w,1),o()}});s.push(_)},error(c){i.error(c)},complete(){o()}});function o(){n.closed&&s.length===0&&i.complete()}return()=>{s.forEach(c=>c.unsubscribe()),n.unsubscribe()}})}[(Symbol.observable,QB)](){return this}static from(t){let r=typeof this==\"function\"?this:e;if(t==null)throw new TypeError(t+\" is not an object\");let i=TI(t,QB);if(i){let s=i.call(t);if(Object(s)!==s)throw new TypeError(s+\" is not an object\");return _yt(s)&&s.constructor===r?s:new r(n=>s.subscribe(n))}if(vS.hasSymbol(\"iterator\")){let s=TI(t,gyt);if(s)return new r(n=>{SI(()=>{if(!n.closed){for(let o of s.call(t))if(n.next(o),n.closed)return;n.complete()}})})}if(Array.isArray(t))return new r(s=>{SI(()=>{if(!s.closed){for(let n of t)if(s.next(n),s.closed)return;s.complete()}})});throw new TypeError(t+\" is not observable\")}static of(...t){let r=typeof this==\"function\"?this:e;return new r(i=>{SI(()=>{if(!i.closed){for(let s of t)if(i.next(s),i.closed)return;i.complete()}})})}static get[ZQ](){return this}};Fp.Observable=Zg;vS.hasSymbols()&&Object.defineProperty(Zg,Symbol(\"extensions\"),{value:{symbol:QB,hostReportError:bx},configurable:!0});Fp.default=Zg});var Im=Br(XB=>{\"use strict\";Object.defineProperty(XB,\"__esModule\",{value:!0});function vyt(e){typeof e==\"function\"?e():e&&typeof e.unsubscribe==\"function\"&&e.unsubscribe()}XB.default=vyt});var $Q=Br(xS=>{\"use strict\";var xyt=xS&&xS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(xS,\"__esModule\",{value:!0});var byt=_S(),wyt=Ad(),Syt=Im();function Tyt(e){return t=>new wyt.default(r=>{let i=new byt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>xyt(this,void 0,void 0,function*(){(yield e(n))&&o(n)}))}});return()=>Syt.default(s)})}xS.default=Tyt});var KQ=Br(wx=>{\"use strict\";Object.defineProperty(wx,\"__esModule\",{value:!0});wx.isIterator=wx.isAsyncIterator=void 0;var XQ=ZB();function Myt(e){return e&&XQ.hasSymbol(\"asyncIterator\")&&e[Symbol.asyncIterator]}wx.isAsyncIterator=Myt;function Eyt(e){return e&&XQ.hasSymbol(\"iterator\")&&e[Symbol.iterator]}wx.isIterator=Eyt});var t$=Br(Yg=>{\"use strict\";var Pyt=Yg&&Yg.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},Iyt=Yg&&Yg.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==\"function\"?__values(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(n){r[n]=e[n]&&function(o){return new Promise(function(c,f){o=e[n](o),s(c,f,o.done,o.value)})}}function s(n,o,c,f){Promise.resolve(f).then(function(_){n({value:_,done:c})},o)}};Object.defineProperty(Yg,\"__esModule\",{value:!0});var Cyt=_S(),JQ=KQ(),Lyt=Ad(),kyt=Im();function Ryt(e){return t=>new Lyt.default(r=>{let i=new Cyt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>Pyt(this,void 0,void 0,function*(){var c,f;let _=yield e(n);if(JQ.isIterator(_)||JQ.isAsyncIterator(_))try{for(var w=Iyt(_),C;C=yield w.next(),!C.done;){let R=C.value;o(R)}}catch(R){c={error:R}}finally{try{C&&!C.done&&(f=w.return)&&(yield f.call(w))}finally{if(c)throw c.error}}else _.map(R=>o(R))}))}});return()=>kyt.default(s)})}Yg.default=Ryt});var e$=Br(KB=>{\"use strict\";Object.defineProperty(KB,\"__esModule\",{value:!0});var Dyt=Ad();function Oyt(e){return new Dyt.Observable(t=>{let r=0,i=setInterval(()=>{t.next(r++)},e);return()=>clearInterval(i)})}KB.default=Oyt});var r$=Br(bS=>{\"use strict\";var Byt=bS&&bS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(bS,\"__esModule\",{value:!0});var Fyt=_S(),zyt=Ad(),Nyt=Im();function Uyt(e){return t=>new zyt.default(r=>{let i=new Fyt.AsyncSerialScheduler(r),s=t.subscribe({complete(){i.complete()},error(n){i.error(n)},next(n){i.schedule(o=>Byt(this,void 0,void 0,function*(){let c=yield e(n);o(c)}))}});return()=>Nyt.default(s)})}bS.default=Uyt});var n$=Br(JB=>{\"use strict\";Object.defineProperty(JB,\"__esModule\",{value:!0});var i$=Ad(),Vyt=Im();function jyt(...e){return e.length===0?i$.Observable.from([]):new i$.Observable(t=>{let r=0,i=e.map(n=>n.subscribe({error(o){t.error(o),s()},next(o){t.next(o)},complete(){++r===e.length&&(t.complete(),s())}})),s=()=>{i.forEach(n=>Vyt.default(n))};return s})}JB.default=jyt});var r6=Br(e6=>{\"use strict\";Object.defineProperty(e6,\"__esModule\",{value:!0});var Gyt=Ad(),t6=class extends Gyt.default{constructor(){super(t=>(this._observers.add(t),()=>this._observers.delete(t))),this._observers=new Set}next(t){for(let r of this._observers)r.next(t)}error(t){for(let r of this._observers)r.error(t)}complete(){for(let t of this._observers)t.complete()}};e6.default=t6});var s$=Br(i6=>{\"use strict\";Object.defineProperty(i6,\"__esModule\",{value:!0});var Wyt=Ad(),Hyt=r6(),qyt=Im();function Zyt(e){let t=new Hyt.default,r,i=0;return new Wyt.default(s=>{r||(r=e.subscribe(t));let n=t.subscribe(s);return i++,()=>{i--,n.unsubscribe(),i===0&&(qyt.default(r),r=void 0)}})}i6.default=Zyt});var o$=Br(wS=>{\"use strict\";var Yyt=wS&&wS.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(wS,\"__esModule\",{value:!0});var Qyt=_S(),$yt=Ad(),Xyt=Im();function Kyt(e,t){return r=>new $yt.default(i=>{let s,n=0,o=new Qyt.AsyncSerialScheduler(i),c=r.subscribe({complete(){o.complete()},error(f){o.error(f)},next(f){o.schedule(_=>Yyt(this,void 0,void 0,function*(){s=yield e(n===0?typeof t>\"u\"?f:t:s,f,n++),_(s)}))}});return()=>Xyt.default(c)})}wS.default=Kyt});var a$=Br(Rs=>{\"use strict\";Object.defineProperty(Rs,\"__esModule\",{value:!0});Rs.unsubscribe=Rs.Subject=Rs.scan=Rs.Observable=Rs.multicast=Rs.merge=Rs.map=Rs.interval=Rs.flatMap=Rs.filter=void 0;var Jyt=$Q();Object.defineProperty(Rs,\"filter\",{enumerable:!0,get:function(){return Jyt.default}});var tvt=t$();Object.defineProperty(Rs,\"flatMap\",{enumerable:!0,get:function(){return tvt.default}});var evt=e$();Object.defineProperty(Rs,\"interval\",{enumerable:!0,get:function(){return evt.default}});var rvt=r$();Object.defineProperty(Rs,\"map\",{enumerable:!0,get:function(){return rvt.default}});var ivt=n$();Object.defineProperty(Rs,\"merge\",{enumerable:!0,get:function(){return ivt.default}});var nvt=s$();Object.defineProperty(Rs,\"multicast\",{enumerable:!0,get:function(){return nvt.default}});var svt=Ad();Object.defineProperty(Rs,\"Observable\",{enumerable:!0,get:function(){return svt.default}});var ovt=o$();Object.defineProperty(Rs,\"scan\",{enumerable:!0,get:function(){return ovt.default}});var avt=r6();Object.defineProperty(Rs,\"Subject\",{enumerable:!0,get:function(){return avt.default}});var lvt=Im();Object.defineProperty(Rs,\"unsubscribe\",{enumerable:!0,get:function(){return lvt.default}})});var SS=Br((fae,l$)=>{l$.exports=a$()});var c$=Br(PI=>{\"use strict\";Object.defineProperty(PI,\"__esModule\",{value:!0});PI.allSettled=void 0;function cvt(e){return Promise.all(e.map(t=>{let r=n=>({status:\"fulfilled\",value:n}),i=n=>({status:\"rejected\",reason:n}),s=Promise.resolve(t);try{return s.then(r,i)}catch(n){return Promise.reject(n)}}))}PI.allSettled=cvt});var u$=Br(TS=>{\"use strict\";Object.defineProperty(TS,\"__esModule\",{value:!0});TS.PoolEventType=void 0;var uvt;(function(e){e.initialized=\"initialized\",e.taskCanceled=\"taskCanceled\",e.taskCompleted=\"taskCompleted\",e.taskFailed=\"taskFailed\",e.taskQueued=\"taskQueued\",e.taskQueueDrained=\"taskQueueDrained\",e.taskStart=\"taskStart\",e.terminated=\"terminated\"})(uvt=TS.PoolEventType||(TS.PoolEventType={}))});var MS=Br(th=>{\"use strict\";Object.defineProperty(th,\"__esModule\",{value:!0});th.$worker=th.$transferable=th.$terminate=th.$events=th.$errors=void 0;th.$errors=Symbol(\"thread.errors\");th.$events=Symbol(\"thread.events\");th.$terminate=Symbol(\"thread.terminate\");th.$transferable=Symbol(\"thread.transferable\");th.$worker=Symbol(\"thread.worker\")});var s6=Br(II=>{\"use strict\";Object.defineProperty(II,\"__esModule\",{value:!0});II.Thread=void 0;var n6=MS();function h$(e){throw Error(e)}II.Thread={errors(e){return e[n6.$errors]||h$(\"Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},events(e){return e[n6.$events]||h$(\"Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},terminate(e){return e[n6.$terminate]()}}});var A$=Br(eh=>{\"use strict\";var Qg=eh&&eh.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},hvt=eh&&eh.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(eh,\"__esModule\",{value:!0});eh.Pool=eh.Thread=eh.PoolEventType=void 0;var fvt=hvt(wI()),o6=SS(),f$=c$(),dvt=HB(),ia=u$();Object.defineProperty(eh,\"PoolEventType\",{enumerable:!0,get:function(){return ia.PoolEventType}});var d$=s6();Object.defineProperty(eh,\"Thread\",{enumerable:!0,get:function(){return d$.Thread}});var pvt=1;function Avt(e){let t=[];for(let r=0;rsetTimeout(t,e))}function gvt(e,t){return e.reduce((r,i)=>[...r,...t(i)],[])}function _vt(e){return e.replace(/\\W/g,\" \").trim().replace(/\\s+/g,\"-\")}function yvt(e,t){return Avt(t).map(()=>({init:e(),runningTasks:[]}))}var CI=class{constructor(t,r){this.eventSubject=new o6.Subject,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];let i=typeof r==\"number\"?{size:r}:r||{},{size:s=dvt.defaultPoolSize}=i;this.debug=fvt.default(`threads:pool:${_vt(i.name||String(pvt++))}`),this.options=i,this.workers=yvt(t,s),this.eventObservable=o6.multicast(o6.Observable.from(this.eventSubject)),Promise.all(this.workers.map(n=>n.init)).then(()=>this.eventSubject.next({type:ia.PoolEventType.initialized,size:this.workers.length}),n=>{this.debug(\"Error while initializing pool worker:\",n),this.eventSubject.error(n),this.initErrors.push(n)})}findIdlingWorker(){let{concurrency:t=1}=this.options;return this.workers.find(r=>r.runningTasks.length{t.runningTasks=t.runningTasks.filter(n=>n!==i)};yield mvt(0);try{yield this.runPoolTask(t,r)}finally{s(),this.isClosing||this.scheduleWork()}});t.runningTasks.push(i)})}scheduleWork(){this.debug(\"Attempt de-queueing a task in order to run it...\");let t=this.findIdlingWorker();if(!t)return;let r=this.taskQueue.shift();if(!r){this.debug(\"Task queue is empty\"),this.eventSubject.next({type:ia.PoolEventType.taskQueueDrained});return}this.run(t,r)}taskCompletion(t){return new Promise((r,i)=>{let s=this.events().subscribe(n=>{n.type===ia.PoolEventType.taskCompleted&&n.taskID===t?(s.unsubscribe(),r(n.returnValue)):n.type===ia.PoolEventType.taskFailed&&n.taskID===t?(s.unsubscribe(),i(n.error)):n.type===ia.PoolEventType.terminated&&(s.unsubscribe(),i(Error(\"Pool has been terminated before task was run.\")))})})}settled(t=!1){return Qg(this,void 0,void 0,function*(){let r=()=>gvt(this.workers,n=>n.runningTasks),i=[],s=this.eventObservable.subscribe(n=>{n.type===ia.PoolEventType.taskFailed&&i.push(n.error)});return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&this.taskQueue.length===0?(yield f$.allSettled(r()),i):(yield new Promise((n,o)=>{let c=this.eventObservable.subscribe({next(f){f.type===ia.PoolEventType.taskQueueDrained&&(c.unsubscribe(),n(void 0))},error:o})}),yield f$.allSettled(r()),s.unsubscribe(),i)})}completed(t=!1){return Qg(this,void 0,void 0,function*(){let r=this.settled(t),i=new Promise((n,o)=>{let c=this.eventObservable.subscribe({next(f){f.type===ia.PoolEventType.taskQueueDrained?(c.unsubscribe(),n(r)):f.type===ia.PoolEventType.taskFailed&&(c.unsubscribe(),o(f.error))},error:o})}),s=yield Promise.race([r,i]);if(s.length>0)throw s[0]})}events(){return this.eventObservable}queue(t){let{maxQueuedJobs:r=1/0}=this.options;if(this.isClosing)throw Error(\"Cannot schedule pool tasks after terminate() has been called.\");if(this.initErrors.length>0)throw this.initErrors[0];let i=this.nextTaskID++,s=this.taskCompletion(i);s.catch(o=>{this.debug(`Task #${i} errored:`,o)});let n={id:i,run:t,cancel:()=>{this.taskQueue.indexOf(n)!==-1&&(this.taskQueue=this.taskQueue.filter(o=>o!==n),this.eventSubject.next({type:ia.PoolEventType.taskCanceled,taskID:n.id}))},then:s.then.bind(s)};if(this.taskQueue.length>=r)throw Error(`Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.`);return this.debug(`Queueing task #${n.id}...`),this.taskQueue.push(n),this.eventSubject.next({type:ia.PoolEventType.taskQueued,taskID:n.id}),this.scheduleWork(),n}terminate(t){return Qg(this,void 0,void 0,function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:ia.PoolEventType.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map(r=>Qg(this,void 0,void 0,function*(){return d$.Thread.terminate(yield r.init)})))})}};CI.EventType=ia.PoolEventType;function p$(e,t){return new CI(e,t)}p$.EventType=ia.PoolEventType;eh.Pool=p$});var m$=Br(LI=>{\"use strict\";Object.defineProperty(LI,\"__esModule\",{value:!0});LI.createPromiseWithResolver=void 0;var vvt=()=>{};function xvt(){let e=!1,t,r=vvt;return[new Promise(n=>{e?n(t):r=n}),n=>{e=!0,t=n,r(t)}]}LI.createPromiseWithResolver=xvt});var g$=Br(ES=>{\"use strict\";Object.defineProperty(ES,\"__esModule\",{value:!0});ES.WorkerEventType=void 0;var yae=MS(),bvt;(function(e){e.internalError=\"internalError\",e.message=\"message\",e.termination=\"termination\"})(bvt=ES.WorkerEventType||(ES.WorkerEventType={}))});var y$=Br(kI=>{\"use strict\";Object.defineProperty(kI,\"__esModule\",{value:!0});kI.ObservablePromise=void 0;var wvt=SS(),Svt=()=>{},Tvt=e=>e,_$=e=>Promise.resolve().then(e);function Mvt(e){throw e}function Evt(e){return e&&typeof e.then==\"function\"}var a6=class e extends wvt.Observable{constructor(t){super(r=>{let i=this,s=Object.assign(Object.assign({},r),{complete(){r.complete(),i.onCompletion()},error(n){r.error(n),i.onError(n)},next(n){r.next(n),i.onNext(n)}});try{return this.initHasRun=!0,t(s)}catch(n){s.error(n)}}),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state=\"pending\"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state=\"rejected\",this.rejection=t;for(let r of this.rejectionCallbacks)_$(()=>r(t))}onCompletion(){this.state=\"fulfilled\";for(let t of this.fulfillmentCallbacks)_$(()=>t(this.firstValue))}then(t,r){let i=t||Tvt,s=r||Mvt,n=!1;return new Promise((o,c)=>{let f=w=>{if(!n){n=!0;try{o(s(w))}catch(C){c(C)}}},_=w=>{try{o(i(w))}catch(C){f(C)}};if(this.initHasRun||this.subscribe({error:f}),this.state===\"fulfilled\")return o(i(this.firstValue));if(this.state===\"rejected\")return n=!0,o(s(this.rejection));this.fulfillmentCallbacks.push(_),this.rejectionCallbacks.push(f)})}catch(t){return this.then(void 0,t)}finally(t){let r=t||Svt;return this.then(i=>(r(),i),()=>r())}static from(t){return Evt(t)?new e(r=>{let i=n=>{r.next(n),r.complete()},s=n=>{r.error(n)};t.then(i,s)}):super.from(t)}};kI.ObservablePromise=a6});var PS=Br(Sx=>{\"use strict\";Object.defineProperty(Sx,\"__esModule\",{value:!0});Sx.Transfer=Sx.isTransferDescriptor=void 0;var v$=MS();function Pvt(e){return!(!e||typeof e!=\"object\")}function Ivt(e){return e&&typeof e==\"object\"&&e[v$.$transferable]}Sx.isTransferDescriptor=Ivt;function Cvt(e,t){if(!t){if(!Pvt(e))throw Error();t=[e]}return{[v$.$transferable]:!0,send:e,transferables:t}}Sx.Transfer=Cvt});var l6=Br(Cm=>{\"use strict\";Object.defineProperty(Cm,\"__esModule\",{value:!0});Cm.WorkerMessageType=Cm.MasterMessageType=void 0;var Lvt;(function(e){e.cancel=\"cancel\",e.run=\"run\"})(Lvt=Cm.MasterMessageType||(Cm.MasterMessageType={}));var kvt;(function(e){e.error=\"error\",e.init=\"init\",e.result=\"result\",e.running=\"running\",e.uncaughtError=\"uncaughtError\"})(kvt=Cm.WorkerMessageType||(Cm.WorkerMessageType={}))});var T$=Br(Lm=>{\"use strict\";var Rvt=Lm&&Lm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Lm,\"__esModule\",{value:!0});Lm.createProxyModule=Lm.createProxyFunction=void 0;var Dvt=Rvt(wI()),b$=SS(),IS=mx(),x$=y$(),Ovt=PS(),CS=l6(),w$=Dvt.default(\"threads:master:messages\"),Bvt=1,Fvt=e=>Array.from(new Set(e)),zvt=e=>e&&e.type===CS.WorkerMessageType.error,Nvt=e=>e&&e.type===CS.WorkerMessageType.result,Uvt=e=>e&&e.type===CS.WorkerMessageType.running;function Vvt(e,t){return new b$.Observable(r=>{let i,s=n=>{if(w$(\"Message from worker:\",n.data),!(!n.data||n.data.uid!==t)){if(Uvt(n.data))i=n.data.resultType;else if(Nvt(n.data))i===\"promise\"?(typeof n.data.payload<\"u\"&&r.next(IS.deserialize(n.data.payload)),r.complete(),e.removeEventListener(\"message\",s)):(n.data.payload&&r.next(IS.deserialize(n.data.payload)),n.data.complete&&(r.complete(),e.removeEventListener(\"message\",s)));else if(zvt(n.data)){let o=IS.deserialize(n.data.error);r.error(o),e.removeEventListener(\"message\",s)}}};return e.addEventListener(\"message\",s),()=>{if(i===\"observable\"||!i){let n={type:CS.MasterMessageType.cancel,uid:t};e.postMessage(n)}e.removeEventListener(\"message\",s)}})}function jvt(e){if(e.length===0)return{args:[],transferables:[]};let t=[],r=[];for(let i of e)Ovt.isTransferDescriptor(i)?(t.push(IS.serialize(i.send)),r.push(...i.transferables)):t.push(IS.serialize(i));return{args:t,transferables:r.length===0?r:Fvt(r)}}function S$(e,t){return(...r)=>{let i=Bvt++,{args:s,transferables:n}=jvt(r),o={type:CS.MasterMessageType.run,uid:i,method:t,args:s};w$(\"Sending command to run function to worker:\",o);try{e.postMessage(o,n)}catch(c){return x$.ObservablePromise.from(Promise.reject(c))}return x$.ObservablePromise.from(b$.multicast(Vvt(e,i)))}}Lm.createProxyFunction=S$;function Gvt(e,t){let r={};for(let i of t)r[i]=S$(e,i);return r}Lm.createProxyModule=Gvt});var I$=Br(km=>{\"use strict\";var c6=km&&km.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},Wvt=km&&km.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(km,\"__esModule\",{value:!0});km.spawn=void 0;var u6=Wvt(wI()),Hvt=SS(),qvt=mx(),Zvt=m$(),RI=MS(),DI=g$(),M$=T$(),Yvt=u6.default(\"threads:master:messages\"),Qvt=u6.default(\"threads:master:spawn\"),P$=u6.default(\"threads:master:thread-utils\"),$vt=e=>e&&e.type===\"init\",Xvt=e=>e&&e.type===\"uncaughtError\",Kvt=typeof process<\"u\"&&process.env.THREADS_WORKER_INIT_TIMEOUT?Number.parseInt(process.env.THREADS_WORKER_INIT_TIMEOUT,10):1e4;function Jvt(e,t,r){return c6(this,void 0,void 0,function*(){let i,s=new Promise((o,c)=>{i=setTimeout(()=>c(Error(r)),t)}),n=yield Promise.race([e,s]);return clearTimeout(i),n})}function txt(e){return new Promise((t,r)=>{let i=s=>{Yvt(\"Message from worker before finishing initialization:\",s.data),$vt(s.data)?(e.removeEventListener(\"message\",i),t(s.data)):Xvt(s.data)&&(e.removeEventListener(\"message\",i),r(qvt.deserialize(s.data.error)))};e.addEventListener(\"message\",i)})}function ext(e,t){return new Hvt.Observable(r=>{let i=n=>{let o={type:DI.WorkerEventType.message,data:n.data};r.next(o)},s=n=>{P$(\"Unhandled promise rejection event in thread:\",n);let o={type:DI.WorkerEventType.internalError,error:Error(n.reason)};r.next(o)};e.addEventListener(\"message\",i),e.addEventListener(\"unhandledrejection\",s),t.then(()=>{let n={type:DI.WorkerEventType.termination};e.removeEventListener(\"message\",i),e.removeEventListener(\"unhandledrejection\",s),r.next(n),r.complete()})})}function rxt(e){let[t,r]=Zvt.createPromiseWithResolver();return{terminate:()=>c6(this,void 0,void 0,function*(){P$(\"Terminating worker\"),yield e.terminate(),r()}),termination:t}}function E$(e,t,r,i){let s=r.filter(n=>n.type===DI.WorkerEventType.internalError).map(n=>n.error);return Object.assign(e,{[RI.$errors]:s,[RI.$events]:r,[RI.$terminate]:i,[RI.$worker]:t})}function ixt(e,t){return c6(this,void 0,void 0,function*(){Qvt(\"Initializing new thread\");let r=t&&t.timeout?t.timeout:Kvt,s=(yield Jvt(txt(e),r,`Timeout: Did not receive an init message from worker after ${r}ms. Make sure the worker calls expose().`)).exposed,{termination:n,terminate:o}=rxt(e),c=ext(e,n);if(s.type===\"function\"){let f=M$.createProxyFunction(e);return E$(f,e,c,o)}else if(s.type===\"module\"){let f=M$.createProxyModule(e,s.methods);return E$(f,e,c,o)}else{let f=s.type;throw Error(`Worker init message states unexpected type of expose(): ${f}`)}})}km.spawn=ixt});var C$=Br(Mc=>{\"use strict\";Object.defineProperty(Mc,\"__esModule\",{value:!0});Mc.Worker=Mc.BlobWorker=Mc.isWorkerRuntime=Mc.Thread=Mc.spawn=Mc.Pool=void 0;var h6=HB();Object.defineProperty(Mc,\"isWorkerRuntime\",{enumerable:!0,get:function(){return h6.isWorkerRuntime}});var nxt=A$();Object.defineProperty(Mc,\"Pool\",{enumerable:!0,get:function(){return nxt.Pool}});var sxt=I$();Object.defineProperty(Mc,\"spawn\",{enumerable:!0,get:function(){return sxt.spawn}});var oxt=s6();Object.defineProperty(Mc,\"Thread\",{enumerable:!0,get:function(){return oxt.Thread}});Mc.BlobWorker=h6.getWorkerImplementation().blob;Mc.Worker=h6.getWorkerImplementation().default});var k$=Br((Eae,L$)=>{\"use strict\";L$.exports=e=>e?typeof Symbol.observable==\"symbol\"&&typeof e[Symbol.observable]==\"function\"?e===e[Symbol.observable]():typeof e[\"@@observable\"]==\"function\"?e===e[\"@@observable\"]():!1:!1});var R$=Br(f6=>{\"use strict\";Object.defineProperty(f6,\"__esModule\",{value:!0});var axt=function(){let t=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!t)},lxt=function(t,r){self.postMessage(t,r)},cxt=function(t){let r=s=>{t(s.data)},i=()=>{self.removeEventListener(\"message\",r)};return self.addEventListener(\"message\",r),i};f6.default={isWorkerRuntime:axt,postMessageToMaster:lxt,subscribeToMasterMessages:cxt}});var U$=Br(Ec=>{\"use strict\";var uxt=Ec&&Ec.__awaiter||function(e,t,r,i){function s(n){return n instanceof r?n:new r(function(o){o(n)})}return new(r||(r=Promise))(function(n,o){function c(w){try{_(i.next(w))}catch(C){o(C)}}function f(w){try{_(i.throw(w))}catch(C){o(C)}}function _(w){w.done?n(w.value):s(w.value).then(c,f)}_((i=i.apply(e,t||[])).next())})},z$=Ec&&Ec.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ec,\"__esModule\",{value:!0});Ec.expose=Ec.isWorkerRuntime=Ec.Transfer=Ec.registerSerializer=void 0;var hxt=z$(k$()),Rm=mx(),fxt=PS(),Dm=l6(),cu=z$(R$()),dxt=mx();Object.defineProperty(Ec,\"registerSerializer\",{enumerable:!0,get:function(){return dxt.registerSerializer}});var pxt=PS();Object.defineProperty(Ec,\"Transfer\",{enumerable:!0,get:function(){return pxt.Transfer}});Ec.isWorkerRuntime=cu.default.isWorkerRuntime;var D$=!1,LS=new Map,Axt=e=>e&&e.type===Dm.MasterMessageType.cancel,O$=e=>e&&e.type===Dm.MasterMessageType.run,B$=e=>hxt.default(e)||mxt(e);function mxt(e){return e&&typeof e==\"object\"&&typeof e.subscribe==\"function\"}function N$(e){return fxt.isTransferDescriptor(e)?{payload:e.send,transferables:e.transferables}:{payload:e,transferables:void 0}}function gxt(){let e={type:Dm.WorkerMessageType.init,exposed:{type:\"function\"}};cu.default.postMessageToMaster(e)}function _xt(e){let t={type:Dm.WorkerMessageType.init,exposed:{type:\"module\",methods:e}};cu.default.postMessageToMaster(t)}function d6(e,t){let{payload:r,transferables:i}=N$(t),s={type:Dm.WorkerMessageType.error,uid:e,error:Rm.serialize(r)};cu.default.postMessageToMaster(s,i)}function p6(e,t,r){let{payload:i,transferables:s}=N$(r),n={type:Dm.WorkerMessageType.result,uid:e,complete:t?!0:void 0,payload:i};cu.default.postMessageToMaster(n,s)}function yxt(e,t){let r={type:Dm.WorkerMessageType.running,uid:e,resultType:t};cu.default.postMessageToMaster(r)}function OI(e){try{let t={type:Dm.WorkerMessageType.uncaughtError,error:Rm.serialize(e)};cu.default.postMessageToMaster(t)}catch(t){console.error(`Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:`,t,`\nOriginal error:`,e)}}function F$(e,t,r){return uxt(this,void 0,void 0,function*(){let i;try{i=t(...r)}catch(n){return d6(e,n)}let s=B$(i)?\"observable\":\"promise\";if(yxt(e,s),B$(i)){let n=i.subscribe(o=>p6(e,!1,Rm.serialize(o)),o=>{d6(e,Rm.serialize(o)),LS.delete(e)},()=>{p6(e,!0),LS.delete(e)});LS.set(e,n)}else try{let n=yield i;p6(e,!0,Rm.serialize(n))}catch(n){d6(e,Rm.serialize(n))}})}function vxt(e){if(!cu.default.isWorkerRuntime())throw Error(\"expose() called in the master thread.\");if(D$)throw Error(\"expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.\");if(D$=!0,typeof e==\"function\")cu.default.subscribeToMasterMessages(t=>{O$(t)&&!t.method&&F$(t.uid,e,t.args.map(Rm.deserialize))}),gxt();else if(typeof e==\"object\"&&e){cu.default.subscribeToMasterMessages(r=>{O$(r)&&r.method&&F$(r.uid,e[r.method],r.args.map(Rm.deserialize))});let t=Object.keys(e).filter(r=>typeof e[r]==\"function\");_xt(t)}else throw Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${e}`);cu.default.subscribeToMasterMessages(t=>{if(Axt(t)){let r=t.uid,i=LS.get(r);i&&(i.unsubscribe(),LS.delete(r))}})}Ec.expose=vxt;typeof self<\"u\"&&typeof self.addEventListener==\"function\"&&cu.default.isWorkerRuntime()&&(self.addEventListener(\"error\",e=>{setTimeout(()=>OI(e.error||e),250)}),self.addEventListener(\"unhandledrejection\",e=>{let t=e.reason;t&&typeof t.message==\"string\"&&setTimeout(()=>OI(t),250)}));typeof process<\"u\"&&typeof process.on==\"function\"&&cu.default.isWorkerRuntime()&&(process.on(\"uncaughtException\",e=>{setTimeout(()=>OI(e),250)}),process.on(\"unhandledRejection\",e=>{e&&typeof e.message==\"string\"&&setTimeout(()=>OI(e),250)}))});var V$=Br(Dl=>{\"use strict\";var xxt=Dl&&Dl.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),bxt=Dl&&Dl.__exportStar||function(e,t){for(var r in e)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r)&&xxt(t,e,r)};Object.defineProperty(Dl,\"__esModule\",{value:!0});Dl.Transfer=Dl.DefaultSerializer=Dl.expose=Dl.registerSerializer=void 0;var wxt=mx();Object.defineProperty(Dl,\"registerSerializer\",{enumerable:!0,get:function(){return wxt.registerSerializer}});bxt(C$(),Dl);var Sxt=U$();Object.defineProperty(Dl,\"expose\",{enumerable:!0,get:function(){return Sxt.expose}});var Txt=jB();Object.defineProperty(Dl,\"DefaultSerializer\",{enumerable:!0,get:function(){return Txt.DefaultSerializer}});var Mxt=PS();Object.defineProperty(Dl,\"Transfer\",{enumerable:!0,get:function(){return Mxt.Transfer}})});var WI=ki(Ji(),1),$g=ki(Ji(),1);var Xl=ki(Ji(),1),T8=ki(S8(),1),M8=Xl.createContext(null);function Qk(){let e=Xl.useContext(M8);if(!e)throw new Error(\"Model not found\");return e}function P0(e){let t=Qk(),[r,i]=Xl.useState(t.get(e));return Xl.useEffect(()=>{let s=()=>i(t.get(e));return t.on(`change:${e}`,s),()=>t.off(`change:${e}`,s)},[t,e]),[r,s=>{t.set(e,s),t.save_changes()}]}function E8(e){return({model:t,el:r})=>{let i=T8.createRoot(r);return i.render(Xl.createElement(Xl.StrictMode,null,Xl.createElement(M8.Provider,{value:t},Xl.createElement(e)))),()=>i.unmount()}}var V8=ki(Ji());var K_=ki(Ji()),Hc=ki(Ji());var $k=ki(Ji()),wM=ki(Ji());var P8=$k.createContext(null);function I8(e,t){let r=Array.isArray(e)?e[0]:e?e.x:0,i=Array.isArray(e)?e[1]:e?e.y:0,s=Array.isArray(t)?t[0]:t?t.x:0,n=Array.isArray(t)?t[1]:t?t.y:0;return r===s&&i===n}function Kl(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r{let s=null;\"interactive\"in i&&(s=Object.assign({},i),delete s.interactive);let n=t[i.ref];if(n){s=s||Object.assign({},i),delete s.ref;for(let o of ret)o in n&&(s[o]=n[o])}return s||i});return{...e,layers:r}}var L8={version:8,sources:{},layers:[]},k8={mousedown:\"onMouseDown\",mouseup:\"onMouseUp\",mouseover:\"onMouseOver\",mousemove:\"onMouseMove\",click:\"onClick\",dblclick:\"onDblClick\",mouseenter:\"onMouseEnter\",mouseleave:\"onMouseLeave\",mouseout:\"onMouseOut\",contextmenu:\"onContextMenu\",touchstart:\"onTouchStart\",touchend:\"onTouchEnd\",touchmove:\"onTouchMove\",touchcancel:\"onTouchCancel\"},e4={movestart:\"onMoveStart\",move:\"onMove\",moveend:\"onMoveEnd\",dragstart:\"onDragStart\",drag:\"onDrag\",dragend:\"onDragEnd\",zoomstart:\"onZoomStart\",zoom:\"onZoom\",zoomend:\"onZoomEnd\",rotatestart:\"onRotateStart\",rotate:\"onRotate\",rotateend:\"onRotateEnd\",pitchstart:\"onPitchStart\",pitch:\"onPitch\",pitchend:\"onPitchEnd\"},R8={wheel:\"onWheel\",boxzoomstart:\"onBoxZoomStart\",boxzoomend:\"onBoxZoomEnd\",boxzoomcancel:\"onBoxZoomCancel\",resize:\"onResize\",load:\"onLoad\",render:\"onRender\",idle:\"onIdle\",remove:\"onRemove\",data:\"onData\",styledata:\"onStyleData\",sourcedata:\"onSourceData\",error:\"onError\"},iet=[\"minZoom\",\"maxZoom\",\"minPitch\",\"maxPitch\",\"maxBounds\",\"projection\",\"renderWorldCopies\"],net=[\"scrollZoom\",\"boxZoom\",\"dragRotate\",\"dragPan\",\"keyboard\",\"doubleClickZoom\",\"touchZoomRotate\",\"touchPitch\"],I0=class e{constructor(t,r,i){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=s=>{let n=this.props[R8[s.type]];n?n(s):s.type===\"error\"&&console.error(s.error)},this._onPointerEvent=s=>{(s.type===\"mousemove\"||s.type===\"mouseout\")&&this._updateHover(s);let n=this.props[k8[s.type]];n&&(this.props.interactiveLayerIds&&s.type!==\"mouseover\"&&s.type!==\"mouseout\"&&(s.features=this._hoveredFeatures||this._queryRenderedFeatures(s.point)),n(s),delete s.features)},this._onCameraEvent=s=>{if(!this._internalUpdate){let n=this.props[e4[s.type]];n&&n(s)}s.type in this._deferredEvents&&(this._deferredEvents[s.type]=!1)},this._MapClass=t,this.props=r,this._initialize(i)}get map(){return this._map}get transform(){return this._renderTransform}setProps(t){let r=this.props;this.props=t;let i=this._updateSettings(t,r);i&&this._createShadowTransform(this._map);let s=this._updateSize(t),n=this._updateViewState(t,!0);this._updateStyle(t,r),this._updateStyleComponents(t,r),this._updateHandlers(t,r),(i||s||n&&!this._map.isMoving())&&this.redraw()}static reuse(t,r){let i=e.savedMaps.pop();if(!i)return null;let s=i.map,n=s.getContainer();for(r.className=n.className;n.childNodes.length>0;)r.appendChild(n.childNodes[0]);s._container=r;let o=s._resizeObserver;o&&(o.disconnect(),o.observe(r)),i.setProps({...t,styleDiffing:!1}),s.resize();let{initialViewState:c}=t;return c&&(c.bounds?s.fitBounds(c.bounds,{...c.fitBoundsOptions,duration:0}):i._updateViewState(c,!1)),s.isStyleLoaded()?s.fire(\"load\"):s.once(\"styledata\",()=>s.fire(\"load\")),s._update(),i}_initialize(t){let{props:r}=this,{mapStyle:i=L8}=r,s={...r,...r.initialViewState,accessToken:r.mapboxAccessToken||set()||null,container:t,style:t4(i)},n=s.initialViewState||s.viewState||s;if(Object.assign(s,{center:[n.longitude||0,n.latitude||0],zoom:n.zoom||0,pitch:n.pitch||0,bearing:n.bearing||0}),r.gl){let w=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=w,r.gl)}let o=new this._MapClass(s);n.padding&&o.setPadding(n.padding),r.cursor&&(o.getCanvas().style.cursor=r.cursor),this._createShadowTransform(o);let c=o._render;o._render=w=>{this._inRender=!0,c.call(o,w),this._inRender=!1};let f=o._renderTaskQueue.run;o._renderTaskQueue.run=w=>{f.call(o._renderTaskQueue,w),this._onBeforeRepaint()},o.on(\"render\",()=>this._onAfterRepaint());let _=o.fire;o.fire=this._fireEvent.bind(this,_),o.on(\"resize\",()=>{this._renderTransform.resize(o.transform.width,o.transform.height)}),o.on(\"styledata\",()=>{this._updateStyleComponents(this.props,{}),Xk(o.transform,this._renderTransform)}),o.on(\"sourcedata\",()=>this._updateStyleComponents(this.props,{}));for(let w in k8)o.on(w,this._onPointerEvent);for(let w in e4)o.on(w,this._onCameraEvent);for(let w in R8)o.on(w,this._onEvent);this._map=o}recycle(){let r=this.map.getContainer().querySelector(\"[mapboxgl-children]\");r?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let t=this._map;!this._inRender&&t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}_createShadowTransform(t){let r=C8(t.transform);t.painter.transform=r,this._renderTransform=r}_updateSize(t){let{viewState:r}=t;if(r){let i=this._map;if(r.width!==i.transform.width||r.height!==i.transform.height)return i.resize(),!0}return!1}_updateViewState(t,r){if(this._internalUpdate)return!1;let i=this._map,s=this._renderTransform,{zoom:n,pitch:o,bearing:c}=s,f=i.isMoving();f&&(s.cameraElevationReference=\"sea\");let _=Jk(s,{...Kk(i.transform),...t});if(f&&(s.cameraElevationReference=\"ground\"),_&&r){let w=this._deferredEvents;w.move=!0,w.zoom||(w.zoom=n!==s.zoom),w.rotate||(w.rotate=c!==s.bearing),w.pitch||(w.pitch=o!==s.pitch)}return f||Jk(i.transform,t),_}_updateSettings(t,r){let i=this._map,s=!1;for(let n of iet)if(n in t&&!Kl(t[n],r[n])){s=!0;let o=i[`set${n[0].toUpperCase()}${n.slice(1)}`];o?.call(i,t[n])}return s}_updateStyle(t,r){if(t.cursor!==r.cursor&&(this._map.getCanvas().style.cursor=t.cursor||\"\"),t.mapStyle!==r.mapStyle){let{mapStyle:i=L8,styleDiffing:s=!0}=t,n={diff:s};return\"localIdeographFontFamily\"in t&&(n.localIdeographFontFamily=t.localIdeographFontFamily),this._map.setStyle(t4(i),n),!0}return!1}_updateStyleComponents(t,r){let i=this._map,s=!1;return i.isStyleLoaded()&&(\"light\"in t&&i.setLight&&!Kl(t.light,r.light)&&(s=!0,i.setLight(t.light)),\"fog\"in t&&i.setFog&&!Kl(t.fog,r.fog)&&(s=!0,i.setFog(t.fog)),\"terrain\"in t&&i.setTerrain&&!Kl(t.terrain,r.terrain)&&(!t.terrain||i.getSource(t.terrain.source))&&(s=!0,i.setTerrain(t.terrain))),s}_updateHandlers(t,r){var i,s;let n=this._map,o=!1;for(let c of net){let f=(i=t[c])!==null&&i!==void 0?i:!0,_=(s=r[c])!==null&&s!==void 0?s:!0;Kl(f,_)||(o=!0,f?n[c].enable(f):n[c].disable())}return o}_queryRenderedFeatures(t){let r=this._map,i=r.transform,{interactiveLayerIds:s=[]}=this.props;try{return r.transform=this._renderTransform,r.queryRenderedFeatures(t,{layers:s.filter(r.getLayer.bind(r))})}catch{return[]}finally{r.transform=i}}_updateHover(t){var r;let{props:i}=this;if(i.interactiveLayerIds&&(i.onMouseMove||i.onMouseEnter||i.onMouseLeave)){let n=t.type,o=((r=this._hoveredFeatures)===null||r===void 0?void 0:r.length)>0,c=this._queryRenderedFeatures(t.point),f=c.length>0;!f&&o&&(t.type=\"mouseleave\",this._onPointerEvent(t)),this._hoveredFeatures=c,f&&!o&&(t.type=\"mouseenter\",this._onPointerEvent(t)),t.type=n}else this._hoveredFeatures=null}_fireEvent(t,r,i){let s=this._map,n=s.transform,o=typeof r==\"string\"?r:r.type;return o===\"move\"&&this._updateViewState(this.props,!1),o in e4&&(typeof r==\"object\"&&(r.viewState=Kk(n)),this._map.isMoving())?(s.transform=this._renderTransform,t.call(s,r,i),s.transform=n,s):(t.call(s,r,i),s)}_onBeforeRepaint(){let t=this._map;this._internalUpdate=!0;for(let i in this._deferredEvents)this._deferredEvents[i]&&t.fire(i);this._internalUpdate=!1;let r=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=()=>{Xk(this._renderTransform,r),t.transform=r}}};I0.savedMaps=[];function set(){let e=null;if(typeof location<\"u\"){let t=/access_token=([^&\\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||process.env.MapboxAccessToken}catch{}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return e}var oet=[\"setMaxBounds\",\"setMinZoom\",\"setMaxZoom\",\"setMinPitch\",\"setMaxPitch\",\"setRenderWorldCopies\",\"setProjection\",\"setStyle\",\"addSource\",\"removeSource\",\"addLayer\",\"removeLayer\",\"setLayerZoomRange\",\"setFilter\",\"setPaintProperty\",\"setLayoutProperty\",\"setLight\",\"setTerrain\",\"setFog\",\"remove\"];function r4(e){if(!e)return null;let t=e.map,r={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:i=>{let s=t.transform;t.transform=e.transform;let n=t.project(i);return t.transform=s,n},unproject:i=>{let s=t.transform;t.transform=e.transform;let n=t.unproject(i);return t.transform=s,n},queryTerrainElevation:(i,s)=>{let n=t.transform;t.transform=e.transform;let o=t.queryTerrainElevation(i,s);return t.transform=n,o},queryRenderedFeatures:(i,s)=>{let n=t.transform;t.transform=e.transform;let o=t.queryRenderedFeatures(i,s);return t.transform=n,o}};for(let i of aet(t))!(i in r)&&!oet.includes(i)&&(r[i]=t[i].bind(t));return r}function aet(e){let t=new Set,r=e;for(;r;){for(let i of Object.getOwnPropertyNames(r))i[0]!==\"_\"&&typeof e[i]==\"function\"&&i!==\"fire\"&&i!==\"setEventedParent\"&&t.add(i);r=Object.getPrototypeOf(r)}return Array.from(t)}var SM=ki(Ji()),cet=typeof document<\"u\"?SM.useLayoutEffect:SM.useEffect,D8=cet;var uet=[\"baseApiUrl\",\"maxParallelImageRequests\",\"workerClass\",\"workerCount\",\"workerUrl\"];function i4(e,t){for(let i of uet)i in t&&(e[i]=t[i]);let{RTLTextPlugin:r=\"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js\"}=t;r&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()===\"unavailable\"&&e.setRTLTextPlugin(r,i=>{i&&console.error(i)},!0)}var Rf=K_.createContext(null);function n4(e,t,r){let i=(0,Hc.useContext)(P8),[s,n]=(0,Hc.useState)(null),o=(0,Hc.useRef)(),{current:c}=(0,Hc.useRef)({mapLib:null,map:null});(0,Hc.useEffect)(()=>{let w=e.mapLib,C=!0,R;return Promise.resolve(w||r).then(N=>{if(!C)return;if(!N)throw new Error(\"Invalid mapLib\");let j=\"Map\"in N?N:N.default;if(!j.Map)throw new Error(\"Invalid mapLib\");if(i4(j,e),!j.supported||j.supported(e))e.reuseMaps&&(R=I0.reuse(e,o.current)),R||(R=new I0(j.Map,e,o.current)),c.map=r4(R),c.mapLib=j,n(R),i?.onMapMount(c.map,e.id);else throw new Error(\"Map is not supported by this browser\")}).catch(N=>{let{onError:j}=e;j?j({type:\"error\",target:null,originalEvent:null,error:N}):console.error(N)}),()=>{C=!1,R&&(i?.onMapUnmount(e.id),e.reuseMaps?R.recycle():R.destroy())}},[]),D8(()=>{s&&s.setProps(e)}),(0,Hc.useImperativeHandle)(t,()=>c.map,[s]);let f=(0,Hc.useMemo)(()=>({position:\"relative\",width:\"100%\",height:\"100%\",...e.style}),[e.style]),_={height:\"100%\"};return K_.createElement(\"div\",{id:e.id,ref:o,style:f},s&&K_.createElement(Rf.Provider,{value:c},K_.createElement(\"div\",{\"mapboxgl-children\":\"\",style:_},e.children)))}var O8=ki(Ji()),B8=ki(bM()),bl=ki(Ji());var het=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function Jl(e,t){if(!e||!t)return;let r=e.style;for(let i in t){let s=t[i];Number.isFinite(s)&&!het.test(i)?r[i]=`${s}px`:r[i]=s}}function fet(e,t){let{map:r,mapLib:i}=(0,bl.useContext)(Rf),s=(0,bl.useRef)({props:e});s.current.props=e;let n=(0,bl.useMemo)(()=>{let Y=!1;O8.Children.forEach(e.children,K=>{K&&(Y=!0)});let rt={...e,element:Y?document.createElement(\"div\"):null},$=new i.Marker(rt);return $.setLngLat([e.longitude,e.latitude]),$.getElement().addEventListener(\"click\",K=>{var tt,ut;(ut=(tt=s.current.props).onClick)===null||ut===void 0||ut.call(tt,{type:\"click\",target:$,originalEvent:K})}),$.on(\"dragstart\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDragStart)===null||ut===void 0||ut.call(tt,Pt)}),$.on(\"drag\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDrag)===null||ut===void 0||ut.call(tt,Pt)}),$.on(\"dragend\",K=>{var tt,ut;let Pt=K;Pt.lngLat=n.getLngLat(),(ut=(tt=s.current.props).onDragEnd)===null||ut===void 0||ut.call(tt,Pt)}),$},[]);(0,bl.useEffect)(()=>(n.addTo(r.getMap()),()=>{n.remove()}),[]);let{longitude:o,latitude:c,offset:f,style:_,draggable:w=!1,popup:C=null,rotation:R=0,rotationAlignment:N=\"auto\",pitchAlignment:j=\"auto\"}=e;return(0,bl.useEffect)(()=>{Jl(n.getElement(),_)},[_]),(0,bl.useImperativeHandle)(t,()=>n,[]),(n.getLngLat().lng!==o||n.getLngLat().lat!==c)&&n.setLngLat([o,c]),f&&!I8(n.getOffset(),f)&&n.setOffset(f),n.isDraggable()!==w&&n.setDraggable(w),n.getRotation()!==R&&n.setRotation(R),n.getRotationAlignment()!==N&&n.setRotationAlignment(N),n.getPitchAlignment()!==j&&n.setPitchAlignment(j),n.getPopup()!==C&&n.setPopup(C),(0,B8.createPortal)(e.children,n.getElement())}var det=(0,bl.memo)((0,bl.forwardRef)(fet));var z8=ki(bM()),$a=ki(Ji());function F8(e){return new Set(e?e.trim().split(/\\s+/):[])}function pet(e,t){let{map:r,mapLib:i}=(0,$a.useContext)(Rf),s=(0,$a.useMemo)(()=>document.createElement(\"div\"),[]),n=(0,$a.useRef)({props:e});n.current.props=e;let o=(0,$a.useMemo)(()=>{let c={...e},f=new i.Popup(c);return f.setLngLat([e.longitude,e.latitude]),f.once(\"open\",_=>{var w,C;(C=(w=n.current.props).onOpen)===null||C===void 0||C.call(w,_)}),f},[]);if((0,$a.useEffect)(()=>{let c=f=>{var _,w;(w=(_=n.current.props).onClose)===null||w===void 0||w.call(_,f)};return o.on(\"close\",c),o.setDOMContent(s).addTo(r.getMap()),()=>{o.off(\"close\",c),o.isOpen()&&o.remove()}},[]),(0,$a.useEffect)(()=>{Jl(o.getElement(),e.style)},[e.style]),(0,$a.useImperativeHandle)(t,()=>o,[]),o.isOpen()&&((o.getLngLat().lng!==e.longitude||o.getLngLat().lat!==e.latitude)&&o.setLngLat([e.longitude,e.latitude]),e.offset&&!Kl(o.options.offset,e.offset)&&o.setOffset(e.offset),(o.options.anchor!==e.anchor||o.options.maxWidth!==e.maxWidth)&&(o.options.anchor=e.anchor,o.setMaxWidth(e.maxWidth)),o.options.className!==e.className)){let c=F8(o.options.className),f=F8(e.className);for(let _ of c)f.has(_)||o.removeClassName(_);for(let _ of f)c.has(_)||o.addClassName(_);o.options.className=e.className}return(0,z8.createPortal)(e.children,s)}var Aet=(0,$a.memo)((0,$a.forwardRef)(pet));var TM=ki(Ji());var J_=ki(Ji());function met(e,t,r,i){let s=(0,J_.useContext)(Rf),n=(0,J_.useMemo)(()=>e(s),[]);return(0,J_.useEffect)(()=>{let o=i||r||t,c=typeof t==\"function\"&&typeof r==\"function\"?t:null,f=typeof r==\"function\"?r:typeof t==\"function\"?t:null,{map:_}=s;return _.hasControl(n)||(_.addControl(n,o?.position),c&&c(s)),()=>{f&&f(s),_.hasControl(n)&&_.removeControl(n)}},[]),n}var Lh=met;function get(e){let t=Lh(({mapLib:r})=>new r.AttributionControl(e),{position:e.position});return(0,TM.useEffect)(()=>{Jl(t._container,e.style)},[e.style]),null}var _et=(0,TM.memo)(get);var MM=ki(Ji());function yet(e){let t=Lh(({mapLib:r})=>new r.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)}),{position:e.position});return(0,MM.useEffect)(()=>{Jl(t._controlContainer,e.style)},[e.style]),null}var vet=(0,MM.memo)(yet);var Df=ki(Ji());function xet(e,t){let r=(0,Df.useRef)({props:e}),i=Lh(({mapLib:s})=>{let n=new s.GeolocateControl(e),o=n._setupUI;return n._setupUI=c=>{n._container.hasChildNodes()||o(c)},n.on(\"geolocate\",c=>{var f,_;(_=(f=r.current.props).onGeolocate)===null||_===void 0||_.call(f,c)}),n.on(\"error\",c=>{var f,_;(_=(f=r.current.props).onError)===null||_===void 0||_.call(f,c)}),n.on(\"outofmaxbounds\",c=>{var f,_;(_=(f=r.current.props).onOutOfMaxBounds)===null||_===void 0||_.call(f,c)}),n.on(\"trackuserlocationstart\",c=>{var f,_;(_=(f=r.current.props).onTrackUserLocationStart)===null||_===void 0||_.call(f,c)}),n.on(\"trackuserlocationend\",c=>{var f,_;(_=(f=r.current.props).onTrackUserLocationEnd)===null||_===void 0||_.call(f,c)}),n},{position:e.position});return r.current.props=e,(0,Df.useImperativeHandle)(t,()=>i,[]),(0,Df.useEffect)(()=>{Jl(i._container,e.style)},[e.style]),null}var bet=(0,Df.memo)((0,Df.forwardRef)(xet));var EM=ki(Ji());function wet(e){let t=Lh(({mapLib:r})=>new r.NavigationControl(e),{position:e.position});return(0,EM.useEffect)(()=>{Jl(t._container,e.style)},[e.style]),null}var Tet=(0,EM.memo)(wet);var ty=ki(Ji());function Met(e){let t=Lh(({mapLib:n})=>new n.ScaleControl(e),{position:e.position}),r=(0,ty.useRef)(e),i=r.current;r.current=e;let{style:s}=e;return e.maxWidth!==void 0&&e.maxWidth!==i.maxWidth&&(t.options.maxWidth=e.maxWidth),e.unit!==void 0&&e.unit!==i.unit&&t.setUnit(e.unit),(0,ty.useEffect)(()=>{Jl(t._container,s)},[s]),null}var Eet=(0,ty.memo)(Met);var N1=ki(Ji());var Iet=ki(Ji()),U1=ki(Ji()),Cet=ki(Ji());var Let=Promise.resolve().then(()=>ki(U8())),ket=V8.forwardRef(function(t,r){return n4(t,r,Let)});var j8=ket;var Mo=ki(Ji());function OA(e,t){if(!e)throw new Error(t||\"loader assertion failed.\")}var Of={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},Ret=Of.self||Of.window||Of.global||{},Det=Of.window||Of.self||Of.global||{},Oet=Of.global||Of.self||Of.window||{},Bet=Of.document||{};var C0=!!(typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser);var G8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Fet=G8&&parseFloat(G8[1])||0;var W8=\"3.4.14\";function Xa(e,t){if(!e)throw new Error(t||\"loaders.gl assertion failed.\")}var Bf={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},Zbt=Bf.self||Bf.window||Bf.global||{},Ybt=Bf.window||Bf.self||Bf.global||{},Qbt=Bf.global||Bf.self||Bf.window||{},$bt=Bf.document||{};var L0=typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser;var q8=typeof window<\"u\"&&typeof window.orientation<\"u\",H8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Xbt=H8&&parseFloat(H8[1])||0;function BA(e){\"@babel/helpers - typeof\";return BA=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},BA(e)}function a4(e,t){if(BA(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||\"default\");if(BA(i)!=\"object\")return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(t===\"string\"?String:Number)(e)}function l4(e){var t=a4(e,\"string\");return BA(t)==\"symbol\"?t:String(t)}function G(e,t,r){return t=l4(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var V1=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"workerThread\",void 0),G(this,\"isRunning\",!0),G(this,\"result\",void 0),G(this,\"_resolve\",()=>{}),G(this,\"_reject\",()=>{}),this.name=t,this.workerThread=r,this.result=new Promise((i,s)=>{this._resolve=i,this._reject=s})}postMessage(t,r){this.workerThread.postMessage({source:\"loaders.gl\",type:t,payload:r})}done(t){Xa(this.isRunning),this.isRunning=!1,this._resolve(t)}error(t){Xa(this.isRunning),this.isRunning=!1,this._reject(t)}};var ey=class{terminate(){}};var c4=new Map;function Z8(e){Xa(e.source&&!e.url||!e.source&&e.url);let t=c4.get(e.source||e.url);return t||(e.url&&(t=zet(e.url),c4.set(e.url,t)),e.source&&(t=Y8(e.source),c4.set(e.source,t))),Xa(t),t}function zet(e){if(!e.startsWith(\"http\"))return e;let t=Net(e);return Y8(t)}function Y8(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function Net(e){return`try {\n importScripts('`.concat(e,`');\n} catch (error) {\n console.error(error);\n throw error;\n}`)}function u4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=arguments.length>2?arguments[2]:void 0,i=r||new Set;if(e){if(Q8(e))i.add(e);else if(Q8(e.buffer))i.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e==\"object\")for(let s in e)u4(e[s],t,i)}}return r===void 0?Array.from(i):[]}function Q8(e){return e?e instanceof ArrayBuffer||typeof MessagePort<\"u\"&&e instanceof MessagePort||typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap||typeof OffscreenCanvas<\"u\"&&e instanceof OffscreenCanvas:!1}var h4=()=>{},FA=class{static isSupported(){return typeof Worker<\"u\"&&L0||typeof ey<\"u\"&&!L0}constructor(t){G(this,\"name\",void 0),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"terminated\",!1),G(this,\"worker\",void 0),G(this,\"onMessage\",void 0),G(this,\"onError\",void 0),G(this,\"_loadableURL\",\"\");let{name:r,source:i,url:s}=t;Xa(i||s),this.name=r,this.source=i,this.url=s,this.onMessage=h4,this.onError=n=>console.log(n),this.worker=L0?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=h4,this.onError=h4,this.worker.terminate(),this.terminated=!0}get isRunning(){return!!this.onMessage}postMessage(t,r){r=r||u4(t),this.worker.postMessage(t,r)}_getErrorFromErrorEvent(t){let r=\"Failed to load \";return r+=\"worker \".concat(this.name,\" from \").concat(this.url,\". \"),t.message&&(r+=\"\".concat(t.message,\" in \")),t.lineno&&(r+=\":\".concat(t.lineno,\":\").concat(t.colno)),new Error(r)}_createBrowserWorker(){this._loadableURL=Z8({source:this.source,url:this.url});let t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error(\"No data received\"))},t.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},t.onmessageerror=r=>console.error(r),t}_createNodeWorker(){let t;if(this.url){let i=this.url.includes(\":/\")||this.url.startsWith(\"/\")?this.url:\"./\".concat(this.url);t=new ey(i,{eval:!1})}else if(this.source)t=new ey(this.source,{eval:!0});else throw new Error(\"no worker\");return t.on(\"message\",r=>{this.onMessage(r)}),t.on(\"error\",r=>{this.onError(r)}),t.on(\"exit\",r=>{}),t}};var j1=class{static isSupported(){return FA.isSupported()}constructor(t){G(this,\"name\",\"unnamed\"),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"maxConcurrency\",1),G(this,\"maxMobileConcurrency\",1),G(this,\"onDebug\",()=>{}),G(this,\"reuseWorkers\",!0),G(this,\"props\",{}),G(this,\"jobQueue\",[]),G(this,\"idleQueue\",[]),G(this,\"count\",0),G(this,\"isDestroyed\",!1),this.source=t.source,this.url=t.url,this.setProps(t)}destroy(){this.idleQueue.forEach(t=>t.destroy()),this.isDestroyed=!0}setProps(t){this.props={...this.props,...t},t.name!==void 0&&(this.name=t.name),t.maxConcurrency!==void 0&&(this.maxConcurrency=t.maxConcurrency),t.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=t.maxMobileConcurrency),t.reuseWorkers!==void 0&&(this.reuseWorkers=t.reuseWorkers),t.onDebug!==void 0&&(this.onDebug=t.onDebug)}async startJob(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(n,o,c)=>n.done(c),i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(n,o)=>n.error(o),s=new Promise(n=>(this.jobQueue.push({name:t,onMessage:r,onError:i,onStart:n}),this));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;let t=this._getAvailableWorker();if(!t)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:\"Starting job\",name:r.name,workerThread:t,backlog:this.jobQueue.length});let i=new V1(r.name,t);t.onMessage=s=>r.onMessage(i,s.type,s.payload),t.onError=s=>r.onError(i,s),r.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(t)}}}returnWorkerToQueue(t){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(t.destroy(),this.count--):this.idleQueue.push(t),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}},zA=class e{static isSupported(){return FA.isSupported()}static getWorkerFarm(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e._workerFarm=e._workerFarm||new e({}),e._workerFarm.setProps(t),e._workerFarm}constructor(t){G(this,\"props\",void 0),G(this,\"workerPools\",new Map),this.props={...Uet},this.setProps(t),this.workerPools=new Map}destroy(){for(let t of this.workerPools.values())t.destroy();this.workerPools=new Map}setProps(t){this.props={...this.props,...t};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(t){let{name:r,source:i,url:s}=t,n=this.workerPools.get(r);return n||(n=new j1({name:r,source:i,url:s}),n.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,n)),n}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}};G(zA,\"_workerFarm\",void 0);var Vet=\"latest\";function f4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t[e.id]||{},i=\"\".concat(e.id,\"-worker.js\"),s=r.workerUrl;if(!s&&e.id===\"compression\"&&(s=t.workerUrl),t._workerType===\"test\"&&(s=\"modules/\".concat(e.module,\"/dist/\").concat(i)),!s){let n=e.version;n===\"latest\"&&(n=Vet);let o=n?\"@\".concat(n):\"\";s=\"https://unpkg.com/@loaders.gl/\".concat(e.module).concat(o,\"/dist/\").concat(i)}return Xa(s),s}function d4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W8;Xa(e,\"no worker provided\");let r=e.version;return!(!t||!r)}function p4(e,t){return!zA.isSupported()||!L0&&!(t!=null&&t._nodeWorkers)?!1:e.worker&&t?.worker}async function A4(e,t,r,i,s){let n=e.id,o=f4(e,r),f=zA.getWorkerFarm(r).getWorkerPool({name:n,url:o});r=JSON.parse(JSON.stringify(r)),i=JSON.parse(JSON.stringify(i||{}));let _=await f.startJob(\"process-on-worker\",jet.bind(null,s));return _.postMessage(\"process\",{input:t,options:r,context:i}),await(await _.result).result}async function jet(e,t,r,i){switch(r){case\"done\":t.done(i);break;case\"error\":t.error(new Error(i.error));break;case\"process\":let{id:s,input:n,options:o}=i;try{let c=await e(n,o);t.postMessage(\"done\",{id:s,result:c})}catch(c){let f=c instanceof Error?c.message:\"unknown error\";t.postMessage(\"error\",{id:s,error:f})}break;default:console.warn(\"parse-with-worker unknown message \".concat(r))}}function m4(e,t,r){if(r=r||e.byteLength,e.byteLengthc instanceof ArrayBuffer?new Uint8Array(c):c),s=i.reduce((c,f)=>c+f.byteLength,0),n=new Uint8Array(s),o=0;for(let c of i)n.set(c,o),o+=c.byteLength;return n.buffer}async function _4(e){let t=[];for await(let r of e)t.push(r);return g4(...t)}function G1(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var k0=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=G1(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(G1()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var ry=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:i}=t,s=this.stats[r];return s||(t instanceof k0?s=t:s=new k0(r,i),this.stats[r]=s),s}};var Get=\"Queued Requests\",Wet=\"Active Requests\",Het=\"Cancelled Requests\",qet=\"Queued Requests Ever\",Zet=\"Active Requests Ever\",Yet={id:\"request-scheduler\",throttleRequests:!0,maxRequests:6},iy=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};G(this,\"props\",void 0),G(this,\"stats\",void 0),G(this,\"activeRequestCount\",0),G(this,\"requestQueue\",[]),G(this,\"requestMap\",new Map),G(this,\"deferredUpdate\",null),this.props={...Yet,...t},this.stats=new ry({id:this.props.id}),this.stats.get(Get),this.stats.get(Wet),this.stats.get(Het),this.stats.get(qet),this.stats.get(Zet)}scheduleRequest(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:()=>0;if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let i={handle:t,priority:0,getPriority:r},s=new Promise(n=>(i.resolve=n,i));return this.requestQueue.push(i),this.requestMap.set(t,s),this._issueNewRequests(),s}_issueRequest(t){let{handle:r,resolve:i}=t,s=!1,n=()=>{s||(s=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,i?i({done:n}):Promise.resolve({done:n})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let r=0;rr.priority-i.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var Qet=\"\",$8={};function y4(e){for(let t in $8)if(e.startsWith(t)){let r=$8[t];e=e.replace(t,r)}return!e.startsWith(\"http://\")&&!e.startsWith(\"https://\")&&(e=\"\".concat(Qet).concat(e)),e}function X8(e){return e&&typeof e==\"object\"&&e.isBuffer}function PM(e){if(X8(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e==\"string\"){let t=e;return new TextEncoder().encode(t).buffer}if(e&&typeof e==\"object\"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error(\"toArrayBuffer\")}var R0={};dA(R0,{dirname:()=>Xet,filename:()=>$et,join:()=>Ket,resolve:()=>Jet});function K8(){var e;if(typeof process<\"u\"&&typeof process.cwd<\"u\")return process.cwd();let t=(e=window.location)===null||e===void 0?void 0:e.pathname;return t?.slice(0,t.lastIndexOf(\"/\")+1)||\"\"}function $et(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(t+1):\"\"}function Xet(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(0,t):\"\"}function Ket(){for(var e=arguments.length,t=new Array(e),r=0;r(n&&(s=s.replace(new RegExp(\"^\".concat(i)),\"\")),n!==t.length-1&&(s=s.replace(new RegExp(\"\".concat(i,\"$\")),\"\")),s)),t.join(i)}function Jet(){let e=[];for(let s=0;s=-1&&!r;s--){let n;s>=0?n=e[s]:(i===void 0&&(i=K8()),n=i),n.length!==0&&(t=\"\".concat(n,\"/\").concat(t),r=n.charCodeAt(0)===W1)}return t=trt(t,!r),r?\"/\".concat(t):t.length>0?t:\".\"}var W1=47,v4=46;function trt(e,t){let r=\"\",i=-1,s=0,n,o=!1;for(let c=0;c<=e.length;++c){if(c2){let f=r.length-1,_=f;for(;_>=0&&r.charCodeAt(_)!==W1;--_);if(_!==f){r=_===-1?\"\":r.slice(0,_),i=c,s=0,o=!1;continue}}else if(r.length===2||r.length===1){r=\"\",i=c,s=0,o=!1;continue}}t&&(r.length>0?r+=\"/..\":r=\"..\",o=!0)}else{let f=e.slice(i+1,c);r.length>0?r+=\"/\".concat(f):r=f,o=!1}i=c,s=0}else n===v4&&s!==-1?++s:s=-1}return r}var ert=e=>typeof e==\"boolean\",H1=e=>typeof e==\"function\",D0=e=>e!==null&&typeof e==\"object\",x4=e=>D0(e)&&e.constructor==={}.constructor;var J8=e=>e&&typeof e[Symbol.iterator]==\"function\",tU=e=>e&&typeof e[Symbol.asyncIterator]==\"function\";var Eu=e=>typeof Response<\"u\"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var Pu=e=>typeof Blob<\"u\"&&e instanceof Blob,eU=e=>e&&typeof e==\"object\"&&e.isBuffer;var rrt=e=>typeof ReadableStream<\"u\"&&e instanceof ReadableStream||D0(e)&&H1(e.tee)&&H1(e.cancel)&&H1(e.getReader);var irt=e=>D0(e)&&H1(e.read)&&H1(e.pipe)&&ert(e.readable),IM=e=>rrt(e)||irt(e);var nrt=/^data:([-\\w.]+\\/[-\\w.+]+)(;|,)/,srt=/^([-\\w.]+\\/[-\\w.+]+)/;function rU(e){let t=srt.exec(e);return t?t[1]:e}function b4(e){let t=nrt.exec(e);return t?t[1]:\"\"}var iU=/\\?.*/;function nU(e){let t=e.match(iU);return t&&t[0]}function ny(e){return e.replace(iU,\"\")}function O0(e){return Eu(e)?e.url:Pu(e)?e.name||\"\":typeof e==\"string\"?e:\"\"}function q1(e){if(Eu(e)){let t=e,r=t.headers.get(\"content-type\")||\"\",i=ny(t.url);return rU(r)||b4(i)}return Pu(e)?e.type||\"\":typeof e==\"string\"?b4(e):\"\"}function sU(e){return Eu(e)?e.headers[\"content-length\"]||-1:Pu(e)?e.size:typeof e==\"string\"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function CM(e){if(Eu(e))return e;let t={},r=sU(e);r>=0&&(t[\"content-length\"]=String(r));let i=O0(e),s=q1(e);s&&(t[\"content-type\"]=s);let n=await art(e);n&&(t[\"x-first-bytes\"]=n),typeof e==\"string\"&&(e=new TextEncoder().encode(e));let o=new Response(e,{headers:t});return Object.defineProperty(o,\"url\",{value:i}),o}async function oU(e){if(!e.ok){let t=await ort(e);throw new Error(t)}}async function ort(e){let t=\"Failed to fetch resource \".concat(e.url,\" (\").concat(e.status,\"): \");try{let r=e.headers.get(\"Content-Type\"),i=e.statusText;r.includes(\"application/json\")&&(i+=\" \".concat(await e.text())),t+=i,t=t.length>60?\"\".concat(t.slice(0,60),\"...\"):t}catch{}return t}async function art(e){if(typeof e==\"string\")return\"data:,\".concat(e.slice(0,5));if(e instanceof Blob){let r=e.slice(0,5);return await new Promise(i=>{let s=new FileReader;s.onload=n=>{var o;return i(n==null||(o=n.target)===null||o===void 0?void 0:o.result)},s.readAsDataURL(r)})}if(e instanceof ArrayBuffer){let r=e.slice(0,5),i=lrt(r);return\"data:base64,\".concat(i)}return null}function lrt(e){let t=\"\",r=new Uint8Array(e);for(let i=0;i=0)}function kh(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||S4()}var crt=globalThis.self||globalThis.window||globalThis.global,sy=globalThis.window||globalThis.self||globalThis.global,urt=globalThis.document||{},B0=globalThis.process||{},hrt=globalThis.console,j2t=globalThis.navigator||{};var LM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",H2t=kh();function frt(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var kM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=frt(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function aU(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function lU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function RM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let n=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(n/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(s,\");\"),\"background-size:\".concat(n,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var DM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(DM||(DM={}));var drt=10;function cU(e){return typeof e!=\"string\"?e:(e=e.toUpperCase(),DM[e]||DM.WHITE)}function uU(e,t,r){if(!kh&&typeof e==\"string\"){if(t){let i=cU(t);e=\"\\x1B[\".concat(i,\"m\").concat(e,\"\\x1B[39m\")}if(r){let i=cU(r);e=\"\\x1B[\".concat(i+drt,\"m\").concat(e,\"\\x1B[49m\")}}return e}function hU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r),s=e;for(let n of i){let o=s[n];typeof o==\"function\"&&(t.find(c=>n===c)||(s[n]=o.bind(e)))}}function oy(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function F0(){let e;if(kh()&&sy.performance){var t,r;e=sy===null||sy===void 0||(t=sy.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in B0){var i;let s=B0===null||B0===void 0||(i=B0.hrtime)===null||i===void 0?void 0:i.call(B0);e=s[0]*1e3+s[1]/1e6}else e=Date.now();return e}var ay={debug:kh()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},prt={enabled:!0,level:0};function Iu(){}var fU={},dU={once:!0},Ff=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};this.id=void 0,this.VERSION=LM,this._startTs=F0(),this._deltaTs=F0(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new kM(\"__probe-\".concat(this.id,\"__\"),prt),this.timeStamp(\"\".concat(this.id,\" started\")),hU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F0()-this._startTs).toPrecision(10))}getDelta(){return Number((F0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){oy(t,r)}warn(t){return this._getLogFunction(0,t,ay.warn,arguments,dU)}error(t){return this._getLogFunction(0,t,ay.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,ay.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,ay.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,ay.debug||ay.info,arguments,dU)}table(t,r,i){return r?this._getLogFunction(t,r,console.table||Iu,i&&[i],{tag:_rt(r)}):Iu}image(t){let{logLevel:r,priority:i,image:s,message:n=\"\",scale:o=1}=t;return this._shouldLog(r||i)?kh()?grt({image:s,message:n,scale:o}):mrt({image:s,message:n,scale:o}):Iu}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||Iu)}group(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=pU({logLevel:t,message:r,opts:i}),{collapsed:n}=i;return s.method=(n?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Iu)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=AU(t)}_getLogFunction(t,r,i,s,n){if(this._shouldLog(t)){n=pU({logLevel:t,message:r,args:s,opts:n}),i=i||n.method,oy(i),n.total=this.getTotal(),n.delta=this.getDelta(),this._deltaTs=F0();let o=n.tag||n.message;if(n.once&&o)if(!fU[o])fU[o]=F0();else return Iu;return r=Art(this.id,n.message,n),i.bind(console,r,...n.args)}return Iu}};Ff.VERSION=LM;function AU(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return oy(Number.isFinite(t)&&t>=0),t}function pU(e){let{logLevel:t,message:r}=e;e.logLevel=AU(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let s=typeof e.message;return oy(s===\"string\"||s===\"object\"),Object.assign(e,{args:i},e.opts)}function Art(e,t,r){if(typeof t==\"string\"){let i=r.time?lU(aU(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=uU(t,r.color,r.background)}return t}function mrt(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Iu}function grt(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let n=new Image;return n.onload=()=>{let o=RM(n,r,i);console.log(...o)},n.src=t,Iu}let s=t.nodeName||\"\";if(s.toLowerCase()===\"img\")return console.log(...RM(t,r,i)),Iu;if(s.toLowerCase()===\"canvas\"){let n=new Image;return n.onload=()=>console.log(...RM(n,r,i)),n.src=t.toDataURL(),Iu}return Iu}function _rt(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var mSt=new Ff({id:\"@probe.gl/log\"});var T4=new Ff({id:\"loaders.gl\"}),OM=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},BM=class{constructor(){G(this,\"console\",void 0),this.console=console}log(){for(var t=arguments.length,r=new Array(t),i=0;i{let e=E4();return e.globalOptions=e.globalOptions||{...M4},e.globalOptions};function yU(e,t,r,i){return r=r||[],r=Array.isArray(r)?r:[r],yrt(e,r),xrt(t,e,i)}function yrt(e,t){gU(e,null,M4,mU,t);for(let r of t){let i=e&&e[r.id]||{},s=r.options&&r.options[r.id]||{},n=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};gU(i,r.id,s,n,t)}}function gU(e,t,r,i,s){let n=t||\"Top level\",o=t?\"\".concat(t,\".\"):\"\";for(let c in e){let f=!t&&D0(e[c]),_=c===\"baseUri\"&&!t,w=c===\"workerUrl\"&&t;if(!(c in r)&&!_&&!w){if(c in i)T4.warn(\"\".concat(n,\" loader option '\").concat(o).concat(c,\"' no longer supported, use '\").concat(i[c],\"'\"))();else if(!f){let C=vrt(c,s);T4.warn(\"\".concat(n,\" loader option '\").concat(o).concat(c,\"' not recognized. \").concat(C))()}}}}function vrt(e,t){let r=e.toLowerCase(),i=\"\";for(let s of t)for(let n in s.options){if(e===n)return\"Did you mean '\".concat(s.id,\".\").concat(n,\"'?\");let o=n.toLowerCase();(r.startsWith(o)||o.startsWith(r))&&(i=i||\"Did you mean '\".concat(s.id,\".\").concat(n,\"'?\"))}return i}function xrt(e,t,r){let s={...e.options||{}};return brt(s,r),s.log===null&&(s.log=new OM),_U(s,P4()),_U(s,t),s}function _U(e,t){for(let r in t)if(r in t){let i=t[r];x4(i)&&x4(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function brt(e,t){t&&!(\"baseUri\"in e)&&(e.baseUri=t)}function Z1(e){var t;return e?(Array.isArray(e)&&(e=e[0]),Array.isArray((t=e)===null||t===void 0?void 0:t.extensions)):!1}function Y1(e){var t,r;OA(e,\"null loader\"),OA(Z1(e),\"invalid loader\");let i;return Array.isArray(e)&&(i=e[1],e=e[0],e={...e,options:{...e.options,...i}}),((t=e)!==null&&t!==void 0&&t.parseTextSync||(r=e)!==null&&r!==void 0&&r.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var vU=()=>{let e=E4();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function I4(e){let t=vU();e=Array.isArray(e)?e:[e];for(let r of e){let i=Y1(r);t.find(s=>i===s)||t.unshift(i)}}function xU(){return vU()}var bU=new Ff({id:\"loaders.gl\"});var wrt=/\\.([^.]+)$/;async function TU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!MU(e))return null;let s=wU(e,t,{...r,nothrow:!0},i);if(s)return s;if(Pu(e)&&(e=await e.slice(0,10).arrayBuffer(),s=wU(e,t,r,i)),!s&&!(r!=null&&r.nothrow))throw new Error(EU(e));return s}function wU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!MU(e))return null;if(t&&!Array.isArray(t))return Y1(t);let s=[];t&&(s=s.concat(t)),r!=null&&r.ignoreRegisteredLoaders||s.push(...xU()),Trt(s);let n=Srt(e,s,r,i);if(!n&&!(r!=null&&r.nothrow))throw new Error(EU(e));return n}function Srt(e,t,r,i){let s=O0(e),n=q1(e),o=ny(s)||i?.url,c=null,f=\"\";if(r!=null&&r.mimeType&&(c=C4(t,r?.mimeType),f=\"match forced by supplied MIME type \".concat(r?.mimeType)),c=c||Mrt(t,o),f=f||(c?\"matched url \".concat(o):\"\"),c=c||C4(t,n),f=f||(c?\"matched MIME type \".concat(n):\"\"),c=c||Prt(t,e),f=f||(c?\"matched initial data \".concat(PU(e)):\"\"),c=c||C4(t,r?.fallbackMimeType),f=f||(c?\"matched fallback MIME type \".concat(n):\"\"),f){var _;bU.log(1,\"selectLoader selected \".concat((_=c)===null||_===void 0?void 0:_.name,\": \").concat(f,\".\"))}return c}function MU(e){return!(e instanceof Response&&e.status===204)}function EU(e){let t=O0(e),r=q1(e),i=\"No valid loader found (\";i+=t?\"\".concat(R0.filename(t),\", \"):\"no url provided, \",i+=\"MIME type: \".concat(r?'\"'.concat(r,'\"'):\"not provided\",\", \");let s=e?PU(e):\"\";return i+=s?' first bytes: \"'.concat(s,'\"'):\"first bytes: not available\",i+=\")\",i}function Trt(e){for(let t of e)Y1(t)}function Mrt(e,t){let r=t&&wrt.exec(t),i=r&&r[1];return i?Ert(e,i):null}function Ert(e,t){t=t.toLowerCase();for(let r of e)for(let i of r.extensions)if(i.toLowerCase()===t)return r;return null}function C4(e,t){for(let r of e)if(r.mimeTypes&&r.mimeTypes.includes(t)||t===\"application/x.\".concat(r.id))return r;return null}function Prt(e,t){if(!t)return null;for(let r of e)if(typeof t==\"string\"){if(Irt(t,r))return r}else if(ArrayBuffer.isView(t)){if(SU(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&SU(t,0,r))return r;return null}function Irt(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(i=>e.startsWith(i))}function SU(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(s=>Crt(e,t,r,s))}function Crt(e,t,r,i){if(i instanceof ArrayBuffer)return m4(i,e,i.byteLength);switch(typeof i){case\"function\":return i(e,r);case\"string\":let s=L4(e,t,i.length);return i===s;default:return!1}}function PU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5;return typeof e==\"string\"?e.slice(0,t):ArrayBuffer.isView(e)?L4(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?L4(e,0,t):\"\"}function L4(e,t,r){if(e.byteLength1&&arguments[1]!==void 0?arguments[1]:{};return function*(){let{chunkSize:r=262144}=t,i=0;for(;iw4(s,i):t!=null&&t.fetch?t?.fetch:w4}function OU(e,t,r){if(r)return r;let i={fetch:FM(t,e),...e};if(i.url){let s=ny(i.url);i.baseUrl=s,i.queryString=nU(i.url),i.filename=R0.filename(s),i.baseUrl=R0.dirname(s)}return Array.isArray(i.loaders)||(i.loaders=null),i}function BU(e,t){if(!t&&e&&!Array.isArray(e))return e;let r;if(e&&(r=Array.isArray(e)?e:[e]),t&&t.loaders){let i=Array.isArray(t.loaders)?t.loaders:[t.loaders];r=r?[...r,...i]:i}return r&&r.length?r:null}async function zM(e,t,r,i){Xa(!i||typeof i==\"object\"),t&&!Array.isArray(t)&&!Z1(t)&&(i=void 0,r=t,t=void 0),e=await e,r=r||{};let s=O0(e),o=BU(t,i),c=await TU(e,o,r);return c?(r=yU(r,c,o,s),i=OU({url:s,parse:zM,loaders:o},r,i||null),await Drt(c,e,r,i)):null}async function Drt(e,t,r,i){if(d4(e),Eu(t)){let s=t,{ok:n,redirected:o,status:c,statusText:f,type:_,url:w}=s,C=Object.fromEntries(s.headers.entries());i.response={headers:C,ok:n,redirected:o,status:c,statusText:f,type:_,url:w}}if(t=await DU(t,e,r),e.parseTextSync&&typeof t==\"string\")return r.dataType=\"text\",e.parseTextSync(t,r,i,e);if(p4(e,r))return await A4(e,t,r,i,zM);if(e.parseText&&typeof t==\"string\")return await e.parseText(t,r,i,e);if(e.parse)return await e.parse(t,r,i,e);throw Xa(!e.parseSync),new Error(\"\".concat(e.id,\" loader - no parser found and worker is disabled\"))}async function NA(e,t,r,i){!Array.isArray(t)&&!Z1(t)&&(i=void 0,r=t,t=void 0);let s=FM(r),n=e;return typeof e==\"string\"&&(n=await s(e)),Pu(e)&&(n=await s(e)),await zM(n,t,r)}var FU=\"3.4.14\";var{_parseImageNode:Ort}=globalThis,R4=typeof Image<\"u\",D4=typeof ImageBitmap<\"u\",Brt=!!Ort,O4=C0?!0:Brt;function zU(e){switch(e){case\"auto\":return D4||R4||O4;case\"imagebitmap\":return D4;case\"image\":return R4;case\"data\":return O4;default:throw new Error(\"@loaders.gl/images: image \".concat(e,\" not supported in this environment\"))}}function NU(){if(D4)return\"imagebitmap\";if(R4)return\"image\";if(O4)return\"data\";throw new Error(\"Install '@loaders.gl/polyfills' to parse images under Node.js\")}function Frt(e){let t=zrt(e);if(!t)throw new Error(\"Not an image\");return t}function UU(e){switch(Frt(e)){case\"data\":return e;case\"image\":case\"imagebitmap\":let t=document.createElement(\"canvas\"),r=t.getContext(\"2d\");if(!r)throw new Error(\"getImageData\");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error(\"getImageData\")}}function zrt(e){return typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap?\"imagebitmap\":typeof Image<\"u\"&&e instanceof Image?\"image\":e&&typeof e==\"object\"&&e.data&&e.width&&e.height?\"data\":null}var Nrt=/^data:image\\/svg\\+xml/,Urt=/\\.svg((\\?|#).*)?$/;function NM(e){return e&&(Nrt.test(e)||Urt.test(e))}function VU(e,t){if(NM(t)){let i=new TextDecoder().decode(e);try{typeof unescape==\"function\"&&typeof encodeURIComponent==\"function\"&&(i=unescape(encodeURIComponent(i)))}catch(n){throw new Error(n.message)}return\"data:image/svg+xml;base64,\".concat(btoa(i))}return B4(e,t)}function B4(e,t){if(NM(t))throw new Error(\"SVG cannot be parsed directly to imagebitmap\");return new Blob([new Uint8Array(e)])}async function UM(e,t,r){let i=VU(e,r),s=self.URL||self.webkitURL,n=typeof i!=\"string\"&&s.createObjectURL(i);try{return await Vrt(n||i,t)}finally{n&&s.revokeObjectURL(n)}}async function Vrt(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,s)=>{try{r.onload=()=>i(r),r.onerror=n=>s(new Error(\"Could not load image \".concat(e,\": \").concat(n)))}catch(n){s(n)}})}var jrt={},jU=!0;async function GU(e,t,r){let i;NM(r)?i=await UM(e,t,r):i=B4(e,r);let s=t&&t.imagebitmap;return await Grt(i,s)}async function Grt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Wrt(t)||!jU)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),jU=!1}return await createImageBitmap(e)}function Wrt(e){for(let t in e||jrt)return!1;return!0}function WU(e){return!Yrt(e,\"ftyp\",4)||!(e[8]&96)?null:Hrt(e)}function Hrt(e){switch(qrt(e,8,12).replace(\"\\0\",\" \").trim()){case\"avif\":case\"avis\":return{extension:\"avif\",mimeType:\"image/avif\"};default:return null}}function qrt(e,t,r){return String.fromCharCode(...e.slice(t,r))}function Zrt(e){return[...e].map(t=>t.charCodeAt(0))}function Yrt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Zrt(t);for(let s=0;s=24&&t.getUint32(0,zf)===2303741511?{mimeType:\"image/png\",width:t.getUint32(16,zf),height:t.getUint32(20,zf)}:null}function Xrt(e){let t=$1(e);return t.byteLength>=10&&t.getUint32(0,zf)===1195984440?{mimeType:\"image/gif\",width:t.getUint16(6,Q1),height:t.getUint16(8,Q1)}:null}function Krt(e){let t=$1(e);return t.byteLength>=14&&t.getUint16(0,zf)===16973&&t.getUint32(2,Q1)===t.byteLength?{mimeType:\"image/bmp\",width:t.getUint32(18,Q1),height:t.getUint32(22,Q1)}:null}function Jrt(e){let t=$1(e);if(!(t.byteLength>=3&&t.getUint16(0,zf)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:s}=tit(),n=2;for(;n+9!!VM(new DataView(e))],options:nit};function X1(e){if(typeof window<\"u\"&&typeof window.process==\"object\"&&window.process.type===\"renderer\"||typeof process<\"u\"&&typeof process.versions==\"object\"&&process.versions.electron)return!0;let t=typeof navigator==\"object\"&&typeof navigator.userAgent==\"string\"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf(\"Electron\")>=0)}function wo(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||X1()}var UA={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document,process:typeof process==\"object\"&&process};var sit=UA.self||UA.window||UA.global,ly=UA.window||UA.self||UA.global,oit=UA.document||{},z0=UA.process||{};var jM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",dMt=wo();var z4=globalThis;function cy(e){if(!e&&!wo())return\"Node\";if(X1(e))return\"Electron\";let r=e||(typeof navigator<\"u\"?navigator:{}).userAgent||\"\";if(r.indexOf(\"Edge\")>-1)return\"Edge\";let i=r.indexOf(\"MSIE \")!==-1,s=r.indexOf(\"Trident/\")!==-1;return i||s?\"IE\":z4.chrome?\"Chrome\":z4.safari?\"Safari\":z4.mozInnerScreenX?\"Firefox\":\"Unknown\"}function ait(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var GM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";G(this,\"storage\",void 0),G(this,\"id\",void 0),G(this,\"config\",void 0),this.storage=ait(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function ZU(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function YU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function WM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let n=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(n/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(s,\");\"),\"background-size:\".concat(n,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var HM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(HM||(HM={}));function QU(e){return typeof e==\"string\"?HM[e.toUpperCase()]||HM.WHITE:e}function $U(e,t,r){return!wo&&typeof e==\"string\"&&(t&&(t=QU(t),e=\"\\x1B[\".concat(t,\"m\").concat(e,\"\\x1B[39m\")),r&&(t=QU(r),e=\"\\x1B[\".concat(r+10,\"m\").concat(e,\"\\x1B[49m\"))),e}function XU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r);for(let s of i)typeof e[s]==\"function\"&&(t.find(n=>s===n)||(e[s]=e[s].bind(e)))}function uy(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function N0(){let e;if(wo&&\"performance\"in ly){var t,r;e=ly===null||ly===void 0||(t=ly.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in z0){var i;let s=z0===null||z0===void 0||(i=z0.hrtime)===null||i===void 0?void 0:i.call(z0);e=s[0]*1e3+s[1]/1e6}else e=Date.now();return e}var hy={debug:wo&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},lit={enabled:!0,level:0};function Cu(){}var KU={},JU={once:!0},Nf=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};G(this,\"id\",void 0),G(this,\"VERSION\",jM),G(this,\"_startTs\",N0()),G(this,\"_deltaTs\",N0()),G(this,\"_storage\",void 0),G(this,\"userData\",{}),G(this,\"LOG_THROTTLE_TIMEOUT\",0),this.id=t,this.userData={},this._storage=new GM(\"__probe-\".concat(this.id,\"__\"),lit),this.timeStamp(\"\".concat(this.id,\" started\")),XU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((N0()-this._startTs).toPrecision(10))}getDelta(){return Number((N0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){uy(t,r)}warn(t){return this._getLogFunction(0,t,hy.warn,arguments,JU)}error(t){return this._getLogFunction(0,t,hy.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,hy.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,hy.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){for(var i=arguments.length,s=new Array(i>2?i-2:0),n=2;n2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=tV({logLevel:t,message:r,opts:i}),{collapsed:n}=i;return s.method=(n?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Cu)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=eV(t)}_getLogFunction(t,r,i,s,n){if(this._shouldLog(t)){n=tV({logLevel:t,message:r,args:s,opts:n}),i=i||n.method,uy(i),n.total=this.getTotal(),n.delta=this.getDelta(),this._deltaTs=N0();let o=n.tag||n.message;if(n.once)if(!KU[o])KU[o]=N0();else return Cu;return r=cit(this.id,n.message,n),i.bind(console,r,...n.args)}return Cu}};G(Nf,\"VERSION\",jM);function eV(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return uy(Number.isFinite(t)&&t>=0),t}function tV(e){let{logLevel:t,message:r}=e;e.logLevel=eV(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let s=typeof e.message;return uy(s===\"string\"||s===\"object\"),Object.assign(e,{args:i},e.opts)}function cit(e,t,r){if(typeof t==\"string\"){let i=r.time?YU(ZU(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=$U(t,r.color,r.background)}return t}function uit(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Cu}function hit(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let n=new Image;return n.onload=()=>{let o=WM(n,r,i);console.log(...o)},n.src=t,Cu}let s=t.nodeName||\"\";if(s.toLowerCase()===\"img\")return console.log(...WM(t,r,i)),Cu;if(s.toLowerCase()===\"canvas\"){let n=new Image;return n.onload=()=>console.log(...WM(n,r,i)),n.src=t.toDataURL(),Cu}return Cu}function fit(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var qMt=new Nf({id:\"@probe.gl/log\"});var nr=new Nf({id:\"deck\"});var N4={};function rV(e){N4=e}function Cs(e,t,r,i){nr.level>0&&N4[e]&&N4[e].call(null,t,r,i)}function dit(e){let t=e[0],r=e[e.length-1];return t===\"{\"&&r===\"}\"||t===\"[\"&&r===\"]\"}var iV={id:\"JSON\",name:\"JSON\",module:\"\",version:\"\",options:{},extensions:[\"json\",\"geojson\"],mimeTypes:[\"application/json\",\"application/geo+json\"],testText:dit,parseTextSync:JSON.parse};function pit(){let e=\"8.9.34\",t=globalThis.deck&&globalThis.deck.VERSION;if(t&&t!==e)throw new Error(\"deck.gl - multiple versions detected: \".concat(t,\" vs \").concat(e));return t||(nr.log(1,\"deck.gl \".concat(e))(),globalThis.deck={...globalThis.deck,VERSION:e,version:e,log:nr,_registerLoggers:rV},I4([iV,[F4,{imagebitmap:{premultiplyAlpha:\"none\"}}]])),e}var nV=pit();var Yr={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(Yr,\"IDENTITY\",{get:()=>(nr.deprecated(\"COORDINATE_SYSTEM.IDENTITY\",\"COORDINATE_SYSTEM.CARTESIAN\")(),0)});var Ka={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},Ko={common:0,meters:1,pixels:2},U4={click:{handler:\"onClick\"},panstart:{handler:\"onDragStart\"},panmove:{handler:\"onDrag\"},panend:{handler:\"onDragEnd\"}};var je=new Nf({id:\"luma.gl\"});function Zs(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}var Ait=\"Invalid WebGLRenderingContext\";var mit=\"Requires WebGL2\";function Xd(e){return typeof WebGLRenderingContext<\"u\"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&Number.isFinite(e._version))}function hr(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function V4(e){return hr(e)?e:null}function Kd(e){return Zs(Xd(e),Ait),e}function qn(e){return Zs(hr(e),mit),e}var K1={};function git(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function _it(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function yit(e,t){K1[e]=!0,t!==void 0&&git(t)}function vit(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(K1[i]=!0);while(i!==0);for(i in K1)if(K1[i])return delete K1[i],parseInt(i,10);return 0}}var J1=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i{_it(\"OESVertexArrayObject emulation library context restored\"),r.reset_()},!0),this.reset_()};U0.prototype.VERTEX_ARRAY_BINDING_OES=34229;U0.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;ihr(e)?void 0:0,Cit={3074:e=>hr(e)?void 0:36064,[Sit]:e=>hr(e)?void 0:Tit,35977:zn,32937:zn,[Mit]:(e,t)=>{let r=hr(e)?e.getExtension(bit):e.getExtension(xit);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Pit]:(e,t)=>{let r=e.getExtension(lV);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[Iit]:(e,t)=>{let r=e.getExtension(lV);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[Eit]:(e,t)=>{let r=e.luma.extensions[wit];return r?t(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},32883:zn,35071:zn,37447:zn,36063:(e,t)=>{if(!hr(e)){let r=e.getExtension(aV);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},35379:zn,35374:zn,35377:zn,34852:e=>{if(!hr(e)){let t=e.getExtension(aV);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},36203:e=>e.getExtension(oV)?2147483647:65535,33001:e=>e.getExtension(oV)?16777216:65535,33e3:e=>16777216,37157:zn,35373:zn,35657:zn,36183:zn,37137:zn,34045:zn,35978:zn,35979:zn,35968:zn,35376:zn,35375:zn,35659:zn,37154:zn,35371:zn,35658:zn,35076:zn,35077:zn,35380:zn};function cV(e,t,r){let i=Cit[r],s=typeof i==\"function\"?i(e,t,r):i;return s!==void 0?s:t(r)}var Lit=\"OES_vertex_array_object\",uV=\"ANGLE_instanced_arrays\",kit=\"WEBGL_draw_buffers\",Rit=\"EXT_disjoint_timer_query\",Dit=\"EXT_texture_filter_anisotropic\",Oit=\"VertexArray requires WebGL2 or OES_vertex_array_object extension\";function Bit(e,t){return{webgl2:hr(e),ext:e.getExtension(t)}}var j4={[Lit]:{meta:{suffix:\"OES\"},createVertexArray:()=>{Zs(!1,Oit)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[uV]:{meta:{suffix:\"ANGLE\"},vertexAttribDivisor(e,t){Zs(t===0,\"WebGL instanced rendering not supported\")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[kit]:{meta:{suffix:\"WEBGL\"},drawBuffers:()=>{Zs(!1)}},[Rit]:{meta:{suffix:\"EXT\"},createQuery:()=>{Zs(!1)},deleteQuery:()=>{Zs(!1)},beginQuery:()=>{Zs(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:()=>{}}},qM={readBuffer:(e,t,r)=>{hr(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:s,ext:n}=Bit(e,uV),o;switch(i){case 35069:o=s?void 0:!1;break;case 35070:o=!s&&!n?0:void 0;break;default:}return o!==void 0?o:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!hr(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,s)=>{if(!hr(e))switch(s){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,s)},getTexParameter(e,t,r,i){switch(i){case 34046:let{extensions:s}=e.luma,n=s[Dit];i=n&&n.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:cV,hint(e,t,r,i){return t(r,i)}};function hV(e){e.luma=e.luma||{};let{luma:t}=e;return t.polyfilled||(sV(e),Fit(e),Nit(e,j4),zit(e,{target:t,target2:e}),t.polyfilled=!0),e}globalThis.polyfillContext=hV;function Fit(e){e.luma.extensions={};let t=e.getSupportedExtensions()||[];for(let r of t)e.luma[r]=e.getExtension(r)}function zit(e,t){let{target:r,target2:i}=t;Object.keys(qM).forEach(s=>{if(typeof qM[s]==\"function\"){let n=e[s]?e[s].bind(e):()=>{},o=qM[s].bind(null,e,n);r[s]=o,i[s]=o}})}function Nit(e,t){for(let r of Object.getOwnPropertyNames(t))r!==\"overrides\"&&Uit(e,{extension:r,target:e.luma,target2:e})}function Uit(e,t){let{extension:r,target:i,target2:s}=t,n=j4[r];Zs(n);let{meta:o={}}=n,{suffix:c=\"\"}=o,f=e.getExtension(r);for(let _ of Object.keys(n)){let w=\"\".concat(_).concat(c),C=null;_===\"meta\"||typeof e[_]==\"function\"||(f&&typeof f[w]==\"function\"?C=function(){return f[w](...arguments)}:typeof n[_]==\"function\"&&(C=n[_].bind(i))),C&&(i[_]=C,s[_]=C)}}var eb={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,36006:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],3333:4,3317:4,37440:!1,37441:!1,37443:37444,35723:4352,36010:null,35977:!1,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},VA=(e,t,r)=>t?e.enable(r):e.disable(r),fV=(e,t,r)=>e.hint(r,t),qc=(e,t,r)=>e.pixelStorei(r,t),Vit=(e,t)=>{let r=hr(e)?36009:36160;return e.bindFramebuffer(r,t)},jit=(e,t)=>e.bindFramebuffer(36008,t);function tb(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var dV={3042:VA,32773:(e,t)=>e.blendColor(...t),32777:\"blendEquation\",34877:\"blendEquation\",32969:\"blendFunc\",32968:\"blendFunc\",32971:\"blendFunc\",32970:\"blendFunc\",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:VA,2885:(e,t)=>e.cullFace(t),2929:VA,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:VA,35723:fV,36006:Vit,2886:(e,t)=>e.frontFace(t),33170:fV,2849:(e,t)=>e.lineWidth(t),32823:VA,32824:\"polygonOffset\",10752:\"polygonOffset\",35977:VA,32938:\"sampleCoverage\",32939:\"sampleCoverage\",3089:VA,3088:(e,t)=>e.scissor(...t),2960:VA,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),2962:\"stencilFuncFront\",2967:\"stencilFuncFront\",2963:\"stencilFuncFront\",34816:\"stencilFuncBack\",36003:\"stencilFuncBack\",36004:\"stencilFuncBack\",2964:\"stencilOpFront\",2965:\"stencilOpFront\",2966:\"stencilOpFront\",34817:\"stencilOpBack\",34818:\"stencilOpBack\",34819:\"stencilOpBack\",2978:(e,t)=>e.viewport(...t),3333:qc,3317:qc,37440:qc,37441:qc,37443:qc,3330:qc,3332:qc,3331:qc,36010:jit,3314:qc,32878:qc,3316:qc,3315:qc,32877:qc,framebuffer:(e,t)=>{let r=t&&\"handle\"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{t=tb(t)?t:[t,t],e.blendEquationSeparate(...t)},blendFunc:(e,t)=>{t=tb(t)&&t.length===2?[...t,...t]:t,e.blendFuncSeparate(...t)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=tb(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=tb(t)&&t.length===3?[...t,...t]:t;let[r,i,s,n,o,c]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,n,o,c)},stencilOp:(e,t)=>{t=tb(t)&&t.length===3?[...t,...t]:t;let[r,i,s,n,o,c]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,n,o,c)},viewport:(e,t)=>e.viewport(...t)};function Ls(e,t,r){return t[e]!==void 0?t[e]:r[e]}var pV={blendEquation:(e,t,r)=>e.blendEquationSeparate(Ls(32777,t,r),Ls(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(Ls(32969,t,r),Ls(32968,t,r),Ls(32971,t,r),Ls(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(Ls(32824,t,r),Ls(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(Ls(32938,t,r),Ls(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,Ls(2962,t,r),Ls(2967,t,r),Ls(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,Ls(34816,t,r),Ls(36003,t,r),Ls(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,Ls(2964,t,r),Ls(2965,t,r),Ls(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,Ls(34817,t,r),Ls(34818,t,r),Ls(34819,t,r))},G4={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({36006:r,36010:r});case 36009:return e({36006:r});case 36008:return e({36010:r});default:return null}},blendColor:(e,t,r,i,s)=>e({32773:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,r)=>e({32777:t,34877:r}),blendFunc:(e,t,r)=>e({32969:t,32968:r,32971:t,32970:r}),blendFuncSeparate:(e,t,r,i,s)=>e({32969:t,32968:r,32971:i,32970:s}),clearColor:(e,t,r,i,s)=>e({3106:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,r,i,s)=>e({3107:[t,r,i,s]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,r)=>e({2928:new Float32Array([t,r])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,r)=>e({32824:t,10752:r}),sampleCoverage:(e,t,r)=>e({32938:t,32939:r}),scissor:(e,t,r,i,s)=>e({3088:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({2962:t,2967:r,2963:i,34816:t,36003:r,36004:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({2964:t,2965:r,2966:i,34817:t,34818:r,34819:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({2978:[t,r,i,s]})},Uf=(e,t)=>e.isEnabled(t),W4={3042:Uf,2884:Uf,2929:Uf,3024:Uf,32823:Uf,32926:Uf,32928:Uf,3089:Uf,2960:Uf,35977:Uf};function H4(e){for(let t in e)return!1;return!0}function AV(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=r?fy(t):Object.assign({},eb),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){Zs(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];wl(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,s=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(let n in t){Zs(n!==void 0);let o=t[n],c=this.cache[n];AV(o,c)||(r=!0,i=c,s&&!(n in s)&&(s[n]=c),this.cache[n]=o)}return{valueChanged:r,oldValue:i}}};function ZM(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{enable:r=!0,copyState:i}=t;if(Zs(i!==void 0),!e.state){let{polyfillContext:s}=globalThis;s&&s(e),e.state=new q4(e,{copyState:i}),Wit(e);for(let n in G4){let o=G4[n];Git(e,n,o)}mV(e,\"getParameter\"),mV(e,\"isEnabled\")}return e.state.enable=r,e}function Z4(e){e.state||ZM(e,{copyState:!1}),e.state.push()}function YM(e){Zs(e.state),e.state.pop()}function wl(e,t){if(Zs(Xd(e),\"setParameters requires a WebGL context\"),H4(t))return;let r={};for(let s in t){let n=Number(s),o=dV[s];o&&(typeof o==\"string\"?r[o]=!0:o(e,t[s],n))}let i=e.state&&e.state.cache;if(i)for(let s in r){let n=pV[s];n(e,t,i)}}function fy(e,t){if(t=t||eb,typeof t==\"number\"){let s=t,n=W4[s];return n?n(e,s):e.getParameter(s)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let s of r){let n=W4[s];i[s]=n?n(e,Number(s)):e.getParameter(Number(s))}return i}function QM(e){wl(e,eb)}function bn(e,t,r){if(H4(t))return r(e);let{nocatch:i=!0}=t;Z4(e),wl(e,t);let s;if(i)s=r(e),YM(e);else try{s=r(e)}finally{YM(e)}return s}function Sl(e){let{luma:t}=e;if(e.canvas&&t){let r=t.canvasSizeInfo,i=\"clientWidth\"in r?r.clientWidth:e.canvas.clientWidth;return i?e.drawingBufferWidth/i:1}return 1}function dy(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=Sl(e),s=e.drawingBufferWidth,n=e.drawingBufferHeight;return Hit(t,i,s,n,r)}function yV(e){let t=typeof window>\"u\"?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}function Hit(e,t,r,i,s){let n=gV(e[0],t,r),o=_V(e[1],t,i,s),c=gV(e[0]+1,t,r),f=c===r-1?c:c-1;c=_V(e[1]+1,t,i,s);let _;return s?(c=c===0?c:c+1,_=o,o=c):_=c===i-1?c:c-1,{x:n,y:o,width:Math.max(f-n+1,1),height:Math.max(_-o+1,1)}}function gV(e,t,r){return Math.min(Math.round(e*t),r-1)}function _V(e,t,r,i){return i?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}var Y4=wo(),qit=Y4&&typeof document<\"u\",vV={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function py(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Zs(Y4,`createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),e=Object.assign({},vV,e);let{width:t,height:r}=e;function i(c){if(e.throwOnError)throw new Error(c);return console.error(c),null}e.onError=i;let s,{canvas:n}=e,o=Yit({canvas:n,width:t,height:r,onError:i});return s=Zit(o,e),s?(s=V0(s,e),Qit(s),s):null}function V0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||$it(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{},t=Object.assign({},vV,t);let{manageState:r,debug:i}=t;return r&&ZM(e,{copyState:!1,log:function(){for(var s=arguments.length,n=new Array(s),o=0;o1&&arguments[1]!==void 0?arguments[1]:{};if(e.canvas){let i=yV(t.useDevicePixels);Xit(e,i,t);return}let r=e.getExtension(\"STACKGL_resize_drawingbuffer\");r&&\"width\"in t&&\"height\"in t&&r.resize(t.width,t.height)}function Zit(e,t){let{onError:r}=t,i=null,s=f=>i=f.statusMessage||i;e.addEventListener(\"webglcontextcreationerror\",s,!1);let{webgl1:n=!0,webgl2:o=!0}=t,c=null;return o&&(c=c||e.getContext(\"webgl2\",t),c=c||e.getContext(\"experimental-webgl2\",t)),n&&(c=c||e.getContext(\"webgl\",t),c=c||e.getContext(\"experimental-webgl\",t)),e.removeEventListener(\"webglcontextcreationerror\",s,!1),c?(t.onContextLost&&e.addEventListener(\"webglcontextlost\",t.onContextLost,!1),t.onContextRestored&&e.addEventListener(\"webglcontextrestored\",t.onContextRestored,!1),c):r(\"Failed to create \".concat(o&&!n?\"WebGL2\":\"WebGL\",\" context: \").concat(i||\"Unknown error\"))}function Yit(e){let{canvas:t,width:r=800,height:i=600,onError:s}=e,n;return typeof t==\"string\"?(qit&&document.readyState===\"complete\"||s(\"createGLContext called on canvas '\".concat(t,\"' before page was loaded\")),n=document.getElementById(t)):t?n=t:(n=document.createElement(\"canvas\"),n.id=\"lumagl-canvas\",n.style.width=Number.isFinite(r)?\"\".concat(r,\"px\"):\"100%\",n.style.height=Number.isFinite(i)?\"\".concat(i,\"px\"):\"100%\",document.body.insertBefore(n,document.body.firstChild)),n}function Qit(e){let t=hr(e)?\"WebGL2\":\"WebGL1\",r=xV(e),i=r?\"(\".concat(r.vendor,\",\").concat(r.renderer,\")\"):\"\",s=e.debug?\" debug\":\"\";je.info(1,\"\".concat(t).concat(s,\" context \").concat(i))()}function $it(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?2:1}function Xit(e,t,r){let i=\"width\"in r?r.width:e.canvas.clientWidth,s=\"height\"in r?r.height:e.canvas.clientHeight;(!i||!s)&&(je.log(1,\"Canvas clientWidth/clientHeight is 0\")(),t=1,i=e.canvas.width||1,s=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};let n=e.luma.canvasSizeInfo;if(n.clientWidth!==i||n.clientHeight!==s||n.devicePixelRatio!==t){let o=t,c=Math.floor(i*o),f=Math.floor(s*o);e.canvas.width=c,e.canvas.height=f,(e.drawingBufferWidth!==c||e.drawingBufferHeight!==f)&&(je.warn(\"Device pixel ratio clamped\")(),o=Math.min(e.drawingBufferWidth/i,e.drawingBufferHeight/s),e.canvas.width=Math.floor(i*o),e.canvas.height=Math.floor(s*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:i,clientHeight:s,devicePixelRatio:t})}}function rb(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var j0=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"type\",void 0),G(this,\"sampleSize\",1),G(this,\"time\",void 0),G(this,\"count\",void 0),G(this,\"samples\",void 0),G(this,\"lastTiming\",void 0),G(this,\"lastSampleTime\",void 0),G(this,\"lastSampleCount\",void 0),G(this,\"_count\",0),G(this,\"_time\",0),G(this,\"_samples\",0),G(this,\"_startTime\",0),G(this,\"_timerPending\",!1),this.name=t,this.type=r,this.reset()}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=rb(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(rb()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var Vf=class{constructor(t){G(this,\"id\",void 0),G(this,\"stats\",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t in this.stats)this.stats[t].reset();return this}forEach(t){for(let r in this.stats)t(this.stats[r])}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){if(!t||!t.name)return null;let{name:r,type:i}=t;return this.stats[r]||(t instanceof j0?this.stats[r]=t:this.stats[r]=new j0(r,i)),this.stats[r]}};var ib=\"8.5.21\",Kit=\"set luma.log.level=1 (or higher) to trace rendering\",$4=class{constructor(){this.stats=new Map}get(t){return this.stats.has(t)||this.stats.set(t,new Vf({id:t})),this.stats.get(t)}},Lu=new $4;if(globalThis.luma&&globalThis.luma.VERSION!==ib)throw new Error(\"luma.gl - multiple VERSIONs detected: \".concat(globalThis.luma.VERSION,\" vs \").concat(ib));globalThis.luma||(wo()&&je.log(1,\"luma.gl \".concat(ib,\" - \").concat(Kit))(),globalThis.luma=globalThis.luma||{VERSION:ib,version:ib,log:je,stats:Lu,globals:{modules:{},nodeIO:{}}});var pPt=globalThis.luma;function X4(e){return typeof window<\"u\"&&window.requestAnimationFrame?window.requestAnimationFrame(e):setTimeout(e,1e3/60)}function K4(e){return typeof window<\"u\"&&window.cancelAnimationFrame?window.cancelAnimationFrame(e):clearTimeout(e)}function ye(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}function $M(e,t){if(typeof t!=\"string\")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\\./,\"\");let i=e[t];return ye(i!==void 0,\"Accessing undefined constant GL.\".concat(t)),i}function ku(e,t){t=Number(t);for(let r in e)if(e[r]===t)return\"GL.\".concat(r);return String(t)}var J4={};function Jo(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"id\";J4[e]=J4[e]||1;let t=J4[e]++;return\"\".concat(e,\"-\").concat(t)}function tR(e){return ye(typeof e==\"number\",\"Input must be a number\"),e&&(e&e-1)===0}function jf(e){let t=!0;for(let r in e){t=!1;break}return t}function XM(e,t,r,i){let s=\"See luma.gl \".concat(r,\" Upgrade Guide at https://luma.gl/docs/upgrade-guide\"),n=Object.getPrototypeOf(e);i.forEach(o=>{n.methodName||(n[o]=()=>{throw je.removed(\"Calling removed method \".concat(t,\".\").concat(o,\": \"),s)(),new Error(o)})})}var Ay=\"Resource subclass must define virtual methods\",Ys=class{get[Symbol.toStringTag](){return\"Resource\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t);let{id:i,userData:s={}}=r;this.gl=t,this.gl2=t,this.id=i||Jo(this[Symbol.toStringTag]),this.userData=s,this._bound=!1,this._handle=r.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}toString(){return\"\".concat(this[Symbol.toStringTag]||this.constructor.name,\"(\").concat(this.id,\")\")}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.delete()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!=\"function\")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=$M(this.gl,t),ye(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let n=hr(this.gl);if(!((!(\"webgl2\"in s)||n)&&(!(\"extension\"in s)||this.gl.getExtension(s.extension)))){let c=s.webgl1,f=\"webgl2\"in s?s.webgl2:s.webgl1;return n?f:c}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,s=this.constructor.PARAMETERS||{},n=hr(this.gl),o={},c=r||Object.keys(s);for(let f of c){let _=s[f];if(_&&(!(\"webgl2\"in _)||n)&&(!(\"extension\"in _)||this.gl.getExtension(_.extension))){let C=i?ku(this.gl,f):f;o[C]=this.getParameter(f,t),i&&_.type===\"GLenum\"&&(o[C]=ku(this.gl,o[C]))}}return o}setParameter(t,r){t=$M(this.gl,t),ye(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let n=hr(this.gl);if(!((!(\"webgl2\"in s)||n)&&(!(\"extension\"in s)||this.gl.getExtension(s.extension))))throw new Error(\"Parameter not available on this platform\");s.type===\"GLenum\"&&(r=$M(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return XM(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(Ay)}_deleteHandle(){throw new Error(Ay)}_bindHandle(t){throw new Error(Ay)}_getOptsFromHandle(){throw new Error(Ay)}_getParameter(t,r){throw new Error(Ay)}_setParameter(t,r){throw new Error(Ay)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_addStats(){let t=this[Symbol.toStringTag],r=Lu.get(\"Resource Counts\");r.get(\"Resources Created\").incrementCount(),r.get(\"\".concat(t,\"s Created\")).incrementCount(),r.get(\"\".concat(t,\"s Active\")).incrementCount()}_removeStats(){let t=this[Symbol.toStringTag];Lu.get(\"Resource Counts\").get(\"\".concat(t,\"s Active\")).decrementCount()}_trackAllocatedMemory(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._trackAllocatedMemoryForContext(t,r),this._trackAllocatedMemoryForContext(t,r,this.gl.canvas&&this.gl.canvas.id),this.byteLength=t}_trackAllocatedMemoryForContext(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"\",s=Lu.get(\"Memory Usage\".concat(i));s.get(\"GPU Memory\").addCount(t),s.get(\"\".concat(r,\" Memory\")).addCount(t)}_trackDeallocatedMemory(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._trackDeallocatedMemoryForContext(t),this._trackDeallocatedMemoryForContext(t,this.gl.canvas&&this.gl.canvas.id),this.byteLength=0}_trackDeallocatedMemoryForContext(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\",i=Lu.get(\"Memory Usage\".concat(r));i.get(\"GPU Memory\").subtractCount(this.byteLength),i.get(\"\".concat(t,\" Memory\")).subtractCount(this.byteLength)}};var Jit=\"Failed to deduce GL constant from typed array\";function nb(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Jit)}}function jA(e){let{clamped:t=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return t?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error(\"Failed to deduce typed array type from GL constant\")}}function bV(e){let{data:t,width:r,height:i,bytesPerPixel:s=4,temp:n}=e,o=r*s;n=n||new Uint8Array(o);for(let c=0;cthis._assign(s)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return e.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return e.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=sb(\"Accessor\",t,ent),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index==\"boolean\"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this}};var SV=10,TV={offset:\"accessor.offset\",stride:\"accessor.stride\",type:\"accessor.type\",size:\"accessor.size\",divisor:\"accessor.divisor\",normalized:\"accessor.normalized\",integer:\"accessor.integer\",instanced:\"accessor.divisor\",isInstanced:\"accessor.divisor\"},rnt={removedProps:{},replacedProps:{bytes:\"byteLength\"},deprecatedProps:TV},int={removedProps:TV},Fr=class extends Ys{get[Symbol.toStringTag](){return\"Buffer\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Buffer\",\"v6.0\",[\"layout\",\"setLayout\",\"getIndexedParameter\"]),this.target=r.target||(this.gl.webgl2?36662:34962),this.initialize(r),Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Tl.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Tl.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=sb(\"Buffer\",t,rnt),this.usage=t.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.offset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=sb(\"Buffer\",t,int),\"accessor\"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new Tl(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:r,offset:i=0,srcOffset:s=0}=t,n=t.byteLength||t.length;ye(r);let o=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(o,this.handle),s!==0||n!==void 0?(qn(this.gl),this.gl.bufferSubData(this.target,i,r,s,n)):this.gl.bufferSubData(o,i,r),this.gl.bindBuffer(o,null),this.debugData=null,this._inferType(r),this}copyData(t){let{sourceBuffer:r,readOffset:i=0,writeOffset:s=0,size:n}=t,{gl:o}=this;return qn(o),o.bindBuffer(36662,r.handle),o.bindBuffer(36663,this.handle),o.copyBufferSubData(36662,36663,i,s,n),o.bindBuffer(36662,null),o.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:t=null,srcByteOffset:r=0,dstOffset:i=0,length:s=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qn(this.gl);let n=jA(this.accessor.type||5126,{clamped:!1}),o=this._getAvailableElementCount(r),c=i,f,_;t?(_=t.length,f=_-c):(f=Math.min(o,s||o),_=c+f);let w=Math.min(o,f);return s=s||w,ye(s<=w),t=t||new n(_),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,r,t,i,s),this.gl.bindBuffer(36662,null),t}bind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index,offset:i=0,size:s}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?s!==void 0?this.gl.bindBufferRange(t,r,this.handle,i,s):(ye(i===0),this.gl.bindBufferBase(t,r,this.handle)):this.gl.bindBuffer(t,this.handle),this}unbind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?this.gl.bindBufferBase(t,r,null):this.gl.bindBuffer(t,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(SV,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;ye(ArrayBuffer.isView(t)),this._trackDeallocatedMemory();let s=this._getTarget();this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.usage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.debugData=t.slice(0,SV),this.bytesUsed=i,this._trackAllocatedMemory(i);let n=nb(t);return ye(n),this.setAccessor(new Tl(this.accessor,{type:n})),this}_setByteLength(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;ye(t>=0),this._trackDeallocatedMemory();let i=t;t===0&&(i=new Float32Array(0));let s=this._getTarget();return this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,r),this.gl.bindBuffer(s,null),this.usage=r,this.debugData=null,this.bytesUsed=t,this._trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount(t){let r=jA(this.accessor.type||5126,{clamped:!1}),i=t/r.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(t){this.accessor.type||this.setAccessor(new Tl(this.accessor,{type:nb(t)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter(t){this.gl.bindBuffer(this.target,this.handle);let r=this.gl.getBufferParameter(this.target,t);return this.gl.bindBuffer(this.target,null),r}get type(){return je.deprecated(\"Buffer.type\",\"Buffer.accessor.type\")(),this.accessor.type}get bytes(){return je.deprecated(\"Buffer.bytes\",\"Buffer.byteLength\")(),this.byteLength}setByteLength(t){return je.deprecated(\"setByteLength\",\"reallocate\")(),this.reallocate(t)}updateAccessor(t){return je.deprecated(\"updateAccessor(...)\",\"setAccessor(new Accessor(buffer.accessor, ...)\")(),this.accessor=new Tl(this.accessor,t),this}};var KM={6407:{dataFormat:6407,types:[5121,33635]},6408:{dataFormat:6408,types:[5121,32819,32820]},6406:{dataFormat:6406,types:[5121]},6409:{dataFormat:6409,types:[5121]},6410:{dataFormat:6410,types:[5121]},33326:{dataFormat:6403,types:[5126],gl2:!0},33328:{dataFormat:33319,types:[5126],gl2:!0},34837:{dataFormat:6407,types:[5126],gl2:!0},34836:{dataFormat:6408,types:[5126],gl2:!0}},JM={6403:1,36244:1,33319:2,33320:2,6407:3,36248:3,6408:4,36249:4,6402:1,34041:1,6406:1,6409:1,6410:2},tE={5126:4,5125:4,5124:4,5123:2,5122:2,5131:2,5120:1,5121:1};function MV(e,t){let r=KM[t];if(!r)return!1;if(r.gl1===void 0&&r.gl2===void 0)return!0;let i=hr(e)&&r.gl2||r.gl1;return typeof i==\"string\"?e.getExtension(i):i}function EV(e,t){let r=KM[t];switch(r&&r.types[0]){case 5126:return e.getExtension(\"OES_texture_float_linear\");case 5131:return e.getExtension(\"OES_texture_half_float_linear\");default:return!0}}var nnt=[9729,9728],PV=globalThis.WebGLBuffer||function(){},Ja=class extends Ys{get[Symbol.toStringTag](){return\"Texture\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{format:i,linearFiltering:s}=r,n=!0;return i&&(n=n&&MV(t,i),n=n&&(!s||EV(t,i))),n}constructor(t,r){let{id:i=Jo(\"texture\"),handle:s,target:n}=r;super(t,{id:i,handle:s}),this.target=n,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return\"Texture(\".concat(this.id,\",\").concat(this.width,\"x\").concat(this.height,\")\")}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.data;if(r instanceof Promise)return r.then(K=>this.initialize(Object.assign({},t,{pixels:K,data:K}))),this;let i=typeof HTMLVideoElement<\"u\"&&r instanceof HTMLVideoElement;if(i&&r.readyStatethis.initialize(t)),this;let{pixels:s=null,format:n=6408,border:o=0,recreate:c=!1,parameters:f={},pixelStore:_={},textureUnit:w=void 0}=t;r||(r=s);let{width:C,height:R,dataFormat:N,type:j,compressed:Y=!1,mipmaps:rt=!0}=t,{depth:$=0}=t;return{width:C,height:R,compressed:Y,dataFormat:N,type:j}=this._deduceParameters({format:n,type:j,dataFormat:N,compressed:Y,data:r,width:C,height:R}),this.width=C,this.height=R,this.depth=$,this.format=n,this.type=j,this.dataFormat=N,this.border=o,this.textureUnit=w,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),rt&&this._isNPOT()&&(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),rt=!1,this._updateForNPOT(f)),this.mipmaps=rt,this.setImageData({data:r,width:C,height:R,depth:$,format:n,type:j,dataFormat:N,border:o,mipmaps:rt,parameters:_,compressed:Y}),rt&&this.generateMipmap(),this.setParameters(f),c&&(this.data=r),i&&(this._video={video:r,parameters:f,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),bn(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){this._trackDeallocatedMemory(\"Texture\");let{target:r=this.target,pixels:i=null,level:s=0,format:n=this.format,border:o=this.border,offset:c=0,parameters:f={}}=t,{data:_=null,type:w=this.type,width:C=this.width,height:R=this.height,dataFormat:N=this.dataFormat,compressed:j=!1}=t;_||(_=i),{type:w,dataFormat:N,compressed:j,width:C,height:R}=this._deduceParameters({format:n,type:w,dataFormat:N,compressed:j,data:_,width:C,height:R});let{gl:Y}=this;Y.bindTexture(this.target,this.handle);let rt=null;({data:_,dataType:rt}=this._getDataType({data:_,compressed:j}));let $,K=0;if(bn(this.gl,f,()=>{switch(rt){case\"null\":Y.texImage2D(r,s,n,C,R,o,N,w,_);break;case\"typed-array\":Y.texImage2D(r,s,n,C,R,o,N,w,_,c);break;case\"buffer\":$=qn(Y),$.bindBuffer(35052,_.handle||_),$.texImage2D(r,s,n,C,R,o,N,w,c),$.bindBuffer(35052,null);break;case\"browser-object\":hr(Y)?Y.texImage2D(r,s,n,C,R,o,N,w,_):Y.texImage2D(r,s,n,N,w,_);break;case\"compressed\":for(let[tt,ut]of _.entries())Y.compressedTexImage2D(r,tt,ut.format,ut.width,ut.height,o,ut.data),K+=ut.levelSize;break;default:ye(!1,\"Unknown image data type\")}}),rt===\"compressed\")this._trackAllocatedMemory(K,\"Texture\");else if(_&&_.byteLength)this._trackAllocatedMemory(_.byteLength,\"Texture\");else{let tt=JM[this.dataFormat]||4,ut=tE[this.type]||1;this._trackAllocatedMemory(this.width*this.height*tt*ut,\"Texture\")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:s=null,x:n=0,y:o=0,width:c=this.width,height:f=this.height,level:_=0,format:w=this.format,type:C=this.type,dataFormat:R=this.dataFormat,compressed:N=!1,offset:j=0,border:Y=this.border,parameters:rt={}}=t;if({type:C,dataFormat:R,compressed:N,width:c,height:f}=this._deduceParameters({format:w,type:C,dataFormat:R,compressed:N,data:s,width:c,height:f}),ye(this.depth===0,\"texSubImage not supported for 3D textures\"),s||(s=i),s&&s.data){let $=s;s=$.data,c=$.shape[0],f=$.shape[1]}s instanceof Fr&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),bn(this.gl,rt,()=>{if(N)this.gl.compressedTexSubImage2D(r,_,n,o,c,f,w,s);else if(s===null)this.gl.texSubImage2D(r,_,n,o,c,f,R,C,null);else if(ArrayBuffer.isView(s))this.gl.texSubImage2D(r,_,n,o,c,f,R,C,s,j);else if(s instanceof PV){let $=qn(this.gl);$.bindBuffer(35052,s),$.texSubImage2D(r,_,n,o,c,f,R,C,j),$.bindBuffer(35052,null)}else hr(this.gl)?qn(this.gl).texSubImage2D(r,_,n,o,c,f,R,C,s):this.gl.texSubImage2D(r,_,n,o,R,C,s)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:\"compressed\"}:r===null?{data:r,dataType:\"null\"}:ArrayBuffer.isView(r)?{data:r,dataType:\"typed-array\"}:r instanceof Fr?{data:r.handle,dataType:\"buffer\"}:r instanceof PV?{data:r,dataType:\"buffer\"}:{data:r,dataType:\"browser-object\"}}_deduceParameters(t){let{format:r,data:i}=t,{width:s,height:n,dataFormat:o,type:c,compressed:f}=t,_=KM[r];return o=o||_&&_.dataFormat,c=c||_&&_.types[0],f=f||_&&_.compressed,{width:s,height:n}=this._deduceImageSize(i,s,n),{dataFormat:o,type:c,compressed:f,width:s,height:n,format:r,data:i}}_deduceImageSize(t,r,i){let s;return typeof ImageData<\"u\"&&t instanceof ImageData?s={width:t.width,height:t.height}:typeof HTMLImageElement<\"u\"&&t instanceof HTMLImageElement?s={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<\"u\"&&t instanceof HTMLCanvasElement?s={width:t.width,height:t.height}:typeof ImageBitmap<\"u\"&&t instanceof ImageBitmap?s={width:t.width,height:t.height}:typeof HTMLVideoElement<\"u\"&&t instanceof HTMLVideoElement?s={width:t.videoWidth,height:t.videoHeight}:t?s={width:r,height:i}:s={width:r>=0?r:1,height:i>=0?i:1},ye(s,\"Could not deduced texture size\"),ye(r===void 0||s.width===r,\"Deduced texture width does not match supplied width\"),ye(i===void 0||s.height===i,\"Deduced texture height does not match supplied height\"),s}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory(\"Texture\")}_getParameter(t){switch(t){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);let r=this.gl.getTexParameter(this.target,t);return this.gl.bindTexture(this.target,null),r}}_setParameter(t,r){switch(this.gl.bindTexture(this.target,this.handle),r=this._getNPOTParam(t,r),t){case 33082:case 33083:this.gl.texParameterf(this.handle,t,r);break;case 4096:case 4097:ye(!1);break;default:this.gl.texParameteri(this.target,t,r);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return hr(this.gl)||!this.width||!this.height?!1:!tR(this.width)||!tR(this.height)}_updateForNPOT(t){t[this.gl.TEXTURE_MIN_FILTER]===void 0&&(t[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),t[this.gl.TEXTURE_WRAP_S]===void 0&&(t[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),t[this.gl.TEXTURE_WRAP_T]===void 0&&(t[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam(t,r){if(this._isNPOT())switch(t){case 10241:nnt.indexOf(r)===-1&&(r=9729);break;case 10242:case 10243:r!==33071&&(r=33071);break;default:break}return r}};var snt=\"\";function IV(e,t){return ye(typeof e==\"string\"),e=snt+e,new Promise((r,i)=>{try{let s=new Image;s.onload=()=>r(s),s.onerror=()=>i(new Error(\"Could not load image \".concat(e,\".\"))),s.crossOrigin=t&&t.crossOrigin||\"anonymous\",s.src=e}catch(s){i(s)}})}var pi=class extends Ja{get[Symbol.toStringTag](){return\"Texture2D\"}static isSupported(t,r){return Ja.isSupported(t,r)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t),(r instanceof Promise||typeof r==\"string\")&&(r={data:r}),typeof r.data==\"string\"&&(r=Object.assign({},r,{data:IV(r.data)})),super(t,Object.assign({},r,{target:3553})),this.initialize(r),Object.seal(this)}};var eR=[34069,34070,34071,34072,34073,34074],G0=class extends Ja{get[Symbol.toStringTag](){return\"TextureCube\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Kd(t),super(t,Object.assign({},r,{target:34067})),this.initialize(r),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{mipmaps:r=!0,parameters:i={}}=t;return this.opts=t,this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setParameters(i)}),this}subImage(t){let{face:r,data:i,x:s=0,y:n=0,mipmapLevel:o=0}=t;return this._subImage({target:r,data:i,x:s,y:n,mipmapLevel:o})}async setCubeMapImageData(t){let{width:r,height:i,pixels:s,data:n,border:o=0,format:c=6408,type:f=5121}=t,{gl:_}=this,w=s||n,C=await Promise.all(eR.map(R=>{let N=w[R];return Promise.all(Array.isArray(N)?N:[N])}));this.bind(),eR.forEach((R,N)=>{C[N].length>1&&this.opts.mipmaps!==!1&&je.warn(\"\".concat(this.id,\" has mipmap and multiple LODs.\"))(),C[N].forEach((j,Y)=>{r&&i?_.texImage2D(R,Y,c,r,i,o,c,f,j):_.texImage2D(R,Y,c,c,f,j)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:n,data:o,border:c=0,format:f=6408,type:_=5121}=t,{gl:w}=this,C=n||o;return this.bind(),C instanceof Promise?C.then(R=>this.setImageDataForFace(Object.assign({},t,{face:r,data:R,pixels:R}))):this.width||this.height?w.texImage2D(r,0,f,i,s,c,f,_,C):w.texImage2D(r,0,f,f,_,C),this}};G0.FACES=eR;var my=class extends Ja{get[Symbol.toStringTag](){return\"Texture3D\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(t),r=Object.assign({depth:1},r,{target:32879,unpackFlipY:!1}),super(t,r),this.initialize(r),Object.seal(this)}setImageData(t){let{level:r=0,dataFormat:i=6408,width:s,height:n,depth:o=1,border:c=0,format:f,type:_=5121,offset:w=0,data:C,parameters:R={}}=t;if(this._trackDeallocatedMemory(\"Texture\"),this.gl.bindTexture(this.target,this.handle),bn(this.gl,R,()=>{ArrayBuffer.isView(C)&&this.gl.texImage3D(this.target,r,i,s,n,o,c,f,_,C),C instanceof Fr&&(this.gl.bindBuffer(35052,C.handle),this.gl.texImage3D(this.target,r,i,s,n,o,c,f,_,w))}),C&&C.byteLength)this._trackAllocatedMemory(C.byteLength,\"Texture\");else{let N=JM[this.dataFormat]||4,j=tE[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*N*j,\"Texture\")}return this.loaded=!0,this}};var W0=\"EXT_color_buffer_float\",rR={33189:{bpp:2},33190:{gl2:!0,bpp:3},36012:{gl2:!0,bpp:4},36168:{bpp:1},34041:{bpp:4},35056:{gl2:!0,bpp:4},36013:{gl2:!0,bpp:5},32854:{bpp:2},36194:{bpp:2},32855:{bpp:2},33321:{gl2:!0,bpp:1},33330:{gl2:!0,bpp:1},33329:{gl2:!0,bpp:1},33332:{gl2:!0,bpp:2},33331:{gl2:!0,bpp:2},33334:{gl2:!0,bpp:4},33333:{gl2:!0,bpp:4},33323:{gl2:!0,bpp:2},33336:{gl2:!0,bpp:2},33335:{gl2:!0,bpp:2},33338:{gl2:!0,bpp:4},33337:{gl2:!0,bpp:4},33340:{gl2:!0,bpp:8},33339:{gl2:!0,bpp:8},32849:{gl2:!0,bpp:3},32856:{gl2:!0,bpp:4},32857:{gl2:!0,bpp:4},36220:{gl2:!0,bpp:4},36238:{gl2:!0,bpp:4},36975:{gl2:!0,bpp:4},36214:{gl2:!0,bpp:8},36232:{gl2:!0,bpp:8},36226:{gl2:!0,bpp:16},36208:{gl2:!0,bpp:16},33325:{gl2:W0,bpp:2},33327:{gl2:W0,bpp:4},34842:{gl2:W0,bpp:8},33326:{gl2:W0,bpp:4},33328:{gl2:W0,bpp:8},34836:{gl2:W0,bpp:16},35898:{gl2:W0,bpp:4}};function ont(e,t,r){let i=r[t];if(!i)return!1;let s=hr(e)&&i.gl2||i.gl1;return typeof s==\"string\"?e.getExtension(s):s}var tl=class extends Ys{get[Symbol.toStringTag](){return\"Renderbuffer\"}static isSupported(t){let{format:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!r||ont(t,r,rR)}static getSamplesForFormat(t,r){let{format:i}=r;return t.getInternalformatParameter(36161,i,32937)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.initialize(r),Object.seal(this)}initialize(t){let{format:r,width:i=1,height:s=1,samples:n=0}=t;return ye(r,\"Needs format\"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),n!==0&&hr(this.gl)?this.gl.renderbufferStorageMultisample(36161,n,r,i,s):this.gl.renderbufferStorage(36161,r,i,s),this.format=r,this.width=i,this.height=s,this.samples=n,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*rR[this.format].bpp),this}resize(t){let{width:r,height:i}=t;return r!==this.width||i!==this.height?this.initialize({width:r,height:i,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}_syncHandle(t){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter(t){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,t)}};var ant=256,lnt=1024,cnt=16384,CV=6144,LV=6145,kV=6146,RV=34041,DV=\"clear: bad arguments\";function Gf(e){let{framebuffer:t=null,color:r=null,depth:i=null,stencil:s=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={};t&&(n.framebuffer=t);let o=0;r&&(o|=cnt,r!==!0&&(n.clearColor=r)),i&&(o|=ant,i!==!0&&(n.clearDepth=i)),s&&(o|=lnt,i!==!0&&(n.clearStencil=i)),ye(o!==0,DV),bn(e,n,()=>{e.clear(o)})}function iR(e){let{framebuffer:t=null,buffer:r=CV,drawBuffer:i=0,value:s=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(e),bn(e,{framebuffer:t},()=>{switch(r){case CV:switch(s.constructor){case Int32Array:e.clearBufferiv(r,i,s);break;case Uint32Array:e.clearBufferuiv(r,i,s);break;case Float32Array:default:e.clearBufferfv(r,i,s)}break;case LV:e.clearBufferfv(LV,0,[s]);break;case kV:e.clearBufferiv(kV,0,[s]);break;case RV:let[n,o]=s;e.clearBufferfi(RV,0,n,o);break;default:ye(!1,DV)}})}function OV(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return ye(!1),0}}function Rh(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{sourceX:r=0,sourceY:i=0,sourceFormat:s=6408}=t,{sourceAttachment:n=36064,target:o=null,sourceWidth:c,sourceHeight:f,sourceType:_}=t,{framebuffer:w,deleteFramebuffer:C}=BV(e);ye(w);let{gl:R,handle:N,attachments:j}=w;c=c||w.width,f=f||w.height,n===36064&&N===null&&(n=1028),ye(j[n]),_=_||j[n].type,o=unt(o,_,s,c,f),_=_||nb(o);let Y=R.bindFramebuffer(36160,N);return R.readPixels(r,i,c,f,s,_,o),R.bindFramebuffer(36160,Y||null),C&&w.delete(),o}function eE(e){let{sourceAttachment:t=36064,targetMaxHeight:r=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=Rh(e,{sourceAttachment:t}),{width:s,height:n}=e;for(;n>r;)({data:i,width:s,height:n}=wV({data:i,width:s,height:n}));bV({data:i,width:s,height:n});let o=document.createElement(\"canvas\");o.width=s,o.height=n;let c=o.getContext(\"2d\"),f=c.createImageData(s,n);return f.data.set(i),c.putImageData(f,0,0),o.toDataURL()}function rE(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{sourceX:i=0,sourceY:s=0,targetMipmaplevel:n=0,targetInternalFormat:o=6408}=r,{targetX:c,targetY:f,targetZ:_,width:w,height:C}=r,{framebuffer:R,deleteFramebuffer:N}=BV(e);ye(R);let{gl:j,handle:Y}=R,rt=typeof c<\"u\"||typeof f<\"u\"||typeof _<\"u\";c=c||0,f=f||0,_=_||0;let $=j.bindFramebuffer(36160,Y);ye(t);let K=null;if(t instanceof Ja&&(K=t,w=Number.isFinite(w)?w:K.width,C=Number.isFinite(C)?C:K.height,K.bind(0),t=K.target),!rt)j.copyTexImage2D(t,n,o,i,s,w,C,0);else switch(t){case 3553:case 34067:j.copyTexSubImage2D(t,n,c,f,i,s,w,C);break;case 35866:case 32879:qn(j).copyTexSubImage3D(t,n,c,f,_,i,s,w,C);break;default:}return K&&K.unbind(),j.bindFramebuffer(36160,$||null),N&&R.delete(),K}function BV(e){return e instanceof yi?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:FV(e),deleteFramebuffer:!0}}function unt(e,t,r,i,s){if(e)return e;t=t||5121;let n=jA(t,{clamped:!1}),o=OV(r);return new n(i*s*o)}var Pi={WEBGL2:\"WEBGL2\",VERTEX_ARRAY_OBJECT:\"VERTEX_ARRAY_OBJECT\",TIMER_QUERY:\"TIMER_QUERY\",INSTANCED_RENDERING:\"INSTANCED_RENDERING\",MULTIPLE_RENDER_TARGETS:\"MULTIPLE_RENDER_TARGETS\",ELEMENT_INDEX_UINT32:\"ELEMENT_INDEX_UINT32\",BLEND_EQUATION_MINMAX:\"BLEND_EQUATION_MINMAX\",FLOAT_BLEND:\"FLOAT_BLEND\",COLOR_ENCODING_SRGB:\"COLOR_ENCODING_SRGB\",TEXTURE_DEPTH:\"TEXTURE_DEPTH\",TEXTURE_FLOAT:\"TEXTURE_FLOAT\",TEXTURE_HALF_FLOAT:\"TEXTURE_HALF_FLOAT\",TEXTURE_FILTER_LINEAR_FLOAT:\"TEXTURE_FILTER_LINEAR_FLOAT\",TEXTURE_FILTER_LINEAR_HALF_FLOAT:\"TEXTURE_FILTER_LINEAR_HALF_FLOAT\",TEXTURE_FILTER_ANISOTROPIC:\"TEXTURE_FILTER_ANISOTROPIC\",COLOR_ATTACHMENT_RGBA32F:\"COLOR_ATTACHMENT_RGBA32F\",COLOR_ATTACHMENT_FLOAT:\"COLOR_ATTACHMENT_FLOAT\",COLOR_ATTACHMENT_HALF_FLOAT:\"COLOR_ATTACHMENT_HALF_FLOAT\",GLSL_FRAG_DATA:\"GLSL_FRAG_DATA\",GLSL_FRAG_DEPTH:\"GLSL_FRAG_DEPTH\",GLSL_DERIVATIVES:\"GLSL_DERIVATIVES\",GLSL_TEXTURE_LOD:\"GLSL_TEXTURE_LOD\"};function hnt(e){let t=new pi(e,{format:6408,type:5126,dataFormat:6408}),r=new yi(e,{id:\"test-framebuffer\",check:!1,attachments:{36064:t}}),i=r.getStatus();return t.delete(),r.delete(),i===36053}var nR={[Pi.WEBGL2]:[!1,!0],[Pi.VERTEX_ARRAY_OBJECT]:[\"OES_vertex_array_object\",!0],[Pi.TIMER_QUERY]:[\"EXT_disjoint_timer_query\",\"EXT_disjoint_timer_query_webgl2\"],[Pi.INSTANCED_RENDERING]:[\"ANGLE_instanced_arrays\",!0],[Pi.MULTIPLE_RENDER_TARGETS]:[\"WEBGL_draw_buffers\",!0],[Pi.ELEMENT_INDEX_UINT32]:[\"OES_element_index_uint\",!0],[Pi.BLEND_EQUATION_MINMAX]:[\"EXT_blend_minmax\",!0],[Pi.FLOAT_BLEND]:[\"EXT_float_blend\"],[Pi.COLOR_ENCODING_SRGB]:[\"EXT_sRGB\",!0],[Pi.TEXTURE_DEPTH]:[\"WEBGL_depth_texture\",!0],[Pi.TEXTURE_FLOAT]:[\"OES_texture_float\",!0],[Pi.TEXTURE_HALF_FLOAT]:[\"OES_texture_half_float\",!0],[Pi.TEXTURE_FILTER_LINEAR_FLOAT]:[\"OES_texture_float_linear\"],[Pi.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:[\"OES_texture_half_float_linear\"],[Pi.TEXTURE_FILTER_ANISOTROPIC]:[\"EXT_texture_filter_anisotropic\"],[Pi.COLOR_ATTACHMENT_RGBA32F]:[hnt,\"EXT_color_buffer_float\"],[Pi.COLOR_ATTACHMENT_FLOAT]:[!1,\"EXT_color_buffer_float\"],[Pi.COLOR_ATTACHMENT_HALF_FLOAT]:[\"EXT_color_buffer_half_float\"],[Pi.GLSL_FRAG_DATA]:[\"WEBGL_draw_buffers\",!0],[Pi.GLSL_FRAG_DEPTH]:[\"EXT_frag_depth\",!0],[Pi.GLSL_DERIVATIVES]:[\"OES_standard_derivatives\",!0],[Pi.GLSL_TEXTURE_LOD]:[\"EXT_shader_texture_lod\",!0]};var fnt=2;function H0(e,t){return Dh(e,t)}function Dh(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>zV(e,r))}function iE(e){e.luma=e.luma||{},e.luma.caps=e.luma.caps||{};for(let t in nR)e.luma.caps[t]===void 0&&(e.luma.caps[t]=zV(e,t));return e.luma.caps}function zV(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},e.luma.caps[t]===void 0&&(e.luma.caps[t]=dnt(e,t)),e.luma.caps[t]||je.log(fnt,\"Feature: \".concat(t,\" not supported\"))(),e.luma.caps[t]}function dnt(e,t){let r=nR[t];ye(r,t);let i,s=hr(e)&&r[1]||r[0];if(typeof s==\"function\")i=s(e);else if(Array.isArray(s)){i=!0;for(let n of s)i=i&&!!e.getExtension(n)}else typeof s==\"string\"?i=!!e.getExtension(s):typeof s==\"boolean\"?i=s:ye(!1);return i}var NV=\"Multiple render targets not supported\",yi=class e extends Ys{get[Symbol.toStringTag](){return\"Framebuffer\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{colorBufferFloat:i,colorBufferHalfFloat:s}=r,n=!0;return i&&(n=!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"WEBGL_color_buffer_float\")||t.getExtension(\"OES_texture_float\"))),s&&(n=n&&!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"EXT_color_buffer_half_float\"))),n}static getDefaultFramebuffer(t){return t.luma=t.luma||{},t.luma.defaultFramebuffer=t.luma.defaultFramebuffer||new e(t,{id:\"default-framebuffer\",handle:null,attachments:{}}),t.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){let t=qn(this.gl);return t.getParameter(t.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){let t=qn(this.gl);return t.getParameter(t.MAX_DRAW_BUFFERS)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(r),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize(t){let{width:r=1,height:i=1,attachments:s=null,color:n=!0,depth:o=!0,stencil:c=!1,check:f=!0,readBuffer:_=void 0,drawBuffers:w=void 0}=t;if(ye(r>=0&&i>=0,\"Width and height need to be integers\"),this.width=r,this.height=i,s)for(let C in s){let R=s[C];(Array.isArray(R)?R[0]:R).resize({width:r,height:i})}else s=this._createDefaultAttachments(n,o,c,r,i);this.update({clearAttachments:!0,attachments:s,readBuffer:_,drawBuffers:w}),s&&f&&this.checkStatus()}delete(){for(let t of this.ownResources)t.delete();return super.delete(),this}update(t){let{attachments:r={},readBuffer:i,drawBuffers:s,clearAttachments:n=!1,resizeAttachments:o=!0}=t;this.attach(r,{clearAttachments:n,resizeAttachments:o});let{gl:c}=this,f=c.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),s&&this._setDrawBuffers(s),c.bindFramebuffer(36160,f||null),this}resize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:r,height:i}=t;if(this.handle===null)return ye(r===void 0&&i===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;r===void 0&&(r=this.gl.drawingBufferWidth),i===void 0&&(i=this.gl.drawingBufferHeight),r!==this.width&&i!==this.height&&je.log(2,\"Resizing framebuffer \".concat(this.id,\" to \").concat(r,\"x\").concat(i))();for(let s in this.attachments)this.attachments[s].resize({width:r,height:i});return this.width=r,this.height=i,this}attach(t){let{clearAttachments:r=!1,resizeAttachments:i=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s={};r&&Object.keys(this.attachments).forEach(o=>{s[o]=null}),Object.assign(s,t);let n=this.gl.bindFramebuffer(36160,this.handle);for(let o in s){ye(o!==void 0,\"Misspelled framebuffer binding point?\");let c=Number(o),f=s[c],_=f;if(!_)this._unattach(c);else if(_ instanceof tl)this._attachRenderbuffer({attachment:c,renderbuffer:_});else if(Array.isArray(f)){let[w,C=0,R=0]=f;_=w,this._attachTexture({attachment:c,texture:w,layer:C,level:R})}else this._attachTexture({attachment:c,texture:_,layer:0,level:0});i&&_&&_.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,n||null),Object.assign(this.attachments,t),Object.keys(this.attachments).filter(o=>!this.attachments[o]).forEach(o=>{delete this.attachments[o]})}checkStatus(){let{gl:t}=this,r=this.getStatus();if(r!==36053)throw new Error(Ant(r));return this}getStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);return t.bindFramebuffer(36160,r||null),i}clear(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:r,depth:i,stencil:s,drawBuffers:n=[]}=t,o=this.gl.bindFramebuffer(36160,this.handle);return(r||i||s)&&Gf(this.gl,{color:r,depth:i,stencil:s}),n.forEach((c,f)=>{iR(this.gl,{drawBuffer:f,value:c})}),this.gl.bindFramebuffer(36160,o||null),this}readPixels(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)\")(),null}readPixelsToBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)\")(),null}copyToDataUrl(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)\")(),null}copyToImage(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)\")(),null}copyToTexture(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}blit(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)\")(),null}invalidate(t){let{attachments:r=[],x:i=0,y:s=0,width:n,height:o}=t,c=qn(this.gl),f=c.bindFramebuffer(36008,this.handle);return i===0&&s===0&&n===void 0&&o===void 0?c.invalidateFramebuffer(36008,r):c.invalidateFramebuffer(36008,r,i,s,n,o),c.bindFramebuffer(36008,f),this}getAttachmentParameter(t,r,i){let s=this._getAttachmentParameterFallback(r);return s===null&&(this.gl.bindFramebuffer(36160,this.handle),s=this.gl.getFramebufferAttachmentParameter(36160,t,r),this.gl.bindFramebuffer(36160,null)),i&&s>1e3&&(s=ku(this.gl,s)),s}getAttachmentParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],s={};for(let n of i){let o=r?ku(this.gl,n):n;s[o]=this.getAttachmentParameter(t,n,r)}return s}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,r=Object.keys(this.attachments),i={};for(let s of r){let n=Number(s),o=t?ku(this.gl,n):n;i[o]=this.getAttachmentParameters(n,t)}return i}show(){return typeof window<\"u\"&&window.open(eE(this),\"luma-debug-texture\"),this}log(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";if(t>je.level||typeof window>\"u\")return this;r=r||\"Framebuffer \".concat(this.id);let i=eE(this,{targetMaxHeight:100});return je.image({logLevel:t,message:r,image:i},r)(),this}bind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,this.handle),this}unbind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,null),this}_createDefaultAttachments(t,r,i,s,n){let o=null;return t&&(o=o||{},o[36064]=new pi(this.gl,{id:\"\".concat(this.id,\"-color0\"),pixels:null,format:6408,type:5121,width:s,height:n,mipmaps:!1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.ownResources.push(o[36064])),r&&i?(o=o||{},o[33306]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth-stencil\"),format:35056,width:s,height:111}),this.ownResources.push(o[33306])):r?(o=o||{},o[36096]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth\"),format:33189,width:s,height:n}),this.ownResources.push(o[36096])):i&&ye(!1),o}_unattach(t){let r=this.attachments[t];r&&(r instanceof tl?this.gl.framebufferRenderbuffer(36160,t,36161,null):this.gl.framebufferTexture2D(36160,t,3553,null,0),delete this.attachments[t])}_attachRenderbuffer(t){let{attachment:r=36064,renderbuffer:i}=t,{gl:s}=this;s.framebufferRenderbuffer(36160,r,36161,i.handle),this.attachments[r]=i}_attachTexture(t){let{attachment:r=36064,texture:i,layer:s,level:n}=t,{gl:o}=this;switch(o.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:qn(o).framebufferTextureLayer(36160,r,i.target,n,s);break;case 34067:let f=pnt(s);o.framebufferTexture2D(36160,r,f,i.handle,n);break;case 3553:o.framebufferTexture2D(36160,r,3553,i.handle,n);break;default:ye(!1,\"Illegal texture type\")}o.bindTexture(i.target,null),this.attachments[r]=i}_setReadBuffer(t){let r=V4(this.gl);r?r.readBuffer(t):ye(t===36064||t===1029,NV),this.readBuffer=t}_setDrawBuffers(t){let{gl:r}=this,i=qn(r);if(i)i.drawBuffers(t);else{let s=r.getExtension(\"WEBGL_draw_buffers\");s?s.drawBuffersWEBGL(t):ye(t.length===1&&(t[0]===36064||t[0]===1029),NV)}this.drawBuffers=t}_getAttachmentParameterFallback(t){let r=iE(this.gl);switch(t){case 36052:return r.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return r.WEBGL2?null:8;case 33297:return r.WEBGL2?null:5125;case 33296:return!r.WEBGL2&&!r.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle(t){return this.gl.bindFramebuffer(36160,t)}};function pnt(e){return e<34069?e+34069:e}function Ant(e){return(yi.STATUS||{})[e]||\"Framebuffer error \".concat(e)}var mnt=[36049,36048,33296,33298,33299,33300,33301,33302,33303];yi.ATTACHMENT_PARAMETERS=mnt;function nE(e,t){ye(e instanceof pi||e instanceof G0||e instanceof my);let r=e.constructor,{gl:i,width:s,height:n,format:o,type:c,dataFormat:f,border:_,mipmaps:w}=e,C=Object.assign({width:s,height:n,format:o,type:c,dataFormat:f,border:_,mipmaps:w},t);return new r(i,C)}function FV(e,t){let{gl:r,width:i,height:s,id:n}=e;return new yi(r,Object.assign({},t,{id:\"framebuffer-for-\".concat(n),width:i,height:s,attachments:{36064:e}}))}function GA(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unnamed\",r=/#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/,i=e.match(r);return i?i[1]:t}function sR(e){switch(e){case 35632:return\"fragment\";case 35633:return\"vertex\";default:return\"unknown type\"}}function oR(e,t,r,i){let s=e.split(/\\r?\\n/),n={},o={},c=i||GA(t)||\"(unnamed)\",f=\"\".concat(sR(r),\" shader \").concat(c);for(let w=0;w1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\": \",i=e.split(/\\r?\\n/),s=String(i.length+t-1).length;return i.map((n,o)=>{let c=String(o+t),f=c.length;return VV(c,s-f)+r+n})}function VV(e,t){let r=\"\";for(let i=0;i=2&&r[0]===\"#version\"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}return t}var _nt=\"Shader: GLSL source code must be a JavaScript string\",sE=class e extends Ys{get[Symbol.toStringTag](){return\"Shader\"}static getTypeName(t){switch(t){case 35633:return\"vertex-shader\";case 35632:return\"fragment-shader\";default:return ye(!1),\"unknown\"}}constructor(t,r){Kd(t),ye(typeof r.source==\"string\",_nt);let i=GA(r.source,null)||r.id||Jo(\"unnamed \".concat(e.getTypeName(r.shaderType)));super(t,{id:i}),this.shaderType=r.shaderType,this.source=r.source,this.initialize(r)}initialize(t){let{source:r}=t,i=GA(r,null);i&&(this.id=Jo(i)),this._compile(r)}getParameter(t){return this.gl.getShaderParameter(this.handle,t)}toString(){return\"\".concat(e.getTypeName(this.shaderType),\":\").concat(this.id)}getName(){return GA(this.source)||\"unnamed-shader\"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){let t=this.gl.getExtension(\"WEBGL_debug_shaders\");return t?t.getTranslatedShaderSource(this.handle):\"No translated source available. WEBGL_debug_shaders not implemented\"}_compile(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if(t.startsWith(\"#version \")||(t=`#version 100\n`.concat(t)),this.source=t,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){let i=this.gl.getShaderInfoLog(this.handle),{shaderName:s,errors:n,warnings:o}=oR(i,this.source,this.shaderType,this.id);throw je.error(\"GLSL compilation errors in \".concat(s,`\n`).concat(n))(),je.warn(\"GLSL compilation warnings in \".concat(s,`\n`).concat(o))(),new Error(\"GLSL compilation errors in \".concat(s))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}},q0=class extends sE{get[Symbol.toStringTag](){return\"VertexShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}},Z0=class extends sE{get[Symbol.toStringTag](){return\"FragmentShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}};var ynt={5126:Zn.bind(null,\"uniform1fv\",Zc,1,el),35664:Zn.bind(null,\"uniform2fv\",Zc,2,el),35665:Zn.bind(null,\"uniform3fv\",Zc,3,el),35666:Zn.bind(null,\"uniform4fv\",Zc,4,el),5124:Zn.bind(null,\"uniform1iv\",WA,1,el),35667:Zn.bind(null,\"uniform2iv\",WA,2,el),35668:Zn.bind(null,\"uniform3iv\",WA,3,el),35669:Zn.bind(null,\"uniform4iv\",WA,4,el),35670:Zn.bind(null,\"uniform1iv\",WA,1,el),35671:Zn.bind(null,\"uniform2iv\",WA,2,el),35672:Zn.bind(null,\"uniform3iv\",WA,3,el),35673:Zn.bind(null,\"uniform4iv\",WA,4,el),35674:Zn.bind(null,\"uniformMatrix2fv\",Zc,4,Jd),35675:Zn.bind(null,\"uniformMatrix3fv\",Zc,9,Jd),35676:Zn.bind(null,\"uniformMatrix4fv\",Zc,16,Jd),35678:_a,35680:_a,5125:Zn.bind(null,\"uniform1uiv\",oE,1,el),36294:Zn.bind(null,\"uniform2uiv\",oE,2,el),36295:Zn.bind(null,\"uniform3uiv\",oE,3,el),36296:Zn.bind(null,\"uniform4uiv\",oE,4,el),35685:Zn.bind(null,\"uniformMatrix2x3fv\",Zc,6,Jd),35686:Zn.bind(null,\"uniformMatrix2x4fv\",Zc,8,Jd),35687:Zn.bind(null,\"uniformMatrix3x2fv\",Zc,6,Jd),35688:Zn.bind(null,\"uniformMatrix3x4fv\",Zc,12,Jd),35689:Zn.bind(null,\"uniformMatrix4x2fv\",Zc,8,Jd),35690:Zn.bind(null,\"uniformMatrix4x3fv\",Zc,12,Jd),35678:_a,35680:_a,35679:_a,35682:_a,36289:_a,36292:_a,36293:_a,36298:_a,36299:_a,36300:_a,36303:_a,36306:_a,36307:_a,36308:_a,36311:_a},vnt={},xnt={},bnt={},jV=[0];function aR(e,t,r,i){t===1&&typeof e==\"boolean\"&&(e=e?1:0),Number.isFinite(e)&&(jV[0]=e,e=jV);let s=e.length;if(s%t&&je.warn(\"Uniform size should be multiples of \".concat(t),e)(),e instanceof r)return e;let n=i[s];n||(n=new r(s),i[s]=n);for(let o=0;o{let s=e!==i;return s&&(t.uniform1i(r,i),e=i),s}}function Zn(e,t,r,i){let s=null,n=null;return(o,c,f)=>{let _=t(f,r),w=_.length,C=!1;if(s===null)s=new Float32Array(w),n=w,C=!0;else{ye(n===w,\"Uniform length cannot change.\");for(let R=0;R=0&&this._addAttribute(f,n,o,c)}this.attributeInfos.sort((s,n)=>s.location-n.location)}_readVaryingsFromProgram(t){let{gl:r}=t;if(!hr(r))return;let i=r.getProgramParameter(t.handle,35971);for(let s=0;ss.location-n.location)}_addAttribute(t,r,i,s){let{type:n,components:o}=uR(i),c={type:n,size:s*o};this._inferProperties(t,r,c);let f={location:t,name:r,accessor:new Tl(c)};this.attributeInfos.push(f),this.attributeInfosByLocation[t]=f,this.attributeInfosByName[f.name]=f}_inferProperties(t,r,i){/instance/i.test(r)&&(i.divisor=1)}_addVarying(t,r,i,s){let{type:n,components:o}=uR(i),c=new Tl({type:n,size:s*o}),f={location:t,name:r,accessor:c};this.varyingInfos.push(f),this.varyingInfosByName[f.name]=f}};var YV=4,est=35981,rst=[\"setVertexArray\",\"setAttributes\",\"setBuffers\",\"unsetBuffers\",\"use\",\"getUniformCount\",\"getUniformInfo\",\"getUniformLocation\",\"getUniformValue\",\"getVarying\",\"getFragDataLocation\",\"getAttachedShaders\",\"getAttributeCount\",\"getAttributeLocation\",\"getAttributeInfo\"],tp=class extends Ys{get[Symbol.toStringTag](){return\"Program\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Program\",\"v6.0\",rst),this._isCached=!1,this.initialize(r),Object.seal(this),this._setId(r.id)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{hash:r,vs:i,fs:s,varyings:n,bufferMode:o=est}=t;return this.hash=r||\"\",this.vs=typeof i==\"string\"?new q0(this.gl,{id:\"\".concat(t.id,\"-vs\"),source:i}):i,this.fs=typeof s==\"string\"?new Z0(this.gl,{id:\"\".concat(t.id,\"-fs\"),source:s}):s,ye(this.vs instanceof q0),ye(this.fs instanceof Z0),this.uniforms={},this._textureUniforms={},n&&n.length>0&&(qn(this.gl),this.varyings=n,this.gl2.transformFeedbackVaryings(this.handle,n,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new lb(this),this.setProps(t)}delete(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete(t)}setProps(t){return\"uniforms\"in t&&this.setUniforms(t.uniforms),this}draw(t){let{logPriority:r,drawMode:i=4,vertexCount:s,offset:n=0,start:o,end:c,isIndexed:f=!1,indexType:_=5123,instanceCount:w=0,isInstanced:C=w>0,vertexArray:R=null,transformFeedback:N,framebuffer:j,parameters:Y={},uniforms:rt,samplers:$}=t;if((rt||$)&&(je.deprecated(\"Program.draw({uniforms})\",\"Program.setUniforms(uniforms)\")(),this.setUniforms(rt||{})),je.priority>=r){let K=j?j.id:\"default\",tt=\"mode=\".concat(ku(this.gl,i),\" verts=\").concat(s,\" \")+\"instances=\".concat(w,\" indexType=\").concat(ku(this.gl,_),\" \")+\"isInstanced=\".concat(C,\" isIndexed=\").concat(f,\" \")+\"Framebuffer=\".concat(K);je.log(r,tt)()}return ye(R),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||s===0||C&&w===0?!1:(R.bindForDraw(s,w,()=>{if(j!==void 0&&(Y=Object.assign({},Y,{framebuffer:j})),N){let K=ZV(i);N.begin(K)}this._bindTextures(),bn(this.gl,Y,()=>{f&&C?this.gl2.drawElementsInstanced(i,s,_,n,w):f&&hr(this.gl)&&!isNaN(o)&&!isNaN(c)?this.gl2.drawRangeElements(i,o,c,s,_,n):f?this.gl.drawElements(i,s,_,n):C?this.gl2.drawArraysInstanced(i,n,s,w):this.gl.drawArrays(i,n,s)}),N&&N.end()}),!0)}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};je.priority>=2&&WV(t,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(let r in t){let i=t[r],s=this._uniformSetters[r];if(s){let n=i,o=!1;if(n instanceof yi&&(n=n.texture),n instanceof Ja)if(o=this.uniforms[r]!==i,o){s.textureIndex===void 0&&(s.textureIndex=this._textureIndexCounter++);let c=n,{textureIndex:f}=s;c.bind(f),n=f,this._textureUniforms[r]=c}else n=s.textureIndex;else this._textureUniforms[r]&&delete this._textureUniforms[r];(s(n)||o)&&HV(this.uniforms,r,i)}}return this}_areTexturesRenderable(){let t=!0;for(let r in this._textureUniforms){let i=this._textureUniforms[r];i.update(),t=t&&i.loaded}return t}_bindTextures(){for(let t in this._textureUniforms){let r=this._uniformSetters[t].textureIndex;this._textureUniforms[t].bind(r)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle(t){let r=this.gl.getAttachedShaders(t),i={};for(let s of r)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:i.vs=new q0({handle:s});break;case 35632:i.fs=new Z0({handle:s});break;default:}return i}_getParameter(t){return this.gl.getProgramParameter(this.handle,t)}_setId(t){if(!t){let r=this._getName();this.id=Jo(r)}}_getName(){let t=this.vs.getName()||this.fs.getName();return t=t.replace(/shader/i,\"\"),t=t?\"\".concat(t,\"-program\"):\"program\",t}_compileAndLink(){let{gl:t}=this;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),je.time(YV,\"linkProgram for \".concat(this._getName()))(),t.linkProgram(this.handle),je.timeEnd(YV,\"linkProgram for \".concat(this._getName()))(),t.debug||je.level>0){if(!t.getProgramParameter(this.handle,35714))throw new Error(\"Error linking: \".concat(t.getProgramInfoLog(this.handle)));if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(\"Error validating: \".concat(t.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){let{gl:t}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let r=0;r1)for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:[],i=hr(t),s=Dh(t,Pi.TIMER_QUERY),n=i||s;for(let o of r)switch(o){case\"queries\":n=n&&i;break;case\"timers\":n=n&&s;break;default:ye(!1)}return n}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(sst)}beginOcclusionQuery(){let{conservative:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin(t?cst:lst)}beginTransformFeedbackQuery(){return this.begin(ast)}begin(t){return this._queryPending?this:(this.target=t,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.gl2.getQueryParameter(this.handle,nst);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.gl2.getParameter(ost)}getResult(){return this.gl2.getQueryParameter(this.handle,ist)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let n=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s(\"Timed out\"),this._pollingPromise=null):requestAnimationFrame(n)};requestAnimationFrame(n)}),this._pollingPromise}_createHandle(){return e.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}};var ep=class extends Ys{get[Symbol.toStringTag](){return\"TransformFeedback\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};qn(t),super(t,r),this.initialize(r),this.stubRemovedMethods(\"TransformFeedback\",\"v6.0\",[\"pause\",\"resume\"]),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,jf(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps(t),this}setProps(t){\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"bindOnUse\"in t&&(t=t.bindOnUse),\"buffers\"in t&&this.setBuffers(t.buffers)}setBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])}),this}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteSize:n,byteOffset:o}=this._getBufferParams(r);return i<0?(this.unused[t]=s,je.warn(\"\".concat(this.id,\" unused varying buffer \").concat(t))(),this):(this.buffers[i]=r,this.bindOnUse||this._bindBuffer(i,s,o,n),this)}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(t),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams(t){let r,i,s;return t instanceof Fr?s=t:(s=t.buffer,i=t.byteSize,r=t.byteOffset),(r!==void 0||i!==void 0)&&(r=r||0,i=i||s.byteLength-r),{buffer:s,byteOffset:r,byteSize:i}}_getVaryingInfo(t){return this.configuration&&this.configuration.getVaryingInfo(t)}_getVaryingIndex(t){if(this.configuration)return this.configuration.getVaryingInfo(t).location;let r=Number(t);return Number.isFinite(r)?r:-1}_bindBuffers(){if(this.bindOnUse)for(let t in this.buffers){let{buffer:r,byteSize:i,byteOffset:s}=this._getBufferParams(this.buffers[t]);this._bindBuffer(t,r,s,i)}}_unbindBuffers(){if(this.bindOnUse)for(let t in this.buffers)this._bindBuffer(t,null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0,n=r&&r.handle;return!n||s===void 0?this.gl.bindBufferBase(35982,t,n):this.gl.bindBufferRange(35982,t,n,i,s),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle(t){this.gl.bindTransformFeedback(36386,this.handle)}};var uE=null;function ust(e){return(!uE||uE.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?hr(t)||cy()===\"Chrome\":!0}static getDefaultArray(t){return t.luma=t.luma||{},t.luma.defaultVertexArray||(t.luma.defaultVertexArray=new e(t,{handle:null,isDefaultArray:!0})),t.luma.defaultVertexArray}static getMaxAttributes(t){return e.MAX_ATTRIBUTES=e.MAX_ATTRIBUTES||t.getParameter(34921),e.MAX_ATTRIBUTES}static setConstant(t,r,i){switch(i.constructor){case Float32Array:e._setConstantFloatArray(t,r,i);break;case Int32Array:e._setConstantIntArray(t,r,i);break;case Uint32Array:e._setConstantUintArray(t,r,i);break;default:ye(!1)}}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;super(t,Object.assign({},r,{id:i})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=r.isDefaultArray||!1,this.gl2=t,this.initialize(r),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return e.getMaxAttributes(this.gl)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps(t)}setProps(t){return this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ye(!t||t.target===34963,hst),this.bind(()=>{this.gl.bindBuffer(34963,t?t.handle:null)}),this}setBuffer(t,r,i){if(r.target===34963)return this.setElementBuffer(r,i);let{size:s,type:n,stride:o,offset:c,normalized:f,integer:_,divisor:w}=i,{gl:C,gl2:R}=this;return t=Number(t),this.bind(()=>{C.bindBuffer(34962,r.handle),_?(ye(hr(C)),R.vertexAttribIPointer(t,s,n,o,c)):C.vertexAttribPointer(t,s,n,f,o,c),C.enableVertexAttribArray(t),R.vertexAttribDivisor(t,w||0)}),this}enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!r&&t===0&&!e.isSupported(this.gl,{constantAttributeZero:!0})||(t=Number(t),this.bind(()=>r?this.gl.enableVertexAttribArray(t):this.gl.disableVertexAttribArray(t))),this}getConstantBuffer(t,r){let i=this._normalizeConstantArrayValue(r),s=i.byteLength*t,n=i.length*t,o=!this.buffer;if(this.buffer=this.buffer||new Fr(this.gl,s),o=o||this.buffer.reallocate(s),o=o||!this._compareConstantArrayValues(i,this.bufferValue),o){let c=QV(r.constructor,n);$V({target:c,source:i,start:0,count:n}),this.buffer.subData(c),this.bufferValue=r}return this.buffer}_normalizeConstantArrayValue(t){return Array.isArray(t)?new Float32Array(t):t}_compareConstantArrayValues(t,r){if(!t||!r||t.length!==r.length||t.constructor!==r.constructor)return!1;for(let i=0;i{switch(t){case 34373:return this.gl.getVertexAttribOffset(i,t);default:return this.gl.getVertexAttrib(i,t)}})}};var fst=\"VertexArray: attributes must be Buffers or constants (i.e. typed array)\",dst=/^(.+)__LOCATION_([0-9]+)$/,pst=[\"setBuffers\",\"setGeneric\",\"clearBindings\",\"setLocations\",\"setGenericValues\",\"setDivisor\",\"enable\",\"disable\"],_y=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;this.id=i,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new Q0(t),XM(this,\"VertexArray\",\"v6.0\",pst),this.initialize(r),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(t)}reset(){this.elements=null,this.elementsAccessor=null;let{MAX_ATTRIBUTES:t}=this.vertexArrayObject;return this.values=new Array(t).fill(null),this.accessors=new Array(t).fill(null),this.unused={},this.drawParams=null,this}setProps(t){return\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"attributes\"in t&&this.setAttributes(t.attributes),\"elements\"in t&&this.setElementBuffer(t.elements),\"bindOnUse\"in t&&(t=t.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes(t){return Object.assign(this.attributes,t),this.vertexArrayObject.bind(()=>{for(let r in t){let i=t[r];this._setAttribute(r,i)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=t,this.elementsAccessor=r,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(t,r),this}setBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(r.target===34963)return this.setElementBuffer(r,i);let{location:s,accessor:n}=this._resolveLocationAndAccessor(t,r,r.accessor,i);return s>=0&&(this.values[s]=r,this.accessors[s]=n,this.clearDrawParams(),this.vertexArrayObject.setBuffer(s,r,n)),this}setConstant(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{location:s,accessor:n}=this._resolveLocationAndAccessor(t,r,Object.assign({size:r.length},i));return s>=0&&(r=this.vertexArrayObject._normalizeConstantArrayValue(r),this.values[s]=r,this.accessors[s]=n,this.clearDrawParams(),this.vertexArrayObject.enable(s,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new Fr(this.gl,{accessor:{size:4}});for(let t=0;t{this.elements&&this.setElementBuffer(this.elements);for(let t=0;t{this._setConstantAttributes(t,r),s=i()}),s}_resolveLocationAndAccessor(t,r,i,s){let n={location:-1,accessor:null},{location:o,name:c}=this._getAttributeIndex(t);if(!Number.isFinite(o)||o<0)return this.unused[t]=r,je.once(3,()=>\"unused value \".concat(t,\" in \").concat(this.id))(),n;let f=this._getAttributeInfo(c||o);if(!f)return n;let _=this.accessors[o]||{},w=Tl.resolve(f.accessor,_,i,s),{size:C,type:R}=w;return ye(Number.isFinite(C)&&Number.isFinite(R)),{location:o,accessor:w}}_getAttributeInfo(t){return this.configuration&&this.configuration.getAttributeInfo(t)}_getAttributeIndex(t){let r=Number(t);if(Number.isFinite(r))return{location:r};let i=dst.exec(t),s=i?i[1]:t,n=i?Number(i[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(s)+n,name:s}:{location:-1}}_setAttribute(t,r){if(r instanceof Fr)this.setBuffer(t,r);else if(Array.isArray(r)&&r.length&&r[0]instanceof Fr){let i=r[0],s=r[1];this.setBuffer(t,i,s)}else if(ArrayBuffer.isView(r)||Array.isArray(r)){let i=r;this.setConstant(t,i)}else if(r.buffer instanceof Fr){let i=r;this.setBuffer(t,i.buffer,i)}else throw new Error(fst)}_setConstantAttributes(t,r){let i=Math.max(t|0,r|0),s=this.values[0];ArrayBuffer.isView(s)&&this._setConstantAttributeZero(s,i);for(let n=1;n0;if(t.isInstanced=t.isInstanced||o,i instanceof Fr){let c=i;if(o){let f=c.getVertexCount(s);t.instanceCount=Math.min(t.instanceCount,f)}else{let f=c.getVertexCount(s);t.vertexCount=Math.min(t.vertexCount,f)}}}setElements(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return je.deprecated(\"setElements\",\"setElementBuffer\")(),this.setElementBuffer(t,r)}};function Ast(e,t){let{maxElts:r=16,size:i=1}=t,s=\"[\";for(let o=0;o0&&(s+=\",\".concat(o%i===0?\" \":\"\")),s+=$0(e[o],t);let n=e.length>r?\"...\":\"]\";return\"\".concat(s).concat(n)}function $0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=1e-16,{isInteger:i=!1}=t;if(Array.isArray(e)||ArrayBuffer.isView(e))return Ast(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)100&&Math.abs(e)<1e4)return e.toFixed(0);let s=e.toPrecision(2);return s.indexOf(\".0\")===s.length-2?s.slice(0,-1):s}function hE(e){let{header:t=\"Uniforms\",program:r,uniforms:i,undefinedOnly:s=!1}=e;ye(r);let n=\".*_.*\",o=\".*Matrix\",c=r._uniformSetters,f={},_=Object.keys(c).sort(),w=0;for(let N of _)!N.match(n)&&!N.match(o)&&hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;for(let N of _)N.match(o)&&hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;for(let N of _)f[N]||hR({table:f,header:t,uniforms:i,uniformName:N,undefinedOnly:s})&&w++;let C=0,R={};if(!s)for(let N in i){let j=i[N];f[N]||(C++,R[N]={Type:\"NOT USED: \".concat(j),[t]:$0(j)})}return{table:f,count:w,unusedTable:R,unusedCount:C}}function hR(e){let{table:t,header:r,uniforms:i,uniformName:s,undefinedOnly:n}=e,o=i[s],c=mst(o);return!n||!c?(t[s]={[r]:c?$0(o):\"N/A\",\"Uniform Type\":c?o:\"NOT PROVIDED\"},!0):!1}function mst(e){return e!=null}function fR(e){let{vertexArray:t,header:r=\"Attributes\"}=e;if(!t.configuration)return{};let i={};t.elements&&(i.ELEMENT_ARRAY_BUFFER=XV(t,t.elements,null,r));let s=t.values;for(let n in s){let o=t._getAttributeInfo(n);if(o){let c=\"\".concat(n,\": \").concat(o.name),f=t.accessors[o.location];f&&(c=\"\".concat(n,\": \").concat(gst(o.name,f))),i[c]=XV(t,s[n],f,r)}}return i}function XV(e,t,r,i){let{gl:s}=e;if(!t)return{[i]:\"null\",\"Format \":\"N/A\"};let n=\"NOT PROVIDED\",o=1,c=0,f=0,_,w,C;if(r&&(n=r.type,o=r.size,n=String(n).replace(\"Array\",\"\"),_=n.indexOf(\"nt\")!==-1),t instanceof Fr){let R=t,{data:N,changed:j}=R.getDebugData();w=j?\"*\":\"\",C=N,f=R.byteLength,c=f/N.BYTES_PER_ELEMENT/o;let Y;if(r){let rt=r.divisor>0;Y=\"\".concat(rt?\"I \":\"P \",\" \").concat(c,\" (x\").concat(o,\"=\").concat(f,\" bytes \").concat(ku(s,n),\")\")}else _=!0,Y=\"\".concat(f,\" bytes\");return{[i]:\"\".concat(w).concat($0(C,{size:o,isInteger:_})),\"Format \":Y}}return C=t,o=t.length,n=String(t.constructor.name).replace(\"Array\",\"\"),_=n.indexOf(\"nt\")!==-1,{[i]:\"\".concat($0(C,{size:o,isInteger:_}),\" (constant)\"),\"Format \":\"\".concat(o,\"x\").concat(n,\" (constant)\")}}function gst(e,t){let{type:r,size:i}=t,s=cE(r,i);return s?\"\".concat(e,\" (\").concat(s.name,\")\"):e}function dR(e){let t={},r=\"Accessors for \".concat(e.id);for(let i of e.attributeInfos)if(i){let s=KV(i);t[\"in \".concat(s)]={[r]:JSON.stringify(i.accessor)}}for(let i of e.varyingInfos)if(i){let s=KV(i);t[\"out \".concat(s)]={[r]:JSON.stringify(i.accessor)}}return t}function KV(e){let{type:t,size:r}=e.accessor,i=cE(t,r);return i?\"\".concat(i.name,\" \").concat(e.name):e.name}var JV=wo()&&typeof document<\"u\",yst=0,X0=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{onCreateContext:r=rt=>py(rt),onAddHTML:i=null,onInitialize:s=()=>{},onRender:n=()=>{},onFinalize:o=()=>{},onError:c,gl:f=null,glOptions:_={},debug:w=!1,createFramebuffer:C=!1,autoResizeViewport:R=!0,autoResizeDrawingBuffer:N=!0,stats:j=Lu.get(\"animation-loop-\".concat(yst++))}=t,{useDevicePixels:Y=!0}=t;\"useDevicePixelRatio\"in t&&(je.deprecated(\"useDevicePixelRatio\",\"useDevicePixels\")(),Y=t.useDevicePixelRatio),this.props={onCreateContext:r,onAddHTML:i,onInitialize:s,onRender:n,onFinalize:o,onError:c,gl:f,glOptions:_,debug:w,createFramebuffer:C},this.gl=f,this.needsRedraw=null,this.timeline=null,this.stats=j,this.cpuTime=this.stats.get(\"CPU Time\"),this.gpuTime=this.stats.get(\"GPU Time\"),this.frameRate=this.stats.get(\"Frame Rate\"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:R,autoResizeDrawingBuffer:N,useDevicePixels:Y}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw(t){return ye(typeof t==\"string\"),this.needsRedraw=this.needsRedraw||t,this}setProps(t){return\"autoResizeViewport\"in t&&(this.autoResizeViewport=t.autoResizeViewport),\"autoResizeDrawingBuffer\"in t&&(this.autoResizeDrawingBuffer=t.autoResizeDrawingBuffer),\"useDevicePixels\"in t&&(this.useDevicePixels=t.useDevicePixels),this}start(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;let r=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext(t),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=Y0.isSupported(this.gl,[\"timers\"])?new Y0(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(i=>{this._running&&(this._addCallbackData(i||{}),i!==!1&&this._startLoop())});return this.props.onError&&r.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline(t){return this.timeline=t,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw(\"waitForRender\"),this._nextFramePromise||(this._nextFramePromise=new Promise(t=>{this._resolveNextFrame=t})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw(\"toDataURL\"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,i=document.getElementById(t);return i?Number(i.value):r}setViewParameters(){return je.removed(\"AnimationLoop.setViewParameters\",\"AnimationLoop.setProps\")(),this}_startLoop(){let t=()=>{this._running&&(this.redraw(),this._animationFrameId=this._requestAnimationFrame(t))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame(t)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=JV?new Promise((t,r)=>{if(JV&&document.readyState===\"complete\"){t(document);return}window.addEventListener(\"load\",()=>{t(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay(t){this.display&&(this.display.delete(),this.display.animationLoop=null),t&&(t.animationLoop=this),this.display=t}_cancelAnimationFrame(t){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(t):K4(t)}_requestAnimationFrame(t){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(t):X4(t)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){let{width:t,height:r,aspect:i}=this._getSizeAndAspect();(t!==this.animationProps.width||r!==this.animationProps.height)&&this.setNeedsRedraw(\"drawing buffer resized\"),i!==this.animationProps.aspect&&this.setNeedsRedraw(\"drawing buffer aspect changed\"),this.animationProps.width=t,this.animationProps.height=r,this.animationProps.aspect=i,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData(t){typeof t==\"object\"&&t!==null&&(this.animationProps=Object.assign({},this.animationProps,t))}_createWebGLContext(t){if(this.offScreen=t.canvas&&typeof OffscreenCanvas<\"u\"&&t.canvas instanceof OffscreenCanvas,t=Object.assign({},t,this.props.glOptions),this.gl=this.props.gl?V0(this.props.gl,t):this.onCreateContext(t),!Xd(this.gl))throw new Error(\"AnimationLoop.onCreateContext - illegal context returned\");QM(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){let t=document.createElement(\"div\");document.body.appendChild(t),t.style.position=\"relative\";let r=document.createElement(\"div\");r.style.position=\"absolute\",r.style.left=\"10px\",r.style.bottom=\"10px\",r.style.width=\"300px\",r.style.background=\"white\",t.appendChild(this.gl.canvas),t.appendChild(r);let i=this.props.onAddHTML(r);i&&(r.innerHTML=i)}}_getSizeAndAspect(){let t=this.gl.drawingBufferWidth,r=this.gl.drawingBufferHeight,i=1,{canvas:s}=this.gl;return s&&s.clientHeight?i=s.clientWidth/s.clientHeight:t>0&&r>0&&(i=t/r),{width:t,height:r,aspect:i}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&Q4(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new yi(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get(\"GPU Time\").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){let{canvas:t}=this.gl;t&&(t.addEventListener(\"mousemove\",this._onMousemove),t.addEventListener(\"mouseleave\",this._onMouseleave))}_onMousemove(t){this.animationProps._mousePosition=[t.offsetX,t.offsetY]}_onMouseleave(t){this.animationProps._mousePosition=null}};var K0=\"vs\",cb=\"fs\";function Qs(e,t){if(!e)throw new Error(t||\"shadertools: assertion failed.\")}var pR={number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},array:{validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function ej(e){let t={};for(let r in e){let i=e[r],s=vst(i);t[r]=s}return t}function vst(e){let t=tj(e);return t===\"object\"?e?\"type\"in e?Object.assign({},e,pR[e.type]):\"value\"in e?(t=tj(e.value),Object.assign({type:t},e,pR[t])):{type:\"object\",value:e}:{type:\"object\",value:null}:Object.assign({type:t,value:e},pR[t])}function tj(e){return Array.isArray(e)||ArrayBuffer.isView(e)?\"array\":typeof e}var xst=\"vs\",bst=\"fs\",yy=class{constructor(t){let{name:r,vs:i,fs:s,dependencies:n=[],uniforms:o,getUniforms:c,deprecations:f=[],defines:_={},inject:w={},vertexShader:C,fragmentShader:R}=t;Qs(typeof r==\"string\"),this.name=r,this.vs=i||C,this.fs=s||R,this.getModuleUniforms=c,this.dependencies=n,this.deprecations=this._parseDeprecationDefinitions(f),this.defines=_,this.injections=wst(w),o&&(this.uniforms=ej(o))}getModuleSource(t){let r;switch(t){case xst:r=this.vs||\"\";break;case bst:r=this.fs||\"\";break;default:Qs(!1)}return\"#define MODULE_\".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,\"_\"),`\n`).concat(r,\"// END MODULE_\").concat(this.name,`\n\n`)}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):this.uniforms?this._defaultGetUniforms(t):{}}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{i.regex.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case\"function\":r.regex=new RegExp(\"\\\\b\".concat(r.old,\"\\\\(\"));break;default:r.regex=new RegExp(\"\".concat(r.type,\" \").concat(r.old,\";\"))}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let s in i){let n=i[s];s in t&&!n.private?(n.validate&&Qs(n.validate(t[s],n),\"\".concat(this.name,\": invalid \").concat(s)),r[s]=t[s]):r[s]=n.value}return r}};function wst(e){let t={vs:{},fs:{}};for(let r in e){let i=e[r],s=r.slice(0,2);typeof i==\"string\"&&(i={order:0,injection:i}),t[s][r]=i}return t}function rj(e){return Sst(nj(e))}function Sst(e){let t={},r={};return ij({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,s)=>r[s]-r[i]).map(i=>t[i])}function ij(e){let{modules:t,level:r,moduleMap:i,moduleDepth:s}=e;if(r>=5)throw new Error(\"Possible loop in shader dependency graph\");for(let n of t)i[n.name]=n,(s[n.name]===void 0||s[n.name](r instanceof yy||(Qs(typeof r!=\"string\",\"Shader module use by name is deprecated. Import shader module '\".concat(r,\"' and use it directly.\")),Qs(r.name,\"shader module has no name\"),r=new yy(r),r.dependencies=nj(r.dependencies)),r))}function AR(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<\"u\"?window.navigator||{}:{},r=e.userAgent||t.userAgent||\"\",i=r.indexOf(\"MSIE \")!==-1,s=r.indexOf(\"Trident/\")!==-1;return i||s}var Tst=7936,Mst=7937,Est=7938,Pst=35724,gR={GLSL_FRAG_DATA:[\"WEBGL_draw_buffers\",!0],GLSL_FRAG_DEPTH:[\"EXT_frag_depth\",!0],GLSL_DERIVATIVES:[\"OES_standard_derivatives\",!0],GLSL_TEXTURE_LOD:[\"EXT_shader_texture_lod\",!0]},HA={};Object.keys(gR).forEach(e=>{HA[e]=e});function Ist(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function sj(e){let t=e.getExtension(\"WEBGL_debug_renderer_info\"),r=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||Tst),i=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||Mst);return{gpuVendor:Cst(r,i),vendor:r,renderer:i,version:e.getParameter(Est),shadingLanguageVersion:e.getParameter(Pst)}}function Cst(e,t){return e.match(/NVIDIA/i)||t.match(/NVIDIA/i)?\"NVIDIA\":e.match(/INTEL/i)||t.match(/INTEL/i)?\"INTEL\":e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i)?\"AMD\":\"UNKNOWN GPU\"}var mR={};function _R(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=gR[t];if(Qs(i,t),!AR(r))return!0;if(t in mR)return mR[t];let s=i[0],n=r.behavior||\"enable\",o=\"#extension GL_\".concat(s,\" : \").concat(n,`\nvoid main(void) {}`),c=e.createShader(35633);e.shaderSource(c,o),e.compileShader(c);let f=e.getShaderParameter(c,35713);return e.deleteShader(c),mR[t]=f,f}function Lst(e,t){let r=gR[t];Qs(r,t);let i=Ist(e)&&r[1]||r[0],s=typeof i==\"string\"?!!e.getExtension(i):i;return Qs(s===!1||s===!0),s}function ub(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>Lst(e,r))}function oj(e){switch(sj(e).gpuVendor.toLowerCase()){case\"nvidia\":return`#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n`;case\"intel\":return`#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`;case\"amd\":return`#define AMD_GPU\n`;default:return`#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`}}function aj(e,t,r){let i=`#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n`;return ub(e,HA.GLSL_FRAG_DEPTH)&&(i+=`\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n`),ub(e,HA.GLSL_DERIVATIVES)&&_R(e,HA.GLSL_DERIVATIVES)&&(i+=`\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n`),ub(e,HA.GLSL_FRAG_DATA)&&_R(e,HA.GLSL_FRAG_DATA,{behavior:\"require\"})&&(i+=`\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n`),ub(e,HA.GLSL_TEXTURE_LOD)&&(i+=`// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n`),i}var lj=`#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n`,cj=`#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n`;var kst={[K0]:lj,[cb]:cj},hb=\"__LUMA_INJECT_DECLARATIONS__\",uj=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/,hj=/}\\n?[^{}]*$/,yR=[];function fE(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=t===K0;for(let n in r){let o=r[n];o.sort((f,_)=>f.order-_.order),yR.length=o.length;for(let f=0,_=o.length;f<_;++f)yR[f]=o[f].injection;let c=\"\".concat(yR.join(`\n`),`\n`);switch(n){case\"vs:#decl\":s&&(e=e.replace(hb,c));break;case\"vs:#main-start\":s&&(e=e.replace(uj,f=>f+c));break;case\"vs:#main-end\":s&&(e=e.replace(hj,f=>c+f));break;case\"fs:#decl\":s||(e=e.replace(hb,c));break;case\"fs:#main-start\":s||(e=e.replace(uj,f=>f+c));break;case\"fs:#main-end\":s||(e=e.replace(hj,f=>c+f));break;default:e=e.replace(n,f=>f+c)}}return e=e.replace(hb,\"\"),i&&(e=e.replace(/\\}\\s*$/,n=>n+kst[t])),e}function vy(e){let t={};return Qs(Array.isArray(e)&&e.length>1),e.forEach(r=>{for(let i in r)t[i]=t[i]?\"\".concat(t[i],`\n`).concat(r[i]):r[i]}),t}function xy(e){return new RegExp(\"\\\\b\".concat(e,\"[ \\\\t]+(\\\\w+[ \\\\t]+\\\\w+(\\\\[\\\\w+\\\\])?;)\"),\"g\")}var fj=[[/^(#version[ \\t]+(100|300[ \\t]+es))?[ \\t]*\\n/,`#version 300 es\n`],[/\\btexture(2D|2DProj|Cube)Lod(EXT)?\\(/g,\"textureLod(\"],[/\\btexture(2D|2DProj|Cube)(EXT)?\\(/g,\"texture(\"]],Rst=[...fj,[xy(\"attribute\"),\"in $1\"],[xy(\"varying\"),\"out $1\"]],Dst=[...fj,[xy(\"varying\"),\"in $1\"]],dj=[[/^#version[ \\t]+300[ \\t]+es/,\"#version 100\"],[/\\btexture(2D|2DProj|Cube)Lod\\(/g,\"texture$1LodEXT(\"],[/\\btexture\\(/g,\"texture2D(\"],[/\\btextureLod\\(/g,\"texture2DLodEXT(\"]],Ost=[...dj,[xy(\"in\"),\"attribute $1\"],[xy(\"out\"),\"varying $1\"]],Bst=[...dj,[xy(\"in\"),\"varying $1\"]],vR=\"gl_FragColor\",xR=/\\bout[ \\t]+vec4[ \\t]+(\\w+)[ \\t]*;\\n?/,Fst=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/;function bR(e,t,r){switch(t){case 300:return r?dE(e,Rst):zst(e);case 100:return r?dE(e,Ost):Nst(e);default:throw new Error(\"unknown GLSL version \".concat(t))}}function dE(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function zst(e){e=dE(e,Dst);let t=e.match(xR);if(t){let r=t[1];e=e.replace(new RegExp(\"\\\\b\".concat(vR,\"\\\\b\"),\"g\"),r)}else{let r=\"fragmentColor\";e=e.replace(Fst,i=>\"out vec4 \".concat(r,`;\n`).concat(i)).replace(new RegExp(\"\\\\b\".concat(vR,\"\\\\b\"),\"g\"),r)}return e}function Nst(e){e=dE(e,Bst);let t=e.match(xR);if(t){let r=t[1];e=e.replace(xR,\"\").replace(new RegExp(\"\\\\b\".concat(r,\"\\\\b\"),\"g\"),vR)}return e}var Ust=`\n\n`.concat(hb,`\n\n`),Aj={[K0]:\"vertex\",[cb]:\"fragment\"},Vst=`precision highp float;\n\n`;function wR(e,t){let{vs:r,fs:i}=t,s=rj(t.modules||[]);return{gl:e,vs:pj(e,Object.assign({},t,{source:r,type:K0,modules:s})),fs:pj(e,Object.assign({},t,{source:i,type:cb,modules:s})),getUniforms:jst(s)}}function pj(e,t){let{id:r,source:i,type:s,modules:n,defines:o={},hookFunctions:c=[],inject:f={},transpileToGLSL100:_=!1,prologue:w=!0,log:C}=t;Qs(typeof i==\"string\",\"shader source must be a string\");let R=s===K0,N=i.split(`\n`),j=100,Y=\"\",rt=i;N[0].indexOf(\"#version \")===0?(j=300,Y=N[0],rt=N.slice(1).join(`\n`)):Y=\"#version \".concat(j);let $={};n.forEach(Kt=>{Object.assign($,Kt.getDefines())}),Object.assign($,o);let K=w?\"\".concat(Y,`\n`).concat(Wst({id:r,source:i,type:s}),`\n`).concat(Gst({type:s}),`\n`).concat(oj(e),`\n`).concat(aj(e,j,!R),`\n`).concat(Hst($),`\n`).concat(R?\"\":Vst,`\n`):\"\".concat(Y,`\n`),tt=Zst(c),ut={},Pt={},Ot={};for(let Kt in f){let Zt=typeof f[Kt]==\"string\"?{injection:f[Kt],order:0}:f[Kt],le=Kt.match(/^(v|f)s:(#)?([\\w-]+)$/);if(le){let ue=le[2],Ge=le[3];ue?Ge===\"decl\"?Pt[Kt]=[Zt]:Ot[Kt]=[Zt]:ut[Kt]=[Zt]}else Ot[Kt]=[Zt]}for(let Kt of n){C&&Kt.checkDeprecations(rt,C);let Zt=Kt.getModuleSource(s,j);K+=Zt;let le=Kt.injections[s];for(let ue in le){let Ge=ue.match(/^(v|f)s:#([\\w-]+)$/);if(Ge){let er=Ge[2]===\"decl\"?Pt:Ot;er[ue]=er[ue]||[],er[ue].push(le[ue])}else ut[ue]=ut[ue]||[],ut[ue].push(le[ue])}}return K+=Ust,K=fE(K,s,Pt),K+=qst(tt[s],ut),K+=rt,K=fE(K,s,Ot),K=bR(K,_?100:j,R),K}function jst(e){return function(r){let i={};for(let s of e){let n=s.getUniforms(r,i);Object.assign(i,n)}return i}}function Gst(e){let{type:t}=e;return`\n#define SHADER_TYPE_`.concat(Aj[t].toUpperCase(),`\n`)}function Wst(e){let{id:t,source:r,type:i}=e;return t&&typeof t==\"string\"&&r.indexOf(\"SHADER_NAME\")===-1?`\n#define SHADER_NAME `.concat(t,\"_\").concat(Aj[i],`\n\n`):\"\"}function Hst(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r=\"\";for(let i in e){t===0&&(r+=`\n// APPLICATION DEFINES\n`),t++;let s=e[i];(s||Number.isFinite(s))&&(r+=\"#define \".concat(i.toUpperCase(),\" \").concat(e[i],`\n`))}return t===0&&(r+=`\n`),r}function qst(e,t){let r=\"\";for(let i in e){let s=e[i];if(r+=\"void \".concat(s.signature,` {\n`),s.header&&(r+=\" \".concat(s.header)),t[i]){let n=t[i];n.sort((o,c)=>o.order-c.order);for(let o of n)r+=\" \".concat(o.injection,`\n`)}s.footer&&(r+=\" \".concat(s.footer)),r+=`}\n`}return r}function Zst(e){let t={vs:{},fs:{}};return e.forEach(r=>{let i;typeof r!=\"string\"?(i=r,r=i.hook):i={},r=r.trim();let[s,n]=r.split(\":\"),o=r.replace(/\\(.+/,\"\");t[s][o]=Object.assign(i,{signature:n})}),t}var Yst=\"void main() {gl_FragColor = vec4(0);}\",mj=`out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}`,Qst=`#version 300 es\n`.concat(mj);function pE(e,t){t=Array.isArray(t)?t:[t];let r=e.replace(/^\\s+/,\"\").split(/\\s+/),[i,s,n]=r;if(!t.includes(i)||!s||!n)return null;let o=n.split(\";\")[0];return{qualifier:i,type:s,name:o}}function fb(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{version:t=100,input:r,inputType:i,output:s}=e;if(!r)return t===300?Qst:t>300?\"#version \".concat(t,`\n`).concat(mj):Yst;let n=gj(r,i);return t>=300?\"#version \".concat(t,\" \").concat(t===300?\"es\":\"\",`\nin `).concat(i,\" \").concat(r,`;\nout vec4 `).concat(s,`;\nvoid main() {\n `).concat(s,\" = \").concat(n,`;\n}`):\"varying \".concat(i,\" \").concat(r,`;\nvoid main() {\n gl_FragColor = `).concat(n,`;\n}`)}function SR(e){switch(e){case\"float\":return\"x\";case\"vec2\":return\"xy\";case\"vec3\":return\"xyz\";case\"vec4\":return\"xyzw\";default:return Qs(!1),null}}function TR(e){switch(e){case\"float\":return 1;case\"vec2\":return 2;case\"vec3\":return 3;case\"vec4\":return 4;default:return Qs(!1),null}}function gj(e,t){switch(t){case\"float\":return\"vec4(\".concat(e,\", 0.0, 0.0, 1.0)\");case\"vec2\":return\"vec4(\".concat(e,\", 0.0, 1.0)\");case\"vec3\":return\"vec4(\".concat(e,\", 1.0)\");case\"vec4\":return e;default:return Qs(!1),null}}var $st=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\nconst float TWO_PI = 6.2831854820251465;\nconst float PI_2 = 1.5707963705062866;\nconst float PI_16 = 0.1963495463132858;\n\nconst float SIN_TABLE_0 = 0.19509032368659973;\nconst float SIN_TABLE_1 = 0.3826834261417389;\nconst float SIN_TABLE_2 = 0.5555702447891235;\nconst float SIN_TABLE_3 = 0.7071067690849304;\n\nconst float COS_TABLE_0 = 0.9807852506637573;\nconst float COS_TABLE_1 = 0.9238795042037964;\nconst float COS_TABLE_2 = 0.8314695954322815;\nconst float COS_TABLE_3 = 0.7071067690849304;\n\nconst float INVERSE_FACTORIAL_3 = 1.666666716337204e-01;\nconst float INVERSE_FACTORIAL_5 = 8.333333767950535e-03;\nconst float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04;\nconst float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06;\n\nfloat sin_taylor_fp32(float a) {\n float r, s, t, x;\n\n if (a == 0.0) {\n return 0.0;\n }\n\n x = -a * a;\n s = a;\n r = a;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_3;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_5;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_7;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_9;\n s = s + t;\n\n return s;\n}\n\nvoid sincos_taylor_fp32(float a, out float sin_t, out float cos_t) {\n if (a == 0.0) {\n sin_t = 0.0;\n cos_t = 1.0;\n }\n sin_t = sin_taylor_fp32(a);\n cos_t = sqrt(1.0 - sin_t * sin_t);\n}\n\nfloat tan_taylor_fp32(float a) {\n float sin_a;\n float cos_a;\n\n if (a == 0.0) {\n return 0.0;\n }\n float z = floor(a / TWO_PI);\n float r = a - TWO_PI * z;\n\n float t;\n float q = floor(r / PI_2 + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return 1.0 / 0.0;\n }\n\n t = r - PI_2 * q;\n\n q = floor(t / PI_16 + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return 1.0 / 0.0;\n } else {\n t = t - PI_16 * q;\n }\n\n float u = 0.0;\n float v = 0.0;\n\n float sin_t, cos_t;\n float s, c;\n sincos_taylor_fp32(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0;\n v = SIN_TABLE_0;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1;\n v = SIN_TABLE_1;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2;\n v = SIN_TABLE_2;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3;\n v = SIN_TABLE_3;\n }\n if (k > 0) {\n s = u * sin_t + v * cos_t;\n c = u * cos_t - v * sin_t;\n } else {\n s = u * sin_t - v * cos_t;\n c = u * cos_t + v * sin_t;\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return sin_a / cos_a;\n}\n#endif\n\nfloat tan_fp32(float a) {\n#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\n return tan_taylor_fp32(a);\n#else\n return tan(a);\n#endif\n}\n`,AE={name:\"fp32\",vs:$st,fs:null};function Oh(e,t){if(!e)throw new Error(\"math.gl assertion \".concat(t))}var NLt=1/Math.PI*180,ULt=1/180*Math.PI,$s={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function MR(e,{precision:t=$s.precision}={}){return e=Xst(e),\"\".concat(parseFloat(e.toPrecision(t)))}function Bh(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ml(e,t,r){return Jst(e,i=>Math.max(t,Math.min(r,i)))}function tc(e,t,r){return Bh(e)?e.map((i,s)=>tc(i,t[s],r)):r*t+(1-r)*e}function To(e,t,r){let i=$s.EPSILON;r&&($s.EPSILON=r);try{if(e===t)return!0;if(Bh(e)&&Bh(t)){if(e.length!==t.length)return!1;for(let s=0;s0?\", \":\"\")+MR(this[i],t);return\"\".concat(t.printTypes?this.constructor.name:\"\",\"[\").concat(r,\"]\")}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r=0&&t=0&&t0&&(n=1/Math.sqrt(n)),e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function CR(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ty(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[0],c=r[1],f=r[2];return e[0]=s*f-n*c,e[1]=n*o-i*f,e[2]=i*c-s*o,e}function Tj(e,t,r,i){var s=t[0],n=t[1],o=t[2];return e[0]=s+i*(r[0]-s),e[1]=n+i*(r[1]-n),e[2]=o+i*(r[2]-o),e}function My(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[3]*i+r[7]*s+r[11]*n+r[15];return o=o||1,e[0]=(r[0]*i+r[4]*s+r[8]*n+r[12])/o,e[1]=(r[1]*i+r[5]*s+r[9]*n+r[13])/o,e[2]=(r[2]*i+r[6]*s+r[10]*n+r[14])/o,e}function vE(e,t,r){var i=t[0],s=t[1],n=t[2];return e[0]=i*r[0]+s*r[3]+n*r[6],e[1]=i*r[1]+s*r[4]+n*r[7],e[2]=i*r[2]+s*r[5]+n*r[8],e}function xE(e,t,r){var i=r[0],s=r[1],n=r[2],o=r[3],c=t[0],f=t[1],_=t[2],w=s*_-n*f,C=n*c-i*_,R=i*f-s*c,N=s*R-n*C,j=n*w-i*R,Y=i*C-s*w,rt=o*2;return w*=rt,C*=rt,R*=rt,N*=2,j*=2,Y*=2,e[0]=c+w+N,e[1]=f+C+j,e[2]=_+R+Y,e}function Mj(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[0],n[1]=s[1]*Math.cos(i)-s[2]*Math.sin(i),n[2]=s[1]*Math.sin(i)+s[2]*Math.cos(i),e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Ej(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[2]*Math.sin(i)+s[0]*Math.cos(i),n[1]=s[1],n[2]=s[2]*Math.cos(i)-s[0]*Math.sin(i),e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Pj(e,t,r,i){var s=[],n=[];return s[0]=t[0]-r[0],s[1]=t[1]-r[1],s[2]=t[2]-r[2],n[0]=s[0]*Math.cos(i)-s[1]*Math.sin(i),n[1]=s[0]*Math.sin(i)+s[1]*Math.cos(i),n[2]=s[2],e[0]=n[0]+r[0],e[1]=n[1]+r[1],e[2]=n[2]+r[2],e}function Ij(e,t){var r=e[0],i=e[1],s=e[2],n=t[0],o=t[1],c=t[2],f=Math.sqrt(r*r+i*i+s*s),_=Math.sqrt(n*n+o*o+c*c),w=f*_,C=w&&CR(e,t)/w;return Math.acos(Math.min(Math.max(C,-1),1))}var bE=not;var wE=iot,SE=sot,JLt=function(){var e=PR();return function(t,r,i,s,n,o){var c,f;for(r||(r=3),i||(i=0),s?f=Math.min(s*r+i,t.length):f=t.length,c=i;c0?this.copy([t,...r]):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this.check()}identity(){return this.copy(oot)}fromObject(t){return this.check()}fromQuaternion(t){return Bj(this,t),this.check()}set(t,r,i,s,n,o,c,f,_){return this[0]=t,this[1]=r,this[2]=i,this[3]=s,this[4]=n,this[5]=o,this[6]=c,this[7]=f,this[8]=_,this.check()}setRowMajor(t,r,i,s,n,o,c,f,_){return this[0]=t,this[1]=s,this[2]=c,this[3]=r,this[4]=n,this[5]=f,this[6]=i,this[7]=o,this[8]=_,this.check()}determinant(){return Rj(this)}transpose(){return Lj(this,this),this.check()}invert(){return kj(this,this),this.check()}multiplyLeft(t){return kR(this,t,this),this.check()}multiplyRight(t){return kR(this,this,t),this.check()}rotate(t){return Oj(this,this,t),this.check()}scale(t){return Array.isArray(t)?RR(this,this,t):RR(this,this,[t,t]),this.check()}translate(t){return Dj(this,this,t),this.check()}transform(t,r){let i;switch(t.length){case 2:i=_j(r||[-0,-0],t,this);break;case 3:i=vE(r||[-0,-0,-0],t,this);break;case 4:i=yE(r||[-0,-0,-0,-0],t,this);break;default:throw new Error(\"Illegal vector\")}return qA(i,t.length),i}transformVector(t,r){return this.transform(t,r)}transformVector2(t,r){return this.transform(t,r)}transformVector3(t,r){return this.transform(t,r)}},EE,PE;function aot(){return EE||(EE=new rs([0,0,0,0,0,0,0,0,0]),Object.freeze(EE)),EE}function lot(){return PE||(PE=new rs,Object.freeze(PE)),PE}function cot(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zj(e,t){if(e===t){var r=t[1],i=t[2],s=t[3],n=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=i,e[9]=n,e[11]=t[14],e[12]=s,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function pb(e,t){var r=t[0],i=t[1],s=t[2],n=t[3],o=t[4],c=t[5],f=t[6],_=t[7],w=t[8],C=t[9],R=t[10],N=t[11],j=t[12],Y=t[13],rt=t[14],$=t[15],K=r*c-i*o,tt=r*f-s*o,ut=r*_-n*o,Pt=i*f-s*c,Ot=i*_-n*c,Kt=s*_-n*f,Zt=w*Y-C*j,le=w*rt-R*j,ue=w*$-N*j,Ge=C*rt-R*Y,tr=C*$-N*Y,er=R*$-N*rt,Lr=K*er-tt*tr+ut*Ge+Pt*ue-Ot*le+Kt*Zt;return Lr?(Lr=1/Lr,e[0]=(c*er-f*tr+_*Ge)*Lr,e[1]=(s*tr-i*er-n*Ge)*Lr,e[2]=(Y*Kt-rt*Ot+$*Pt)*Lr,e[3]=(R*Ot-C*Kt-N*Pt)*Lr,e[4]=(f*ue-o*er-_*le)*Lr,e[5]=(r*er-s*ue+n*le)*Lr,e[6]=(rt*ut-j*Kt-$*tt)*Lr,e[7]=(w*Kt-R*ut+N*tt)*Lr,e[8]=(o*tr-c*ue+_*Zt)*Lr,e[9]=(i*ue-r*tr-n*Zt)*Lr,e[10]=(j*Ot-Y*ut+$*K)*Lr,e[11]=(C*ut-w*Ot-N*K)*Lr,e[12]=(c*le-o*Ge-f*Zt)*Lr,e[13]=(r*Ge-i*le+s*Zt)*Lr,e[14]=(Y*tt-j*Pt-rt*K)*Lr,e[15]=(w*Pt-C*tt+R*K)*Lr,e):null}function Nj(e){var t=e[0],r=e[1],i=e[2],s=e[3],n=e[4],o=e[5],c=e[6],f=e[7],_=e[8],w=e[9],C=e[10],R=e[11],N=e[12],j=e[13],Y=e[14],rt=e[15],$=t*o-r*n,K=t*c-i*n,tt=t*f-s*n,ut=r*c-i*o,Pt=r*f-s*o,Ot=i*f-s*c,Kt=_*j-w*N,Zt=_*Y-C*N,le=_*rt-R*N,ue=w*Y-C*j,Ge=w*rt-R*j,tr=C*rt-R*Y;return $*tr-K*Ge+tt*ue+ut*le-Pt*Zt+Ot*Kt}function Wf(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3],c=t[4],f=t[5],_=t[6],w=t[7],C=t[8],R=t[9],N=t[10],j=t[11],Y=t[12],rt=t[13],$=t[14],K=t[15],tt=r[0],ut=r[1],Pt=r[2],Ot=r[3];return e[0]=tt*i+ut*c+Pt*C+Ot*Y,e[1]=tt*s+ut*f+Pt*R+Ot*rt,e[2]=tt*n+ut*_+Pt*N+Ot*$,e[3]=tt*o+ut*w+Pt*j+Ot*K,tt=r[4],ut=r[5],Pt=r[6],Ot=r[7],e[4]=tt*i+ut*c+Pt*C+Ot*Y,e[5]=tt*s+ut*f+Pt*R+Ot*rt,e[6]=tt*n+ut*_+Pt*N+Ot*$,e[7]=tt*o+ut*w+Pt*j+Ot*K,tt=r[8],ut=r[9],Pt=r[10],Ot=r[11],e[8]=tt*i+ut*c+Pt*C+Ot*Y,e[9]=tt*s+ut*f+Pt*R+Ot*rt,e[10]=tt*n+ut*_+Pt*N+Ot*$,e[11]=tt*o+ut*w+Pt*j+Ot*K,tt=r[12],ut=r[13],Pt=r[14],Ot=r[15],e[12]=tt*i+ut*c+Pt*C+Ot*Y,e[13]=tt*s+ut*f+Pt*R+Ot*rt,e[14]=tt*n+ut*_+Pt*N+Ot*$,e[15]=tt*o+ut*w+Pt*j+Ot*K,e}function eg(e,t,r){var i=r[0],s=r[1],n=r[2],o,c,f,_,w,C,R,N,j,Y,rt,$;return t===e?(e[12]=t[0]*i+t[4]*s+t[8]*n+t[12],e[13]=t[1]*i+t[5]*s+t[9]*n+t[13],e[14]=t[2]*i+t[6]*s+t[10]*n+t[14],e[15]=t[3]*i+t[7]*s+t[11]*n+t[15]):(o=t[0],c=t[1],f=t[2],_=t[3],w=t[4],C=t[5],R=t[6],N=t[7],j=t[8],Y=t[9],rt=t[10],$=t[11],e[0]=o,e[1]=c,e[2]=f,e[3]=_,e[4]=w,e[5]=C,e[6]=R,e[7]=N,e[8]=j,e[9]=Y,e[10]=rt,e[11]=$,e[12]=o*i+w*s+j*n+t[12],e[13]=c*i+C*s+Y*n+t[13],e[14]=f*i+R*s+rt*n+t[14],e[15]=_*i+N*s+$*n+t[15]),e}function Ey(e,t,r){var i=r[0],s=r[1],n=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Uj(e,t,r,i){var s=i[0],n=i[1],o=i[2],c=Math.hypot(s,n,o),f,_,w,C,R,N,j,Y,rt,$,K,tt,ut,Pt,Ot,Kt,Zt,le,ue,Ge,tr,er,Lr,zi;return c0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=i*o,e[2]=s*o,e[3]=n*o,e}function Xj(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Kj(e,t,r,i){var s=t[0],n=t[1],o=t[2],c=t[3];return e[0]=s+i*(r[0]-s),e[1]=n+i*(r[1]-n),e[2]=o+i*(r[2]-o),e[3]=c+i*(r[3]-c),e}function zh(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3];return e[0]=r[0]*i+r[4]*s+r[8]*n+r[12]*o,e[1]=r[1]*i+r[5]*s+r[9]*n+r[13]*o,e[2]=r[2]*i+r[6]*s+r[10]*n+r[14]*o,e[3]=r[3]*i+r[7]*s+r[11]*n+r[15]*o,e}function Jj(e,t,r){var i=t[0],s=t[1],n=t[2],o=r[0],c=r[1],f=r[2],_=r[3],w=_*i+c*n-f*s,C=_*s+f*i-o*n,R=_*n+o*s-c*i,N=-o*i-c*s-f*n;return e[0]=w*_+N*-o+C*-f-R*-c,e[1]=C*_+N*-c+R*-o-w*-f,e[2]=R*_+N*-f+w*-c-C*-o,e[3]=t[3],e}var _kt=function(){var e=fot();return function(t,r,i,s,n,o){var c,f;for(r||(r=4),i||(i=0),s?f=Math.min(s*r+i,t.length):f=t.length,c=i;cMath.PI*2)throw Error(\"expected radians\")}function _ot(e,t,r,i,s,n){let o=2*n/(r-t),c=2*n/(s-i),f=(r+t)/(r-t),_=(s+i)/(s-i),w=-1,C=-1,R=-2*n;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=f,e[9]=_,e[10]=w,e[11]=C,e[12]=0,e[13]=0,e[14]=R,e[15]=0,e}function e7(){var e=new ya(4);return ya!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function r7(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function NR(e,t,r){r=r*.5;var i=Math.sin(r);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(r),e}function UR(e,t,r){var i=t[0],s=t[1],n=t[2],o=t[3],c=r[0],f=r[1],_=r[2],w=r[3];return e[0]=i*w+o*c+s*_-n*f,e[1]=s*w+o*f+n*c-i*_,e[2]=n*w+o*_+i*f-s*c,e[3]=o*w-i*c-s*f-n*_,e}function i7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f+o*c,e[1]=s*f+n*c,e[2]=n*f-s*c,e[3]=o*f-i*c,e}function n7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f-n*c,e[1]=s*f+o*c,e[2]=n*f+i*c,e[3]=o*f-s*c,e}function s7(e,t,r){r*=.5;var i=t[0],s=t[1],n=t[2],o=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=i*f+s*c,e[1]=s*f-i*c,e[2]=n*f+o*c,e[3]=o*f-n*c,e}function o7(e,t){var r=t[0],i=t[1],s=t[2];return e[0]=r,e[1]=i,e[2]=s,e[3]=Math.sqrt(Math.abs(1-r*r-i*i-s*s)),e}function mb(e,t,r,i){var s=t[0],n=t[1],o=t[2],c=t[3],f=r[0],_=r[1],w=r[2],C=r[3],R,N,j,Y,rt;return N=s*f+n*_+o*w+c*C,N<0&&(N=-N,f=-f,_=-_,w=-w,C=-C),1-N>Fh?(R=Math.acos(N),j=Math.sin(R),Y=Math.sin((1-i)*R)/j,rt=Math.sin(i*R)/j):(Y=1-i,rt=i),e[0]=Y*s+rt*f,e[1]=Y*n+rt*_,e[2]=Y*o+rt*w,e[3]=Y*c+rt*C,e}function a7(e,t){var r=t[0],i=t[1],s=t[2],n=t[3],o=r*r+i*i+s*s+n*n,c=o?1/o:0;return e[0]=-r*c,e[1]=-i*c,e[2]=-s*c,e[3]=n*c,e}function l7(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function VR(e,t){var r=t[0]+t[4]+t[8],i;if(r>0)i=Math.sqrt(r+1),e[3]=.5*i,i=.5/i,e[0]=(t[5]-t[7])*i,e[1]=(t[6]-t[2])*i,e[2]=(t[1]-t[3])*i;else{var s=0;t[4]>t[0]&&(s=1),t[8]>t[s*3+s]&&(s=2);var n=(s+1)%3,o=(s+2)%3;i=Math.sqrt(t[s*3+s]-t[n*3+n]-t[o*3+o]+1),e[s]=.5*i,i=.5/i,e[3]=(t[n*3+o]-t[o*3+n])*i,e[n]=(t[n*3+s]+t[s*3+n])*i,e[o]=(t[o*3+s]+t[s*3+o])*i}return e}var c7=Zj;var u7=Py,h7=Xj,f7=Kj,d7=Yj;var p7=Qj;var A7=$j;var m7=function(){var e=PR(),t=IR(1,0,0),r=IR(0,1,0);return function(i,s,n){var o=CR(s,n);return o<-.999999?(Ty(e,t,s),wE(e)<1e-6&&Ty(e,r,s),Sj(e,e),NR(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(Ty(e,s,n),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,A7(i,i))}}(),Ikt=function(){var e=e7(),t=e7();return function(r,i,s,n,o,c){return mb(e,i,o,c),mb(t,s,n,c),mb(r,e,t,2*c*(1-c)),r}}(),Ckt=function(){var e=Cj();return function(t,r,i,s){return e[0]=i[0],e[3]=i[1],e[6]=i[2],e[1]=s[0],e[4]=s[1],e[7]=s[2],e[2]=-r[0],e[5]=-r[1],e[8]=-r[2],A7(t,VR(t,e))}}();var vot=[0,0,0,1],rg=class extends rp{constructor(t=0,r=0,i=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,r,i,s)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,r,i,s){return this[0]=t,this[1]=r,this[2]=i,this[3]=s,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return VR(this,t),this.check()}fromAxisRotation(t,r){return NR(this,t,r),this.check()}identity(){return r7(this),this.check()}setAxisAngle(t,r){return this.fromAxisRotation(t,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=Hi(t)}get y(){return this[1]}set y(t){this[1]=Hi(t)}get z(){return this[2]}set z(t){this[2]=Hi(t)}get w(){return this[3]}set w(t){this[3]=Hi(t)}len(){return d7(this)}lengthSquared(){return p7(this)}dot(t){return h7(this,t)}rotationTo(t,r){return m7(this,t,r),this.check()}add(t){return c7(this,this,t),this.check()}calculateW(){return o7(this,this),this.check()}conjugate(){return l7(this,this),this.check()}invert(){return a7(this,this),this.check()}lerp(t,r,i){return i===void 0?this.lerp(this,t,r):(f7(this,t,r,i),this.check())}multiplyRight(t){return UR(this,this,t),this.check()}multiplyLeft(t){return UR(this,t,this),this.check()}normalize(){let t=this.len(),r=t>0?1/t:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,t===0&&(this[3]=1),this.check()}rotateX(t){return i7(this,this,t),this.check()}rotateY(t){return n7(this,this,t),this.check()}rotateZ(t){return s7(this,this,t),this.check()}scale(t){return u7(this,this,t),this.check()}slerp(t,r,i){let s,n,o;switch(arguments.length){case 1:({start:s=vot,target:n,ratio:o}=t);break;case 2:s=this,n=t,o=r;break;default:s=t,n=r,o=i}return mb(this,s,n,o),this.check()}transformVector4(t,r=new db){return Jj(r,t,this),qA(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,r){return this.setAxisAngle(t,r)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var RE={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2};var jR=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\n\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nuniform AmbientLight lighting_uAmbientLight;\nuniform PointLight lighting_uPointLight[MAX_LIGHTS];\nuniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];\nuniform int lighting_uPointLightCount;\nuniform int lighting_uDirectionalLightCount;\n\nuniform bool lighting_uEnabled;\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\n#endif\n`;var xot={lightSources:{}};function GR(){let{color:e=[0,0,0],intensity:t=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.map(r=>r*t/255)}function bot(e){let{ambientLight:t,pointLights:r=[],directionalLights:i=[]}=e,s={};return t?s[\"lighting_uAmbientLight.color\"]=GR(t):s[\"lighting_uAmbientLight.color\"]=[0,0,0],r.forEach((n,o)=>{s[\"lighting_uPointLight[\".concat(o,\"].color\")]=GR(n),s[\"lighting_uPointLight[\".concat(o,\"].position\")]=n.position,s[\"lighting_uPointLight[\".concat(o,\"].attenuation\")]=n.attenuation||[1,0,0]}),s.lighting_uPointLightCount=r.length,i.forEach((n,o)=>{s[\"lighting_uDirectionalLight[\".concat(o,\"].color\")]=GR(n),s[\"lighting_uDirectionalLight[\".concat(o,\"].direction\")]=n.direction}),s.lighting_uDirectionalLightCount=i.length,s}function g7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:xot;if(\"lightSources\"in e){let{ambientLight:t,pointLights:r,directionalLights:i}=e.lightSources||{};return t||r&&r.length>0||i&&i.length>0?Object.assign({},bot({ambientLight:t,pointLights:r,directionalLights:i}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if(\"lights\"in e){let t={pointLights:[],directionalLights:[]};for(let r of e.lights||[])switch(r.type){case\"ambient\":t.ambientLight=r;break;case\"directional\":t.directionalLights.push(r);break;case\"point\":t.pointLights.push(r);break;default:}return g7({lightSources:t})}return{}}var WR={name:\"lights\",vs:jR,fs:jR,getUniforms:g7,defines:{MAX_LIGHTS:3}};var wot=new Uint8Array([0,255,255,255]),Sot={pickingSelectedColor:null,pickingHighlightColor:wot,pickingActive:!1,pickingAttribute:!1};function Tot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Sot,t={};if(e.pickingSelectedColor!==void 0)if(!e.pickingSelectedColor)t.picking_uSelectedColorValid=0;else{let r=e.pickingSelectedColor.slice(0,3);t.picking_uSelectedColorValid=1,t.picking_uSelectedColor=r}if(e.pickingHighlightColor){let r=Array.from(e.pickingHighlightColor,i=>i/255);Number.isFinite(r[3])||(r[3]=1),t.picking_uHighlightColor=r}return e.pickingActive!==void 0&&(t.picking_uActive=!!e.pickingActive,t.picking_uAttribute=!!e.pickingAttribute),t}var Mot=`uniform bool picking_uActive;\nuniform bool picking_uAttribute;\nuniform vec3 picking_uSelectedColor;\nuniform bool picking_uSelectedColorValid;\n\nout vec4 picking_vRGBcolor_Avalid;\n\nconst float COLOR_SCALE = 1. / 255.;\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.001;\n}\n\nbool isVertexPicked(vec3 vertexColor) {\n return\n picking_uSelectedColorValid &&\n !picking_isColorValid(abs(vertexColor - picking_uSelectedColor));\n}\n\nvoid picking_setPickingColor(vec3 pickingColor) {\n if (picking_uActive) {\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = pickingColor * COLOR_SCALE;\n }\n } else {\n picking_vRGBcolor_Avalid.a = float(isVertexPicked(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\nvoid picking_setPickingAttribute(vec2 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\nvoid picking_setPickingAttribute(vec3 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n`,Eot=`uniform bool picking_uActive;\nuniform vec3 picking_uSelectedColor;\nuniform vec4 picking_uHighlightColor;\n\nin vec4 picking_vRGBcolor_Avalid;\nvec4 picking_filterHighlightColor(vec4 color) {\n if (picking_uActive) {\n return color;\n }\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n float highLightAlpha = picking_uHighlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking_uHighlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\nvec4 picking_filterPickingColor(vec4 color) {\n if (picking_uActive) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\nvec4 picking_filterColor(vec4 color) {\n vec4 highightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highightColor);\n}\n\n`,DE={name:\"picking\",vs:Mot,fs:Eot,getUniforms:Tot};var HR=`\nuniform float lighting_uAmbient;\nuniform float lighting_uDiffuse;\nuniform float lighting_uShininess;\nuniform vec3 lighting_uSpecularColor;\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) {\n vec3 halfway_direction = normalize(light_direction + view_direction);\n float lambertian = dot(light_direction, normal_worldspace);\n float specular = 0.0;\n if (lambertian > 0.0) {\n float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, lighting_uShininess);\n }\n lambertian = max(lambertian, 0.0);\n return (lambertian * lighting_uDiffuse * surfaceColor + specular * lighting_uSpecularColor) * color;\n}\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = surfaceColor;\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n lightColor = lighting_uAmbient * surfaceColor * lighting_uAmbientLight.color;\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n\nvec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = vec3(0, 0, 0);\n vec3 surfaceColor = vec3(0, 0, 0);\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n`;var Pot={};function Iot(e){let{ambient:t=.35,diffuse:r=.6,shininess:i=32,specularColor:s=[30,30,30]}=e;return{lighting_uAmbient:t,lighting_uDiffuse:r,lighting_uShininess:i,lighting_uSpecularColor:s.map(n=>n/255)}}function _7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Pot;if(!(\"material\"in e))return{};let{material:t}=e;return t?Iot(t):{lighting_uEnabled:!1}}var YA={name:\"gouraud-lighting\",dependencies:[WR],vs:HR,defines:{LIGHTING_VERTEX:1},getUniforms:_7},Cy={name:\"phong-lighting\",dependencies:[WR],fs:HR,defines:{LIGHTING_FRAGMENT:1},getUniforms:_7};var Cot=`attribute float transform_elementID;\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n`,qR={name:\"transform\",vs:Cot,fs:null};var Nh=class e{static getDefaultProgramManager(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}constructor(t){this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule(t){this._defaultModules.find(r=>r.name===t.name)||this._defaultModules.push(t),this.stateHash++}removeDefaultModule(t){let r=typeof t==\"string\"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r),this.stateHash++}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t),this.stateHash++}get(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{vs:r=\"\",fs:i=\"\",defines:s={},inject:n={},varyings:o=[],bufferMode:c=35981,transpileToGLSL100:f=!1}=t,_=this._getModuleList(t.modules),w=this._getHash(r),C=this._getHash(i),R=_.map(tt=>this._getHash(tt.name)).sort(),N=o.map(tt=>this._getHash(tt)),j=Object.keys(s).sort(),Y=Object.keys(n).sort(),rt=[],$=[];for(let tt of j)rt.push(this._getHash(tt)),rt.push(this._getHash(s[tt]));for(let tt of Y)$.push(this._getHash(tt)),$.push(this._getHash(n[tt]));let K=\"\".concat(w,\"/\").concat(C,\"D\").concat(rt.join(\"/\"),\"M\").concat(R.join(\"/\"),\"I\").concat($.join(\"/\"),\"V\").concat(N.join(\"/\"),\"H\").concat(this.stateHash,\"B\").concat(c).concat(f?\"T\":\"\");if(!this._programCache[K]){let tt=wR(this.gl,{vs:r,fs:i,modules:_,inject:n,defines:s,hookFunctions:this._hookFunctions,transpileToGLSL100:f});this._programCache[K]=new tp(this.gl,{hash:K,vs:tt.vs,fs:tt.fs,varyings:o,bufferMode:c}),this._getUniforms[K]=tt.getUniforms||(ut=>{}),this._useCounts[K]=0}return this._useCounts[K]++,this._programCache[K]}getUniforms(t){return this._getUniforms[t.hash]||null}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._programCache[r].delete(),delete this._programCache[r],delete this._getUniforms[r],delete this._useCounts[r])}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},s=0;for(let n=0,o=this._defaultModules.length;n{},Bot={},Sn=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{id:i=Jo(\"model\")}=r;ye(Xd(t)),this.id=i,this.gl=t,this.id=r.id||Jo(\"Model\"),this.lastLogTime=0,this.animated=!1,this.initialize(r)}initialize(t){this.props={},this.programManager=t.programManager||Nh.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;let{program:r=null,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(t.moduleSettings))),this.drawMode=t.drawMode!==void 0?t.drawMode:4,this.vertexCount=t.vertexCount||0,this.geometryBuffers={},this.isInstanced=t.isInstanced||t.instanced||t.instanceCount>0,this._setModelProps(t),this.geometry={},ye(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),Oot)}setProps(t){this._setModelProps(t)}delete(){for(let t in this._attributes)this._attributes[t]!==this.attributes[t]&&this._attributes[t].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram(t){let{program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:s,modules:n,defines:o,inject:c,varyings:f,bufferMode:_,transpileToGLSL100:w},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode(t){return this.drawMode=t,this}setVertexCount(t){return ye(Number.isFinite(t)),this.vertexCount=t,this}setInstanceCount(t){return ye(Number.isFinite(t)),this.instanceCount=t,this}setGeometry(t){return this.drawMode=t.drawMode,this.vertexCount=t.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=y7(this.gl,t),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(jf(t))return this;let r={};for(let i in t){let s=t[i];r[i]=s.getValue?s.getValue():s}return this.vertexArray.setAttributes(r),this}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,t),this}getModuleUniforms(t){this._checkProgram();let r=this.programManager.getUniforms(this.program);return r?r(t):{}}updateModuleSettings(t){let r=this.getModuleUniforms(t||{});return this.setUniforms(r)}clear(t){return Gf(this.program.gl,t),this}draw(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();let{moduleSettings:r=null,framebuffer:i,uniforms:s={},attributes:n={},transformFeedback:o=this.transformFeedback,parameters:c={},vertexArray:f=this.vertexArray}=t;this.setAttributes(n),this.updateModuleSettings(r),this.setUniforms(s);let _;je.priority>=Ly&&(_=this._logDrawCallStart(Ly));let w=this.vertexArray.getDrawParams(),{isIndexed:C=w.isIndexed,indexType:R=w.indexType,indexOffset:N=w.indexOffset,vertexArrayInstanced:j=w.isInstanced}=this.props;j&&!this.isInstanced&&je.warn(\"Found instanced attributes on non-instanced model\",this.id)();let{isInstanced:Y,instanceCount:rt}=this,{onBeforeRender:$=v7,onAfterRender:K=v7}=this.props;$(),this.program.setUniforms(this.uniforms);let tt=this.program.draw(Object.assign(Bot,t,{logPriority:_,uniforms:null,framebuffer:i,parameters:c,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:f,transformFeedback:o,isIndexed:C,indexType:R,isInstanced:Y,instanceCount:rt,offset:C?N:0}));return K(),je.priority>=Ly&&this._logDrawCallEnd(_,f,i),tt}transform(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{discard:r=!0,feedbackBuffers:i,unbindModels:s=[]}=t,{parameters:n}=t;i&&this._setFeedbackBuffers(i),r&&(n=Object.assign({},n,{35977:r})),s.forEach(o=>o.vertexArray.unbindBuffers());try{this.draw(Object.assign({},t,{parameters:n}))}finally{s.forEach(o=>o.vertexArray.bindBuffers())}return this}render(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.warn(\"Model.render() is deprecated. Use Model.setUniforms() and Model.draw()\")(),this.setUniforms(t).draw()}_setModelProps(t){Object.assign(this.props,t),\"uniforms\"in t&&this.setUniforms(t.uniforms),\"pickable\"in t&&(this.pickable=t.pickable),\"instanceCount\"in t&&(this.instanceCount=t.instanceCount),\"geometry\"in t&&this.setGeometry(t.geometry),\"attributes\"in t&&this.setAttributes(t.attributes),\"_feedbackBuffers\"in t&&this._setFeedbackBuffers(t._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:r}=this.programProps;if(r)this._managedProgram=!1;else{let{vs:i,fs:s,modules:n,inject:o,defines:c,varyings:f,bufferMode:_,transpileToGLSL100:w}=this.programProps;r=this.programManager.get({vs:i,fs:s,modules:n,inject:o,defines:c,varyings:f,bufferMode:_,transpileToGLSL100:w}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}ye(r instanceof tp,\"Model needs a program\"),this._programDirty=!1,r!==this.program&&(this.program=r,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new _y(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(let t in this.geometryBuffers){let r=this.geometryBuffers[t][0]||this.geometryBuffers[t];r instanceof Fr&&r.delete()}}_setAnimationProps(t){this.animated&&ye(t,\"Model.draw(): animated uniforms but no animationProps\")}_setFeedbackBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(jf(t))return this;let{gl:r}=this.program;return this.transformFeedback=this.transformFeedback||new ep(r,{program:this.program}),this.transformFeedback.setBuffers(t),this}_logDrawCallStart(t){let r=t>3?0:Dot;if(!(Date.now()-this.lastLogTime>> DRAWING MODEL \".concat(this.id),{collapsed:je.level<=2})(),t}_logDrawCallEnd(t,r,i,s){if(t===void 0)return;let n=fR({vertexArray:r,header:\"\".concat(this.id,\" attributes\"),attributes:this._attributes}),{table:o,unusedTable:c,unusedCount:f}=hE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i)}),{table:_,count:w}=hE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i),undefinedOnly:!0});w>0&&je.log(\"MISSING UNIFORMS\",Object.keys(_))(),f>0&&je.log(\"UNUSED UNIFORMS\",Object.keys(c))();let C=dR(this.vertexArray.configuration);je.table(t,n)(),je.table(t,o)(),je.table(t+1,C)(),s&&s.log({logLevel:Ly,message:\"Rendered to \".concat(s.id)}),je.groupEnd(Ly)()}};var gb=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}setupResources(t){for(let r of this.bindings)this._setupTransformFeedback(r,t)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyings:r}=this;return r.length>0&&(t=Object.assign({},t,{varyings:r})),t}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this.bindings[this.currentIndex],{sourceBuffers:i,transformFeedback:s}=r;return{attributes:Object.assign({},i,t.attributes),transformFeedback:s}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t)}getBuffer(t){let{feedbackBuffers:r}=this.bindings[this.currentIndex],i=t?r[t]:null;return i?i instanceof Fr?i:i.buffer:null}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyingName:r}=t,i=this.getBuffer(r);return i?i.getData():null}delete(){for(let t in this.resources)this.resources[t].delete()}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t),this.varyings=t.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&ye(hr(this.gl))}_getFeedbackBuffers(t){let{sourceBuffers:r={}}=t,i={};if(this.bindings[this.currentIndex]&&Object.assign(i,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(let s in this.feedbackMap){let n=this.feedbackMap[s];s in r&&(i[n]=s)}Object.assign(i,t.feedbackBuffers);for(let s in i){let n=i[s];if(typeof n==\"string\"){let o=r[n],{byteLength:c,usage:f,accessor:_}=o;i[s]=this._createNewBuffer(s,{byteLength:c,usage:f,accessor:_})}}return i}_setupBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r=null}=t;Object.assign(this.feedbackMap,t.feedbackMap);let i=this._getFeedbackBuffers(t);this._updateBindings({sourceBuffers:r,feedbackBuffers:i})}_setupTransformFeedback(t,r){let{model:i}=r,{program:s}=i;t.transformFeedback=new ep(this.gl,{program:s,buffers:t.feedbackBuffers})}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this.feedbackMap){let{sourceBuffers:r,feedbackBuffers:i}=this._swapBuffers(this.bindings[this.currentIndex]),s=this._getNextIndex();this.bindings[s]=this._updateBinding(this.bindings[s],{sourceBuffers:r,feedbackBuffers:i})}}_updateBinding(t,r){return t?(Object.assign(t.sourceBuffers,r.sourceBuffers),Object.assign(t.feedbackBuffers,r.feedbackBuffers),t.transformFeedback&&t.transformFeedback.setBuffers(t.feedbackBuffers),t):{sourceBuffers:Object.assign({},r.sourceBuffers),feedbackBuffers:Object.assign({},r.feedbackBuffers)}}_swapBuffers(t){if(!this.feedbackMap)return null;let r=Object.assign({},t.sourceBuffers),i=Object.assign({},t.feedbackBuffers);for(let s in this.feedbackMap){let n=this.feedbackMap[s];r[s]=t.feedbackBuffers[n],i[n]=t.sourceBuffers[s],ye(i[n]instanceof Fr)}return{sourceBuffers:r,feedbackBuffers:i}}_createNewBuffer(t,r){let i=new Fr(this.gl,r);return this.resources[t]&&this.resources[t].delete(),this.resources[t]=i,i}_getNextIndex(){return(this.currentIndex+1)%2}};var Fot=\"transform_uSampler_\",OE=\"transform_uSize_\",x7=\"transform_position\";function b7(e){let{vs:t,sourceTextureMap:r,targetTextureVarying:i,targetTexture:s}=e,o=Object.keys(r).length,c=null,f={},_=t,w={};if(o>0||i){let C=_.split(`\n`),R=C.slice();if(C.forEach((N,j,Y)=>{if(o>0){let rt=Vot(N,r);if(rt){let{updatedLine:$,inject:K}=rt;R[j]=$,w=vy([w,K]),Object.assign(f,rt.samplerTextureMap),o--}}i&&!c&&(c=Uot(N,i))}),i){ye(s);let N=\"\".concat(OE).concat(i),j=\"uniform vec2 \".concat(N,`;\n`),Y=\" vec2 \".concat(x7,\" = transform_getPos(\").concat(N,`);\n gl_Position = vec4(`).concat(x7,`, 0, 1.);\n`);w=vy([w,{\"vs:#decl\":j,\"vs:#main-start\":Y}])}_=R.join(`\n`)}return{vs:_,targetTextureType:c,inject:w,samplerTextureMap:f}}function w7(e){let{sourceTextureMap:t,targetTextureVarying:r,targetTexture:i}=e,s={},n,o;r&&({width:n,height:o}=i,s[\"\".concat(OE).concat(r)]=[n,o]);for(let c in t)({width:n,height:o}=t[c]),s[\"\".concat(OE).concat(c)]=[n,o];return s}function zot(e){return pE(e,[\"attribute\",\"in\"])}function Not(e){let t=\"\".concat(Fot).concat(e),r=\"\".concat(OE).concat(e),i=\" uniform sampler2D \".concat(t,`;\n uniform vec2 `).concat(r,\";\");return{samplerName:t,sizeName:r,uniformDeclerations:i}}function Uot(e,t){let r=pE(e,[\"varying\",\"out\"]);return r&&r.name===t?r.type:null}function Vot(e,t){let r={},i=zot(e);if(!i)return null;let{type:s,name:n}=i;if(n&&t[n]){let o=\"// \".concat(e,\" => Replaced by Transform with a sampler\"),{samplerName:c,sizeName:f,uniformDeclerations:_}=Not(n),w=SR(s),C=\" \".concat(s,\" \").concat(n,\" = transform_getInput(\").concat(c,\", \").concat(f,\").\").concat(w,`;\n`);return r[c]=n,{updatedLine:o,inject:{\"vs:#decl\":_,\"vs:#main-start\":C},samplerTextureMap:r}}return null}var jot={10241:9728,10240:9728,10242:33071,10243:33071},Got=\"transform_output\",_b=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._processVertexShader(t);return Object.assign({},t,r)}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,sourceTextures:i,framebuffer:s,targetTexture:n}=this.bindings[this.currentIndex],o=Object.assign({},r,t.attributes),c=Object.assign({},t.uniforms),f=Object.assign({},t.parameters),_=t.discard;if(this.hasSourceTextures||this.hasTargetTexture){o.transform_elementID=this.elementIDBuffer;for(let C in this.samplerTextureMap){let R=this.samplerTextureMap[C];c[C]=i[R]}this._setSourceTextureParameters();let w=w7({sourceTextureMap:i,targetTextureVarying:this.targetTextureVarying,targetTexture:n});Object.assign(c,w)}return this.hasTargetTexture&&(_=!1,f.viewport=[0,0,s.width,s.height]),{attributes:o,framebuffer:s,uniforms:c,discard:_,parameters:f}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures(t)}getTargetTexture(){let{targetTexture:t}=this.bindings[this.currentIndex];return t}getData(){let{packed:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{framebuffer:r}=this.bindings[this.currentIndex],i=Rh(r);if(!t)return i;let s=i.constructor,n=TR(this.targetTextureType),o=new s(i.length*n/4),c=0;for(let f=0;f0&&arguments[0]!==void 0?arguments[0]:{},{_targetTextureVarying:r,_swapTexture:i}=t;this._swapTexture=i,this.targetTextureVarying=r,this.hasTargetTexture=r,this._setupTextures(t)}_createTargetTexture(t){let{sourceTextures:r,textureOrReference:i}=t;if(i instanceof pi)return i;let s=r[i];return s?(this._targetRefTexName=i,this._createNewTexture(s)):null}_setupTextures(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,_sourceTextures:i={},_targetTexture:s}=t,n=this._createTargetTexture({sourceTextures:i,textureOrReference:s});this.hasSourceTextures=this.hasSourceTextures||i&&Object.keys(i).length>0,this._updateBindings({sourceBuffers:r,sourceTextures:i,targetTexture:n}),\"elementCount\"in t&&this._updateElementIDBuffer(t.elementCount)}_updateElementIDBuffer(t){if(typeof t!=\"number\"||this.elementCount>=t)return;let r=new Float32Array(t);r.forEach((i,s,n)=>{n[s]=s}),this.elementIDBuffer?this.elementIDBuffer.setData({data:r}):this.elementIDBuffer=new Fr(this.gl,{data:r,accessor:{size:1}}),this.elementCount=t}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this._swapTexture){let{sourceTextures:r,targetTexture:i}=this._swapTextures(this.bindings[this.currentIndex]),s=this._getNextIndex();this.bindings[s]=this._updateBinding(this.bindings[s],{sourceTextures:r,targetTexture:i})}}_updateBinding(t,r){let{sourceBuffers:i,sourceTextures:s,targetTexture:n}=r;if(t||(t={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(t.sourceTextures,s),Object.assign(t.sourceBuffers,i),n){t.targetTexture=n;let{width:o,height:c}=n,{framebuffer:f}=t;f?(f.update({attachments:{36064:n},resizeAttachments:!1}),f.resize({width:o,height:c})):t.framebuffer=new yi(this.gl,{id:\"transform-framebuffer\",width:o,height:c,attachments:{36064:n}})}return t}_setSourceTextureParameters(){let t=this.currentIndex,{sourceTextures:r}=this.bindings[t];for(let i in r)r[i].setParameters(jot)}_swapTextures(t){if(!this._swapTexture)return null;let r=Object.assign({},t.sourceTextures);r[this._swapTexture]=t.targetTexture;let i=t.sourceTextures[this._swapTexture];return{sourceTextures:r,targetTexture:i}}_createNewTexture(t){let r=nE(t,{parameters:{10241:9728,10240:9728,10242:33071,10243:33071},pixelStore:{37440:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=r,r}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceTextures:r,targetTexture:i}=this.bindings[this.currentIndex],{vs:s,uniforms:n,targetTextureType:o,inject:c,samplerTextureMap:f}=b7({vs:t.vs,sourceTextureMap:r,targetTextureVarying:this.targetTextureVarying,targetTexture:i}),_=vy([t.inject||{},c]);this.targetTextureType=o,this.samplerTextureMap=f;let w=t._fs||fb({version:gy(s),input:this.targetTextureVarying,inputType:o,output:Got}),C=this.hasSourceTextures||this.targetTextureVarying?[qR].concat(t.modules||[]):t.modules;return{vs:s,fs:w,modules:C,uniforms:n,inject:_}}};var ec=class{static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(r),Object.seal(this)}delete(){let{model:t,bufferTransform:r,textureTransform:i}=this;t&&t.delete(),r&&r.delete(),i&&i.delete()}run(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{clearRenderTarget:r=!0}=t,i=this._updateDrawOptions(t);r&&i.framebuffer&&i.framebuffer.clear({color:!0}),this.model.transform(i)}swap(){let t=!1,r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)t=t||i.swap();ye(t,\"Nothing to swap\")}getBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(t)}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r){let s=i.getData(t);if(s)return s}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};\"elementCount\"in t&&this.model.setVertexCount(t.elementCount);let r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)i.update(t)}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{gl:r}=this;this._buildResourceTransforms(r,t),t=this._updateModelProps(t),this.model=new Sn(r,Object.assign({},t,{fs:t.fs||fb({version:gy(t.vs)}),id:t.id||\"transform-model\",drawMode:t.drawMode||0,vertexCount:t.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let s of i)r=s.updateModelProps(r);return r}_buildResourceTransforms(t,r){Wot(r)&&(this.bufferTransform=new gb(t,r)),Hot(r)&&(this.textureTransform=new _b(t,r)),ye(this.bufferTransform||this.textureTransform,\"must provide source/feedback buffers or source/target textures\")}_updateDrawOptions(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let s of i)r=Object.assign(r,s.getDrawOptions(r));return r}};function Wot(e){return!!(!jf(e.feedbackBuffers)||!jf(e.feedbackMap)||e.varyings&&e.varyings.length>0)}function Hot(e){return!!(!jf(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)}var S7={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},As=class{static get DRAW_MODE(){return S7}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{id:r=Jo(\"geometry\"),drawMode:i=S7.TRIANGLES,attributes:s={},indices:n=null,vertexCount:o=null}=t;this.id=r,this.drawMode=i|0,this.attributes={},this.userData={},this._setAttributes(s,n),this.vertexCount=o||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(t){return\"Geometry \".concat(this.id,\" attribute \").concat(t)}_setAttributes(t,r){r&&(this.indices=ArrayBuffer.isView(r)?{value:r,size:1}:r);for(let i in t){let s=t[i];s=ArrayBuffer.isView(s)?{value:s}:s,ye(ArrayBuffer.isView(s.value),\"\".concat(this._print(i),\": must be typed array or object with value as typed array\")),(i===\"POSITION\"||i===\"positions\")&&!s.size&&(s.size=3),i===\"indices\"?(ye(!this.indices),this.indices=s):this.attributes[i]=s}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount(t,r){if(r)return r.value.length;let i=1/0;for(let s in t){let n=t[s],{value:o,size:c,constant:f}=n;!f&&o&&c>=1&&(i=Math.min(i,o.length/c))}return ye(Number.isFinite(i)),i}};var qot=1,Zot=1,QA=class{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel(t){let{delay:r=0,duration:i=Number.POSITIVE_INFINITY,rate:s=1,repeat:n=1}=t,o=qot++,c={time:0,delay:r,duration:i,rate:s,repeat:n};return this._setChannelTime(c,this.time),this.channels.set(o,c),o}removeChannel(t){this.channels.delete(t);for(let[r,i]of this.animations)i.channel===t&&this.detachAnimation(r)}isFinished(t){let r=this.channels.get(t);return r===void 0?!1:this.time>=r.delay+r.duration*r.repeat}getTime(t){if(t===void 0)return this.time;let r=this.channels.get(t);return r===void 0?-1:r.time}setTime(t){this.time=Math.max(0,t);let r=this.channels.values();for(let s of r)this._setChannelTime(s,this.time);let i=this.animations.values();for(let s of i){let{animation:n,channel:o}=s;n.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(t,r){let i=Zot++;return this.animations.set(i,{animation:t,channel:r}),t.setTime(this.getTime(r)),i}detachAnimation(t){this.animations.delete(t)}update(t){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=t),this.setTime(this.time+(t-this.lastEngineTime)),this.lastEngineTime=t)}_setChannelTime(t,r){let i=r-t.delay,s=t.duration*t.repeat;i>=s?t.time=t.duration*t.rate:(t.time=Math.max(0,i)%t.duration,t.time*=t.rate)}};var Yot=[255,255,255],Qot=1,$ot=0,BE=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"ambient\");let{color:r=Yot}=t,{intensity:i=Qot}=t;this.id=t.id||\"ambient-\".concat($ot++),this.color=r,this.intensity=i}};var Xot=[255,255,255],Kot=1,Jot=[0,0,-1],tat=0,yb=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"directional\"),G(this,\"direction\",void 0),G(this,\"shadow\",void 0);let{color:r=Xot}=t,{intensity:i=Kot}=t,{direction:s=Jot}=t,{_shadow:n=!1}=t;this.id=t.id||\"directional-\".concat(tat++),this.color=r,this.intensity=i,this.type=\"directional\",this.direction=new Fe(s).normalize().toArray(),this.shadow=n}getProjectedLight(t){return this}};var vb=class{constructor(t,r={id:\"pass\"}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"props\",void 0);let{id:i}=r;this.id=i,this.gl=t,this.props={...r}}setProps(t){Object.assign(this.props,t)}render(t){}cleanup(){}};var rc=class extends vb{constructor(...t){super(...t),G(this,\"_lastRenderIndex\",-1)}render(t){let r=this.gl;return wl(r,{framebuffer:t.target}),this._drawLayers(t)}_drawLayers(t){let{target:r,moduleParameters:i,viewports:s,views:n,onViewportActive:o,clearStack:c=!0,clearCanvas:f=!0}=t;t.pass=t.pass||\"unknown\";let _=this.gl;f&&rat(_,r),c&&(this._lastRenderIndex=-1);let w=[];for(let C of s){let R=n&&n[C.id];o?.(C);let N=this._getDrawLayerParams(C,t),j=C.subViewports||[C];for(let Y of j){let rt=this._drawLayersInViewport(_,{target:r,moduleParameters:i,viewport:Y,view:R,pass:t.pass,layers:t.layers},N);w.push(rt)}}return w}_getDrawLayerParams(t,{layers:r,pass:i,isPicking:s=!1,layerFilter:n,cullRect:o,effects:c,moduleParameters:f},_=!1){let w=[],C=T7(this._lastRenderIndex+1),R={layer:r[0],viewport:t,isPicking:s,renderPass:i,cullRect:o},N={};for(let j=0;jGf(t,C))}let w={totalCount:r.length,visibleCount:0,compositeCount:0,pickableCount:0};wl(t,{viewport:_});for(let C=0;C{let o=s.props._offset,c=s.id,f=s.parent&&s.parent.id,_;if(f&&!(f in t)&&i(s.parent,!1),f in r){let w=r[f]=r[f]||T7(t[f],t);_=w(s,n),r[c]=w}else Number.isFinite(o)?(_=o+(t[f]||0),r[c]=null):_=e;return n&&_>=e&&(e=_+1),t[c]=_,_};return i}function eat(e,{moduleParameters:t,target:r,viewport:i}){let s=r&&r.id!==\"default-framebuffer\",n=t&&t.devicePixelRatio||Sl(e),o=s?r.height:e.drawingBufferHeight,c=i;return[c.x*n,o-(c.y+c.height)*n,c.width*n,c.height*n]}function rat(e,t){let r=t?t.width:e.drawingBufferWidth,i=t?t.height:e.drawingBufferHeight;wl(e,{viewport:[0,0,r,i]}),e.clear(16640)}var xb=class extends rc{constructor(t,r){super(t,r),G(this,\"shadowMap\",void 0),G(this,\"depthBuffer\",void 0),G(this,\"fbo\",void 0),this.shadowMap=new pi(t,{width:1,height:1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.depthBuffer=new tl(t,{format:33189,width:1,height:1}),this.fbo=new yi(t,{id:\"shadowmap\",width:1,height:1,attachments:{36064:this.shadowMap,36096:this.depthBuffer}})}render(t){let r=this.fbo;bn(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{let i=t.viewports[0],s=Sl(this.gl),n=i.width*s,o=i.height*s;(n!==r.width||o!==r.height)&&r.resize({width:n,height:o}),super.render({...t,target:r,pass:\"shadow\"})})}shouldDrawLayer(t){return t.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}};var M7=\"#define SMOOTH_EDGE_RADIUS 0.5\",iat=`\n`.concat(M7,`\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n`),nat=`\n`.concat(M7,`\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n`),E7={name:\"geometry\",vs:iat,fs:nat};var sat=Object.keys(Yr).map(e=>\"const int COORDINATE_SYSTEM_\".concat(e,\" = \").concat(Yr[e],\";\")).join(\"\"),oat=Object.keys(Ka).map(e=>\"const int PROJECTION_MODE_\".concat(e,\" = \").concat(Ka[e],\";\")).join(\"\"),aat=Object.keys(Ko).map(e=>\"const int UNIT_\".concat(e.toUpperCase(),\" = \").concat(Ko[e],\";\")).join(\"\"),P7=\"\".concat(sat,`\n`).concat(oat,`\n`).concat(aat,`\n\nuniform int project_uCoordinateSystem;\nuniform int project_uProjectionMode;\nuniform float project_uScale;\nuniform bool project_uWrapLongitude;\nuniform vec3 project_uCommonUnitsPerMeter;\nuniform vec3 project_uCommonUnitsPerWorldUnit;\nuniform vec3 project_uCommonUnitsPerWorldUnit2;\nuniform vec4 project_uCenter;\nuniform mat4 project_uModelMatrix;\nuniform mat4 project_uViewProjectionMatrix;\nuniform vec2 project_uViewportSize;\nuniform float project_uDevicePixelRatio;\nuniform float project_uFocalDistance;\nuniform vec3 project_uCameraPosition;\nuniform vec3 project_uCoordinateOrigin;\nuniform vec3 project_uCommonOrigin;\nuniform bool project_uPseudoMeters;\n\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0;\nconst float GLOBE_RADIUS = 256.0;\nfloat project_size_at_latitude(float lat) {\n float y = clamp(lat, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n}\n\nfloat project_size() {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project_uPseudoMeters == false) {\n \n if (geometry.position.w == 0.0) {\n return project_size_at_latitude(geometry.worldPosition.y);\n }\n \n float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n float y2 = y * y;\n float y4 = y2 * y2;\n float y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n\nfloat project_size_at_latitude(float meters, float lat) {\n return meters * project_uCommonUnitsPerMeter.z * project_size_at_latitude(lat);\n}\nfloat project_size(float meters) {\n return meters * project_uCommonUnitsPerMeter.z * project_size();\n}\n\nvec2 project_size(vec2 meters) {\n return meters * project_uCommonUnitsPerMeter.xy * project_size();\n}\n\nvec3 project_size(vec3 meters) {\n return meters * project_uCommonUnitsPerMeter * project_size();\n}\n\nvec4 project_size(vec4 meters) {\n return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w);\n}\nmat3 project_get_orientation_matrix(vec3 up) {\n vec3 uz = normalize(up);\n vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\n vec3 uy = cross(uz, ux);\n return mat3(ux, uy, uz);\n}\n\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n transform = project_get_orientation_matrix(commonPosition);\n return true;\n }\n return false;\n}\nvec3 project_normal(vec3 vector) {\n vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0);\n vec3 n = normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter);\n mat3 rotation;\n if (project_needs_rotation(geometry.position.xyz, rotation)) {\n n = rotation * n;\n }\n return n;\n}\n\nvec4 project_offset_(vec4 offset) {\n float dy = offset.y;\n vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy;\n return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\nvec2 project_mercator_(vec2 lnglat) {\n float x = lnglat.x;\n if (project_uWrapLongitude) {\n x = mod(x + 180., 360.0) - 180.;\n }\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec3 project_globe_(vec3 lnglatz) {\n float lambda = radians(lnglatz.x);\n float phi = radians(lnglatz.y);\n float cosPhi = cos(phi);\n float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\nvec4 project_position(vec4 position, vec3 position64Low) {\n vec4 position_world = project_uModelMatrix * position;\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_mercator_(position_world.xy),\n project_size_at_latitude(position_world.z, position_world.y),\n position_world.w\n );\n }\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world.xyz += project_uCoordinateOrigin;\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) {\n return vec4(\n project_mercator_(position_world.xy) - project_uCommonOrigin.xy,\n project_size(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_IDENTITY ||\n (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world.xyz -= project_uCoordinateOrigin;\n }\n return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0));\n}\n\nvec4 project_position(vec4 position) {\n return project_position(position, ZERO_64_LOW);\n}\n\nvec3 project_position(vec3 position, vec3 position64Low) {\n vec4 projected_position = project_position(vec4(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nvec3 project_position(vec3 position) {\n vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nvec2 project_position(vec2 position) {\n vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\n return viewProjectionMatrix * position + center;\n}\nvec4 project_common_position_to_clipspace(vec4 position) {\n return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter);\n}\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\n vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0;\n return offset * project_uFocalDistance;\n}\n\nfloat project_size_to_pixel(float meters) {\n return project_size(meters) * project_uScale;\n}\nfloat project_size_to_pixel(float size, int unit) {\n if (unit == UNIT_METERS) return project_size_to_pixel(size);\n if (unit == UNIT_COMMON) return size * project_uScale;\n return size;\n}\nfloat project_pixel_size(float pixels) {\n return pixels / project_uScale;\n}\nvec2 project_pixel_size(vec2 pixels) {\n return pixels / project_uScale;\n}\n`);function lat(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{for(let s in i)if(!lat(i[s],t[s])){r=e(i),t=i;break}return r}}var I7=[0,0,0,0],cat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],C7=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],uat=[0,0,0],L7=[0,0,0],hat=Hf(dat);function ZR(e,t,r=L7){r.length<3&&(r=[r[0],r[1],0]);let i=r,s,n=!0;switch(t===Yr.LNGLAT_OFFSETS||t===Yr.METER_OFFSETS?s=r:s=e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case Ka.WEB_MERCATOR:(t===Yr.LNGLAT||t===Yr.CARTESIAN)&&(s=[0,0,0],n=!1);break;case Ka.WEB_MERCATOR_AUTO_OFFSET:t===Yr.LNGLAT?i=s:t===Yr.CARTESIAN&&(i=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],s=e.unprojectPosition(i),i[0]-=r[0],i[1]-=r[1],i[2]-=r[2]);break;case Ka.IDENTITY:i=e.position.map(Math.fround),i[2]=i[2]||0;break;case Ka.GLOBE:n=!1,s=null;break;default:n=!1}return{geospatialOrigin:s,shaderCoordinateOrigin:i,offsetMode:n}}function fat(e,t,r){let{viewMatrixUncentered:i,projectionMatrix:s}=e,{viewMatrix:n,viewProjectionMatrix:o}=e,c=I7,f=I7,_=e.cameraPosition,{geospatialOrigin:w,shaderCoordinateOrigin:C,offsetMode:R}=ZR(e,t,r);return R&&(f=e.projectPosition(w||C),_=[_[0]-f[0],_[1]-f[1],_[2]-f[2]],f[3]=1,c=zh([],f,o),n=i||n,o=Wf([],s,n),o=Wf([],o,cat)),{viewMatrix:n,viewProjectionMatrix:o,projectionCenter:c,originCommon:f,cameraPosCommon:_,shaderCoordinateOrigin:C,geospatialOrigin:w}}function k7({viewport:e,devicePixelRatio:t=1,modelMatrix:r=null,coordinateSystem:i=Yr.DEFAULT,coordinateOrigin:s=L7,autoWrapLongitude:n=!1}){i===Yr.DEFAULT&&(i=e.isGeospatial?Yr.LNGLAT:Yr.CARTESIAN);let o=hat({viewport:e,devicePixelRatio:t,coordinateSystem:i,coordinateOrigin:s});return o.project_uWrapLongitude=n,o.project_uModelMatrix=r||C7,o}function dat({viewport:e,devicePixelRatio:t,coordinateSystem:r,coordinateOrigin:i}){let{projectionCenter:s,viewProjectionMatrix:n,originCommon:o,cameraPosCommon:c,shaderCoordinateOrigin:f,geospatialOrigin:_}=fat(e,r,i),w=e.getDistanceScales(),C=[e.width*t,e.height*t],R=zh([],[0,0,-e.focalDistance,1],e.projectionMatrix)[3]||1,N={project_uCoordinateSystem:r,project_uProjectionMode:e.projectionMode,project_uCoordinateOrigin:f,project_uCommonOrigin:o.slice(0,3),project_uCenter:s,project_uPseudoMeters:!!e._pseudoMeters,project_uViewportSize:C,project_uDevicePixelRatio:t,project_uFocalDistance:R,project_uCommonUnitsPerMeter:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:uat,project_uScale:e.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:n,project_uModelMatrix:C7,project_uCameraPosition:c};if(_){let j=e.getDistanceScales(_);switch(r){case Yr.METER_OFFSETS:N.project_uCommonUnitsPerWorldUnit=j.unitsPerMeter,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerMeter2;break;case Yr.LNGLAT:case Yr.LNGLAT_OFFSETS:e._pseudoMeters||(N.project_uCommonUnitsPerMeter=j.unitsPerMeter),N.project_uCommonUnitsPerWorldUnit=j.unitsPerDegree,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerDegree2;break;case Yr.CARTESIAN:N.project_uCommonUnitsPerWorldUnit=[1,1,j.unitsPerMeter[2]],N.project_uCommonUnitsPerWorldUnit2=[0,0,j.unitsPerMeter2[2]];break;default:break}}return N}var pat={};function Aat(e=pat){return\"viewport\"in e?k7(e):{}}var Uh={name:\"project\",dependencies:[AE,E7],vs:P7,getUniforms:Aat};function YR(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function $A(e,t){let r=zh([],t,e);return Py(r,r,1/r[3]),r}function QR(e,t){let r=e%t;return r<0?t+r:r}function bb(e,t,r){return er?r:e}function mat(e){return Math.log(e)*Math.LOG2E}var ky=Math.log2||mat;function Ru(e,t){if(!e)throw new Error(t||\"@math.gl/web-mercator: assertion failed.\")}var Vh=Math.PI,R7=Vh/4,Du=Vh/180,$R=180/Vh,Ry=512,FE=4003e4,Dy=85.051129,D7=1.5;function XR(e){return ky(e)}function El(e){let[t,r]=e;Ru(Number.isFinite(t)),Ru(Number.isFinite(r)&&r>=-90&&r<=90,\"invalid latitude\");let i=t*Du,s=r*Du,n=Ry*(i+Vh)/(2*Vh),o=Ry*(Vh+Math.log(Math.tan(R7+s*.5)))/(2*Vh);return[n,o]}function Yc(e){let[t,r]=e,i=t/Ry*(2*Vh)-Vh,s=2*(Math.atan(Math.exp(r/Ry*(2*Vh)-Vh))-R7);return[i*$R,s*$R]}function KR(e){let{latitude:t}=e;Ru(Number.isFinite(t));let r=Math.cos(t*Du);return XR(FE*r)-9}function wb(e){let t=Math.cos(e*Du);return Ry/FE/t}function Oy(e){let{latitude:t,longitude:r,highPrecision:i=!1}=e;Ru(Number.isFinite(t)&&Number.isFinite(r));let s=Ry,n=Math.cos(t*Du),o=s/360,c=o/n,f=s/FE/n,_={unitsPerMeter:[f,f,f],metersPerUnit:[1/f,1/f,1/f],unitsPerDegree:[o,c,f],degreesPerUnit:[1/o,1/c,1/f]};if(i){let w=Du*Math.tan(t*Du)/n,C=o*w/2,R=s/FE*w,N=R/c*f;_.unitsPerDegree2=[0,C,R],_.unitsPerMeter2=[N,0,N]}return _}function Sb(e,t){let[r,i,s]=e,[n,o,c]=t,{unitsPerMeter:f,unitsPerMeter2:_}=Oy({longitude:r,latitude:i,highPrecision:!0}),w=El(e);w[0]+=n*(f[0]+_[0]*o),w[1]+=o*(f[1]+_[1]*o);let C=Yc(w),R=(s||0)+(c||0);return Number.isFinite(s)||Number.isFinite(c)?[C[0],C[1],R]:C}function zE(e){let{height:t,pitch:r,bearing:i,altitude:s,scale:n,center:o}=e,c=YR();eg(c,c,[0,0,-s]),IE(c,c,-r*Du),CE(c,c,i*Du);let f=n/t;return Ey(c,c,[f,f,f]),o&&eg(c,c,wj([],o)),c}function JR(e){let{width:t,height:r,altitude:i,pitch:s=0,offset:n,center:o,scale:c,nearZMultiplier:f=1,farZMultiplier:_=1}=e,{fovy:w=ig(D7)}=e;i!==void 0&&(w=ig(i));let C=w*Du,R=s*Du,N=Tb(w),j=N;o&&(j+=o[2]*c/Math.cos(R)/r);let Y=C*(.5+(n?n[1]:0)/r),rt=Math.sin(Y)*j/Math.sin(bb(Math.PI/2-R-Y,.01,Math.PI-.01)),$=Math.sin(R)*rt+j,K=j*10,tt=Math.min($*_,K);return{fov:C,aspect:t/r,focalDistance:N,near:f,far:tt}}function ig(e){return 2*Math.atan(.5/e)*$R}function Tb(e){return .5/Math.tan(.5*e*Du)}function By(e,t){let[r,i,s=0]=e;return Ru(Number.isFinite(r)&&Number.isFinite(i)&&Number.isFinite(s)),$A(t,[r,i,s,1])}function qf(e,t,r=0){let[i,s,n]=e;if(Ru(Number.isFinite(i)&&Number.isFinite(s),\"invalid pixel coordinate\"),Number.isFinite(n))return $A(t,[i,s,n,1]);let o=$A(t,[i,s,0,1]),c=$A(t,[i,s,1,1]),f=o[2],_=c[2],w=f===_?0:((r||0)-f)/(_-f);return gE([],o,c,w)}function Mb(e){let{width:t,height:r,bounds:i,minExtent:s=0,maxZoom:n=24,offset:o=[0,0]}=e,[[c,f],[_,w]]=i,C=gat(e.padding),R=El([c,bb(w,-Dy,Dy)]),N=El([_,bb(f,-Dy,Dy)]),j=[Math.max(Math.abs(N[0]-R[0]),s),Math.max(Math.abs(N[1]-R[1]),s)],Y=[t-C.left-C.right-Math.abs(o[0])*2,r-C.top-C.bottom-Math.abs(o[1])*2];Ru(Y[0]>0&&Y[1]>0);let rt=Y[0]/j[0],$=Y[1]/j[1],K=(C.right-C.left)/2/rt,tt=(C.top-C.bottom)/2/$,ut=[(N[0]+R[0])/2+K,(N[1]+R[1])/2+tt],Pt=Yc(ut),Ot=Math.min(n,ky(Math.abs(Math.min(rt,$))));return Ru(Number.isFinite(Ot)),{longitude:Pt[0],latitude:Pt[1],zoom:Ot}}function gat(e=0){return typeof e==\"number\"?{top:e,bottom:e,left:e,right:e}:(Ru(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var O7=Math.PI/180;function Eb(e,t=0){let{width:r,height:i,unproject:s}=e,n={targetZ:t},o=s([0,i],n),c=s([r,i],n),f,_,w=e.fovy?.5*e.fovy*O7:Math.atan(.5/e.altitude),C=(90-e.pitch)*O7;return w>C-.01?(f=B7(e,0,t),_=B7(e,r,t)):(f=s([0,0],n),_=s([r,0],n)),[o,c,_,f]}function B7(e,t,r){let{pixelUnprojectionMatrix:i}=e,s=$A(i,[t,0,1,1]),n=$A(i,[t,e.height,1,1]),c=(r*e.distanceScales.unitsPerMeter[2]-s[2])/(n[2]-s[2]),f=gE([],s,n,c),_=Yc(f);return _.push(r),_}var z7=512;function NE(e){let{width:t,height:r,pitch:i=0}=e,{longitude:s,latitude:n,zoom:o,bearing:c=0}=e;(s<-180||s>180)&&(s=QR(s+180,360)-180),(c<-180||c>180)&&(c=QR(c+180,360)-180);let f=ky(r/z7);if(o<=f)o=f,n=0;else{let _=r/2/Math.pow(2,o),w=Yc([0,_])[1];if(nC&&(n=C)}}return{width:t,height:r,longitude:s,latitude:n,zoom:o,pitch:i,bearing:c}}var vat=`\nconst int max_lights = 2;\nuniform mat4 shadow_uViewProjectionMatrices[max_lights];\nuniform vec4 shadow_uProjectCenters[max_lights];\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform int shadow_uLightId;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n if (shadow_uDrawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[shadow_uLightId], shadow_uProjectCenters[shadow_uLightId]);\n }\n if (shadow_uUseShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow_uLightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[i], shadow_uProjectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n`,xat=`\nconst int max_lights = 2;\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\nuniform vec4 shadow_uColor;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture2D(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow_uDrawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow_uUseShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow_uLightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow_uColor.a / shadow_uLightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow_uColor.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n`,bat=Hf(Eat),wat=Hf(Pat),Sat=[0,0,0,1],Tat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function Mat(e,t){let[r,i,s]=e,n=qf([r,i,s],t);return Number.isFinite(s)?n:[n[0],n[1],0]}function Eat({viewport:e,center:t}){return new wn(e.viewProjectionMatrix).invert().transform(t)}function Pat({viewport:e,shadowMatrices:t}){let r=[],i=e.pixelUnprojectionMatrix,s=e.isGeospatial?void 0:1,n=[[0,0,s],[e.width,0,s],[0,e.height,s],[e.width,e.height,s],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(o=>Mat(o,i));for(let o of t){let c=o.clone().translate(new Fe(e.center).negate()),f=n.map(w=>c.transform(w)),_=new wn().ortho({left:Math.min(...f.map(w=>w[0])),right:Math.max(...f.map(w=>w[0])),bottom:Math.min(...f.map(w=>w[1])),top:Math.max(...f.map(w=>w[1])),near:Math.min(...f.map(w=>-w[2])),far:Math.max(...f.map(w=>-w[2]))});r.push(_.multiplyRight(o))}return r}function Iat(e,t){let{shadowEnabled:r=!0}=e;if(!r||!e.shadowMatrices||!e.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};let i={shadow_uDrawShadowMap:!!e.drawToShadowMap,shadow_uUseShadowMap:e.shadowMaps?e.shadowMaps.length>0:!1,shadow_uColor:e.shadowColor||Sat,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},s=bat({viewport:e.viewport,center:t.project_uCenter}),n=[],o=wat({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice();for(let c=0;c0?i[\"shadow_uShadowMap\".concat(c)]=e.shadowMaps[c]:i[\"shadow_uShadowMap\".concat(c)]=e.dummyShadowMap;return i}var Pb={name:\"shadow\",dependencies:[Uh],vs:vat,fs:xat,inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n position = shadow_setVertexPosition(geometry.position);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n color = shadow_filterShadowColor(color);\n `},getUniforms:(e={},t={})=>\"viewport\"in e&&(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0)?Iat(e,t):{}};var Cat={color:[255,255,255],intensity:1},N7=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],Lat=[0,0,0,200/255],Fy=class{constructor(t={}){G(this,\"id\",\"lighting-effect\"),G(this,\"props\",void 0),G(this,\"shadowColor\",Lat),G(this,\"shadow\",void 0),G(this,\"ambientLight\",void 0),G(this,\"directionalLights\",void 0),G(this,\"pointLights\",void 0),G(this,\"shadowPasses\",[]),G(this,\"shadowMaps\",[]),G(this,\"dummyShadowMap\",null),G(this,\"programManager\",void 0),G(this,\"shadowMatrices\",void 0),this.setProps(t)}setProps(t){this.ambientLight=null,this.directionalLights=[],this.pointLights=[];for(let r in t){let i=t[r];switch(i.type){case\"ambient\":this.ambientLight=i;break;case\"directional\":this.directionalLights.push(i);break;case\"point\":this.pointLights.push(i);break;default:}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(r=>r.shadow),this.props=t}preRender(t,{layers:r,layerFilter:i,viewports:s,onViewportActive:n,views:o}){if(this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses(t),this.programManager||(this.programManager=Nh.getDefaultProgramManager(t),Pb&&this.programManager.addDefaultModule(Pb)),this.dummyShadowMap||(this.dummyShadowMap=new pi(t,{width:1,height:1}));for(let c=0;ci.getProjectedLight({layer:t})),pointLights:this.pointLights.map(i=>i.getProjectedLight({layer:t}))},r}cleanup(){for(let t of this.shadowPasses)t.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(Pb),this.programManager=null)}_calculateMatrices(){let t=[];for(let r of this.directionalLights){let i=new wn().lookAt({eye:new Fe(r.direction).negate()});t.push(i)}return t}_createShadowPasses(t){for(let r=0;rs&&(n=s);let o=this._pool,c=t.BYTES_PER_ELEMENT*n,f=o.findIndex(_=>_.byteLength>=c);if(f>=0){let _=new t(o.splice(f,1)[0],0,n);return i&&_.fill(0),_}return new t(n)}_release(t){if(!ArrayBuffer.isView(t))return;let r=this._pool,{buffer:i}=t,{byteLength:s}=i,n=r.findIndex(o=>o.byteLength>=s);n<0?r.push(i):(n>0||r.lengththis.opts.poolSize&&r.shift()}},jh=new tD;function Ny(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function V7(e){return[e[12],e[13],e[14]]}function j7(e){return{left:zy(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:zy(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:zy(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:zy(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:zy(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:zy(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}var U7=new Fe;function zy(e,t,r,i){U7.set(e,t,r);let s=U7.len();return{distance:i/s,normal:new Fe(-e/s,-t/s,-r/s)}}function kat(e){return e-Math.fround(e)}var Ib;function UE(e,t){let{size:r=1,startIndex:i=0}=t,s=t.endIndex!==void 0?t.endIndex:e.length,n=(s-i)/r;Ib=jh.allocate(Ib,n,{type:Float32Array,size:r*2});let o=i,c=0;for(;osuper.render({target:o,layers:t,layerFilter:r,views:i,viewports:s,onViewportActive:n,cullRect:C,effects:R?.filter(ut=>ut.useInPicking),pass:N,isPicking:!0,moduleParameters:Y}));return this._colorEncoderState=null,{decodePickingColor:$&&Nat.bind(null,$),stats:K}}shouldDrawLayer(t){let{pickable:r,operation:i}=t.props;return r&&i.includes(\"draw\")||i.includes(\"terrain\")||i.includes(\"mask\")}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters(t,r,i){let s={...t.props.parameters},{pickable:n,operation:o}=t.props;return this._colorEncoderState?n&&o.includes(\"draw\")&&(Object.assign(s,Z7),s.blend=!0,s.blendColor=zat(this._colorEncoderState,t,i)):s.blend=!1,o.includes(\"terrain\")&&(s.blend=!1),s}_resetColorEncoder(t){return this._colorEncoderState=t?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function zat(e,t,r){let{byLayer:i,byAlpha:s}=e,n,o=i.get(t);return o?(o.viewports.push(r),n=o.a):(n=i.size+1,n<=255?(o={a:n,layer:t,viewports:[r]},i.set(t,o),s[n]=o):(nr.warn(\"Too many pickable layers, only picking the first 255\")(),n=0)),[0,0,0,n/255]}function Nat(e,t){let r=e.byAlpha[t[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(t)}}var XA={NO_STATE:\"Awaiting state\",MATCHED:\"Matched. State transferred from previous layer\",INITIALIZED:\"Initialized\",AWAITING_GC:\"Discarded. Awaiting garbage collection\",AWAITING_FINALIZATION:\"No longer matched. Awaiting garbage collection\",FINALIZED:\"Finalized! Awaiting garbage collection\"},Uy=Symbol.for(\"component\"),Ou=Symbol.for(\"propTypes\"),VE=Symbol.for(\"deprecatedProps\"),ip=Symbol.for(\"asyncPropDefaults\"),Zf=Symbol.for(\"asyncPropOriginal\"),Gh=Symbol.for(\"asyncPropResolved\");function np(e,t=()=>!0){return Array.isArray(e)?Y7(e,t,[]):t(e)?[e]:[]}function Y7(e,t,r){let i=-1;for(;++i0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(t,r){if(t===this._data&&!r)return;this._data=t;let i=++this._loadCount,s=t;typeof t==\"string\"&&(s=NA(t)),s instanceof Promise?(this.isLoaded=!1,this._loader=s.then(n=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=n)}).catch(n=>{this._loadCount===i&&(this.isLoaded=!0,this._error=n||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=t);for(let n of this._subscribers)n.onChange(this.getData())}};var Lb=class{constructor({gl:t,protocol:r}){G(this,\"protocol\",void 0),G(this,\"_context\",void 0),G(this,\"_resources\",void 0),G(this,\"_consumers\",void 0),G(this,\"_pruneRequest\",void 0),this.protocol=r||\"resource://\",this._context={gl:t,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(t){return t.startsWith(this.protocol)?!0:t in this._resources}add({resourceId:t,data:r,forceUpdate:i=!1,persistent:s=!0}){let n=this._resources[t];n?n.setData(r,i):(n=new Cb(t,r,this._context),this._resources[t]=n),n.persistent=s}remove(t){let r=this._resources[t];r&&(r.delete(),delete this._resources[t])}unsubscribe({consumerId:t}){let r=this._consumers[t];if(r){for(let i in r){let s=r[i],n=this._resources[s.resourceId];n&&n.unsubscribe(s)}delete this._consumers[t],this.prune()}}subscribe({resourceId:t,onChange:r,consumerId:i,requestId:s=\"default\"}){let{_resources:n,protocol:o}=this;t.startsWith(o)&&(t=t.replace(o,\"\"),n[t]||this.add({resourceId:t,data:null,persistent:!1}));let c=n[t];if(this._track(i,s,c,r),c)return c.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let t in this._resources)this._resources[t].delete()}_track(t,r,i,s){let n=this._consumers,o=n[t]=n[t]||{},c=o[r]||{},f=c.resourceId&&this._resources[c.resourceId];f&&(f.unsubscribe(c),this.prune()),i&&(o[r]=c,c.onChange=s,c.resourceId=i.id,i.subscribe(c))}_prune(){this._pruneRequest=null;for(let t of Object.keys(this._resources)){let r=this._resources[t];!r.persistent&&!r.inUse()&&(r.delete(),delete this._resources[t])}}};var Uat=`\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n mat3 rotation;\n if (project_needs_rotation(projectedPosition, rotation)) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n`,oo={name:\"project32\",dependencies:[Uh],vs:Uat};var ta={inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n // for picking depth values\n picking_setPickingAttribute(position.z / position.w);\n `,\"vs:DECKGL_FILTER_COLOR\":`\n picking_setPickingColor(geometry.pickingColor);\n `,\"fs:#decl\":`\nuniform bool picking_uAttribute;\n `,\"fs:DECKGL_FILTER_COLOR\":{order:99,injection:`\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n `}},...DE};var Vat=[Uh],jat=[\"vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)\",\"fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)\"];function Q7(e){let t=Nh.getDefaultProgramManager(e);for(let r of Vat)t.addDefaultModule(r);for(let r of jat)t.addShaderHook(r);return t}var Gat=\"layerManager.setLayers\",Wat=\"layerManager.activateViewport\",kb=class{constructor(t,{deck:r,stats:i,viewport:s,timeline:n}={}){G(this,\"layers\",void 0),G(this,\"context\",void 0),G(this,\"resourceManager\",void 0),G(this,\"_lastRenderedLayers\",[]),G(this,\"_needsRedraw\",!1),G(this,\"_needsUpdate\",!1),G(this,\"_nextLayers\",null),G(this,\"_debug\",!1),G(this,\"activateViewport\",o=>{Cs(Wat,this,o),o&&(this.context.viewport=o)}),this.layers=[],this.resourceManager=new Lb({gl:t,protocol:\"deck://\"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:t,deck:r,programManager:t&&Q7(t),stats:i||new Vf({id:\"deck.gl\"}),viewport:s||new ic({id:\"DEFAULT-INITIAL-VIEWPORT\"}),timeline:n||new QA,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(let t of this.layers)this._finalizeLayer(t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);for(let i of this.layers){let s=i.getNeedsRedraw(t);r=r||s}return r}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?\"layers changed\":this._needsUpdate}setNeedsRedraw(t){this._needsRedraw=this._needsRedraw||t}setNeedsUpdate(t){this._needsUpdate=this._needsUpdate||t}getLayers({layerIds:t}={}){return t?this.layers.filter(r=>t.find(i=>r.id.indexOf(i)===0)):this.layers}setProps(t){\"debug\"in t&&(this._debug=t.debug),\"userData\"in t&&(this.context.userData=t.userData),\"layers\"in t&&(this._nextLayers=t.layers),\"onError\"in t&&(this.context.onError=t.onError)}setLayers(t,r){Cs(Gat,this,r,t),this._lastRenderedLayers=t;let i=np(t,Boolean);for(let s of i)s.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){let t=this.needsUpdate();t&&(this.setNeedsRedraw(\"updating layers: \".concat(t)),this.setLayers(this._nextLayers||this._lastRenderedLayers,t)),this._nextLayers=null}_handleError(t,r,i){i.raiseError(r,\"\".concat(t,\" of \").concat(i))}_updateLayers(t,r){let i={};for(let o of t)i[o.id]?nr.warn(\"Multiple old layers with same id \".concat(o.id))():i[o.id]=o;let s=[];this._updateSublayersRecursively(r,i,s),this._finalizeOldLayers(i);let n=!1;for(let o of s)if(o.hasUniformTransition()){n=\"Uniform transition in \".concat(o);break}this._needsUpdate=n,this.layers=s}_updateSublayersRecursively(t,r,i){for(let s of t){s.context=this.context;let n=r[s.id];n===null&&nr.warn(\"Multiple new layers with same id \".concat(s.id))(),r[s.id]=null;let o=null;try{this._debug&&n!==s&&s.validateProps(),n?(this._transferLayerState(n,s),this._updateLayer(s)):this._initializeLayer(s),i.push(s),o=s.isComposite?s.getSubLayers():null}catch(c){this._handleError(\"matching\",c,s)}o&&this._updateSublayersRecursively(o,r,i)}}_finalizeOldLayers(t){for(let r in t){let i=t[r];i&&this._finalizeLayer(i)}}_initializeLayer(t){try{t._initialize(),t.lifecycle=XA.INITIALIZED}catch(r){this._handleError(\"initialization\",r,t)}}_transferLayerState(t,r){r._transferState(t),r.lifecycle=XA.MATCHED,r!==t&&(t.lifecycle=XA.AWAITING_GC)}_updateLayer(t){try{t._update()}catch(r){this._handleError(\"update\",r,t)}}_finalizeLayer(t){this._needsRedraw=this._needsRedraw||\"finalized \".concat(t),t.lifecycle=XA.AWAITING_FINALIZATION;try{t._finalize(),t.lifecycle=XA.FINALIZED}catch(r){this._handleError(\"finalization\",r,t)}}};function ao(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let i=0;ir.containsPixel(t)):this._viewports}getViews(){let t={};return this.views.forEach(r=>{t[r.id]=r}),t}getView(t){return this.views.find(r=>r.id===t)}getViewState(t){let r=typeof t==\"string\"?this.getView(t):t,i=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(i):i}getViewport(t){return this._viewportMap[t]}unproject(t,r){let i=this.getViewports(),s={x:t[0],y:t[1]};for(let n=i.length-1;n>=0;--n){let o=i[n];if(o.containsPixel(s)){let c=t.slice();return c[0]-=o.x,c[1]-=o.y,o.unproject(c,r)}}return null}setProps(t){t.views&&this._setViews(t.views),t.viewState&&this._setViewState(t.viewState),(\"width\"in t||\"height\"in t)&&this._setSize(t.width,t.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(t,r){(t!==this.width||r!==this.height)&&(this.width=t,this.height=r,this.setNeedsUpdate(\"Size changed\"))}_setViews(t){t=np(t,Boolean),this._diffViews(t,this.views)&&this.setNeedsUpdate(\"views changed\"),this.views=t}_setViewState(t){t?(!ao(t,this.viewState,3)&&this.setNeedsUpdate(\"viewState changed\"),this.viewState=t):nr.warn(\"missing `viewState` or `initialViewState`\")()}_onViewStateChange(t,r){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...r,viewId:t})}_createController(t,r){let i=r.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,r.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:n=>{var o;return(o=this.getView(t.id))===null||o===void 0?void 0:o.makeViewport({viewState:n,width:this.width,height:this.height})}})}_updateController(t,r,i,s){let n=t.controller;if(n&&i){let o={...r,...n,id:t.id,x:i.x,y:i.y,width:i.width,height:i.height};return(!s||s.constructor!==n.type)&&(s=this._createController(t,o)),s&&s.setProps(o),s}return null}_rebuildViewports(){let{views:t}=this,r=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let s=t.length;s--;){let n=t[s],o=this.getViewState(n),c=n.makeViewport({viewState:o,width:this.width,height:this.height}),f=r[n.id],_=!!n.controller;_&&!f&&(i=!0),(i||!_)&&f&&(f.finalize(),f=null),this.controllers[n.id]=this._updateController(n,o,c,f),c&&this._viewports.unshift(c)}for(let s in r){let n=r[s];n&&!this.controllers[s]&&n.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(t=>{t.id&&(this._viewportMap[t.id]=this._viewportMap[t.id]||t)})}_diffViews(t,r){return t.length!==r.length?!0:t.some((i,s)=>!t[s].equals(r[s]))}};var Hat=/([0-9]+\\.?[0-9]*)(%|px)/;function sp(e){switch(typeof e){case\"number\":return{position:e,relative:!1};case\"string\":let t=Hat.exec(e);if(t&&t.length>=3){let r=t[2]===\"%\",i=parseFloat(t[1]);return{position:r?i/100:i,relative:r}}default:throw new Error(\"Could not parse position string \".concat(e))}}function op(e,t){return e.relative?Math.round(e.position*t):e.position}function br(e,t){if(!e)throw new Error(t||\"deck.gl: assertion failed.\")}var Qc=class{constructor(t){G(this,\"id\",void 0),G(this,\"viewportInstance\",void 0),G(this,\"_x\",void 0),G(this,\"_y\",void 0),G(this,\"_width\",void 0),G(this,\"_height\",void 0),G(this,\"_padding\",void 0),G(this,\"props\",void 0);let{id:r,x:i=0,y:s=0,width:n=\"100%\",height:o=\"100%\",padding:c=null,viewportInstance:f}=t||{};br(!f||f instanceof ic),this.viewportInstance=f,this.id=r||this.constructor.displayName||\"view\",this.props={...t,id:this.id},this._x=sp(i),this._y=sp(s),this._width=sp(n),this._height=sp(o),this._padding=c&&{left:sp(c.left||0),right:sp(c.right||0),top:sp(c.top||0),bottom:sp(c.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(t){return this===t?!0:this.viewportInstance?t.viewportInstance?this.viewportInstance.equals(t.viewportInstance):!1:this.ViewportType===t.ViewportType&&ao(this.props,t.props,2)}makeViewport({width:t,height:r,viewState:i}){if(this.viewportInstance)return this.viewportInstance;i=this.filterViewState(i);let s=this.getDimensions({width:t,height:r});return!s.height||!s.width?null:new this.ViewportType({...i,...this.props,...s})}getViewStateId(){let{viewState:t}=this.props;return typeof t==\"string\"?t:t?.id||this.id}filterViewState(t){if(this.props.viewState&&typeof this.props.viewState==\"object\"){if(!this.props.viewState.id)return this.props.viewState;let r={...t};for(let i in this.props.viewState)i!==\"id\"&&(r[i]=this.props.viewState[i]);return r}return t}getDimensions({width:t,height:r}){let i={x:op(this._x,t),y:op(this._y,r),width:op(this._width,t),height:op(this._height,r)};return this._padding&&(i.padding={left:op(this._padding.left,t),top:op(this._padding.top,r),right:op(this._padding.right,t),bottom:op(this._padding.bottom,r)}),i}get controller(){let t=this.props.controller;return t?t===!0?{type:this.ControllerType}:typeof t==\"function\"?{type:t}:{type:this.ControllerType,...t}:null}};var $c=class{constructor(t){G(this,\"_inProgress\",void 0),G(this,\"_handle\",void 0),G(this,\"_timeline\",void 0),G(this,\"time\",void 0),G(this,\"settings\",void 0),this._inProgress=!1,this._handle=null,this._timeline=t,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start(t){var r,i;this.cancel(),this.settings=t,this._inProgress=!0,(r=(i=this.settings).onStart)===null||r===void 0||r.call(i,this)}end(){if(this._inProgress){var t,r;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,(t=(r=this.settings).onEnd)===null||t===void 0||t.call(r,this)}}cancel(){if(this._inProgress){var t,r;(t=(r=this.settings).onInterrupt)===null||t===void 0||t.call(r,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var t,r;if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:i,settings:s}=this;this._handle=i.addChannel({delay:i.getTime(),duration:s.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),(t=(r=this.settings).onUpdate)===null||t===void 0||t.call(r,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var $7=()=>{},nD={BREAK:1,SNAP_TO_END:2,IGNORE:3},qat=e=>e,Zat=nD.BREAK,Db=class{constructor(t){G(this,\"getControllerState\",void 0),G(this,\"props\",void 0),G(this,\"propsInTransition\",void 0),G(this,\"transition\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"_onTransitionUpdate\",r=>{let{time:i,settings:{interpolator:s,startProps:n,endProps:o,duration:c,easing:f}}=r,_=f(i/c),w=s.interpolateProps(n,o,_);this.propsInTransition=this.getControllerState({...this.props,...w}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=t.getControllerState,this.propsInTransition=null,this.transition=new $c(t.timeline),this.onViewStateChange=t.onViewStateChange||$7,this.onStateChange=t.onStateChange||$7}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(t){let r=!1,i=this.props;if(this.props=t,!i||this._shouldIgnoreViewportChange(i,t))return!1;if(this._isTransitionEnabled(t)){let s=i;if(this.transition.inProgress){let{interruption:n,endProps:o}=this.transition.settings;s={...i,...n===nD.SNAP_TO_END?o:this.propsInTransition||i}}this._triggerTransition(s,t),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(t){let{transitionDuration:r,transitionInterpolator:i}=t;return(r>0||r===\"auto\")&&!!i}_isUpdateDueToCurrentTransition(t){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(t,this.propsInTransition):!1}_shouldIgnoreViewportChange(t,r){return this.transition.inProgress?this.transition.settings.interruption===nD.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(t,r):!0}_triggerTransition(t,r){let i=this.getControllerState(t),s=this.getControllerState(r).shortestPathFrom(i),n=r.transitionInterpolator,o=n.getDuration?n.getDuration(t,r):r.transitionDuration;if(o===0)return;let c=n.initializeProps(t,s);this.propsInTransition={};let f={duration:o,easing:r.transitionEasing||qat,interpolator:n,interruption:r.transitionInterruption||Zat,startProps:c.start,endProps:c.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(f),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(t){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),t?.(r)}}};var Ob=class{constructor(t){G(this,\"_propsToCompare\",void 0),G(this,\"_propsToExtract\",void 0),G(this,\"_requiredProps\",void 0);let{compare:r,extract:i,required:s}=t;this._propsToCompare=r,this._propsToExtract=i||r,this._requiredProps=s}arePropsEqual(t,r){for(let i of this._propsToCompare)if(!(i in t)||!(i in r)||!To(t[i],r[i]))return!1;return!0}initializeProps(t,r){let i={},s={};for(let n of this._propsToExtract)(n in t||n in r)&&(i[n]=t[n],s[n]=r[n]);return this._checkRequiredProps(i),this._checkRequiredProps(s),{start:i,end:s}}getDuration(t,r){return r.transitionDuration}_checkRequiredProps(t){this._requiredProps&&this._requiredProps.forEach(r=>{let i=t[r];br(Number.isFinite(i)||Array.isArray(i),\"\".concat(r,\" is required for transition\"))})}};var Yat=[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\"],Qat=[\"longitude\",\"latitude\",\"zoom\"],sg=class extends Ob{constructor(t={}){let r=Array.isArray(t)?t:t.transitionProps,i=Array.isArray(t)?{}:t;i.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:Yat,required:Qat},super(i.transitionProps),G(this,\"opts\",void 0),this.opts=i}initializeProps(t,r){let i=super.initializeProps(t,r),{makeViewport:s,around:n}=this.opts;if(s&&n){let o=s(t),c=s(r),f=o.unproject(n);i.start.around=n,Object.assign(i.end,{around:c.project(f),aroundPosition:f,width:r.width,height:r.height})}return i}interpolateProps(t,r,i){let s={};for(let n of this._propsToExtract)s[n]=tc(t[n]||0,r[n]||0,i);if(r.aroundPosition&&this.opts.makeViewport){let n=this.opts.makeViewport({...r,...s});Object.assign(s,n.panByPosition(r.aroundPosition,tc(t.around,r.around,i)))}return s}};var KA={transitionDuration:0},$at=300,jE=e=>1-(1-e)*(1-e),Vy={WHEEL:[\"wheel\"],PAN:[\"panstart\",\"panmove\",\"panend\"],PINCH:[\"pinchstart\",\"pinchmove\",\"pinchend\"],TRIPLE_PAN:[\"tripanstart\",\"tripanmove\",\"tripanend\"],DOUBLE_TAP:[\"doubletap\"],KEYBOARD:[\"keydown\"]},og={},Bb=class{constructor(t){G(this,\"props\",void 0),G(this,\"state\",{}),G(this,\"transitionManager\",void 0),G(this,\"eventManager\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"makeViewport\",void 0),G(this,\"_controllerState\",void 0),G(this,\"_events\",{}),G(this,\"_interactionState\",{isDragging:!1}),G(this,\"_customEvents\",[]),G(this,\"_eventStartBlocked\",null),G(this,\"_panMove\",!1),G(this,\"invertPan\",!1),G(this,\"dragMode\",\"rotate\"),G(this,\"inertia\",0),G(this,\"scrollZoom\",!0),G(this,\"dragPan\",!0),G(this,\"dragRotate\",!0),G(this,\"doubleClickZoom\",!0),G(this,\"touchZoom\",!0),G(this,\"touchRotate\",!1),G(this,\"keyboard\",!0),this.transitionManager=new Db({...t,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=t.eventManager,this.onViewStateChange=t.onViewStateChange||(()=>{}),this.onStateChange=t.onStateChange||(()=>{}),this.makeViewport=t.makeViewport}set events(t){this.toggleEvents(this._customEvents,!1),this.toggleEvents(t,!0),this._customEvents=t,this.props&&this.setProps(this.props)}finalize(){for(let r in this._events)if(this._events[r]){var t;(t=this.eventManager)===null||t===void 0||t.off(r,this.handleEvent)}this.transitionManager.finalize()}handleEvent(t){this._controllerState=void 0;let r=this._eventStartBlocked;switch(t.type){case\"panstart\":return r?!1:this._onPanStart(t);case\"panmove\":return this._onPan(t);case\"panend\":return this._onPanEnd(t);case\"pinchstart\":return r?!1:this._onPinchStart(t);case\"pinchmove\":return this._onPinch(t);case\"pinchend\":return this._onPinchEnd(t);case\"tripanstart\":return r?!1:this._onTriplePanStart(t);case\"tripanmove\":return this._onTriplePan(t);case\"tripanend\":return this._onTriplePanEnd(t);case\"doubletap\":return this._onDoubleTap(t);case\"wheel\":return this._onWheel(t);case\"keydown\":return this._onKeyDown(t);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(t){let{x:r,y:i}=this.props,{offsetCenter:s}=t;return[s.x-r,s.y-i]}isPointInBounds(t,r){let{width:i,height:s}=this.props;if(r&&r.handled)return!1;let n=t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=s;return n&&r&&r.stopPropagation(),n}isFunctionKeyPressed(t){let{srcEvent:r}=t;return!!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(t){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},t);this._eventStartBlocked=r}setProps(t){t.dragMode&&(this.dragMode=t.dragMode),this.props=t,\"transitionInterpolator\"in t||(t.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(t);let{inertia:r}=t;this.inertia=Number.isFinite(r)?r:r===!0?$at:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:n=!0,doubleClickZoom:o=!0,touchZoom:c=!0,touchRotate:f=!1,keyboard:_=!0}=t,w=!!this.onViewStateChange;this.toggleEvents(Vy.WHEEL,w&&i),this.toggleEvents(Vy.PAN,w),this.toggleEvents(Vy.PINCH,w&&(c||f)),this.toggleEvents(Vy.TRIPLE_PAN,w&&f),this.toggleEvents(Vy.DOUBLE_TAP,w&&o),this.toggleEvents(Vy.KEYBOARD,w&&_),this.scrollZoom=i,this.dragPan=s,this.dragRotate=n,this.doubleClickZoom=o,this.touchZoom=c,this.touchRotate=f,this.keyboard=_}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(t,r){this.eventManager&&t.forEach(i=>{this._events[i]!==r&&(this._events[i]=r,r?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(t,r=null,i={}){let s={...t.getViewportProps(),...r},n=this.controllerState!==t;if(this.state=t.getState(),this._setInteractionState(i),n){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:s,interactionState:this._interactionState,oldViewState:o})}}_onTransition(t){this.onViewStateChange({...t,interactionState:this._interactionState})}_setInteractionState(t){Object.assign(this._interactionState,t),this.onStateChange(this._interactionState)}_onPanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t)||t.rightButton||!1;(this.invertPan||this.dragMode===\"pan\")&&(i=!i);let s=this.controllerState[i?\"panStart\":\"rotateStart\"]({pos:r});return this._panMove=i,this.updateViewport(s,KA,{isDragging:!0}),!0}_onPan(t){return this.isDragging()?this._panMove?this._onPanMove(t):this._onPanRotate(t):!1}_onPanEnd(t){return this.isDragging()?this._panMove?this._onPanMoveEnd(t):this._onPanRotateEnd(t):!1}_onPanMove(t){if(!this.dragPan)return!1;let r=this.getCenter(t),i=this.controllerState.pan({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(t){let{inertia:r}=this;if(this.dragPan&&r&&t.velocity){let i=this.getCenter(t),s=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],n=this.controllerState.pan({pos:s}).panEnd();this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isPanning:!0})}else{let i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(t){if(!this.dragRotate)return!1;let r=this.getCenter(t),i=this.controllerState.rotate({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(t){let{inertia:r}=this;if(this.dragRotate&&r&&t.velocity){let i=this.getCenter(t),s=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],n=this.controllerState.rotate({pos:s}).rotateEnd();this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isRotating:!0})}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(t){if(!this.scrollZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;t.srcEvent.preventDefault();let{speed:i=.01,smooth:s=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:n}=t,o=2/(1+Math.exp(-Math.abs(n*i)));n<0&&o!==0&&(o=1/o);let c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,{...this._getTransitionProps({around:r}),transitionDuration:s?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.rotateStart({pos:r});return this.updateViewport(i,KA,{isDragging:!0}),!0}_onTriplePan(t){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(t);r[0]-=t.deltaX;let i=this.controllerState.rotate({pos:r});return this.updateViewport(i,KA,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&t.velocityY){let i=this.getCenter(t),s=[i[0],i[1]+=t.velocityY*r/2],n=this.controllerState.rotate({pos:s});this.updateViewport(n,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return og._startPinchRotation=t.rotation,og._lastPinchEvent=t,this.updateViewport(i,KA,{isDragging:!0}),!0}_onPinch(t){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:i}=t,s=this.getCenter(t);r=r.zoom({pos:s,scale:i})}if(this.touchRotate){let{rotation:i}=t;r=r.rotate({deltaAngleX:og._startPinchRotation-i})}return this.updateViewport(r,KA,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),og._lastPinchEvent=t,!0}_onPinchEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:i}=og;if(this.touchZoom&&r&&i&&t.scale!==i.scale){let s=this.getCenter(t),n=this.controllerState.rotateEnd(),o=Math.log2(t.scale),c=(o-Math.log2(i.scale))/(t.deltaTime-i.deltaTime),f=Math.pow(2,o+c*r/2);n=n.zoom({pos:s,scale:f}).zoomEnd(),this.updateViewport(n,{...this._getTransitionProps({around:s}),transitionDuration:r,transitionEasing:jE},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let s=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(s,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return og._startPinchRotation=null,og._lastPinchEvent=null,!0}_onDoubleTap(t){if(!this.doubleClickZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t),s=this.controllerState.zoom({pos:r,scale:i?.5:2});return this.updateViewport(s,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(t){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(t),{zoomSpeed:i,moveSpeed:s,rotateSpeedX:n,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:c}=this,f,_={};switch(t.srcEvent.code){case\"Minus\":f=r?c.zoomOut(i).zoomOut(i):c.zoomOut(i),_.isZooming=!0;break;case\"Equal\":f=r?c.zoomIn(i).zoomIn(i):c.zoomIn(i),_.isZooming=!0;break;case\"ArrowLeft\":r?(f=c.rotateLeft(n),_.isRotating=!0):(f=c.moveLeft(s),_.isPanning=!0);break;case\"ArrowRight\":r?(f=c.rotateRight(n),_.isRotating=!0):(f=c.moveRight(s),_.isPanning=!0);break;case\"ArrowUp\":r?(f=c.rotateUp(o),_.isRotating=!0):(f=c.moveUp(s),_.isPanning=!0);break;case\"ArrowDown\":r?(f=c.rotateDown(o),_.isRotating=!0):(f=c.moveDown(s),_.isPanning=!0);break;default:return!1}return this.updateViewport(f,this._getTransitionProps(),_),!0}_getTransitionProps(t){let{transition:r}=this;return!r||!r.transitionInterpolator?KA:t?{...r,transitionInterpolator:new sg({...t,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Fb=class{constructor(t,r){G(this,\"_viewportProps\",void 0),G(this,\"_state\",void 0),this._viewportProps=this.applyConstraints(t),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var X7=5,Xat=1.2,sD=class extends Fb{constructor(t){let{width:r,height:i,latitude:s,longitude:n,zoom:o,bearing:c=0,pitch:f=0,altitude:_=1.5,position:w=[0,0,0],maxZoom:C=20,minZoom:R=0,maxPitch:N=60,minPitch:j=0,startPanLngLat:Y,startZoomLngLat:rt,startRotatePos:$,startBearing:K,startPitch:tt,startZoom:ut,normalize:Pt=!0}=t;br(Number.isFinite(n)),br(Number.isFinite(s)),br(Number.isFinite(o)),super({width:r,height:i,latitude:s,longitude:n,zoom:o,bearing:c,pitch:f,altitude:_,maxZoom:C,minZoom:R,maxPitch:N,minPitch:j,normalize:Pt,position:w},{startPanLngLat:Y,startZoomLngLat:rt,startRotatePos:$,startBearing:K,startPitch:tt,startZoom:ut}),G(this,\"makeViewport\",void 0),this.makeViewport=t.makeViewport}panStart({pos:t}){return this._getUpdatedState({startPanLngLat:this._unproject(t)})}pan({pos:t,startPos:r}){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let n=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(n)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:t}){return this._getUpdatedState({startRotatePos:t,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:r=0,deltaAngleY:i=0}){let{startRotatePos:s,startBearing:n,startPitch:o}=this.getState();if(!s||n===void 0||o===void 0)return this;let c;return t?c=this._getNewRotation(t,s,o,n):c={bearing:n+r,pitch:o+i},this._getUpdatedState(c)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:t}){return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom({pos:t,startPos:r,scale:i}){let{startZoom:s,startZoomLngLat:n}=this.getState();if(n||(s=this.getViewportProps().zoom,n=this._unproject(r)||this._unproject(t)),!n)return this;let{maxZoom:o,minZoom:c}=this.getViewportProps(),f=s+Math.log2(i);f=Ml(f,c,o);let _=this.makeViewport({...this.getViewportProps(),zoom:f});return this._getUpdatedState({zoom:f,..._.panByPosition(n,t)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(t=2){return this._zoomFromCenter(t)}zoomOut(t=2){return this._zoomFromCenter(1/t)}moveLeft(t=100){return this._panFromCenter([t,0])}moveRight(t=100){return this._panFromCenter([-t,0])}moveUp(t=100){return this._panFromCenter([0,t])}moveDown(t=100){return this._panFromCenter([0,-t])}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}shortestPathFrom(t){let r=t.getViewportProps(),i={...this.getViewportProps()},{bearing:s,longitude:n}=i;return Math.abs(s-r.bearing)>180&&(i.bearing=s<0?s+360:s-360),Math.abs(n-r.longitude)>180&&(i.longitude=n<0?n+360:n-360),i}applyConstraints(t){let{maxZoom:r,minZoom:i,zoom:s}=t;t.zoom=Ml(s,i,r);let{maxPitch:n,minPitch:o,pitch:c}=t;t.pitch=Ml(c,o,n);let{normalize:f=!0}=t;return f&&Object.assign(t,NE(t)),t}_zoomFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.zoom({pos:[r/2,i/2],scale:t})}_panFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.pan({startPos:[r/2,i/2],pos:[r/2+t[0],i/2+t[1]]})}_getUpdatedState(t){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t})}_unproject(t){let r=this.makeViewport(this.getViewportProps());return t&&r.unproject(t)}_getNewRotation(t,r,i,s){let n=t[0]-r[0],o=t[1]-r[1],c=t[1],f=r[1],{width:_,height:w}=this.getViewportProps(),C=n/_,R=0;o>0?Math.abs(w-f)>X7&&(R=o/(f-w)*Xat):o<0&&f>X7&&(R=1-c/f),R=Ml(R,-1,1);let{minPitch:N,maxPitch:j}=this.getViewportProps(),Y=s+180*C,rt=i;return R>0?rt=i+R*(j-i):R<0&&(rt=i-R*(N-i)),{pitch:rt,bearing:Y}}},zb=class extends Bb{constructor(...t){super(...t),G(this,\"ControllerState\",sD),G(this,\"transition\",{transitionDuration:300,transitionInterpolator:new sg({transitionProps:{compare:[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\",\"position\"],required:[\"longitude\",\"latitude\",\"zoom\"]}})}),G(this,\"dragMode\",\"pan\")}setProps(t){t.position=t.position||[0,0,0];let r=this.props;super.setProps(t),(!r||r.height!==t.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...t,...this.state}))}};var jy=class extends Qc{get ViewportType(){return nc}get ControllerType(){return zb}};G(jy,\"displayName\",\"MapView\");var Kat=new Fy;function Jat(e,t){var r,i;let s=(r=e.order)!==null&&r!==void 0?r:1/0,n=(i=t.order)!==null&&i!==void 0?i:1/0;return s-n}var Nb=class{constructor(){G(this,\"effects\",void 0),G(this,\"_resolvedEffects\",[]),G(this,\"_defaultEffects\",[]),G(this,\"_needsRedraw\",void 0),this.effects=[],this._needsRedraw=\"Initial render\",this._setEffects([])}addDefaultEffect(t){let r=this._defaultEffects;if(!r.find(i=>i.id===t.id)){let i=r.findIndex(s=>Jat(s,t)>0);i<0?r.push(t):r.splice(i,0,t),this._setEffects(this.effects)}}setProps(t){\"effects\"in t&&(ao(t.effects,this.effects,1)||this._setEffects(t.effects))}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}getEffects(){return this._resolvedEffects}_setEffects(t){let r={};for(let s of this.effects)r[s.id]=s;let i=[];for(let s of t){let n=r[s.id];n&&n!==s?n.setProps?(n.setProps(s.props),i.push(n)):(n.cleanup(),i.push(s)):i.push(s),delete r[s.id]}for(let s in r)r[s].cleanup();this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),t.some(s=>s instanceof Fy)||this._resolvedEffects.push(Kat),this._needsRedraw=\"effects changed\"}finalize(){for(let t of this._resolvedEffects)t.cleanup();this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}};var Ub=class extends rc{shouldDrawLayer(t){let{operation:r}=t.props;return r.includes(\"draw\")||r.includes(\"terrain\")}};var tlt=\"deckRenderer.renderLayers\",Vb=class{constructor(t){G(this,\"gl\",void 0),G(this,\"layerFilter\",void 0),G(this,\"drawPickingColors\",void 0),G(this,\"drawLayersPass\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"renderCount\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"renderBuffers\",void 0),G(this,\"lastPostProcessEffect\",void 0),this.gl=t,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new Ub(t),this.pickLayersPass=new ng(t),this.renderCount=0,this._needsRedraw=\"Initial render\",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(t){this.layerFilter!==t.layerFilter&&(this.layerFilter=t.layerFilter,this._needsRedraw=\"layerFilter changed\"),this.drawPickingColors!==t.drawPickingColors&&(this.drawPickingColors=t.drawPickingColors,this._needsRedraw=\"drawPickingColors changed\")}renderLayers(t){if(!t.viewports.length)return;let r=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,i={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...t,target:t.target||yi.getDefaultFramebuffer(this.gl)};i.effects&&this._preRender(i.effects,i);let s=this.lastPostProcessEffect?this.renderBuffers[0]:i.target,n=r.render({...i,target:s});i.effects&&this._postRender(i.effects,i),this.renderCount++,Cs(tlt,this,n,t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}finalize(){let{renderBuffers:t}=this;for(let r of t)r.delete();t.length=0}_preRender(t,r){this.lastPostProcessEffect=null,r.preRenderStats=r.preRenderStats||{};for(let i of t)r.preRenderStats[i.id]=i.preRender(this.gl,r),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:t}=this;t.length===0&&t.push(new yi(this.gl),new yi(this.gl));for(let r of t)r.resize()}_postRender(t,r){let{renderBuffers:i}=this,s={...r,inputBuffer:i[0],swapBuffer:i[1],target:null};for(let n of t)if(n.postRender){if(n.id===this.lastPostProcessEffect){s.target=r.target,n.postRender(this.gl,s);break}let o=n.postRender(this.gl,s);s.inputBuffer=o,s.swapBuffer=o===i[0]?i[1]:i[0]}}};var elt={pickedColor:null,pickedObjectIndex:-1};function K7({pickedColors:e,decodePickingColor:t,deviceX:r,deviceY:i,deviceRadius:s,deviceRect:n}){let{x:o,y:c,width:f,height:_}=n,w=s*s,C=-1,R=0;for(let N=0;N<_;N++){let j=N+c-i,Y=j*j;if(Y>w)R+=4*f;else for(let rt=0;rt=0){let K=rt+o-r,tt=K*K+Y;tt<=w&&(w=tt,C=R)}R+=4}}if(C>=0){let N=e.slice(C,C+4),j=t(N);if(j){let Y=Math.floor(C/4/f),rt=C/4-Y*f;return{...j,pickedColor:N,pickedX:o+rt,pickedY:c+Y}}nr.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}return elt}function J7({pickedColors:e,decodePickingColor:t}){let r=new Map;if(e){for(let i=0;i=0){let n=e.slice(i,i+4),o=n.join(\",\");if(!r.has(o)){let c=t(n);c?r.set(o,{...c,color:n}):nr.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}}}return Array.from(r.values())}function oD({pickInfo:e,viewports:t,pixelRatio:r,x:i,y:s,z:n}){let o=t[0];t.length>1&&(o=rlt(e?.pickedViewports||t,{x:i,y:s}));let c;if(o){let f=[i-o.x,s-o.y];n!==void 0&&(f[2]=n),c=o.unproject(f)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:i,y:s,pixel:[i,s],coordinate:c,devicePixel:e&&\"pickedX\"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:r}}function tG(e){let{pickInfo:t,lastPickedInfo:r,mode:i,layers:s}=e,{pickedColor:n,pickedLayer:o,pickedObjectIndex:c}=t,f=o?[o]:[];if(i===\"hover\"){let C=r.index,R=r.layerId,N=o?o.props.id:null;if(N!==R||c!==C){if(N!==R){let j=s.find(Y=>Y.props.id===R);j&&f.unshift(j)}r.layerId=N,r.index=c,r.info=null}}let _=oD(e),w=new Map;return w.set(null,_),f.forEach(C=>{let R={..._};C===o&&(R.color=n,R.index=c,R.picked=!0),R=aD({layer:C,info:R,mode:i});let N=R.layer;C===o&&i===\"hover\"&&(r.info=R),w.set(N.id,R),i===\"hover\"&&N.updateAutoHighlight(R)}),w}function aD({layer:e,info:t,mode:r}){for(;e&&t;){let i=t.layer||null;t.sourceLayer=i,t.layer=e,t=e.getPickingInfo({info:t,mode:r,sourceLayer:i}),e=e.parent}return t}function rlt(e,t){for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.containsPixel(t))return i}return e[0]}var jb=class{constructor(t){G(this,\"gl\",void 0),G(this,\"pickingFBO\",void 0),G(this,\"depthFBO\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"layerFilter\",void 0),G(this,\"lastPickedInfo\",void 0),G(this,\"_pickable\",!0),this.gl=t,this.pickLayersPass=new ng(t),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(t){\"layerFilter\"in t&&(this.layerFilter=t.layerFilter),\"_pickable\"in t&&(this._pickable=t._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject(t){return this._pickClosestObject(t)}pickObjects(t){return this._pickVisibleObjects(t)}getLastPickedObject({x:t,y:r,layers:i,viewports:s},n=this.lastPickedInfo.info){let o=n&&n.layer&&n.layer.id,c=n&&n.viewport&&n.viewport.id,f=o?i.find(R=>R.id===o):null,_=c&&s.find(R=>R.id===c)||s[0],w=_&&_.unproject([t-_.x,r-_.y]);return{...n,...{x:t,y:r,viewport:_,coordinate:w,layer:f}}}_resizeBuffer(){var t,r;let{gl:i}=this;if(!this.pickingFBO&&(this.pickingFBO=new yi(i),yi.isSupported(i,{colorBufferFloat:!0}))){let s=new yi(i);s.attach({36064:new pi(i,{format:hr(i)?34836:6408,type:5126})}),this.depthFBO=s}(t=this.pickingFBO)===null||t===void 0||t.resize({width:i.canvas.width,height:i.canvas.height}),(r=this.depthFBO)===null||r===void 0||r.resize({width:i.canvas.width,height:i.canvas.height})}_getPickable(t){if(this._pickable===!1)return null;let r=t.filter(i=>this.pickLayersPass.shouldDrawLayer(i)&&!i.isComposite);return r.length?r:null}_pickClosestObject({layers:t,views:r,viewports:i,x:s,y:n,radius:o=0,depth:c=1,mode:f=\"query\",unproject3D:_,onViewportActive:w,effects:C}){let R=this._getPickable(t),N=Sl(this.gl);if(!R)return{result:[],emptyInfo:oD({viewports:i,x:s,y:n,pixelRatio:N})};this._resizeBuffer();let j=dy(this.gl,[s,n],!0),Y=[j.x+Math.floor(j.width/2),j.y+Math.floor(j.height/2)],rt=Math.round(o*N),{width:$,height:K}=this.pickingFBO,tt=this._getPickingRect({deviceX:Y[0],deviceY:Y[1],deviceRadius:rt,deviceWidth:$,deviceHeight:K}),ut={x:s-o,y:n-o,width:o*2+1,height:o*2+1},Pt,Ot=[],Kt=new Set;for(let Zt=0;Zt=_)break;let Ge=Ot[ue],tr={color:Ge.pickedColor,layer:null,index:Ge.pickedObjectIndex,picked:!0,x:s,y:n,pixelRatio:N};tr=aD({layer:Ge.pickedLayer,info:tr,mode:f});let er=(le=tr.object)!==null&&le!==void 0?le:\"\".concat(tr.layer.id,\"[\").concat(tr.index,\"]\");Kt.has(er)||Kt.set(er,tr)}return Array.from(Kt.values())}_drawAndSample({layers:t,views:r,viewports:i,onViewportActive:s,deviceRect:n,cullRect:o,effects:c,pass:f},_=!1){let w=_?this.depthFBO:this.pickingFBO,C={layers:t,layerFilter:this.layerFilter,views:r,viewports:i,onViewportActive:s,pickingFBO:w,deviceRect:n,cullRect:o,effects:c,pass:f,pickZ:_,preRenderStats:{}};for(let K of c)K.useInPicking&&(C.preRenderStats[K.id]=K.preRender(this.gl,C));let{decodePickingColor:R}=this.pickLayersPass.render(C),{x:N,y:j,width:Y,height:rt}=n,$=new(_?Float32Array:Uint8Array)(Y*rt*4);return Rh(w,{sourceX:N,sourceY:j,sourceWidth:Y,sourceHeight:rt,target:$}),{pickedColors:$,decodePickingColor:R}}_getPickingRect({deviceX:t,deviceY:r,deviceRadius:i,deviceWidth:s,deviceHeight:n}){let o=Math.max(0,t-i),c=Math.max(0,r-i),f=Math.min(s,t+i+1)-o,_=Math.min(n,r+i+1)-c;return f<=0||_<=0?null:{x:o,y:c,width:f,height:_}}};var ilt={zIndex:\"1\",position:\"absolute\",pointerEvents:\"none\",color:\"#a0a7b4\",backgroundColor:\"#29323c\",padding:\"10px\",top:\"0\",left:\"0\",display:\"none\"},Gb=class{constructor(t){G(this,\"el\",null),G(this,\"isVisible\",!1);let r=t.parentElement;r&&(this.el=document.createElement(\"div\"),this.el.className=\"deck-tooltip\",Object.assign(this.el.style,ilt),r.appendChild(this.el))}setTooltip(t,r,i){let s=this.el;if(s){if(typeof t==\"string\")s.innerText=t;else if(t)t.text&&(s.innerText=t.text),t.html&&(s.innerHTML=t.html),t.className&&(s.className=t.className);else{this.isVisible=!1,s.style.display=\"none\";return}this.isVisible=!0,s.style.display=\"block\",s.style.transform=\"translate(\".concat(r,\"px, \").concat(i,\"px)\"),t&&typeof t==\"object\"&&\"style\"in t&&Object.assign(s.style,t.style)}}remove(){this.el&&(this.el.remove(),this.el=null)}};var ag=ki(eG());var nlt={mousedown:1,mousemove:2,mouseup:4};function slt(e,t){for(let r=0;r0&&i.type===\"pointerdown\"&&(slt(s,n=>n.pointerId===i.pointerId)||s.push(i)),t.call(this,i)}}function iG(e){e.prototype.handler=function(r){let i=nlt[r.type];i&1&&r.button>=0&&(this.pressed=!0),i&2&&r.which===0&&(i=4),this.pressed&&(i&4&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:\"mouse\",srcEvent:r}))}}rG(ag.PointerEventInput);iG(ag.MouseInput);var nG=ag.Manager,Wh=ag;var Hh=class{constructor(t,r,i){this.element=t,this.callback=r,this.options={enable:!0,...i}}};var sG=Wh?[[Wh.Pan,{event:\"tripan\",pointers:3,threshold:0,enable:!1}],[Wh.Rotate,{enable:!1}],[Wh.Pinch,{enable:!1}],[Wh.Swipe,{enable:!1}],[Wh.Pan,{threshold:0,enable:!1}],[Wh.Press,{enable:!1}],[Wh.Tap,{event:\"doubletap\",taps:2,enable:!1}],[Wh.Tap,{event:\"anytap\",enable:!1}],[Wh.Tap,{enable:!1}]]:null,lD={tripan:[\"rotate\",\"pinch\",\"pan\"],rotate:[\"pinch\"],pinch:[\"pan\"],pan:[\"press\",\"doubletap\",\"anytap\",\"tap\"],doubletap:[\"anytap\"],anytap:[\"tap\"]},oG={doubletap:[\"tap\"]},aG={pointerdown:\"pointerdown\",pointermove:\"pointermove\",pointerup:\"pointerup\",touchstart:\"pointerdown\",touchmove:\"pointermove\",touchend:\"pointerup\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\"},Gy={KEY_EVENTS:[\"keydown\",\"keyup\"],MOUSE_EVENTS:[\"mousedown\",\"mousemove\",\"mouseup\",\"mouseover\",\"mouseout\",\"mouseleave\"],WHEEL_EVENTS:[\"wheel\",\"mousewheel\"]},lG={tap:\"tap\",anytap:\"anytap\",doubletap:\"doubletap\",press:\"press\",pinch:\"pinch\",pinchin:\"pinch\",pinchout:\"pinch\",pinchstart:\"pinch\",pinchmove:\"pinch\",pinchend:\"pinch\",pinchcancel:\"pinch\",rotate:\"rotate\",rotatestart:\"rotate\",rotatemove:\"rotate\",rotateend:\"rotate\",rotatecancel:\"rotate\",tripan:\"tripan\",tripanstart:\"tripan\",tripanmove:\"tripan\",tripanup:\"tripan\",tripandown:\"tripan\",tripanleft:\"tripan\",tripanright:\"tripan\",tripanend:\"tripan\",tripancancel:\"tripan\",pan:\"pan\",panstart:\"pan\",panmove:\"pan\",panup:\"pan\",pandown:\"pan\",panleft:\"pan\",panright:\"pan\",panend:\"pan\",pancancel:\"pan\",swipe:\"swipe\",swipeleft:\"swipe\",swiperight:\"swipe\",swipeup:\"swipe\",swipedown:\"swipe\"},cD={click:\"tap\",anyclick:\"anytap\",dblclick:\"doubletap\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\",mouseover:\"pointerover\",mouseout:\"pointerout\",mouseleave:\"pointerleave\"};var cG=typeof navigator<\"u\"&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\",lg=typeof window<\"u\"?window:global;var WE=!1;try{let e={get passive(){return WE=!0,!0}};lg.addEventListener(\"test\",null,e),lg.removeEventListener(\"test\",null)}catch{WE=!1}var olt=cG.indexOf(\"firefox\")!==-1,{WHEEL_EVENTS:alt}=Gy,uG=\"wheel\",hG=4.000244140625,llt=40,clt=.25,Wb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{if(!this.options.enable)return;let n=s.deltaY;lg.WheelEvent&&(olt&&s.deltaMode===lg.WheelEvent.DOM_DELTA_PIXEL&&(n/=lg.devicePixelRatio),s.deltaMode===lg.WheelEvent.DOM_DELTA_LINE&&(n*=llt)),n!==0&&n%hG===0&&(n=Math.floor(n/hG)),s.shiftKey&&n&&(n=n*clt),this.callback({type:uG,center:{x:s.clientX,y:s.clientY},delta:-n,srcEvent:s,pointerType:\"mouse\",target:s.target})},this.events=(this.options.events||[]).concat(alt),this.events.forEach(s=>t.addEventListener(s,this.handleEvent,WE?{passive:!1}:!1))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===uG&&(this.options.enable=r)}};var{MOUSE_EVENTS:ult}=Gy,fG=\"pointermove\",dG=\"pointerover\",pG=\"pointerout\",AG=\"pointerenter\",mG=\"pointerleave\",Hb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=n=>{this.handleOverEvent(n),this.handleOutEvent(n),this.handleEnterEvent(n),this.handleLeaveEvent(n),this.handleMoveEvent(n)},this.pressed=!1;let{enable:s}=this.options;this.enableMoveEvent=s,this.enableLeaveEvent=s,this.enableEnterEvent=s,this.enableOutEvent=s,this.enableOverEvent=s,this.events=(this.options.events||[]).concat(ult),this.events.forEach(n=>t.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===fG&&(this.enableMoveEvent=r),t===dG&&(this.enableOverEvent=r),t===pG&&(this.enableOutEvent=r),t===AG&&(this.enableEnterEvent=r),t===mG&&(this.enableLeaveEvent=r)}handleOverEvent(t){this.enableOverEvent&&t.type===\"mouseover\"&&this._emit(dG,t)}handleOutEvent(t){this.enableOutEvent&&t.type===\"mouseout\"&&this._emit(pG,t)}handleEnterEvent(t){this.enableEnterEvent&&t.type===\"mouseenter\"&&this._emit(AG,t)}handleLeaveEvent(t){this.enableLeaveEvent&&t.type===\"mouseleave\"&&this._emit(mG,t)}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case\"mousedown\":t.button>=0&&(this.pressed=!0);break;case\"mousemove\":t.which===0&&(this.pressed=!1),this.pressed||this._emit(fG,t);break;case\"mouseup\":this.pressed=!1;break;default:}}_emit(t,r){this.callback({type:t,center:{x:r.clientX,y:r.clientY},srcEvent:r,pointerType:\"mouse\",target:r.target})}};var{KEY_EVENTS:hlt}=Gy,gG=\"keydown\",_G=\"keyup\",qb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{let n=s.target||s.srcElement;n.tagName===\"INPUT\"&&n.type===\"text\"||n.tagName===\"TEXTAREA\"||(this.enableDownEvent&&s.type===\"keydown\"&&this.callback({type:gG,srcEvent:s,key:s.key,target:s.target}),this.enableUpEvent&&s.type===\"keyup\"&&this.callback({type:_G,srcEvent:s,key:s.key,target:s.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(hlt),t.tabIndex=this.options.tabIndex||0,t.style.outline=\"none\",this.events.forEach(s=>t.addEventListener(s,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===gG&&(this.enableDownEvent=r),t===_G&&(this.enableUpEvent=r)}};var yG=\"contextmenu\",Zb=class extends Hh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{this.options.enable&&this.callback({type:yG,center:{x:s.clientX,y:s.clientY},srcEvent:s,pointerType:\"mouse\",target:s.target})},t.addEventListener(\"contextmenu\",this.handleEvent)}destroy(){this.element.removeEventListener(\"contextmenu\",this.handleEvent)}enableEventType(t,r){t===yG&&(this.options.enable=r)}};var flt={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},dlt=1,plt=2,Alt=3,mlt=0,glt=1,_lt=2,ylt=1,vlt=2,xlt=4;function vG(e){let t=flt[e.srcEvent.type];if(!t)return null;let{buttons:r,button:i,which:s}=e.srcEvent,n=!1,o=!1,c=!1;return t===4||t===2&&!Number.isFinite(r)?(n=s===dlt,o=s===plt,c=s===Alt):t===2?(n=!!(r&ylt),o=!!(r&xlt),c=!!(r&vlt)):t===1&&(n=i===mlt,o=i===glt,c=i===_lt),{leftButton:n,middleButton:o,rightButton:c}}function xG(e,t){let r=e.center;if(!r)return null;let i=t.getBoundingClientRect(),s=i.width/t.offsetWidth||1,n=i.height/t.offsetHeight||1,o={x:(r.x-i.left-t.clientLeft)/s,y:(r.y-i.top-t.clientTop)/n};return{center:r,offsetCenter:o}}var uD={srcElement:\"root\",priority:0},Yb=class{constructor(t){this.handleEvent=r=>{if(this.isEmpty())return;let i=this._normalizeEvent(r),s=r.srcEvent.target;for(;s&&s!==i.rootElement;){if(this._emit(i,s),i.handled)return;s=s.parentNode}this._emit(i,\"root\")},this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(t,r,i,s=!1,n=!1){let{handlers:o,handlersByElement:c}=this,f=uD;typeof i==\"string\"||i&&i.addEventListener?f={...uD,srcElement:i}:i&&(f={...uD,...i});let _=c.get(f.srcElement);_||(_=[],c.set(f.srcElement,_));let w={type:t,handler:r,srcElement:f.srcElement,priority:f.priority};s&&(w.once=!0),n&&(w.passive=!0),o.push(w),this._active=this._active||!w.passive;let C=_.length-1;for(;C>=0&&!(_[C].priority>=w.priority);)C--;_.splice(C+1,0,w)}remove(t,r){let{handlers:i,handlersByElement:s}=this;for(let n=i.length-1;n>=0;n--){let o=i[n];if(o.type===t&&o.handler===r){i.splice(n,1);let c=s.get(o.srcElement);c.splice(c.indexOf(o),1),c.length===0&&s.delete(o.srcElement)}}this._active=i.some(n=>!n.passive)}_emit(t,r){let i=this.handlersByElement.get(r);if(i){let s=!1,n=()=>{t.handled=!0},o=()=>{t.handled=!0,s=!0},c=[];for(let f=0;f{t.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:r}}};var blt={events:null,recognizers:null,recognizerOptions:{},Manager:nG,touchAction:\"none\",tabIndex:0},Wy=class{constructor(t=null,r){this._onBasicInput=s=>{let{srcEvent:n}=s,o=aG[n.type];o&&this.manager.emit(o,s)},this._onOtherEvent=s=>{this.manager.emit(s.type,s)},this.options={...blt,...r},this.events=new Map,this.setElement(t);let{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(t){if(this.element&&this.destroy(),this.element=t,!t)return;let{options:r}=this,i=r.Manager;this.manager=new i(t,{touchAction:r.touchAction,recognizers:r.recognizers||sG}).on(\"hammer.input\",this._onBasicInput),r.recognizers||Object.keys(lD).forEach(s=>{let n=this.manager.get(s);n&&lD[s].forEach(o=>{n.recognizeWith(o)})});for(let s in r.recognizerOptions){let n=this.manager.get(s);if(n){let o=r.recognizerOptions[s];delete o.enable,n.set(o)}}this.wheelInput=new Wb(t,this._onOtherEvent,{enable:!1}),this.moveInput=new Hb(t,this._onOtherEvent,{enable:!1}),this.keyInput=new qb(t,this._onOtherEvent,{enable:!1,tabIndex:r.tabIndex}),this.contextmenuInput=new Zb(t,this._onOtherEvent,{enable:!1});for(let[s,n]of this.events)n.isEmpty()||(this._toggleRecognizer(n.recognizerName,!0),this.manager.on(s,n.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,r,i){this._addEventHandler(t,r,i,!1)}once(t,r,i){this._addEventHandler(t,r,i,!0)}watch(t,r,i){this._addEventHandler(t,r,i,!1,!0)}off(t,r){this._removeEventHandler(t,r)}_toggleRecognizer(t,r){let{manager:i}=this;if(!i)return;let s=i.get(t);if(s&&s.options.enable!==r){s.set({enable:r});let n=oG[t];n&&!this.options.recognizers&&n.forEach(o=>{let c=i.get(o);r?(c.requireFailure(t),s.dropRequireFailure(o)):c.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,r),this.moveInput.enableEventType(t,r),this.keyInput.enableEventType(t,r),this.contextmenuInput.enableEventType(t,r)}_addEventHandler(t,r,i,s,n){if(typeof t!=\"string\"){i=r;for(let w in t)this._addEventHandler(w,t[w],i,s,n);return}let{manager:o,events:c}=this,f=cD[t]||t,_=c.get(f);_||(_=new Yb(this),c.set(f,_),_.recognizerName=lG[f]||f,o&&o.on(f,_.handleEvent)),_.add(t,r,i,s,n),_.isEmpty()||this._toggleRecognizer(_.recognizerName,!0)}_removeEventHandler(t,r){if(typeof t!=\"string\"){for(let o in t)this._removeEventHandler(o,t[o]);return}let{events:i}=this,s=cD[t]||t,n=i.get(s);if(n&&(n.remove(t,r),n.isEmpty())){let{recognizerName:o}=n,c=!1;for(let f of i.values())if(f.recognizerName===o&&!f.isEmpty()){c=!0;break}c||this._toggleRecognizer(o,!1)}}};function cg(){}var wlt=({isDragging:e})=>e?\"grabbing\":\"grab\",bG={id:\"\",width:\"100%\",height:\"100%\",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:\"none\",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:cg,onResize:cg,onViewStateChange:cg,onInteractionStateChange:cg,onBeforeRender:cg,onAfterRender:cg,onLoad:cg,onError:e=>nr.error(e.message,e.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:wlt,getTooltip:null,debug:!1,drawPickingColors:!1},ap=class{constructor(t){G(this,\"props\",void 0),G(this,\"width\",0),G(this,\"height\",0),G(this,\"userData\",{}),G(this,\"canvas\",null),G(this,\"viewManager\",null),G(this,\"layerManager\",null),G(this,\"effectManager\",null),G(this,\"deckRenderer\",null),G(this,\"deckPicker\",null),G(this,\"eventManager\",null),G(this,\"tooltip\",null),G(this,\"metrics\",void 0),G(this,\"animationLoop\",void 0),G(this,\"stats\",void 0),G(this,\"viewState\",void 0),G(this,\"cursorState\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"_pickRequest\",void 0),G(this,\"_lastPointerDownInfo\",null),G(this,\"_metricsCounter\",void 0),G(this,\"_onPointerMove\",r=>{let{_pickRequest:i}=this;if(r.type===\"pointerleave\")i.x=-1,i.y=-1,i.radius=0;else{if(r.leftButton||r.rightButton)return;{let s=r.offsetCenter;if(!s)return;i.x=s.x,i.y=s.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=r}),G(this,\"_onEvent\",r=>{let i=U4[r.type],s=r.offsetCenter;if(!i||!s||!this.layerManager)return;let n=this.layerManager.getLayers(),o=this.deckPicker.getLastPickedObject({x:s.x,y:s.y,layers:n,viewports:this.getViewports(s)},this._lastPointerDownInfo),{layer:c}=o,f=c&&(c[i.handler]||c.props[i.handler]),_=this.props[i.handler],w=!1;f&&(w=f.call(c,o,r)),!w&&_&&_(o,r)}),G(this,\"_onPointerDown\",r=>{let i=r.offsetCenter,s=this._pick(\"pickObject\",\"pickObject Time\",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=s.result[0]||s.emptyInfo}),this.props={...bG,...t},t=this.props,this._needsRedraw=\"Initial render\",this._pickRequest={mode:\"hover\",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},t.viewState&&t.initialViewState&&nr.warn(\"View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.\")(),cy()===\"IE\"&&nr.warn(\"IE 11 is not supported\")(),this.viewState=t.initialViewState,t.gl||typeof document<\"u\"&&(this.canvas=this._createCanvas(t)),this.animationLoop=this._createAnimationLoop(t),this.stats=new Vf({id:\"deck.gl\"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(t),t._typedArrayManagerProps&&jh.setOptions(t._typedArrayManagerProps),this.animationLoop.start()}finalize(){var t,r,i,s,n,o,c,f;if((t=this.animationLoop)===null||t===void 0||t.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,(r=this.layerManager)===null||r===void 0||r.finalize(),this.layerManager=null,(i=this.viewManager)===null||i===void 0||i.finalize(),this.viewManager=null,(s=this.effectManager)===null||s===void 0||s.finalize(),this.effectManager=null,(n=this.deckRenderer)===null||n===void 0||n.finalize(),this.deckRenderer=null,(o=this.deckPicker)===null||o===void 0||o.finalize(),this.deckPicker=null,(c=this.eventManager)===null||c===void 0||c.destroy(),this.eventManager=null,(f=this.tooltip)===null||f===void 0||f.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var _;(_=this.canvas.parentElement)===null||_===void 0||_.removeChild(this.canvas),this.canvas=null}}setProps(t){this.stats.get(\"setProps Time\").timeStart(),\"onLayerHover\"in t&&nr.removed(\"onLayerHover\",\"onHover\")(),\"onLayerClick\"in t&&nr.removed(\"onLayerClick\",\"onClick\")(),t.initialViewState&&!ao(this.props.initialViewState,t.initialViewState,3)&&(this.viewState=t.initialViewState),Object.assign(this.props,t),this._setCanvasSize(this.props);let r=Object.create(this.props);Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(r),this.layerManager&&(this.viewManager.setProps(r),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(r),this.effectManager.setProps(r),this.deckRenderer.setProps(r),this.deckPicker.setProps(r)),this.stats.get(\"setProps Time\").timeEnd()}needsRedraw(t={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return\"Deck._animate\";let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);let i=this.viewManager.needsRedraw(t),s=this.layerManager.needsRedraw(t),n=this.effectManager.needsRedraw(t),o=this.deckRenderer.needsRedraw(t);return r=r||i||s||n||o,r}redraw(t){if(!this.layerManager)return;let r=this.needsRedraw({clearRedrawFlags:!0});r=t||r,r&&(this.stats.get(\"Redraw Count\").incrementCount(),this.props._customRender?this.props._customRender(r):this._drawLayers(r))}get isInitialized(){return this.viewManager!==null}getViews(){return br(this.viewManager),this.viewManager.views}getViewports(t){return br(this.viewManager),this.viewManager.getViewports(t)}getCanvas(){return this.canvas}pickObject(t){let r=this._pick(\"pickObject\",\"pickObject Time\",t).result;return r.length?r[0]:null}pickMultipleObjects(t){return t.depth=t.depth||10,this._pick(\"pickObject\",\"pickMultipleObjects Time\",t).result}pickObjects(t){return this._pick(\"pickObjects\",\"pickObjects Time\",t)}_addResources(t,r=!1){for(let i in t)this.layerManager.resourceManager.add({resourceId:i,data:t[i],forceUpdate:r})}_removeResources(t){for(let r of t)this.layerManager.resourceManager.remove(r)}_addDefaultEffect(t){this.effectManager.addDefaultEffect(t)}_pick(t,r,i){br(this.deckPicker);let{stats:s}=this;s.get(\"Pick Count\").incrementCount(),s.get(r).timeStart();let n=this.deckPicker[t]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return s.get(r).timeEnd(),n}_createCanvas(t){let r=t.canvas;return typeof r==\"string\"&&(r=document.getElementById(r),br(r)),r||(r=document.createElement(\"canvas\"),r.id=t.id||\"deckgl-overlay\",(t.parent||document.body).appendChild(r)),Object.assign(r.style,t.style),r}_setCanvasSize(t){if(!this.canvas)return;let{width:r,height:i}=t;if(r||r===0){let n=Number.isFinite(r)?\"\".concat(r,\"px\"):r;this.canvas.style.width=n}if(i||i===0){var s;let n=Number.isFinite(i)?\"\".concat(i,\"px\"):i;this.canvas.style.position=((s=t.style)===null||s===void 0?void 0:s.position)||\"absolute\",this.canvas.style.height=n}}_updateCanvasSize(){var t,r;let{canvas:i}=this;if(!i)return;let s=(t=i.clientWidth)!==null&&t!==void 0?t:i.width,n=(r=i.clientHeight)!==null&&r!==void 0?r:i.height;if(s!==this.width||n!==this.height){var o,c;this.width=s,this.height=n,(o=this.viewManager)===null||o===void 0||o.setProps({width:s,height:n}),(c=this.layerManager)===null||c===void 0||c.activateViewport(this.getViewports()[0]),this.props.onResize({width:s,height:n})}}_createAnimationLoop(t){let{width:r,height:i,gl:s,glOptions:n,debug:o,onError:c,onBeforeRender:f,onAfterRender:_,useDevicePixels:w}=t;return new X0({width:r,height:i,useDevicePixels:w,autoResizeDrawingBuffer:!s,autoResizeViewport:!1,gl:s,onCreateContext:C=>py({...n,...C,canvas:this.canvas,debug:o,onContextLost:()=>this._onContextLost()}),onInitialize:C=>this._setGLContext(C.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:f,onAfterRender:_,onError:c})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let t=this.props.views||[new jy({id:\"default-view\"})];return t=Array.isArray(t)?t:[t],t.length&&this.props.controller&&(t[0].props.controller=this.props.controller),t}_onContextLost(){let{onError:t}=this.props;this.animationLoop&&t&&t(new Error(\"WebGL context is lost\"))}_pickAndCallback(){let{_pickRequest:t}=this;if(t.event){let{result:i,emptyInfo:s}=this._pick(\"pickObject\",\"pickObject Time\",t);this.cursorState.isHovering=i.length>0;let n=s,o=!1;for(let c of i){var r;n=c,o=((r=c.layer)===null||r===void 0?void 0:r.onHover(c,t.event))||o}if(!o&&this.props.onHover&&this.props.onHover(n,t.event),this.props.getTooltip&&this.tooltip){let c=this.props.getTooltip(n);this.tooltip.setTooltip(c,n.x,n.y)}t.event=null}}_updateCursor(){let t=this.props.parent||this.canvas;t&&(t.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext(t){if(this.layerManager)return;this.canvas||(this.canvas=t.canvas,V0(t,{enable:!0,copyState:!0})),this.tooltip=new Gb(this.canvas),wl(t,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(t);let r=new QA;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new Wy(this.props.parent||t.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let s in U4)this.eventManager.on(s,this._onEvent);this.viewManager=new Rb({timeline:r,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let i=this.viewManager.getViewports()[0];this.layerManager=new kb(t,{deck:this,stats:this.stats,viewport:i,timeline:r}),this.effectManager=new Nb,this.deckRenderer=new Vb(t),this.deckPicker=new jb(t),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(t,r){let{gl:i}=this.layerManager.context;wl(i,this.props.parameters),this.props.onBeforeRender({gl:i}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:\"screen\",effects:this.effectManager.getEffects(),...r}),this.props.onAfterRender({gl:i})}_onRenderFrame(t){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),nr.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(t){let r=this.props.onViewStateChange(t)||t.viewState;this.viewState&&(this.viewState={...this.viewState,[t.viewId]:r},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(t){this.cursorState.isDragging=t.isDragging||!1,this.props.onInteractionStateChange(t)}_getFrameStats(){let{stats:t}=this;t.get(\"frameRate\").timeEnd(),t.get(\"frameRate\").timeStart();let r=this.animationLoop.stats;t.get(\"GPU Time\").addTime(r.get(\"GPU Time\").lastTiming),t.get(\"CPU Time\").addTime(r.get(\"CPU Time\").lastTiming)}_getMetrics(){let{metrics:t,stats:r}=this;t.fps=r.get(\"frameRate\").getHz(),t.setPropsTime=r.get(\"setProps Time\").time,t.updateAttributesTime=r.get(\"Update Attributes\").time,t.framesRedrawn=r.get(\"Redraw Count\").count,t.pickTime=r.get(\"pickObject Time\").time+r.get(\"pickMultipleObjects Time\").time+r.get(\"pickObjects Time\").time,t.pickCount=r.get(\"Pick Count\").count,t.gpuTime=r.get(\"GPU Time\").time,t.cpuTime=r.get(\"CPU Time\").time,t.gpuTimePerFrame=r.get(\"GPU Time\").getAverageTime(),t.cpuTimePerFrame=r.get(\"CPU Time\").getAverageTime();let i=Lu.get(\"Memory Usage\");t.bufferMemory=i.get(\"Buffer Memory\").count,t.textureMemory=i.get(\"Texture Memory\").count,t.renderbufferMemory=i.get(\"Renderbuffer Memory\").count,t.gpuMemory=i.get(\"GPU Memory\").count}};G(ap,\"defaultProps\",bG);G(ap,\"VERSION\",nV);var ug=class{constructor(t,r){G(this,\"opts\",void 0),G(this,\"source\",void 0),this.opts=r,this.source=t}get value(){return this.source.value}getValue(){let t=this.source.getBuffer(),r=this.getAccessor();if(t)return[t,r];let{value:i}=this.source,{size:s}=r,n=i;if(i&&i.length!==s){n=new Float32Array(s);let o=r.elementOffset||0;for(let c=0;c=n){let o=new Array(s).fill(1/0),c=new Array(s).fill(-1/0);for(let f=0;fc[_]&&(c[_]=w)}t=[o,c]}}return this.state.bounds=t,t}setData(t){let{state:r}=this,i;ArrayBuffer.isView(t)?i={value:t}:t instanceof Fr?i={buffer:t}:i=t;let s={...this.settings,...i};if(r.bufferAccessor=s,r.bounds=null,i.constant){let n=i.value;if(n=this._normalizeValue(n,[],0),this.settings.normalized&&(n=this.normalizeConstant(n)),!(!r.constant||!this._areValuesEqual(n,this.value)))return!1;r.externalBuffer=null,r.constant=!0,this.value=n}else if(i.buffer){let n=i.buffer;r.externalBuffer=n,r.constant=!1,this.value=i.value||null;let o=i.value instanceof Float64Array;s.type=i.type||n.accessor.type,s.bytesPerElement=n.accessor.BYTES_PER_ELEMENT*(o?2:1),s.stride=HE(s)}else if(i.value){this._checkExternalBuffer(i);let n=i.value;r.externalBuffer=null,r.constant=!1,this.value=n,s.bytesPerElement=n.BYTES_PER_ELEMENT,s.stride=HE(s);let{buffer:o,byteOffset:c}=this;this.doublePrecision&&n instanceof Float64Array&&(n=UE(n,s));let f=n.byteLength+c+s.stride*2;o.byteLength(r+128)/255*2-1);case 5122:return new Float32Array(t).map(r=>(r+32768)/65535*2-1);case 5121:return new Float32Array(t).map(r=>r/255);case 5123:return new Float32Array(t).map(r=>r/65535);default:return t}}_normalizeValue(t,r,i){let{defaultValue:s,size:n}=this.settings;if(Number.isFinite(t))return r[i]=t,r;if(!t){let o=n;for(;--o>=0;)r[i+o]=s[o];return r}switch(n){case 4:r[i+3]=Number.isFinite(t[3])?t[3]:s[3];case 3:r[i+2]=Number.isFinite(t[2])?t[2]:s[2];case 2:r[i+1]=Number.isFinite(t[1])?t[1]:s[1];case 1:r[i+0]=Number.isFinite(t[0])?t[0]:s[0];break;default:let o=n;for(;--o>=0;)r[i+o]=Number.isFinite(t[o])?t[o]:s[o]}return r}_areValuesEqual(t,r){if(!t||!r)return!1;let{size:i}=this;for(let s=0;s0&&(MG.length=e.length,i=MG):i=TG,(t>0||Number.isFinite(r))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(t,r),s.index=t-1),{iterable:i,objectInfo:s}}function qE(e){return e&&e[Symbol.asyncIterator]}function ZE(e,t){let{size:r,stride:i,offset:s,startIndices:n,nested:o}=t,c=e.BYTES_PER_ELEMENT,f=i?i/c:r,_=s?s/c:0,w=Math.floor((e.length-_)/f);return(C,{index:R,target:N})=>{if(!n){let $=R*f+_;for(let K=0;K=t[1]))return e;let r=[],i=e.length,s=0;for(let n=0;nt[1]?r.push(o):t=[Math.min(o[0],t[0]),Math.max(o[1],t[1])]}return r.splice(s,0,t),r}function hD(e){let{source:t,target:r,start:i=0,size:s,getData:n}=e,o=e.end||r.length,c=t.length,f=o-i;if(c>f){r.set(t.subarray(0,f),i);return}if(r.set(t,i),!n)return;let _=c;for(;_i(w+c,C)),_=Math.min(s.length,n.length);for(let w=1;w<_;w++){let C=s[w]*r,R=n[w]*r;hD({source:e.subarray(o,C),target:t,start:c,end:R,size:r,getData:f}),o=C,c=R}return ce},spring:{stiffness:.05,damping:.5}};function YE(e,t){if(!e)return null;Number.isFinite(e)&&(e={type:\"interpolation\",duration:e});let r=e.type||\"interpolation\";return{...Mlt[r],...t,...e,type:r}}function QE(e,t){let r=t.getBuffer();return r?[r,{divisor:0,size:t.size,normalized:t.settings.normalized}]:t.value}function $E(e){switch(e){case 1:return\"float\";case 2:return\"vec2\";case 3:return\"vec3\";case 4:return\"vec4\";default:throw new Error('No defined attribute type for size \"'.concat(e,'\"'))}}function XE(e){e.push(e.shift())}function Xb(e,t){let{doublePrecision:r,settings:i,value:s,size:n}=e,o=r&&s instanceof Float64Array?2:1;return(i.noAlloc?s.length:t*n)*o}function KE({buffer:e,numInstances:t,attribute:r,fromLength:i,fromStartIndices:s,getData:n=o=>o}){let o=r.doublePrecision&&r.value instanceof Float64Array?2:1,c=r.size*o,f=r.byteOffset,_=r.startIndices,w=s&&_,C=Xb(r,t),R=r.isConstant;if(!w&&i>=C)return;let N=R?r.value:r.getBuffer().getData({srcByteOffset:f});if(r.settings.normalized&&!R){let $=n;n=(K,tt)=>r.normalizeConstant($(K,tt))}let j=R?($,K)=>n(N,K):($,K)=>n(N.subarray($,$+c),K),Y=e.getData({length:i}),rt=new Float32Array(C);IG({source:Y,target:rt,sourceStartIndices:s,targetStartIndices:_,size:c,getData:j}),e.byteLengtht[n])]:t[r];return YE(s,i)}setNeedsUpdate(t=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||t,this.setNeedsRedraw(t),r){let{startRow:i=0,endRow:s=1/0}=r;this.state.updateRanges=PG(this.state.updateRanges,[i,s])}else this.state.updateRanges=$b}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=EG}setNeedsRedraw(t=this.id){this.state.needsRedraw=this.state.needsRedraw||t}allocate(t){let{state:r,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(t,r.updateRanges!==$b),!0):!1}updateBuffer({numInstances:t,data:r,props:i,context:s}){if(!this.needsUpdate())return!1;let{state:{updateRanges:n},settings:{update:o,noAlloc:c}}=this,f=!0;if(o){for(let[_,w]of n)o.call(s,this,{data:r,startRow:_,endRow:w,props:i,numInstances:t});if(this.value)if(this.constant||this.buffer.byteLengthw?_.set(tt,Y):(t._normalizeValue(tt,$.target,0),iD({target:_,source:$.target,start:Y,count:ut}));Y+=ut*w}else t._normalizeValue(tt,_,Y),Y+=w}}_validateAttributeUpdaters(){let{settings:t}=this;if(!(t.noAlloc||typeof t.update==\"function\"))throw new Error(\"Attribute \".concat(this.id,\" missing update or accessor\"))}_checkAttributeArray(){let{value:t}=this,r=Math.min(4,this.size);if(t&&t.length>=r){let i=!0;switch(r){case 4:i=i&&Number.isFinite(t[3]);case 3:i=i&&Number.isFinite(t[2]);case 2:i=i&&Number.isFinite(t[1]);case 1:i=i&&Number.isFinite(t[0]);break;default:i=!1}if(!i)throw new Error(\"Illegal attribute generated for \".concat(this.id))}}};var Kb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"interpolation\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.transition=new $c(i),this.attribute=r,this.attributeInTransition=new lp(t,r.settings),this.currentStartIndices=r.startIndices,this.currentLength=0,this.transform=Plt(t,r);let s={byteLength:0,usage:35050};this.buffers=[new Fr(t,s),new Fr(t,s)]}get inProgress(){return this.transition.inProgress}start(t,r){if(t.duration<=0){this.transition.cancel();return}this.settings=t;let{gl:i,buffers:s,attribute:n}=this;XE(s);let o={numInstances:r,attribute:n,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of s)KE({buffer:c,...o});this.currentStartIndices=n.startIndices,this.currentLength=Xb(n,r),this.attributeInTransition.setData({buffer:s[1],value:n.value}),this.transition.start(t),this.transform.update({elementCount:Math.floor(this.currentLength/n.size),sourceBuffers:{aFrom:s[0],aTo:QE(i,n)},feedbackBuffers:{vCurrent:s[1]}})}update(){let t=this.transition.update();if(t){let{duration:r,easing:i}=this.settings,{time:s}=this.transition,n=s/r;i&&(n=i(n)),this.transform.run({uniforms:{time:n}})}return t}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0}},Elt=`\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nuniform float time;\nattribute ATTRIBUTE_TYPE aFrom;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, time);\n gl_Position = vec4(0.0);\n}\n`;function Plt(e,t){let r=$E(t.size);return new ec(e,{vs:Elt,defines:{ATTRIBUTE_TYPE:r},varyings:[\"vCurrent\"]})}var Jb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"spring\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"texture\",void 0),G(this,\"framebuffer\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.type=\"spring\",this.transition=new $c(i),this.attribute=r,this.attributeInTransition=new lp(t,{...r.settings,normalized:!1}),this.currentStartIndices=r.startIndices,this.currentLength=0,this.texture=Clt(t),this.framebuffer=Llt(t,this.texture),this.transform=Ilt(t,r,this.framebuffer);let s={byteLength:0,usage:35050};this.buffers=[new Fr(t,s),new Fr(t,s),new Fr(t,s)]}get inProgress(){return this.transition.inProgress}start(t,r){let{gl:i,buffers:s,attribute:n}=this,o={numInstances:r,attribute:n,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of s)KE({buffer:c,...o});this.settings=t,this.currentStartIndices=n.startIndices,this.currentLength=Xb(n,r),this.attributeInTransition.setData({buffer:s[1],value:n.value}),this.transition.start({...t,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/n.size),sourceBuffers:{aTo:QE(i,n)}})}update(){let{buffers:t,transform:r,framebuffer:i,transition:s}=this;if(!s.update())return!1;let o=this.settings;return r.update({sourceBuffers:{aPrev:t[0],aCur:t[1]},feedbackBuffers:{vNext:t[2]}}),r.run({framebuffer:i,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:o.stiffness,damping:o.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),XE(t),this.attributeInTransition.setData({buffer:t[1],value:this.attribute.value}),Rh(i)[0]>0||s.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}};function Ilt(e,t,r){let i=$E(t.size);return new ec(e,{framebuffer:r,vs:`\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nuniform float stiffness;\nuniform float damping;\nattribute ATTRIBUTE_TYPE aPrev;\nattribute ATTRIBUTE_TYPE aCur;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vNext;\nvarying float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE spring = delta * stiffness;\n ATTRIBUTE_TYPE damper = velocity * -1.0 * damping;\n return spring + damper + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n`,fs:`\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nvarying float vIsTransitioningFlag;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n gl_FragColor = vec4(1.0);\n}`,defines:{ATTRIBUTE_TYPE:i},varyings:[\"vNext\"]})}function Clt(e){return new pi(e,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}function Llt(e,t){return new yi(e,{id:\"spring-transition-is-transitioning-framebuffer\",width:1,height:1,attachments:{36064:t}})}var klt={interpolation:Kb,spring:Jb},tw=class{constructor(t,{id:r,timeline:i}){G(this,\"id\",void 0),G(this,\"isSupported\",void 0),G(this,\"gl\",void 0),G(this,\"timeline\",void 0),G(this,\"transitions\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"numInstances\",void 0),this.id=r,this.gl=t,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=ec.isSupported(t)}finalize(){for(let t in this.transitions)this._removeTransition(t)}update({attributes:t,transitions:r,numInstances:i}){this.numInstances=i||1;for(let s in t){let n=t[s],o=n.getTransitionSetting(r);o&&this._updateAttribute(s,n,o)}for(let s in this.transitions){let n=t[s];(!n||!n.getTransitionSetting(r))&&this._removeTransition(s)}}hasAttribute(t){let r=this.transitions[t];return r&&r.inProgress}getAttributes(){let t={};for(let r in this.transitions){let i=this.transitions[r];i.inProgress&&(t[r]=i.attributeInTransition)}return t}run(){if(!this.isSupported||this.numInstances===0)return!1;for(let r in this.transitions)this.transitions[r].update()&&(this.needsRedraw=!0);let t=this.needsRedraw;return this.needsRedraw=!1,t}_removeTransition(t){this.transitions[t].cancel(),delete this.transitions[t]}_updateAttribute(t,r,i){let s=this.transitions[t],n=!s||s.type!==i.type;if(n){if(!this.isSupported){nr.warn(\"WebGL2 not supported by this browser. Transition for \".concat(t,\" is disabled.\"))();return}s&&this._removeTransition(t);let o=klt[i.type];o?this.transitions[t]=new o({attribute:r,timeline:this.timeline,gl:this.gl}):(nr.error(\"unsupported transition type '\".concat(i.type,\"'\"))(),n=!1)}(n||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[t].start(i,this.numInstances))}};var CG=\"attributeManager.invalidate\",Rlt=\"attributeManager.updateStart\",Dlt=\"attributeManager.updateEnd\",Olt=\"attribute.updateStart\",Blt=\"attribute.allocate\",Flt=\"attribute.updateEnd\",Yf=class{constructor(t,{id:r=\"attribute-manager\",stats:i,timeline:s}={}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"attributes\",void 0),G(this,\"updateTriggers\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"userData\",void 0),G(this,\"stats\",void 0),G(this,\"attributeTransitionManager\",void 0),G(this,\"mergeBoundsMemoized\",Hf(G7)),this.id=r,this.gl=t,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new tw(t,{id:\"\".concat(r,\"-transitions\"),timeline:s}),Object.seal(this)}finalize(){for(let t in this.attributes)this.attributes[t].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(t={clearRedrawFlags:!1}){let r=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!t.clearRedrawFlags,r&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(t){this._add(t)}addInstanced(t){this._add(t,{instanced:1})}remove(t){for(let r of t)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(t,r){let i=this._invalidateTrigger(t,r);Cs(CG,this,t,i)}invalidateAll(t){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,t);Cs(CG,this,\"all\")}update({data:t,numInstances:r,startIndices:i=null,transitions:s,props:n={},buffers:o={},context:c={}}){let f=!1;Cs(Rlt,this),this.stats&&this.stats.get(\"Update Attributes\").timeStart();for(let _ in this.attributes){let w=this.attributes[_],C=w.settings.accessor;w.startIndices=i,w.numInstances=r,n[_]&&nr.removed(\"props.\".concat(_),\"data.attributes.\".concat(_))(),w.setExternalBuffer(o[_])||w.setBinaryValue(typeof C==\"string\"?o[C]:void 0,t.startIndices)||typeof C==\"string\"&&!o[C]&&w.setConstantValue(n[C])||w.needsUpdate()&&(f=!0,this._updateAttribute({attribute:w,numInstances:r,data:t,props:n,context:c})),this.needsRedraw=this.needsRedraw||w.needsRedraw()}f&&Cs(Dlt,this,r),this.stats&&this.stats.get(\"Update Attributes\").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:s})}updateTransition(){let{attributeTransitionManager:t}=this,r=t.run();return this.needsRedraw=this.needsRedraw||r,r}getAttributes(){return this.attributes}getBounds(t){let r=t.map(i=>{var s;return(s=this.attributes[i])===null||s===void 0?void 0:s.getBounds()});return this.mergeBoundsMemoized(r)}getChangedAttributes(t={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:i}=this,s={...i.getAttributes()};for(let n in r){let o=r[n];o.needsRedraw(t)&&!i.hasAttribute(n)&&(s[n]=o)}return s}getShaderAttributes(t,r={}){t||(t=this.getAttributes());let i={};for(let s in t)r[s]||Object.assign(i,t[s].getShaderAttributes());return i}_add(t,r={}){for(let i in t){let s=t[i];this.attributes[i]=this._createAttribute(i,s,r)}this._mapUpdateTriggersToAttributes()}_createAttribute(t,r,i){let s={...r,id:t,size:r.isIndexed&&1||r.size||1,divisor:i.instanced?1:r.divisor||0};return new lp(this.gl,s)}_mapUpdateTriggersToAttributes(){let t={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(s=>{t[s]||(t[s]=[]),t[s].push(r)});this.updateTriggers=t}_invalidateTrigger(t,r){let{attributes:i,updateTriggers:s}=this,n=s[t];return n&&n.forEach(o=>{let c=i[o];c&&c.setNeedsUpdate(c.id,r)}),n}_updateAttribute(t){let{attribute:r,numInstances:i}=t;if(Cs(Olt,r),r.constant){r.setConstantValue(r.value);return}r.allocate(i)&&Cs(Blt,r,i),r.updateBuffer(t)&&(this.needsRedraw=!0,Cs(Flt,r,i))}};var ew=class extends $c{get value(){return this._value}_onUpdate(){let{time:t,settings:{fromValue:r,toValue:i,duration:s,easing:n}}=this,o=n(t/s);this._value=tc(r,i,o)}};var LG=1e-5;function kG(e,t,r,i,s){let n=t-e,c=(r-t)*s,f=-n*i;return c+f+n+t}function zlt(e,t,r,i,s){if(Array.isArray(r)){let n=[];for(let o=0;o0}add(t,r,i,s){let{transitions:n}=this;if(n.has(t)){let f=n.get(t),{value:_=f.settings.fromValue}=f;r=_,this.remove(t)}if(s=YE(s),!s)return;let o=Nlt[s.type];if(!o){nr.error(\"unsupported transition type '\".concat(s.type,\"'\"))();return}let c=new o(this.timeline);c.start({...s,fromValue:r,toValue:i}),n.set(t,c)}remove(t){let{transitions:r}=this;r.has(t)&&(r.get(t).cancel(),r.delete(t))}update(){let t={};for(let[r,i]of this.transitions)i.update(),t[r]=i.value,i.inProgress||this.remove(r);return t}clear(){for(let t of this.transitions.keys())this.remove(t)}};function OG(e){let t=e[Ou];for(let r in t){let i=t[r],{validate:s}=i;if(s&&!s(e[r],i))throw new Error(\"Invalid prop \".concat(r,\": \").concat(e[r]))}}function BG(e,t){let r=nw({newProps:e,oldProps:t,propTypes:e[Ou],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=Vlt(e,t),s=!1;return i||(s=jlt(e,t)),{dataChanged:i,propsChanged:r,updateTriggersChanged:s,extensionsChanged:Glt(e,t),transitionsChanged:Ult(e,t)}}function Ult(e,t){if(!e.transitions)return!1;let r={},i=e[Ou],s=!1;for(let n in e.transitions){let o=i[n],c=o&&o.type;(c===\"number\"||c===\"color\"||c===\"array\")&&fD(e[n],t[n],o)&&(r[n]=!0,s=!0)}return s?r:!1}function nw({newProps:e,oldProps:t,ignoreProps:r={},propTypes:i={},triggerName:s=\"props\"}){if(t===e)return!1;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return\"\".concat(s,\" changed shallowly\");for(let n of Object.keys(e))if(!(n in r)){if(!(n in t))return\"\".concat(s,\".\").concat(n,\" added\");let o=fD(e[n],t[n],i[n]);if(o)return\"\".concat(s,\".\").concat(n,\" \").concat(o)}for(let n of Object.keys(t))if(!(n in r)){if(!(n in e))return\"\".concat(s,\".\").concat(n,\" dropped\");if(!Object.hasOwnProperty.call(e,n)){let o=fD(e[n],t[n],i[n]);if(o)return\"\".concat(s,\".\").concat(n,\" \").concat(o)}}return!1}function fD(e,t,r){let i=r&&r.equal;return i&&!i(e,t,r)||!i&&(i=e&&t&&e.equals,i&&!i.call(e,t))?\"changed deeply\":!i&&t!==e?\"changed shallowly\":null}function Vlt(e,t){if(t===null)return\"oldProps is null, initial diff\";let r=!1,{dataComparator:i,_dataDiff:s}=e;return i?i(e.data,t.data)||(r=\"Data comparator detected a change\"):e.data!==t.data&&(r=\"A new data container was supplied\"),r&&s&&(r=s(e.data,t.data)||r),r}function jlt(e,t){if(t===null)return{all:!0};if(\"all\"in e.updateTriggers&&DG(e,t,\"all\"))return{all:!0};let r={},i=!1;for(let s in e.updateTriggers)s!==\"all\"&&DG(e,t,s)&&(r[s]=!0,i=!0);return i?r:!1}function Glt(e,t){if(t===null)return!0;let r=t.extensions,{extensions:i}=e;if(i===r)return!1;if(!r||!i||i.length!==r.length)return!0;for(let s=0;si.name===\"project64\"))){let i=r.modules.findIndex(s=>s.name===\"project32\");i>=0&&r.modules.splice(i,1)}if(\"inject\"in t)if(!e.inject)r.inject=t.inject;else{let i={...e.inject};for(let s in t.inject)i[s]=(i[s]||\"\")+t.inject[s];r.inject=i}return r}var Ylt={10241:9987,10240:9729,10242:33071,10243:33071},dD={};function NG(e,t,r,i){if(r instanceof pi)return r;r.constructor&&r.constructor.name!==\"Object\"&&(r={data:r});let s=null;r.compressed&&(s={10241:r.data.length>1?9985:9729});let n=new pi(t,{...r,parameters:{...Ylt,...s,...i}});return dD[n.id]=e,n}function UG(e,t){!t||!(t instanceof pi)||dD[t.id]===e&&(t.delete(),delete dD[t.id])}var Qlt={boolean:{validate(e,t){return!0},equal(e,t,r){return!!e==!!t}},number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},color:{validate(e,t){return t.optional&&!e||pD(e)&&(e.length===3||e.length===4)},equal(e,t,r){return ao(e,t,1)}},accessor:{validate(e,t){let r=JE(e);return r===\"function\"||r===JE(t.value)},equal(e,t,r){return typeof t==\"function\"?!0:ao(e,t,1)}},array:{validate(e,t){return t.optional&&!e||pD(e)},equal(e,t,r){let{compare:i}=r,s=Number.isInteger(i)?i:i?1:0;return i?ao(e,t,s):e===t}},object:{equal(e,t,r){if(r.ignore)return!0;let{compare:i}=r,s=Number.isInteger(i)?i:i?1:0;return i?ao(e,t,s):e===t}},function:{validate(e,t){return t.optional&&!e||typeof e==\"function\"},equal(e,t,r){return!r.compare&&r.ignore!==!1||e===t}},data:{transform:(e,t,r)=>{let{dataTransform:i}=r.props;return i&&e?i(e):e}},image:{transform:(e,t,r)=>{let i=r.context;return!i||!i.gl?null:NG(r.id,i.gl,e,{...t.parameters,...r.props.textureParameters})},release:(e,t,r)=>{UG(r.id,e)}}};function VG(e){let t={},r={},i={};for(let[s,n]of Object.entries(e)){let o=n?.deprecatedFor;if(o)i[s]=Array.isArray(o)?o:[o];else{let c=$lt(s,n);t[s]=c,r[s]=c.value}}return{propTypes:t,defaultProps:r,deprecatedProps:i}}function $lt(e,t){switch(JE(t)){case\"object\":return sw(e,t);case\"array\":return sw(e,{type:\"array\",value:t,compare:!1});case\"boolean\":return sw(e,{type:\"boolean\",value:t});case\"number\":return sw(e,{type:\"number\",value:t});case\"function\":return sw(e,{type:\"function\",value:t,compare:!0});default:return{name:e,type:\"unknown\",value:t}}}function sw(e,t){return\"type\"in t?{name:e,...Qlt[t.type],...t}:\"value\"in t?{name:e,type:JE(t.value),...t}:{name:e,type:\"object\",value:t}}function pD(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function JE(e){return pD(e)?\"array\":e===null?\"null\":typeof e}function jG(e,t){let r;for(let n=t.length-1;n>=0;n--){let o=t[n];\"extensions\"in o&&(r=o.extensions)}let i=AD(e.constructor,r),s=Object.create(i);s[Uy]=e,s[Zf]={},s[Gh]={};for(let n=0;n{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(let t in this.asyncProps){let r=this.asyncProps[t];r&&r.type&&r.type.release&&r.type.release(r.resolvedValue,r.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||sct}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(t){return t in this.asyncProps}getAsyncProp(t){let r=this.asyncProps[t];return r&&r.resolvedValue}isAsyncPropLoading(t){if(t){let r=this.asyncProps[t];return!!(r&&r.pendingLoadCount>0&&r.pendingLoadCount!==r.resolvedLoadCount)}for(let r in this.asyncProps)if(this.isAsyncPropLoading(r))return!0;return!1}reloadAsyncProp(t,r){this._watchPromise(t,Promise.resolve(r))}setAsyncProps(t){this.component=t[Uy]||this.component;let r=t[Gh]||{},i=t[Zf]||t,s=t[ip]||{};for(let n in r){let o=r[n];this._createAsyncPropData(n,s[n]),this._updateAsyncProp(n,o),r[n]=this.getAsyncProp(n)}for(let n in i){let o=i[n];this._createAsyncPropData(n,s[n]),this._updateAsyncProp(n,o)}}_fetch(t,r){return null}_onResolve(t,r){}_onError(t,r){}_updateAsyncProp(t,r){if(this._didAsyncInputValueChange(t,r)){if(typeof r==\"string\"&&(r=this._fetch(t,r)),r instanceof Promise){this._watchPromise(t,r);return}if(qE(r)){this._resolveAsyncIterable(t,r);return}this._setPropValue(t,r)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(let t in this.asyncProps)Object.defineProperty(this.oldAsyncProps,t,{enumerable:!0,value:this.oldProps[t]})}}_didAsyncInputValueChange(t,r){let i=this.asyncProps[t];return r===i.resolvedValue||r===i.lastValue?!1:(i.lastValue=r,!0)}_setPropValue(t,r){this._freezeAsyncOldProps();let i=this.asyncProps[t];i&&(r=this._postProcessValue(i,r),i.resolvedValue=r,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(t,r,i){let s=this.asyncProps[t];s&&i>=s.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),s.resolvedValue=r,s.resolvedLoadCount=i,this.onAsyncPropUpdated(t,r))}_watchPromise(t,r){let i=this.asyncProps[t];if(i){i.pendingLoadCount++;let s=i.pendingLoadCount;r.then(n=>{this.component&&(n=this._postProcessValue(i,n),this._setAsyncPropValue(t,n,s),this._onResolve(t,n))}).catch(n=>{this._onError(t,n)})}}async _resolveAsyncIterable(t,r){if(t!==\"data\"){this._setPropValue(t,r);return}let i=this.asyncProps[t];if(!i)return;i.pendingLoadCount++;let s=i.pendingLoadCount,n=[],o=0;for await(let c of r){if(!this.component)return;let{dataTransform:f}=this.component.props;f?n=f(c,n):n=n.concat(c),Object.defineProperty(n,\"__diff\",{enumerable:!1,value:[{startRow:o,endRow:n.length}]}),o=n.length,this._setAsyncPropValue(t,n,s)}this._onResolve(t,n)}_postProcessValue(t,r){let i=t.type;return i&&this.component&&(i.release&&i.release(t.resolvedValue,i,this.component),i.transform)?i.transform(r,i,this.component):r}_createAsyncPropData(t,r){if(!this.asyncProps[t]){let s=this.component&&this.component.props[Ou];this.asyncProps[t]={type:s&&s[t],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var aw=class extends ow{constructor({attributeManager:t,layer:r}){super(r),G(this,\"attributeManager\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"needsUpdate\",void 0),G(this,\"subLayers\",void 0),G(this,\"usesPickingColorCache\",void 0),G(this,\"hasPickingBuffer\",void 0),G(this,\"changeFlags\",void 0),G(this,\"viewport\",void 0),G(this,\"uniformTransitions\",void 0),G(this,\"propsInTransition\",void 0),this.attributeManager=t,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(t,r){let i=this.layer,s=i?.props.fetch;return s?s(r,{propName:t,layer:i}):super._fetch(t,r)}_onResolve(t,r){let i=this.layer;if(i){let s=i.props.onDataLoad;t===\"data\"&&s&&s(r,{propName:t,layer:i})}}_onError(t,r){let i=this.layer;i&&i.raiseError(r,\"loading \".concat(t,\" of \").concat(this.layer))}};var oct=\"layer.changeFlag\",act=\"layer.initialize\",lct=\"layer.update\",cct=\"layer.finalize\",uct=\"layer.matched\",WG=2**24-1,hct=Object.freeze([]),fct=Hf(({oldViewport:e,viewport:t})=>e.equals(t)),Qf=new Uint8ClampedArray(0),dct={data:{type:\"data\",value:hct,async:!0},dataComparator:{type:\"function\",value:null,optional:!0},_dataDiff:{type:\"function\",value:e=>e&&e.__diff,optional:!0},dataTransform:{type:\"function\",value:null,optional:!0},onDataLoad:{type:\"function\",value:null,optional:!0},onError:{type:\"function\",value:null,optional:!0},fetch:{type:\"function\",value:(e,{propName:t,layer:r,loaders:i,loadOptions:s,signal:n})=>{let{resourceManager:o}=r.context;if(s=s||r.getLoadOptions(),i=i||r.props.loaders,n){var c;s={...s,fetch:{...(c=s)===null||c===void 0?void 0:c.fetch,signal:n}}}let f=o.contains(e);return!f&&!s&&(o.add({resourceId:e,data:NA(e,i),persistent:!1}),f=!0),f?o.subscribe({resourceId:e,onChange:_=>{var w;return(w=r.internalState)===null||w===void 0?void 0:w.reloadAsyncProp(t,_)},consumerId:r.id,requestId:t}):NA(e,i,s)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:\"number\",min:0,max:1,value:1},operation:\"draw\",onHover:{type:\"function\",value:null,optional:!0},onClick:{type:\"function\",value:null,optional:!0},onDragStart:{type:\"function\",value:null,optional:!0},onDrag:{type:\"function\",value:null,optional:!0},onDragEnd:{type:\"function\",value:null,optional:!0},coordinateSystem:Yr.DEFAULT,coordinateOrigin:{type:\"array\",value:[0,0,0],compare:!0},modelMatrix:{type:\"array\",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:\"XYZ\",colorFormat:\"RGBA\",parameters:{type:\"object\",value:{},optional:!0,compare:2},loadOptions:{type:\"object\",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:\"array\",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:\"function\",value:({layerIndex:e})=>[0,-e*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:\"accessor\",value:[0,0,128,128]}},Tn=class extends hg{constructor(...t){super(...t),G(this,\"internalState\",null),G(this,\"lifecycle\",XA.NO_STATE),G(this,\"context\",void 0),G(this,\"state\",void 0),G(this,\"parent\",null)}static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"layerName\")?this.layerName:\"\"}get root(){let t=this;for(;t.parent;)t=t.parent;return t}toString(){let t=this.constructor.layerName||this.constructor.name;return\"\".concat(t,\"({id: '\").concat(this.props.id,\"'})\")}project(t){br(this.internalState);let r=this.internalState.viewport||this.context.viewport,i=rD(t,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[s,n,o]=By(i,r.pixelProjectionMatrix);return t.length===2?[s,n]:[s,n,o]}unproject(t){return br(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(t)}projectPosition(t,r){br(this.internalState);let i=this.internalState.viewport||this.context.viewport;return q7(t,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}setState(t){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,t),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters(t){for(let r of this.getModels())r.updateModuleSettings(t)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){let{coordinateSystem:t}=this.props;return t===Yr.DEFAULT||t===Yr.LNGLAT||t===Yr.CARTESIAN}onHover(t,r){return this.props.onHover&&this.props.onHover(t,r)||!1}onClick(t,r){return this.props.onClick&&this.props.onClick(t,r)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(t,r=[]){return r[0]=t+1&255,r[1]=t+1>>8&255,r[2]=t+1>>8>>8&255,r}decodePickingColor(t){br(t instanceof Uint8Array);let[r,i,s]=t;return r+i*256+s*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:FG(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"positions\",\"instancePositions\"])}getShaders(t){for(let r of this.props.extensions)t=zG(t,r.getShaders.call(this,r));return t}shouldUpdateState(t){return t.changeFlags.propsOrDataChanged}updateState(t){let r=this.getAttributeManager(),{dataChanged:i}=t.changeFlags;if(i&&r)if(Array.isArray(i))for(let s of i)r.invalidateAll(s);else r.invalidateAll();if(r){let{props:s}=t,n=this.internalState.hasPickingBuffer,o=Number.isInteger(s.highlightedObjectIndex)||s.pickable||s.extensions.some(c=>c.getNeedsPickingBuffer.call(this,c));if(n!==o){this.internalState.hasPickingBuffer=o;let{pickingColors:c,instancePickingColors:f}=r.attributes,_=c||f;_&&(o&&_.constant&&(_.constant=!1,r.invalidate(_.id)),!_.value&&!o&&(_.constant=!0,_.value=[0,0,0]))}}}finalizeState(t){for(let i of this.getModels())i.delete();let r=this.getAttributeManager();r&&r.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(t){for(let r of this.getModels())r.draw(t)}getPickingInfo({info:t,mode:r,sourceLayer:i}){let{index:s}=t;return s>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[s]),t}raiseError(t,r){var i,s;if(r&&(t=new Error(\"\".concat(r,\": \").concat(t.message),{cause:t})),!((i=(s=this.props).onError)!==null&&i!==void 0&&i.call(s,t))){var n,o;(n=this.context)===null||n===void 0||(o=n.onError)===null||o===void 0||o.call(n,t,this)}}getNeedsRedraw(t={clearRedrawFlags:!1}){return this._getNeedsRedraw(t)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var t;return((t=this.internalState)===null||t===void 0?void 0:t.uniformTransitions.active)||!1}activateViewport(t){if(!this.internalState)return;let r=this.internalState.viewport;this.internalState.viewport=t,(!r||!fct({oldViewport:r,viewport:t}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(t=\"all\"){let r=this.getAttributeManager();r&&(t===\"all\"?r.invalidateAll():r.invalidate(t))}updateAttributes(t){for(let r of this.getModels())this._setModelAttributes(r,t)}_updateAttributes(){let t=this.getAttributeManager();if(!t)return;let r=this.props,i=this.getNumInstances(),s=this.getStartIndices();t.update({data:r.data,numInstances:i,startIndices:s,props:r,transitions:r.transitions,buffers:r.data.attributes,context:this});let n=t.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(n)}_updateAttributeTransition(){let t=this.getAttributeManager();t&&t.updateTransition()}_updateUniformTransition(){let{uniformTransitions:t}=this.internalState;if(t.active){let r=t.update(),i=Object.create(this.props);for(let s in r)Object.defineProperty(i,s,{value:r[s]});return i}return this.props}calculateInstancePickingColors(t,{numInstances:r}){if(t.constant)return;let i=Math.floor(Qf.length/3);if(this.internalState.usesPickingColorCache=!0,iWG&&nr.warn(\"Layer has too many data objects. Picking might not be able to distinguish all objects.\")(),Qf=jh.allocate(Qf,r,{size:3,copy:!0,maxCount:Math.max(r,WG)});let s=Math.floor(Qf.length/3),n=[];for(let o=i;o(nr.deprecated(\"layer.state.attributeManager\",\"layer.getAttributeManager()\")(),t)}),this.internalState.uniformTransitions=new iw(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(let r of this.props.extensions)r.initializeState.call(this,this.context,r);this.setChangeFlags({dataChanged:\"init\",propsChanged:\"init\",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(t){Cs(uct,this,this===t);let{state:r,internalState:i}=t;this!==t&&(this.internalState=i,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let t=this.needsUpdate();if(Cs(lct,this,t),!t)return;let r=this.props,i=this.context,s=this.internalState,n=i.viewport,o=this._updateUniformTransition();s.propsInTransition=o,i.viewport=s.viewport||n,this.props=o;try{let c=this._getUpdateParams(),f=this.getModels();if(i.gl)this.updateState(c);else try{this.updateState(c)}catch{}for(let w of this.props.extensions)w.updateState.call(this,c,w);let _=this.getModels()[0]!==f[0];this._postUpdate(c,_)}finally{i.viewport=n,this.props=r,this._clearChangeFlags(),s.needsUpdate=!1,s.resetOldProps()}}_finalize(){Cs(cct,this),this.finalizeState(this.context);for(let t of this.props.extensions)t.finalizeState.call(this,this.context,t)}_drawLayer({moduleParameters:t=null,uniforms:r={},parameters:i={}}){this._updateAttributeTransition();let s=this.props,n=this.context;this.props=this.internalState.propsInTransition||s;let o=this.props.opacity;r.opacity=Math.pow(o,1/2.2);try{t&&this.setModuleParameters(t);let{getPolygonOffset:c}=this.props,f=c&&c(r)||[0,0];wl(n.gl,{polygonOffset:f}),bn(n.gl,i,()=>{let _={moduleParameters:t,uniforms:r,parameters:i,context:n};for(let w of this.props.extensions)w.draw.call(this,_,w);this.draw(_)})}finally{this.props=s}}getChangeFlags(){var t;return(t=this.internalState)===null||t===void 0?void 0:t.changeFlags}setChangeFlags(t){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let s in t)if(t[s]){let n=!1;switch(s){case\"dataChanged\":let o=t[s],c=r[s];o&&Array.isArray(c)&&(r.dataChanged=Array.isArray(o)?c.concat(o):o,n=!0);default:r[s]||(r[s]=t[s],n=!0)}n&&Cs(oct,this,s,t)}let i=!!(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=i,r.somethingChanged=i||r.viewportChanged||r.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(t,r){let i=BG(t,r);if(i.updateTriggersChanged)for(let n in i.updateTriggersChanged)i.updateTriggersChanged[n]&&this.invalidateAttribute(n);if(i.transitionsChanged)for(let n in i.transitionsChanged){var s;this.internalState.uniformTransitions.add(n,r[n],t[n],(s=t.transitions)===null||s===void 0?void 0:s[n])}return this.setChangeFlags(i)}validateProps(){OG(this.props)}updateAutoHighlight(t){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(t)}_updateAutoHighlight(t){let r={pickingSelectedColor:t.picked?t.color:null},{highlightColor:i}=this.props;t.picked&&typeof i==\"function\"&&(r.pickingHighlightColor=i(t)),this.setModuleParameters(r),this.setNeedsRedraw()}_getAttributeManager(){let t=this.context;return new Yf(t.gl,{id:this.props.id,stats:t.stats,timeline:t.timeline})}_postUpdate(t,r){let{props:i,oldProps:s}=t;this.setNeedsRedraw(),this._updateAttributes();let{model:n}=this.state;n?.setInstanceCount(this.getNumInstances());let{autoHighlight:o,highlightedObjectIndex:c,highlightColor:f}=i;if(r||s.autoHighlight!==o||s.highlightedObjectIndex!==c||s.highlightColor!==f){let _={};o||(_.pickingSelectedColor=null),Array.isArray(f)&&(_.pickingHighlightColor=f),(r||c!==s.highlightedObjectIndex)&&(_.pickingSelectedColor=Number.isFinite(c)&&c>=0?this.encodePickingColor(c):null),this.setModuleParameters(_)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(t){if(!this.internalState)return!1;let r=!1;r=r||this.internalState.needsRedraw&&this.id;let i=this.getAttributeManager(),s=i?i.getNeedsRedraw(t):!1;if(r=r||s,r)for(let n of this.props.extensions)n.onNeedsRedraw.call(this,n);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!t.clearRedrawFlags,r}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}};G(Tn,\"defaultProps\",dct);G(Tn,\"layerName\",\"Layer\");var pct=\"compositeLayer.renderLayers\",tn=class extends Tn{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(t=>t.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(t){}setState(t){super.setState(t),this.setNeedsUpdate()}getPickingInfo({info:t}){let{object:r}=t;return r&&r.__source&&r.__source.parent&&r.__source.parent.id===this.id&&(t.object=r.__source.object,t.index=r.__source.index),t}filterSubLayer(t){return!0}shouldRenderSubLayer(t,r){return r&&r.length}getSubLayerClass(t,r){let{_subLayerProps:i}=this.props;return i&&i[t]&&i[t].type||r}getSubLayerRow(t,r,i){return t.__source={parent:this,object:r,index:i},t}getSubLayerAccessor(t){if(typeof t==\"function\"){let r={index:-1,data:this.props.data,target:[]};return(i,s)=>i&&i.__source?(r.index=i.__source.index,t(i.__source.object,r)):t(i,s)}return t}getSubLayerProps(t={}){var r;let{opacity:i,pickable:s,visible:n,parameters:o,getPolygonOffset:c,highlightedObjectIndex:f,autoHighlight:_,highlightColor:w,coordinateSystem:C,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:rt,fetch:$,operation:K,_subLayerProps:tt}=this.props,ut={id:\"\",updateTriggers:{},opacity:i,pickable:s,visible:n,parameters:o,getPolygonOffset:c,highlightedObjectIndex:f,autoHighlight:_,highlightColor:w,coordinateSystem:C,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:rt,fetch:$,operation:K},Pt=tt&&t.id&&tt[t.id],Ot=Pt&&Pt.updateTriggers,Kt=t.id||\"sublayer\";if(Pt){let Zt=this.props[Ou],le=t.type?t.type._propTypes:{};for(let ue in Pt){let Ge=le[ue]||Zt[ue];Ge&&Ge.type===\"accessor\"&&(Pt[ue]=this.getSubLayerAccessor(Pt[ue]))}}Object.assign(ut,t,Pt),ut.id=\"\".concat(this.props.id,\"-\").concat(Kt),ut.updateTriggers={all:(r=this.props.updateTriggers)===null||r===void 0?void 0:r.all,...t.updateTriggers,...Ot};for(let Zt of rt){let le=Zt.getSubLayerProps.call(this,Zt);le&&Object.assign(ut,le,{updateTriggers:Object.assign(ut.updateTriggers,le.updateTriggers)})}return ut}_updateAutoHighlight(t){for(let r of this.getSubLayers())r.updateAutoHighlight(t)}_getAttributeManager(){return null}_postUpdate(t,r){let i=this.internalState.subLayers,s=!i||this.needsUpdate();if(s){let n=this.renderLayers();i=np(n,Boolean),this.internalState.subLayers=i}Cs(pct,this,s,i);for(let n of i)n.parent=this}};G(tn,\"layerName\",\"CompositeLayer\");var tP=Math.PI/180,HG=180/Math.PI,eP=6370972,Hy=256;function Act(){let e=Hy/eP,t=Math.PI/180*Hy;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[t,t,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/t,1/t,1/e]}}var qy=class extends ic{constructor(t={}){let{latitude:r=0,longitude:i=0,zoom:s=0,nearZMultiplier:n=.1,farZMultiplier:o=2,resolution:c=10}=t,{height:f,altitude:_=1.5}=t;f=f||1,_=Math.max(.75,_);let w=new wn().lookAt({eye:[0,-_,0],up:[0,0,1]}),C=Math.pow(2,s);w.rotateX(r*tP),w.rotateZ(-i*tP),w.scale(C/f);let R=Math.atan(.5/_),N=Hy*2*C/f;super({...t,height:f,viewMatrix:w,longitude:i,latitude:r,zoom:s,distanceScales:Act(),fovyRadians:R*2,focalDistance:_,near:n,far:Math.min(2,1/N+1)*_*o}),G(this,\"longitude\",void 0),G(this,\"latitude\",void 0),G(this,\"resolution\",void 0),this.latitude=r,this.longitude=i,this.resolution=c}get projectionMode(){return Ka.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){let r={targetZ:t.z||0},i=this.unproject([0,this.height/2],r),s=this.unproject([this.width/2,0],r),n=this.unproject([this.width,this.height/2],r),o=this.unproject([this.width/2,this.height],r);return n[0]this.longitude&&(i[0]-=360),[Math.min(i[0],n[0],s[0],o[0]),Math.min(i[1],n[1],s[1],o[1]),Math.max(i[0],n[0],s[0],o[0]),Math.max(i[1],n[1],s[1],o[1])]}unproject(t,{topLeft:r=!0,targetZ:i}={}){let[s,n,o]=t,c=r?n:this.height-n,{pixelUnprojectionMatrix:f}=this,_;if(Number.isFinite(o))_=gD(f,[s,c,o,1]);else{let N=gD(f,[s,c,-1,1]),j=gD(f,[s,c,1,1]),Y=((i||0)/eP+1)*Hy,rt=SE(bE([],N,j)),$=SE(N),K=SE(j),ut=4*((4*$*K-(rt-$-K)**2)/16)/rt,Pt=Math.sqrt($-ut),Ot=Math.sqrt(Math.max(0,Y*Y-ut)),Kt=(Pt-Ot)/Math.sqrt(rt);_=Tj([],N,j,Kt)}let[w,C,R]=this.unprojectPosition(_);return Number.isFinite(o)?[w,C,R]:Number.isFinite(i)?[w,C,i]:[w,C]}projectPosition(t){let[r,i,s=0]=t,n=r*tP,o=i*tP,c=Math.cos(o),f=(s/eP+1)*Hy;return[Math.sin(n)*c*f,-Math.cos(n)*c*f,Math.sin(o)*f]}unprojectPosition(t){let[r,i,s]=t,n=wE(t),o=Math.asin(s/n),f=Math.atan2(r,-i)*HG,_=o*HG,w=(n/Hy-1)*eP;return[f,_,w]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition(t,r){let i=this.unproject(r);return{longitude:t[0]-i[0]+this.longitude,latitude:t[1]-i[1]+this.latitude}}};function gD(e,t){let r=zh([],t,e);return Py(r,r,1/r[3]),r}var mct=new wn().lookAt({eye:[0,0,1]});function gct({width:e,height:t,near:r,far:i,padding:s}){let n=-e/2,o=e/2,c=-t/2,f=t/2;if(s){let{left:_=0,right:w=0,top:C=0,bottom:R=0}=s,N=Ml((_+e-w)/2,0,e)-e/2,j=Ml((C+t-R)/2,0,t)-t/2;n-=N,o-=N,c+=j,f+=j}return new wn().ortho({left:n,right:o,bottom:c,top:f,near:r,far:i})}var Zy=class extends ic{constructor(t){let{width:r,height:i,near:s=.1,far:n=1e3,zoom:o=0,target:c=[0,0,0],padding:f=null,flipY:_=!0}=t,w=Array.isArray(o)?o[0]:o,C=Array.isArray(o)?o[1]:o,R=Math.min(w,C),N=Math.pow(2,R),j;if(w!==C){let Y=Math.pow(2,w),rt=Math.pow(2,C);j={unitsPerMeter:[Y/N,rt/N,1],metersPerUnit:[N/Y,N/rt,1]}}super({...t,longitude:void 0,position:c,viewMatrix:mct.clone().scale([N,N*(_?-1:1),N]),projectionMatrix:gct({width:r||1,height:i||1,padding:f,near:s,far:n}),zoom:R,distanceScales:j})}projectFlat([t,r]){let{unitsPerMeter:i}=this.distanceScales;return[t*i[0],r*i[1]]}unprojectFlat([t,r]){let{metersPerUnit:i}=this.distanceScales;return[t*i[0],r*i[1]]}panByPosition(t,r){let i=qf(r,this.pixelUnprojectionMatrix),s=this.projectFlat(t),n=wy([],s,mE([],i)),o=wy([],this.center,n);return{target:this.unprojectFlat(o)}}};var Bu=class{static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"extensionName\")?this.extensionName:\"\"}constructor(t){G(this,\"opts\",void 0),t&&(this.opts=t)}equals(t){return this===t?!0:this.constructor===t.constructor&&ao(this.opts,t.opts,1)}getShaders(t){return null}getSubLayerProps(t){let{defaultProps:r}=t.constructor,i={updateTriggers:{}};for(let s in r)if(s in this.props){let n=r[s],o=this.props[s];i[s]=o,n&&n.type===\"accessor\"&&(i.updateTriggers[s]=this.props.updateTriggers[s],typeof o==\"function\"&&(i[s]=this.getSubLayerAccessor(o)))}return i}initializeState(t,r){}updateState(t,r){}onNeedsRedraw(t){}getNeedsPickingBuffer(t){return!1}draw(t,r){}finalizeState(t,r){}};G(Bu,\"defaultProps\",{});G(Bu,\"extensionName\",\"LayerExtension\");var JA=class{constructor(t){G(this,\"opts\",void 0),G(this,\"typedArrayManager\",void 0),G(this,\"indexStarts\",[0]),G(this,\"vertexStarts\",[0]),G(this,\"vertexCount\",0),G(this,\"instanceCount\",0),G(this,\"attributes\",void 0),G(this,\"_attributeDefs\",void 0),G(this,\"data\",void 0),G(this,\"getGeometry\",void 0),G(this,\"geometryBuffer\",void 0),G(this,\"buffers\",void 0),G(this,\"positionSize\",void 0),G(this,\"normalize\",void 0);let{attributes:r={}}=t;this.typedArrayManager=jh,this.attributes={},this._attributeDefs=r,this.opts=t,this.updateGeometry(t)}updateGeometry(t){Object.assign(this.opts,t);let{data:r,buffers:i={},getGeometry:s,geometryBuffer:n,positionFormat:o,dataChanged:c,normalize:f=!0}=this.opts;if(this.data=r,this.getGeometry=s,this.positionSize=n&&n.size||(o===\"XY\"?2:3),this.buffers=i,this.normalize=f,n&&(br(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(n),f||(i.positions=n)),this.geometryBuffer=i.positions,Array.isArray(c))for(let _ of c)this._rebuildGeometry(_);else this._rebuildGeometry()}updatePartialGeometry({startRow:t,endRow:r}){this._rebuildGeometry({startRow:t,endRow:r})}getGeometryFromBuffer(t){let r=t.value||t;return ArrayBuffer.isView(r)?ZE(r,{size:this.positionSize,offset:t.offset,stride:t.stride,startIndices:this.data.startIndices}):null}_allocate(t,r){let{attributes:i,buffers:s,_attributeDefs:n,typedArrayManager:o}=this;for(let c in n)if(c in s)o.release(i[c]),i[c]=null;else{let f=n[c];f.copy=r,i[c]=o.allocate(i[c],t,f)}}_forEachGeometry(t,r,i){let{data:s,getGeometry:n}=this,{iterable:o,objectInfo:c}=Xc(s,r,i);for(let f of o){c.index++;let _=n?n(f,c):null;t(_,c.index)}}_rebuildGeometry(t){if(!this.data)return;let{indexStarts:r,vertexStarts:i,instanceCount:s}=this,{data:n,geometryBuffer:o}=this,{startRow:c=0,endRow:f=1/0}=t||{},_={};if(t||(r=[0],i=[0]),this.normalize||!o)this._forEachGeometry((C,R)=>{let N=C&&this.normalizeGeometry(C);_[R]=N,i[R+1]=i[R]+(N?this.getGeometrySize(N):0)},c,f),s=i[i.length-1];else if(i=n.startIndices,s=i[n.length]||0,ArrayBuffer.isView(o))s=s||o.length/this.positionSize;else if(o instanceof Fr){let C=o.accessor.stride||this.positionSize*4;s=s||o.byteLength/C}else if(o.buffer){let C=o.stride||this.positionSize*4;s=s||o.buffer.byteLength/C}else if(o.value){let C=o.value,R=o.stride/C.BYTES_PER_ELEMENT||this.positionSize;s=s||C.length/R}this._allocate(s,!!t),this.indexStarts=r,this.vertexStarts=i,this.instanceCount=s;let w={};this._forEachGeometry((C,R)=>{let N=_[R]||C;w.vertexStart=i[R],w.indexStart=r[R];let j=RiP(r,t));if(Qy(e)){if(vct(e))return t.style=yct,(0,_D.cloneElement)(e,t);if(xct(e))return(0,_D.cloneElement)(e,t)}return e}function Qy(e){return e&&typeof e==\"object\"&&\"type\"in e||!1}function vct(e){var t;return(t=e.props)===null||t===void 0?void 0:t.mapStyle}function xct(e){let t=e.type;return t&&t.deckGLViewProps}function yD(e){if(typeof e==\"function\")return(0,ZG.createElement)(Qc,{},e);if(Array.isArray(e))return e.map(yD);if(Qy(e)){if(e.type===nP.Fragment)return yD(e.props.children);if(Yy(e.type,Qc))return e}return e}function vD({children:e,layers:t=[],views:r=null}){let i=[],s=[],n={};return nP.Children.forEach(yD(e),o=>{if(Qy(o)){let c=o.type;if(Yy(c,Tn)){let f=bct(c,o.props);s.push(f)}else i.push(o);if(Yy(c,Qc)&&c!==Qc&&o.props.id){let f=new c(o.props);n[f.id]=f}}else o&&i.push(o)}),Object.keys(n).length>0&&(Array.isArray(r)?r.forEach(o=>{n[o.id]=o}):r&&(n[r.id]=r),r=Object.values(n)),t=s.length>0?[...s,...t]:t,{layers:t,children:i,views:r}}function bct(e,t){let r={},i=e.defaultProps||{};for(let s in t)i[s]!==t[s]&&(r[s]=t[s]);return new e(r)}var xD=ki(Ji());function bD({children:e,deck:t,ContextProvider:r}){let{viewManager:i}=t||{};if(!i||!i.views.length)return[];let s={},n=i.views[0].id;for(let o of e){let c=n,f=o;Qy(o)&&Yy(o.type,Qc)&&(c=o.props.id||n,f=o.props.children);let _=i.getViewport(c),w=i.getViewState(c);if(_){w.padding=_.padding;let{x:C,y:R,width:N,height:j}=_;f=iP(f,{x:C,y:R,width:N,height:j,viewport:_,viewState:w}),s[c]||(s[c]={viewport:_,children:[]}),s[c].children.push(f)}}return Object.keys(s).map(o=>{let{viewport:c,children:f}=s[o],{x:_,y:w,width:C,height:R}=c,N={position:\"absolute\",left:_,top:w,width:C,height:R},j=\"view-\".concat(o),Y=(0,xD.createElement)(\"div\",{key:j,id:j,style:N},...f);if(r){let rt={viewport:c,container:t.canvas.offsetParent,eventManager:t.eventManager,onViewStateChange:$=>{$.viewId=o,t._onViewStateChange($)}};return(0,xD.createElement)(r,{key:j,value:rt},Y)}return Y})}var wct={mixBlendMode:null};function wD({width:e,height:t,style:r}){let i={position:\"absolute\",zIndex:0,left:0,top:0,width:e,height:t},s={left:0,top:0};if(r)for(let n in r)n in wct?s[n]=r[n]:i[n]=r[n];return{containerStyle:i,canvasStyle:s}}function Sct(e){return{get deck(){return e.deck},pickObject:t=>e.deck.pickObject(t),pickMultipleObjects:t=>e.deck.pickMultipleObjects(t),pickObjects:t=>e.deck.pickObjects(t)}}function YG(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}function Tct(e,t,r){let i=new t({...r,_customRender:s=>{e.redrawReason=s;let n=i.getViewports();e.lastRenderedViewports!==n?e.forceUpdate():YG(e)}});return i}var QG=(0,Mo.forwardRef)((e,t)=>{let[r,i]=(0,Mo.useState)(0),n=(0,Mo.useRef)({control:null,version:r,forceUpdate:()=>i(Pt=>Pt+1)}).current,o=(0,Mo.useRef)(null),c=(0,Mo.useRef)(null),f=(0,Mo.useMemo)(()=>vD(e),[e.layers,e.views,e.children]),_=!0,w=Pt=>{var Ot;return _&&e.viewState?(n.viewStateUpdateRequested=Pt,null):(n.viewStateUpdateRequested=null,(Ot=e.onViewStateChange)===null||Ot===void 0?void 0:Ot.call(e,Pt))},C=Pt=>{if(_)n.interactionStateUpdateRequested=Pt;else{var Ot;n.interactionStateUpdateRequested=null,(Ot=e.onInteractionStateChange)===null||Ot===void 0||Ot.call(e,Pt)}},R=(0,Mo.useMemo)(()=>{let Pt={...e,style:null,width:\"100%\",height:\"100%\",parent:o.current,canvas:c.current,layers:f.layers,views:f.views,onViewStateChange:w,onInteractionStateChange:C};return delete Pt._customRender,n.deck&&n.deck.setProps(Pt),Pt},[e]);(0,Mo.useEffect)(()=>{let Pt=e.Deck||ap;return n.deck=Tct(n,Pt,{...R,parent:o.current,canvas:c.current}),()=>{var Ot;return(Ot=n.deck)===null||Ot===void 0?void 0:Ot.finalize()}},[]),qG(()=>{YG(n);let{viewStateUpdateRequested:Pt,interactionStateUpdateRequested:Ot}=n;Pt&&w(Pt),Ot&&C(Ot)}),(0,Mo.useImperativeHandle)(t,()=>Sct(n),[]);let N=n.deck&&n.deck.isInitialized?n.deck.getViewports():void 0,{ContextProvider:j,width:Y,height:rt,id:$,style:K}=e,{containerStyle:tt,canvasStyle:ut}=(0,Mo.useMemo)(()=>wD({width:Y,height:rt,style:K}),[Y,rt,K]);if(!n.viewStateUpdateRequested&&n.lastRenderedViewports===N||n.version!==r){n.lastRenderedViewports=N,n.version=r;let Pt=bD({children:f.children,deck:n.deck,ContextProvider:j}),Ot=(0,Mo.createElement)(\"canvas\",{key:\"canvas\",id:$||\"deckgl-overlay\",ref:c,style:ut});n.control=(0,Mo.createElement)(\"div\",{id:\"\".concat($||\"deckgl\",\"-wrapper\"),ref:o,style:tt},[Ot,Pt])}return _=!1,n.control});QG.defaultProps=ap.defaultProps;var SD=QG;var Xt,XG=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error(\"TextDecoder not available\")}};typeof TextDecoder<\"u\"&&XG.decode();var lw=null;function $y(){return(lw===null||lw.byteLength===0)&&(lw=new Uint8Array(Xt.memory.buffer)),lw}function Fu(e,t){return e=e>>>0,XG.decode($y().subarray(e,e+t))}var cp=new Array(128).fill(void 0);cp.push(void 0,null,!0,!1);var dw=cp.length;function gr(e){dw===cp.length&&cp.push(cp.length+1);let t=dw;return dw=cp[t],cp[t]=e,t}function Qe(e){return cp[e]}function Mct(e){e<132||(cp[e]=dw,dw=e)}function Yn(e){let t=Qe(e);return Mct(e),t}var qh=0,sP=typeof TextEncoder<\"u\"?new TextEncoder(\"utf-8\"):{encode:()=>{throw Error(\"TextEncoder not available\")}},Ect=typeof sP.encodeInto==\"function\"?function(e,t){return sP.encodeInto(e,t)}:function(e,t){let r=sP.encode(e);return t.set(r),{read:e.length,written:r.length}};function cw(e,t,r){if(r===void 0){let c=sP.encode(e),f=t(c.length,1)>>>0;return $y().subarray(f,f+c.length).set(c),qh=c.length,f}let i=e.length,s=t(i,1)>>>0,n=$y(),o=0;for(;o127)break;n[s+o]=c}if(o!==i){o!==0&&(e=e.slice(o)),s=r(s,i,i=o+e.length*3,1)>>>0;let c=$y().subarray(s+o,s+i),f=Ect(e,c);o+=f.written}return qh=o,s}function TD(e){return e==null}var uw=null;function or(){return(uw===null||uw.byteLength===0)&&(uw=new Int32Array(Xt.memory.buffer)),uw}function MD(e){let t=typeof e;if(t==\"number\"||t==\"boolean\"||e==null)return`${e}`;if(t==\"string\")return`\"${e}\"`;if(t==\"symbol\"){let s=e.description;return s==null?\"Symbol\":`Symbol(${s})`}if(t==\"function\"){let s=e.name;return typeof s==\"string\"&&s.length>0?`Function(${s})`:\"Function\"}if(Array.isArray(e)){let s=e.length,n=\"[\";s>0&&(n+=MD(e[0]));for(let o=1;o1)i=r[1];else return toString.call(e);if(i==\"Object\")try{return\"Object(\"+JSON.stringify(e)+\")\"}catch{return\"Object\"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:i}function Pct(e,t,r,i){let s={a:e,b:t,cnt:1,dtor:r},n=(...o)=>{s.cnt++;let c=s.a;s.a=0;try{return i(c,s.b,...o)}finally{--s.cnt===0?Xt.__wbindgen_export_2.get(s.dtor)(c,s.b):s.a=c}};return n.original=s,n}function Ict(e,t,r){Xt._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h896648893be04d51(e,t,gr(r))}function ED(e,t){let r=t(e.length*1,1)>>>0;return $y().set(e,r/1),qh=e.length,r}function KG(e){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16),n=ED(e,Xt.__wbindgen_malloc),o=qh;Xt.readParquet(s,n,o);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return BD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}function JG(e,t){return e=e>>>0,$y().subarray(e/1,e/1+t)}var hw=null;function $G(){return(hw===null||hw.byteLength===0)&&(hw=new BigInt64Array(Xt.memory.buffer)),hw}var fw=null;function Cct(){return(fw===null||fw.byteLength===0)&&(fw=new BigUint64Array(Xt.memory.buffer)),fw}function Lct(e,t){return e=e>>>0,Cct().subarray(e/8,e/8+t)}function Eo(e,t){try{return e.apply(this,t)}catch(r){Xt.__wbindgen_exn_store(gr(r))}}function kct(e,t,r,i){Xt.wasm_bindgen__convert__closures__invoke2_mut__h02232cd008ae4dfe(e,t,gr(r),gr(i))}var yNt=Object.freeze({UNCOMPRESSED:0,0:\"UNCOMPRESSED\",SNAPPY:1,1:\"SNAPPY\",GZIP:2,2:\"GZIP\",BROTLI:3,3:\"BROTLI\",LZ4:4,4:\"LZ4\",ZSTD:5,5:\"ZSTD\",LZ4_RAW:6,6:\"LZ4_RAW\"}),vNt=Object.freeze({PLAIN:0,0:\"PLAIN\",PLAIN_DICTIONARY:1,1:\"PLAIN_DICTIONARY\",RLE:2,2:\"RLE\",BIT_PACKED:3,3:\"BIT_PACKED\",DELTA_BINARY_PACKED:4,4:\"DELTA_BINARY_PACKED\",DELTA_LENGTH_BYTE_ARRAY:5,5:\"DELTA_LENGTH_BYTE_ARRAY\",DELTA_BYTE_ARRAY:6,6:\"DELTA_BYTE_ARRAY\",RLE_DICTIONARY:7,7:\"RLE_DICTIONARY\",BYTE_STREAM_SPLIT:8,8:\"BYTE_STREAM_SPLIT\"}),xNt=Object.freeze({V1:0,0:\"V1\",V2:1,1:\"V2\"}),PD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_arrowschema_free(t)}copy(){let t=Xt.arrowschema_copy(this.__wbg_ptr);return e.__wrap(t)}},ID=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_columnchunkmetadata_free(t)}filePath(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_filePath(i,this.__wbg_ptr);var t=or()[i/4+0],r=or()[i/4+1];let s;return t!==0&&(s=Fu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}fileOffset(){return Xt.columnchunkmetadata_fileOffset(this.__wbg_ptr)}pathInSchema(){let t,r;try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_pathInSchema(n,this.__wbg_ptr);var i=or()[n/4+0],s=or()[n/4+1];return t=i,r=s,Fu(i,s)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}statistics_exist(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_statistics_exist(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return t!==0}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMinValue(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMinValue(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMaxValue(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMaxValue(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsNullCount(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsNullCount(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numValues(){return Xt.columnchunkmetadata_numValues(this.__wbg_ptr)}compressedSize(){return Xt.columnchunkmetadata_compressedSize(this.__wbg_ptr)}uncompressedSize(){return Xt.columnchunkmetadata_uncompressedSize(this.__wbg_ptr)}dataPageOffset(){return Xt.columnchunkmetadata_dataPageOffset(this.__wbg_ptr)}hasIndexPage(){return Xt.columnchunkmetadata_hasIndexPage(this.__wbg_ptr)!==0}indexPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_indexPageOffset(i,this.__wbg_ptr);var t=or()[i/4+0],r=$G()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}dictionaryPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_dictionaryPageOffset(i,this.__wbg_ptr);var t=or()[i/4+0],r=$G()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numColumnEncodings(){return Xt.columnchunkmetadata_numColumnEncodings(this.__wbg_ptr)>>>0}byteRange(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_byteRange(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=Lct(t,r).slice();return Xt.__wbindgen_free(t,r*8),i}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},CD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_datatype_free(t)}},oP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffirecordbatch_free(t)}arrayAddr(){return Xt.ffirecordbatch_arrayAddr(this.__wbg_ptr)}schemaAddr(){return Xt.ffirecordbatch_schemaAddr(this.__wbg_ptr)}},aP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffitable_free(t)}numBatches(){return Xt.ffitable_numBatches(this.__wbg_ptr)>>>0}schemaAddr(){return Xt.ffitable_schemaAddr(this.__wbg_ptr)}arrayAddr(t){return Xt.ffitable_arrayAddr(this.__wbg_ptr,t)}drop(){let t=this.__destroy_into_raw();Xt.ffitable_drop(t)}};var LD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_filemetadata_free(t)}copy(){let t=Xt.filemetadata_copy(this.__wbg_ptr);return e.__wrap(t)}version(){return Xt.filemetadata_version(this.__wbg_ptr)}numRows(){return Xt.filemetadata_numRows(this.__wbg_ptr)>>>0}createdBy(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_createdBy(i,this.__wbg_ptr);var t=or()[i/4+0],r=or()[i/4+1];let s;return t!==0&&(s=Fu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numRowGroups(){return Xt.filemetadata_numRowGroups(this.__wbg_ptr)>>>0}rowGroup(t){let r=Xt.filemetadata_rowGroup(this.__wbg_ptr,t);return DD.__wrap(r)}schema(){let t=Xt.filemetadata_schema(this.__wbg_ptr);return OD.__wrap(t)}keyValueMetadata(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_keyValueMetadata(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return Yn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}arrowSchema(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_arrowSchema(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return PD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}};var kD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_intounderlyingsource_free(t)}pull(t){let r=Xt.intounderlyingsource_pull(this.__wbg_ptr,gr(t));return Yn(r)}cancel(){let t=this.__destroy_into_raw();Xt.intounderlyingsource_cancel(t)}};var RD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_queuingstrategy_free(t)}get highWaterMark(){return Xt.queuingstrategy_highWaterMark(this.__wbg_ptr)}};var lP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_recordbatch_free(t)}get numRows(){return Xt.recordbatch_numRows(this.__wbg_ptr)>>>0}get numColumns(){return Xt.recordbatch_numColumns(this.__wbg_ptr)>>>0}get schema(){let t=Xt.recordbatch_schema(this.__wbg_ptr);return cP.__wrap(t)}column(t){let r=Xt.recordbatch_column(this.__wbg_ptr,t);return r===0?void 0:uP.__wrap(r)}column_by_name(t){let r=cw(t,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),i=qh,s=Xt.recordbatch_column_by_name(this.__wbg_ptr,r,i);return s===0?void 0:uP.__wrap(s)}toFFI(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_toFFI(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return oP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let s=this.__destroy_into_raw(),n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoFFI(n,s);var t=or()[n/4+0],r=or()[n/4+1],i=or()[n/4+2];if(i)throw Yn(r);return oP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoIPCStream(c,o);var t=or()[c/4+0],r=or()[c/4+1],i=or()[c/4+2],s=or()[c/4+3];if(s)throw Yn(i);var n=JG(t,r).slice();return Xt.__wbindgen_free(t,r*1),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},DD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_rowgroupmetadata_free(t)}numRows(){return Xt.rowgroupmetadata_numRows(this.__wbg_ptr)>>>0}numColumns(){return Xt.rowgroupmetadata_numColumns(this.__wbg_ptr)>>>0}column(t){let r=Xt.rowgroupmetadata_column(this.__wbg_ptr,t);return ID.__wrap(r)}totalByteSize(){return Xt.rowgroupmetadata_totalByteSize(this.__wbg_ptr)>>>0}compressedSize(){return Xt.rowgroupmetadata_compressedSize(this.__wbg_ptr)>>>0}},cP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schema_free(t)}},OD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schemadescriptor_free(t)}name(){let t,r;try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.schemadescriptor_name(n,this.__wbg_ptr);var i=or()[n/4+0],s=or()[n/4+1];return t=i,r=s,Fu(i,s)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}numColumns(){return Xt.schemadescriptor_numColumns(this.__wbg_ptr)>>>0}numFields(){return Xt.schemadescriptor_numFields(this.__wbg_ptr)>>>0}},BD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_table_free(t)}get schema(){let t=Xt.table_schema(this.__wbg_ptr);return cP.__wrap(t)}recordBatch(t){let r=Xt.table_recordBatch(this.__wbg_ptr,t);return r===0?void 0:lP.__wrap(r)}get numBatches(){return Xt.table_numBatches(this.__wbg_ptr)>>>0}toFFI(){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_toFFI(s,this.__wbg_ptr);var t=or()[s/4+0],r=or()[s/4+1],i=or()[s/4+2];if(i)throw Yn(r);return aP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let s=this.__destroy_into_raw(),n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoFFI(n,s);var t=or()[n/4+0],r=or()[n/4+1],i=or()[n/4+2];if(i)throw Yn(r);return aP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoIPCStream(c,o);var t=or()[c/4+0],r=or()[c/4+1],i=or()[c/4+2],s=or()[c/4+3];if(s)throw Yn(i);var n=JG(t,r).slice();return Xt.__wbindgen_free(t,r*1),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCFile(t){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16),o=ED(t,Xt.__wbindgen_malloc),c=qh;Xt.table_fromIPCFile(n,o,c);var r=or()[n/4+0],i=or()[n/4+1],s=or()[n/4+2];if(s)throw Yn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCStream(t){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16),o=ED(t,Xt.__wbindgen_malloc),c=qh;Xt.table_fromIPCStream(n,o,c);var r=or()[n/4+0],i=or()[n/4+1],s=or()[n/4+2];if(s)throw Yn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},uP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_vector_free(t)}data_type(){let t=Xt.vector_data_type(this.__wbg_ptr);return CD.__wrap(t)}};async function Rct(e,t){if(typeof Response==\"function\"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==\"function\")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get(\"Content-Type\")!=\"application/wasm\")console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",i);else throw i}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function Dct(){let e={};return e.wbg={},e.wbg.__wbg_filemetadata_new=function(t){let r=LD.__wrap(t);return gr(r)},e.wbg.__wbindgen_error_new=function(t,r){let i=new Error(Fu(t,r));return gr(i)},e.wbg.__wbindgen_object_drop_ref=function(t){Yn(t)},e.wbg.__wbindgen_string_new=function(t,r){let i=Fu(t,r);return gr(i)},e.wbg.__wbindgen_bigint_from_i64=function(t){return gr(t)},e.wbg.__wbindgen_number_new=function(t){return gr(t)},e.wbg.__wbindgen_object_clone_ref=function(t){let r=Qe(t);return gr(r)},e.wbg.__wbg_fetch_b5d6bebed1e6c2d2=function(t){let r=fetch(Qe(t));return gr(r)},e.wbg.__wbg_newwithsource_620c192b0682807b=function(t,r){let i=new ReadableStream(kD.__wrap(t),RD.__wrap(r));return gr(i)},e.wbg.__wbg_close_e9110ca16e2567db=function(t){Qe(t).close()},e.wbg.__wbg_enqueue_d71a1a518e21f5c3=function(t,r){Qe(t).enqueue(Qe(r))},e.wbg.__wbg_byobRequest_08c18cee35def1f4=function(t){let r=Qe(t).byobRequest;return TD(r)?0:gr(r)},e.wbg.__wbg_close_da7e6fb9d9851e5a=function(t){Qe(t).close()},e.wbg.__wbg_view_231340b0dd8a2484=function(t){let r=Qe(t).view;return TD(r)?0:gr(r)},e.wbg.__wbg_respond_8fadc5f5c9d95422=function(t,r){Qe(t).respond(r>>>0)},e.wbg.__wbg_buffer_4e79326814bdd393=function(t){let r=Qe(t).buffer;return gr(r)},e.wbg.__wbg_byteOffset_b69b0a07afccce19=function(t){return Qe(t).byteOffset},e.wbg.__wbg_byteLength_5299848ed3264181=function(t){return Qe(t).byteLength},e.wbg.__wbindgen_string_get=function(t,r){let i=Qe(r),s=typeof i==\"string\"?i:void 0;var n=TD(s)?0:cw(s,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),o=qh;or()[t/4+1]=o,or()[t/4+0]=n},e.wbg.__wbg_set_bd72c078edfa51ad=function(t,r,i){Qe(t)[Yn(r)]=Yn(i)},e.wbg.__wbg_String_4370c5505c674d30=function(t,r){let i=String(Qe(r)),s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbindgen_cb_drop=function(t){let r=Yn(t).original;return r.cnt--==1?(r.a=0,!0):!1},e.wbg.__wbg_recordbatch_new=function(t){let r=lP.__wrap(t);return gr(r)},e.wbg.__wbg_randomFillSync_dc1e9a60c158336d=function(){return Eo(function(t,r){Qe(t).randomFillSync(Yn(r))},arguments)},e.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab=function(){return Eo(function(t,r){Qe(t).getRandomValues(Qe(r))},arguments)},e.wbg.__wbg_crypto_c48a774b022d20ac=function(t){let r=Qe(t).crypto;return gr(r)},e.wbg.__wbindgen_is_object=function(t){let r=Qe(t);return typeof r==\"object\"&&r!==null},e.wbg.__wbg_process_298734cf255a885d=function(t){let r=Qe(t).process;return gr(r)},e.wbg.__wbg_versions_e2e78e134e3e5d01=function(t){let r=Qe(t).versions;return gr(r)},e.wbg.__wbg_node_1cd7a5d853dbea79=function(t){let r=Qe(t).node;return gr(r)},e.wbg.__wbindgen_is_string=function(t){return typeof Qe(t)==\"string\"},e.wbg.__wbg_require_8f08ceecec0f4fee=function(){return Eo(function(){let t=module.require;return gr(t)},arguments)},e.wbg.__wbg_msCrypto_bcb970640f50a1e8=function(t){let r=Qe(t).msCrypto;return gr(r)},e.wbg.__wbg_signal_4bd18fb489af2d4c=function(t){let r=Qe(t).signal;return gr(r)},e.wbg.__wbg_new_55c9955722952374=function(){return Eo(function(){let t=new AbortController;return gr(t)},arguments)},e.wbg.__wbg_abort_654b796176d117aa=function(t){Qe(t).abort()},e.wbg.__wbg_new_1eead62f64ca15ce=function(){return Eo(function(){let t=new Headers;return gr(t)},arguments)},e.wbg.__wbg_append_fda9e3432e3e88da=function(){return Eo(function(t,r,i,s,n){Qe(t).append(Fu(r,i),Fu(s,n))},arguments)},e.wbg.__wbg_fetch_8eaf01857a5bb21f=function(t,r){let i=Qe(t).fetch(Qe(r));return gr(i)},e.wbg.__wbg_instanceof_Response_fc4327dbfcdf5ced=function(t){let r;try{r=Qe(t)instanceof Response}catch{r=!1}return r},e.wbg.__wbg_url_8503de97f69da463=function(t,r){let i=Qe(r).url,s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbg_status_ac85a3142a84caa2=function(t){return Qe(t).status},e.wbg.__wbg_headers_b70de86b8e989bc0=function(t){let r=Qe(t).headers;return gr(r)},e.wbg.__wbg_arrayBuffer_288fb3538806e85c=function(){return Eo(function(t){let r=Qe(t).arrayBuffer();return gr(r)},arguments)},e.wbg.__wbg_newwithstrandinit_cad5cd6038c7ff5d=function(){return Eo(function(t,r,i){let s=new Request(Fu(t,r),Qe(i));return gr(s)},arguments)},e.wbg.__wbindgen_is_function=function(t){return typeof Qe(t)==\"function\"},e.wbg.__wbg_newnoargs_581967eacc0e2604=function(t,r){let i=new Function(Fu(t,r));return gr(i)},e.wbg.__wbg_new_56693dbed0c32988=function(){return gr(new Map)},e.wbg.__wbg_next_526fc47e980da008=function(t){let r=Qe(t).next;return gr(r)},e.wbg.__wbg_next_ddb3312ca1c4e32a=function(){return Eo(function(t){let r=Qe(t).next();return gr(r)},arguments)},e.wbg.__wbg_done_5c1f01fb660d73b5=function(t){return Qe(t).done},e.wbg.__wbg_value_1695675138684bd5=function(t){let r=Qe(t).value;return gr(r)},e.wbg.__wbg_iterator_97f0c81209c6c35a=function(){return gr(Symbol.iterator)},e.wbg.__wbg_get_97b561fb56f034b5=function(){return Eo(function(t,r){let i=Reflect.get(Qe(t),Qe(r));return gr(i)},arguments)},e.wbg.__wbg_call_cb65541d95d71282=function(){return Eo(function(t,r){let i=Qe(t).call(Qe(r));return gr(i)},arguments)},e.wbg.__wbg_new_b51585de1b234aff=function(){let t=new Object;return gr(t)},e.wbg.__wbg_self_1ff1d729e9aae938=function(){return Eo(function(){let t=self.self;return gr(t)},arguments)},e.wbg.__wbg_window_5f4faef6c12b79ec=function(){return Eo(function(){let t=window.window;return gr(t)},arguments)},e.wbg.__wbg_globalThis_1d39714405582d3c=function(){return Eo(function(){let t=globalThis.globalThis;return gr(t)},arguments)},e.wbg.__wbg_global_651f05c6a0944d1c=function(){return Eo(function(){let t=global.global;return gr(t)},arguments)},e.wbg.__wbindgen_is_undefined=function(t){return Qe(t)===void 0},e.wbg.__wbg_new_d258248ed531ff54=function(t,r){let i=new Error(Fu(t,r));return gr(i)},e.wbg.__wbg_call_01734de55d61e11d=function(){return Eo(function(t,r,i){let s=Qe(t).call(Qe(r),Qe(i));return gr(s)},arguments)},e.wbg.__wbg_set_bedc3d02d0f05eb0=function(t,r,i){let s=Qe(t).set(Qe(r),Qe(i));return gr(s)},e.wbg.__wbg_new_43f1b47c28813cbd=function(t,r){try{var i={a:t,b:r},s=(o,c)=>{let f=i.a;i.a=0;try{return kct(f,i.b,o,c)}finally{i.a=f}};let n=new Promise(s);return gr(n)}finally{i.a=i.b=0}},e.wbg.__wbg_resolve_53698b95aaf7fcf8=function(t){let r=Promise.resolve(Qe(t));return gr(r)},e.wbg.__wbg_then_f7e06ee3c11698eb=function(t,r){let i=Qe(t).then(Qe(r));return gr(i)},e.wbg.__wbg_then_b2267541e2a73865=function(t,r,i){let s=Qe(t).then(Qe(r),Qe(i));return gr(s)},e.wbg.__wbg_buffer_085ec1f694018c4f=function(t){let r=Qe(t).buffer;return gr(r)},e.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(t,r,i){let s=new Uint8Array(Qe(t),r>>>0,i>>>0);return gr(s)},e.wbg.__wbg_new_8125e318e6245eed=function(t){let r=new Uint8Array(Qe(t));return gr(r)},e.wbg.__wbg_set_5cf90238115182c3=function(t,r,i){Qe(t).set(Qe(r),i>>>0)},e.wbg.__wbg_length_72e2208bbc0efc61=function(t){return Qe(t).length},e.wbg.__wbg_newwithlength_e5d69174d6984cd7=function(t){let r=new Uint8Array(t>>>0);return gr(r)},e.wbg.__wbg_subarray_13db269f57aa838d=function(t,r,i){let s=Qe(t).subarray(r>>>0,i>>>0);return gr(s)},e.wbg.__wbg_stringify_e25465938f3f611f=function(){return Eo(function(t){let r=JSON.stringify(Qe(t));return gr(r)},arguments)},e.wbg.__wbg_has_c5fcd020291e56b8=function(){return Eo(function(t,r){return Reflect.has(Qe(t),Qe(r))},arguments)},e.wbg.__wbg_set_092e06b0f9d71865=function(){return Eo(function(t,r,i){return Reflect.set(Qe(t),Qe(r),Qe(i))},arguments)},e.wbg.__wbindgen_debug_string=function(t,r){let i=MD(Qe(r)),s=cw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),n=qh;or()[t/4+1]=n,or()[t/4+0]=s},e.wbg.__wbindgen_throw=function(t,r){throw new Error(Fu(t,r))},e.wbg.__wbindgen_memory=function(){let t=Xt.memory;return gr(t)},e.wbg.__wbindgen_function_table=function(){let t=Xt.__wbindgen_export_2;return gr(t)},e.wbg.__wbindgen_closure_wrapper1527=function(t,r,i){let s=Pct(t,r,304,Ict);return gr(s)},e}function Oct(e,t){return Xt=e.exports,t9.__wbindgen_wasm_module=t,hw=null,fw=null,uw=null,lw=null,Xt}async function t9(e){if(Xt!==void 0)return Xt;typeof e>\"u\"&&(e=new URL(\"arrow2_bg.wasm\",import.meta.url));let t=Dct();(typeof e==\"string\"||typeof Request==\"function\"&&e instanceof Request||typeof URL==\"function\"&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:i}=await Rct(await e,t);return Oct(r,i)}var e9=t9;function i9(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var s=0,i=Object.getOwnPropertySymbols(e);s=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function ii(e){return this instanceof ii?(this.v=e,this):new ii(e)}function Kc(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var i=r.apply(e,t||[]),s,n=[];return s={},o(\"next\"),o(\"throw\"),o(\"return\"),s[Symbol.asyncIterator]=function(){return this},s;function o(R){i[R]&&(s[R]=function(N){return new Promise(function(j,Y){n.push([R,N,j,Y])>1||c(R,N)})})}function c(R,N){try{f(i[R](N))}catch(j){C(n[0][3],j)}}function f(R){R.value instanceof ii?Promise.resolve(R.value.v).then(_,w):C(n[0][2],R)}function _(R){c(\"next\",R)}function w(R){c(\"throw\",R)}function C(R,N){R(N),n.shift(),n.length&&c(n[0][0],n[0][1])}}function Xy(e){var t,r;return t={},i(\"next\"),i(\"throw\",function(s){throw s}),i(\"return\"),t[Symbol.iterator]=function(){return this},t;function i(s,n){t[s]=e[s]?function(o){return(r=!r)?{value:ii(e[s](o)),done:!1}:n?n(o):o}:n}}function Zh(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof r9==\"function\"?r9(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(n){r[n]=e[n]&&function(o){return new Promise(function(c,f){o=e[n](o),s(c,f,o.done,o.value)})}}function s(n,o,c,f){Promise.resolve(f).then(function(_){n({value:_,done:c})},o)}}var jD={};dA(jD,{compareArrayLike:()=>VD,joinUint8Arrays:()=>tu,memcpy:()=>mw,rebaseValueOffsets:()=>_P,toArrayBufferView:()=>Ai,toArrayBufferViewAsyncIterator:()=>Qh,toArrayBufferViewIterator:()=>Xf,toBigInt64Array:()=>gP,toBigUint64Array:()=>Wct,toFloat32Array:()=>Hct,toFloat32ArrayAsyncIterator:()=>aut,toFloat32ArrayIterator:()=>Jct,toFloat64Array:()=>qct,toFloat64ArrayAsyncIterator:()=>lut,toFloat64ArrayIterator:()=>tut,toInt16Array:()=>Vct,toInt16ArrayAsyncIterator:()=>iut,toInt16ArrayIterator:()=>Qct,toInt32Array:()=>fg,toInt32ArrayAsyncIterator:()=>nut,toInt32ArrayIterator:()=>$ct,toInt8Array:()=>Uct,toInt8ArrayAsyncIterator:()=>rut,toInt8ArrayIterator:()=>Yct,toUint16Array:()=>jct,toUint16ArrayAsyncIterator:()=>sut,toUint16ArrayIterator:()=>Xct,toUint32Array:()=>Gct,toUint32ArrayAsyncIterator:()=>out,toUint32ArrayIterator:()=>Kct,toUint8Array:()=>Rr,toUint8ArrayAsyncIterator:()=>UD,toUint8ArrayIterator:()=>ND,toUint8ClampedArray:()=>Zct,toUint8ClampedArrayAsyncIterator:()=>cut,toUint8ClampedArrayIterator:()=>eut});var Bct=new TextDecoder(\"utf-8\"),pw=e=>Bct.decode(e),Fct=new TextEncoder,$f=e=>Fct.encode(e);var zct=e=>typeof e==\"number\",n9=e=>typeof e==\"boolean\",Po=e=>typeof e==\"function\",Pl=e=>e!=null&&Object(e)===e,Jc=e=>Pl(e)&&Po(e.then);var Yh=e=>Pl(e)&&Po(e[Symbol.iterator]),zu=e=>Pl(e)&&Po(e[Symbol.asyncIterator]),hP=e=>Pl(e)&&Pl(e.schema);var fP=e=>Pl(e)&&\"done\"in e&&\"value\"in e;var dP=e=>Pl(e)&&Po(e.stat)&&zct(e.fd);var pP=e=>Pl(e)&&Aw(e.body),AP=e=>\"_getDOMStream\"in e&&\"_getNodeStream\"in e,s9=e=>Pl(e)&&Po(e.abort)&&Po(e.getWriter)&&!AP(e),Aw=e=>Pl(e)&&Po(e.cancel)&&Po(e.getReader)&&!AP(e),o9=e=>Pl(e)&&Po(e.end)&&Po(e.write)&&n9(e.writable)&&!AP(e),mP=e=>Pl(e)&&Po(e.read)&&Po(e.pipe)&&n9(e.readable)&&!AP(e),a9=e=>Pl(e)&&Po(e.clear)&&Po(e.bytes)&&Po(e.position)&&Po(e.setPosition)&&Po(e.capacity)&&Po(e.getBufferIdentifier)&&Po(e.createLong);var zD=typeof SharedArrayBuffer<\"u\"?SharedArrayBuffer:ArrayBuffer;function Nct(e){let t=e[0]?[e[0]]:[],r,i,s,n;for(let o,c,f=0,_=0,w=e.length;++fw+C.byteLength,0),s,n,o,c=0,f=-1,_=Math.min(t||Number.POSITIVE_INFINITY,i);for(let w=r.length;++fAi(Int8Array,e),Vct=e=>Ai(Int16Array,e),fg=e=>Ai(Int32Array,e),gP=e=>Ai(BigInt64Array,e),Rr=e=>Ai(Uint8Array,e),jct=e=>Ai(Uint16Array,e),Gct=e=>Ai(Uint32Array,e),Wct=e=>Ai(BigUint64Array,e),Hct=e=>Ai(Float32Array,e),qct=e=>Ai(Float64Array,e),Zct=e=>Ai(Uint8ClampedArray,e),FD=e=>(e.next(),e);function*Xf(e,t){let r=function*(s){yield s},i=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof zD?r(t):Yh(t)?t:r(t);return yield*FD(function*(s){let n=null;do n=s.next(yield Ai(e,n));while(!n.done)}(i[Symbol.iterator]())),new e}var Yct=e=>Xf(Int8Array,e),Qct=e=>Xf(Int16Array,e),$ct=e=>Xf(Int32Array,e),ND=e=>Xf(Uint8Array,e),Xct=e=>Xf(Uint16Array,e),Kct=e=>Xf(Uint32Array,e),Jct=e=>Xf(Float32Array,e),tut=e=>Xf(Float64Array,e),eut=e=>Xf(Uint8ClampedArray,e);function Qh(e,t){return Kc(this,arguments,function*(){if(Jc(t))return yield ii(yield ii(yield*Xy(Zh(Qh(e,yield ii(t))))));let i=function(o){return Kc(this,arguments,function*(){yield yield ii(yield ii(o))})},s=function(o){return Kc(this,arguments,function*(){yield ii(yield*Xy(Zh(FD(function*(c){let f=null;do f=c.next(yield f?.value);while(!f.done)}(o[Symbol.iterator]())))))})},n=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof zD?i(t):Yh(t)?s(t):zu(t)?t:i(t);return yield ii(yield*Xy(Zh(FD(function(o){return Kc(this,arguments,function*(){let c=null;do c=yield ii(o.next(yield yield ii(Ai(e,c))));while(!c.done)})}(n[Symbol.asyncIterator]()))))),yield ii(new e)})}var rut=e=>Qh(Int8Array,e),iut=e=>Qh(Int16Array,e),nut=e=>Qh(Int32Array,e),UD=e=>Qh(Uint8Array,e),sut=e=>Qh(Uint16Array,e),out=e=>Qh(Uint32Array,e),aut=e=>Qh(Float32Array,e),lut=e=>Qh(Float64Array,e),cut=e=>Qh(Uint8ClampedArray,e);function _P(e,t,r){if(e!==0){r=r.slice(0,t);for(let i=-1,s=r.length;++i0)do if(e[r]!==t[r])return!1;while(++r(e.next(),e);function*uut(e){let t,r=!1,i=[],s,n,o,c=0;function f(){return n===\"peek\"?tu(i,o)[0]:([s,i,c]=tu(i,o),s)}({cmd:n,size:o}=(yield null)||{cmd:\"read\",size:0});let _=ND(e)[Symbol.iterator]();try{do if({done:t,value:s}=Number.isNaN(o-c)?_.next():_.next(o-c),!t&&s.byteLength>0&&(i.push(s),c+=s.byteLength),t||o<=c)do({cmd:n,size:o}=yield f());while(o0&&(s.push(n),f+=n.byteLength),r||c<=f)do({cmd:o,size:c}=yield yield ii(_()));while(c0&&(s.push(Rr(n)),f+=n.byteLength),r||c<=f)do({cmd:o,size:c}=yield yield ii(_()));while(c{})}get closed(){return this.reader?this.reader.closed.catch(()=>{}):Promise.resolve()}releaseLock(){this.reader&&this.reader.releaseLock(),this.reader=null}cancel(t){return sr(this,void 0,void 0,function*(){let{reader:r,source:i}=this;r&&(yield r.cancel(t).catch(()=>{})),i&&i.locked&&this.releaseLock()})}read(t){return sr(this,void 0,void 0,function*(){if(t===0)return{done:this.reader==null,value:new Uint8Array(0)};let r=yield this.reader.read();return!r.done&&(r.value=Rr(r)),r})}},GD=(e,t)=>{let r=s=>i([t,s]),i;return[t,r,new Promise(s=>(i=s)&&e.once(t,r))]};function dut(e){return Kc(this,arguments,function*(){let r=[],i=\"error\",s=!1,n=null,o,c,f=0,_=[],w;function C(){return o===\"peek\"?tu(_,c)[0]:([w,_,f]=tu(_,c),w)}if({cmd:o,size:c}=(yield yield ii(null))||{cmd:\"read\",size:0},e.isTTY)return yield yield ii(new Uint8Array(0)),yield ii(null);try{r[0]=GD(e,\"end\"),r[1]=GD(e,\"error\");do{if(r[2]=GD(e,\"readable\"),[i,n]=yield ii(Promise.race(r.map(N=>N[2]))),i===\"error\")break;if((s=i===\"end\")||(Number.isFinite(c-f)?(w=Rr(e.read(c-f)),w.byteLength0&&(_.push(w),f+=w.byteLength)),s||c<=f)do({cmd:o,size:c}=yield yield ii(C()));while(c{for(let[$,K]of N)e.off($,K);try{let $=e.destroy;$&&$.call(e,j),j=void 0}catch($){j=$||j}finally{j!=null?rt(j):Y()}})}})}var en;(function(e){e[e.V1=0]=\"V1\",e[e.V2=1]=\"V2\",e[e.V3=2]=\"V3\",e[e.V4=3]=\"V4\",e[e.V5=4]=\"V5\"})(en||(en={}));var Mn;(function(e){e[e.Sparse=0]=\"Sparse\",e[e.Dense=1]=\"Dense\"})(Mn||(Mn={}));var qi;(function(e){e[e.HALF=0]=\"HALF\",e[e.SINGLE=1]=\"SINGLE\",e[e.DOUBLE=2]=\"DOUBLE\"})(qi||(qi={}));var Xs;(function(e){e[e.DAY=0]=\"DAY\",e[e.MILLISECOND=1]=\"MILLISECOND\"})(Xs||(Xs={}));var pr;(function(e){e[e.SECOND=0]=\"SECOND\",e[e.MILLISECOND=1]=\"MILLISECOND\",e[e.MICROSECOND=2]=\"MICROSECOND\",e[e.NANOSECOND=3]=\"NANOSECOND\"})(pr||(pr={}));var Io;(function(e){e[e.YEAR_MONTH=0]=\"YEAR_MONTH\",e[e.DAY_TIME=1]=\"DAY_TIME\",e[e.MONTH_DAY_NANO=2]=\"MONTH_DAY_NANO\"})(Io||(Io={}));var Kf=new Int32Array(2),vP=new Float32Array(Kf.buffer),xP=new Float64Array(Kf.buffer),Ky=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var gw;(function(e){e[e.UTF8_BYTES=1]=\"UTF8_BYTES\",e[e.UTF16_STRING=2]=\"UTF16_STRING\"})(gw||(gw={}));var eu=class e{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new e(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8}writeInt32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeUint32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeInt64(t,r){this.writeInt32(t,Number(BigInt.asIntN(32,r))),this.writeInt32(t+4,Number(BigInt.asIntN(32,r>>BigInt(32))))}writeUint64(t,r){this.writeUint32(t,Number(BigInt.asUintN(32,r))),this.writeUint32(t+4,Number(BigInt.asUintN(32,r>>BigInt(32))))}writeFloat32(t,r){vP[0]=r,this.writeInt32(t,Kf[0])}writeFloat64(t,r){xP[0]=r,this.writeInt32(t,Kf[Ky?0:1]),this.writeInt32(t+4,Kf[Ky?1:0])}getBufferIdentifier(){if(this.bytes_.lengththis.minalign&&(this.minalign=t);let i=~(this.bb.capacity()-this.space+r)+1&t-1;for(;this.space=0&&this.vtable[r]==0;r--);let i=r+1;for(;r>=0;r--)this.addInt16(this.vtable[r]!=0?t-this.vtable[r]:0);let s=2;this.addInt16(t-this.object_start);let n=(i+s)*2;this.addInt16(n);let o=0,c=this.space;t:for(r=0;r=0;o--)this.writeInt8(n.charCodeAt(o))}this.prep(this.minalign,4+s),this.addOffset(t),s&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(t,r){this.finish(t,r,!0)}requiredField(t,r){let i=this.bb.capacity()-t,s=i-this.bb.readInt32(i);if(!(r=0;i--)t.addInt32(r[i]);return t.endVector()}static startTypeIdsVector(t,r){t.startVector(4,r,4)}static endUnion(t){return t.endObject()}static createUnion(t,r,i){return e.startUnion(t),e.addMode(t,r),e.addTypeIds(t,i),e.endUnion(t)}};var Pw=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsUtf8(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUtf8(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static startUtf8(t){t.startObject(0)}static endUtf8(t){return t.endObject()}static createUtf8(t){return e.startUtf8(t),e.endUtf8(t)}};var En;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.FloatingPoint=3]=\"FloatingPoint\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct_=13]=\"Struct_\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.LargeList=21]=\"LargeList\",e[e.RunEndEncoded=22]=\"RunEndEncoded\"})(En||(En={}));var rl=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsField(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsField(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}name(t){let r=this.bb.__offset(this.bb_pos,4);return r?this.bb.__string(this.bb_pos+r,t):null}nullable(){let t=this.bb.__offset(this.bb_pos,6);return t?!!this.bb.readInt8(this.bb_pos+t):!1}typeType(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb_pos+t):En.NONE}type(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.__union(t,this.bb_pos+r):null}dictionary(t){let r=this.bb.__offset(this.bb_pos,12);return r?(t||new Jf).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}children(t,r){let i=this.bb.__offset(this.bb_pos,14);return i?(r||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}childrenLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,16);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}static startField(t){t.startObject(7)}static addName(t,r){t.addFieldOffset(0,r,0)}static addNullable(t,r){t.addFieldInt8(1,+r,0)}static addTypeType(t,r){t.addFieldInt8(2,r,En.NONE)}static addType(t,r){t.addFieldOffset(3,r,0)}static addDictionary(t,r){t.addFieldOffset(4,r,0)}static addChildren(t,r){t.addFieldOffset(5,r,0)}static createChildrenVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startChildrenVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(6,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endField(t){return t.endObject()}};var sc=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsSchema(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSchema(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}endianness(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):tm.Little}fields(t,r){let i=this.bb.__offset(this.bb_pos,6);return i?(r||new rl).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}fieldsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}features(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.readInt64(this.bb.__vector(this.bb_pos+r)+t*8):BigInt(0)}featuresLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSchema(t){t.startObject(4)}static addEndianness(t,r){t.addFieldInt16(0,r,tm.Little)}static addFields(t,r){t.addFieldOffset(1,r,0)}static createFieldsVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startFieldsVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(2,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static addFeatures(t,r){t.addFieldOffset(3,r,0)}static createFeaturesVector(t,r){t.startVector(8,r.length,8);for(let i=r.length-1;i>=0;i--)t.addInt64(r[i]);return t.endVector()}static startFeaturesVector(t,r){t.startVector(8,r,8)}static endSchema(t){return t.endObject()}static finishSchemaBuffer(t,r){t.finish(r)}static finishSizePrefixedSchemaBuffer(t,r){t.finish(r,void 0,!0)}static createSchema(t,r,i,s,n){return e.startSchema(t),e.addEndianness(t,r),e.addFields(t,i),e.addCustomMetadata(t,s),e.addFeatures(t,n),e.endSchema(t)}};var bi;(function(e){e[e.NONE=0]=\"NONE\",e[e.Schema=1]=\"Schema\",e[e.DictionaryBatch=2]=\"DictionaryBatch\",e[e.RecordBatch=3]=\"RecordBatch\",e[e.Tensor=4]=\"Tensor\",e[e.SparseTensor=5]=\"SparseTensor\"})(bi||(bi={}));var Rt;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.Float=3]=\"Float\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct=13]=\"Struct\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.Dictionary=-1]=\"Dictionary\",e[e.Int8=-2]=\"Int8\",e[e.Int16=-3]=\"Int16\",e[e.Int32=-4]=\"Int32\",e[e.Int64=-5]=\"Int64\",e[e.Uint8=-6]=\"Uint8\",e[e.Uint16=-7]=\"Uint16\",e[e.Uint32=-8]=\"Uint32\",e[e.Uint64=-9]=\"Uint64\",e[e.Float16=-10]=\"Float16\",e[e.Float32=-11]=\"Float32\",e[e.Float64=-12]=\"Float64\",e[e.DateDay=-13]=\"DateDay\",e[e.DateMillisecond=-14]=\"DateMillisecond\",e[e.TimestampSecond=-15]=\"TimestampSecond\",e[e.TimestampMillisecond=-16]=\"TimestampMillisecond\",e[e.TimestampMicrosecond=-17]=\"TimestampMicrosecond\",e[e.TimestampNanosecond=-18]=\"TimestampNanosecond\",e[e.TimeSecond=-19]=\"TimeSecond\",e[e.TimeMillisecond=-20]=\"TimeMillisecond\",e[e.TimeMicrosecond=-21]=\"TimeMicrosecond\",e[e.TimeNanosecond=-22]=\"TimeNanosecond\",e[e.DenseUnion=-23]=\"DenseUnion\",e[e.SparseUnion=-24]=\"SparseUnion\",e[e.IntervalDayTime=-25]=\"IntervalDayTime\",e[e.IntervalYearMonth=-26]=\"IntervalYearMonth\",e[e.DurationSecond=-27]=\"DurationSecond\",e[e.DurationMillisecond=-28]=\"DurationMillisecond\",e[e.DurationMicrosecond=-29]=\"DurationMicrosecond\",e[e.DurationNanosecond=-30]=\"DurationNanosecond\"})(Rt||(Rt={}));var Ci;(function(e){e[e.OFFSET=0]=\"OFFSET\",e[e.DATA=1]=\"DATA\",e[e.VALIDITY=2]=\"VALIDITY\",e[e.TYPE=3]=\"TYPE\"})(Ci||(Ci={}));var cO={};dA(cO,{clampIndex:()=>tht,clampRange:()=>Vw,createElementComparator:()=>um});var HD={};dA(HD,{valueToString:()=>Jh});function Jh(e){if(e===null)return\"null\";if(e===void 0)return\"undefined\";switch(typeof e){case\"number\":return`${e}`;case\"bigint\":return`${e}`;case\"string\":return`\"${e}\"`}return typeof e[Symbol.toPrimitive]==\"function\"?e[Symbol.toPrimitive](\"string\"):ArrayBuffer.isView(e)?e instanceof BigInt64Array||e instanceof BigUint64Array?`[${[...e].map(t=>Jh(t))}]`:`[${e}]`:ArrayBuffer.isView(e)?`[${e}]`:JSON.stringify(e,(t,r)=>typeof r==\"bigint\"?`${r}`:r)}var ZD={};dA(ZD,{BN:()=>Cw,bigNumToBigInt:()=>u9,bigNumToString:()=>iv,isArrowBigNumSymbol:()=>l9});var l9=Symbol.for(\"isArrowBigNum\");function tf(e,...t){return t.length===0?Object.setPrototypeOf(Ai(this.TypedArray,e),this.constructor.prototype):Object.setPrototypeOf(new this.TypedArray(e,...t),this.constructor.prototype)}tf.prototype[l9]=!0;tf.prototype.toJSON=function(){return`\"${iv(this)}\"`};tf.prototype.valueOf=function(){return c9(this)};tf.prototype.toString=function(){return iv(this)};tf.prototype[Symbol.toPrimitive]=function(e=\"default\"){switch(e){case\"number\":return c9(this);case\"string\":return iv(this);case\"default\":return u9(this)}return iv(this)};function ev(...e){return tf.apply(this,e)}function rv(...e){return tf.apply(this,e)}function Iw(...e){return tf.apply(this,e)}Object.setPrototypeOf(ev.prototype,Object.create(Int32Array.prototype));Object.setPrototypeOf(rv.prototype,Object.create(Uint32Array.prototype));Object.setPrototypeOf(Iw.prototype,Object.create(Uint32Array.prototype));Object.assign(ev.prototype,tf.prototype,{constructor:ev,signed:!0,TypedArray:Int32Array,BigIntArray:BigInt64Array});Object.assign(rv.prototype,tf.prototype,{constructor:rv,signed:!1,TypedArray:Uint32Array,BigIntArray:BigUint64Array});Object.assign(Iw.prototype,tf.prototype,{constructor:Iw,signed:!0,TypedArray:Uint32Array,BigIntArray:BigUint64Array});function c9(e){let{buffer:t,byteOffset:r,length:i,signed:s}=e,n=new BigUint64Array(t,r,i),o=s&&n.at(-1)&BigInt(1)<{if(e.byteLength===8)return`${new e.BigIntArray(e.buffer,e.byteOffset,1)[0]}`;if(!e.signed)return qD(e);let t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(new Int16Array([t.at(-1)])[0]>=0)return qD(e);t=t.slice();let i=1;for(let n=0;ne.byteLength===8?new e.BigIntArray(e.buffer,e.byteOffset,1)[0]:iv(e);function qD(e){let t=\"\",r=new Uint32Array(2),i=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),s=new Uint32Array((i=new Uint16Array(i).reverse()).buffer),n=-1,o=i.length-1;do{for(r[0]=i[n=0];nNumber.MAX_SAFE_INTEGER))throw new TypeError(`${e} is not safe to convert to a number.`);return Number(e)}var h9,f9,d9,p9,A9,m9,g9,_9,y9,v9,x9,b9,w9,S9,T9,M9,E9,P9,I9,C9,L9,k9,Ne=class e{static isNull(t){return t?.typeId===Rt.Null}static isInt(t){return t?.typeId===Rt.Int}static isFloat(t){return t?.typeId===Rt.Float}static isBinary(t){return t?.typeId===Rt.Binary}static isLargeBinary(t){return t?.typeId===Rt.LargeBinary}static isUtf8(t){return t?.typeId===Rt.Utf8}static isLargeUtf8(t){return t?.typeId===Rt.LargeUtf8}static isBool(t){return t?.typeId===Rt.Bool}static isDecimal(t){return t?.typeId===Rt.Decimal}static isDate(t){return t?.typeId===Rt.Date}static isTime(t){return t?.typeId===Rt.Time}static isTimestamp(t){return t?.typeId===Rt.Timestamp}static isInterval(t){return t?.typeId===Rt.Interval}static isDuration(t){return t?.typeId===Rt.Duration}static isList(t){return t?.typeId===Rt.List}static isStruct(t){return t?.typeId===Rt.Struct}static isUnion(t){return t?.typeId===Rt.Union}static isFixedSizeBinary(t){return t?.typeId===Rt.FixedSizeBinary}static isFixedSizeList(t){return t?.typeId===Rt.FixedSizeList}static isMap(t){return t?.typeId===Rt.Map}static isDictionary(t){return t?.typeId===Rt.Dictionary}static isDenseUnion(t){return e.isUnion(t)&&t.mode===Mn.Dense}static isSparseUnion(t){return e.isUnion(t)&&t.mode===Mn.Sparse}constructor(t){this.typeId=t}};h9=Symbol.toStringTag;Ne[h9]=(e=>(e.children=null,e.ArrayType=Array,e.OffsetArrayType=Int32Array,e[Symbol.toStringTag]=\"DataType\"))(Ne.prototype);var ea=class extends Ne{constructor(){super(Rt.Null)}toString(){return\"Null\"}};f9=Symbol.toStringTag;ea[f9]=(e=>e[Symbol.toStringTag]=\"Null\")(ea.prototype);var is=class extends Ne{constructor(t,r){super(Rt.Int),this.isSigned=t,this.bitWidth=r}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?BigInt64Array:BigUint64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?\"I\":\"Ui\"}nt${this.bitWidth}`}};d9=Symbol.toStringTag;is[d9]=(e=>(e.isSigned=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Int\"))(is.prototype);var Lw=class extends is{constructor(){super(!0,8)}get ArrayType(){return Int8Array}},kw=class extends is{constructor(){super(!0,16)}get ArrayType(){return Int16Array}},ef=class extends is{constructor(){super(!0,32)}get ArrayType(){return Int32Array}},Rw=class extends is{constructor(){super(!0,64)}get ArrayType(){return BigInt64Array}},Dw=class extends is{constructor(){super(!1,8)}get ArrayType(){return Uint8Array}},Ow=class extends is{constructor(){super(!1,16)}get ArrayType(){return Uint16Array}},Bw=class extends is{constructor(){super(!1,32)}get ArrayType(){return Uint32Array}},Fw=class extends is{constructor(){super(!1,64)}get ArrayType(){return BigUint64Array}};Object.defineProperty(Lw.prototype,\"ArrayType\",{value:Int8Array});Object.defineProperty(kw.prototype,\"ArrayType\",{value:Int16Array});Object.defineProperty(ef.prototype,\"ArrayType\",{value:Int32Array});Object.defineProperty(Rw.prototype,\"ArrayType\",{value:BigInt64Array});Object.defineProperty(Dw.prototype,\"ArrayType\",{value:Uint8Array});Object.defineProperty(Ow.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Bw.prototype,\"ArrayType\",{value:Uint32Array});Object.defineProperty(Fw.prototype,\"ArrayType\",{value:BigUint64Array});var lo=class extends Ne{constructor(t){super(Rt.Float),this.precision=t}get ArrayType(){switch(this.precision){case qi.HALF:return Uint16Array;case qi.SINGLE:return Float32Array;case qi.DOUBLE:return Float64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`Float${this.precision<<5||16}`}};p9=Symbol.toStringTag;lo[p9]=(e=>(e.precision=null,e[Symbol.toStringTag]=\"Float\"))(lo.prototype);var zw=class extends lo{constructor(){super(qi.HALF)}},Nw=class extends lo{constructor(){super(qi.SINGLE)}},nv=class extends lo{constructor(){super(qi.DOUBLE)}};Object.defineProperty(zw.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Nw.prototype,\"ArrayType\",{value:Float32Array});Object.defineProperty(nv.prototype,\"ArrayType\",{value:Float64Array});var Uu=class extends Ne{constructor(){super(Rt.Binary)}toString(){return\"Binary\"}};A9=Symbol.toStringTag;Uu[A9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Binary\"))(Uu.prototype);var ed=class extends Ne{constructor(){super(Rt.LargeBinary)}toString(){return\"LargeBinary\"}};m9=Symbol.toStringTag;ed[m9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeBinary\"))(ed.prototype);var Vu=class extends Ne{constructor(){super(Rt.Utf8)}toString(){return\"Utf8\"}};g9=Symbol.toStringTag;Vu[g9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Utf8\"))(Vu.prototype);var rd=class extends Ne{constructor(){super(Rt.LargeUtf8)}toString(){return\"LargeUtf8\"}};_9=Symbol.toStringTag;rd[_9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeUtf8\"))(rd.prototype);var oc=class extends Ne{constructor(){super(Rt.Bool)}toString(){return\"Bool\"}};y9=Symbol.toStringTag;oc[y9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Bool\"))(oc.prototype);var ju=class extends Ne{constructor(t,r,i=128){super(Rt.Decimal),this.scale=t,this.precision=r,this.bitWidth=i}toString(){return`Decimal[${this.precision}e${this.scale>0?\"+\":\"\"}${this.scale}]`}};v9=Symbol.toStringTag;ju[v9]=(e=>(e.scale=null,e.precision=null,e.ArrayType=Uint32Array,e[Symbol.toStringTag]=\"Decimal\"))(ju.prototype);var Gu=class extends Ne{constructor(t){super(Rt.Date),this.unit=t}toString(){return`Date${(this.unit+1)*32}<${Xs[this.unit]}>`}};x9=Symbol.toStringTag;Gu[x9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Date\"))(Gu.prototype);var ac=class extends Ne{constructor(t,r){super(Rt.Time),this.unit=t,this.bitWidth=r}toString(){return`Time${this.bitWidth}<${pr[this.unit]}>`}get ArrayType(){switch(this.bitWidth){case 32:return Int32Array;case 64:return BigInt64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}};b9=Symbol.toStringTag;ac[b9]=(e=>(e.unit=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Time\"))(ac.prototype);var Wu=class extends Ne{constructor(t,r){super(Rt.Timestamp),this.unit=t,this.timezone=r}toString(){return`Timestamp<${pr[this.unit]}${this.timezone?`, ${this.timezone}`:\"\"}>`}};w9=Symbol.toStringTag;Wu[w9]=(e=>(e.unit=null,e.timezone=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Timestamp\"))(Wu.prototype);var Hu=class extends Ne{constructor(t){super(Rt.Interval),this.unit=t}toString(){return`Interval<${Io[this.unit]}>`}};S9=Symbol.toStringTag;Hu[S9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Interval\"))(Hu.prototype);var qu=class extends Ne{constructor(t){super(Rt.Duration),this.unit=t}toString(){return`Duration<${pr[this.unit]}>`}};T9=Symbol.toStringTag;qu[T9]=(e=>(e.unit=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=\"Duration\"))(qu.prototype);var lc=class extends Ne{constructor(t){super(Rt.List),this.children=[t]}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}};M9=Symbol.toStringTag;lc[M9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"List\"))(lc.prototype);var un=class extends Ne{constructor(t){super(Rt.Struct),this.children=t}toString(){return`Struct<{${this.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};E9=Symbol.toStringTag;un[E9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"Struct\"))(un.prototype);var cc=class extends Ne{constructor(t,r,i){super(Rt.Union),this.mode=t,this.children=i,this.typeIds=r=Int32Array.from(r),this.typeIdToChildIndex=r.reduce((s,n,o)=>(s[n]=o)&&s||s,Object.create(null))}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(t=>`${t.type}`).join(\" | \")}>`}};P9=Symbol.toStringTag;cc[P9]=(e=>(e.mode=null,e.typeIds=null,e.children=null,e.typeIdToChildIndex=null,e.ArrayType=Int8Array,e[Symbol.toStringTag]=\"Union\"))(cc.prototype);var Zu=class extends Ne{constructor(t){super(Rt.FixedSizeBinary),this.byteWidth=t}toString(){return`FixedSizeBinary[${this.byteWidth}]`}};I9=Symbol.toStringTag;Zu[I9]=(e=>(e.byteWidth=null,e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"FixedSizeBinary\"))(Zu.prototype);var Il=class extends Ne{constructor(t,r){super(Rt.FixedSizeList),this.listSize=t,this.children=[r]}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}};C9=Symbol.toStringTag;Il[C9]=(e=>(e.children=null,e.listSize=null,e[Symbol.toStringTag]=\"FixedSizeList\"))(Il.prototype);var uc=class extends Ne{constructor(t,r=!1){var i,s,n;if(super(Rt.Map),this.children=[t],this.keysSorted=r,t&&(t.name=\"entries\",!((i=t?.type)===null||i===void 0)&&i.children)){let o=(s=t?.type)===null||s===void 0?void 0:s.children[0];o&&(o.name=\"key\");let c=(n=t?.type)===null||n===void 0?void 0:n.children[1];c&&(c.name=\"value\")}}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}get childType(){return this.children[0].type}toString(){return`Map<{${this.children[0].type.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};L9=Symbol.toStringTag;uc[L9]=(e=>(e.children=null,e.keysSorted=null,e[Symbol.toStringTag]=\"Map_\"))(uc.prototype);var put=(e=>()=>++e)(-1),hc=class extends Ne{constructor(t,r,i,s){super(Rt.Dictionary),this.indices=r,this.dictionary=t,this.isOrdered=s||!1,this.id=i==null?put():ms(i)}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}};k9=Symbol.toStringTag;hc[k9]=(e=>(e.id=null,e.indices=null,e.isOrdered=null,e.dictionary=null,e[Symbol.toStringTag]=\"Dictionary\"))(hc.prototype);function iu(e){let t=e;switch(e.typeId){case Rt.Decimal:return e.bitWidth/32;case Rt.Timestamp:return 2;case Rt.Date:return 1+t.unit;case Rt.Interval:return 1+t.unit;case Rt.FixedSizeList:return t.listSize;case Rt.FixedSizeBinary:return t.byteWidth;default:return 1}}var Mr=class{visitMany(t,...r){return t.map((i,s)=>this.visit(i,...r.map(n=>n[s])))}visit(...t){return this.getVisitFn(t[0],!1).apply(this,t)}getVisitFn(t,r=!0){return Aut(this,t,r)}getVisitFnByTypeId(t,r=!0){return sv(this,t,r)}visitNull(t,...r){return null}visitBool(t,...r){return null}visitInt(t,...r){return null}visitFloat(t,...r){return null}visitUtf8(t,...r){return null}visitLargeUtf8(t,...r){return null}visitBinary(t,...r){return null}visitLargeBinary(t,...r){return null}visitFixedSizeBinary(t,...r){return null}visitDate(t,...r){return null}visitTimestamp(t,...r){return null}visitTime(t,...r){return null}visitDecimal(t,...r){return null}visitList(t,...r){return null}visitStruct(t,...r){return null}visitUnion(t,...r){return null}visitDictionary(t,...r){return null}visitInterval(t,...r){return null}visitDuration(t,...r){return null}visitFixedSizeList(t,...r){return null}visitMap(t,...r){return null}};function Aut(e,t,r=!0){return typeof t==\"number\"?sv(e,t,r):typeof t==\"string\"&&t in Rt?sv(e,Rt[t],r):t&&t instanceof Ne?sv(e,R9(t),r):t?.type&&t.type instanceof Ne?sv(e,R9(t.type),r):sv(e,Rt.NONE,r)}function sv(e,t,r=!0){let i=null;switch(t){case Rt.Null:i=e.visitNull;break;case Rt.Bool:i=e.visitBool;break;case Rt.Int:i=e.visitInt;break;case Rt.Int8:i=e.visitInt8||e.visitInt;break;case Rt.Int16:i=e.visitInt16||e.visitInt;break;case Rt.Int32:i=e.visitInt32||e.visitInt;break;case Rt.Int64:i=e.visitInt64||e.visitInt;break;case Rt.Uint8:i=e.visitUint8||e.visitInt;break;case Rt.Uint16:i=e.visitUint16||e.visitInt;break;case Rt.Uint32:i=e.visitUint32||e.visitInt;break;case Rt.Uint64:i=e.visitUint64||e.visitInt;break;case Rt.Float:i=e.visitFloat;break;case Rt.Float16:i=e.visitFloat16||e.visitFloat;break;case Rt.Float32:i=e.visitFloat32||e.visitFloat;break;case Rt.Float64:i=e.visitFloat64||e.visitFloat;break;case Rt.Utf8:i=e.visitUtf8;break;case Rt.LargeUtf8:i=e.visitLargeUtf8;break;case Rt.Binary:i=e.visitBinary;break;case Rt.LargeBinary:i=e.visitLargeBinary;break;case Rt.FixedSizeBinary:i=e.visitFixedSizeBinary;break;case Rt.Date:i=e.visitDate;break;case Rt.DateDay:i=e.visitDateDay||e.visitDate;break;case Rt.DateMillisecond:i=e.visitDateMillisecond||e.visitDate;break;case Rt.Timestamp:i=e.visitTimestamp;break;case Rt.TimestampSecond:i=e.visitTimestampSecond||e.visitTimestamp;break;case Rt.TimestampMillisecond:i=e.visitTimestampMillisecond||e.visitTimestamp;break;case Rt.TimestampMicrosecond:i=e.visitTimestampMicrosecond||e.visitTimestamp;break;case Rt.TimestampNanosecond:i=e.visitTimestampNanosecond||e.visitTimestamp;break;case Rt.Time:i=e.visitTime;break;case Rt.TimeSecond:i=e.visitTimeSecond||e.visitTime;break;case Rt.TimeMillisecond:i=e.visitTimeMillisecond||e.visitTime;break;case Rt.TimeMicrosecond:i=e.visitTimeMicrosecond||e.visitTime;break;case Rt.TimeNanosecond:i=e.visitTimeNanosecond||e.visitTime;break;case Rt.Decimal:i=e.visitDecimal;break;case Rt.List:i=e.visitList;break;case Rt.Struct:i=e.visitStruct;break;case Rt.Union:i=e.visitUnion;break;case Rt.DenseUnion:i=e.visitDenseUnion||e.visitUnion;break;case Rt.SparseUnion:i=e.visitSparseUnion||e.visitUnion;break;case Rt.Dictionary:i=e.visitDictionary;break;case Rt.Interval:i=e.visitInterval;break;case Rt.IntervalDayTime:i=e.visitIntervalDayTime||e.visitInterval;break;case Rt.IntervalYearMonth:i=e.visitIntervalYearMonth||e.visitInterval;break;case Rt.Duration:i=e.visitDuration;break;case Rt.DurationSecond:i=e.visitDurationSecond||e.visitDuration;break;case Rt.DurationMillisecond:i=e.visitDurationMillisecond||e.visitDuration;break;case Rt.DurationMicrosecond:i=e.visitDurationMicrosecond||e.visitDuration;break;case Rt.DurationNanosecond:i=e.visitDurationNanosecond||e.visitDuration;break;case Rt.FixedSizeList:i=e.visitFixedSizeList;break;case Rt.Map:i=e.visitMap;break}if(typeof i==\"function\")return i;if(!r)return()=>null;throw new Error(`Unrecognized type '${Rt[t]}'`)}function R9(e){switch(e.typeId){case Rt.Null:return Rt.Null;case Rt.Int:{let{bitWidth:t,isSigned:r}=e;switch(t){case 8:return r?Rt.Int8:Rt.Uint8;case 16:return r?Rt.Int16:Rt.Uint16;case 32:return r?Rt.Int32:Rt.Uint32;case 64:return r?Rt.Int64:Rt.Uint64}return Rt.Int}case Rt.Float:switch(e.precision){case qi.HALF:return Rt.Float16;case qi.SINGLE:return Rt.Float32;case qi.DOUBLE:return Rt.Float64}return Rt.Float;case Rt.Binary:return Rt.Binary;case Rt.LargeBinary:return Rt.LargeBinary;case Rt.Utf8:return Rt.Utf8;case Rt.LargeUtf8:return Rt.LargeUtf8;case Rt.Bool:return Rt.Bool;case Rt.Decimal:return Rt.Decimal;case Rt.Time:switch(e.unit){case pr.SECOND:return Rt.TimeSecond;case pr.MILLISECOND:return Rt.TimeMillisecond;case pr.MICROSECOND:return Rt.TimeMicrosecond;case pr.NANOSECOND:return Rt.TimeNanosecond}return Rt.Time;case Rt.Timestamp:switch(e.unit){case pr.SECOND:return Rt.TimestampSecond;case pr.MILLISECOND:return Rt.TimestampMillisecond;case pr.MICROSECOND:return Rt.TimestampMicrosecond;case pr.NANOSECOND:return Rt.TimestampNanosecond}return Rt.Timestamp;case Rt.Date:switch(e.unit){case Xs.DAY:return Rt.DateDay;case Xs.MILLISECOND:return Rt.DateMillisecond}return Rt.Date;case Rt.Interval:switch(e.unit){case Io.DAY_TIME:return Rt.IntervalDayTime;case Io.YEAR_MONTH:return Rt.IntervalYearMonth}return Rt.Interval;case Rt.Duration:switch(e.unit){case pr.SECOND:return Rt.DurationSecond;case pr.MILLISECOND:return Rt.DurationMillisecond;case pr.MICROSECOND:return Rt.DurationMicrosecond;case pr.NANOSECOND:return Rt.DurationNanosecond}return Rt.Duration;case Rt.Map:return Rt.Map;case Rt.List:return Rt.List;case Rt.Struct:return Rt.Struct;case Rt.Union:switch(e.mode){case Mn.Dense:return Rt.DenseUnion;case Mn.Sparse:return Rt.SparseUnion}return Rt.Union;case Rt.FixedSizeBinary:return Rt.FixedSizeBinary;case Rt.FixedSizeList:return Rt.FixedSizeList;case Rt.Dictionary:return Rt.Dictionary}throw new Error(`Unrecognized type '${Rt[e.typeId]}'`)}Mr.prototype.visitInt8=null;Mr.prototype.visitInt16=null;Mr.prototype.visitInt32=null;Mr.prototype.visitInt64=null;Mr.prototype.visitUint8=null;Mr.prototype.visitUint16=null;Mr.prototype.visitUint32=null;Mr.prototype.visitUint64=null;Mr.prototype.visitFloat16=null;Mr.prototype.visitFloat32=null;Mr.prototype.visitFloat64=null;Mr.prototype.visitDateDay=null;Mr.prototype.visitDateMillisecond=null;Mr.prototype.visitTimestampSecond=null;Mr.prototype.visitTimestampMillisecond=null;Mr.prototype.visitTimestampMicrosecond=null;Mr.prototype.visitTimestampNanosecond=null;Mr.prototype.visitTimeSecond=null;Mr.prototype.visitTimeMillisecond=null;Mr.prototype.visitTimeMicrosecond=null;Mr.prototype.visitTimeNanosecond=null;Mr.prototype.visitDenseUnion=null;Mr.prototype.visitSparseUnion=null;Mr.prototype.visitIntervalDayTime=null;Mr.prototype.visitIntervalYearMonth=null;Mr.prototype.visitDuration=null;Mr.prototype.visitDurationSecond=null;Mr.prototype.visitDurationMillisecond=null;Mr.prototype.visitDurationMicrosecond=null;Mr.prototype.visitDurationNanosecond=null;var YD={};dA(YD,{float64ToUint16:()=>Uw,uint16ToFloat64:()=>SP});var D9=new Float64Array(1),ov=new Uint32Array(D9.buffer);function SP(e){let t=(e&31744)>>10,r=(e&1023)/1024,i=Math.pow(-1,(e&32768)>>15);switch(t){case 31:return i*(r?Number.NaN:1/0);case 0:return i*(r?6103515625e-14*r:0)}return i*Math.pow(2,t-15)*(1+r)}function Uw(e){if(e!==e)return 32256;D9[0]=e;let t=(ov[1]&2147483648)>>16&65535,r=ov[1]&2146435072,i=0;return r>=1089470464?ov[0]>0?r=31744:(r=(r&2080374784)>>16,i=(ov[1]&1048575)>>10):r<=1056964608?(i=1048576+(ov[1]&1048575),i=1048576+(i<<(r>>20)-998)>>21,r=0):(r=r-1056964608>>10,i=(ov[1]&1048575)+512>>10),t|r|i&65535}var kr=class extends Mr{};function Wr(e){return(t,r,i)=>{if(t.setValid(r,i!=null))return e(t,r,i)}}var mut=(e,t,r)=>{e[t]=Math.trunc(r/864e5)},QD=(e,t,r)=>{e[t]=Math.trunc(r%4294967296),e[t+1]=Math.trunc(r/4294967296)},gut=(e,t,r)=>{e[t]=Math.trunc(r*1e3%4294967296),e[t+1]=Math.trunc(r*1e3/4294967296)},_ut=(e,t,r)=>{e[t]=Math.trunc(r*1e6%4294967296),e[t+1]=Math.trunc(r*1e6/4294967296)},O9=(e,t,r,i)=>{if(r+1{let s=e+r;i?t[s>>3]|=1<>3]&=~(1<{e[t]=r},$D=({values:e},t,r)=>{e[t]=r},B9=({values:e},t,r)=>{e[t]=Uw(r)},vut=(e,t,r)=>{switch(e.type.precision){case qi.HALF:return B9(e,t,r);case qi.SINGLE:case qi.DOUBLE:return $D(e,t,r)}},TP=({values:e},t,r)=>{mut(e,t,r.valueOf())},MP=({values:e},t,r)=>{QD(e,t*2,r.valueOf())},XD=({stride:e,values:t},r,i)=>{t.set(i.subarray(0,e),e*r)},F9=({values:e,valueOffsets:t},r,i)=>O9(e,t,r,i),z9=({values:e,valueOffsets:t},r,i)=>O9(e,t,r,$f(i)),KD=(e,t,r)=>{e.type.unit===Xs.DAY?TP(e,t,r):MP(e,t,r)},EP=({values:e},t,r)=>QD(e,t*2,r/1e3),PP=({values:e},t,r)=>QD(e,t*2,r),IP=({values:e},t,r)=>gut(e,t*2,r),CP=({values:e},t,r)=>_ut(e,t*2,r),JD=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return EP(e,t,r);case pr.MILLISECOND:return PP(e,t,r);case pr.MICROSECOND:return IP(e,t,r);case pr.NANOSECOND:return CP(e,t,r)}},LP=({values:e},t,r)=>{e[t]=r},kP=({values:e},t,r)=>{e[t]=r},RP=({values:e},t,r)=>{e[t]=r},DP=({values:e},t,r)=>{e[t]=r},tO=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return LP(e,t,r);case pr.MILLISECOND:return kP(e,t,r);case pr.MICROSECOND:return RP(e,t,r);case pr.NANOSECOND:return DP(e,t,r)}},eO=({values:e,stride:t},r,i)=>{e.set(i.subarray(0,t),t*r)},xut=(e,t,r)=>{let i=e.children[0],s=e.valueOffsets,n=xa.getVisitFn(i);if(Array.isArray(r))for(let o=-1,c=s[t],f=s[t+1];c{let i=e.children[0],{valueOffsets:s}=e,n=xa.getVisitFn(i),{[t]:o,[t+1]:c}=s,f=r instanceof Map?r.entries():Object.entries(r);for(let _ of f)if(n(i,o,_),++o>=c)break},wut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t[n]),Sut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t.get(n)),Tut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t.get(s.name)),Mut=(e,t)=>(r,i,s,n)=>i&&r(i,e,t[s.name]),Eut=(e,t,r)=>{let i=e.type.children.map(n=>xa.getVisitFn(n.type)),s=r instanceof Map?Tut(t,r):r instanceof wr?Sut(t,r):Array.isArray(r)?wut(t,r):Mut(t,r);e.type.children.forEach((n,o)=>s(i[o],e.children[o],n,o))},Put=(e,t,r)=>{e.type.mode===Mn.Dense?N9(e,t,r):U9(e,t,r)},N9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],s=e.children[i];xa.visit(s,e.valueOffsets[t],r)},U9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],s=e.children[i];xa.visit(s,t,r)},Iut=(e,t,r)=>{var i;(i=e.dictionary)===null||i===void 0||i.set(e.values[t],r)},rO=(e,t,r)=>{e.type.unit===Io.DAY_TIME?OP(e,t,r):BP(e,t,r)},OP=({values:e},t,r)=>{e.set(r.subarray(0,2),2*t)},BP=({values:e},t,r)=>{e[t]=r[0]*12+r[1]%12},FP=({values:e},t,r)=>{e[t]=r},zP=({values:e},t,r)=>{e[t]=r},NP=({values:e},t,r)=>{e[t]=r},UP=({values:e},t,r)=>{e[t]=r},iO=(e,t,r)=>{switch(e.type.unit){case pr.SECOND:return FP(e,t,r);case pr.MILLISECOND:return zP(e,t,r);case pr.MICROSECOND:return NP(e,t,r);case pr.NANOSECOND:return UP(e,t,r)}},Cut=(e,t,r)=>{let{stride:i}=e,s=e.children[0],n=xa.getVisitFn(s);if(Array.isArray(r))for(let o=-1,c=t*i;++o`${Jh(t)}: ${Jh(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}[Symbol.iterator](){return new nO(this[rf],this[av])}},nO=class{constructor(t,r){this.childIndex=0,this.children=t.children,this.rowIndex=r,this.childFields=t.type.children,this.numChildren=this.childFields.length}[Symbol.iterator](){return this}next(){let t=this.childIndex;return tr.name)}has(t,r){return t[rf].type.children.findIndex(i=>i.name===r)!==-1}getOwnPropertyDescriptor(t,r){if(t[rf].type.children.findIndex(i=>i.name===r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[rf].type.children.findIndex(s=>s.name===r);if(i!==-1){let s=co.visit(t[rf].children[i],t[av]);return Reflect.set(t,r,s),s}}set(t,r,i){let s=t[rf].type.children.findIndex(n=>n.name===r);return s!==-1?(xa.visit(t[rf].children[s],t[av],i),Reflect.set(t,r,i)):Reflect.has(t,r)||typeof r==\"symbol\"?Reflect.set(t,r,i):!1}};var Er=class extends Mr{};function zr(e){return(t,r)=>t.getValid(r)?e(t,r):null}var Lut=(e,t)=>864e5*e[t],oO=(e,t)=>4294967296*e[t+1]+(e[t]>>>0),kut=(e,t)=>4294967296*(e[t+1]/1e3)+(e[t]>>>0)/1e3,Rut=(e,t)=>4294967296*(e[t+1]/1e6)+(e[t]>>>0)/1e6,V9=e=>new Date(e),Dut=(e,t)=>V9(Lut(e,t)),Out=(e,t)=>V9(oO(e,t)),But=(e,t)=>null,j9=(e,t,r)=>{if(r+1>=t.length)return null;let i=ms(t[r]),s=ms(t[r+1]);return e.subarray(i,s)},Fut=({offset:e,values:t},r)=>{let i=e+r;return(t[i>>3]&1<Dut(e,t),W9=({values:e},t)=>Out(e,t*2),cm=({stride:e,values:t},r)=>t[e*r],zut=({stride:e,values:t},r)=>SP(t[e*r]),H9=({values:e},t)=>e[t],Nut=({stride:e,values:t},r)=>t.subarray(e*r,e*(r+1)),q9=({values:e,valueOffsets:t},r)=>j9(e,t,r),Z9=({values:e,valueOffsets:t},r)=>{let i=j9(e,t,r);return i!==null?pw(i):null},Uut=({values:e},t)=>e[t],Vut=({type:e,values:t},r)=>e.precision!==qi.HALF?t[r]:SP(t[r]),jut=(e,t)=>e.type.unit===Xs.DAY?G9(e,t):W9(e,t),Y9=({values:e},t)=>1e3*oO(e,t*2),Q9=({values:e},t)=>oO(e,t*2),$9=({values:e},t)=>kut(e,t*2),X9=({values:e},t)=>Rut(e,t*2),Gut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return Y9(e,t);case pr.MILLISECOND:return Q9(e,t);case pr.MICROSECOND:return $9(e,t);case pr.NANOSECOND:return X9(e,t)}},K9=({values:e},t)=>e[t],J9=({values:e},t)=>e[t],tW=({values:e},t)=>e[t],eW=({values:e},t)=>e[t],Wut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return K9(e,t);case pr.MILLISECOND:return J9(e,t);case pr.MICROSECOND:return tW(e,t);case pr.NANOSECOND:return eW(e,t)}},Hut=({values:e,stride:t},r)=>Cw.decimal(e.subarray(t*r,t*(r+1))),qut=(e,t)=>{let{valueOffsets:r,stride:i,children:s}=e,{[t*i]:n,[t*i+1]:o}=r,f=s[0].slice(n,o-n);return new wr([f])},Zut=(e,t)=>{let{valueOffsets:r,children:i}=e,{[t]:s,[t+1]:n}=r,o=i[0];return new id(o.slice(s,n-s))},Yut=(e,t)=>new lm(e,t),Qut=(e,t)=>e.type.mode===Mn.Dense?rW(e,t):iW(e,t),rW=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return co.visit(i,e.valueOffsets[t])},iW=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return co.visit(i,t)},$ut=(e,t)=>{var r;return(r=e.dictionary)===null||r===void 0?void 0:r.get(e.values[t])},Xut=(e,t)=>e.type.unit===Io.DAY_TIME?nW(e,t):sW(e,t),nW=({values:e},t)=>e.subarray(2*t,2*(t+1)),sW=({values:e},t)=>{let r=e[t],i=new Int32Array(2);return i[0]=Math.trunc(r/12),i[1]=Math.trunc(r%12),i},oW=({values:e},t)=>e[t],aW=({values:e},t)=>e[t],lW=({values:e},t)=>e[t],cW=({values:e},t)=>e[t],Kut=(e,t)=>{switch(e.type.unit){case pr.SECOND:return oW(e,t);case pr.MILLISECOND:return aW(e,t);case pr.MICROSECOND:return lW(e,t);case pr.NANOSECOND:return cW(e,t)}},Jut=(e,t)=>{let{stride:r,children:i}=e,n=i[0].slice(t*r,r);return new wr([n])};Er.prototype.visitNull=zr(But);Er.prototype.visitBool=zr(Fut);Er.prototype.visitInt=zr(Uut);Er.prototype.visitInt8=zr(cm);Er.prototype.visitInt16=zr(cm);Er.prototype.visitInt32=zr(cm);Er.prototype.visitInt64=zr(H9);Er.prototype.visitUint8=zr(cm);Er.prototype.visitUint16=zr(cm);Er.prototype.visitUint32=zr(cm);Er.prototype.visitUint64=zr(H9);Er.prototype.visitFloat=zr(Vut);Er.prototype.visitFloat16=zr(zut);Er.prototype.visitFloat32=zr(cm);Er.prototype.visitFloat64=zr(cm);Er.prototype.visitUtf8=zr(Z9);Er.prototype.visitLargeUtf8=zr(Z9);Er.prototype.visitBinary=zr(q9);Er.prototype.visitLargeBinary=zr(q9);Er.prototype.visitFixedSizeBinary=zr(Nut);Er.prototype.visitDate=zr(jut);Er.prototype.visitDateDay=zr(G9);Er.prototype.visitDateMillisecond=zr(W9);Er.prototype.visitTimestamp=zr(Gut);Er.prototype.visitTimestampSecond=zr(Y9);Er.prototype.visitTimestampMillisecond=zr(Q9);Er.prototype.visitTimestampMicrosecond=zr($9);Er.prototype.visitTimestampNanosecond=zr(X9);Er.prototype.visitTime=zr(Wut);Er.prototype.visitTimeSecond=zr(K9);Er.prototype.visitTimeMillisecond=zr(J9);Er.prototype.visitTimeMicrosecond=zr(tW);Er.prototype.visitTimeNanosecond=zr(eW);Er.prototype.visitDecimal=zr(Hut);Er.prototype.visitList=zr(qut);Er.prototype.visitStruct=zr(Yut);Er.prototype.visitUnion=zr(Qut);Er.prototype.visitDenseUnion=zr(rW);Er.prototype.visitSparseUnion=zr(iW);Er.prototype.visitDictionary=zr($ut);Er.prototype.visitInterval=zr(Xut);Er.prototype.visitIntervalDayTime=zr(nW);Er.prototype.visitIntervalYearMonth=zr(sW);Er.prototype.visitDuration=zr(Kut);Er.prototype.visitDurationSecond=zr(oW);Er.prototype.visitDurationMillisecond=zr(aW);Er.prototype.visitDurationMicrosecond=zr(lW);Er.prototype.visitDurationNanosecond=zr(cW);Er.prototype.visitFixedSizeList=zr(Jut);Er.prototype.visitMap=zr(Zut);var co=new Er;var Yu=Symbol.for(\"keys\"),lv=Symbol.for(\"vals\"),id=class{constructor(t){return this[Yu]=new wr([t.children[0]]).memoize(),this[lv]=t.children[1],new Proxy(this,new lO)}[Symbol.iterator](){return new aO(this[Yu],this[lv])}get size(){return this[Yu].length}toArray(){return Object.values(this.toJSON())}toJSON(){let t=this[Yu],r=this[lv],i={};for(let s=-1,n=t.length;++s`${Jh(t)}: ${Jh(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}},aO=class{constructor(t,r){this.keys=t,this.vals=r,this.keyIndex=0,this.numKeys=t.length}[Symbol.iterator](){return this}next(){let t=this.keyIndex;return t===this.numKeys?{done:!0,value:null}:(this.keyIndex++,{done:!1,value:[this.keys.get(t),co.visit(this.vals,t)]})}},lO=class{isExtensible(){return!1}deleteProperty(){return!1}preventExtensions(){return!0}ownKeys(t){return t[Yu].toArray().map(String)}has(t,r){return t[Yu].includes(r)}getOwnPropertyDescriptor(t,r){if(t[Yu].indexOf(r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[Yu].indexOf(r);if(i!==-1){let s=co.visit(Reflect.get(t,lv),i);return Reflect.set(t,r,s),s}}set(t,r,i){let s=t[Yu].indexOf(r);return s!==-1?(xa.visit(Reflect.get(t,lv),s,i),Reflect.set(t,r,i)):Reflect.has(t,r)?Reflect.set(t,r,i):!1}};Object.defineProperties(id.prototype,{[Symbol.toStringTag]:{enumerable:!1,configurable:!1,value:\"Row\"},[Yu]:{writable:!0,enumerable:!1,configurable:!1,value:null},[lv]:{writable:!0,enumerable:!1,configurable:!1,value:null}});function tht(e,t,r){let i=e.length,s=t>-1?t:i+t%i;return r?r(e,s):s}var uW;function Vw(e,t,r,i){let{length:s=0}=e,n=typeof t!=\"number\"?0:t,o=typeof r!=\"number\"?s:r;return n<0&&(n=(n%s+s)%s),o<0&&(o=(o%s+s)%s),os&&(o=s),i?i(e,n,o):[n,o]}var hW=e=>e!==e;function um(e){if(typeof e!==\"object\"||e===null)return hW(e)?hW:r=>r===e;if(e instanceof Date){let r=e.valueOf();return i=>i instanceof Date?i.valueOf()===r:!1}return ArrayBuffer.isView(e)?r=>r?VD(e,r):!1:e instanceof Map?rht(e):Array.isArray(e)?eht(e):e instanceof wr?iht(e):nht(e,!0)}function eht(e){let t=[];for(let r=-1,i=e.length;++r!1;let i=[];for(let s=-1,n=r.length;++s{if(!r||typeof r!=\"object\")return!1;switch(r.constructor){case Array:return sht(e,r);case Map:return fW(e,r,r.keys());case id:case lm:case Object:case void 0:return fW(e,r,t||Object.keys(r))}return r instanceof wr?oht(e,r):!1}}function sht(e,t){let r=e.length;if(t.length!==r)return!1;for(let i=-1;++ipg,getBit:()=>dW,getBool:()=>GP,packBools:()=>mg,popcnt_array:()=>pW,popcnt_bit_range:()=>jw,popcnt_uint32:()=>jP,setBool:()=>aht,truncateBitmap:()=>Ag});function GP(e,t,r,i){return(r&1<>i}function aht(e,t,r){return r?!!(e[t>>3]|=1<>3]&=~(1<0||r.byteLength>3):mg(new pg(r,e,t,null,GP)).subarray(0,i)),s}return r}function mg(e){let t=[],r=0,i=0,s=0;for(let o of e)o&&(s|=1<0)&&(t[r++]=s);let n=new Uint8Array(t.length+7&-8);return n.set(t),n}var pg=class{constructor(t,r,i,s,n){this.bytes=t,this.length=i,this.context=s,this.get=n,this.bit=r%8,this.byteIndex=r>>3,this.byte=t[this.byteIndex++],this.index=0}next(){return this.index>3<<3,s=t+(t%8===0?0:8-t%8);return jw(e,t,s)+jw(e,i,r)+pW(e,s>>3,i-s>>3)}function pW(e,t,r){let i=0,s=Math.trunc(t),n=new DataView(e.buffer,e.byteOffset,e.byteLength),o=r===void 0?e.byteLength:s+r;for(;o-s>=4;)i+=jP(n.getUint32(s)),s+=4;for(;o-s>=2;)i+=jP(n.getUint16(s)),s+=2;for(;o-s>=1;)i+=jP(n.getUint8(s)),s+=1;return i}function jP(e){let t=Math.trunc(e);return t=t-(t>>>1&1431655765),t=(t&858993459)+(t>>>2&858993459),(t+(t>>>4)&252645135)*16843009>>>24}var lht=-1,Di=class e{get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get nullable(){if(this._nullCount!==0){let{type:t}=this;return Ne.isSparseUnion(t)?this.children.some(r=>r.nullable):Ne.isDenseUnion(t)?this.children.some(r=>r.nullable):this.nullBitmap&&this.nullBitmap.byteLength>0}return!0}get byteLength(){let t=0,{valueOffsets:r,values:i,nullBitmap:s,typeIds:n}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),s&&(t+=s.byteLength),n&&(t+=n.byteLength),this.children.reduce((o,c)=>o+c.byteLength,t)}get nullCount(){if(Ne.isUnion(this.type))return this.children.reduce((i,s)=>i+s.nullCount,0);let t=this._nullCount,r;return t<=lht&&(r=this.nullBitmap)&&(this._nullCount=t=this.length-jw(r,this.offset,this.offset+this.length)),t}constructor(t,r,i,s,n,o=[],c){this.type=t,this.children=o,this.dictionary=c,this.offset=Math.floor(Math.max(r||0,0)),this.length=Math.floor(Math.max(i||0,0)),this._nullCount=Math.floor(Math.max(s||0,-1));let f;n instanceof e?(this.stride=n.stride,this.values=n.values,this.typeIds=n.typeIds,this.nullBitmap=n.nullBitmap,this.valueOffsets=n.valueOffsets):(this.stride=iu(t),n&&((f=n[0])&&(this.valueOffsets=f),(f=n[1])&&(this.values=f),(f=n[2])&&(this.nullBitmap=f),(f=n[3])&&(this.typeIds=f)))}getValid(t){let{type:r}=this;if(Ne.isUnion(r)){let i=r,s=this.children[i.typeIdToChildIndex[this.typeIds[t]]],n=i.mode===Mn.Dense?this.valueOffsets[t]:t;return s.getValid(n)}if(this.nullable&&this.nullCount>0){let i=this.offset+t;return(this.nullBitmap[i>>3]&1<>3;(!n||n.byteLength<=w)&&(n=new Uint8Array((o+c+63&-64)>>3).fill(255),this.nullCount>0&&n.set(Ag(o,c,this.nullBitmap),0),Object.assign(this,{nullBitmap:n,_nullCount:-1}));let C=n[w];i=(C&_)!==0,r?n[w]=C|_:n[w]=C&~_}return i!==!!r&&(this._nullCount=this.nullCount+(r?-1:1)),r}clone(t=this.type,r=this.offset,i=this.length,s=this._nullCount,n=this,o=this.children){return new e(t,r,i,s,n,o,this.dictionary)}slice(t,r){let{stride:i,typeId:s,children:n}=this,o=+(this._nullCount===0)-1,c=s===16?i:1,f=this._sliceBuffers(t,r,i,s);return this.clone(this.type,this.offset+t,r,o,f,n.length===0||this.valueOffsets?n:this._sliceChildren(n,c*t,c*r))}_changeLengthAndBackfillNullBitmap(t){if(this.typeId===Rt.Null)return this.clone(this.type,0,t,0);let{length:r,nullCount:i}=this,s=new Uint8Array((t+63&-64)>>3).fill(255,0,r>>3);s[r>>3]=(1<0&&s.set(Ag(this.offset,r,this.nullBitmap),0);let n=this.buffers;return n[Ci.VALIDITY]=s,this.clone(this.type,0,t,i+(t-r),n)}_sliceBuffers(t,r,i,s){let n,{buffers:o}=this;return(n=o[Ci.TYPE])&&(o[Ci.TYPE]=n.subarray(t,t+r)),(n=o[Ci.OFFSET])&&(o[Ci.OFFSET]=n.subarray(t,t+r+1))||(n=o[Ci.DATA])&&(o[Ci.DATA]=s===6?n:n.subarray(i*t,i*(t+r))),o}_sliceChildren(t,r,i){return t.map(s=>s.slice(r,i))}};Di.prototype.children=Object.freeze([]);var hO=class e extends Mr{visit(t){return this.getVisitFn(t.type).call(this,t)}visitNull(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"length\"]:s=0}=t;return new Di(r,i,s,s)}visitBool(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length>>3,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitInt(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitFloat(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitLargeUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=gP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitLargeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.data),n=Rr(t.nullBitmap),o=gP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,s,n])}visitFixedSizeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDate(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitTimestamp(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitTime(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDecimal(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s}=t,n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,void 0,n],[s])}visitStruct(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:s=[]}=t,n=Rr(t.nullBitmap),{length:o=s.reduce((f,{length:_})=>Math.max(f,_),0),nullCount:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,void 0,n],s)}visitUnion(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:s=[]}=t,n=Ai(r.ArrayType,t.typeIds),{[\"length\"]:o=n.length,[\"nullCount\"]:c=-1}=t;if(Ne.isSparseUnion(r))return new Di(r,i,o,c,[void 0,void 0,void 0,n],s);let f=fg(t.valueOffsets);return new Di(r,i,o,c,[f,void 0,void 0,n],s)}visitDictionary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.indices.ArrayType,t.data),{[\"dictionary\"]:o=new wr([new e().visit({type:r.dictionary})])}=t,{[\"length\"]:c=n.length,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[void 0,n,s],[],o)}visitInterval(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitDuration(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,s=Rr(t.nullBitmap),n=Ai(r.ArrayType,t.data),{[\"length\"]:o=n.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,n,s])}visitFixedSizeList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s=new e().visit({type:r.valueType})}=t,n=Rr(t.nullBitmap),{[\"length\"]:o=s.length/iu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new Di(r,i,o,c,[void 0,void 0,n],[s])}visitMap(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:s=new e().visit({type:r.childType})}=t,n=Rr(t.nullBitmap),o=fg(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:f=t.nullBitmap?-1:0}=t;return new Di(r,i,c,f,[o,void 0,n],[s])}},cht=new hO;function yr(e){return cht.visit(e)}var Gw=class{constructor(t=0,r){this.numChunks=t,this.getChunkIterator=r,this.chunkIndex=0,this.chunkIterator=this.getChunkIterator(0)}next(){for(;this.chunkIndext.nullable)}function WP(e){return e.reduce((t,r)=>t+r.nullCount,0)}function HP(e){return e.reduce((t,r,i)=>(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function qP(e,t,r,i){let s=[];for(let n=-1,o=e.length;++n=i)break;if(r>=f+_)continue;if(f>=r&&f+_<=i){s.push(c);continue}let w=Math.max(0,r-f),C=Math.min(i-f,_);s.push(c.slice(w,C-w))}return s.length===0&&s.push(e[0].slice(0,0)),s}function fO(e,t,r,i){let s=0,n=0,o=t.length-1;do{if(s>=o-1)return r0?0:-1}function hht(e,t){let{nullBitmap:r}=e;if(!r||e.nullCount<=0)return-1;let i=0;for(let s of new pg(r,e.offset+(t||0),e.length,r,GP)){if(!s)return i;++i}return-1}function Qr(e,t,r){if(t===void 0)return-1;if(t===null)switch(e.typeId){case Rt.Union:break;case Rt.Dictionary:break;default:return hht(e,r)}let i=co.getVisitFn(e),s=um(t);for(let n=(r||0)-1,o=e.length;++n{let s=e.data[i];return s.values.subarray(0,s.length)[Symbol.iterator]()});let r=0;return new Gw(e.data.length,i=>{let n=e.data[i].length,o=e.slice(r,r+n);return r+=n,new dO(o)})}var dO=class{constructor(t){this.vector=t,this.index=0}next(){return this.indexc.data):t;if(n.length===0||n.some(c=>!(c instanceof Di)))throw new TypeError(\"Vector constructor expects an Array of Data instances.\");let o=(r=n[0])===null||r===void 0?void 0:r.type;switch(n.length){case 0:this._offsets=[0];break;case 1:{let{get:c,set:f,indexOf:_}=_W[o.typeId],w=n[0];this.isValid=C=>Ww(w,C),this.get=C=>c(w,C),this.set=(C,R)=>f(w,C,R),this.indexOf=C=>_(w,C),this._offsets=[0,w.length];break}default:Object.setPrototypeOf(this,yW[o.typeId]),this._offsets=HP(n);break}this.data=n,this.type=o,this.stride=iu(o),this.numChildren=(s=(i=o.children)===null||i===void 0?void 0:i.length)!==null&&s!==void 0?s:0,this.length=this._offsets.at(-1)}get byteLength(){return this.data.reduce((t,r)=>t+r.byteLength,0)}get nullable(){return AW(this.data)}get nullCount(){return WP(this.data)}get ArrayType(){return this.type.ArrayType}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}get VectorName(){return`${Rt[this.type.typeId]}Vector`}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}includes(t,r){return this.indexOf(t,r)>-1}[Symbol.iterator](){return uv.visit(this)}concat(...t){return new e(this.data.concat(t.flatMap(r=>r.data).flat(Number.POSITIVE_INFINITY)))}slice(t,r){return new e(Vw(this,t,r,({data:i,_offsets:s},n,o)=>qP(i,s,n,o)))}toJSON(){return[...this]}toArray(){let{type:t,data:r,length:i,stride:s,ArrayType:n}=this;switch(t.typeId){case Rt.Int:case Rt.Float:case Rt.Decimal:case Rt.Time:case Rt.Timestamp:switch(r.length){case 0:return new n;case 1:return r[0].values.subarray(0,i*s);default:return r.reduce((o,{values:c,length:f})=>(o.array.set(c.subarray(0,f*s),o.offset),o.offset+=f*s,o),{array:new n(i*s),offset:0}).array}}return[...this]}toString(){return`[${[...this].join(\",\")}]`}getChild(t){var r;return this.getChildAt((r=this.type.children)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&tr[t])):null}get isMemoized(){return Ne.isDictionary(this.type)?this.data[0].dictionary.isMemoized:!1}memoize(){if(Ne.isDictionary(this.type)){let t=new QP(this.data[0].dictionary),r=this.data.map(i=>{let s=i.clone();return s.dictionary=t,s});return new e(r)}return new QP(this)}unmemoize(){if(Ne.isDictionary(this.type)&&this.isMemoized){let t=this.data[0].dictionary.unmemoize(),r=this.data.map(i=>{let s=i.clone();return s.dictionary=t,s});return new e(r)}return this}};gW=Symbol.toStringTag;wr[gW]=(e=>{e.type=Ne.prototype,e.data=[],e.length=0,e.stride=1,e.numChildren=0,e._offsets=new Uint32Array([0]),e[Symbol.isConcatSpreadable]=!0;let t=Object.keys(Rt).map(r=>Rt[r]).filter(r=>typeof r==\"number\"&&r!==Rt.NONE);for(let r of t){let i=co.getVisitFnByTypeId(r),s=xa.getVisitFnByTypeId(r),n=gg.getVisitFnByTypeId(r);_W[r]={get:i,set:s,indexOf:n},yW[r]=Object.create(e,{isValid:{value:cv(Ww)},get:{value:cv(co.getVisitFnByTypeId(r))},set:{value:ZP(xa.getVisitFnByTypeId(r))},indexOf:{value:YP(gg.getVisitFnByTypeId(r))}})}return\"Vector\"})(wr.prototype);var QP=class e extends wr{constructor(t){super(t.data);let r=this.get,i=this.set,s=this.slice,n=new Array(this.length);Object.defineProperty(this,\"get\",{value(o){let c=n[o];if(c!==void 0)return c;let f=r.call(this,o);return n[o]=f,f}}),Object.defineProperty(this,\"set\",{value(o,c){i.call(this,o,c),n[o]=c}}),Object.defineProperty(this,\"slice\",{value:(o,c)=>new e(s.call(this,o,c))}),Object.defineProperty(this,\"isMemoized\",{value:!0}),Object.defineProperty(this,\"unmemoize\",{value:()=>new wr(this.data)}),Object.defineProperty(this,\"memoize\",{value:()=>this})}};function vW(e){if(!e||e.length<=0)return function(s){return!0};let t=\"\",r=e.filter(i=>i===i);return r.length>0&&(t=`\n switch (x) {${r.map(i=>`\n case ${fht(i)}:`).join(\"\")}\n return false;\n }`),e.length!==r.length&&(t=`if (x !== x) return false;\n${t}`),new Function(\"x\",`${t}\nreturn true;`)}function fht(e){return typeof e!=\"bigint\"?Jh(e):`${Jh(e)}n`}function pO(e,t){let r=Math.ceil(e)*t-1;return(r-r%64+64||64)/t}function xW(e,t=0){return e.length>=t?e.subarray(0,t):mw(new e.constructor(t),e,0)}var nf=class{constructor(t,r=0,i=1){this.length=Math.ceil(r/i),this.buffer=new t(this.length),this.stride=i,this.BYTES_PER_ELEMENT=t.BYTES_PER_ELEMENT,this.ArrayType=t}get byteLength(){return Math.ceil(this.length*this.stride)*this.BYTES_PER_ELEMENT}get reservedLength(){return this.buffer.length/this.stride}get reservedByteLength(){return this.buffer.byteLength}set(t,r){return this}append(t){return this.set(this.length,t)}reserve(t){if(t>0){this.length+=t;let r=this.stride,i=this.length*r,s=this.buffer.length;i>=s&&this._resize(s===0?pO(i*1,this.BYTES_PER_ELEMENT):pO(i*2,this.BYTES_PER_ELEMENT))}return this}flush(t=this.length){t=pO(t*this.stride,this.BYTES_PER_ELEMENT);let r=xW(this.buffer,t);return this.clear(),r}clear(){return this.length=0,this.buffer=new this.ArrayType,this}_resize(t){return this.buffer=xW(this.buffer,t)}},pp=class extends nf{last(){return this.get(this.length-1)}get(t){return this.buffer[t]}set(t,r){return this.reserve(t-this.length+1),this.buffer[t*this.stride]=r,this}},hv=class extends pp{constructor(){super(Uint8Array,0,1/8),this.numValid=0}get numInvalid(){return this.length-this.numValid}get(t){return this.buffer[t>>3]>>t%8&1}set(t,r){let{buffer:i}=this.reserve(t-this.length+1),s=t>>3,n=t%8,o=i[s]>>n&1;return r?o===0&&(i[s]|=1<=0&&s.fill(s[i],i,t),s[t]=s[t-1]+r,this}flush(t=this.length-1){return t>this.length&&this.set(t-1,this.BYTES_PER_ELEMENT>4?BigInt(0):0),super.flush(t+1)}};var Qn=class{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t){throw new Error('\"throughDOM\" not available in this environment')}constructor({type:t,nullValues:r}){this.length=0,this.finished=!1,this.type=t,this.children=[],this.nullValues=r,this.stride=iu(t),this._nulls=new hv,r&&r.length>0&&(this._isValid=vW(r))}toVector(){return new wr([this.flush()])}get ArrayType(){return this.type.ArrayType}get nullCount(){return this._nulls.numInvalid}get numChildren(){return this.children.length}get byteLength(){let t=0,{_offsets:r,_values:i,_nulls:s,_typeIds:n,children:o}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),s&&(t+=s.byteLength),n&&(t+=n.byteLength),o.reduce((c,f)=>c+f.byteLength,t)}get reservedLength(){return this._nulls.reservedLength}get reservedByteLength(){let t=0;return this._offsets&&(t+=this._offsets.reservedByteLength),this._values&&(t+=this._values.reservedByteLength),this._nulls&&(t+=this._nulls.reservedByteLength),this._typeIds&&(t+=this._typeIds.reservedByteLength),this.children.reduce((r,i)=>r+i.reservedByteLength,t)}get valueOffsets(){return this._offsets?this._offsets.buffer:null}get values(){return this._values?this._values.buffer:null}get nullBitmap(){return this._nulls?this._nulls.buffer:null}get typeIds(){return this._typeIds?this._typeIds.buffer:null}append(t){return this.set(this.length,t)}isValid(t){return this._isValid(t)}set(t,r){return this.setValid(t,this.isValid(r))&&this.setValue(t,r),this}setValue(t,r){this._setValue(this,t,r)}setValid(t,r){return this.length=this._nulls.set(t,+r).length,r}addChild(t,r=`${this.numChildren}`){throw new Error(`Cannot append children to non-nested type \"${this.type}\"`)}getChildAt(t){return this.children[t]||null}flush(){let t,r,i,s,{type:n,length:o,nullCount:c,_typeIds:f,_offsets:_,_values:w,_nulls:C}=this;(r=f?.flush(o))?s=_?.flush(o):(s=_?.flush(o))?t=w?.flush(_.last()):t=w?.flush(o),c>0&&(i=C?.flush(o));let R=this.children.map(N=>N.flush());return this.clear(),yr({type:n,length:o,nullCount:c,children:R,child:R[0],data:t,typeIds:r,nullBitmap:i,valueOffsets:s})}finish(){this.finished=!0;for(let t of this.children)t.finish();return this}clear(){var t,r,i,s;this.length=0,(t=this._nulls)===null||t===void 0||t.clear(),(r=this._values)===null||r===void 0||r.clear(),(i=this._offsets)===null||i===void 0||i.clear(),(s=this._typeIds)===null||s===void 0||s.clear();for(let n of this.children)n.clear();return this}};Qn.prototype.length=1;Qn.prototype.stride=1;Qn.prototype.children=null;Qn.prototype.finished=!1;Qn.prototype.nullValues=null;Qn.prototype._isValid=()=>!0;var uo=class extends Qn{constructor(t){super(t),this._values=new pp(this.ArrayType,0,this.stride)}setValue(t,r){let i=this._values;return i.reserve(t-i.length+1),super.setValue(t,r)}},fc=class extends Qn{constructor(t){super(t),this._pendingLength=0,this._offsets=new fv(t.type)}setValue(t,r){let i=this._pending||(this._pending=new Map),s=i.get(t);s&&(this._pendingLength-=s.length),this._pendingLength+=r instanceof id?r[Yu].length:r.length,i.set(t,r)}setValid(t,r){return super.setValid(t,r)?!0:((this._pending||(this._pending=new Map)).set(t,void 0),!1)}clear(){return this._pendingLength=0,this._pending=void 0,super.clear()}flush(){return this._flush(),super.flush()}finish(){return this._flush(),super.finish()}_flush(){let t=this._pending,r=this._pendingLength;return this._pendingLength=0,this._pending=void 0,t&&t.size>0&&this._flushPending(t,r),this}};var _g=class{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}offset(){return this.bb.readInt64(this.bb_pos)}metaDataLength(){return this.bb.readInt32(this.bb_pos+8)}bodyLength(){return this.bb.readInt64(this.bb_pos+16)}static sizeOf(){return 24}static createBlock(t,r,i,s){return t.prep(8,24),t.writeInt64(BigInt(s??0)),t.pad(4),t.writeInt32(i),t.writeInt64(BigInt(r??0)),t.offset()}};var nu=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsFooter(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsFooter(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):en.V1}schema(t){let r=this.bb.__offset(this.bb_pos,6);return r?(t||new sc).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}dictionaries(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new _g).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}dictionariesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}recordBatches(t,r){let i=this.bb.__offset(this.bb_pos,10);return i?(r||new _g).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}recordBatchesLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startFooter(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,en.V1)}static addSchema(t,r){t.addFieldOffset(1,r,0)}static addDictionaries(t,r){t.addFieldOffset(2,r,0)}static startDictionariesVector(t,r){t.startVector(24,r,8)}static addRecordBatches(t,r){t.addFieldOffset(3,r,0)}static startRecordBatchesVector(t,r){t.startVector(24,r,8)}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endFooter(t){return t.endObject()}static finishFooterBuffer(t,r){t.finish(r)}static finishSizePrefixedFooterBuffer(t,r){t.finish(r,void 0,!0)}};var nn=class e{constructor(t=[],r,i,s=en.V5){this.fields=t||[],this.metadata=r||new Map,i||(i=AO(t)),this.dictionaries=i,this.metadataVersion=s}get[Symbol.toStringTag](){return\"Schema\"}get names(){return this.fields.map(t=>t.name)}toString(){return`Schema<{ ${this.fields.map((t,r)=>`${r}: ${t}`).join(\", \")} }>`}select(t){let r=new Set(t),i=this.fields.filter(s=>r.has(s.name));return new e(i,this.metadata)}selectAt(t){let r=t.map(i=>this.fields[i]).filter(Boolean);return new e(r,this.metadata)}assign(...t){let r=t[0]instanceof e?t[0]:Array.isArray(t[0])?new e(t[0]):new e(t),i=[...this.fields],s=$P($P(new Map,this.metadata),r.metadata),n=r.fields.filter(c=>{let f=i.findIndex(_=>_.name===c.name);return~f?(i[f]=c.clone({metadata:$P($P(new Map,i[f].metadata),c.metadata)}))&&!1:!0}),o=AO(n,new Map);return new e([...i,...n],s,new Map([...this.dictionaries,...o]))}};nn.prototype.fields=null;nn.prototype.metadata=null;nn.prototype.dictionaries=null;var si=class e{static new(...t){let[r,i,s,n]=t;return t[0]&&typeof t[0]==\"object\"&&({name:r}=t[0],i===void 0&&(i=t[0].type),s===void 0&&(s=t[0].nullable),n===void 0&&(n=t[0].metadata)),new e(`${r}`,i,s,n)}constructor(t,r,i=!1,s){this.name=t,this.type=r,this.nullable=i,this.metadata=s||new Map}get typeId(){return this.type.typeId}get[Symbol.toStringTag](){return\"Field\"}toString(){return`${this.name}: ${this.type}`}clone(...t){let[r,i,s,n]=t;return!t[0]||typeof t[0]!=\"object\"?[r=this.name,i=this.type,s=this.nullable,n=this.metadata]=t:{name:r=this.name,type:i=this.type,nullable:s=this.nullable,metadata:n=this.metadata}=t[0],e.new(r,i,s,n)}};si.prototype.type=null;si.prototype.name=null;si.prototype.nullable=null;si.prototype.metadata=null;function $P(e,t){return new Map([...e||new Map,...t||new Map])}function AO(e,t=new Map){for(let r=-1,i=e.length;++r0&&AO(n.children,t)}return t}var dht=dg,pht=eu,Ap=class{static decode(t){t=new pht(Rr(t));let r=nu.getRootAsFooter(t),i=nn.decode(r.schema(),new Map,r.version());return new mO(i,r)}static encode(t){let r=new dht,i=nn.encode(r,t.schema);nu.startRecordBatchesVector(r,t.numRecordBatches);for(let o of[...t.recordBatches()].slice().reverse())mp.encode(r,o);let s=r.endVector();nu.startDictionariesVector(r,t.numDictionaries);for(let o of[...t.dictionaryBatches()].slice().reverse())mp.encode(r,o);let n=r.endVector();return nu.startFooter(r),nu.addSchema(r,i),nu.addVersion(r,en.V5),nu.addRecordBatches(r,s),nu.addDictionaries(r,n),nu.finishFooterBuffer(r,nu.endFooter(r)),r.asUint8Array()}get numRecordBatches(){return this._recordBatches.length}get numDictionaries(){return this._dictionaryBatches.length}constructor(t,r=en.V5,i,s){this.schema=t,this.version=r,i&&(this._recordBatches=i),s&&(this._dictionaryBatches=s)}*recordBatches(){for(let t,r=-1,i=this.numRecordBatches;++r=0&&t=0&&t=0&&t=0&&tthis._closedPromiseResolve=t)}get closed(){return this._closedPromise}cancel(t){return sr(this,void 0,void 0,function*(){yield this.return(t)})}write(t){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(t):this.resolvers.shift().resolve({done:!1,value:t}))}abort(t){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:t}:this.resolvers.shift().reject({done:!0,value:t}))}close(){if(this._closedPromiseResolve){let{resolvers:t}=this;for(;t.length>0;)t.shift().resolve(Nn);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}[Symbol.asyncIterator](){return this}toDOMStream(t){return va.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,t)}toNodeStream(t){return va.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,t)}throw(t){return sr(this,void 0,void 0,function*(){return yield this.abort(t),Nn})}return(t){return sr(this,void 0,void 0,function*(){return yield this.close(),Nn})}read(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(...t){return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((r,i)=>{this.resolvers.push({resolve:r,reject:i})}):Promise.resolve(Nn)}_ensureOpen(){if(this._closedPromiseResolve)return!0;throw new Error(\"AsyncQueue is closed\")}};var nd=class extends XP{write(t){if((t=Rr(t)).byteLength>0)return super.write(t)}toString(t=!1){return t?pw(this.toUint8Array(!0)):this.toUint8Array(!1).then(pw)}toUint8Array(t=!1){return t?tu(this._values)[0]:sr(this,void 0,void 0,function*(){var r,i,s,n;let o=[],c=0;try{for(var f=!0,_=Zh(this),w;w=yield _.next(),r=w.done,!r;f=!0){n=w.value,f=!1;let C=n;o.push(C),c+=C.byteLength}}catch(C){i={error:C}}finally{try{!f&&!r&&(s=_.return)&&(yield s.call(_))}finally{if(i)throw i.error}}return tu(o,c)[0]})}},sd=class{constructor(t){t&&(this.source=new gO(va.fromIterable(t)))}[Symbol.iterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},Qu=class e{constructor(t){t instanceof e?this.source=t.source:t instanceof nd?this.source=new gp(va.fromAsyncIterable(t)):mP(t)?this.source=new gp(va.fromNodeStream(t)):Aw(t)?this.source=new gp(va.fromDOMStream(t)):pP(t)?this.source=new gp(va.fromDOMStream(t.body)):Yh(t)?this.source=new gp(va.fromIterable(t)):Jc(t)?this.source=new gp(va.fromAsyncIterable(t)):zu(t)&&(this.source=new gp(va.fromAsyncIterable(t)))}[Symbol.asyncIterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}get closed(){return this.source.closed}cancel(t){return this.source.cancel(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},gO=class{constructor(t){this.source=t}cancel(t){this.return(t)}peek(t){return this.next(t,\"peek\").value}read(t){return this.next(t,\"read\").value}next(t,r=\"read\"){return this.source.next({cmd:r,size:t})}throw(t){return Object.create(this.source.throw&&this.source.throw(t)||Nn)}return(t){return Object.create(this.source.return&&this.source.return(t)||Nn)}},gp=class{constructor(t){this.source=t,this._closedPromise=new Promise(r=>this._closedPromiseResolve=r)}cancel(t){return sr(this,void 0,void 0,function*(){yield this.return(t)})}get closed(){return this._closedPromise}read(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return sr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(t,r=\"read\"){return sr(this,void 0,void 0,function*(){return yield this.source.next({cmd:r,size:t})})}throw(t){return sr(this,void 0,void 0,function*(){let r=this.source.throw&&(yield this.source.throw(t))||Nn;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}return(t){return sr(this,void 0,void 0,function*(){let r=this.source.return&&(yield this.source.return(t))||Nn;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}};var qw=class extends sd{constructor(t,r){super(),this.position=0,this.buffer=Rr(t),this.size=r===void 0?this.buffer.byteLength:r}readInt32(t){let{buffer:r,byteOffset:i}=this.readAt(t,4);return new DataView(r,i).getInt32(0,!0)}seek(t){return this.position=Math.min(t,this.size),tZw,Int128:()=>Yw,Int64:()=>_p,Uint64:()=>gs});function dv(e){return e<0&&(e=4294967295+e+1),`0x${e.toString(16)}`}var pv=8,_O=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8],Zw=class{constructor(t){this.buffer=t}high(){return this.buffer[1]}low(){return this.buffer[0]}_times(t){let r=new Uint32Array([this.buffer[1]>>>16,this.buffer[1]&65535,this.buffer[0]>>>16,this.buffer[0]&65535]),i=new Uint32Array([t.buffer[1]>>>16,t.buffer[1]&65535,t.buffer[0]>>>16,t.buffer[0]&65535]),s=r[3]*i[3];this.buffer[0]=s&65535;let n=s>>>16;return s=r[2]*i[3],n+=s,s=r[3]*i[2]>>>0,n+=s,this.buffer[0]+=n<<16,this.buffer[1]=n>>>0>>16,this.buffer[1]+=r[1]*i[3]+r[2]*i[2]+r[3]*i[1],this.buffer[1]+=r[0]*i[3]+r[1]*i[2]+r[2]*i[1]+r[3]*i[0]<<16,this}_plus(t){let r=this.buffer[0]+t.buffer[0]>>>0;this.buffer[1]+=t.buffer[1],r>>0&&++this.buffer[1],this.buffer[0]=r}lessThan(t){return this.buffer[1]>>0,r[2]=this.buffer[2]+t.buffer[2]>>>0,r[1]=this.buffer[1]+t.buffer[1]>>>0,r[0]=this.buffer[0]+t.buffer[0]>>>0,r[0]>>0&&++r[1],r[1]>>0&&++r[2],r[2]>>0&&++r[3],this.buffer[3]=r[3],this.buffer[2]=r[2],this.buffer[1]=r[1],this.buffer[0]=r[0],this}hex(){return`${dv(this.buffer[3])} ${dv(this.buffer[2])} ${dv(this.buffer[1])} ${dv(this.buffer[0])}`}static multiply(t,r){return new e(new Uint32Array(t.buffer)).times(r)}static add(t,r){return new e(new Uint32Array(t.buffer)).plus(r)}static from(t,r=new Uint32Array(4)){return e.fromString(typeof t==\"string\"?t:t.toString(),r)}static fromNumber(t,r=new Uint32Array(4)){return e.fromString(t.toString(),r)}static fromString(t,r=new Uint32Array(4)){let i=t.startsWith(\"-\"),s=t.length,n=new e(r);for(let o=i?1:0;o0&&this.readData(t,i)||new Uint8Array(0)}readOffsets(t,r){return this.readData(t,r)}readTypeIds(t,r){return this.readData(t,r)}readData(t,{length:r,offset:i}=this.nextBufferRange()){return this.bytes.subarray(i,i+r)}readDictionary(t){return this.dictionaries.get(t.id)}},KP=class extends Qw{constructor(t,r,i,s,n){super(new Uint8Array(0),r,i,s,n),this.sources=t}readNullBitmap(t,r,{offset:i}=this.nextBufferRange()){return r<=0?new Uint8Array(0):mg(this.sources[i])}readOffsets(t,{offset:r}=this.nextBufferRange()){return Ai(Uint8Array,Ai(t.OffsetArrayType,this.sources[r]))}readTypeIds(t,{offset:r}=this.nextBufferRange()){return Ai(Uint8Array,Ai(t.ArrayType,this.sources[r]))}readData(t,{offset:r}=this.nextBufferRange()){let{sources:i}=this;return Ne.isTimestamp(t)?Ai(Uint8Array,_p.convertArray(i[r])):(Ne.isInt(t)||Ne.isTime(t))&&t.bitWidth===64||Ne.isDuration(t)?Ai(Uint8Array,_p.convertArray(i[r])):Ne.isDate(t)&&t.unit===Xs.MILLISECOND?Ai(Uint8Array,_p.convertArray(i[r])):Ne.isDecimal(t)?Ai(Uint8Array,Yw.convertArray(i[r])):Ne.isBinary(t)||Ne.isLargeBinary(t)||Ne.isFixedSizeBinary(t)?Aht(i[r]):Ne.isBool(t)?mg(i[r]):Ne.isUtf8(t)||Ne.isLargeUtf8(t)?$f(i[r].join(\"\")):Ai(Uint8Array,Ai(t.ArrayType,i[r].map(s=>+s)))}};function Aht(e){let t=e.join(\"\"),r=new Uint8Array(t.length/2);for(let i=0;i>1]=Number.parseInt(t.slice(i,i+2),16);return r}var vg=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Rr(r))}_flushPending(t,r){let i=this._offsets,s=this._values.reserve(r).buffer,n=0;for(let[o,c]of t)if(c===void 0)i.set(o,0);else{let f=c.length;s.set(c,n),i.set(o,f),n+=f}}};var xg=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Rr(r))}_flushPending(t,r){let i=this._offsets,s=this._values.reserve(r).buffer,n=0;for(let[o,c]of t)if(c===void 0)i.set(o,BigInt(0));else{let f=c.length;s.set(c,n),i.set(o,BigInt(f)),n+=f}}};var fm=class extends Qn{constructor(t){super(t),this._values=new hv}setValue(t,r){this._values.set(t,+r)}};var dm=class extends uo{};dm.prototype._setValue=KD;var Av=class extends dm{};Av.prototype._setValue=TP;var mv=class extends dm{};mv.prototype._setValue=MP;var gv=class extends uo{};gv.prototype._setValue=eO;var $w=class extends Qn{constructor({type:t,nullValues:r,dictionaryHashFunction:i}){super({type:new hc(t.dictionary,t.indices,t.id,t.isOrdered)}),this._nulls=null,this._dictionaryOffset=0,this._keysToIndices=Object.create(null),this.indices=bg({type:this.type.indices,nullValues:r}),this.dictionary=bg({type:this.type.dictionary,nullValues:null}),typeof i==\"function\"&&(this.valueToKey=i)}get values(){return this.indices.values}get nullCount(){return this.indices.nullCount}get nullBitmap(){return this.indices.nullBitmap}get byteLength(){return this.indices.byteLength+this.dictionary.byteLength}get reservedLength(){return this.indices.reservedLength+this.dictionary.reservedLength}get reservedByteLength(){return this.indices.reservedByteLength+this.dictionary.reservedByteLength}isValid(t){return this.indices.isValid(t)}setValid(t,r){let i=this.indices;return r=i.setValid(t,r),this.length=i.length,r}setValue(t,r){let i=this._keysToIndices,s=this.valueToKey(r),n=i[s];return n===void 0&&(i[s]=n=this._dictionaryOffset+this.dictionary.append(r).length-1),this.indices.setValue(t,n)}flush(){let t=this.type,r=this._dictionary,i=this.dictionary.toVector(),s=this.indices.flush().clone(t);return s.dictionary=r?r.concat(i):i,this.finished||(this._dictionaryOffset+=i.length),this._dictionary=s.dictionary,this.clear(),s}finish(){return this.indices.finish(),this.dictionary.finish(),this._dictionaryOffset=0,this._keysToIndices=Object.create(null),super.finish()}clear(){return this.indices.clear(),this.dictionary.clear(),super.clear()}valueToKey(t){return typeof t==\"string\"?t:`${t}`}};var _v=class extends uo{};_v.prototype._setValue=XD;var Xw=class extends Qn{setValue(t,r){let[i]=this.children,s=t*this.stride;for(let n=-1,o=r.length;++n0)throw new Error(\"FixedSizeListBuilder can only have one child.\");let i=this.children.push(t);return this.type=new Il(this.type.listSize,new si(r,t.type,!0)),i}};var pm=class extends uo{setValue(t,r){this._values.set(t,r)}},Kw=class extends pm{setValue(t,r){super.setValue(t,Uw(r))}},Jw=class extends pm{},t2=class extends pm{};var Am=class extends uo{};Am.prototype._setValue=rO;var yv=class extends Am{};yv.prototype._setValue=OP;var vv=class extends Am{};vv.prototype._setValue=BP;var od=class extends uo{};od.prototype._setValue=iO;var xv=class extends od{};xv.prototype._setValue=FP;var bv=class extends od{};bv.prototype._setValue=zP;var wv=class extends od{};wv.prototype._setValue=NP;var Sv=class extends od{};Sv.prototype._setValue=UP;var su=class extends uo{setValue(t,r){this._values.set(t,r)}},e2=class extends su{},r2=class extends su{},i2=class extends su{},n2=class extends su{},s2=class extends su{},o2=class extends su{},a2=class extends su{},l2=class extends su{};var c2=class extends fc{constructor(t){super(t),this._offsets=new fv(t.type)}addChild(t,r=\"0\"){if(this.numChildren>0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new lc(new si(r,t.type,!0)),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[s,n]of t)if(typeof n>\"u\")r.set(s,0);else{let o=n,c=o.length,f=r.set(s,c).buffer[s];for(let _=-1;++_0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new uc(new si(r,t.type,!0),this.type.keysSorted),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[s,n]of t)if(n===void 0)r.set(s,0);else{let{[s]:o,[s+1]:c}=r.set(s,n.size).buffer;for(let f of n.entries())if(i.set(o,f),++o>=c)break}}};var h2=class extends Qn{setValue(t,r){}setValid(t,r){return this.length=Math.max(t+1,this.length),r}};var f2=class extends Qn{setValue(t,r){let{children:i,type:s}=this;switch(Array.isArray(r)||r.constructor){case!0:return s.children.forEach((n,o)=>i[o].set(t,r[o]));case Map:return s.children.forEach((n,o)=>i[o].set(t,r.get(n.name)));default:return s.children.forEach((n,o)=>i[o].set(t,r[n.name]))}}setValid(t,r){return super.setValid(t,r)||this.children.forEach(i=>i.setValid(t,r)),r}addChild(t,r=`${this.numChildren}`){let i=this.children.push(t);return this.type=new un([...this.type.children,new si(r,t.type,!0)]),i}};var ad=class extends uo{};ad.prototype._setValue=JD;var Tv=class extends ad{};Tv.prototype._setValue=EP;var Mv=class extends ad{};Mv.prototype._setValue=PP;var Ev=class extends ad{};Ev.prototype._setValue=IP;var Pv=class extends ad{};Pv.prototype._setValue=CP;var ld=class extends uo{};ld.prototype._setValue=tO;var Iv=class extends ld{};Iv.prototype._setValue=LP;var Cv=class extends ld{};Cv.prototype._setValue=kP;var Lv=class extends ld{};Lv.prototype._setValue=RP;var kv=class extends ld{};kv.prototype._setValue=DP;var wg=class extends Qn{constructor(t){super(t),this._typeIds=new pp(Int8Array,0,1),typeof t.valueToChildTypeId==\"function\"&&(this._valueToChildTypeId=t.valueToChildTypeId)}get typeIdToChildIndex(){return this.type.typeIdToChildIndex}append(t,r){return this.set(this.length,t,r)}set(t,r,i){return i===void 0&&(i=this._valueToChildTypeId(this,r,t)),this.setValue(t,r,i),this}setValue(t,r,i){this._typeIds.set(t,i);let s=this.type.typeIdToChildIndex[i],n=this.children[s];n?.set(t,r)}addChild(t,r=`${this.children.length}`){let i=this.children.push(t),{type:{children:s,mode:n,typeIds:o}}=this,c=[...s,new si(r,t.type)];return this.type=new cc(n,[...o,i],c),i}_valueToChildTypeId(t,r,i){throw new Error(\"Cannot map UnionBuilder value to child typeId. Pass the `childTypeId` as the second argument to unionBuilder.append(), or supply a `valueToChildTypeId` function as part of the UnionBuilder constructor options.\")}},d2=class extends wg{},p2=class extends wg{constructor(t){super(t),this._offsets=new pp(Int32Array)}setValue(t,r,i){let s=this._typeIds.set(t,i).buffer[t],n=this.getChildAt(this.type.typeIdToChildIndex[s]),o=this._offsets.set(t,n.length).buffer[t];n?.set(o,r)}};var Rv=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,$f(r))}_flushPending(t,r){}};Rv.prototype._flushPending=vg.prototype._flushPending;var Dv=class extends fc{constructor(t){super(t),this._values=new nf(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,$f(r))}_flushPending(t,r){}};Dv.prototype._flushPending=xg.prototype._flushPending;var vO=class extends Mr{visitNull(){return h2}visitBool(){return fm}visitInt(){return su}visitInt8(){return e2}visitInt16(){return r2}visitInt32(){return i2}visitInt64(){return n2}visitUint8(){return s2}visitUint16(){return o2}visitUint32(){return a2}visitUint64(){return l2}visitFloat(){return pm}visitFloat16(){return Kw}visitFloat32(){return Jw}visitFloat64(){return t2}visitUtf8(){return Rv}visitLargeUtf8(){return Dv}visitBinary(){return vg}visitLargeBinary(){return xg}visitFixedSizeBinary(){return _v}visitDate(){return dm}visitDateDay(){return Av}visitDateMillisecond(){return mv}visitTimestamp(){return ad}visitTimestampSecond(){return Tv}visitTimestampMillisecond(){return Mv}visitTimestampMicrosecond(){return Ev}visitTimestampNanosecond(){return Pv}visitTime(){return ld}visitTimeSecond(){return Iv}visitTimeMillisecond(){return Cv}visitTimeMicrosecond(){return Lv}visitTimeNanosecond(){return kv}visitDecimal(){return gv}visitList(){return c2}visitStruct(){return f2}visitUnion(){return wg}visitDenseUnion(){return p2}visitSparseUnion(){return d2}visitDictionary(){return $w}visitInterval(){return Am}visitIntervalDayTime(){return yv}visitIntervalYearMonth(){return vv}visitDuration(){return od}visitDurationSecond(){return xv}visitDurationMillisecond(){return bv}visitDurationMicrosecond(){return wv}visitDurationNanosecond(){return Sv}visitFixedSizeList(){return Xw}visitMap(){return u2}},bW=new vO;var Cr=class extends Mr{compareSchemas(t,r){return t===r||r instanceof t.constructor&&this.compareManyFields(t.fields,r.fields)}compareManyFields(t,r){return t===r||Array.isArray(t)&&Array.isArray(r)&&t.length===r.length&&t.every((i,s)=>this.compareFields(i,r[s]))}compareFields(t,r){return t===r||r instanceof t.constructor&&t.name===r.name&&t.nullable===r.nullable&&this.visit(t.type,r.type)}};function Cl(e,t){return t instanceof e.constructor}function Sg(e,t){return e===t||Cl(e,t)}function yp(e,t){return e===t||Cl(e,t)&&e.bitWidth===t.bitWidth&&e.isSigned===t.isSigned}function JP(e,t){return e===t||Cl(e,t)&&e.precision===t.precision}function mht(e,t){return e===t||Cl(e,t)&&e.byteWidth===t.byteWidth}function xO(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function A2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit&&e.timezone===t.timezone}function m2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit&&e.bitWidth===t.bitWidth}function ght(e,t){return e===t||Cl(e,t)&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function _ht(e,t){return e===t||Cl(e,t)&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function bO(e,t){return e===t||Cl(e,t)&&e.mode===t.mode&&e.typeIds.every((r,i)=>r===t.typeIds[i])&&cd.compareManyFields(e.children,t.children)}function yht(e,t){return e===t||Cl(e,t)&&e.id===t.id&&e.isOrdered===t.isOrdered&&cd.visit(e.indices,t.indices)&&cd.visit(e.dictionary,t.dictionary)}function wO(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function g2(e,t){return e===t||Cl(e,t)&&e.unit===t.unit}function vht(e,t){return e===t||Cl(e,t)&&e.listSize===t.listSize&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}function xht(e,t){return e===t||Cl(e,t)&&e.keysSorted===t.keysSorted&&e.children.length===t.children.length&&cd.compareManyFields(e.children,t.children)}Cr.prototype.visitNull=Sg;Cr.prototype.visitBool=Sg;Cr.prototype.visitInt=yp;Cr.prototype.visitInt8=yp;Cr.prototype.visitInt16=yp;Cr.prototype.visitInt32=yp;Cr.prototype.visitInt64=yp;Cr.prototype.visitUint8=yp;Cr.prototype.visitUint16=yp;Cr.prototype.visitUint32=yp;Cr.prototype.visitUint64=yp;Cr.prototype.visitFloat=JP;Cr.prototype.visitFloat16=JP;Cr.prototype.visitFloat32=JP;Cr.prototype.visitFloat64=JP;Cr.prototype.visitUtf8=Sg;Cr.prototype.visitLargeUtf8=Sg;Cr.prototype.visitBinary=Sg;Cr.prototype.visitLargeBinary=Sg;Cr.prototype.visitFixedSizeBinary=mht;Cr.prototype.visitDate=xO;Cr.prototype.visitDateDay=xO;Cr.prototype.visitDateMillisecond=xO;Cr.prototype.visitTimestamp=A2;Cr.prototype.visitTimestampSecond=A2;Cr.prototype.visitTimestampMillisecond=A2;Cr.prototype.visitTimestampMicrosecond=A2;Cr.prototype.visitTimestampNanosecond=A2;Cr.prototype.visitTime=m2;Cr.prototype.visitTimeSecond=m2;Cr.prototype.visitTimeMillisecond=m2;Cr.prototype.visitTimeMicrosecond=m2;Cr.prototype.visitTimeNanosecond=m2;Cr.prototype.visitDecimal=Sg;Cr.prototype.visitList=ght;Cr.prototype.visitStruct=_ht;Cr.prototype.visitUnion=bO;Cr.prototype.visitDenseUnion=bO;Cr.prototype.visitSparseUnion=bO;Cr.prototype.visitDictionary=yht;Cr.prototype.visitInterval=wO;Cr.prototype.visitIntervalDayTime=wO;Cr.prototype.visitIntervalYearMonth=wO;Cr.prototype.visitDuration=g2;Cr.prototype.visitDurationSecond=g2;Cr.prototype.visitDurationMillisecond=g2;Cr.prototype.visitDurationMicrosecond=g2;Cr.prototype.visitDurationNanosecond=g2;Cr.prototype.visitFixedSizeList=vht;Cr.prototype.visitMap=xht;var cd=new Cr;function Tg(e,t){return cd.compareSchemas(e,t)}function wW(e,t){return cd.compareFields(e,t)}function SW(e,t){return cd.visit(e,t)}function bg(e){let t=e.type,r=new(bW.getVisitFn(t)())(e);if(t.children&&t.children.length>0){let i=e.children||[],s={nullValues:e.nullValues},n=Array.isArray(i)?(o,c)=>i[c]||s:({name:o})=>i[o]||s;for(let[o,c]of t.children.entries()){let{type:f}=c,_=n(c,o);r.children.push(bg(Object.assign(Object.assign({},_),{type:f})))}}return r}function t3(e,t){return bht(e,t.map(r=>r.data.concat()))}function bht(e,t){let r=[...e.fields],i=[],s={numBatches:t.reduce((C,R)=>Math.max(C,R.length),0)},n=0,o=0,c=-1,f=t.length,_,w=[];for(;s.numBatches-- >0;){for(o=Number.POSITIVE_INFINITY,c=-1;++c0&&(i[n++]=yr({type:new un(r),length:o,nullCount:0,children:w.slice()})))}return[e=e.assign(r),i.map(C=>new ks(e,C))]}function wht(e,t,r,i,s){var n;let o=(t+63&-64)>>3;for(let c=-1,f=i.length;++c=t)w===t?r[c]=_:(r[c]=_.slice(0,t),s.numBatches=Math.max(s.numBatches,i[c].unshift(_.slice(t,w-t))));else{let C=e[c];e[c]=C.clone({nullable:!0}),r[c]=(n=_?._changeLengthAndBackfillNullBitmap(t))!==null&&n!==void 0?n:yr({type:C.type,length:t,nullCount:t,nullBitmap:new Uint8Array(o)})}}return r}var MW,ba=class e{constructor(...t){var r,i;if(t.length===0)return this.batches=[],this.schema=new nn([]),this._offsets=[0],this;let s,n;t[0]instanceof nn&&(s=t.shift()),t.at(-1)instanceof Uint32Array&&(n=t.pop());let o=f=>{if(f){if(f instanceof ks)return[f];if(f instanceof e)return f.batches;if(f instanceof Di){if(f.type instanceof un)return[new ks(new nn(f.type.children),f)]}else{if(Array.isArray(f))return f.flatMap(_=>o(_));if(typeof f[Symbol.iterator]==\"function\")return[...f].flatMap(_=>o(_));if(typeof f==\"object\"){let _=Object.keys(f),w=_.map(N=>new wr([f[N]])),C=s??new nn(_.map((N,j)=>new si(String(N),w[j].type,w[j].nullable))),[,R]=t3(C,w);return R.length===0?[new ks(f)]:R}}}return[]},c=t.flatMap(f=>o(f));if(s=(i=s??((r=c[0])===null||r===void 0?void 0:r.schema))!==null&&i!==void 0?i:new nn([]),!(s instanceof nn))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");for(let f of c){if(!(f instanceof ks))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");if(!Tg(s,f.schema))throw new TypeError(\"Table and inner RecordBatch schemas must be equivalent.\")}this.schema=s,this.batches=c,this._offsets=n??HP(this.data)}get data(){return this.batches.map(({data:t})=>t)}get numCols(){return this.schema.fields.length}get numRows(){return this.data.reduce((t,r)=>t+r.length,0)}get nullCount(){return this._nullCount===-1&&(this._nullCount=WP(this.data)),this._nullCount}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}[Symbol.iterator](){return this.batches.length>0?uv.visit(new wr(this.data)):new Array(0)[Symbol.iterator]()}toArray(){return[...this]}toString(){return`[\n ${this.toArray().join(`,\n `)}\n]`}concat(...t){let r=this.schema,i=this.data.concat(t.flatMap(({data:s})=>s));return new e(r,i.map(s=>new ks(r,s)))}slice(t,r){let i=this.schema;[t,r]=Vw({length:this.numRows},t,r);let s=qP(this.data,this._offsets,t,r);return new e(i,s.map(n=>new ks(i,n)))}getChild(t){return this.getChildAt(this.schema.fields.findIndex(r=>r.name===t))}getChildAt(t){if(t>-1&&ti.children[t]);if(r.length===0){let{type:i}=this.schema.fields[t],s=yr({type:i,length:0,nullCount:0});r.push(s._changeLengthAndBackfillNullBitmap(this.numRows))}return new wr(r)}return null}setChild(t,r){var i;return this.setChildAt((i=this.schema.fields)===null||i===void 0?void 0:i.findIndex(s=>s.name===t),r)}setChildAt(t,r){let i=this.schema,s=[...this.batches];if(t>-1&&tthis.getChildAt(_));[n[t],c[t]]=[o,r],[i,s]=t3(i,c)}return new e(i,s)}select(t){let r=this.schema.fields.reduce((i,s,n)=>i.set(s.name,n),new Map);return this.selectAt(t.map(i=>r.get(i)).filter(i=>i>-1))}selectAt(t){let r=this.schema.selectAt(t),i=this.batches.map(s=>s.selectAt(t));return new e(r,i)}assign(t){let r=this.schema.fields,[i,s]=t.schema.fields.reduce((c,f,_)=>{let[w,C]=c,R=r.findIndex(N=>N.name===f.name);return~R?C[R]=_:w.push(_),c},[[],[]]),n=this.schema.assign(t.schema),o=[...r.map((c,f)=>[f,s[f]]).map(([c,f])=>f===void 0?this.getChildAt(c):t.getChildAt(f)),...i.map(c=>t.getChildAt(c))].filter(Boolean);return new e(...t3(n,o))}};MW=Symbol.toStringTag;ba[MW]=(e=>(e.schema=null,e.batches=[],e._offsets=new Uint32Array([0]),e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,e.isValid=cv(Ww),e.get=cv(co.getVisitFn(Rt.Struct)),e.set=ZP(xa.getVisitFn(Rt.Struct)),e.indexOf=YP(gg.getVisitFn(Rt.Struct)),\"Table\"))(ba.prototype);var PW,ks=class e{constructor(...t){switch(t.length){case 2:{if([this.schema]=t,!(this.schema instanceof nn))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");if([,this.data=yr({nullCount:0,type:new un(this.schema.fields),children:this.schema.fields.map(r=>yr({type:r.type,nullCount:0}))})]=t,!(this.data instanceof Di))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");[this.schema,this.data]=EW(this.schema,this.data.children);break}case 1:{let[r]=t,{fields:i,children:s,length:n}=Object.keys(r).reduce((f,_,w)=>(f.children[w]=r[_],f.length=Math.max(f.length,r[_].length),f.fields[w]=si.new({name:_,type:r[_].type,nullable:!0}),f),{length:0,fields:new Array,children:new Array}),o=new nn(i),c=yr({type:new un(i),length:n,children:s,nullCount:0});[this.schema,this.data]=EW(o,c.children,n);break}default:throw new TypeError(\"RecordBatch constructor expects an Object mapping names to child Data, or a [Schema, Data] pair.\")}}get dictionaries(){return this._dictionaries||(this._dictionaries=IW(this.schema.fields,this.data.children))}get numCols(){return this.schema.fields.length}get numRows(){return this.data.length}get nullCount(){return this.data.nullCount}isValid(t){return this.data.getValid(t)}get(t){return co.visit(this.data,t)}set(t,r){return xa.visit(this.data,t,r)}indexOf(t,r){return gg.visit(this.data,t,r)}[Symbol.iterator](){return uv.visit(new wr([this.data]))}toArray(){return[...this]}concat(...t){return new ba(this.schema,[this,...t])}slice(t,r){let[i]=new wr([this.data]).slice(t,r).data;return new e(this.schema,i)}getChild(t){var r;return this.getChildAt((r=this.schema.fields)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&ts.name===t),r)}setChildAt(t,r){let i=this.schema,s=this.data;if(t>-1&&tc.name===n);~o&&(s[o]=this.data.children[o])}return new e(r,yr({type:i,length:this.numRows,children:s}))}selectAt(t){let r=this.schema.selectAt(t),i=t.map(n=>this.data.children[n]).filter(Boolean),s=yr({type:new un(r.fields),length:this.numRows,children:i});return new e(r,s)}};PW=Symbol.toStringTag;ks[PW]=(e=>(e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,\"RecordBatch\"))(ks.prototype);function EW(e,t,r=t.reduce((i,s)=>Math.max(i,s.length),0)){var i;let s=[...e.fields],n=[...t],o=(r+63&-64)>>3;for(let[c,f]of e.fields.entries()){let _=t[c];(!_||_.length!==r)&&(s[c]=f.clone({nullable:!0}),n[c]=(i=_?._changeLengthAndBackfillNullBitmap(r))!==null&&i!==void 0?i:yr({type:f.type,length:r,nullCount:r,nullBitmap:new Uint8Array(o)}))}return[e.assign(s),yr({type:new un(s),length:r,children:n})]}function IW(e,t,r=new Map){var i,s;if(((i=e?.length)!==null&&i!==void 0?i:0)>0&&e?.length===t?.length)for(let n=-1,o=e.length;++nyr({type:s.type})),i=yr({type:new un(t.fields),nullCount:0,children:r});super(t,i)}};var sf=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsMessage(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMessage(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):en.V1}headerType(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):bi.NONE}header(t){let r=this.bb.__offset(this.bb_pos,8);return r?this.bb.__union(t,this.bb_pos+r):null}bodyLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb_pos+t):BigInt(\"0\")}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Co).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startMessage(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,en.V1)}static addHeaderType(t,r){t.addFieldInt8(1,r,bi.NONE)}static addHeader(t,r){t.addFieldOffset(2,r,0)}static addBodyLength(t,r){t.addFieldInt64(3,r,BigInt(\"0\"))}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endMessage(t){return t.endObject()}static finishMessageBuffer(t,r){t.finish(r)}static finishSizePrefixedMessageBuffer(t,r){t.finish(r,void 0,!0)}static createMessage(t,r,i,s,n,o){return e.startMessage(t),e.addVersion(t,r),e.addHeaderType(t,i),e.addHeader(t,s),e.addBodyLength(t,n),e.addCustomMetadata(t,o),e.endMessage(t)}};var SO=class extends Mr{visit(t,r){return t==null||r==null?void 0:super.visit(t,r)}visitNull(t,r){return Mw.startNull(r),Mw.endNull(r)}visitInt(t,r){return Xh.startInt(r),Xh.addBitWidth(r,t.bitWidth),Xh.addIsSigned(r,t.isSigned),Xh.endInt(r)}visitFloat(t,r){return sm.startFloatingPoint(r),sm.addPrecision(r,t.precision),sm.endFloatingPoint(r)}visitBinary(t,r){return xw.startBinary(r),xw.endBinary(r)}visitLargeBinary(t,r){return ww.startLargeBinary(r),ww.endLargeBinary(r)}visitBool(t,r){return bw.startBool(r),bw.endBool(r)}visitUtf8(t,r){return Pw.startUtf8(r),Pw.endUtf8(r)}visitLargeUtf8(t,r){return Sw.startLargeUtf8(r),Sw.endLargeUtf8(r)}visitDecimal(t,r){return td.startDecimal(r),td.addScale(r,t.scale),td.addPrecision(r,t.precision),td.addBitWidth(r,t.bitWidth),td.endDecimal(r)}visitDate(t,r){return em.startDate(r),em.addUnit(r,t.unit),em.endDate(r)}visitTime(t,r){return hp.startTime(r),hp.addUnit(r,t.unit),hp.addBitWidth(r,t.bitWidth),hp.endTime(r)}visitTimestamp(t,r){let i=t.timezone&&r.createString(t.timezone)||void 0;return fp.startTimestamp(r),fp.addUnit(r,t.unit),i!==void 0&&fp.addTimezone(r,i),fp.endTimestamp(r)}visitInterval(t,r){return om.startInterval(r),om.addUnit(r,t.unit),om.endInterval(r)}visitDuration(t,r){return rm.startDuration(r),rm.addUnit(r,t.unit),rm.endDuration(r)}visitList(t,r){return Tw.startList(r),Tw.endList(r)}visitStruct(t,r){return Ew.startStruct_(r),Ew.endStruct_(r)}visitUnion(t,r){Kh.startTypeIdsVector(r,t.typeIds.length);let i=Kh.createTypeIdsVector(r,t.typeIds);return Kh.startUnion(r),Kh.addMode(r,t.mode),Kh.addTypeIds(r,i),Kh.endUnion(r)}visitDictionary(t,r){let i=this.visit(t.indices,r);return Jf.startDictionaryEncoding(r),Jf.addId(r,BigInt(t.id)),Jf.addIsOrdered(r,t.isOrdered),i!==void 0&&Jf.addIndexType(r,i),Jf.endDictionaryEncoding(r)}visitFixedSizeBinary(t,r){return im.startFixedSizeBinary(r),im.addByteWidth(r,t.byteWidth),im.endFixedSizeBinary(r)}visitFixedSizeList(t,r){return nm.startFixedSizeList(r),nm.addListSize(r,t.listSize),nm.endFixedSizeList(r)}visitMap(t,r){return am.startMap(r),am.addKeysSorted(r,t.keysSorted),am.endMap(r)}},e3=new SO;function RW(e,t=new Map){return new nn(Sht(e,t),r3(e.metadata),t)}function TO(e){return new wa(e.count,OW(e.columns),BW(e.columns))}function DW(e){return new pc(TO(e.data),e.id,e.isDelta)}function Sht(e,t){return(e.fields||[]).filter(Boolean).map(r=>si.fromJSON(r,t))}function CW(e,t){return(e.children||[]).filter(Boolean).map(r=>si.fromJSON(r,t))}function OW(e){return(e||[]).reduce((t,r)=>[...t,new $u(r.count,Tht(r.VALIDITY)),...OW(r.children)],[])}function BW(e,t=[]){for(let r=-1,i=(e||[]).length;++rt+ +(r===0),0)}function FW(e,t){let r,i,s,n,o,c;return!t||!(n=e.dictionary)?(o=kW(e,CW(e,t)),s=new si(e.name,o,e.nullable,r3(e.metadata))):t.has(r=n.id)?(i=(i=n.indexType)?LW(i):new ef,c=new hc(t.get(r),i,r,n.isOrdered),s=new si(e.name,c,e.nullable,r3(e.metadata))):(i=(i=n.indexType)?LW(i):new ef,t.set(r,o=kW(e,CW(e,t))),c=new hc(o,i,r,n.isOrdered),s=new si(e.name,c,e.nullable,r3(e.metadata))),s||null}function r3(e=[]){return new Map(e.map(({key:t,value:r})=>[t,r]))}function LW(e){return new is(e.isSigned,e.bitWidth)}function kW(e,t){let r=e.type.name;switch(r){case\"NONE\":return new ea;case\"null\":return new ea;case\"binary\":return new Uu;case\"largebinary\":return new ed;case\"utf8\":return new Vu;case\"largeutf8\":return new rd;case\"bool\":return new oc;case\"list\":return new lc((t||[])[0]);case\"struct\":return new un(t||[]);case\"struct_\":return new un(t||[])}switch(r){case\"int\":{let i=e.type;return new is(i.isSigned,i.bitWidth)}case\"floatingpoint\":{let i=e.type;return new lo(qi[i.precision])}case\"decimal\":{let i=e.type;return new ju(i.scale,i.precision,i.bitWidth)}case\"date\":{let i=e.type;return new Gu(Xs[i.unit])}case\"time\":{let i=e.type;return new ac(pr[i.unit],i.bitWidth)}case\"timestamp\":{let i=e.type;return new Wu(pr[i.unit],i.timezone)}case\"interval\":{let i=e.type;return new Hu(Io[i.unit])}case\"duration\":{let i=e.type;return new qu(pr[i.unit])}case\"union\":{let i=e.type,[s,...n]=(i.mode+\"\").toLowerCase(),o=s.toUpperCase()+n.join(\"\");return new cc(Mn[o],i.typeIds||[],t||[])}case\"fixedsizebinary\":{let i=e.type;return new Zu(i.byteWidth)}case\"fixedsizelist\":{let i=e.type;return new Il(i.listSize,(t||[])[0])}case\"map\":{let i=e.type;return new uc((t||[])[0],i.keysSorted)}}throw new Error(`Unrecognized type: \"${r}\"`)}var Mht=dg,Eht=eu,Ac=class e{static fromJSON(t,r){let i=new e(0,en.V5,r);return i._createHeader=Pht(t,r),i}static decode(t){t=new Eht(Rr(t));let r=sf.getRootAsMessage(t),i=r.bodyLength(),s=r.version(),n=r.headerType(),o=new e(i,s,n);return o._createHeader=Iht(r,n),o}static encode(t){let r=new Mht,i=-1;return t.isSchema()?i=nn.encode(r,t.header()):t.isRecordBatch()?i=wa.encode(r,t.header()):t.isDictionaryBatch()&&(i=pc.encode(r,t.header())),sf.startMessage(r),sf.addVersion(r,en.V5),sf.addHeader(r,i),sf.addHeaderType(r,t.headerType),sf.addBodyLength(r,BigInt(t.bodyLength)),sf.finishMessageBuffer(r,sf.endMessage(r)),r.asUint8Array()}static from(t,r=0){if(t instanceof nn)return new e(0,en.V5,bi.Schema,t);if(t instanceof wa)return new e(r,en.V5,bi.RecordBatch,t);if(t instanceof pc)return new e(r,en.V5,bi.DictionaryBatch,t);throw new Error(`Unrecognized Message header: ${t}`)}get type(){return this.headerType}get version(){return this._version}get headerType(){return this._headerType}get bodyLength(){return this._bodyLength}header(){return this._createHeader()}isSchema(){return this.headerType===bi.Schema}isRecordBatch(){return this.headerType===bi.RecordBatch}isDictionaryBatch(){return this.headerType===bi.DictionaryBatch}constructor(t,r,i,s){this._version=r,this._headerType=i,this.body=new Uint8Array(0),s&&(this._createHeader=()=>s),this._bodyLength=ms(t)}},wa=class{get nodes(){return this._nodes}get length(){return this._length}get buffers(){return this._buffers}constructor(t,r,i){this._nodes=r,this._buffers=i,this._length=ms(t)}},pc=class{get id(){return this._id}get data(){return this._data}get isDelta(){return this._isDelta}get length(){return this.data.length}get nodes(){return this.data.nodes}get buffers(){return this.data.buffers}constructor(t,r,i=!1){this._data=t,this._isDelta=i,this._id=ms(r)}},dc=class{constructor(t,r){this.offset=ms(t),this.length=ms(r)}},$u=class{constructor(t,r){this.length=ms(t),this.nullCount=ms(r)}};function Pht(e,t){return()=>{switch(t){case bi.Schema:return nn.fromJSON(e);case bi.RecordBatch:return wa.fromJSON(e);case bi.DictionaryBatch:return pc.fromJSON(e)}throw new Error(`Unrecognized Message type: { name: ${bi[t]}, type: ${t} }`)}}function Iht(e,t){return()=>{switch(t){case bi.Schema:return nn.decode(e.header(new sc),new Map,e.version());case bi.RecordBatch:return wa.decode(e.header(new ru),e.version());case bi.DictionaryBatch:return pc.decode(e.header(new up),e.version())}throw new Error(`Unrecognized Message type: { name: ${bi[t]}, type: ${t} }`)}}si.encode=Uht;si.decode=zht;si.fromJSON=FW;nn.encode=Nht;nn.decode=Cht;nn.fromJSON=RW;wa.encode=Vht;wa.decode=Lht;wa.fromJSON=TO;pc.encode=jht;pc.decode=kht;pc.fromJSON=DW;$u.encode=Ght;$u.decode=Dht;dc.encode=Wht;dc.decode=Rht;function Cht(e,t=new Map,r=en.V5){let i=Fht(e,t);return new nn(i,i3(e),t,r)}function Lht(e,t=en.V5){if(e.compression()!==null)throw new Error(\"Record batch compression not implemented\");return new wa(e.length(),Oht(e),Bht(e,t))}function kht(e,t=en.V5){return new pc(wa.decode(e.data(),t),e.id(),e.isDelta())}function Rht(e){return new dc(e.offset(),e.length())}function Dht(e){return new $u(e.length(),e.nullCount())}function Oht(e){let t=[];for(let r,i=-1,s=-1,n=e.nodesLength();++isi.encode(e,n));sc.startFieldsVector(e,r.length);let i=sc.createFieldsVector(e,r),s=t.metadata&&t.metadata.size>0?sc.createCustomMetadataVector(e,[...t.metadata].map(([n,o])=>{let c=e.createString(`${n}`),f=e.createString(`${o}`);return Co.startKeyValue(e),Co.addKey(e,c),Co.addValue(e,f),Co.endKeyValue(e)})):-1;return sc.startSchema(e),sc.addFields(e,i),sc.addEndianness(e,Hht?tm.Little:tm.Big),s!==-1&&sc.addCustomMetadata(e,s),sc.endSchema(e)}function Uht(e,t){let r=-1,i=-1,s=-1,n=t.type,o=t.typeId;Ne.isDictionary(n)?(o=n.dictionary.typeId,s=e3.visit(n,e),i=e3.visit(n.dictionary,e)):i=e3.visit(n,e);let c=(n.children||[]).map(w=>si.encode(e,w)),f=rl.createChildrenVector(e,c),_=t.metadata&&t.metadata.size>0?rl.createCustomMetadataVector(e,[...t.metadata].map(([w,C])=>{let R=e.createString(`${w}`),N=e.createString(`${C}`);return Co.startKeyValue(e),Co.addKey(e,R),Co.addValue(e,N),Co.endKeyValue(e)})):-1;return t.name&&(r=e.createString(t.name)),rl.startField(e),rl.addType(e,i),rl.addTypeType(e,o),rl.addChildren(e,f),rl.addNullable(e,!!t.nullable),r!==-1&&rl.addName(e,r),s!==-1&&rl.addDictionary(e,s),_!==-1&&rl.addCustomMetadata(e,_),rl.endField(e)}function Vht(e,t){let r=t.nodes||[],i=t.buffers||[];ru.startNodesVector(e,r.length);for(let o of r.slice().reverse())$u.encode(e,o);let s=e.endVector();ru.startBuffersVector(e,i.length);for(let o of i.slice().reverse())dc.encode(e,o);let n=e.endVector();return ru.startRecordBatch(e),ru.addLength(e,BigInt(t.length)),ru.addNodes(e,s),ru.addBuffers(e,n),ru.endRecordBatch(e)}function jht(e,t){let r=wa.encode(e,t.data);return up.startDictionaryBatch(e),up.addId(e,BigInt(t.id)),up.addIsDelta(e,t.isDelta),up.addData(e,r),up.endDictionaryBatch(e)}function Ght(e,t){return tv.createFieldNode(e,BigInt(t.length),BigInt(t.nullCount))}function Wht(e,t){return Jy.createBuffer(e,BigInt(t.offset),BigInt(t.length))}var Hht=(()=>{let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]===256})();var EO=e=>`Expected ${bi[e]} Message in stream, but was null or length 0.`,PO=e=>`Header pointer of flatbuffer-encoded ${bi[e]} Message is null or length 0.`,VW=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,jW=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`,Ov=class{constructor(t){this.source=t instanceof sd?t:new sd(t)}[Symbol.iterator](){return this}next(){let t;return(t=this.readMetadataLength()).done?Nn:t.value===-1&&(t=this.readMetadataLength()).done?Nn:(t=this.readMetadata(t.value)).done?Nn:t}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(EO(t));return r.value}readMessageBody(t){if(t<=0)return new Uint8Array(0);let r=Rr(this.source.read(t));if(r.byteLength[...s,...n.VALIDITY&&[n.VALIDITY]||[],...n.TYPE_ID&&[n.TYPE_ID]||[],...n.OFFSET&&[n.OFFSET]||[],...n.DATA&&[n.DATA]||[],...r(n.children)],[])}}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(EO(t));return r.value}readSchema(){let t=bi.Schema,r=this.readMessage(t),i=r?.header();if(!r||!i)throw new Error(PO(t));return i}},n3=4,MO=\"ARROW1\",Bv=new Uint8Array(MO.length);for(let e=0;ethis):this}readRecordBatch(t){return this._impl.isFile()?this._impl.readRecordBatch(t):null}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}toDOMStream(){return va.toDOMStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this})}toNodeStream(){return va.toNodeStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this},{objectMode:!0})}static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}static from(t){return t instanceof e?t:hP(t)?Zht(t):dP(t)?$ht(t):Jc(t)?sr(this,void 0,void 0,function*(){return yield e.from(yield t)}):pP(t)||Aw(t)||mP(t)||zu(t)?Qht(new Qu(t)):Yht(new sd(t))}static readAll(t){return t instanceof e?t.isSync()?WW(t):HW(t):hP(t)||ArrayBuffer.isView(t)||Yh(t)||fP(t)?WW(t):HW(t)}},vp=class extends ou{constructor(t){super(t),this._impl=t}readAll(){return[...this]}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return Kc(this,arguments,function*(){yield ii(yield*Xy(Zh(this[Symbol.iterator]())))})}},Eg=class extends ou{constructor(t){super(t),this._impl=t}readAll(){var t,r,i,s;return sr(this,void 0,void 0,function*(){let n=new Array;try{for(var o=!0,c=Zh(this),f;f=yield c.next(),t=f.done,!t;o=!0){s=f.value,o=!1;let _=s;n.push(_)}}catch(_){r={error:_}}finally{try{!o&&!t&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}return n})}[Symbol.iterator](){throw new Error(\"AsyncRecordBatchStreamReader is not Iterable\")}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}},Pg=class extends vp{constructor(t){super(t),this._impl=t}},o3=class extends Eg{constructor(t){super(t),this._impl=t}},a3=class{get numDictionaries(){return this._dictionaryIndex}get numRecordBatches(){return this._recordBatchIndex}constructor(t=new Map){this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=t}isSync(){return!1}isAsync(){return!1}isFile(){return!1}isStream(){return!1}reset(t){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=t,this.dictionaries=new Map,this}_loadRecordBatch(t,r){let i=this._loadVectors(t,r,this.schema.fields),s=yr({type:new un(this.schema.fields),length:t.length,children:i});return new ks(this.schema,s)}_loadDictionaryBatch(t,r){let{id:i,isDelta:s}=t,{dictionaries:n,schema:o}=this,c=n.get(i);if(s||!c){let f=o.dictionaries.get(i),_=this._loadVectors(t.data,r,[f]);return(c&&s?c.concat(new wr(_)):new wr(_)).memoize()}return c.memoize()}_loadVectors(t,r,i){return new Qw(r,t.nodes,t.buffers,this.dictionaries,this.schema.metadataVersion).visitMany(i)}},zv=class extends a3{constructor(t,r){super(r),this._reader=hP(t)?new y2(this._handle=t):new Ov(this._handle=t)}isSync(){return!0}isStream(){return!0}[Symbol.iterator](){return this}cancel(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}open(t){return this.closed||(this.autoDestroy=qW(this,t),this.schema||(this.schema=this._reader.readSchema())||this.cancel()),this}throw(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(t):Nn}return(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(t):Nn}next(){if(this.closed)return Nn;let t,{_reader:r}=this;for(;t=this._readNextMessageAndValidate();)if(t.isSchema())this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),s=r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,s)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),s=r.readMessageBody(t.bodyLength),n=this._loadDictionaryBatch(i,s);this.dictionaries.set(i.id,n)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Mg(this.schema)}):this.return()}_readNextMessageAndValidate(t){return this._reader.readMessage(t)}},Nv=class extends a3{constructor(t,r){super(r),this._reader=new _2(this._handle=t)}isAsync(){return!0}isStream(){return!0}[Symbol.asyncIterator](){return this}cancel(){return sr(this,void 0,void 0,function*(){!this.closed&&(this.closed=!0)&&(yield this.reset()._reader.return(),this._reader=null,this.dictionaries=null)})}open(t){return sr(this,void 0,void 0,function*(){return this.closed||(this.autoDestroy=qW(this,t),this.schema||(this.schema=yield this._reader.readSchema())||(yield this.cancel())),this})}throw(t){return sr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.throw(t):Nn})}return(t){return sr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.return(t):Nn})}next(){return sr(this,void 0,void 0,function*(){if(this.closed)return Nn;let t,{_reader:r}=this;for(;t=yield this._readNextMessageAndValidate();)if(t.isSchema())yield this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),s=yield r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,s)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),s=yield r.readMessageBody(t.bodyLength),n=this._loadDictionaryBatch(i,s);this.dictionaries.set(i.id,n)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Mg(this.schema)}):yield this.return()})}_readNextMessageAndValidate(t){return sr(this,void 0,void 0,function*(){return yield this._reader.readMessage(t)})}},l3=class extends zv{get footer(){return this._footer}get numDictionaries(){return this._footer?this._footer.numDictionaries:0}get numRecordBatches(){return this._footer?this._footer.numRecordBatches:0}constructor(t,r){super(t instanceof qw?t:new qw(t),r)}isSync(){return!0}isFile(){return!0}open(t){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;for(let r of this._footer.dictionaryBatches())r&&this._readDictionaryBatch(this._dictionaryIndex++)}return super.open(t)}readRecordBatch(t){var r;if(this.closed)return null;this._footer||this.open();let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&this._handle.seek(i.offset)){let s=this._reader.readMessage(bi.RecordBatch);if(s?.isRecordBatch()){let n=s.header(),o=this._reader.readMessageBody(s.bodyLength);return this._loadRecordBatch(n,o)}}return null}_readDictionaryBatch(t){var r;let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&this._handle.seek(i.offset)){let s=this._reader.readMessage(bi.DictionaryBatch);if(s?.isDictionaryBatch()){let n=s.header(),o=this._reader.readMessageBody(s.bodyLength),c=this._loadDictionaryBatch(n,o);this.dictionaries.set(n.id,c)}}}_readFooter(){let{_handle:t}=this,r=t.size-IO,i=t.readInt32(r),s=t.readAt(r-i,i);return Ap.decode(s)}_readNextMessageAndValidate(t){var r;if(this._footer||this.open(),this._footer&&this._recordBatchIndexsuper.open}});return sr(this,void 0,void 0,function*(){if(!this.closed&&!this._footer){this.schema=(this._footer=yield this._readFooter()).schema;for(let i of this._footer.dictionaryBatches())i&&(yield this._readDictionaryBatch(this._dictionaryIndex++))}return yield r.open.call(this,t)})}readRecordBatch(t){var r;return sr(this,void 0,void 0,function*(){if(this.closed)return null;this._footer||(yield this.open());let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&(yield this._handle.seek(i.offset))){let s=yield this._reader.readMessage(bi.RecordBatch);if(s?.isRecordBatch()){let n=s.header(),o=yield this._reader.readMessageBody(s.bodyLength);return this._loadRecordBatch(n,o)}}return null})}_readDictionaryBatch(t){var r;return sr(this,void 0,void 0,function*(){let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&(yield this._handle.seek(i.offset))){let s=yield this._reader.readMessage(bi.DictionaryBatch);if(s?.isDictionaryBatch()){let n=s.header(),o=yield this._reader.readMessageBody(s.bodyLength),c=this._loadDictionaryBatch(n,o);this.dictionaries.set(n.id,c)}}})}_readFooter(){return sr(this,void 0,void 0,function*(){let{_handle:t}=this;t._pending&&(yield t._pending);let r=t.size-IO,i=yield t.readInt32(r),s=yield t.readAt(r-i,i);return Ap.decode(s)})}_readNextMessageAndValidate(t){return sr(this,void 0,void 0,function*(){if(this._footer||(yield this.open()),this._footer&&this._recordBatchIndex=4?s3(t)?new Pg(new l3(e.read())):new vp(new zv(e)):new vp(new zv(function*(){}()))}function Qht(e){return sr(this,void 0,void 0,function*(){let t=yield e.peek(Fv+7&-8);return t&&t.byteLength>=4?s3(t)?new Pg(new l3(yield e.read())):new Eg(new Nv(e)):new Eg(new Nv(function(){return Kc(this,arguments,function*(){})}()))})}function $ht(e){return sr(this,void 0,void 0,function*(){let{size:t}=yield e.stat(),r=new hm(e,t);return t>=GW&&s3(yield r.readAt(0,Fv+7&-8))?new o3(new CO(r)):new Eg(new Nv(r))})}var ns=class e extends Mr{static assemble(...t){let r=s=>s.flatMap(n=>Array.isArray(n)?r(n):n instanceof ks?n.data.children:n.data),i=new e;return i.visitMany(r(t)),i}constructor(){super(),this._byteLength=0,this._nodes=[],this._buffers=[],this._bufferRegions=[]}visit(t){if(t instanceof wr)return this.visitMany(t.data),this;let{type:r}=t;if(!Ne.isDictionary(r)){let{length:i}=t;if(i>2147483647)throw new RangeError(\"Cannot write arrays larger than 2^31 - 1 in length\");if(Ne.isUnion(r))this.nodes.push(new $u(i,0));else{let{nullCount:s}=t;Ne.isNull(r)||of.call(this,s<=0?new Uint8Array(0):Ag(t.offset,i,t.nullBitmap)),this.nodes.push(new $u(i,s))}}return super.visit(t)}visitNull(t){return this}visitDictionary(t){return this.visit(t.clone(t.type.indices))}get nodes(){return this._nodes}get buffers(){return this._buffers}get byteLength(){return this._byteLength}get bufferRegions(){return this._bufferRegions}};function of(e){let t=e.byteLength+7&-8;return this.buffers.push(e),this.bufferRegions.push(new dc(this._byteLength,t)),this._byteLength+=t,this}function Xht(e){var t;let{type:r,length:i,typeIds:s,valueOffsets:n}=e;if(of.call(this,s),r.mode===Mn.Sparse)return kO.call(this,e);if(r.mode===Mn.Dense){if(e.offset<=0)return of.call(this,n),kO.call(this,e);{let o=new Int32Array(i),c=Object.create(null),f=Object.create(null);for(let _,w,C=-1;++C{let C=r.typeIds[w],R=c[C],N=f[C];return _.slice(R,Math.min(i,N))}))}}return this}function Kht(e){let t;return e.nullCount>=e.length?of.call(this,new Uint8Array(0)):(t=e.values)instanceof Uint8Array?of.call(this,Ag(e.offset,e.length,t)):of.call(this,mg(e.values))}function xp(e){return of.call(this,e.values.subarray(0,e.length*e.stride))}function c3(e){let{length:t,values:r,valueOffsets:i}=e,s=ms(i[0]),n=ms(i[t]),o=Math.min(n-s,r.byteLength-s);return of.call(this,_P(-s,t+1,i)),of.call(this,r.subarray(s,s+o)),this}function RO(e){let{length:t,valueOffsets:r}=e;if(r){let{[0]:i,[t]:s}=r;return of.call(this,_P(-i,t+1,r)),this.visit(e.children[0].slice(i,s-i))}return this.visit(e.children[0])}function kO(e){return this.visitMany(e.type.children.map((t,r)=>e.children[r]).filter(Boolean))[0]}ns.prototype.visitBool=Kht;ns.prototype.visitInt=xp;ns.prototype.visitFloat=xp;ns.prototype.visitUtf8=c3;ns.prototype.visitLargeUtf8=c3;ns.prototype.visitBinary=c3;ns.prototype.visitLargeBinary=c3;ns.prototype.visitFixedSizeBinary=xp;ns.prototype.visitDate=xp;ns.prototype.visitTimestamp=xp;ns.prototype.visitTime=xp;ns.prototype.visitDecimal=xp;ns.prototype.visitList=RO;ns.prototype.visitStruct=kO;ns.prototype.visitUnion=Xht;ns.prototype.visitInterval=xp;ns.prototype.visitDuration=xp;ns.prototype.visitFixedSizeList=RO;ns.prototype.visitMap=RO;var Ig=class extends yg{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}constructor(t){super(),this._position=0,this._started=!1,this._sink=new nd,this._schema=null,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,Pl(t)||(t={autoDestroy:!0,writeLegacyIpcFormat:!1}),this._autoDestroy=typeof t.autoDestroy==\"boolean\"?t.autoDestroy:!0,this._writeLegacyIpcFormat=typeof t.writeLegacyIpcFormat==\"boolean\"?t.writeLegacyIpcFormat:!1}toString(t=!1){return this._sink.toString(t)}toUint8Array(t=!1){return this._sink.toUint8Array(t)}writeAll(t){return Jc(t)?t.then(r=>this.writeAll(r)):zu(t)?OO(this,t):DO(this,t)}get closed(){return this._sink.closed}[Symbol.asyncIterator](){return this._sink[Symbol.asyncIterator]()}toDOMStream(t){return this._sink.toDOMStream(t)}toNodeStream(t){return this._sink.toNodeStream(t)}close(){return this.reset()._sink.close()}abort(t){return this.reset()._sink.abort(t)}finish(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}reset(t=this._sink,r=null){return t===this._sink||t instanceof nd?this._sink=t:(this._sink=new nd,t&&s9(t)?this.toDOMStream({type:\"bytes\"}).pipeTo(t):t&&o9(t)&&this.toNodeStream({objectMode:!1}).pipe(t)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,(!r||!Tg(r,this._schema))&&(r==null?(this._position=0,this._schema=null):(this._started=!0,this._schema=r,this._writeSchema(r))),this}write(t){let r=null;if(this._sink){if(t==null)return this.finish()&&void 0;if(t instanceof ba&&!(r=t.schema))return this.finish()&&void 0;if(t instanceof ks&&!(r=t.schema))return this.finish()&&void 0}else throw new Error(\"RecordBatchWriter is closed\");if(r&&!Tg(r,this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,r)}t instanceof ks?t instanceof Mg||this._writeRecordBatch(t):t instanceof ba?this.writeAll(t.batches):Yh(t)&&this.writeAll(t)}_writeMessage(t,r=8){let i=r-1,s=Ac.encode(t),n=s.byteLength,o=this._writeLegacyIpcFormat?4:8,c=n+o+i&~i,f=c-n-o;return t.headerType===bi.RecordBatch?this._recordBatchBlocks.push(new mp(c,t.bodyLength,this._position)):t.headerType===bi.DictionaryBatch&&this._dictionaryBlocks.push(new mp(c,t.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(c-o)),n>0&&this._write(s),this._writePadding(f)}_write(t){if(this._started){let r=Rr(t);r&&r.byteLength>0&&(this._sink.write(r),this._position+=r.byteLength)}return this}_writeSchema(t){return this._writeMessage(Ac.from(t))}_writeFooter(t){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}_writeMagic(){return this._write(Bv)}_writePadding(t){return t>0?this._write(new Uint8Array(t)):this}_writeRecordBatch(t){let{byteLength:r,nodes:i,bufferRegions:s,buffers:n}=ns.assemble(t),o=new wa(t.numRows,i,s),c=Ac.from(o,r);return this._writeDictionaries(t)._writeMessage(c)._writeBodyBuffers(n)}_writeDictionaryBatch(t,r,i=!1){this._dictionaryDeltaOffsets.set(r,t.length+(this._dictionaryDeltaOffsets.get(r)||0));let{byteLength:s,nodes:n,bufferRegions:o,buffers:c}=ns.assemble(new wr([t])),f=new wa(t.length,n,o),_=new pc(f,r,i),w=Ac.from(_,s);return this._writeMessage(w)._writeBodyBuffers(c)}_writeBodyBuffers(t){let r,i,s;for(let n=-1,o=t.length;++n0&&(this._write(r),(s=(i+7&-8)-i)>0&&this._writePadding(s));return this}_writeDictionaries(t){for(let[r,i]of t.dictionaries){let s=this._dictionaryDeltaOffsets.get(r)||0;if(s===0||(i=i?.slice(s)).length>0)for(let n of i.data)this._writeDictionaryBatch(n,r,s>0),s+=n.length}return this}},v2=class e extends Ig{static writeAll(t,r){let i=new e(r);return Jc(t)?t.then(s=>i.writeAll(s)):zu(t)?OO(i,t):DO(i,t)}},x2=class e extends Ig{static writeAll(t){let r=new e;return Jc(t)?t.then(i=>r.writeAll(i)):zu(t)?OO(r,t):DO(r,t)}constructor(){super(),this._autoDestroy=!0}_writeSchema(t){return this._writeMagic()._writePadding(2)}_writeFooter(t){let r=Ap.encode(new Ap(t,en.V5,this._recordBatchBlocks,this._dictionaryBlocks));return super._writeFooter(t)._write(r)._write(Int32Array.of(r.byteLength))._writeMagic()}};function DO(e,t){let r=t;t instanceof ba&&(r=t.batches,e.reset(void 0,t.schema));for(let i of r)e.write(i);return e.finish()}function OO(e,t){var r,i,s,n,o,c,f;return sr(this,void 0,void 0,function*(){try{for(r=!0,i=Zh(t);s=yield i.next(),n=s.done,!n;r=!0){f=s.value,r=!1;let _=f;e.write(_)}}catch(_){o={error:_}}finally{try{!r&&!n&&(c=i.return)&&(yield c.call(i))}finally{if(o)throw o.error}}return e.finish()})}function ZW(e,t){if(zu(e))return tft(e,t);if(Yh(e))return Jht(e,t);throw new Error(\"toDOMStream() must be called with an Iterable or AsyncIterable\")}function Jht(e,t){let r=null,i=t?.type===\"bytes\"||!1,s=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){n(o,r||(r=e[Symbol.iterator]()))},pull(o){r?n(o,r):o.close()},cancel(){(r?.return&&r.return()||!0)&&(r=null)}}),Object.assign({highWaterMark:i?s:void 0},t));function n(o,c){let f,_=null,w=o.desiredSize||null;for(;!(_=c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(f=Rr(_.value))&&(w!=null&&i&&(w=w-f.byteLength+1),_.value=f),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()}}function tft(e,t){let r=null,i=t?.type===\"bytes\"||!1,s=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){return sr(this,void 0,void 0,function*(){yield n(o,r||(r=e[Symbol.asyncIterator]()))})},pull(o){return sr(this,void 0,void 0,function*(){r?yield n(o,r):o.close()})},cancel(){return sr(this,void 0,void 0,function*(){(r?.return&&(yield r.return())||!0)&&(r=null)})}}),Object.assign({highWaterMark:i?s:void 0},t));function n(o,c){return sr(this,void 0,void 0,function*(){let f,_=null,w=o.desiredSize||null;for(;!(_=yield c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(f=Rr(_.value))&&(w!=null&&i&&(w=w-f.byteLength+1),_.value=f),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()})}}function $W(e){return new BO(e)}var BO=class{constructor(t){this._numChunks=0,this._finished=!1,this._bufferedSize=0;let{[\"readableStrategy\"]:r,[\"writableStrategy\"]:i,[\"queueingStrategy\"]:s=\"count\"}=t,n=i9(t,[\"readableStrategy\",\"writableStrategy\",\"queueingStrategy\"]);this._controller=null,this._builder=bg(n),this._getSize=s!==\"bytes\"?YW:QW;let{[\"highWaterMark\"]:o=s===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},r),{[\"highWaterMark\"]:c=s===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},i);this.readable=new ReadableStream({cancel:()=>{this._builder.clear()},pull:f=>{this._maybeFlush(this._builder,this._controller=f)},start:f=>{this._maybeFlush(this._builder,this._controller=f)}},{highWaterMark:o,size:s!==\"bytes\"?YW:QW}),this.writable=new WritableStream({abort:()=>{this._builder.clear()},write:()=>{this._maybeFlush(this._builder,this._controller)},close:()=>{this._maybeFlush(this._builder.finish(),this._controller)}},{highWaterMark:c,size:f=>this._writeValueAndReturnChunkSize(f)})}_writeValueAndReturnChunkSize(t){let r=this._bufferedSize;return this._bufferedSize=this._getSize(this._builder.append(t)),this._bufferedSize-r}_maybeFlush(t,r){r!=null&&(this._bufferedSize>=r.desiredSize&&++this._numChunks&&this._enqueue(r,t.toVector()),t.finished&&((t.length>0||this._numChunks===0)&&++this._numChunks&&this._enqueue(r,t.toVector()),!this._finished&&(this._finished=!0)&&this._enqueue(r,null)))}_enqueue(t,r){this._bufferedSize=0,this._controller=null,r==null?t.close():t.enqueue(r)}},YW=e=>{var t;return(t=e?.length)!==null&&t!==void 0?t:0},QW=e=>{var t;return(t=e?.byteLength)!==null&&t!==void 0?t:0};function u3(e,t){let r=new nd,i=null,s=new ReadableStream({cancel(){return sr(this,void 0,void 0,function*(){yield r.close()})},start(c){return sr(this,void 0,void 0,function*(){yield o(c,i||(i=yield n()))})},pull(c){return sr(this,void 0,void 0,function*(){i?yield o(c,i):c.close()})}});return{writable:new WritableStream(r,Object.assign({highWaterMark:Math.pow(2,14)},e)),readable:s};function n(){return sr(this,void 0,void 0,function*(){return yield(yield ou.from(r)).open(t)})}function o(c,f){return sr(this,void 0,void 0,function*(){let _=c.desiredSize,w=null;for(;!(w=yield f.next()).done;)if(c.enqueue(w.value),_!=null&&--_<=0)return;c.close()})}}function h3(e,t){let r=new this(e),i=new Qu(r),s=new ReadableStream({cancel(){return sr(this,void 0,void 0,function*(){yield i.cancel()})},pull(o){return sr(this,void 0,void 0,function*(){yield n(o)})},start(o){return sr(this,void 0,void 0,function*(){yield n(o)})}},Object.assign({highWaterMark:Math.pow(2,14)},t));return{writable:new WritableStream(r,e),readable:s};function n(o){return sr(this,void 0,void 0,function*(){let c=null,f=o.desiredSize;for(;c=yield i.read(f||null);)if(o.enqueue(c),f!=null&&(f-=c.byteLength)<=0)return;o.close()})}}function b2(e){let t=ou.from(e);return Jc(t)?t.then(r=>b2(r)):t.isAsync()?t.readAll().then(r=>new ba(r)):new ba(t.readAll())}var bft=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ZD),yO),uO),YD),jD),cO),HD),{compareSchemas:Tg,compareFields:wW,compareTypes:SW});va.toDOMStream=ZW;Qn.throughDOM=$W;ou.throughDOM=u3;Pg.throughDOM=u3;vp.throughDOM=u3;Ig.throughDOM=h3;x2.throughDOM=h3;v2.throughDOM=h3;var wft=\"0.5.0\",Sft=`https://cdn.jsdelivr.net/npm/parquet-wasm@${wft}/esm/arrow2_bg.wasm`,FO=!1;async function XW(){FO||(await e9(Sft),FO=!0)}function Tft(e){if(!FO)throw new Error(\"wasm not ready\");console.time(\"readParquet\");let t=KG(new Uint8Array(e.buffer)).intoIPCStream(),r=b2(t);return console.timeEnd(\"readParquet\"),r}function w2(e){let t=[];for(let r of e){let i=Tft(r);i.batches.length!==1&&console.warn(\"Expected one batch\"),t.push(...i.batches)}return new ba(t)}var KW=ki(Ji(),1);function zO(e){return e instanceof Array&&e?.[0]instanceof DataView?e?.[0].byteLength>0?w2(e).getChildAt(0):null:e}var Cg=class{model;callbacks;updateStateCallback;constructor(t,r){this.model=t,this.model.on(\"change\",r),this.updateStateCallback=r,this.callbacks=new Map,this.callbacks.set(\"change\",r)}async loadSubModels(){}initRegularAttribute(t,r){this[r]=this.model.get(t),this.model.off(`change:${t}`);let i=()=>{this[r]=this.model.get(t)};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}initVectorizedAccessor(t,r){this[r]=zO(this.model.get(t)),this.model.off(`change:${t}`);let i=()=>{this[r]=zO(this.model.get(t))};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}finalize(){for(let[t,r]of Object.entries(this.callbacks))this.model.off(t,r)}};async function d3(e,t){let r=[];for(let i of t)r.push(e.get_model(i.slice(10)));return await Promise.all(r)}function ce(e){return e!=null}var Mft=`\n uniform bool brushing_enabled;\n uniform int brushing_target;\n uniform vec2 brushing_mousePos;\n uniform float brushing_radius;\n\n #ifdef NON_INSTANCED_MODEL\n attribute vec2 brushingTargets;\n #else\n attribute vec2 instanceBrushingTargets;\n #endif\n\n varying float brushing_isVisible;\n\n bool brushing_isPointInRange(vec2 position) {\n if (!brushing_enabled) {\n return true;\n }\n vec2 source_commonspace = project_position(position);\n vec2 target_commonspace = project_position(brushing_mousePos);\n float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);\n\n return distance <= brushing_radius;\n }\n\n bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n }\n\n void brushing_setVisible(bool visible) {\n brushing_isVisible = float(visible);\n }\n`,Eft=`\n uniform bool brushing_enabled;\n varying float brushing_isVisible;\n`,Pft={source:0,target:1,custom:2,source_target:3},Ift={\"vs:DECKGL_FILTER_GL_POSITION\":`\n vec2 brushingTarget;\n vec2 brushingSource;\n if (brushing_target == 3) {\n brushingTarget = geometry.worldPositionAlt.xy;\n brushingSource = geometry.worldPosition.xy;\n } else if (brushing_target == 0) {\n brushingTarget = geometry.worldPosition.xy;\n } else if (brushing_target == 1) {\n brushingTarget = geometry.worldPositionAlt.xy;\n } else {\n #ifdef NON_INSTANCED_MODEL\n brushingTarget = brushingTargets;\n #else\n brushingTarget = instanceBrushingTargets;\n #endif\n }\n bool visible;\n if (brushing_target == 3) {\n visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n } else {\n visible = brushing_isPointInRange(brushingTarget);\n }\n brushing_setVisible(visible);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (brushing_enabled && brushing_isVisible < 0.5) {\n discard;\n }\n `},JW={name:\"brushing\",dependencies:[Uh],vs:Mft,fs:Eft,inject:Ift,getUniforms:e=>{if(!e||!(\"viewport\"in e))return{};let{brushingEnabled:t=!0,brushingRadius:r=1e4,brushingTarget:i=\"source\",mousePosition:s,viewport:n}=e;return{brushing_enabled:!!(t&&s&&n.containsPixel(s)),brushing_radius:r,brushing_target:Pft[i]||0,brushing_mousePos:s?n.unproject([s.x-n.x,s.y-n.y]):[0,0]}}};var Cft={getBrushingTarget:{type:\"accessor\",value:[0,0]},brushingTarget:\"source\",brushingEnabled:!0,brushingRadius:1e4},mm=class extends Bu{getShaders(){return{modules:[JW]}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({brushingTargets:{size:2,accessor:\"getBrushingTarget\",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=()=>{var s;(s=this.getCurrentLayer())===null||s===void 0||s.setNeedsRedraw()},t.deck&&t.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}finalizeState(t,r){t.deck&&t.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}};G(mm,\"defaultProps\",Cft);G(mm,\"extensionName\",\"BrushingExtension\");var tH=`\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n`,eH=`\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n`;function rH(e){if(!e||!(\"extensions\"in e))return{};let{filterRange:t=[-1,1],filterEnabled:r=!0,filterTransformSize:i=!0,filterTransformColor:s=!0}=e,n=e.filterSoftRange||t;return{...Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:n[0],filter_softMax:n[1],filter_max:t[1]}:{filter_min:t.map(o=>o[0]),filter_softMin:n.map(o=>o[0]),filter_softMax:n.map(o=>o[1]),filter_max:t.map(o=>o[1])},filter_enabled:r,filter_useSoftMargin:!!e.filterSoftRange,filter_transformSize:r&&i,filter_transformColor:r&&s}}function Lft(e){if(!e||!(\"extensions\"in e))return{};let t=rH(e);if(Number.isFinite(t.filter_min)){let r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;let i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{let r=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((s,n)=>s-r[n]),t.filter_softMin=t.filter_softMin.map((s,n)=>s-r[n]),t.filter_min64High=r;let i=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((s,n)=>s-i[n]),t.filter_softMax=t.filter_softMax.map((s,n)=>s-i[n]),t.filter_max64High=i}return t}var iH={\"vs:#main-start\":`\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n `,\"vs:#main-end\":`\n if (dataFilter_value == 0.0) {\n gl_Position = vec4(0.);\n }\n `,\"vs:DECKGL_FILTER_SIZE\":`\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n `},nH={name:\"data-filter\",vs:tH,fs:eH,inject:iH,getUniforms:rH},sH={name:\"data-filter-fp64\",vs:tH,fs:eH,inject:iH,getUniforms:Lft};var kft=`#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n`,Rft=`#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n`;function oH(e){return!!(e.getExtension(\"EXT_float_blend\")&&(e.getExtension(\"EXT_color_buffer_float\")||e.getExtension(\"WEBGL_color_buffer_float\")))}function aH(e,t){return t?new yi(e,{width:1,height:1,attachments:{36064:new pi(e,{format:hr(e)?34836:6408,type:5126,mipmaps:!1})}}):new yi(e,{width:256,height:64,depth:!1})}function lH(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new Sn(e,{id:\"data-filter-aggregation-model\",vertexCount:1,isInstanced:!1,drawMode:0,vs:kft,fs:Rft,...t})}var cH={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var Oft={getFilterValue:{type:\"accessor\",value:0},onFilteredItemsChange:{type:\"function\",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},uH={1:\"float\",2:\"vec2\",3:\"vec3\",4:\"vec4\"},gm=class extends Bu{constructor({filterSize:t=1,fp64:r=!1,countItems:i=!1}={}){if(!uH[t])throw new Error(\"filterSize out of range\");super({filterSize:t,fp64:r,countItems:i})}getShaders(t){let{filterSize:r,fp64:i}=t.opts;return{modules:[i?sH:nH],defines:{DATAFILTER_TYPE:uH[r],DATAFILTER_DOUBLE:!!i}}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({filterValues:{size:r.opts.filterSize,type:r.opts.fp64?5130:5126,accessor:\"getFilterValue\",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});let{gl:s}=this.context;if(i&&r.opts.countItems){let n=oH(s);i.add({filterIndices:{size:n?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:(f,{index:_})=>{let w=f&&f.__source?f.__source.index:_;return n?(w+1)%255:[(w+1)%255,Math.floor(w/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let o=aH(s,n),c=lH(s,r.getShaders.call(this,r),n);this.setState({filterFBO:o,filterModel:c})}}updateState({props:t,oldProps:r}){if(this.state.filterModel){let s=this.getAttributeManager().attributes.filterValues.needsUpdate()||t.filterEnabled!==r.filterEnabled||t.filterRange!==r.filterRange||t.filterSoftRange!==r.filterSoftRange;s&&this.setState({filterNeedsUpdate:s})}}draw(t,r){let{filterFBO:i,filterModel:s,filterNeedsUpdate:n}=this.state,{onFilteredItemsChange:o}=this.props;if(n&&o&&s){let{attributes:{filterValues:c,filterIndices:f}}=this.getAttributeManager();s.setVertexCount(this.getNumInstances());let{gl:_}=this.context;Gf(_,{framebuffer:i,color:[0,0,0,0]}),s.updateModuleSettings(t.moduleParameters).setAttributes({...c.getShaderAttributes(),...f&&f.getShaderAttributes()}).draw({framebuffer:i,parameters:{...cH,viewport:[0,0,i.width,i.height]}});let w=Rh(i),C=0;for(let R=0;R 1000\n }\n\n if (collision_enabled) {\n vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0));\n vec2 collision_texCoords = collision_getCoords(collision_common_position);\n collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0);\n if (collision_fade < 0.0001) {\n // Position outside clip space bounds to discard\n position = vec4(0.0, 0.0, 2.0, 1.0);\n }\n }\n `,\"vs:DECKGL_FILTER_COLOR\":`\n color.a *= collision_fade;\n `},zft=(e,t)=>{if(!e||!(\"dummyCollisionMap\"in e))return{};let{collisionFBO:r,drawToCollisionMap:i,dummyCollisionMap:s}=e;return{collision_sort:!!i,collision_texture:!i&&r?r:s}},hH={name:\"collision\",dependencies:[Uh],vs:Bft,inject:Fft,getUniforms:zft};var S2=class extends rc{renderCollisionMap(t,r){let i=this.gl,s=1;return bn(i,{scissorTest:!0,scissor:[s,s,t.width-2*s,t.height-2*s],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({...r,target:t,pass:\"collision\"}))}getModuleParameters(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}}};var T2=class extends rc{constructor(t,r){super(t,r),G(this,\"maskMap\",void 0),G(this,\"fbo\",void 0);let{mapSize:i=2048}=r;this.maskMap=new pi(t,{width:i,height:i,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.fbo=new yi(t,{id:\"maskmap\",width:i,height:i,attachments:{36064:this.maskMap}})}render(t){let r=this.gl,i=[!1,!1,!1,!1];return i[t.channel]=!0,bn(r,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:i,depthTest:!1},()=>super.render({...t,target:this.fbo,pass:\"mask\"}))}shouldDrawLayer(t){return t.props.operation.includes(\"mask\")}delete(){this.fbo.delete(),this.maskMap.delete()}};function fH(e,t){let r=[1/0,1/0,-1/0,-1/0];for(let i of e){let s=i.getBounds();if(s){let n=i.projectPosition(s[0],{viewport:t,autoOffset:!1}),o=i.projectPosition(s[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],n[0]),r[1]=Math.min(r[1],n[1]),r[2]=Math.max(r[2],o[0]),r[3]=Math.max(r[3],o[1])}}return Number.isFinite(r[0])?r:null}var Nft=2048;function dH(e){let{bounds:t,viewport:r,border:i=0}=e,{isGeospatial:s}=r;if(t[2]<=t[0]||t[3]<=t[1])return null;let n=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),{width:o,height:c,zoom:f}=e;if(f===void 0){o=o-i*2,c=c-i*2;let _=Math.min(o/(t[2]-t[0]),c/(t[3]-t[1]));f=Math.min(Math.log2(_),20)}else if(!o||!c){let _=2**f;o=Math.round(Math.abs(t[2]-t[0])*_),c=Math.round(Math.abs(t[3]-t[1])*_);let w=Nft-i*2;if(o>w||c>w){let C=w/Math.max(o,c);o=Math.round(o*C),c=Math.round(c*C),f+=Math.log2(C)}}return s?new nc({id:r.id,x:i,y:i,width:o,height:c,longitude:n[0],latitude:n[1],zoom:f,orthographic:!0}):new Zy({id:r.id,x:i,y:i,width:o,height:c,target:n,zoom:f,flipY:!1})}function Uft(e,t){let r;if(t&&t.length===2){let[n,o]=t,c=e.getBounds({z:n}),f=e.getBounds({z:o});r=[Math.min(c[0],f[0]),Math.min(c[1],f[1]),Math.max(c[2],f[2]),Math.max(c[3],f[3])]}else r=e.getBounds();let i=e.projectPosition(r.slice(0,2)),s=e.projectPosition(r.slice(2,4));return[i[0],i[1],s[0],s[1]]}function pH(e,t,r){if(!e)return[0,0,1,1];let i=Uft(t,r),s=Vft(i);return e[2]-e[0]<=s[2]-s[0]&&e[3]-e[1]<=s[3]-s[1]?e:[Math.max(e[0],s[0]),Math.max(e[1],s[1]),Math.min(e[2],s[2]),Math.min(e[3],s[3])]}function Vft(e){let t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,s=(e[1]+e[3])/2;return[i-t,s-r,i+t,s+r]}var M2=class{constructor(){G(this,\"id\",\"mask-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",0),G(this,\"dummyMaskMap\",void 0),G(this,\"channels\",[]),G(this,\"masks\",null),G(this,\"maskPass\",void 0),G(this,\"maskMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{layers:r,layerFilter:i,viewports:s,onViewportActive:n,views:o,isPicking:c}){let f=!1;if(this.dummyMaskMap||(this.dummyMaskMap=new pi(t,{width:1,height:1})),c)return{didRender:f};let _=r.filter(N=>N.props.visible&&N.props.operation.includes(\"mask\"));if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:f};this.masks={},this.maskPass||(this.maskPass=new T2(t,{id:\"default-mask\"}),this.maskMap=this.maskPass.maskMap);let w=this._sortMaskChannels(_),C=s[0],R=!this.lastViewport||!this.lastViewport.equals(C);if(C.resolution!==void 0)return nr.warn(\"MaskExtension is not supported in GlobeView\")(),{didRender:f};for(let N in w){let j=this._renderChannel(w[N],{layerFilter:i,onViewportActive:n,views:o,viewport:C,viewportChanged:R});f||(f=j)}return{didRender:f}}_renderChannel(t,{layerFilter:r,onViewportActive:i,views:s,viewport:n,viewportChanged:o}){let c=!1,f=this.channels[t.index];if(!f)return c;let _=t===f||t.layers.length!==f.layers.length||t.layers.some((w,C)=>w!==f.layers[C]||w.props.transitions)||t.layerBounds.some((w,C)=>w!==f.layerBounds[C]);if(t.bounds=f.bounds,t.maskBounds=f.maskBounds,this.channels[t.index]=t,_||o){this.lastViewport=n;let w=fH(t.layers,n);if(t.bounds=w&&pH(w,n),_||!To(t.bounds,f.bounds)){let{maskPass:C,maskMap:R}=this,N=w&&dH({bounds:t.bounds,viewport:n,width:R.width,height:R.height,border:1});t.maskBounds=N?N.getBounds():[0,0,1,1],C.render({pass:\"mask\",channel:t.index,layers:t.layers,layerFilter:r,viewports:N?[N]:[],onViewportActive:i,views:s,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},c}_sortMaskChannels(t){let r={},i=0;for(let s of t){let{id:n}=s.root,o=r[n];if(!o){if(++i>4){nr.warn(\"Too many mask layers. The max supported is 4\")();continue}o={id:n,index:this.channels.findIndex(c=>c?.id===n),layers:[],layerBounds:[],coordinateOrigin:s.root.props.coordinateOrigin,coordinateSystem:s.root.props.coordinateSystem},r[n]=o}o.layers.push(s),o.layerBounds.push(s.getBounds())}for(let s=0;s<4;s++){let n=this.channels[s];(!n||!(n.id in r))&&(this.channels[s]=null)}for(let s in r){let n=r[s];n.index<0&&(n.index=this.channels.findIndex(o=>!o),this.channels[n.index]=n)}return r}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}};var NO=2,E2=class{constructor(){G(this,\"id\",\"collision-filter-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",1),G(this,\"channels\",{}),G(this,\"collisionFilterPass\",void 0),G(this,\"collisionFBOs\",{}),G(this,\"dummyCollisionMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{effects:r,layers:i,layerFilter:s,viewports:n,onViewportActive:o,views:c,isPicking:f,preRenderStats:_={}}){var w;if(this.dummyCollisionMap||(this.dummyCollisionMap=new pi(t,{width:1,height:1})),f)return;let C=i.filter(({props:{visible:$,collisionEnabled:K}})=>$&&K);if(C.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new S2(t,{id:\"default-collision-filter\"}));let R=r?.filter($=>$.constructor===M2),N=(w=_[\"mask-effect\"])===null||w===void 0?void 0:w.didRender,j=this._groupByCollisionGroup(t,C),Y=n[0],rt=!this.lastViewport||!this.lastViewport.equals(Y)||N;for(let $ in j){let K=this.collisionFBOs[$],tt=j[$];K.resize({width:t.canvas.width/NO,height:t.canvas.height/NO}),this._render(tt,{effects:R,layerFilter:s,onViewportActive:o,views:c,viewport:Y,viewportChanged:rt})}}_render(t,{effects:r,layerFilter:i,onViewportActive:s,views:n,viewport:o,viewportChanged:c}){let{collisionGroup:f}=t,_=this.channels[f];if(!_)return;let w=c||t===_||!ao(_.layers,t.layers,1)||t.layerBounds.some((C,R)=>!To(C,_.layerBounds[R]))||t.allLayersLoaded!==_.allLayersLoaded||t.layers.some(C=>C.props.transitions);if(this.channels[f]=t,w){this.lastViewport=o;let C=this.collisionFBOs[f];this.collisionFilterPass.renderCollisionMap(C,{pass:\"collision-filter\",isPicking:!0,layers:t.layers,effects:r,layerFilter:i,viewports:o?[o]:[],onViewportActive:s,views:n,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:Sl(C.gl)/NO}})}}_groupByCollisionGroup(t,r){let i={};for(let s of r){let{collisionGroup:n}=s.props,o=i[n];o||(o={collisionGroup:n,layers:[],layerBounds:[],allLayersLoaded:!0},i[n]=o),o.layers.push(s),o.layerBounds.push(s.getBounds()),s.isLoaded||(o.allLayersLoaded=!1)}for(let s of Object.keys(i))this.collisionFBOs[s]||this.createFBO(t,s),this.channels[s]||(this.channels[s]=i[s]);for(let s of Object.keys(this.collisionFBOs))i[s]||this.destroyFBO(s);return i}getModuleParameters(t){let{collisionGroup:r}=t.props,{collisionFBOs:i,dummyCollisionMap:s}=this;return{collisionFBO:i[r],dummyCollisionMap:s}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let t of Object.keys(this.collisionFBOs))this.destroyFBO(t);this.collisionFBOs={},this.lastViewport=void 0}createFBO(t,r){let{width:i,height:s}=t.canvas,n=new pi(t,{width:i,height:s,parameters:{10241:9728,10240:9728,10242:33071,10243:33071}}),o=new tl(t,{format:33189,width:i,height:s});this.collisionFBOs[r]=new yi(t,{id:\"Collision-\".concat(r),width:i,height:s,attachments:{36064:n,36096:o}})}destroyFBO(t){let r=this.collisionFBOs[t];for(let i of Object.values(r.attachments))i.delete();r.delete(),delete this.collisionFBOs[t]}};var jft={getCollisionPriority:{type:\"accessor\",value:0},collisionEnabled:!0,collisionGroup:{type:\"string\",value:\"default\"},collisionTestProps:{}},_m=class extends Bu{getShaders(){return{modules:[hH]}}draw({uniforms:t,context:r,moduleParameters:i}){let{collisionEnabled:s}=this.props,{collisionFBO:n,drawToCollisionMap:o}=i,c=s&&!!n;t.collision_enabled=c,o&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(t,r){var i;if(this.getAttributeManager()===null)return;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new E2),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:\"getCollisionPriority\",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}};G(_m,\"defaultProps\",jft);G(_m,\"extensionName\",\"CollisionFilterExtension\");var Uv=class extends Cg{static extensionType;constructor(t,r){super(t,r)}},P2=class extends Uv{static extensionType=\"brushing\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new mm,r.initRegularAttribute(\"brushing_enabled\",\"brushingEnabled\"),r.initRegularAttribute(\"brushing_target\",\"brushingTarget\"),r.initRegularAttribute(\"brushing_radius\",\"brushingRadius\"),r.initVectorizedAccessor(\"get_brushing_target\",\"getBrushingTarget\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"brushingEnabled\",\"brushingTarget\",\"brushingRadius\",\"getBrushingTarget\"]}},I2=class extends Uv{static extensionType=\"collision-filter\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new _m,r.initRegularAttribute(\"collision_enabled\",\"collisionEnabled\"),r.initRegularAttribute(\"collision_group\",\"collisionGroup\"),r.initRegularAttribute(\"collision_test_props\",\"collisionTestProps\"),r.initVectorizedAccessor(\"get_collision_priority\",\"getCollisionPriority\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"collisionEnabled\",\"collisionGroup\",\"collisionTestProps\",\"getCollisionPriority\"]}},p3=class extends Uv{static extensionType=\"data-filter\";extensionInstance;constructor(t,r,i){super(t,i);let s=this.model.get(\"filter_size\");this.extensionInstance=new gm({filterSize:s}),r.initRegularAttribute(\"filter_enabled\",\"filterEnabled\"),r.initRegularAttribute(\"filter_range\",\"filterRange\"),r.initRegularAttribute(\"filter_soft_range\",\"filterSoftRange\"),r.initRegularAttribute(\"filter_transform_size\",\"filterTransformSize\"),r.initRegularAttribute(\"filter_transform_color\",\"filterTransformColor\"),r.initVectorizedAccessor(\"get_filter_value\",\"getFilterValue\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"filterEnabled\",\"filterRange\",\"filterSoftRange\",\"filterTransformSize\",\"filterTransformColor\",\"getFilterValue\"]}};async function UO(e,t,r){let i=e.get(\"_extension_type\"),s;switch(i){case P2.extensionType:s=new P2(e,t,r);break;case I2.extensionType:s=new I2(e,t,r);break;case p3.extensionType:s=new p3(e,t,r);break;default:throw new Error(`no known model for extension type ${i}`)}return await s.loadSubModels(),s}var Lg=class extends Cg{pickable;visible;opacity;autoHighlight;extensions;extensionLayerPropertyNames=[];constructor(t,r){super(t,r),this.initRegularAttribute(\"pickable\",\"pickable\"),this.initRegularAttribute(\"visible\",\"visible\"),this.initRegularAttribute(\"opacity\",\"opacity\"),this.initRegularAttribute(\"auto_highlight\",\"autoHighlight\"),this.extensions=[]}async loadSubModels(){await this.initLayerExtensions()}extensionInstances(){return this.extensions.map(t=>t.extensionInstance)}extensionProps(){let t={};for(let r of this.extensionLayerPropertyNames)ce(this[r])&&(t[r]=this[r]);return t}onClick(t){t.index&&(this.model.set(\"selected_index\",t.index),this.model.save_changes())}baseLayerProps(){return{extensions:this.extensionInstances(),...this.extensionProps(),id:this.model.model_id,pickable:this.pickable,visible:this.visible,opacity:this.opacity,autoHighlight:this.autoHighlight,onClick:this.onClick.bind(this)}}async initLayerExtensions(){let t=async()=>{let r=this.model.get(\"extensions\");if(!r){this.extensions=[];return}let i=await d3(this.model.widget_manager,r),s=[];for(let n of i){let o=await UO(n,this,this.updateStateCallback);s.push(o)}this.extensions=s};await t(),this.model.off(\"change:extensions\"),this.model.on(\"change:extensions\",t),this.callbacks.set(\"change:extensions\",t)}};var AH=`#define SHADER_NAME arc-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec4 instanceSourceColors;\nattribute vec4 instanceTargetColors;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\nattribute float instanceHeights;\nattribute float instanceTilts;\n\nuniform bool greatCircle;\nuniform bool useShortestPath;\nuniform float numSegments;\nuniform float opacity;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform int widthUnits;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\n\n float deltaZ = targetZ - sourceZ;\n float dh = distance * instanceHeights;\n if (dh == 0.0) {\n return sourceZ + deltaZ * ratio;\n }\n float unitZ = deltaZ / dh;\n float p2 = unitZ * unitZ + 1.0;\n float dir = step(deltaZ, 0.0);\n float z0 = mix(sourceZ, targetZ, dir);\n float r = mix(ratio, 1.0 - ratio, dir);\n return sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nfloat getSegmentRatio(float index) {\n return smoothstep(0.0, 1.0, index / (numSegments - 1.0));\n}\n\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\n float distance = length(source.xy - target.xy);\n float z = paraboloid(distance, source.z, target.z, segmentRatio);\n\n float tiltAngle = radians(instanceTilts);\n vec2 tiltDirection = normalize(target.xy - source.xy);\n vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\n\n return vec3(\n mix(source.xy, target.xy, segmentRatio) + tilt,\n z * cos(tiltAngle)\n );\n}\nfloat getAngularDist (vec2 source, vec2 target) {\n vec2 sourceRadians = radians(source);\n vec2 targetRadians = radians(target);\n vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\n vec2 shd_sq = sin_half_delta * sin_half_delta;\n\n float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\n return 2.0 * asin(sqrt(a));\n}\n\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\n vec2 lngLat;\n if(abs(angularDist - PI) < 0.001) {\n lngLat = (1.0 - t) * source.xy + t * target.xy;\n } else {\n float a = sin((1.0 - t) * angularDist);\n float b = sin(t * angularDist);\n vec3 p = source3D.yxz * a + target3D.yxz * b;\n lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n }\n\n float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\n\n return vec3(lngLat, z);\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n float segmentIndex = positions.x;\n float segmentRatio = getSegmentRatio(segmentIndex);\n float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\n float nextSegmentRatio = getSegmentRatio(min(numSegments - 1.0, segmentIndex + 1.0));\n float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\n isValid = 1.0;\n\n uv = vec2(segmentRatio, positions.y);\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n\n vec4 curr;\n vec4 next;\n vec3 source;\n vec3 target;\n\n if ((greatCircle || project_uProjectionMode == PROJECTION_MODE_GLOBE) && project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n source = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\n target = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\n float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\n\n vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\n vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\n vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\n\n if (abs(currPos.x - prevPos.x) > 180.0) {\n indexDir = -1.0;\n isValid = 0.0;\n } else if (abs(currPos.x - nextPos.x) > 180.0) {\n indexDir = 1.0;\n isValid = 0.0;\n }\n nextPos = indexDir < 0.0 ? prevPos : nextPos;\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n\n if (isValid == 0.0) {\n nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\n float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\n currPos = mix(currPos, nextPos, t);\n segmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n }\n\n vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\n vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\n \n curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\n next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n \n } else {\n vec3 source_world = instanceSourcePositions;\n vec3 target_world = instanceTargetPositions;\n if (useShortestPath) {\n source_world.x = mod(source_world.x + 180., 360.0) - 180.;\n target_world.x = mod(target_world.x + 180., 360.0) - 180.;\n\n float deltaLng = target_world.x - source_world.x;\n if (deltaLng > 180.) target_world.x -= 360.;\n if (deltaLng < -180.) source_world.x -= 360.;\n }\n source = project_position(source_world, instanceSourcePositions64Low);\n target = project_position(target_world, instanceTargetPositions64Low);\n float antiMeridianX = 0.0;\n\n if (useShortestPath) {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n antiMeridianX = -(project_uCoordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n }\n float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\n\n if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\n isValid = 0.0;\n indexDir = sign(segmentRatio - thresholdRatio);\n segmentRatio = thresholdRatio;\n }\n }\n\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n vec3 currPos = interpolateFlat(source, target, segmentRatio);\n vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\n\n if (useShortestPath) {\n if (nextPos.x < antiMeridianX) {\n currPos.x += TILE_SIZE;\n nextPos.x += TILE_SIZE;\n }\n }\n\n curr = project_common_position_to_clipspace(vec4(currPos, 1.0));\n next = project_common_position_to_clipspace(vec4(nextPos, 1.0));\n geometry.position = vec4(currPos, 1.0);\n }\n float widthPixels = clamp(\n project_size_to_pixel(instanceWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels\n );\n vec3 offset = vec3(\n getExtrusionOffset((next.xy - curr.xy) * indexDir, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n DECKGL_FILTER_GL_POSITION(curr, geometry);\n gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n\n vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\n vColor = vec4(color.rgb, color.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var mH=`#define SHADER_NAME arc-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nvoid main(void) {\n if (isValid == 0.0) {\n discard;\n }\n\n gl_FragColor = vColor;\n geometry.uv = uv;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var A3=[0,0,0,255],Gft={getSourcePosition:{type:\"accessor\",value:e=>e.sourcePosition},getTargetPosition:{type:\"accessor\",value:e=>e.targetPosition},getSourceColor:{type:\"accessor\",value:A3},getTargetColor:{type:\"accessor\",value:A3},getWidth:{type:\"accessor\",value:1},getHeight:{type:\"accessor\",value:1},getTilt:{type:\"accessor\",value:0},greatCircle:!1,numSegments:{type:\"number\",value:50,min:1},widthUnits:\"pixels\",widthScale:{type:\"number\",value:1,min:0},widthMinPixels:{type:\"number\",value:0,min:0},widthMaxPixels:{type:\"number\",value:Number.MAX_SAFE_INTEGER,min:0}},bp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"instanceSourcePositions\",\"instanceTargetPositions\"])}getShaders(){return super.getShaders({vs:AH,fs:mH,modules:[oo,ta]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getSourcePosition\"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getTargetPosition\"},instanceSourceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getSourceColor\",defaultValue:A3},instanceTargetColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getTargetColor\",defaultValue:A3},instanceWidths:{size:1,transition:!0,accessor:\"getWidth\",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:\"getHeight\",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:\"getTilt\",defaultValue:0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t;if(s.extensionsChanged||s.propsChanged&&r.numSegments!==i.numSegments){var n;let{gl:o}=this.context;(n=this.state.model)===null||n===void 0||n.delete(),this.state.model=this._getModel(o),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{widthUnits:r,widthScale:i,widthMinPixels:s,widthMaxPixels:n,greatCircle:o,wrapLongitude:c}=this.props;this.state.model.setUniforms(t).setUniforms({greatCircle:o,widthUnits:Ko[r],widthScale:i,widthMinPixels:s,widthMaxPixels:n,useShortestPath:c}).draw()}_getModel(t){let{id:r,numSegments:i}=this.props,s=[];for(let o=0;o0&&j>0&&(c[C++]=w-n,c[C++]=w-n-1,c[C++]=w-1,c[C++]=w-n,c[C++]=w-1,c[C++]=w),w++}}return{vertexCount:o,positions:_,indices:c,texCoords:f}}function qft(e){let t=new Float64Array(12);for(let r=0;r 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n`;var Yft=`\nvec3 packUVsIntoRGB(vec2 uv) {\n // Extract the top 8 bits. We want values to be truncated down so we can add a fraction\n vec2 uv8bit = floor(uv * 256.);\n\n // Calculate the normalized remainders of u and v parts that do not fit into 8 bits\n // Scale and clamp to 0-1 range\n vec2 uvFraction = fract(uv * 256.);\n vec2 uvFraction4bit = floor(uvFraction * 16.);\n\n // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates\n float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.;\n\n return vec3(uv8bit, fractions) / 255.;\n}\n`,_H=`\n#define SHADER_NAME bitmap-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D bitmapTexture;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\n`.concat(Yft,`\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n vec4 bitmapColor = texture2D(bitmapTexture, uv);\n\n gl_FragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n\n if (picking_uActive && !picking_uAttribute) {\n // Since instance information is not used, we can use picking color for pixel index\n gl_FragColor.rgb = packUVsIntoRGB(uv);\n }\n}\n`);var Qft={image:{type:\"image\",value:null,async:!0},bounds:{type:\"array\",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:Yr.DEFAULT,desaturate:{type:\"number\",min:0,max:1,value:0},transparentColor:{type:\"color\",value:[0,0,0,0]},tintColor:{type:\"color\",value:[255,255,255]},textureParameters:{type:\"object\",ignore:!0}},wp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:gH,fs:_H,modules:[oo,ta]})}initializeState(){let t=this.getAttributeManager();t.remove([\"instancePickingColors\"]);let r=!0;t.add({indices:{size:1,isIndexed:!0,update:i=>i.value=this.state.mesh.indices,noAlloc:r},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:i=>i.value=this.state.mesh.positions,noAlloc:r},texCoords:{size:2,update:i=>i.value=this.state.mesh.texCoords,noAlloc:r}})}updateState({props:t,oldProps:r,changeFlags:i}){let s=this.getAttributeManager();if(i.extensionsChanged){var n;let{gl:o}=this.context;(n=this.state.model)===null||n===void 0||n.delete(),this.state.model=this._getModel(o),s.invalidateAll()}if(t.bounds!==r.bounds){let o=this.state.mesh,c=this._createMesh();this.state.model.setVertexCount(c.vertexCount);for(let f in c)o&&o[f]!==c[f]&&s.invalidate(f);this.setState({mesh:c,...this._getCoordinateUniforms()})}else t._imageCoordinateSystem!==r._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(t){let{image:r}=this.props,i=t.info;if(!i.color||!r)return i.bitmap=null,i;let{width:s,height:n}=r;i.index=0;let o=$ft(i.color),c=[Math.floor(o[0]*s),Math.floor(o[1]*n)];return i.bitmap={size:{width:s,height:n},uv:o,pixel:c},i}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(t){super._updateAutoHighlight({...t,color:this.encodePickingColor(0)})}_createMesh(){let{bounds:t}=this.props,r=t;return yH(t)&&(r=[[t[0],t[1]],[t[0],t[3]],[t[2],t[3]],[t[2],t[1]]]),VO(r,this.context.viewport.resolution)}_getModel(t){return t?new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw(t){let{uniforms:r,moduleParameters:i}=t,{model:s,coordinateConversion:n,bounds:o,disablePicking:c}=this.state,{image:f,desaturate:_,transparentColor:w,tintColor:C}=this.props;i.pickingActive&&c||f&&s&&s.setUniforms(r).setUniforms({bitmapTexture:f,desaturate:_,transparentColor:w.map(R=>R/255),tintColor:C.slice(0,3).map(R=>R/255),coordinateConversion:n,bounds:o}).draw()}_getCoordinateUniforms(){let{LNGLAT:t,CARTESIAN:r,DEFAULT:i}=Yr,{_imageCoordinateSystem:s}=this.props;if(s!==i){let{bounds:n}=this.props;if(!yH(n))throw new Error(\"_imageCoordinateSystem only supports rectangular bounds\");let o=this.context.viewport.resolution?t:r;if(s=s===t?t:r,s===t&&o===r)return{coordinateConversion:-1,bounds:n};if(s===r&&o===t){let c=El([n[0],n[1]]),f=El([n[2],n[3]]);return{coordinateConversion:1,bounds:[c[0],c[1],f[0],f[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}};G(wp,\"layerName\",\"BitmapLayer\");G(wp,\"defaultProps\",Qft);function $ft(e){let[t,r,i]=e,s=(i&240)/256,n=(i&15)/16;return[(t+n)/256,(r+s)/256]}function yH(e){return Number.isFinite(e[0])}var vH=`#define SHADER_NAME icon-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute vec4 instanceIconFrames;\nattribute float instanceColorModes;\nattribute vec2 instanceOffsets;\nattribute vec2 instancePixelOffset;\n\nuniform float sizeScale;\nuniform vec2 iconsTextureDim;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform bool billboard;\nuniform int sizeUnits;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = angle * PI / 180.0;\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n\n vec2 iconSize = instanceIconFrames.zw;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), \n sizeMinPixels, sizeMaxPixels\n );\n float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y;\n vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\n pixelOffset += instancePixelOffset;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); \n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n\n vTextureCoords = mix(\n instanceIconFrames.xy,\n instanceIconFrames.xy + iconSize,\n (positions.xy + 1.0) / 2.0\n ) / iconsTextureDim;\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n vColorMode = instanceColorModes;\n}\n`;var xH=`#define SHADER_NAME icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float alphaCutoff;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec4 texColor = texture2D(iconsTexture, vTextureCoords);\n vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\n float a = texColor.a * opacity * vColor.a;\n\n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color, a);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var Xft=1024,Kft=4,bH=()=>{},wH={10241:9987,10240:9729,10242:33071,10243:33071};function Jft(e){return Math.pow(2,Math.ceil(Math.log2(e)))}function tdt(e,t,r,i){let s=Math.min(r/t.width,i/t.height),n=Math.floor(t.width*s),o=Math.floor(t.height*s);return s===1?{data:t,width:n,height:o}:(e.canvas.height=o,e.canvas.width=n,e.clearRect(0,0,n,o),e.drawImage(t,0,0,t.width,t.height,0,0,n,o),{data:e.canvas,width:n,height:o})}function C2(e){return e&&(e.id||e.url)}function edt(e,t,r,i){let s=e.width,n=e.height,o=new pi(e.gl,{width:t,height:r,parameters:i});return rE(e,o,{targetY:0,width:s,height:n}),e.delete(),o}function SH(e,t,r){for(let i=0;io&&(SH(r,c,s),i=0,s=n+s+t,n=0,c=[]),c.push({icon:_,xOffset:i}),i=i+R+t,n=Math.max(n,C)}}return c.length>0&&SH(r,c,s),{mapping:r,rowHeight:n,xOffset:i,yOffset:s,canvasWidth:o,canvasHeight:Jft(n+s+t)}}function idt(e,t,r){if(!e||!t)return null;r=r||{};let i={},{iterable:s,objectInfo:n}=Xc(e);for(let o of s){n.index++;let c=t(o,n),f=C2(c);if(!c)throw new Error(\"Icon is missing.\");if(!c.url)throw new Error(\"Icon url is missing.\");!i[f]&&(!r[f]||c.url!==r[f].url)&&(i[f]={...c,source:o,sourceIndex:n.index})}return i}var L2=class{constructor(t,{onUpdate:r=bH,onError:i=bH}){G(this,\"gl\",void 0),G(this,\"onUpdate\",void 0),G(this,\"onError\",void 0),G(this,\"_loadOptions\",null),G(this,\"_texture\",null),G(this,\"_externalTexture\",null),G(this,\"_mapping\",{}),G(this,\"_textureParameters\",null),G(this,\"_pendingCount\",0),G(this,\"_autoPacking\",!1),G(this,\"_xOffset\",0),G(this,\"_yOffset\",0),G(this,\"_rowHeight\",0),G(this,\"_buffer\",Kft),G(this,\"_canvasWidth\",Xft),G(this,\"_canvasHeight\",0),G(this,\"_canvas\",null),this.gl=t,this.onUpdate=r,this.onError=i}finalize(){var t;(t=this._texture)===null||t===void 0||t.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(t){let r=this._autoPacking?C2(t):t;return this._mapping[r]||{}}setProps({loadOptions:t,autoPacking:r,iconAtlas:i,iconMapping:s,textureParameters:n}){if(t&&(this._loadOptions=t),r!==void 0&&(this._autoPacking=r),s&&(this._mapping=s),i){var o;(o=this._texture)===null||o===void 0||o.delete(),this._texture=null,this._externalTexture=i}n&&(this._textureParameters=n)}get isLoaded(){return this._pendingCount===0}packIcons(t,r){if(!this._autoPacking||typeof document>\"u\")return;let i=Object.values(idt(t,r,this._mapping)||{});if(i.length>0){let{mapping:s,xOffset:n,yOffset:o,rowHeight:c,canvasHeight:f}=rdt({icons:i,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=c,this._mapping=s,this._xOffset=n,this._yOffset=o,this._canvasHeight=f,this._texture||(this._texture=new pi(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||wH})),this._texture.height!==this._canvasHeight&&(this._texture=edt(this._texture,this._canvasWidth,this._canvasHeight,this._textureParameters||wH)),this.onUpdate(),this._canvas=this._canvas||document.createElement(\"canvas\"),this._loadIcons(i)}}_loadIcons(t){let r=this._canvas.getContext(\"2d\",{willReadFrequently:!0});for(let i of t)this._pendingCount++,NA(i.url,this._loadOptions).then(s=>{let n=C2(i),o=this._mapping[n],{x:c,y:f,width:_,height:w}=o,{data:C,width:R,height:N}=tdt(r,s,_,w);this._texture.setSubImageData({data:C,x:c+(_-R)/2,y:f+(w-N)/2,width:R,height:N}),o.width=R,o.height=N,this._texture.generateMipmap(),this.onUpdate()}).catch(s=>{this.onError({url:i.url,source:i.source,sourceIndex:i.sourceIndex,loadOptions:this._loadOptions,error:s})}).finally(()=>{this._pendingCount--})}};var TH=[0,0,0,255],ndt={iconAtlas:{type:\"image\",value:null,async:!0},iconMapping:{type:\"object\",value:{},async:!0},sizeScale:{type:\"number\",value:1,min:0},billboard:!0,sizeUnits:\"pixels\",sizeMinPixels:{type:\"number\",min:0,value:0},sizeMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:\"number\",value:.05,min:0,max:1},getPosition:{type:\"accessor\",value:e=>e.position},getIcon:{type:\"accessor\",value:e=>e.icon},getColor:{type:\"accessor\",value:TH},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},onIconError:{type:\"function\",value:null,optional:!0},textureParameters:{type:\"object\",ignore:!0}},Sp=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:vH,fs:xH,modules:[oo,ta]})}initializeState(){this.state={iconManager:new L2(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceOffsets:{size:2,accessor:\"getIcon\",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:\"getIcon\",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:\"getIcon\",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getColor\",defaultValue:TH},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instancePixelOffset:{size:2,transition:!0,accessor:\"getPixelOffset\"}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t,n=this.getAttributeManager(),{iconAtlas:o,iconMapping:c,data:f,getIcon:_,textureParameters:w}=r,{iconManager:C}=this.state,R=o||this.internalState.isAsyncPropLoading(\"iconAtlas\");if(C.setProps({loadOptions:r.loadOptions,autoPacking:!R,iconAtlas:o,iconMapping:R?c:null,textureParameters:w}),R?i.iconMapping!==r.iconMapping&&n.invalidate(\"getIcon\"):(s.dataChanged||s.updateTriggersChanged&&(s.updateTriggersChanged.all||s.updateTriggersChanged.getIcon))&&C.packIcons(f,_),s.extensionsChanged){var N;let{gl:j}=this.context;(N=this.state.model)===null||N===void 0||N.delete(),this.state.model=this._getModel(j),n.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(t){super.finalizeState(t),this.state.iconManager.finalize()}draw({uniforms:t}){let{sizeScale:r,sizeMinPixels:i,sizeMaxPixels:s,sizeUnits:n,billboard:o,alphaCutoff:c}=this.props,{iconManager:f}=this.state,_=f.getTexture();_&&this.state.model.setUniforms(t).setUniforms({iconsTexture:_,iconsTextureDim:[_.width,_.height],sizeUnits:Ko[n],sizeScale:r,sizeMinPixels:i,sizeMaxPixels:s,billboard:o,alphaCutoff:c}).draw()}_getModel(t){let r=[-1,-1,-1,1,1,1,1,-1];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(t){var r;let i=(r=this.getCurrentLayer())===null||r===void 0?void 0:r.props.onIconError;i?i(t):nr.error(t.error.message)()}getInstanceOffset(t){let{width:r,height:i,anchorX:s=r/2,anchorY:n=i/2}=this.state.iconManager.getIconMapping(t);return[r/2-s,i/2-n]}getInstanceColorMode(t){return this.state.iconManager.getIconMapping(t).mask?1:0}getInstanceIconFrame(t){let{x:r,y:i,width:s,height:n}=this.state.iconManager.getIconMapping(t);return[r,i,s,n]}};G(Sp,\"defaultProps\",ndt);G(Sp,\"layerName\",\"IconLayer\");var MH=`#define SHADER_NAME scatterplot-layer-vertex-shader\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceRadius;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform float radiusScale;\nuniform float radiusMinPixels;\nuniform float radiusMaxPixels;\nuniform float lineWidthScale;\nuniform float lineWidthMinPixels;\nuniform float lineWidthMaxPixels;\nuniform float stroked;\nuniform bool filled;\nuniform bool antialiasing;\nuniform bool billboard;\nuniform int radiusUnits;\nuniform int lineWidthUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n outerRadiusPixels = clamp(\n project_size_to_pixel(radiusScale * instanceRadius, radiusUnits),\n radiusMinPixels, radiusMaxPixels\n );\n float lineWidthPixels = clamp(\n project_size_to_pixel(lineWidthScale * instanceLineWidths, lineWidthUnits),\n lineWidthMinPixels, lineWidthMaxPixels\n );\n outerRadiusPixels += stroked * lineWidthPixels / 2.0;\n float edgePadding = antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0;\n unitPosition = edgePadding * positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n\n innerUnitRadius = 1.0 - stroked * lineWidthPixels / outerRadiusPixels;\n \n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = edgePadding * positions * outerRadiusPixels;\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var EH=`#define SHADER_NAME scatterplot-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool filled;\nuniform float stroked;\nuniform bool antialiasing;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\nvoid main(void) {\n geometry.uv = unitPosition;\n\n float distToCenter = length(unitPosition) * outerRadiusPixels;\n float inCircle = antialiasing ? \n smoothedge(distToCenter, outerRadiusPixels) : \n step(distToCenter, outerRadiusPixels);\n\n if (inCircle == 0.0) {\n discard;\n }\n\n if (stroked > 0.5) {\n float isLine = antialiasing ? \n smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\n step(innerUnitRadius * outerRadiusPixels, distToCenter);\n\n if (filled) {\n gl_FragColor = mix(vFillColor, vLineColor, isLine);\n } else {\n if (isLine == 0.0) {\n discard;\n }\n gl_FragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n }\n } else if (!filled) {\n discard;\n } else {\n gl_FragColor = vFillColor;\n }\n\n gl_FragColor.a *= inCircle;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var PH=[0,0,0,255],sdt={radiusUnits:\"meters\",radiusScale:{type:\"number\",min:0,value:1},radiusMinPixels:{type:\"number\",min:0,value:0},radiusMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:\"meters\",lineWidthScale:{type:\"number\",min:0,value:1},lineWidthMinPixels:{type:\"number\",min:0,value:0},lineWidthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:\"accessor\",value:e=>e.position},getRadius:{type:\"accessor\",value:1},getFillColor:{type:\"accessor\",value:PH},getLineColor:{type:\"accessor\",value:PH},getLineWidth:{type:\"accessor\",value:1},strokeWidth:{deprecatedFor:\"getLineWidth\"},outline:{deprecatedFor:\"stroked\"},getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},Xu=class extends Tn{getShaders(){return super.getShaders({vs:MH,fs:EH,modules:[oo,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceRadius:{size:1,transition:!0,accessor:\"getRadius\",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){if(super.updateState(t),t.changeFlags.extensionsChanged){var r;let{gl:i}=this.context;(r=this.state.model)===null||r===void 0||r.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{radiusUnits:r,radiusScale:i,radiusMinPixels:s,radiusMaxPixels:n,stroked:o,filled:c,billboard:f,antialiasing:_,lineWidthUnits:w,lineWidthScale:C,lineWidthMinPixels:R,lineWidthMaxPixels:N}=this.props;this.state.model.setUniforms(t).setUniforms({stroked:o?1:0,filled:c,billboard:f,antialiasing:_,radiusUnits:Ko[r],radiusScale:i,radiusMinPixels:s,radiusMaxPixels:n,lineWidthUnits:Ko[w],lineWidthScale:C,lineWidthMinPixels:R,lineWidthMaxPixels:N}).draw()}_getModel(t){let r=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(r)}}}),isInstanced:!0})}};G(Xu,\"defaultProps\",sdt);G(Xu,\"layerName\",\"ScatterplotLayer\");var Vv={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function kg(e,t,r={}){return IH(e,r)!==t?(odt(e,r),!0):!1}function IH(e,t={}){return Math.sign(m3(e,t))}function m3(e,t={}){let{start:r=0,end:i=e.length}=t,s=t.size||2,n=0;for(let o=r,c=i-s;o0){let s=!0;for(let n=0;nt[2]&&(r|=2),e[1]t[3]&&(r|=8),r}function D2(e,t){let{size:r=2,broken:i=!1,gridResolution:s=10,gridOffset:n=[0,0],startIndex:o=0,endIndex:c=e.length}=t||{},f=(c-o)/r,_=[],w=[_],C=ym(e,0,r,o),R,N,j=kH(C,s,n,[]),Y=[];mc(_,C);for(let rt=1;rtr&&(_=[],w.push(_),mc(_,C)),N=R2(R,j)}mc(_,R),k2(C,R)}return i?w:w[0]}var CH=0,ldt=1;function _3(e,t){for(let r=0;r=0?(mc(_,N)&&C.push(Y),ut+=j):C.length&&(C[C.length-1]=CH),k2(rt,N),$=j,K=Y;return[tt?{pos:f,types:t&&w}:null,ut?{pos:_,types:t&&C}:null]}function kH(e,t,r,i){let s=Math.floor((e[0]-r[0])/t)*t+r[0],n=Math.floor((e[1]-r[1])/t)*t+r[1];return i[0]=s,i[1]=n,i[2]=s+t,i[3]=n+t,i}function cdt(e,t,r){r&8?(e[1]+=t,e[3]+=t):r&4?(e[1]-=t,e[3]-=t):r&2?(e[0]+=t,e[2]+=t):r&1&&(e[0]-=t,e[2]-=t)}function udt(e,t,r,i){let s=1/0,n=-1/0,o=1/0,c=-1/0;for(let f=0;fn?_:n,o=wc?w:c}return i[0][0]=s,i[0][1]=o,i[1][0]=n,i[1][1]=c,i}var hdt=85.051129;function jO(e,t){let{size:r=2,startIndex:i=0,endIndex:s=e.length,normalize:n=!0}=t||{},o=e.slice(i,s);RH(o,r,0,s-i);let c=D2(o,{size:r,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(n)for(let f of c)DH(f,r);return c}function GO(e,t=null,r){let{size:i=2,normalize:s=!0,edgeTypes:n=!1}=r||{};t=t||[];let o=[],c=[],f=0,_=0;for(let C=0;C<=t.length;C++){let R=t[C]||e.length,N=_,j=fdt(e,i,f,R);for(let Y=j;Ys&&(s=c,n=o-1)}return n}function ddt(e,t,r,i,s=hdt){let n=e[r],o=e[i-t];if(Math.abs(n-o)>180){let c=ym(e,0,t,r);c[0]+=Math.round((o-n)/360)*360,mc(e,c),c[1]=Math.sign(c[1])*s,mc(e,c),c[0]=n,mc(e,c)}}function RH(e,t,r,i){let s=e[0],n;for(let o=r;o180||c<-180)&&(n-=Math.round(c/360)*360),e[o]=s=n}}function DH(e,t){let r,i=e.length/t;for(let n=0;n=i),s=s.flatMap(N=>[N[0],N[1]]),kg(s,Vv.COUNTER_CLOCKWISE));let n=r>0,o=i+1,c=n?o*3+1:i,f=Math.PI*2/i,_=new Uint16Array(n?i*3*2:0),w=new Float32Array(c*3),C=new Float32Array(c*3),R=0;if(n){for(let N=0;N 0.0 && instanceElevations >= 0.0);\n float dotRadius = radius * coverage * shouldRender;\n\n geometry.pickingColor = instancePickingColors;\n vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation);\n vec3 centroidPosition64Low = instancePositions64Low;\n vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + offset) * dotRadius;\n if (radiusUnits == UNIT_METERS) {\n offset = project_size(offset);\n }\n vec3 pos = vec3(offset, 0.);\n DECKGL_FILTER_SIZE(pos, geometry);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z));\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n if (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var BH=`#version 300 es\n#define SHADER_NAME column-layer-fragment-shader\n\nprecision highp float;\n\nuniform vec3 project_uCameraPosition;\nuniform bool extruded;\nuniform bool isStroke;\n\nout vec4 fragColor;\n\nin vec4 vColor;\n#ifdef FLAT_SHADING\nin vec4 position_commonspace;\n#endif\n\nvoid main(void) {\n fragColor = vColor;\n#ifdef FLAT_SHADING\n if (extruded && !isStroke && !picking_uActive) {\n vec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n fragColor.rgb = lighting_getLightColor(vColor.rgb, project_uCameraPosition, position_commonspace.xyz, normal);\n }\n#endif\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n`;var y3=[0,0,0,255],mdt={diskResolution:{type:\"number\",min:4,value:20},vertices:null,radius:{type:\"number\",min:0,value:1e3},angle:{type:\"number\",value:0},offset:{type:\"array\",value:[0,0]},coverage:{type:\"number\",min:0,max:1,value:1},elevationScale:{type:\"number\",min:0,value:1},radiusUnits:\"meters\",lineWidthUnits:\"meters\",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,getPosition:{type:\"accessor\",value:e=>e.position},getFillColor:{type:\"accessor\",value:y3},getLineColor:{type:\"accessor\",value:y3},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0,getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},af=class extends Tn{getShaders(){let{gl:t}=this.context,r=!hr(t),i={},s=this.props.flatShading&&H0(t,Pi.GLSL_DERIVATIVES);return s&&(i.FLAT_SHADING=1),super.getShaders({vs:OH,fs:BH,defines:i,transpileToGLSL100:r,modules:[oo,s?Cy:YA,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceElevations:{size:1,transition:!0,accessor:\"getElevation\"},instanceFillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getFillColor\",defaultValue:y3},instanceLineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getLineColor\",defaultValue:y3},instanceStrokeWidths:{size:1,accessor:\"getLineWidth\",transition:!0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:s}=t,n=s.extensionsChanged||r.flatShading!==i.flatShading;if(n){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),this.getAttributeManager().invalidateAll()}(n||r.diskResolution!==i.diskResolution||r.vertices!==i.vertices||(r.extruded||r.stroked)!==(i.extruded||i.stroked))&&this._updateGeometry(r)}getGeometry(t,r,i){let s=new B2({radius:1,height:i?2:0,vertices:r,nradial:t}),n=0;if(r)for(let o=0;o=t.length&&(r+=1-t.length/s);let n=r*s;return i[0]=t[n],i[1]=t[n+1],i[2]=s===3&&t[n+2]||0,i}isClosed(t){if(!this.normalize)return!!this.opts.loop;let{positionSize:r}=this,i=t.length-r;return t[0]===t[i]&&t[1]===t[i+1]&&(r===2||t[2]===t[i+2])}};function zH(e){return Array.isArray(e[0])}var NH=`#define SHADER_NAME path-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute float instanceTypes;\nattribute vec3 instanceStartPositions;\nattribute vec3 instanceEndPositions;\nattribute vec3 instanceLeftPositions;\nattribute vec3 instanceRightPositions;\nattribute vec3 instanceLeftPositions64Low;\nattribute vec3 instanceStartPositions64Low;\nattribute vec3 instanceEndPositions64Low;\nattribute vec3 instanceRightPositions64Low;\nattribute float instanceStrokeWidths;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float jointType;\nuniform float capType;\nuniform float miterLimit;\nuniform bool billboard;\nuniform int widthUnits;\n\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\n\nfloat flipIfTrue(bool flag) {\n return -(float(flag) * 2. - 1.);\n}\nvec3 getLineJoinOffset(\n vec3 prevPoint, vec3 currPoint, vec3 nextPoint,\n vec2 width\n) {\n bool isEnd = positions.x > 0.0;\n float sideOfPath = positions.y;\n float isJoint = float(sideOfPath == 0.0);\n\n vec3 deltaA3 = (currPoint - prevPoint);\n vec3 deltaB3 = (nextPoint - currPoint);\n\n mat3 rotationMatrix;\n bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix);\n if (needsRotation) {\n deltaA3 = deltaA3 * rotationMatrix;\n deltaB3 = deltaB3 * rotationMatrix;\n }\n vec2 deltaA = deltaA3.xy / width;\n vec2 deltaB = deltaB3.xy / width;\n\n float lenA = length(deltaA);\n float lenB = length(deltaB);\n\n vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\n vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\n\n vec2 perpA = vec2(-dirA.y, dirA.x);\n vec2 perpB = vec2(-dirB.y, dirB.x);\n vec2 tangent = dirA + dirB;\n tangent = length(tangent) > 0. ? normalize(tangent) : perpA;\n vec2 miterVec = vec2(-tangent.y, tangent.x);\n vec2 dir = isEnd ? dirA : dirB;\n vec2 perp = isEnd ? perpA : perpB;\n float L = isEnd ? lenA : lenB;\n float sinHalfA = abs(dot(miterVec, perp));\n float cosHalfA = abs(dot(dirA, miterVec));\n float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n float cornerPosition = sideOfPath * turnDirection;\n\n float miterSize = 1.0 / max(sinHalfA, EPSILON);\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n * (sideOfPath + isJoint * turnDirection);\n bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n bool isCap = isStartCap || isEndCap;\n if (isCap) {\n offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint);\n vJointType = capType;\n } else {\n vJointType = jointType;\n }\n vPathLength = L;\n vCornerOffset = offsetVec;\n vMiterLength = dot(vCornerOffset, miterVec * turnDirection);\n vMiterLength = isCap ? isJoint : vMiterLength;\n\n vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\n vPathPosition = vec2(\n dot(offsetFromStartOfPath, perp),\n dot(offsetFromStartOfPath, dir)\n );\n geometry.uv = vPathPosition;\n\n float isValid = step(instanceTypes, 3.5);\n vec3 offset = vec3(offsetVec * width * isValid, 0.0);\n\n if (needsRotation) {\n offset = rotationMatrix * offset;\n }\n return offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\n if (position.w < EPSILON) {\n float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n position = refPosition + (position - refPosition) * r;\n }\n}\n\nvoid main() {\n geometry.pickingColor = instancePickingColors;\n\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n\n float isEnd = positions.x;\n\n vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\n vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\n\n vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\n vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\n\n vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\n vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\n\n geometry.worldPosition = currPosition;\n vec2 widthPixels = vec2(clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0);\n vec3 width;\n\n if (billboard) {\n vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\n vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n\n clipLine(prevPositionScreen, currPositionScreen);\n clipLine(nextPositionScreen, currPositionScreen);\n clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n width = vec3(widthPixels, 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(width.xy)\n );\n\n DECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);\n gl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);\n } else {\n prevPosition = project_position(prevPosition, prevPosition64Low);\n currPosition = project_position(currPosition, currPosition64Low);\n nextPosition = project_position(nextPosition, nextPosition64Low);\n\n width = vec3(project_pixel_size(widthPixels), 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy);\n geometry.position = vec4(currPosition + offset, 1.0);\n gl_Position = project_common_position_to_clipspace(geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var UH=`#define SHADER_NAME path-layer-fragment-shader\n\nprecision highp float;\n\nuniform float miterLimit;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nvoid main(void) {\n geometry.uv = vPathPosition;\n\n if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n if (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\n discard;\n }\n if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) {\n discard;\n }\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var VH=[0,0,0,255],ydt={widthUnits:\"meters\",widthScale:{type:\"number\",min:0,value:1},widthMinPixels:{type:\"number\",min:0,value:0},widthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:\"number\",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:\"accessor\",value:e=>e.path},getColor:{type:\"accessor\",value:VH},getWidth:{type:\"accessor\",value:1},rounded:{deprecatedFor:[\"jointRounded\",\"capRounded\"]}},HO={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},gc=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:NH,fs:UH,modules:[oo,ta]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:HO,accessor:\"getPath\",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:\"getWidth\",transition:HO,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:\"getColor\",transition:HO,defaultValue:VH},instancePickingColors:{size:3,type:5121,accessor:(i,{index:s,target:n})=>this.encodePickingColor(i&&i.__source?i.__source.index:s,n)}}),this.setState({pathTesselator:new F2({fp64:this.use64bitPositions()})})}updateState(t){super.updateState(t);let{props:r,changeFlags:i}=t,s=this.getAttributeManager();if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)){let{pathTesselator:c}=this.state,f=r.data.attributes||{};c.updateGeometry({data:r.data,geometryBuffer:f.getPath,buffers:f,normalize:!r._pathType,loop:r._pathType===\"loop\",getGeometry:r.getPath,positionFormat:r.positionFormat,wrapLongitude:r.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:i.dataChanged}),this.setState({numInstances:c.instanceCount,startIndices:c.vertexStarts}),i.dataChanged||s.invalidateAll()}if(i.extensionsChanged){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),s.invalidateAll()}}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:s}=this.props;return s[0]&&s[0].__source&&(r.object=s.find(n=>n.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;i=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function zdt(e){let t=e[0],r=e[e.length-1];return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]}function Ndt(e,t,r,i){for(let s=0;sc/t));let n=Gv(e),o=i&&t===3;if(r){let c=n.length;n=n.slice();let f=[];for(let _=0;_f&&c>_||(f>_?(r||(n=n.slice()),$H(n,0,2,1)):(r||(n=n.slice()),$H(n,2,0,1)))}return(0,XH.default)(n,s,t)}var j2=class extends JA{constructor(t){let{fp64:r,IndexType:i=Uint32Array}=t;super({...t,attributes:{positions:{size:3,type:r?Float64Array:Float32Array},vertexValid:{type:Uint8ClampedArray,size:1},indices:{type:i,size:1}}})}get(t){let{attributes:r}=this;return t===\"indices\"?r.indices&&r.indices.subarray(0,this.vertexCount):r[t]}updateGeometry(t){super.updateGeometry(t);let r=this.buffers.indices;if(r)this.vertexCount=(r.value||r).length;else if(this.data&&!this.getGeometry)throw new Error(\"missing indices buffer\")}normalizeGeometry(t){if(this.normalize){let r=T3(t,this.positionSize);return this.opts.resolution?O2(Gv(r),V2(r),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?GO(Gv(r),V2(r),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):r}return t}getGeometrySize(t){if(tq(t)){let r=0;for(let i of t)r+=this.getGeometrySize(i);return r}return Gv(t).length/this.positionSize}getGeometryFromBuffer(t){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(t):null}updateGeometryAttributes(t,r){if(t&&tq(t))for(let i of t){let s=this.getGeometrySize(i);r.geometrySize=s,this.updateGeometryAttributes(i,r),r.vertexStart+=s,r.indexStart=this.indexStarts[r.geometryIndex+1]}else this._updateIndices(t,r),this._updatePositions(t,r),this._updateVertexValid(t,r)}_updateIndices(t,{geometryIndex:r,vertexStart:i,indexStart:s}){let{attributes:n,indexStarts:o,typedArrayManager:c}=this,f=n.indices;if(!f||!t)return;let _=s,w=KH(t,this.positionSize,this.opts.preproject,this.opts.full3d);f=c.allocate(f,s+w.length,{copy:!0});for(let C=0;C2?o[f*n+2]:0;s[c*3]=_,s[c*3+1]=w,s[c*3+2]=C}}_updateVertexValid(t,{vertexStart:r,geometrySize:i}){let{positionSize:s}=this,n=this.attributes.vertexValid,o=t&&V2(t);if(t&&t.edgeTypes?n.set(t.edgeTypes,r):n.fill(1,r,r+i),o)for(let c=0;c0&&!Number.isFinite(e[0])}var M3=`\nattribute vec2 vertexPositions;\nattribute float vertexValid;\n\nuniform bool extruded;\nuniform bool isWireframe;\nuniform float elevationScale;\nuniform float opacity;\n\nvarying vec4 vColor;\n\nstruct PolygonProps {\n vec4 fillColors;\n vec4 lineColors;\n vec3 positions;\n vec3 nextPositions;\n vec3 pickingColors;\n vec3 positions64Low;\n vec3 nextPositions64Low;\n float elevations;\n};\n\nvec3 project_offset_normal(vec3 vector) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n return normalize(vector * project_uCommonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nvoid calculatePosition(PolygonProps props) {\n#ifdef IS_SIDE_VERTEX\n if(vertexValid < 0.5){\n gl_Position = vec4(0.);\n return;\n }\n#endif\n\n vec3 pos;\n vec3 pos64Low;\n vec3 normal;\n vec4 colors = isWireframe ? props.lineColors : props.fillColors;\n\n geometry.worldPosition = props.positions;\n geometry.worldPositionAlt = props.nextPositions;\n geometry.pickingColor = props.pickingColors;\n\n#ifdef IS_SIDE_VERTEX\n pos = mix(props.positions, props.nextPositions, vertexPositions.x);\n pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x);\n#else\n pos = props.positions;\n pos64Low = props.positions64Low;\n#endif\n\n if (extruded) {\n pos.z += props.elevations * vertexPositions.y * elevationScale;\n }\n gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n if (extruded) {\n #ifdef IS_SIDE_VERTEX\n normal = vec3(\n props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y),\n props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x),\n 0.0);\n normal = project_offset_normal(normal);\n #else\n normal = project_normal(vec3(0.0, 0.0, 1.0));\n #endif\n geometry.normal = normal;\n vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal);\n vColor = vec4(lightColor, colors.a * opacity);\n } else {\n vColor = vec4(colors.rgb, colors.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var eq=`#define SHADER_NAME solid-polygon-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float elevations;\nattribute vec4 fillColors;\nattribute vec4 lineColors;\nattribute vec3 pickingColors;\n\n`.concat(M3,`\n\nvoid main(void) {\n PolygonProps props;\n\n props.positions = positions;\n props.positions64Low = positions64Low;\n props.elevations = elevations;\n props.fillColors = fillColors;\n props.lineColors = lineColors;\n props.pickingColors = pickingColors;\n\n calculatePosition(props);\n}\n`);var rq=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\n\n\nattribute vec3 instancePositions;\nattribute vec3 nextPositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 nextPositions64Low;\nattribute float instanceElevations;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\n`.concat(M3,`\n\nvoid main(void) {\n PolygonProps props;\n\n #if RING_WINDING_ORDER_CW == 1\n props.positions = instancePositions;\n props.positions64Low = instancePositions64Low;\n props.nextPositions = nextPositions;\n props.nextPositions64Low = nextPositions64Low;\n #else\n props.positions = nextPositions;\n props.positions64Low = nextPositions64Low;\n props.nextPositions = instancePositions;\n props.nextPositions64Low = instancePositions64Low;\n #endif\n props.elevations = instanceElevations;\n props.fillColors = instanceFillColors;\n props.lineColors = instanceLineColors;\n props.pickingColors = instancePickingColors;\n\n calculatePosition(props);\n}\n`);var iq=`#define SHADER_NAME solid-polygon-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var P3=[0,0,0,255],Udt={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:\"CW\",_full3d:!1,elevationScale:{type:\"number\",min:0,value:1},getPolygon:{type:\"accessor\",value:e=>e.polygon},getElevation:{type:\"accessor\",value:1e3},getFillColor:{type:\"accessor\",value:P3},getLineColor:{type:\"accessor\",value:P3},material:!0},E3={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},_c=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(t){return super.getShaders({vs:t===\"top\"?eq:rq,fs:iq,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder===\"CCW\"?0:1},modules:[oo,YA,ta]})}get wrapLongitude(){return!1}initializeState(){let{gl:t,viewport:r}=this.context,{coordinateSystem:i}=this.props,{_full3d:s}=this.props;r.isGeospatial&&i===Yr.DEFAULT&&(i=Yr.LNGLAT);let n;i===Yr.LNGLAT&&(s?n=r.projectPosition.bind(r):n=r.projectFlat.bind(r)),this.setState({numInstances:0,polygonTesselator:new j2({preproject:n,fp64:this.use64bitPositions(),IndexType:!t||Dh(t,Pi.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});let o=this.getAttributeManager(),c=!0;o.remove([\"instancePickingColors\"]),o.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:c},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:E3,accessor:\"getPolygon\",update:this.calculatePositions,noAlloc:c,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:c},elevations:{size:1,transition:E3,accessor:\"getElevation\",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:E3,accessor:\"getFillColor\",defaultValue:P3,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:E3,accessor:\"getLineColor\",defaultValue:P3,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(f,{index:_,target:w})=>this.encodePickingColor(f&&f.__source?f.__source.index:_,w),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:s}=this.props;return s[0]&&s[0].__source&&(r.object=s.find(n=>n.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;if.delete()),this.setState(this._getModels(this.context.gl)),n.invalidateAll()}}updateGeometry({props:t,oldProps:r,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){let{polygonTesselator:n}=this.state,o=t.data.attributes||{};n.updateGeometry({data:t.data,normalize:t._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:t.getPolygon,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged,full3d:t._full3d}),this.setState({numInstances:n.instanceCount,startIndices:n.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(t){let{id:r,filled:i,extruded:s}=this.props,n,o;if(i){let c=this.getShaders(\"top\");c.defines.NON_INSTANCED_MODEL=1,n=new Sn(t,{...c,id:\"\".concat(r,\"-top\"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return s&&(o=new Sn(t,{...this.getShaders(\"side\"),id:\"\".concat(r,\"-side\"),geometry:new As({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),o.userData.excludeAttributes={indices:!0}),{models:[o,n].filter(Boolean),topModel:n,sideModel:o}}calculateIndices(t){let{polygonTesselator:r}=this.state;t.startIndices=r.indexStarts,t.value=r.get(\"indices\")}calculatePositions(t){let{polygonTesselator:r}=this.state;t.startIndices=r.vertexStarts,t.value=r.get(\"positions\")}calculateVertexValid(t){t.value=this.state.polygonTesselator.get(\"vertexValid\")}};G(_c,\"defaultProps\",Udt);G(_c,\"layerName\",\"SolidPolygonLayer\");function I3({data:e,getIndex:t,dataRange:r,replace:i}){let{startRow:s=0,endRow:n=1/0}=r,o=e.length,c=o,f=o;for(let R=0;RR&&N>=s&&(c=R),N>=n){f=R;break}}let _=c,C=f-c!==i.length?e.slice(f):void 0;for(let R=0;Re.polygon},getFillColor:{type:\"accessor\",value:Vdt},getLineColor:{type:\"accessor\",value:nq},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0},lf=class extends tn{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&nr.removed(\"getLineDashArray\",\"PathStyleExtension\")()}updateState({changeFlags:t}){let r=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getPolygon);if(r&&Array.isArray(t.dataChanged)){let i=this.state.paths.slice(),s=t.dataChanged.map(n=>I3({data:i,getIndex:o=>o.__source.index,dataRange:n,replace:this._getPaths(n)}));this.setState({paths:i,pathsDiff:s})}else r&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(t={}){let{data:r,getPolygon:i,positionFormat:s,_normalize:n}=this.props,o=[],c=s===\"XY\"?2:3,{startRow:f,endRow:_}=t,{iterable:w,objectInfo:C}=Xc(r,f,_);for(let R of w){C.index++;let N=i(R,C);n&&(N=T3(N,c));let{holeIndices:j}=N,Y=N.positions||N;if(j)for(let rt=0;rt<=j.length;rt++){let $=Y.slice(j[rt-1]||0,j[rt]||Y.length);o.push(this.getSubLayerRow({path:$},R,C.index))}else o.push(this.getSubLayerRow({path:Y},R,C.index))}return o}renderLayers(){let{data:t,_dataDiff:r,stroked:i,filled:s,extruded:n,wireframe:o,_normalize:c,_windingOrder:f,elevationScale:_,transitions:w,positionFormat:C}=this.props,{lineWidthUnits:R,lineWidthScale:N,lineWidthMinPixels:j,lineWidthMaxPixels:Y,lineJointRounded:rt,lineMiterLimit:$,lineDashJustified:K}=this.props,{getFillColor:tt,getLineColor:ut,getLineWidth:Pt,getLineDashArray:Ot,getElevation:Kt,getPolygon:Zt,updateTriggers:le,material:ue}=this.props,{paths:Ge,pathsDiff:tr}=this.state,er=this.getSubLayerClass(\"fill\",_c),Lr=this.getSubLayerClass(\"stroke\",gc),zi=this.shouldRenderSubLayer(\"fill\",Ge)&&new er({_dataDiff:r,extruded:n,elevationScale:_,filled:s,wireframe:o,_normalize:c,_windingOrder:f,getElevation:Kt,getFillColor:tt,getLineColor:n&&o?ut:nq,material:ue,transitions:w},this.getSubLayerProps({id:\"fill\",updateTriggers:le&&{getPolygon:le.getPolygon,getElevation:le.getElevation,getFillColor:le.getFillColor,lineColors:n&&o,getLineColor:le.getLineColor}}),{data:t,positionFormat:C,getPolygon:Zt}),Bo=!n&&i&&this.shouldRenderSubLayer(\"stroke\",Ge)&&new Lr({_dataDiff:tr&&(()=>tr),widthUnits:R,widthScale:N,widthMinPixels:j,widthMaxPixels:Y,jointRounded:rt,miterLimit:$,dashJustified:K,_pathType:\"loop\",transitions:w&&{getWidth:w.getLineWidth,getColor:w.getLineColor,getPath:w.getPolygon},getColor:this.getSubLayerAccessor(ut),getWidth:this.getSubLayerAccessor(Pt),getDashArray:this.getSubLayerAccessor(Ot)},this.getSubLayerProps({id:\"stroke\",updateTriggers:le&&{getWidth:le.getLineWidth,getColor:le.getLineColor,getDashArray:le.getLineDashArray}}),{data:Ge,positionFormat:C,getPath:Pc=>Pc.path});return[!n&&zi,Bo,n&&zi]}};G(lf,\"layerName\",\"PolygonLayer\");G(lf,\"defaultProps\",jdt);function sq(e,t){if(!e)return null;let r=\"startIndices\"in e?e.startIndices[t]:t,i=e.featureIds.value[r];return r!==-1?Gdt(e,i,r):null}function Gdt(e,t,r){let i={properties:{...e.properties[t]}};for(let s in e.numericProps)i.properties[s]=e.numericProps[s].value[r];return i}function oq(e,t){let r={points:null,lines:null,polygons:null};for(let i in r){let s=e[i].globalFeatureIds.value;r[i]=new Uint8ClampedArray(s.length*3);let n=[];for(let o=0;o 0.0) {\n float inFill = alpha;\n float inBorder = smoothstep(outlineBuffer - gamma, outlineBuffer + gamma, distance);\n color = mix(outlineColor, vColor, inFill);\n alpha = inBorder;\n }\n }\n float a = alpha * color.a;\n \n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color.rgb, a * opacity);\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var XO=192/256,lq=[],Wdt={getIconOffsets:{type:\"accessor\",value:e=>e.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:\"color\",value:[0,0,0,255]}},Dg=class extends Sp{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return{...super.getShaders(),fs:aq}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:\"getIconOffsets\"},instancePickingColors:{type:5121,size:3,accessor:(r,{index:i,target:s})=>this.encodePickingColor(i,s)}})}updateState(t){super.updateState(t);let{props:r,oldProps:i}=t,{outlineColor:s}=r;s!==i.outlineColor&&(s=s.map(n=>n/255),s[3]=Number.isFinite(s[3])?s[3]:1,this.setState({outlineColor:s})),!r.sdf&&r.outlineWidth&&nr.warn(\"\".concat(this.id,\": fontSettings.sdf is required to render outline\"))()}draw(t){let{sdf:r,smoothing:i,outlineWidth:s}=this.props,{outlineColor:n}=this.state,o=s?Math.max(i,XO*(1-s)):-1;if(t.uniforms={...t.uniforms,sdfBuffer:XO,outlineBuffer:o,gamma:i,sdf:!!r,outlineColor:n},super.draw(t),r&&s){let{iconManager:c}=this.state;c.getTexture()&&this.state.model.draw({uniforms:{outlineBuffer:XO}})}}getInstanceOffset(t){return t?Array.from(t).flatMap(r=>super.getInstanceOffset(r)):lq}getInstanceColorMode(t){return 1}getInstanceIconFrame(t){return t?Array.from(t).flatMap(r=>super.getInstanceIconFrame(r)):lq}};G(Dg,\"defaultProps\",Wdt);G(Dg,\"layerName\",\"MultiIconLayer\");var G2=class{constructor({fontSize:t=24,buffer:r=3,radius:i=8,cutoff:s=.25,fontFamily:n=\"sans-serif\",fontWeight:o=\"normal\",fontStyle:c=\"normal\"}={}){this.buffer=r,this.cutoff=s,this.radius=i;let f=this.size=t+r*4,_=this._createCanvas(f),w=this.ctx=_.getContext(\"2d\",{willReadFrequently:!0});w.font=`${c} ${o} ${t}px ${n}`,w.textBaseline=\"alphabetic\",w.textAlign=\"left\",w.fillStyle=\"black\",this.gridOuter=new Float64Array(f*f),this.gridInner=new Float64Array(f*f),this.f=new Float64Array(f),this.z=new Float64Array(f+1),this.v=new Uint16Array(f)}_createCanvas(t){let r=document.createElement(\"canvas\");return r.width=r.height=t,r}draw(t){let{width:r,actualBoundingBoxAscent:i,actualBoundingBoxDescent:s,actualBoundingBoxLeft:n,actualBoundingBoxRight:o}=this.ctx.measureText(t),c=Math.ceil(i),f=0,_=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-n))),w=Math.min(this.size-this.buffer,c+Math.ceil(s)),C=_+2*this.buffer,R=w+2*this.buffer,N=Math.max(C*R,0),j=new Uint8ClampedArray(N),Y={data:j,width:C,height:R,glyphWidth:_,glyphHeight:w,glyphTop:c,glyphLeft:f,glyphAdvance:r};if(_===0||w===0)return Y;let{ctx:rt,buffer:$,gridInner:K,gridOuter:tt}=this;rt.clearRect($,$,_,w),rt.fillText(t,$,$+c);let ut=rt.getImageData($,$,_,w);tt.fill(1e20,0,N),K.fill(0,0,N);for(let Pt=0;Pt0?le*le:0,K[Zt]=le<0?le*le:0}}cq(tt,0,0,C,R,C,this.f,this.v,this.z),cq(K,$,$,_,w,C,this.f,this.v,this.z);for(let Pt=0;Pt-1);f++,n[f]=c,o[f]=_,o[f+1]=1e20}for(let c=0,f=0;cs&&(_=0,f++),n[C]={x:_+i,y:c+f*w+i,width:R,height:w,layoutWidth:R,layoutHeight:r},_+=R+i*2}return{mapping:n,xOffset:_,yOffset:c+f*w,canvasHeight:Zdt(c+(f+1)*w)}}function fq(e,t,r,i){let s=0;for(let o=t;oi&&(oc){let C=fq(e,c,f,s);_+C>i&&(oi&&(C=dq(e,c,f,i,s,n),o=n[n.length-1])),c=f,_+=C}return _}function Qdt(e,t,r,i,s=0,n){n===void 0&&(n=e.length);let o=[];return t===\"break-all\"?dq(e,s,n,r,i,o):Ydt(e,s,n,r,i,o),o}function $dt(e,t,r,i,s,n){let o=0,c=0;for(let f=t;f0,C=[0,0],R=[0,0],N=0,j=0,Y=0;for(let $=0;$<=o;$++){let K=n[$];if((K===`\n`||$===o)&&(Y=$),Y>j){let tt=w?Qdt(n,r,i,s,j,Y):qdt;for(let ut=0;ut<=tt.length;ut++){let Pt=ut===0?j:tt[ut-1],Ot=ut1||f>0){let N=e.constructor;R=new N(_);for(let j=0;j<_;j++)R[j]=e[j*c+f]}for(let N=0;N=0&&this._order.splice(r,1)}_appendOrder(t){this._order.push(t)}};function Xdt(){let e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}var Og={fontFamily:\"Monaco, monospace\",fontWeight:\"normal\",characterSet:Xdt(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},mq=1024,gq=.9,_q=1.2,vq=3,C3=new Wv(vq);function Kdt(e,t){let r;typeof t==\"string\"?r=new Set(Array.from(t)):r=new Set(t);let i=C3.get(e);if(!i)return r;for(let s in i.mapping)r.has(s)&&r.delete(s);return r}function Jdt(e,t){for(let r=0;r=vq,\"Invalid cache limit\"),C3=new Wv(e)}var W2=class{constructor(){G(this,\"props\",{...Og}),G(this,\"_key\",void 0),G(this,\"_atlas\",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){let{fontSize:t,buffer:r}=this.props;return(t*_q+r*2)/t}setProps(t={}){Object.assign(this.props,t),this._key=this._getKey();let r=Kdt(this._key,this.props.characterSet),i=C3.get(this._key);if(i&&r.size===0){this._atlas!==i&&(this._atlas=i);return}let s=this._generateFontAtlas(r,i);this._atlas=s,C3.set(this._key,s)}_generateFontAtlas(t,r){let{fontFamily:i,fontWeight:s,fontSize:n,buffer:o,sdf:c,radius:f,cutoff:_}=this.props,w=r&&r.data;w||(w=document.createElement(\"canvas\"),w.width=mq);let C=w.getContext(\"2d\",{willReadFrequently:!0});yq(C,i,n,s);let{mapping:R,canvasHeight:N,xOffset:j,yOffset:Y}=hq({getFontWidth:rt=>C.measureText(rt).width,fontHeight:n*_q,buffer:o,characterSet:t,maxCanvasWidth:mq,...r&&{mapping:r.mapping,xOffset:r.xOffset,yOffset:r.yOffset}});if(w.height!==N){let rt=C.getImageData(0,0,w.width,w.height);w.height=N,C.putImageData(rt,0,0)}if(yq(C,i,n,s),c){let rt=new G2({fontSize:n,buffer:o,radius:f,cutoff:_,fontFamily:i,fontWeight:\"\".concat(s)});for(let $ of t){let{data:K,width:tt,height:ut,glyphTop:Pt}=rt.draw($);R[$].width=tt,R[$].layoutOffsetY=n*gq-Pt;let Ot=C.createImageData(tt,ut);Jdt(K,Ot),C.putImageData(Ot,R[$].x,R[$].y)}}else for(let rt of t)C.fillText(rt,R[rt].x,R[rt].y+o+n*gq);return{xOffset:j,yOffset:Y,mapping:R,data:w,width:w.width,height:w.height}}_getKey(){let{fontFamily:t,fontWeight:r,fontSize:i,buffer:s,sdf:n,radius:o,cutoff:c}=this.props;return n?\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(s,\" \").concat(o,\" \").concat(c):\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(s)}};var bq=`#define SHADER_NAME text-background-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceRects;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec2 instancePixelOffsets;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform bool billboard;\nuniform float opacity;\nuniform float sizeScale;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform vec4 padding;\nuniform int sizeUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = radians(angle);\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n vLineWidth = instanceLineWidths;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits),\n sizeMinPixels, sizeMaxPixels\n );\n\n dimensions = instanceRects.zw * sizePixels + padding.xy + padding.zw;\n\n vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-padding.xy, padding.zw, positions);\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\n pixelOffset += instancePixelOffsets;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var wq=`#define SHADER_NAME text-background-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool stroked;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec2 pixelPosition = uv * dimensions;\n if (stroked) {\n float distToEdge = min(\n min(pixelPosition.x, dimensions.x - pixelPosition.x),\n min(pixelPosition.y, dimensions.y - pixelPosition.y)\n );\n float isBorder = smoothedge(distToEdge, vLineWidth);\n gl_FragColor = mix(vFillColor, vLineColor, isBorder);\n } else {\n gl_FragColor = vFillColor;\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var tpt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:\"array\",value:[0,0,0,0]},getPosition:{type:\"accessor\",value:e=>e.position},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},getBoundingRect:{type:\"accessor\",value:[0,0,0,0]},getFillColor:{type:\"accessor\",value:[0,0,0,255]},getLineColor:{type:\"accessor\",value:[0,0,0,255]},getLineWidth:{type:\"accessor\",value:1}},Bg=class extends Tn{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:bq,fs:wq,modules:[oo,ta]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instanceRects:{size:4,accessor:\"getBoundingRect\"},instancePixelOffsets:{size:2,transition:!0,accessor:\"getPixelOffset\"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){super.updateState(t);let{changeFlags:r}=t;if(r.extensionsChanged){var i;let{gl:s}=this.context;(i=this.state.model)===null||i===void 0||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{billboard:r,sizeScale:i,sizeUnits:s,sizeMinPixels:n,sizeMaxPixels:o,getLineWidth:c}=this.props,{padding:f}=this.props;f.length<4&&(f=[f[0],f[1],f[0],f[1]]),this.state.model.setUniforms(t).setUniforms({billboard:r,stroked:!!c,padding:f,sizeUnits:Ko[s],sizeScale:i,sizeMinPixels:n,sizeMaxPixels:o}).draw()}_getModel(t){let r=[0,0,1,0,1,1,0,1];return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}};G(Bg,\"defaultProps\",tpt);G(Bg,\"layerName\",\"TextBackgroundLayer\");var Sq={start:1,middle:0,end:-1},Tq={top:1,center:0,bottom:-1},KO=[0,0,0,255],ept=1,rpt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:\"accessor\",value:[255,255,255,255]},getBorderColor:{type:\"accessor\",value:KO},getBorderWidth:{type:\"accessor\",value:0},backgroundPadding:{type:\"array\",value:[0,0,0,0]},characterSet:{type:\"object\",value:Og.characterSet},fontFamily:Og.fontFamily,fontWeight:Og.fontWeight,lineHeight:ept,outlineWidth:{type:\"number\",value:0,min:0},outlineColor:{type:\"color\",value:KO},fontSettings:{type:\"object\",value:{},compare:1},wordBreak:\"break-word\",maxWidth:{type:\"number\",value:-1},getText:{type:\"accessor\",value:e=>e.text},getPosition:{type:\"accessor\",value:e=>e.position},getColor:{type:\"accessor\",value:KO},getSize:{type:\"accessor\",value:32},getAngle:{type:\"accessor\",value:0},getTextAnchor:{type:\"accessor\",value:\"middle\"},getAlignmentBaseline:{type:\"accessor\",value:\"center\"},getPixelOffset:{type:\"accessor\",value:[0,0]},backgroundColor:{deprecatedFor:[\"background\",\"getBackgroundColor\"]}},cf=class extends tn{constructor(...t){super(...t),G(this,\"state\",void 0),G(this,\"getBoundingRect\",(r,i)=>{let{size:[s,n]}=this.transformParagraph(r,i),{fontSize:o}=this.state.fontAtlasManager.props;s/=o,n/=o;let{getTextAnchor:c,getAlignmentBaseline:f}=this.props,_=Sq[typeof c==\"function\"?c(r,i):c],w=Tq[typeof f==\"function\"?f(r,i):f];return[(_-1)*s/2,(w-1)*n/2,s,n]}),G(this,\"getIconOffsets\",(r,i)=>{let{getTextAnchor:s,getAlignmentBaseline:n}=this.props,{x:o,y:c,rowWidth:f,size:[_,w]}=this.transformParagraph(r,i),C=Sq[typeof s==\"function\"?s(r,i):s],R=Tq[typeof n==\"function\"?n(r,i):n],N=o.length,j=new Array(N*2),Y=0;for(let rt=0;rt0&&nr.warn(\"v8.9 breaking change: TextLayer maxWidth is now relative to text size\")()}updateState(t){let{props:r,oldProps:i,changeFlags:s}=t;(s.dataChanged||s.updateTriggersChanged&&(s.updateTriggersChanged.all||s.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||r.lineHeight!==i.lineHeight||r.wordBreak!==i.wordBreak||r.maxWidth!==i.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:t}){return t.object=t.index>=0?this.props.data[t.index]:null,t}_updateFontAtlas(){let{fontSettings:t,fontFamily:r,fontWeight:i}=this.props,{fontAtlasManager:s,characterSet:n}=this.state,o={...t,characterSet:n,fontFamily:r,fontWeight:i};if(!s.mapping)return s.setProps(o),!0;for(let c in o)if(o[c]!==s.props[c])return s.setProps(o),!0;return!1}_updateText(){var t;let{data:r,characterSet:i}=this.props,s=(t=r.attributes)===null||t===void 0?void 0:t.getText,{getText:n}=this.props,o=r.startIndices,c,f=i===\"auto\"&&new Set;if(s&&o){let{texts:_,characterCount:w}=Aq({...ArrayBuffer.isView(s)?{value:s}:s,length:r.length,startIndices:o,characterSet:f});c=w,n=(C,{index:R})=>_[R]}else{let{iterable:_,objectInfo:w}=Xc(r);o=[0],c=0;for(let C of _){w.index++;let R=Array.from(n(C,w)||\"\");f&&R.forEach(f.add,f),c+=R.length,o.push(c)}}this.setState({getText:n,startIndices:o,numInstances:c,characterSet:f||i})}transformParagraph(t,r){let{fontAtlasManager:i}=this.state,s=i.mapping,n=this.state.getText,{wordBreak:o,lineHeight:c,maxWidth:f}=this.props,_=n(t,r)||\"\";return pq(_,c,o,f*i.props.fontSize,s)}renderLayers(){let{startIndices:t,numInstances:r,getText:i,fontAtlasManager:{scale:s,texture:n,mapping:o},styleVersion:c}=this.state,{data:f,_dataDiff:_,getPosition:w,getColor:C,getSize:R,getAngle:N,getPixelOffset:j,getBackgroundColor:Y,getBorderColor:rt,getBorderWidth:$,backgroundPadding:K,background:tt,billboard:ut,fontSettings:Pt,outlineWidth:Ot,outlineColor:Kt,sizeScale:Zt,sizeUnits:le,sizeMinPixels:ue,sizeMaxPixels:Ge,transitions:tr,updateTriggers:er}=this.props,Lr=this.getSubLayerClass(\"characters\",Dg),zi=this.getSubLayerClass(\"background\",Bg);return[tt&&new zi({getFillColor:Y,getLineColor:rt,getLineWidth:$,padding:K,getPosition:w,getSize:R,getAngle:N,getPixelOffset:j,billboard:ut,sizeScale:Zt,sizeUnits:le,sizeMinPixels:ue,sizeMaxPixels:Ge,transitions:tr&&{getPosition:tr.getPosition,getAngle:tr.getAngle,getSize:tr.getSize,getFillColor:tr.getBackgroundColor,getLineColor:tr.getBorderColor,getLineWidth:tr.getBorderWidth,getPixelOffset:tr.getPixelOffset}},this.getSubLayerProps({id:\"background\",updateTriggers:{getPosition:er.getPosition,getAngle:er.getAngle,getSize:er.getSize,getFillColor:er.getBackgroundColor,getLineColor:er.getBorderColor,getLineWidth:er.getBorderWidth,getPixelOffset:er.getPixelOffset,getBoundingRect:{getText:er.getText,getTextAnchor:er.getTextAnchor,getAlignmentBaseline:er.getAlignmentBaseline,styleVersion:c}}}),{data:f.attributes&&f.attributes.background?{length:f.length,attributes:f.attributes.background}:f,_dataDiff:_,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new Lr({sdf:Pt.sdf,smoothing:Number.isFinite(Pt.smoothing)?Pt.smoothing:Og.smoothing,outlineWidth:Ot/(Pt.radius||Og.radius),outlineColor:Kt,iconAtlas:n,iconMapping:o,getPosition:w,getColor:C,getSize:R,getAngle:N,getPixelOffset:j,billboard:ut,sizeScale:Zt*s,sizeUnits:le,sizeMinPixels:ue*s,sizeMaxPixels:Ge*s,transitions:tr&&{getPosition:tr.getPosition,getAngle:tr.getAngle,getColor:tr.getColor,getSize:tr.getSize,getPixelOffset:tr.getPixelOffset}},this.getSubLayerProps({id:\"characters\",updateTriggers:{all:er.getText,getPosition:er.getPosition,getAngle:er.getAngle,getColor:er.getColor,getSize:er.getSize,getPixelOffset:er.getPixelOffset,getIconOffsets:{getTextAnchor:er.getTextAnchor,getAlignmentBaseline:er.getAlignmentBaseline,styleVersion:c}}}),{data:f,_dataDiff:_,startIndices:t,numInstances:r,getIconOffsets:this.getIconOffsets,getIcon:i})]}static set fontAtlasCacheLimit(t){xq(t)}};G(cf,\"defaultProps\",rpt);G(cf,\"layerName\",\"TextLayer\");var H2={circle:{type:Xu,props:{filled:\"filled\",stroked:\"stroked\",lineWidthMaxPixels:\"lineWidthMaxPixels\",lineWidthMinPixels:\"lineWidthMinPixels\",lineWidthScale:\"lineWidthScale\",lineWidthUnits:\"lineWidthUnits\",pointRadiusMaxPixels:\"radiusMaxPixels\",pointRadiusMinPixels:\"radiusMinPixels\",pointRadiusScale:\"radiusScale\",pointRadiusUnits:\"radiusUnits\",pointAntialiasing:\"antialiasing\",pointBillboard:\"billboard\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\",getLineWidth:\"getLineWidth\",getPointRadius:\"getRadius\"}},icon:{type:Sp,props:{iconAtlas:\"iconAtlas\",iconMapping:\"iconMapping\",iconSizeMaxPixels:\"sizeMaxPixels\",iconSizeMinPixels:\"sizeMinPixels\",iconSizeScale:\"sizeScale\",iconSizeUnits:\"sizeUnits\",iconAlphaCutoff:\"alphaCutoff\",iconBillboard:\"billboard\",getIcon:\"getIcon\",getIconAngle:\"getAngle\",getIconColor:\"getColor\",getIconPixelOffset:\"getPixelOffset\",getIconSize:\"getSize\"}},text:{type:cf,props:{textSizeMaxPixels:\"sizeMaxPixels\",textSizeMinPixels:\"sizeMinPixels\",textSizeScale:\"sizeScale\",textSizeUnits:\"sizeUnits\",textBackground:\"background\",textBackgroundPadding:\"backgroundPadding\",textFontFamily:\"fontFamily\",textFontWeight:\"fontWeight\",textLineHeight:\"lineHeight\",textMaxWidth:\"maxWidth\",textOutlineColor:\"outlineColor\",textOutlineWidth:\"outlineWidth\",textWordBreak:\"wordBreak\",textCharacterSet:\"characterSet\",textBillboard:\"billboard\",textFontSettings:\"fontSettings\",getText:\"getText\",getTextAngle:\"getAngle\",getTextColor:\"getColor\",getTextPixelOffset:\"getPixelOffset\",getTextSize:\"getSize\",getTextAnchor:\"getTextAnchor\",getTextAlignmentBaseline:\"getAlignmentBaseline\",getTextBackgroundColor:\"getBackgroundColor\",getTextBorderColor:\"getBorderColor\",getTextBorderWidth:\"getBorderWidth\"}}},q2={type:gc,props:{lineWidthUnits:\"widthUnits\",lineWidthScale:\"widthScale\",lineWidthMinPixels:\"widthMinPixels\",lineWidthMaxPixels:\"widthMaxPixels\",lineJointRounded:\"jointRounded\",lineCapRounded:\"capRounded\",lineMiterLimit:\"miterLimit\",lineBillboard:\"billboard\",getLineColor:\"getColor\",getLineWidth:\"getWidth\"}},L3={type:_c,props:{extruded:\"extruded\",filled:\"filled\",wireframe:\"wireframe\",elevationScale:\"elevationScale\",material:\"material\",_full3d:\"_full3d\",getElevation:\"getElevation\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\"}};function Hv({type:e,props:t}){let r={};for(let i in t)r[i]=e.defaultProps[t[i]];return r}function k3(e,t){let{transitions:r,updateTriggers:i}=e.props,s={updateTriggers:{},transitions:r&&{getPosition:r.geometry}};for(let n in t){let o=t[n],c=e.props[n];n.startsWith(\"get\")&&(c=e.getSubLayerAccessor(c),s.updateTriggers[o]=i[n],r&&(s.transitions[o]=r[n])),s[o]=c}return s}function Eq(e){if(Array.isArray(e))return e;switch(nr.assert(e.type,\"GeoJSON does not have type\"),e.type){case\"Feature\":return[e];case\"FeatureCollection\":return nr.assert(Array.isArray(e.features),\"GeoJSON does not have features array\"),e.features;default:return[{geometry:e}]}}function JO(e,t,r={}){let i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:s=0,endRow:n=e.length}=r;for(let o=s;o{c.push(r({geometry:{type:\"Point\",coordinates:C}},i,s))});break;case\"LineString\":f.push(r({geometry:e},i,s));break;case\"MultiLineString\":o.forEach(C=>{f.push(r({geometry:{type:\"LineString\",coordinates:C}},i,s))});break;case\"Polygon\":_.push(r({geometry:e},i,s)),o.forEach(C=>{w.push(r({geometry:{type:\"LineString\",coordinates:C}},i,s))});break;case\"MultiPolygon\":o.forEach(C=>{_.push(r({geometry:{type:\"Polygon\",coordinates:C}},i,s)),C.forEach(R=>{w.push(r({geometry:{type:\"LineString\",coordinates:R}},i,s))})});break;default:}}var ipt={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function npt(e,t){let r=ipt[e];for(nr.assert(r,\"Unknown GeoJSON type \".concat(e));t&&--r>0;)t=t[0];return t&&Number.isFinite(t[0])}function Pq(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function R3(e){return e.geometry.coordinates}function Iq(e,t){let r=Pq(),{pointFeatures:i,lineFeatures:s,polygonFeatures:n,polygonOutlineFeatures:o}=e;return r.points.data=i,r.points._dataDiff=t.pointFeatures&&(()=>t.pointFeatures),r.points.getPosition=R3,r.lines.data=s,r.lines._dataDiff=t.lineFeatures&&(()=>t.lineFeatures),r.lines.getPath=R3,r.polygons.data=n,r.polygons._dataDiff=t.polygonFeatures&&(()=>t.polygonFeatures),r.polygons.getPolygon=R3,r.polygonsOutline.data=o,r.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&(()=>t.polygonOutlineFeatures),r.polygonsOutline.getPath=R3,r}function Cq(e,t){let r=Pq(),{points:i,lines:s,polygons:n}=e,o=oq(e,t);return r.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:3,value:o.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},r.lines.data={length:s.pathIndices.value.length-1,startIndices:s.pathIndices.value,attributes:{...s.attributes,getPath:s.positions,instancePickingColors:{size:3,value:o.lines}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},r.lines._pathType=\"open\",r.polygons.data={length:n.polygonIndices.value.length-1,startIndices:n.polygonIndices.value,attributes:{...n.attributes,getPolygon:n.positions,pickingColors:{size:3,value:o.polygons}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.polygons._normalize=!1,n.triangles&&(r.polygons.data.attributes.indices=n.triangles.value),r.polygonsOutline.data={length:n.primitivePolygonIndices.value.length-1,startIndices:n.primitivePolygonIndices.value,attributes:{...n.attributes,getPath:n.positions,instancePickingColors:{size:3,value:o.polygons}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.polygonsOutline._pathType=\"open\",r}var spt=[\"points\",\"linestrings\",\"polygons\"],opt={...Hv(H2.circle),...Hv(H2.icon),...Hv(H2.text),...Hv(q2),...Hv(L3),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:\"object\",value:null},iconMapping:{type:\"object\",value:{}},getIcon:{type:\"accessor\",value:e=>e.properties.icon},getText:{type:\"accessor\",value:e=>e.properties.text},pointType:\"circle\",getRadius:{deprecatedFor:\"getPointRadius\"}},xm=class extends tn{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:t,changeFlags:r}){if(!r.dataChanged)return;let{data:i}=this.props,s=i&&\"points\"in i&&\"polygons\"in i&&\"lines\"in i;this.setState({binary:s}),s?this._updateStateBinary({props:t,changeFlags:r}):this._updateStateJSON({props:t,changeFlags:r})}_updateStateBinary({props:t,changeFlags:r}){let i=Cq(t.data,this.encodePickingColor);this.setState({layerProps:i})}_updateStateJSON({props:t,changeFlags:r}){let i=Eq(t.data),s=this.getSubLayerRow.bind(this),n={},o={};if(Array.isArray(r.dataChanged)){let f=this.state.features;for(let _ in f)n[_]=f[_].slice(),o[_]=[];for(let _ of r.dataChanged){let w=JO(i,s,_);for(let C in f)o[C].push(I3({data:n[C],getIndex:R=>R.__source.index,dataRange:_,replace:w[C]}))}}else n=JO(i,s);let c=Iq(n,o);this.setState({features:n,featuresDiff:o,layerProps:c})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i,sourceLayer:s}=r;return r.featureType=spt.find(n=>s.id.startsWith(\"\".concat(this.id,\"-\").concat(n,\"-\"))),i>=0&&s.id.startsWith(\"\".concat(this.id,\"-points-text\"))&&this.state.binary&&(r.index=this.props.data.points.globalFeatureIds.value[i]),r}_updateAutoHighlight(t){let r=\"\".concat(this.id,\"-points-\"),i=t.featureType===\"points\";for(let s of this.getSubLayers())s.id.startsWith(r)===i&&s.updateAutoHighlight(t)}_renderPolygonLayer(){let{extruded:t,wireframe:r}=this.props,{layerProps:i}=this.state,s=\"polygons-fill\",n=this.shouldRenderSubLayer(s,i.polygons.data)&&this.getSubLayerClass(s,L3.type);if(n){let o=k3(this,L3.props),c=t&&r;return c||delete o.getLineColor,o.updateTriggers.lineColors=c,new n(o,this.getSubLayerProps({id:s,updateTriggers:o.updateTriggers}),i.polygons)}return null}_renderLineLayers(){let{extruded:t,stroked:r}=this.props,{layerProps:i}=this.state,s=\"polygons-stroke\",n=\"linestrings\",o=!t&&r&&this.shouldRenderSubLayer(s,i.polygonsOutline.data)&&this.getSubLayerClass(s,q2.type),c=this.shouldRenderSubLayer(n,i.lines.data)&&this.getSubLayerClass(n,q2.type);if(o||c){let f=k3(this,q2.props);return[o&&new o(f,this.getSubLayerProps({id:s,updateTriggers:f.updateTriggers}),i.polygonsOutline),c&&new c(f,this.getSubLayerProps({id:n,updateTriggers:f.updateTriggers}),i.lines)]}return null}_renderPointLayers(){let{pointType:t}=this.props,{layerProps:r,binary:i}=this.state,{highlightedObjectIndex:s}=this.props;!i&&Number.isFinite(s)&&(s=r.points.data.findIndex(c=>c.__source.index===s));let n=new Set(t.split(\"+\")),o=[];for(let c of n){let f=\"points-\".concat(c),_=H2[c],w=_&&this.shouldRenderSubLayer(f,r.points.data)&&this.getSubLayerClass(f,_.type);if(w){let C=k3(this,_.props),R=r.points;if(c===\"text\"&&i){let{instancePickingColors:N,...j}=R.data.attributes;R={...R,data:{...R.data,attributes:j}}}o.push(new w(C,this.getSubLayerProps({id:f,updateTriggers:C.updateTriggers,highlightedObjectIndex:s}),R))}}return o}renderLayers(){let{extruded:t}=this.props,r=this._renderPolygonLayer(),i=this._renderLineLayers(),s=this._renderPointLayers();return[!t&&r,i,s,t&&r]}getSubLayerAccessor(t){let{binary:r}=this.state;return!r||typeof t!=\"function\"?super.getSubLayerAccessor(t):(i,s)=>{let{data:n,index:o}=s,c=sq(n,o);return t(c,s)}}};G(xm,\"layerName\",\"GeoJsonLayer\");G(xm,\"defaultProps\",opt);var f$t=1/Math.PI*180,d$t=1/180*Math.PI,apt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...apt}};var Z2=globalThis.mathgl.config;function Y2(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qv(e,t,r){let i=Z2.EPSILON;r&&(Z2.EPSILON=r);try{if(e===t)return!0;if(Y2(e)&&Y2(t)){if(e.length!==t.length)return!1;for(let s=0;s{t([r,i],[s,n],o,c)},this.options):Rq(this.points,t,this.options)}modifyWindingDirection(t){return this.isFlatArray?tB(this.points,t,this.options):kq(this.points,t,this.options)}};function nB(e,t,r=2,i,s=\"xy\"){let n=t&&t.length,o=n?t[0]*r:e.length,c=Oq(e,0,o,r,!0,i&&i[0],s),f=[];if(!c||c.next===c.prev)return f;let _,w,C,R,N,j,Y;if(n&&(c=ppt(e,t,c,r,i,s)),e.length>80*r){R=w=e[0],N=C=e[1];for(let rt=r;rtw&&(w=j),Y>C&&(C=Y);_=Math.max(w-R,C-N),_=_!==0?32767/_:0}return Q2(c,f,r,R,N,_,0),f}function Oq(e,t,r,i,s,n,o){let c,f;n===void 0&&(n=Zv(e,{start:t,end:r,size:i,plane:o}));let _=Fg[o[0]],w=Fg[o[1]];if(s===n<0)for(c=t;c=t;c-=i)f=Dq(c,e[c+_],e[c+w],f);return f&&F3(f,f.next)&&(X2(f),f=f.next),f}function zg(e,t){if(!e)return e;t||(t=e);let r=e,i;do if(i=!1,!r.steiner&&(F3(r,r.next)||ys(r.prev,r,r.next)===0)){if(X2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function Q2(e,t,r,i,s,n,o){if(!e)return;!o&&n&&ypt(e,i,s,n);let c=e,f,_;for(;e.prev!==e.next;){if(f=e.prev,_=e.next,n?hpt(e,i,s,n):upt(e)){t.push(f.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),X2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=fpt(zg(e),t,r),Q2(e,t,r,i,s,n,2)):o===2&&dpt(e,t,r,i,s,n):Q2(zg(e),t,r,i,s,n,1);break}}}function upt(e){let t=e.prev,r=e,i=e.next;if(ys(t,r,i)>=0)return!1;let s=t.x,n=r.x,o=i.x,c=t.y,f=r.y,_=i.y,w=sn?s>o?s:o:n>o?n:o,N=c>f?c>_?c:_:f>_?f:_,j=i.next;for(;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=C&&j.y<=N&&Qv(s,c,n,f,o,_,j.x,j.y)&&ys(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function hpt(e,t,r,i){let s=e.prev,n=e,o=e.next;if(ys(s,n,o)>=0)return!1;let c=s.x,f=n.x,_=o.x,w=s.y,C=n.y,R=o.y,N=cf?c>_?c:_:f>_?f:_,rt=w>C?w>R?w:R:C>R?C:R,$=iB(N,j,t,r,i),K=iB(Y,rt,t,r,i),tt=e.prevZ,ut=e.nextZ;for(;tt&&tt.z>=$&&ut&&ut.z<=K;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&Qv(c,w,f,C,_,R,tt.x,tt.y)&&ys(tt.prev,tt,tt.next)>=0||(tt=tt.prevZ,ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&Qv(c,w,f,C,_,R,ut.x,ut.y)&&ys(ut.prev,ut,ut.next)>=0))return!1;ut=ut.nextZ}for(;tt&&tt.z>=$;){if(tt.x>=N&&tt.x<=Y&&tt.y>=j&&tt.y<=rt&&tt!==s&&tt!==o&&Qv(c,w,f,C,_,R,tt.x,tt.y)&&ys(tt.prev,tt,tt.next)>=0)return!1;tt=tt.prevZ}for(;ut&&ut.z<=K;){if(ut.x>=N&&ut.x<=Y&&ut.y>=j&&ut.y<=rt&&ut!==s&&ut!==o&&Qv(c,w,f,C,_,R,ut.x,ut.y)&&ys(ut.prev,ut,ut.next)>=0)return!1;ut=ut.nextZ}return!0}function fpt(e,t,r){let i=e;do{let s=i.prev,n=i.next.next;!F3(s,n)&&Bq(s,i,i.next,n)&&$2(s,n)&&$2(n,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(n.i/r|0),X2(i),X2(i.next),i=e=n),i=i.next}while(i!==e);return zg(i)}function dpt(e,t,r,i,s,n){let o=e;do{let c=o.next.next;for(;c!==o.prev;){if(o.i!==c.i&&bpt(o,c)){let f=Fq(o,c);o=zg(o,o.next),f=zg(f,f.next),Q2(o,t,r,i,s,n,0),Q2(f,t,r,i,s,n,0);return}c=c.next}o=o.next}while(o!==e)}function ppt(e,t,r,i,s,n){let o=[],c,f,_,w,C;for(c=0,f=t.length;c=r.next.y&&r.next.y!==r.y){let R=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(R<=i&&R>n&&(n=R,o=r.x=r.x&&r.x>=f&&i!==r.x&&Qv(s<_?i:n,s,f,_,s<_?n:i,s,r.x,r.y)&&(C=Math.abs(s-r.y)/(i-r.x),$2(r,e)&&(Co.x||r.x===o.x&&_pt(o,r)))&&(o=r,w=C)),r=r.next;while(r!==c);return o}function _pt(e,t){return ys(e.prev,e,t.prev)<0&&ys(t.next,e,e.next)<0}function ypt(e,t,r,i){let s=e;do s.z===0&&(s.z=iB(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,vpt(s)}function vpt(e){let t,r,i=1,s,n,o,c,f,_;do{for(n=e,e=null,_=null,s=0;n;){for(s++,c=n,o=0,r=0;r0||f>0&&c;)o!==0&&(f===0||!c||n.z<=c.z)?(t=n,n=n.nextZ,o--):(t=c,c=c.nextZ,f--),_?_.nextZ=t:e=t,t.prevZ=_,_=t;n=c}_.nextZ=null,i*=2}while(s>1);return e}function iB(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function xpt(e){let t=e,r=e;do(t.x=(e-o)*(n-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(n-c)>=(s-o)*(i-c)}function bpt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!wpt(e,t)&&($2(e,t)&&$2(t,e)&&Spt(e,t)&&(ys(e.prev,e,t.prev)||ys(e,t.prev,t))||F3(e,t)&&ys(e.prev,e,e.next)>0&&ys(t.prev,t,t.next)>0)}function ys(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function F3(e,t){return e.x===t.x&&e.y===t.y}function Bq(e,t,r,i){let s=B3(ys(e,t,r)),n=B3(ys(e,t,i)),o=B3(ys(r,i,e)),c=B3(ys(r,i,t));return!!(s!==n&&o!==c||s===0&&O3(e,r,t)||n===0&&O3(e,i,t)||o===0&&O3(r,e,i)||c===0&&O3(r,t,i))}function O3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function B3(e){return e>0?1:e<0?-1:0}function wpt(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Bq(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function $2(e,t){return ys(e.prev,e,e.next)<0?ys(e,t,e.next)>=0&&ys(e,e.prev,t)>=0:ys(e,t,e.prev)<0||ys(e,e.next,t)<0}function Spt(e,t){let r=e,i=!1,s=(e.x+t.x)/2,n=(e.y+t.y)/2;do r.y>n!=r.next.y>n&&r.next.y!==r.y&&s<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function Fq(e,t){let r=new K2(e.i,e.x,e.y),i=new K2(t.i,t.x,t.y),s=e.next,n=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,n.next=i,i.prev=n,i}function Dq(e,t,r,i){let s=new K2(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function X2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var K2=class{constructor(t,r,i){G(this,\"i\",void 0),G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"prev\",null),G(this,\"next\",null),G(this,\"z\",0),G(this,\"prevZ\",null),G(this,\"nextZ\",null),G(this,\"steiner\",!1),this.i=t,this.x=r,this.y=i}};function Uq(e){e(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),e(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),e(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),e.WGS84=e[\"EPSG:4326\"],e[\"EPSG:3785\"]=e[\"EPSG:3857\"],e.GOOGLE=e[\"EPSG:3857\"],e[\"EPSG:900913\"]=e[\"EPSG:3857\"],e[\"EPSG:102113\"]=e[\"EPSG:3857\"]}var uf=1,hf=2,Tp=3,Vq=4,J2=5,sB=6378137,jq=6356752314e-3,oB=.0066943799901413165,Ng=484813681109536e-20,de=Math.PI/2,Gq=.16666666666666666,Wq=.04722222222222222,Hq=.022156084656084655,we=1e-10,vs=.017453292519943295,yc=57.29577951308232,Fi=Math.PI/4,bm=Math.PI*2,xs=3.14159265359;var Ll={};Ll.greenwich=0;Ll.lisbon=-9.131906111111;Ll.paris=2.337229166667;Ll.bogota=-74.080916666667;Ll.madrid=-3.687938888889;Ll.rome=12.452333333333;Ll.bern=7.439583333333;Ll.jakarta=106.807719444444;Ll.ferro=-17.666666666667;Ll.brussels=4.367975;Ll.stockholm=18.058277777778;Ll.athens=23.7163375;Ll.oslo=10.722916666667;var qq={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}};var Zq=/[\\s_\\-\\/\\(\\)]/g;function au(e,t){if(e[t])return e[t];for(var r=Object.keys(e),i=t.toLowerCase().replace(Zq,\"\"),s=-1,n,o;++s=this.text.length)return;e=this.text[this.place++]}switch(this.state){case eS:return this.neutral(e);case Qq:return this.keyword(e);case z3:return this.quoted(e);case Xq:return this.afterquote(e);case $q:return this.number(e);case aB:return}};Mp.prototype.afterquote=function(e){if(e==='\"'){this.word+='\"',this.state=z3;return}if(N3.test(e)){this.word=this.word.trim(),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in afterquote yet, index '+this.place)};Mp.prototype.afterItem=function(e){if(e===\",\"){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=eS;return}if(e===\"]\"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=eS,this.currentObject=this.stack.pop(),this.currentObject||(this.state=aB);return}};Mp.prototype.number=function(e){if(Kq.test(e)){this.word+=e;return}if(N3.test(e)){this.word=parseFloat(this.word),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in number yet, index '+this.place)};Mp.prototype.quoted=function(e){if(e==='\"'){this.state=Xq;return}this.word+=e};Mp.prototype.keyword=function(e){if(Cpt.test(e)){this.word+=e;return}if(e===\"[\"){var t=[];t.push(this.word),this.level++,this.root===null?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,this.state=eS;return}if(N3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in keyword yet, index '+this.place)};Mp.prototype.neutral=function(e){if(Ipt.test(e)){this.word=e,this.state=Qq;return}if(e==='\"'){this.word=\"\",this.state=z3;return}if(Kq.test(e)){this.word=e,this.state=$q;return}if(N3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in neutral yet, index '+this.place)};Mp.prototype.output=function(){for(;this.place0?90:-90),e.lat_ts=e.lat1):!e.lat_ts&&e.lat0&&e.projName===\"Polar_Stereographic\"&&(e.lat_ts=e.lat0,e.lat0=ud(e.lat0>0?90:-90))}function U3(e){var t=Yq(e),r=t.shift(),i=t.shift();t.unshift([\"name\",i]),t.unshift([\"type\",r]);var s={};return Ug(t,s),Dpt(s),s}function Ku(e){var t=this;if(arguments.length===2){var r=arguments[1];typeof r==\"string\"?r.charAt(0)===\"+\"?Ku[e]=tS(arguments[1]):Ku[e]=U3(arguments[1]):Ku[e]=r}else if(arguments.length===1){if(Array.isArray(e))return e.map(function(i){Array.isArray(i)?Ku.apply(t,i):Ku(i)});if(typeof e==\"string\"){if(e in Ku)return Ku[e]}else\"EPSG\"in e?Ku[\"EPSG:\"+e.EPSG]=e:\"ESRI\"in e?Ku[\"ESRI:\"+e.ESRI]=e:\"IAU2000\"in e?Ku[\"IAU2000:\"+e.IAU2000]=e:console.log(e);return}}Uq(Ku);var $v=Ku;function Opt(e){return typeof e==\"string\"}function Bpt(e){return e in $v}var Fpt=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];function zpt(e){return Fpt.some(function(t){return e.indexOf(t)>-1})}var Npt=[\"3857\",\"900913\",\"3785\",\"102113\"];function Upt(e){var t=au(e,\"authority\");if(t){var r=au(t,\"epsg\");return r&&Npt.indexOf(r)>-1}}function Vpt(e){var t=au(e,\"extension\");if(t)return au(t,\"proj4\")}function jpt(e){return e[0]===\"+\"}function Gpt(e){if(Opt(e)){if(Bpt(e))return $v[e];if(zpt(e)){var t=U3(e);if(Upt(t))return $v[\"EPSG:3857\"];var r=Vpt(t);return r?tS(r):t}if(jpt(e))return tS(e)}else return e}var tZ=Gpt;function lB(e,t){e=e||{};var r,i;if(!t)return e;for(i in t)r=t[i],r!==void 0&&(e[i]=r);return e}function il(e,t,r){var i=e*t;return r/Math.sqrt(1-i*i)}function hd(e){return e<0?-1:1}function Ie(e){return Math.abs(e)<=xs?e:e-hd(e)*bm}function kl(e,t,r){var i=e*r,s=.5*e;return i=Math.pow((1-i)/(1+i),s),Math.tan(.5*(de-t))/i}function Ep(e,t){for(var r=.5*e,i,s,n=de-2*Math.atan(t),o=0;o<=15;o++)if(i=e*Math.sin(n),s=de-2*Math.atan(t*Math.pow((1-i)/(1+i),r))-n,n+=s,Math.abs(s)<=1e-10)return n;return-9999}function Wpt(){var e=this.b/this.a;this.es=1-e*e,\"x0\"in this||(this.x0=0),\"y0\"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Hpt(e){var t=e.x,r=e.y;if(r*yc>90&&r*yc<-90&&t*yc>180&&t*yc<-180)return null;var i,s;if(Math.abs(Math.abs(r)-de)<=we)return null;if(this.sphere)i=this.x0+this.a*this.k0*Ie(t-this.long0),s=this.y0+this.a*this.k0*Math.log(Math.tan(Fi+.5*r));else{var n=Math.sin(r),o=kl(this.e,r,n);i=this.x0+this.a*this.k0*Ie(t-this.long0),s=this.y0-this.a*this.k0*Math.log(o)}return e.x=i,e.y=s,e}function qpt(e){var t=e.x-this.x0,r=e.y-this.y0,i,s;if(this.sphere)s=de-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else{var n=Math.exp(-r/(this.a*this.k0));if(s=Ep(this.e,n),s===-9999)return null}return i=Ie(this.long0+t/(this.a*this.k0)),e.x=i,e.y=s,e}var Zpt=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],eZ={init:Wpt,forward:Hpt,inverse:qpt,names:Zpt};function Ypt(){}function rZ(e){return e}var Qpt=[\"longlat\",\"identity\"],iZ={init:Ypt,forward:rZ,inverse:rZ,names:Qpt};var $pt=[eZ,iZ],V3={},j3=[];function nZ(e,t){var r=j3.length;return e.names?(j3[r]=e,e.names.forEach(function(i){V3[i.toLowerCase()]=r}),this):(console.log(t),!0)}function Xpt(e){if(!e)return!1;var t=e.toLowerCase();if(typeof V3[t]<\"u\"&&j3[V3[t]])return j3[V3[t]]}function Kpt(){$pt.forEach(nZ)}var sZ={start:Kpt,add:nZ,get:Xpt};var Xr={};Xr.MERIT={a:6378137,rf:298.257,ellipseName:\"MERIT 1983\"};Xr.SGS85={a:6378136,rf:298.257,ellipseName:\"Soviet Geodetic System 85\"};Xr.GRS80={a:6378137,rf:298.257222101,ellipseName:\"GRS 1980(IUGG, 1980)\"};Xr.IAU76={a:6378140,rf:298.257,ellipseName:\"IAU 1976\"};Xr.airy={a:6377563396e-3,b:635625691e-2,ellipseName:\"Airy 1830\"};Xr.APL4={a:6378137,rf:298.25,ellipseName:\"Appl. Physics. 1965\"};Xr.NWL9D={a:6378145,rf:298.25,ellipseName:\"Naval Weapons Lab., 1965\"};Xr.mod_airy={a:6377340189e-3,b:6356034446e-3,ellipseName:\"Modified Airy\"};Xr.andrae={a:637710443e-2,rf:300,ellipseName:\"Andrae 1876 (Den., Iclnd.)\"};Xr.aust_SA={a:6378160,rf:298.25,ellipseName:\"Australian Natl & S. Amer. 1969\"};Xr.GRS67={a:6378160,rf:298.247167427,ellipseName:\"GRS 67(IUGG 1967)\"};Xr.bessel={a:6377397155e-3,rf:299.1528128,ellipseName:\"Bessel 1841\"};Xr.bess_nam={a:6377483865e-3,rf:299.1528128,ellipseName:\"Bessel 1841 (Namibia)\"};Xr.clrk66={a:63782064e-1,b:63565838e-1,ellipseName:\"Clarke 1866\"};Xr.clrk80={a:6378249145e-3,rf:293.4663,ellipseName:\"Clarke 1880 mod.\"};Xr.clrk80ign={a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:\"Clarke 1880 (IGN)\"};Xr.clrk58={a:6378293645208759e-9,rf:294.2606763692654,ellipseName:\"Clarke 1858\"};Xr.CPM={a:63757387e-1,rf:334.29,ellipseName:\"Comm. des Poids et Mesures 1799\"};Xr.delmbr={a:6376428,rf:311.5,ellipseName:\"Delambre 1810 (Belgium)\"};Xr.engelis={a:637813605e-2,rf:298.2566,ellipseName:\"Engelis 1985\"};Xr.evrst30={a:6377276345e-3,rf:300.8017,ellipseName:\"Everest 1830\"};Xr.evrst48={a:6377304063e-3,rf:300.8017,ellipseName:\"Everest 1948\"};Xr.evrst56={a:6377301243e-3,rf:300.8017,ellipseName:\"Everest 1956\"};Xr.evrst69={a:6377295664e-3,rf:300.8017,ellipseName:\"Everest 1969\"};Xr.evrstSS={a:6377298556e-3,rf:300.8017,ellipseName:\"Everest (Sabah & Sarawak)\"};Xr.fschr60={a:6378166,rf:298.3,ellipseName:\"Fischer (Mercury Datum) 1960\"};Xr.fschr60m={a:6378155,rf:298.3,ellipseName:\"Fischer 1960\"};Xr.fschr68={a:6378150,rf:298.3,ellipseName:\"Fischer 1968\"};Xr.helmert={a:6378200,rf:298.3,ellipseName:\"Helmert 1906\"};Xr.hough={a:6378270,rf:297,ellipseName:\"Hough\"};Xr.intl={a:6378388,rf:297,ellipseName:\"International 1909 (Hayford)\"};Xr.kaula={a:6378163,rf:298.24,ellipseName:\"Kaula 1961\"};Xr.lerch={a:6378139,rf:298.257,ellipseName:\"Lerch 1979\"};Xr.mprts={a:6397300,rf:191,ellipseName:\"Maupertius 1738\"};Xr.new_intl={a:63781575e-1,b:63567722e-1,ellipseName:\"New International 1967\"};Xr.plessis={a:6376523,rf:6355863,ellipseName:\"Plessis 1817 (France)\"};Xr.krass={a:6378245,rf:298.3,ellipseName:\"Krassovsky, 1942\"};Xr.SEasia={a:6378155,b:63567733205e-4,ellipseName:\"Southeast Asia\"};Xr.walbeck={a:6376896,b:63558348467e-4,ellipseName:\"Walbeck\"};Xr.WGS60={a:6378165,rf:298.3,ellipseName:\"WGS 60\"};Xr.WGS66={a:6378145,rf:298.25,ellipseName:\"WGS 66\"};Xr.WGS7={a:6378135,rf:298.26,ellipseName:\"WGS 72\"};var oZ=Xr.WGS84={a:6378137,rf:298.257223563,ellipseName:\"WGS 84\"};Xr.sphere={a:6370997,b:6370997,ellipseName:\"Normal Sphere (r=6370997)\"};function aZ(e,t,r,i){var s=e*e,n=t*t,o=(s-n)/s,c=0;i?(e*=1-o*(Gq+o*(Wq+o*Hq)),s=e*e,o=0):c=Math.sqrt(o);var f=(s-n)/n;return{es:o,e:c,ep2:f}}function lZ(e,t,r,i,s){if(!e){var n=au(Xr,i);n||(n=oZ),e=n.a,t=n.b,r=n.rf}return r&&!t&&(t=(1-1/r)*e),(r===0||Math.abs(e-t)3&&(c.datum_params[3]!==0||c.datum_params[4]!==0||c.datum_params[5]!==0||c.datum_params[6]!==0)&&(c.datum_type=hf,c.datum_params[3]*=Ng,c.datum_params[4]*=Ng,c.datum_params[5]*=Ng,c.datum_params[6]=c.datum_params[6]/1e6+1)),o&&(c.datum_type=Tp,c.grids=o),c.a=r,c.b=i,c.es=s,c.ep2=n,c}var cZ=Jpt;var uZ={};function uB(e,t){var r=new DataView(t),i=eAt(r),s=rAt(r,i),n=iAt(r,s,i),o={header:s,subgrids:n};return uZ[e]=o,o}function hZ(e){if(e===void 0)return null;var t=e.split(\",\");return t.map(tAt)}function tAt(e){if(e.length===0)return null;var t=e[0]===\"@\";return t&&(e=e.slice(1)),e===\"null\"?{name:\"null\",mandatory:!t,grid:null,isNull:!0}:{name:e,mandatory:!t,grid:uZ[e]||null,isNull:!1}}function Xv(e){return e/3600*Math.PI/180}function eAt(e){var t=e.getInt32(8,!1);return t===11?!1:(t=e.getInt32(8,!0),t!==11&&console.warn(\"Failed to detect nadgrid endian-ness, defaulting to little-endian\"),!0)}function rAt(e,t){return{nFields:e.getInt32(8,t),nSubgridFields:e.getInt32(24,t),nSubgrids:e.getInt32(40,t),shiftType:cB(e,56,64).trim(),fromSemiMajorAxis:e.getFloat64(120,t),fromSemiMinorAxis:e.getFloat64(136,t),toSemiMajorAxis:e.getFloat64(152,t),toSemiMinorAxis:e.getFloat64(168,t)}}function cB(e,t,r){return String.fromCharCode.apply(null,new Uint8Array(e.buffer.slice(t,r)))}function iAt(e,t,r){for(var i=176,s=[],n=0;n5e-11?!1:e.datum_type===uf?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]:e.datum_type===hf?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]&&e.datum_params[3]===t.datum_params[3]&&e.datum_params[4]===t.datum_params[4]&&e.datum_params[5]===t.datum_params[5]&&e.datum_params[6]===t.datum_params[6]:!0}function G3(e,t,r){var i=e.x,s=e.y,n=e.z?e.z:0,o,c,f,_;if(s<-de&&s>-1.001*de)s=-de;else if(s>de&&s<1.001*de)s=de;else{if(s<-de)return{x:-1/0,y:-1/0,z:e.z};if(s>de)return{x:1/0,y:1/0,z:e.z}}return i>Math.PI&&(i-=2*Math.PI),c=Math.sin(s),_=Math.cos(s),f=c*c,o=r/Math.sqrt(1-t*f),{x:(o+n)*_*Math.cos(i),y:(o+n)*_*Math.sin(i),z:(o*(1-t)+n)*c}}function W3(e,t,r,i){var s=1e-12,n=s*s,o=30,c,f,_,w,C,R,N,j,Y,rt,$,K,tt,ut=e.x,Pt=e.y,Ot=e.z?e.z:0,Kt,Zt,le;if(c=Math.sqrt(ut*ut+Pt*Pt),f=Math.sqrt(ut*ut+Pt*Pt+Ot*Ot),c/rn&&tti.y||j>i.x||$c&&Math.abs(f.y)>c);if(o<0)return console.log(\"Inverse grid shift iterator failed to converge.\"),i;i.x=Ie(n.x+r.ll[0]),i.y=n.y+r.ll[1]}else isNaN(n.x)||(i.x=e.x+n.x,i.y=e.y+n.y);return i}function mZ(e,t){var r={x:e.x/t.del[0],y:e.y/t.del[1]},i={x:Math.floor(r.x),y:Math.floor(r.y)},s={x:r.x-1*i.x,y:r.y-1*i.y},n={x:Number.NaN,y:Number.NaN},o;if(i.x<0||i.x>=t.lim[0]||i.y<0||i.y>=t.lim[1])return n;o=i.y*t.lim[0]+i.x;var c={x:t.cvs[o][0],y:t.cvs[o][1]};o++;var f={x:t.cvs[o][0],y:t.cvs[o][1]};o+=t.lim[0];var _={x:t.cvs[o][0],y:t.cvs[o][1]};o--;var w={x:t.cvs[o][0],y:t.cvs[o][1]},C=s.x*s.y,R=s.x*(1-s.y),N=(1-s.x)*(1-s.y),j=(1-s.x)*s.y;return n.x=N*c.x+R*f.x+j*w.x+C*_.x,n.y=N*c.y+R*f.y+j*w.y+C*_.y,n}function hB(e,t,r){var i=r.x,s=r.y,n=r.z||0,o,c,f,_={};for(f=0;f<3;f++)if(!(t&&f===2&&r.z===void 0))switch(f===0?(o=i,\"ew\".indexOf(e.axis[f])!==-1?c=\"x\":c=\"y\"):f===1?(o=s,\"ns\".indexOf(e.axis[f])!==-1?c=\"y\":c=\"x\"):(o=n,c=\"z\"),e.axis[f]){case\"e\":_[c]=o;break;case\"w\":_[c]=-o;break;case\"n\":_[c]=o;break;case\"s\":_[c]=-o;break;case\"u\":r[c]!==void 0&&(_.z=o);break;case\"d\":r[c]!==void 0&&(_.z=-o);break;default:return null}return _}function q3(e){var t={x:e[0],y:e[1]};return e.length>2&&(t.z=e[2]),e.length>3&&(t.m=e[3]),t}function yZ(e){_Z(e.x),_Z(e.y)}function _Z(e){if(typeof Number.isFinite==\"function\"){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(typeof e!=\"number\"||e!==e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}function lAt(e,t){return(e.datum.datum_type===uf||e.datum.datum_type===hf||e.datum.datum_type===Tp)&&t.datumCode!==\"WGS84\"||(t.datum.datum_type===uf||t.datum.datum_type===hf||t.datum.datum_type===Tp)&&e.datumCode!==\"WGS84\"}function Vg(e,t,r,i){var s;Array.isArray(r)?r=q3(r):r={x:r.x,y:r.y,z:r.z,m:r.m};var n=r.z!==void 0;if(yZ(r),e.datum&&t.datum&&lAt(e,t)&&(s=new wm(\"WGS84\"),r=Vg(e,s,r,i),e=s),i&&e.axis!==\"enu\"&&(r=hB(e,!1,r)),e.projName===\"longlat\")r={x:r.x*vs,y:r.y*vs,z:r.z||0};else if(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),r=e.inverse(r),!r)return;if(e.from_greenwich&&(r.x+=e.from_greenwich),r=gZ(e.datum,t.datum,r),!!r)return t.from_greenwich&&(r={x:r.x-t.from_greenwich,y:r.y,z:r.z||0}),t.projName===\"longlat\"?r={x:r.x*yc,y:r.y*yc,z:r.z||0}:(r=t.forward(r),t.to_meter&&(r={x:r.x/t.to_meter,y:r.y/t.to_meter,z:r.z||0})),i&&t.axis!==\"enu\"?hB(t,!0,r):(r&&!n&&delete r.z,r)}var vZ=wm(\"WGS84\");function fB(e,t,r,i){var s,n,o;return Array.isArray(r)?(s=Vg(e,t,r,i)||{x:NaN,y:NaN},r.length>2?typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"?typeof s.z==\"number\"?[s.x,s.y,s.z].concat(r.splice(3)):[s.x,s.y,r[2]].concat(r.splice(3)):[s.x,s.y].concat(r.splice(2)):[s.x,s.y]):(n=Vg(e,t,r,i),o=Object.keys(r),o.length===2||o.forEach(function(c){if(typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"){if(c===\"x\"||c===\"y\"||c===\"z\")return}else if(c===\"x\"||c===\"y\")return;n[c]=r[c]}),n)}function xZ(e){return e instanceof wm?e:e.oProj?e.oProj:wm(e)}function cAt(e,t,r){e=xZ(e);var i=!1,s;return typeof t>\"u\"?(t=e,e=vZ,i=!0):(typeof t.x<\"u\"||Array.isArray(t))&&(r=t,t=e,e=vZ,i=!0),t=xZ(t),r?fB(e,t,r):(s={forward:function(n,o){return fB(e,t,n,o)},inverse:function(n,o){return fB(t,e,n,o)}},i&&(s.oProj=t),s)}var vc=cAt;var bZ=6,SZ=\"AJSAJS\",TZ=\"AFAFAF\",Jv=65,xc=73,Ju=79,rS=86,iS=90,MZ={forward:pB,inverse:uAt,toPoint:AB};function pB(e,t){return t=t||5,dAt(hAt({lat:e[1],lon:e[0]}),t)}function uAt(e){var t=mB(PZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat,t.lon,t.lat]:[t.left,t.bottom,t.right,t.top]}function AB(e){var t=mB(PZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function dB(e){return e*(Math.PI/180)}function wZ(e){return 180*(e/Math.PI)}function hAt(e){var t=e.lat,r=e.lon,i=6378137,s=.00669438,n=.9996,o,c,f,_,w,C,R,N=dB(t),j=dB(r),Y,rt;rt=Math.floor((r+180)/6)+1,r===180&&(rt=60),t>=56&&t<64&&r>=3&&r<12&&(rt=32),t>=72&&t<84&&(r>=0&&r<9?rt=31:r>=9&&r<21?rt=33:r>=21&&r<33?rt=35:r>=33&&r<42&&(rt=37)),o=(rt-1)*6-180+3,Y=dB(o),c=s/(1-s),f=i/Math.sqrt(1-s*Math.sin(N)*Math.sin(N)),_=Math.tan(N)*Math.tan(N),w=c*Math.cos(N)*Math.cos(N),C=Math.cos(N)*(j-Y),R=i*((1-s/4-3*s*s/64-5*s*s*s/256)*N-(3*s/8+3*s*s/32+45*s*s*s/1024)*Math.sin(2*N)+(15*s*s/256+45*s*s*s/1024)*Math.sin(4*N)-35*s*s*s/3072*Math.sin(6*N));var $=n*f*(C+(1-_+w)*C*C*C/6+(5-18*_+_*_+72*w-58*c)*C*C*C*C*C/120)+5e5,K=n*(R+f*Math.tan(N)*(C*C/2+(5-_+9*w+4*w*w)*C*C*C*C/24+(61-58*_+_*_+600*w-330*c)*C*C*C*C*C*C/720));return t<0&&(K+=1e7),{northing:Math.round(K),easting:Math.round($),zoneNumber:rt,zoneLetter:fAt(t)}}function mB(e){var t=e.northing,r=e.easting,i=e.zoneLetter,s=e.zoneNumber;if(s<0||s>60)return null;var n=.9996,o=6378137,c=.00669438,f,_=(1-Math.sqrt(1-c))/(1+Math.sqrt(1-c)),w,C,R,N,j,Y,rt,$,K,tt=r-5e5,ut=t;i<\"N\"&&(ut-=1e7),rt=(s-1)*6-180+3,f=c/(1-c),Y=ut/n,$=Y/(o*(1-c/4-3*c*c/64-5*c*c*c/256)),K=$+(3*_/2-27*_*_*_/32)*Math.sin(2*$)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*$)+151*_*_*_/96*Math.sin(6*$),w=o/Math.sqrt(1-c*Math.sin(K)*Math.sin(K)),C=Math.tan(K)*Math.tan(K),R=f*Math.cos(K)*Math.cos(K),N=o*(1-c)/Math.pow(1-c*Math.sin(K)*Math.sin(K),1.5),j=tt/(w*n);var Pt=K-w*Math.tan(K)/N*(j*j/2-(5+3*C+10*R-4*R*R-9*f)*j*j*j*j/24+(61+90*C+298*R+45*C*C-252*f-3*R*R)*j*j*j*j*j*j/720);Pt=wZ(Pt);var Ot=(j-(1+2*C+R)*j*j*j/6+(5-2*R+28*C-3*R*R+8*f+24*C*C)*j*j*j*j*j/120)/Math.cos(K);Ot=rt+wZ(Ot);var Kt;if(e.accuracy){var Zt=mB({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});Kt={top:Zt.lat,right:Zt.lon,bottom:Pt,left:Ot}}else Kt={lat:Pt,lon:Ot};return Kt}function fAt(e){var t=\"Z\";return 84>=e&&e>=72?t=\"X\":72>e&&e>=64?t=\"W\":64>e&&e>=56?t=\"V\":56>e&&e>=48?t=\"U\":48>e&&e>=40?t=\"T\":40>e&&e>=32?t=\"S\":32>e&&e>=24?t=\"R\":24>e&&e>=16?t=\"Q\":16>e&&e>=8?t=\"P\":8>e&&e>=0?t=\"N\":0>e&&e>=-8?t=\"M\":-8>e&&e>=-16?t=\"L\":-16>e&&e>=-24?t=\"K\":-24>e&&e>=-32?t=\"J\":-32>e&&e>=-40?t=\"H\":-40>e&&e>=-48?t=\"G\":-48>e&&e>=-56?t=\"F\":-56>e&&e>=-64?t=\"E\":-64>e&&e>=-72?t=\"D\":-72>e&&e>=-80&&(t=\"C\"),t}function dAt(e,t){var r=\"00000\"+e.easting,i=\"00000\"+e.northing;return e.zoneNumber+e.zoneLetter+pAt(e.easting,e.northing,e.zoneNumber)+r.substr(r.length-5,t)+i.substr(i.length-5,t)}function pAt(e,t,r){var i=EZ(r),s=Math.floor(e/1e5),n=Math.floor(t/1e5)%20;return AAt(s,n,i)}function EZ(e){var t=e%bZ;return t===0&&(t=bZ),t}function AAt(e,t,r){var i=r-1,s=SZ.charCodeAt(i),n=TZ.charCodeAt(i),o=s+e-1,c=n+t,f=!1;o>iS&&(o=o-iS+Jv-1,f=!0),(o===xc||sxc||(o>xc||sJu||(o>Ju||siS&&(o=o-iS+Jv-1),c>rS?(c=c-rS+Jv-1,f=!0):f=!1,(c===xc||nxc||(c>xc||nJu||(c>Ju||nrS&&(c=c-rS+Jv-1);var _=String.fromCharCode(o)+String.fromCharCode(c);return _}function PZ(e){if(e&&e.length===0)throw\"MGRSPoint coverting from nothing\";for(var t=e.length,r=null,i=\"\",s,n=0;!/[A-Z]/.test(s=e.charAt(n));){if(n>=2)throw\"MGRSPoint bad conversion from: \"+e;i+=s,n++}var o=parseInt(i,10);if(n===0||n+3>t)throw\"MGRSPoint bad conversion from: \"+e;var c=e.charAt(n++);if(c<=\"A\"||c===\"B\"||c===\"Y\"||c>=\"Z\"||c===\"I\"||c===\"O\")throw\"MGRSPoint zone letter \"+c+\" not handled: \"+e;r=e.substring(n,n+=2);for(var f=EZ(o),_=mAt(r.charAt(0),f),w=gAt(r.charAt(1),f);w<_At(c);)w+=2e6;var C=t-n;if(C%2!==0)throw`MGRSPoint has to have an even number \nof digits after the zone letter and two 100km letters - front \nhalf for easting meters, second half for \nnorthing meters`+e;var R=C/2,N=0,j=0,Y,rt,$,K,tt;return R>0&&(Y=1e5/Math.pow(10,R),rt=e.substring(n,n+R),N=parseFloat(rt)*Y,$=e.substring(n+R),j=parseFloat($)*Y),K=N+_,tt=j+w,{easting:K,northing:tt,zoneLetter:c,zoneNumber:o,accuracy:Y}}function mAt(e,t){for(var r=SZ.charCodeAt(t-1),i=1e5,s=!1;r!==e.charCodeAt(0);){if(r++,r===xc&&r++,r===Ju&&r++,r>iS){if(s)throw\"Bad character: \"+e;r=Jv,s=!0}i+=1e5}return i}function gAt(e,t){if(e>\"V\")throw\"MGRSPoint given invalid Northing \"+e;for(var r=TZ.charCodeAt(t-1),i=0,s=!1;r!==e.charCodeAt(0);){if(r++,r===xc&&r++,r===Ju&&r++,r>rS){if(s)throw\"Bad character: \"+e;r=Jv,s=!0}i+=1e5}return i}function _At(e){var t;switch(e){case\"C\":t=11e5;break;case\"D\":t=2e6;break;case\"E\":t=28e5;break;case\"F\":t=37e5;break;case\"G\":t=46e5;break;case\"H\":t=55e5;break;case\"J\":t=64e5;break;case\"K\":t=73e5;break;case\"L\":t=82e5;break;case\"M\":t=91e5;break;case\"N\":t=0;break;case\"P\":t=8e5;break;case\"Q\":t=17e5;break;case\"R\":t=26e5;break;case\"S\":t=35e5;break;case\"T\":t=44e5;break;case\"U\":t=53e5;break;case\"V\":t=62e5;break;case\"W\":t=7e6;break;case\"X\":t=79e5;break;default:t=-1}if(t>=0)return t;throw\"Invalid zone letter: \"+e}function tx(e,t,r){if(!(this instanceof tx))return new tx(e,t,r);if(Array.isArray(e))this.x=e[0],this.y=e[1],this.z=e[2]||0;else if(typeof e==\"object\")this.x=e.x,this.y=e.y,this.z=e.z||0;else if(typeof e==\"string\"&&typeof t>\"u\"){var i=e.split(\",\");this.x=parseFloat(i[0],10),this.y=parseFloat(i[1],10),this.z=parseFloat(i[2],10)||0}else this.x=e,this.y=t,this.z=r||0;console.warn(\"proj4.Point will be removed in version 3, use proj4.toPoint\")}tx.fromMGRS=function(e){return new tx(AB(e))};tx.prototype.toMGRS=function(e){return pB([this.x,this.y],e)};var IZ=tx;var yAt=1,vAt=.25,CZ=.046875,LZ=.01953125,kZ=.01068115234375,xAt=.75,bAt=.46875,wAt=.013020833333333334,SAt=.007120768229166667,TAt=.3645833333333333,MAt=.005696614583333333,EAt=.3076171875;function Z3(e){var t=[];t[0]=yAt-e*(vAt+e*(CZ+e*(LZ+e*kZ))),t[1]=e*(xAt-e*(CZ+e*(LZ+e*kZ)));var r=e*e;return t[2]=r*(bAt-e*(wAt+e*SAt)),r*=e,t[3]=r*(TAt-e*MAt),t[4]=r*e*EAt,t}function jg(e,t,r,i){return r*=t,t*=t,i[0]*e-r*(i[1]+t*(i[2]+t*(i[3]+t*i[4])))}var PAt=20;function Y3(e,t,r){for(var i=1/(1-t),s=e,n=PAt;n;--n){var o=Math.sin(s),c=1-t*o*o;if(c=(jg(s,o,Math.cos(s),r)-e)*(c*Math.sqrt(c))*i,s-=c,Math.abs(c)we?Math.tan(r):0,Y=Math.pow(j,2),rt=Math.pow(Y,2);s=1-this.es*Math.pow(c,2),w=w/Math.sqrt(s);var $=jg(r,c,f,this.en);n=this.a*(this.k0*w*(1+C/6*(1-Y+R+C/20*(5-18*Y+rt+14*R-58*Y*R+C/42*(61+179*rt-rt*Y-479*Y)))))+this.x0,o=this.a*(this.k0*($-this.ml0+c*i*w/2*(1+C/12*(5-Y+9*R+4*N+C/30*(61+rt-58*Y+270*R-330*Y*R+C/56*(1385+543*rt-rt*Y-3111*Y))))))+this.y0}else{var _=f*Math.sin(i);if(Math.abs(Math.abs(_)-1)=1){if(_-1>we)return 93;o=0}else o=Math.acos(o);r<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return e.x=n,e.y=o,e}function LAt(e){var t,r,i,s,n=(e.x-this.x0)*(1/this.a),o=(e.y-this.y0)*(1/this.a);if(this.es)if(t=this.ml0+o/this.k0,r=Y3(t,this.es,this.en),Math.abs(r)we?Math.tan(r):0,j=this.ep2*Math.pow(R,2),Y=Math.pow(j,2),rt=Math.pow(N,2),$=Math.pow(rt,2);t=1-this.es*Math.pow(C,2);var K=n*Math.sqrt(t)/this.k0,tt=Math.pow(K,2);t=t*N,i=r-t*tt/(1-this.es)*.5*(1-tt/12*(5+3*rt-9*j*rt+j-4*Y-tt/30*(61+90*rt-252*j*rt+45*$+46*j-tt/56*(1385+3633*rt+4095*$+1574*$*rt)))),s=Ie(this.long0+K*(1-tt/6*(1+2*rt+j-tt/20*(5+28*rt+24*$+8*j*rt+6*j-tt/42*(61+662*rt+1320*$+720*$*rt))))/R)}else i=de*hd(o),s=0;else{var c=Math.exp(n/this.k0),f=.5*(c-1/c),_=this.lat0+o/this.k0,w=Math.cos(_);t=Math.sqrt((1-Math.pow(w,2))/(1+Math.pow(f,2))),i=Math.asin(t),o<0&&(i=-i),f===0&&w===0?s=0:s=Ie(Math.atan2(f,w)+this.long0)}return e.x=s,e.y=i,e}var kAt=[\"Fast_Transverse_Mercator\",\"Fast Transverse Mercator\"],ex={init:IAt,forward:CAt,inverse:LAt,names:kAt};function Q3(e){var t=Math.exp(e);return t=(t-1/t)/2,t}function Sa(e,t){e=Math.abs(e),t=Math.abs(t);var r=Math.max(e,t),i=Math.min(e,t)/(r||1);return r*Math.sqrt(1+Math.pow(i,2))}function RZ(e){var t=1+e,r=t-1;return r===0?e:e*Math.log(t)/r}function DZ(e){var t=Math.abs(e);return t=RZ(t*(1+t/(Sa(1,t)+1))),e<0?-t:t}function $3(e,t){for(var r=2*Math.cos(2*t),i=e.length-1,s=e[i],n=0,o;--i>=0;)o=-n+r*s+e[i],n=s,s=o;return t+o*Math.sin(2*t)}function OZ(e,t){for(var r=2*Math.cos(t),i=e.length-1,s=e[i],n=0,o;--i>=0;)o=-n+r*s+e[i],n=s,s=o;return Math.sin(t)*o}function BZ(e){var t=Math.exp(e);return t=(t+1/t)/2,t}function gB(e,t,r){for(var i=Math.sin(t),s=Math.cos(t),n=Q3(r),o=BZ(r),c=2*s*o,f=-2*i*n,_=e.length-1,w=e[_],C=0,R=0,N=0,j,Y;--_>=0;)j=R,Y=C,R=w,C=N,w=-j+c*R-f*C+e[_],N=-Y+f*R+c*C;return c=i*o,f=s*n,[c*w-f*N,c*N+f*w]}function RAt(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');this.approx&&(ex.init.apply(this),this.forward=ex.forward,this.inverse=ex.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var e=this.es/(1+Math.sqrt(1-this.es)),t=e/(2-e),r=t;this.cgb[0]=t*(2+t*(-2/3+t*(-2+t*(116/45+t*(26/45+t*(-2854/675)))))),this.cbg[0]=t*(-2+t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))),r=r*t,this.cgb[1]=r*(7/3+t*(-8/5+t*(-227/45+t*(2704/315+t*(2323/945))))),this.cbg[1]=r*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),r=r*t,this.cgb[2]=r*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=r*(-26/15+t*(34/21+t*(8/5+t*(-12686/2835)))),r=r*t,this.cgb[3]=r*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=r*(1237/630+t*(-12/5+t*(-24832/14175))),r=r*t,this.cgb[4]=r*(4174/315+t*(-144838/6237)),this.cbg[4]=r*(-734/315+t*(109598/31185)),r=r*t,this.cgb[5]=r*(601676/22275),this.cbg[5]=r*(444337/155925),r=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+r*(1/4+r*(1/64+r/256))),this.utg[0]=t*(-.5+t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=r*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=r*(13/48+t*(-3/5+t*(557/1440+t*(281/630+t*(-1983433/1935360))))),r=r*t,this.utg[2]=r*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=r*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),r=r*t,this.utg[3]=r*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=r*(49561/161280+t*(-179/168+t*(6601661/7257600))),r=r*t,this.utg[4]=r*(-4583/161280+t*(108847/3991680)),this.gtu[4]=r*(34729/80640+t*(-3418889/1995840)),r=r*t,this.utg[5]=r*(-20648693/638668800),this.gtu[5]=r*(212378941/319334400);var i=$3(this.cbg,this.lat0);this.Zb=-this.Qn*(i+OZ(this.gtu,2*i))}function DAt(e){var t=Ie(e.x-this.long0),r=e.y;r=$3(this.cbg,r);var i=Math.sin(r),s=Math.cos(r),n=Math.sin(t),o=Math.cos(t);r=Math.atan2(i,o*s),t=Math.atan2(n*s,Sa(i,s*o)),t=DZ(Math.tan(t));var c=gB(this.gtu,2*r,2*t);r=r+c[0],t=t+c[1];var f,_;return Math.abs(t)<=2.623395162778?(f=this.a*(this.Qn*t)+this.x0,_=this.a*(this.Qn*r+this.Zb)+this.y0):(f=1/0,_=1/0),e.x=f,e.y=_,e}function OAt(e){var t=(e.x-this.x0)*(1/this.a),r=(e.y-this.y0)*(1/this.a);r=(r-this.Zb)/this.Qn,t=t/this.Qn;var i,s;if(Math.abs(t)<=2.623395162778){var n=gB(this.utg,2*r,2*t);r=r+n[0],t=t+n[1],t=Math.atan(Q3(t));var o=Math.sin(r),c=Math.cos(r),f=Math.sin(t),_=Math.cos(t);r=Math.atan2(o*_,Sa(f,_*c)),t=Math.atan2(f,_*c),i=Ie(t+this.long0),s=$3(this.cgb,r)}else i=1/0,s=1/0;return e.x=i,e.y=s,e}var BAt=[\"Extended_Transverse_Mercator\",\"Extended Transverse Mercator\",\"etmerc\",\"Transverse_Mercator\",\"Transverse Mercator\",\"Gauss Kruger\",\"Gauss_Kruger\",\"tmerc\"],rx={init:RAt,forward:DAt,inverse:OAt,names:BAt};function FZ(e,t){if(e===void 0){if(e=Math.floor((Ie(t)+Math.PI)*30/Math.PI)+1,e<0)return 0;if(e>60)return 60}return e}var FAt=\"etmerc\";function zAt(){var e=FZ(this.zone,this.long0);if(e===void 0)throw new Error(\"unknown utm zone\");this.lat0=0,this.long0=(6*Math.abs(e)-183)*vs,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,rx.init.apply(this),this.forward=rx.forward,this.inverse=rx.inverse}var NAt=[\"Universal Transverse Mercator System\",\"utm\"],zZ={init:zAt,names:NAt,dependsOn:FAt};function X3(e,t){return Math.pow((1-e)/(1+e),t)}var UAt=20;function VAt(){var e=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*e*e),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(e/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Fi)/(Math.pow(Math.tan(.5*this.lat0+Fi),this.C)*X3(this.e*e,this.ratexp))}function jAt(e){var t=e.x,r=e.y;return e.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*r+Fi),this.C)*X3(this.e*Math.sin(r),this.ratexp))-de,e.x=this.C*t,e}function GAt(e){for(var t=1e-14,r=e.x/this.C,i=e.y,s=Math.pow(Math.tan(.5*i+Fi)/this.K,1/this.C),n=UAt;n>0&&(i=2*Math.atan(s*X3(this.e*Math.sin(e.y),-.5*this.e))-de,!(Math.abs(i-e.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=we&&Math.abs(Math.cos(this.lat_ts))>we&&(this.k0=.5*this.cons*il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/kl(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=il(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-de,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function XAt(e){var t=e.x,r=e.y,i=Math.sin(r),s=Math.cos(r),n,o,c,f,_,w,C=Ie(t-this.long0);return Math.abs(Math.abs(t-this.long0)-Math.PI)<=we&&Math.abs(r+this.lat0)<=we?(e.x=NaN,e.y=NaN,e):this.sphere?(n=2*this.k0/(1+this.sinlat0*i+this.coslat0*s*Math.cos(C)),e.x=this.a*n*s*Math.sin(C)+this.x0,e.y=this.a*n*(this.coslat0*i-this.sinlat0*s*Math.cos(C))+this.y0,e):(o=2*Math.atan(this.ssfn_(r,i,this.e))-de,f=Math.cos(o),c=Math.sin(o),Math.abs(this.coslat0)<=we?(_=kl(this.e,r*this.con,this.con*i),w=2*this.a*this.k0*_/this.cons,e.x=this.x0+w*Math.sin(t-this.long0),e.y=this.y0-this.con*w*Math.cos(t-this.long0),e):(Math.abs(this.sinlat0)0?t=Ie(this.long0+Math.atan2(e.x,-1*e.y)):t=Ie(this.long0+Math.atan2(e.x,e.y)):t=Ie(this.long0+Math.atan2(e.x*Math.sin(c),o*this.coslat0*Math.cos(c)-e.y*this.sinlat0*Math.sin(c))),e.x=t,e.y=r,e)}else if(Math.abs(this.coslat0)<=we){if(o<=we)return r=this.lat0,t=this.long0,e.x=t,e.y=r,e;e.x*=this.con,e.y*=this.con,i=o*this.cons/(2*this.a*this.k0),r=this.con*Ep(this.e,i),t=this.con*Ie(this.con*this.long0+Math.atan2(e.x,-1*e.y))}else s=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,o<=we?n=this.X0:(n=Math.asin(Math.cos(s)*this.sinX0+e.y*Math.sin(s)*this.cosX0/o),t=Ie(this.long0+Math.atan2(e.x*Math.sin(s),o*this.cosX0*Math.cos(s)-e.y*this.sinX0*Math.sin(s)))),r=-1*Ep(this.e,Math.tan(.5*(de+n)));return e.x=t,e.y=r,e}var JAt=[\"stere\",\"Stereographic_South_Pole\",\"Polar Stereographic (variant B)\",\"Polar_Stereographic\"],UZ={init:$At,forward:XAt,inverse:KAt,names:JAt,ssfn_:QAt};function tmt(){var e=this.lat0;this.lambda0=this.long0;var t=Math.sin(e),r=this.a,i=this.rf,s=1/i,n=2*s-Math.pow(s,2),o=this.e=Math.sqrt(n);this.R=this.k0*r*Math.sqrt(1-n)/(1-n*Math.pow(t,2)),this.alpha=Math.sqrt(1+n/(1-n)*Math.pow(Math.cos(e),4)),this.b0=Math.asin(t/this.alpha);var c=Math.log(Math.tan(Math.PI/4+this.b0/2)),f=Math.log(Math.tan(Math.PI/4+e/2)),_=Math.log((1+o*t)/(1-o*t));this.K=c-this.alpha*f+this.alpha*o/2*_}function emt(e){var t=Math.log(Math.tan(Math.PI/4-e.y/2)),r=this.e/2*Math.log((1+this.e*Math.sin(e.y))/(1-this.e*Math.sin(e.y))),i=-this.alpha*(t+r)+this.K,s=2*(Math.atan(Math.exp(i))-Math.PI/4),n=this.alpha*(e.x-this.lambda0),o=Math.atan(Math.sin(n)/(Math.sin(this.b0)*Math.tan(s)+Math.cos(this.b0)*Math.cos(n))),c=Math.asin(Math.cos(this.b0)*Math.sin(s)-Math.sin(this.b0)*Math.cos(s)*Math.cos(n));return e.y=this.R/2*Math.log((1+Math.sin(c))/(1-Math.sin(c)))+this.y0,e.x=this.R*o+this.x0,e}function rmt(e){for(var t=e.x-this.x0,r=e.y-this.y0,i=t/this.R,s=2*(Math.atan(Math.exp(r/this.R))-Math.PI/4),n=Math.asin(Math.cos(this.b0)*Math.sin(s)+Math.sin(this.b0)*Math.cos(s)*Math.cos(i)),o=Math.atan(Math.sin(i)/(Math.cos(this.b0)*Math.cos(i)-Math.sin(this.b0)*Math.tan(s))),c=this.lambda0+o/this.alpha,f=0,_=n,w=-1e3,C=0;Math.abs(_-w)>1e-7;){if(++C>20)return;f=1/this.alpha*(Math.log(Math.tan(Math.PI/4+n/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(_))/2)),w=_,_=2*Math.atan(Math.exp(f))-Math.PI/2}return e.x=c,e.y=_,e}var imt=[\"somerc\"],VZ={init:tmt,forward:emt,inverse:rmt,names:imt};var ix=1e-7;function nmt(e){var t=[\"Hotine_Oblique_Mercator\",\"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\"],r=typeof e.PROJECTION==\"object\"?Object.keys(e.PROJECTION)[0]:e.PROJECTION;return\"no_uoff\"in e||\"no_off\"in e||t.indexOf(r)!==-1}function smt(){var e,t,r,i,s,n,o,c,f,_,w=0,C,R=0,N=0,j=0,Y=0,rt=0,$=0,K;this.no_off=nmt(this),this.no_rot=\"no_rot\"in this;var tt=!1;\"alpha\"in this&&(tt=!0);var ut=!1;if(\"rectified_grid_angle\"in this&&(ut=!0),tt&&($=this.alpha),ut&&(w=this.rectified_grid_angle*vs),tt||ut)R=this.longc;else if(N=this.long1,Y=this.lat1,j=this.long2,rt=this.lat2,Math.abs(Y-rt)<=ix||(e=Math.abs(Y))<=ix||Math.abs(e-de)<=ix||Math.abs(Math.abs(this.lat0)-de)<=ix||Math.abs(Math.abs(rt)-de)<=ix)throw new Error;var Pt=1-this.es;t=Math.sqrt(Pt),Math.abs(this.lat0)>we?(c=Math.sin(this.lat0),r=Math.cos(this.lat0),e=1-this.es*c*c,this.B=r*r,this.B=Math.sqrt(1+this.es*this.B*this.B/Pt),this.A=this.B*this.k0*t/e,i=this.B*t/(r*Math.sqrt(e)),s=i*i-1,s<=0?s=0:(s=Math.sqrt(s),this.lat0<0&&(s=-s)),this.E=s+=i,this.E*=Math.pow(kl(this.e,this.lat0,c),this.B)):(this.B=1/t,this.A=this.k0,this.E=i=s=1),tt||ut?(tt?(C=Math.asin(Math.sin($)/i),ut||(w=$)):(C=w,$=Math.asin(i*Math.sin(C))),this.lam0=R-Math.asin(.5*(s-1/s)*Math.tan(C))/this.B):(n=Math.pow(kl(this.e,Y,Math.sin(Y)),this.B),o=Math.pow(kl(this.e,rt,Math.sin(rt)),this.B),s=this.E/n,f=(o-n)/(o+n),_=this.E*this.E,_=(_-o*n)/(_+o*n),e=N-j,e<-Math.pi?j-=bm:e>Math.pi&&(j+=bm),this.lam0=Ie(.5*(N+j)-Math.atan(_*Math.tan(.5*this.B*(N-j))/f)/this.B),C=Math.atan(2*Math.sin(this.B*Ie(N-this.lam0))/(s-1/s)),w=$=Math.asin(i*Math.sin(C))),this.singam=Math.sin(C),this.cosgam=Math.cos(C),this.sinrot=Math.sin(w),this.cosrot=Math.cos(w),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,K=this.A*this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(i*i-1)/Math.cos($))),this.lat0<0&&(this.u_0=-this.u_0)),s=.5*C,this.v_pole_n=this.ArB*Math.log(Math.tan(Fi-s)),this.v_pole_s=this.ArB*Math.log(Math.tan(Fi+s))}function omt(e){var t={},r,i,s,n,o,c,f,_;if(e.x=e.x-this.lam0,Math.abs(Math.abs(e.y)-de)>we){if(o=this.E/Math.pow(kl(this.e,e.y,Math.sin(e.y)),this.B),c=1/o,r=.5*(o-c),i=.5*(o+c),n=Math.sin(this.B*e.x),s=(r*this.singam-n*this.cosgam)/i,Math.abs(Math.abs(s)-1)0?this.v_pole_n:this.v_pole_s,f=this.ArB*e.y;return this.no_rot?(t.x=f,t.y=_):(f-=this.u_0,t.x=_*this.cosrot+f*this.sinrot,t.y=f*this.cosrot-_*this.sinrot),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function amt(e){var t,r,i,s,n,o,c,f={};if(e.x=(e.x-this.x0)*(1/this.a),e.y=(e.y-this.y0)*(1/this.a),this.no_rot?(r=e.y,t=e.x):(r=e.x*this.cosrot-e.y*this.sinrot,t=e.y*this.cosrot+e.x*this.sinrot+this.u_0),i=Math.exp(-this.BrA*r),s=.5*(i-1/i),n=.5*(i+1/i),o=Math.sin(this.BrA*t),c=(o*this.cosgam+s*this.singam)/n,Math.abs(Math.abs(c)-1)we?this.ns=Math.log(i/c)/Math.log(s/f):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=i/(this.ns*Math.pow(s,this.ns)),this.rh=this.a*this.f0*Math.pow(_,this.ns),this.title||(this.title=\"Lambert Conformal Conic\")}}function umt(e){var t=e.x,r=e.y;Math.abs(2*Math.abs(r)-Math.PI)<=we&&(r=hd(r)*(de-2*we));var i=Math.abs(Math.abs(r)-de),s,n;if(i>we)s=kl(this.e,r,Math.sin(r)),n=this.a*this.f0*Math.pow(s,this.ns);else{if(i=r*this.ns,i<=0)return null;n=0}var o=this.ns*Ie(t-this.long0);return e.x=this.k0*(n*Math.sin(o))+this.x0,e.y=this.k0*(this.rh-n*Math.cos(o))+this.y0,e}function hmt(e){var t,r,i,s,n,o=(e.x-this.x0)/this.k0,c=this.rh-(e.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(o*o+c*c),r=1):(t=-Math.sqrt(o*o+c*c),r=-1);var f=0;if(t!==0&&(f=Math.atan2(r*o,r*c)),t!==0||this.ns>0){if(r=1/this.ns,i=Math.pow(t/(this.a*this.f0),r),s=Ep(this.e,i),s===-9999)return null}else s=-de;return n=Ie(f/this.ns+this.long0),e.x=n,e.y=s,e}var fmt=[\"Lambert Tangential Conformal Conic Projection\",\"Lambert_Conformal_Conic\",\"Lambert_Conformal_Conic_1SP\",\"Lambert_Conformal_Conic_2SP\",\"lcc\",\"Lambert Conic Conformal (1SP)\",\"Lambert Conic Conformal (2SP)\"],GZ={init:cmt,forward:umt,inverse:hmt,names:fmt};function dmt(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function pmt(e){var t,r,i,s,n,o,c,f=e.x,_=e.y,w=Ie(f-this.long0);return t=Math.pow((1+this.e*Math.sin(_))/(1-this.e*Math.sin(_)),this.alfa*this.e/2),r=2*(Math.atan(this.k*Math.pow(Math.tan(_/2+this.s45),this.alfa)/t)-this.s45),i=-w*this.alfa,s=Math.asin(Math.cos(this.ad)*Math.sin(r)+Math.sin(this.ad)*Math.cos(r)*Math.cos(i)),n=Math.asin(Math.cos(r)*Math.sin(i)/Math.cos(s)),o=this.n*n,c=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(s/2+this.s45),this.n),e.y=c*Math.cos(o)/1,e.x=c*Math.sin(o)/1,this.czech||(e.y*=-1,e.x*=-1),e}function Amt(e){var t,r,i,s,n,o,c,f,_=e.x;e.x=e.y,e.y=_,this.czech||(e.y*=-1,e.x*=-1),o=Math.sqrt(e.x*e.x+e.y*e.y),n=Math.atan2(e.y,e.x),s=n/Math.sin(this.s0),i=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(i)-Math.sin(this.ad)*Math.cos(i)*Math.cos(s)),r=Math.asin(Math.cos(i)*Math.sin(s)/Math.cos(t)),e.x=this.long0-r/this.alfa,c=t,f=0;var w=0;do e.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(c))/(1-this.e*Math.sin(c)),this.e/2))-this.s45),Math.abs(c-e.y)<1e-10&&(f=1),c=e.y,w+=1;while(f===0&&w<15);return w>=15?null:e}var mmt=[\"Krovak\",\"krovak\"],WZ={init:dmt,forward:pmt,inverse:Amt,names:mmt};function Lo(e,t,r,i,s){return e*s-t*Math.sin(2*s)+r*Math.sin(4*s)-i*Math.sin(6*s)}function Pp(e){return 1-.25*e*(1+e/16*(3+1.25*e))}function Ip(e){return .375*e*(1+.25*e*(1+.46875*e))}function Cp(e){return .05859375*e*e*(1+.75*e)}function Lp(e){return e*e*e*(35/3072)}function kp(e,t,r){var i=t*r;return e/Math.sqrt(1-i*i)}function ff(e){return Math.abs(e)1e-7?(r=e*t,(1-e*e)*(t/(1-r*r)-.5/e*Math.log((1-r)/(1+r)))):2*t}var xmt=1,bmt=2,wmt=3,Smt=4;function Tmt(){var e=Math.abs(this.lat0);if(Math.abs(e-de)0){var t;switch(this.qp=df(this.e,1),this.mmf=.5/(1-this.es),this.apa=Dmt(this.es),this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=df(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Mmt(e){var t,r,i,s,n,o,c,f,_,w,C=e.x,R=e.y;if(C=Ie(C-this.long0),this.sphere){if(n=Math.sin(R),w=Math.cos(R),i=Math.cos(C),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(r=this.mode===this.EQUIT?1+w*i:1+this.sinph0*n+this.cosph0*w*i,r<=we)return null;r=Math.sqrt(2/r),t=r*w*Math.sin(C),r*=this.mode===this.EQUIT?n:this.cosph0*n-this.sinph0*w*i}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(i=-i),Math.abs(R+this.lat0)=0?(t=(_=Math.sqrt(o))*s,r=i*(this.mode===this.S_POLE?_:-_)):t=r=0;break}}return e.x=this.a*t+this.x0,e.y=this.a*r+this.y0,e}function Emt(e){e.x-=this.x0,e.y-=this.y0;var t=e.x/this.a,r=e.y/this.a,i,s,n,o,c,f,_;if(this.sphere){var w=0,C,R=0;if(C=Math.sqrt(t*t+r*r),s=C*.5,s>1)return null;switch(s=2*Math.asin(s),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(R=Math.sin(s),w=Math.cos(s)),this.mode){case this.EQUIT:s=Math.abs(C)<=we?0:Math.asin(r*R/C),t*=R,r=w*C;break;case this.OBLIQ:s=Math.abs(C)<=we?this.lat0:Math.asin(w*this.sinph0+r*R*this.cosph0/C),t*=R*this.cosph0,r=(w-Math.sin(s)*this.sinph0)*C;break;case this.N_POLE:r=-r,s=de-s;break;case this.S_POLE:s-=de;break}i=r===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(t,r)}else{if(_=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(t/=this.dd,r*=this.dd,f=Math.sqrt(t*t+r*r),f1&&(e=e>1?1:-1),Math.asin(e)}function Fmt(){Math.abs(this.lat1+this.lat2)we?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function zmt(e){var t=e.x,r=e.y;this.sin_phi=Math.sin(r),this.cos_phi=Math.cos(r);var i=df(this.e3,this.sin_phi),s=this.a*Math.sqrt(this.c-this.ns0*i)/this.ns0,n=this.ns0*Ie(t-this.long0),o=s*Math.sin(n)+this.x0,c=this.rh-s*Math.cos(n)+this.y0;return e.x=o,e.y=c,e}function Nmt(e){var t,r,i,s,n,o;return e.x-=this.x0,e.y=this.rh-e.y+this.y0,this.ns0>=0?(t=Math.sqrt(e.x*e.x+e.y*e.y),i=1):(t=-Math.sqrt(e.x*e.x+e.y*e.y),i=-1),s=0,t!==0&&(s=Math.atan2(i*e.x,i*e.y)),i=t*this.ns0/this.a,this.sphere?o=Math.asin((this.c-i*i)/(2*this.ns0)):(r=(this.c-i*i)/this.ns0,o=this.phi1z(this.e3,r)),n=Ie(s/this.ns0+this.long0),e.x=n,e.y=o,e}function Umt(e,t){var r,i,s,n,o,c=bc(.5*t);if(e0||Math.abs(o)<=we?(c=this.x0+this.a*n*r*Math.sin(i)/o,f=this.y0+this.a*n*(this.cos_p14*t-this.sin_p14*r*s)/o):(c=this.x0+this.infinity_dist*r*Math.sin(i),f=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*r*s)),e.x=c,e.y=f,e}function Wmt(e){var t,r,i,s,n,o;return e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,(t=Math.sqrt(e.x*e.x+e.y*e.y))?(s=Math.atan2(t,this.rc),r=Math.sin(s),i=Math.cos(s),o=bc(i*this.sin_p14+e.y*r*this.cos_p14/t),n=Math.atan2(e.x*r,t*this.cos_p14*i-e.y*this.sin_p14*r),n=Ie(this.long0+n)):(o=this.phic0,n=0),e.x=n,e.y=o,e}var Hmt=[\"gnom\"],YZ={init:jmt,forward:Gmt,inverse:Wmt,names:Hmt};function QZ(e,t){var r=1-(1-e*e)/(2*e)*Math.log((1-e)/(1+e));if(Math.abs(Math.abs(t)-r)<1e-6)return t<0?-1*de:de;for(var i=Math.asin(.5*t),s,n,o,c,f=0;f<30;f++)if(n=Math.sin(i),o=Math.cos(i),c=e*n,s=Math.pow(1-c*c,2)/(2*o)*(t/(1-e*e)-n/(1-c*c)+.5/e*Math.log((1-c)/(1+c))),i+=s,Math.abs(s)<=1e-10)return i;return NaN}function qmt(){this.sphere||(this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function Zmt(e){var t=e.x,r=e.y,i,s,n=Ie(t-this.long0);if(this.sphere)i=this.x0+this.a*n*Math.cos(this.lat_ts),s=this.y0+this.a*Math.sin(r)/Math.cos(this.lat_ts);else{var o=df(this.e,Math.sin(r));i=this.x0+this.a*this.k0*n,s=this.y0+this.a*o*.5/this.k0}return e.x=i,e.y=s,e}function Ymt(e){e.x-=this.x0,e.y-=this.y0;var t,r;return this.sphere?(t=Ie(this.long0+e.x/this.a/Math.cos(this.lat_ts)),r=Math.asin(e.y/this.a*Math.cos(this.lat_ts))):(r=QZ(this.e,2*e.y*this.k0/this.a),t=Ie(this.long0+e.x/(this.a*this.k0))),e.x=t,e.y=r,e}var Qmt=[\"cea\"],$Z={init:qmt,forward:Zmt,inverse:Ymt,names:Qmt};function $mt(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Equidistant Cylindrical (Plate Carre)\",this.rc=Math.cos(this.lat_ts)}function Xmt(e){var t=e.x,r=e.y,i=Ie(t-this.long0),s=ff(r-this.lat0);return e.x=this.x0+this.a*i*this.rc,e.y=this.y0+this.a*s,e}function Kmt(e){var t=e.x,r=e.y;return e.x=Ie(this.long0+(t-this.x0)/(this.a*this.rc)),e.y=ff(this.lat0+(r-this.y0)/this.a),e}var Jmt=[\"Equirectangular\",\"Equidistant_Cylindrical\",\"eqc\"],XZ={init:$mt,forward:Xmt,inverse:Kmt,names:Jmt};var KZ=20;function t0t(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Pp(this.es),this.e1=Ip(this.es),this.e2=Cp(this.es),this.e3=Lp(this.es),this.ml0=this.a*Lo(this.e0,this.e1,this.e2,this.e3,this.lat0)}function e0t(e){var t=e.x,r=e.y,i,s,n,o=Ie(t-this.long0);if(n=o*Math.sin(r),this.sphere)Math.abs(r)<=we?(i=this.a*o,s=-1*this.a*this.lat0):(i=this.a*Math.sin(n)/Math.tan(r),s=this.a*(ff(r-this.lat0)+(1-Math.cos(n))/Math.tan(r)));else if(Math.abs(r)<=we)i=this.a*o,s=-1*this.ml0;else{var c=kp(this.a,this.e,Math.sin(r))/Math.tan(r);i=c*Math.sin(n),s=this.a*Lo(this.e0,this.e1,this.e2,this.e3,r)-this.ml0+c*(1-Math.cos(n))}return e.x=i+this.x0,e.y=s+this.y0,e}function r0t(e){var t,r,i,s,n,o,c,f,_;if(i=e.x-this.x0,s=e.y-this.y0,this.sphere)if(Math.abs(s+this.a*this.lat0)<=we)t=Ie(i/this.a+this.long0),r=0;else{o=this.lat0+s/this.a,c=i*i/this.a/this.a+o*o,f=o;var w;for(n=KZ;n;--n)if(w=Math.tan(f),_=-1*(o*(f*w+1)-f-.5*(f*f+c)*w)/((f-o)/w-1),f+=_,Math.abs(_)<=we){r=f;break}t=Ie(this.long0+Math.asin(i*Math.tan(f)/this.a)/Math.sin(r))}else if(Math.abs(s+this.ml0)<=we)r=0,t=Ie(this.long0+i/this.a);else{o=(this.ml0+s)/this.a,c=i*i/this.a/this.a+o*o,f=o;var C,R,N,j,Y;for(n=KZ;n;--n)if(Y=this.e*Math.sin(f),C=Math.sqrt(1-Y*Y)*Math.tan(f),R=this.a*Lo(this.e0,this.e1,this.e2,this.e3,f),N=this.e0-2*this.e1*Math.cos(2*f)+4*this.e2*Math.cos(4*f)-6*this.e3*Math.cos(6*f),j=R/this.a,_=(o*(C*j+1)-j-.5*C*(j*j+c))/(this.es*Math.sin(2*f)*(j*j+c-2*o*j)/(4*C)+(o-j)*(C*N-2/Math.sin(2*f))-N),f-=_,Math.abs(_)<=we){r=f;break}C=Math.sqrt(1-this.es*Math.pow(Math.sin(r),2))*Math.tan(r),t=Ie(this.long0+Math.asin(i*C/this.a)/Math.sin(r))}return e.x=t,e.y=r,e}var i0t=[\"Polyconic\",\"poly\"],JZ={init:t0t,forward:e0t,inverse:r0t,names:i0t};function n0t(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function s0t(e){var t,r=e.x,i=e.y,s=i-this.lat0,n=r-this.long0,o=s/Ng*1e-5,c=n,f=1,_=0;for(t=1;t<=10;t++)f=f*o,_=_+this.A[t]*f;var w=_,C=c,R=1,N=0,j,Y,rt=0,$=0;for(t=1;t<=6;t++)j=R*w-N*C,Y=N*w+R*C,R=j,N=Y,rt=rt+this.B_re[t]*R-this.B_im[t]*N,$=$+this.B_im[t]*R+this.B_re[t]*N;return e.x=$*this.a+this.x0,e.y=rt*this.a+this.y0,e}function o0t(e){var t,r=e.x,i=e.y,s=r-this.x0,n=i-this.y0,o=n/this.a,c=s/this.a,f=1,_=0,w,C,R=0,N=0;for(t=1;t<=6;t++)w=f*o-_*c,C=_*o+f*c,f=w,_=C,R=R+this.C_re[t]*f-this.C_im[t]*_,N=N+this.C_im[t]*f+this.C_re[t]*_;for(var j=0;j.999999999999&&(r=.999999999999),t=Math.asin(r);var i=Ie(this.long0+e.x/(.900316316158*this.a*Math.cos(t)));i<-Math.PI&&(i=-Math.PI),i>Math.PI&&(i=Math.PI),r=(2*t+Math.sin(2*t))/Math.PI,Math.abs(r)>1&&(r=1);var s=Math.asin(r);return e.x=i,e.y=s,e}var v0t=[\"Mollweide\",\"moll\"],iY={init:g0t,forward:_0t,inverse:y0t,names:v0t};function x0t(){Math.abs(this.lat1+this.lat2)=0?(r=Math.sqrt(e.x*e.x+e.y*e.y),t=1):(r=-Math.sqrt(e.x*e.x+e.y*e.y),t=-1);var n=0;if(r!==0&&(n=Math.atan2(t*e.x,t*e.y)),this.sphere)return s=Ie(this.long0+n/this.ns),i=ff(this.g-r/this.a),e.x=s,e.y=i,e;var o=this.g-r/this.a;return i=Gg(o,this.e0,this.e1,this.e2,this.e3),s=Ie(this.long0+n/this.ns),e.x=s,e.y=i,e}var S0t=[\"Equidistant_Conic\",\"eqdc\"],nY={init:x0t,forward:b0t,inverse:w0t,names:S0t};function T0t(){this.R=this.a}function M0t(e){var t=e.x,r=e.y,i=Ie(t-this.long0),s,n;Math.abs(r)<=we&&(s=this.x0+this.R*i,n=this.y0);var o=bc(2*Math.abs(r/Math.PI));(Math.abs(i)<=we||Math.abs(Math.abs(r)-de)<=we)&&(s=this.x0,r>=0?n=this.y0+Math.PI*this.R*Math.tan(.5*o):n=this.y0+Math.PI*this.R*-Math.tan(.5*o));var c=.5*Math.abs(Math.PI/i-i/Math.PI),f=c*c,_=Math.sin(o),w=Math.cos(o),C=w/(_+w-1),R=C*C,N=C*(2/_-1),j=N*N,Y=Math.PI*this.R*(c*(C-j)+Math.sqrt(f*(C-j)*(C-j)-(j+f)*(R-j)))/(j+f);i<0&&(Y=-Y),s=this.x0+Y;var rt=f+C;return Y=Math.PI*this.R*(N*rt-c*Math.sqrt((j+f)*(f+1)-rt*rt))/(j+f),r>=0?n=this.y0+Y:n=this.y0-Y,e.x=s,e.y=n,e}function E0t(e){var t,r,i,s,n,o,c,f,_,w,C,R,N;return e.x-=this.x0,e.y-=this.y0,C=Math.PI*this.R,i=e.x/C,s=e.y/C,n=i*i+s*s,o=-Math.abs(s)*(1+n),c=o-2*s*s+i*i,f=-2*o+1+2*s*s+n*n,N=s*s/f+(2*c*c*c/f/f/f-9*o*c/f/f)/27,_=(o-c*c/3/f)/f,w=2*Math.sqrt(-_/3),C=3*N/_/w,Math.abs(C)>1&&(C>=0?C=1:C=-1),R=Math.acos(C)/3,e.y>=0?r=(-w*Math.cos(R+Math.PI/3)-c/3/f)*Math.PI:r=-(-w*Math.cos(R+Math.PI/3)-c/3/f)*Math.PI,Math.abs(i)2*de*this.a?void 0:(r=t/this.a,i=Math.sin(r),s=Math.cos(r),n=this.long0,Math.abs(t)<=we?o=this.lat0:(o=bc(s*this.sin_p12+e.y*i*this.cos_p12/t),c=Math.abs(this.lat0)-de,Math.abs(c)<=we?this.lat0>=0?n=Ie(this.long0+Math.atan2(e.x,-e.y)):n=Ie(this.long0-Math.atan2(-e.x,e.y)):n=Ie(this.long0+Math.atan2(e.x*i,t*this.cos_p12*s-e.y*this.sin_p12*i))),e.x=n,e.y=o,e)):(f=Pp(this.es),_=Ip(this.es),w=Cp(this.es),C=Lp(this.es),Math.abs(this.sin_p12-1)<=we?(R=this.a*Lo(f,_,w,C,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=R-t,o=Gg(N/this.a,f,_,w,C),n=Ie(this.long0+Math.atan2(e.x,-1*e.y)),e.x=n,e.y=o,e):Math.abs(this.sin_p12+1)<=we?(R=this.a*Lo(f,_,w,C,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=t-R,o=Gg(N/this.a,f,_,w,C),n=Ie(this.long0+Math.atan2(e.x,e.y)),e.x=n,e.y=o,e):(t=Math.sqrt(e.x*e.x+e.y*e.y),rt=Math.atan2(e.x,e.y),j=kp(this.a,this.e,this.sin_p12),$=Math.cos(rt),K=this.e*this.cos_p12*$,tt=-K*K/(1-this.es),ut=3*this.es*(1-tt)*this.sin_p12*this.cos_p12*$/(1-this.es),Pt=t/j,Ot=Pt-tt*(1+tt)*Math.pow(Pt,3)/6-ut*(1+3*tt)*Math.pow(Pt,4)/24,Kt=1-tt*Ot*Ot/2-Pt*Ot*Ot*Ot/6,Y=Math.asin(this.sin_p12*Math.cos(Ot)+this.cos_p12*Math.sin(Ot)*$),n=Ie(this.long0+Math.asin(Math.sin(rt)*Math.sin(Ot)/Math.cos(Y))),Zt=Math.sin(Y),o=Math.atan2((Zt-this.es*Kt*this.sin_p12)*Math.tan(Y),Zt*(1-this.es)),e.x=n,e.y=o,e))}var k0t=[\"Azimuthal_Equidistant\",\"aeqd\"],oY={init:I0t,forward:C0t,inverse:L0t,names:k0t};function R0t(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)}function D0t(e){var t,r,i,s,n,o,c,f,_=e.x,w=e.y;return i=Ie(_-this.long0),t=Math.sin(w),r=Math.cos(w),s=Math.cos(i),o=this.sin_p14*t+this.cos_p14*r*s,n=1,(o>0||Math.abs(o)<=we)&&(c=this.a*n*r*Math.sin(i),f=this.y0+this.a*n*(this.cos_p14*t-this.sin_p14*r*s)),e.x=c,e.y=f,e}function O0t(e){var t,r,i,s,n,o,c;return e.x-=this.x0,e.y-=this.y0,t=Math.sqrt(e.x*e.x+e.y*e.y),r=bc(t/this.a),i=Math.sin(r),s=Math.cos(r),o=this.long0,Math.abs(t)<=we?(c=this.lat0,e.x=o,e.y=c,e):(c=bc(s*this.sin_p14+e.y*i*this.cos_p14/t),n=Math.abs(this.lat0)-de,Math.abs(n)<=we?(this.lat0>=0?o=Ie(this.long0+Math.atan2(e.x,-e.y)):o=Ie(this.long0-Math.atan2(-e.x,e.y)),e.x=o,e.y=c,e):(o=Ie(this.long0+Math.atan2(e.x*i,t*this.cos_p14*s-e.y*this.sin_p14*i)),e.x=o,e.y=c,e))}var B0t=[\"ortho\"],aY={init:R0t,forward:D0t,inverse:O0t,names:B0t};var bs={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},hn={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function F0t(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Quadrilateralized Spherical Cube\",this.lat0>=de-Fi/2?this.face=bs.TOP:this.lat0<=-(de-Fi/2)?this.face=bs.BOTTOM:Math.abs(this.long0)<=Fi?this.face=bs.FRONT:Math.abs(this.long0)<=de+Fi?this.face=this.long0>0?bs.RIGHT:bs.LEFT:this.face=bs.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function z0t(e){var t={x:0,y:0},r,i,s,n,o,c,f={value:0};if(e.x-=this.long0,this.es!==0?r=Math.atan(this.one_minus_f_squared*Math.tan(e.y)):r=e.y,i=e.x,this.face===bs.TOP)n=de-r,i>=Fi&&i<=de+Fi?(f.value=hn.AREA_0,s=i-de):i>de+Fi||i<=-(de+Fi)?(f.value=hn.AREA_1,s=i>0?i-xs:i+xs):i>-(de+Fi)&&i<=-Fi?(f.value=hn.AREA_2,s=i+de):(f.value=hn.AREA_3,s=i);else if(this.face===bs.BOTTOM)n=de+r,i>=Fi&&i<=de+Fi?(f.value=hn.AREA_0,s=-i+de):i=-Fi?(f.value=hn.AREA_1,s=-i):i<-Fi&&i>=-(de+Fi)?(f.value=hn.AREA_2,s=-i-de):(f.value=hn.AREA_3,s=i>0?-i+xs:-i-xs);else{var _,w,C,R,N,j,Y;this.face===bs.RIGHT?i=nx(i,+de):this.face===bs.BACK?i=nx(i,+xs):this.face===bs.LEFT&&(i=nx(i,-de)),R=Math.sin(r),N=Math.cos(r),j=Math.sin(i),Y=Math.cos(i),_=N*Y,w=N*j,C=R,this.face===bs.FRONT?(n=Math.acos(_),s=J3(n,C,w,f)):this.face===bs.RIGHT?(n=Math.acos(w),s=J3(n,C,-_,f)):this.face===bs.BACK?(n=Math.acos(-_),s=J3(n,C,-w,f)):this.face===bs.LEFT?(n=Math.acos(-w),s=J3(n,C,_,f)):(n=s=0,f.value=hn.AREA_0)}return c=Math.atan(12/xs*(s+Math.acos(Math.sin(s)*Math.cos(Fi))-de)),o=Math.sqrt((1-Math.cos(n))/(Math.cos(c)*Math.cos(c))/(1-Math.cos(Math.atan(1/Math.cos(s))))),f.value===hn.AREA_1?c+=de:f.value===hn.AREA_2?c+=xs:f.value===hn.AREA_3&&(c+=1.5*xs),t.x=o*Math.cos(c),t.y=o*Math.sin(c),t.x=t.x*this.a+this.x0,t.y=t.y*this.a+this.y0,e.x=t.x,e.y=t.y,e}function N0t(e){var t={lam:0,phi:0},r,i,s,n,o,c,f,_,w,C={value:0};if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,i=Math.atan(Math.sqrt(e.x*e.x+e.y*e.y)),r=Math.atan2(e.y,e.x),e.x>=0&&e.x>=Math.abs(e.y)?C.value=hn.AREA_0:e.y>=0&&e.y>=Math.abs(e.x)?(C.value=hn.AREA_1,r-=de):e.x<0&&-e.x>=Math.abs(e.y)?(C.value=hn.AREA_2,r=r<0?r+xs:r-xs):(C.value=hn.AREA_3,r+=de),w=xs/12*Math.tan(r),o=Math.sin(w)/(Math.cos(w)-1/Math.sqrt(2)),c=Math.atan(o),s=Math.cos(r),n=Math.tan(i),f=1-s*s*n*n*(1-Math.cos(Math.atan(1/Math.cos(c)))),f<-1?f=-1:f>1&&(f=1),this.face===bs.TOP)_=Math.acos(f),t.phi=de-_,C.value===hn.AREA_0?t.lam=c+de:C.value===hn.AREA_1?t.lam=c<0?c+xs:c-xs:C.value===hn.AREA_2?t.lam=c-de:t.lam=c;else if(this.face===bs.BOTTOM)_=Math.acos(f),t.phi=_-de,C.value===hn.AREA_0?t.lam=-c+de:C.value===hn.AREA_1?t.lam=-c:C.value===hn.AREA_2?t.lam=-c-de:t.lam=c<0?-c-xs:-c+xs;else{var R,N,j;R=f,w=R*R,w>=1?j=0:j=Math.sqrt(1-w)*Math.sin(c),w+=j*j,w>=1?N=0:N=Math.sqrt(1-w),C.value===hn.AREA_1?(w=N,N=-j,j=w):C.value===hn.AREA_2?(N=-N,j=-j):C.value===hn.AREA_3&&(w=N,N=j,j=-w),this.face===bs.RIGHT?(w=R,R=-N,N=w):this.face===bs.BACK?(R=-R,N=-N):this.face===bs.LEFT&&(w=R,R=N,N=-w),t.phi=Math.acos(-j)-de,t.lam=Math.atan2(N,R),this.face===bs.RIGHT?t.lam=nx(t.lam,-de):this.face===bs.BACK?t.lam=nx(t.lam,-xs):this.face===bs.LEFT&&(t.lam=nx(t.lam,+de))}if(this.es!==0){var Y,rt,$;Y=t.phi<0?1:0,rt=Math.tan(t.phi),$=this.b/Math.sqrt(rt*rt+this.one_minus_f_squared),t.phi=Math.atan(Math.sqrt(this.a*this.a-$*$)/(this.one_minus_f*$)),Y&&(t.phi=-t.phi)}return t.lam+=this.long0,e.x=t.lam,e.y=t.phi,e}function J3(e,t,r,i){var s;return eFi&&s<=de+Fi?(i.value=hn.AREA_1,s-=de):s>de+Fi||s<=-(de+Fi)?(i.value=hn.AREA_2,s=s>=0?s-xs:s+xs):(i.value=hn.AREA_3,s+=de)),s}function nx(e,t){var r=e+t;return r<-xs?r+=bm:r>+xs&&(r-=bm),r}var U0t=[\"Quadrilateralized Spherical Cube\",\"Quadrilateralized_Spherical_Cube\",\"qsc\"],lY={init:F0t,forward:z0t,inverse:N0t,names:U0t};var _B=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],nS=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],cY=.8487,uY=1.3523,hY=yc/5,V0t=1/hY,sx=18,tI=function(e,t){return e[0]+t*(e[1]+t*(e[2]+t*e[3]))},j0t=function(e,t){return e[1]+t*(2*e[2]+t*3*e[3])};function G0t(e,t,r,i){for(var s=t;i;--i){var n=e(s);if(s-=n,Math.abs(n)=sx&&(i=sx-1),r=yc*(r-V0t*i);var s={x:tI(_B[i],r)*t,y:tI(nS[i],r)};return e.y<0&&(s.y=-s.y),s.x=s.x*this.a*cY+this.x0,s.y=s.y*this.a*uY+this.y0,s}function q0t(e){var t={x:(e.x-this.x0)/(this.a*cY),y:Math.abs(e.y-this.y0)/(this.a*uY)};if(t.y>=1)t.x/=_B[sx][0],t.y=e.y<0?-de:de;else{var r=Math.floor(t.y*sx);for(r<0?r=0:r>=sx&&(r=sx-1);;)if(nS[r][0]>t.y)--r;else if(nS[r+1][0]<=t.y)++r;else break;var i=nS[r],s=5*(t.y-i[0])/(nS[r+1][0]-i[0]);s=G0t(function(n){return(tI(i,n)-t.y)/j0t(i,n)},s,we,100),t.x/=tI(_B[r],s),t.y=(5*r+s)*vs,e.y<0&&(t.y=-t.y)}return t.x=Ie(t.x+this.long0),t}var Z0t=[\"Robinson\",\"robin\"],fY={init:W0t,forward:H0t,inverse:q0t,names:Z0t};function Y0t(){this.name=\"geocent\"}function Q0t(e){var t=G3(e,this.es,this.a);return t}function $0t(e){var t=W3(e,this.es,this.a,this.b);return t}var X0t=[\"Geocentric\",\"geocentric\",\"geocent\",\"Geocent\"],dY={init:Y0t,forward:Q0t,inverse:$0t,names:X0t};var nl={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},sS={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function K0t(){if(Object.keys(sS).forEach(function(r){if(typeof this[r]>\"u\")this[r]=sS[r].def;else{if(sS[r].num&&isNaN(this[r]))throw new Error(\"Invalid parameter value, must be numeric \"+r+\" = \"+this[r]);sS[r].num&&(this[r]=parseFloat(this[r]))}sS[r].degrees&&(this[r]=this[r]*vs)}.bind(this)),Math.abs(Math.abs(this.lat0)-de)1e10)throw new Error(\"Invalid height\");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var e=this.tilt,t=this.azi;this.cg=Math.cos(t),this.sg=Math.sin(t),this.cw=Math.cos(e),this.sw=Math.sin(e)}function J0t(e){e.x-=this.long0;var t=Math.sin(e.y),r=Math.cos(e.y),i=Math.cos(e.x),s,n;switch(this.mode){case nl.OBLIQ:n=this.sinph0*t+this.cosph0*r*i;break;case nl.EQUIT:n=r*i;break;case nl.S_POLE:n=-t;break;case nl.N_POLE:n=t;break}switch(n=this.pn1/(this.p-n),s=n*r*Math.sin(e.x),this.mode){case nl.OBLIQ:n*=this.cosph0*t-this.sinph0*r*i;break;case nl.EQUIT:n*=t;break;case nl.N_POLE:n*=-(r*i);break;case nl.S_POLE:n*=r*i;break}var o,c;return o=n*this.cg+s*this.sg,c=1/(o*this.sw*this.h1+this.cw),s=(s*this.cg-n*this.sg)*this.cw*c,n=o*c,e.x=s*this.a,e.y=n*this.a,e}function tgt(e){e.x/=this.a,e.y/=this.a;var t={x:e.x,y:e.y},r,i,s;s=1/(this.pn1-e.y*this.sw),r=this.pn1*e.x*s,i=this.pn1*e.y*this.cw*s,e.x=r*this.cg+i*this.sg,e.y=i*this.cg-r*this.sg;var n=Sa(e.x,e.y);if(Math.abs(n)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var e=1-this.es,t=1/e;this.radius_p=Math.sqrt(e),this.radius_p2=e,this.radius_p_inv2=t,this.shape=\"ellipse\"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape=\"sphere\";this.title||(this.title=\"Geostationary Satellite View\")}function igt(e){var t=e.x,r=e.y,i,s,n,o;if(t=t-this.long0,this.shape===\"ellipse\"){r=Math.atan(this.radius_p2*Math.tan(r));var c=this.radius_p/Sa(this.radius_p*Math.cos(r),Math.sin(r));if(s=c*Math.cos(t)*Math.cos(r),n=c*Math.sin(t)*Math.cos(r),o=c*Math.sin(r),(this.radius_g-s)*s-n*n-o*o*this.radius_p_inv2<0)return e.x=Number.NaN,e.y=Number.NaN,e;i=this.radius_g-s,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/Sa(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(n/i),e.y=this.radius_g_1*Math.atan(o/Sa(n,i)))}else this.shape===\"sphere\"&&(i=Math.cos(r),s=Math.cos(t)*i,n=Math.sin(t)*i,o=Math.sin(r),i=this.radius_g-s,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/Sa(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(n/i),e.y=this.radius_g_1*Math.atan(o/Sa(n,i))));return e.x=e.x*this.a,e.y=e.y*this.a,e}function ngt(e){var t=-1,r=0,i=0,s,n,o,c;if(e.x=e.x/this.a,e.y=e.y/this.a,this.shape===\"ellipse\"){this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Sa(1,i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Sa(1,r));var f=i/this.radius_p;if(s=r*r+f*f+t*t,n=2*this.radius_g*t,o=n*n-4*s*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-n-Math.sqrt(o))/(2*s),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t),e.y=Math.atan(this.radius_p_inv2*Math.tan(e.y))}else if(this.shape===\"sphere\"){if(this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Math.sqrt(1+i*i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Math.sqrt(1+r*r)),s=r*r+i*i+t*t,n=2*this.radius_g*t,o=n*n-4*s*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-n-Math.sqrt(o))/(2*s),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t)}return e.x=e.x+this.long0,e}var sgt=[\"Geostationary Satellite View\",\"Geostationary_Satellite\",\"geos\"],AY={init:rgt,forward:igt,inverse:ngt,names:sgt};function mY(e){e.Proj.projections.add(ex),e.Proj.projections.add(rx),e.Proj.projections.add(zZ),e.Proj.projections.add(NZ),e.Proj.projections.add(UZ),e.Proj.projections.add(VZ),e.Proj.projections.add(jZ),e.Proj.projections.add(GZ),e.Proj.projections.add(WZ),e.Proj.projections.add(HZ),e.Proj.projections.add(qZ),e.Proj.projections.add(ZZ),e.Proj.projections.add(YZ),e.Proj.projections.add($Z),e.Proj.projections.add(XZ),e.Proj.projections.add(JZ),e.Proj.projections.add(tY),e.Proj.projections.add(eY),e.Proj.projections.add(rY),e.Proj.projections.add(iY),e.Proj.projections.add(nY),e.Proj.projections.add(sY),e.Proj.projections.add(oY),e.Proj.projections.add(aY),e.Proj.projections.add(lY),e.Proj.projections.add(fY),e.Proj.projections.add(dY),e.Proj.projections.add(pY),e.Proj.projections.add(AY)}vc.defaultDatum=\"WGS84\";vc.Proj=wm;vc.WGS84=new vc.Proj(\"WGS84\");vc.Point=IZ;vc.toPoint=q3;vc.defs=$v;vc.nadgrid=uB;vc.transform=Vg;vc.mgrs=MZ;vc.version=\"__VERSION__\";mY(vc);var gY=vc;function lS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function cS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function ox(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function ogt(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function agt(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function sI(e){return\"data\"in e?e.getChildAt(0):e.children[0]}var Oi=Object.freeze({__proto__:null,getLineStringChild:cS,getMultiLineStringChild:agt,getMultiPointChild:ogt,getMultiPolygonChild:sI,getPointChild:lS,getPolygonChild:ox});function oI(e,t){let r=e.valueOffsets,i=ox(e),s=i.valueOffsets,n=cS(i),o=n.type.listSize,c=lS(n),f=r[t],_=r[t+1],w=s[f],C=s[_],R=c.values.subarray(w*o,C*o);return new Yv(R,{size:o,isClosed:!0})}function yY(e){if(\"data\"in e)return new wr(e.data.map(r=>yY(r)));let t=new Float64Array(e.length);for(let r=0;rvY(r)));let t=new Float64Array(e.length);for(let r=0;rxY(n));let t=[],r=0;for(let n=0;nbY(t))):ox(e)}function wY(e){return\"data\"in e?new wr(e.data.map(t=>wY(t))):sI(e)}function aI(e){return Ne.isFixedSizeList(e)?!(![2,3,4].includes(e.listSize)||!Ne.isFloat(e.children[0])):Ne.isStruct(e)?!(![2,3,4].includes(e.children.length)||!e.children.every(t=>[\"x\",\"y\",\"z\",\"m\"].includes(t.name))||!e.children.every(t=>Ne.isFloat(t))):!1}function lI(e){return!(!Ne.isList(e)||!aI(e.children[0].type))}function bB(e){return!(!Ne.isList(e)||!lI(e.children[0].type))}function SY(e){return!(!Ne.isList(e)||!aI(e.children[0].type))}function TY(e){return!(!Ne.isList(e)||!lI(e.children[0].type))}function MY(e){return!(!Ne.isList(e)||!bB(e.children[0].type))}function cgt(e){return aI(e.type)}function ugt(e){return lI(e.type)}function hgt(e){return bB(e.type)}function fgt(e){return SY(e.type)}function dgt(e){return TY(e.type)}function pgt(e){return MY(e.type)}function Agt(e,t){if(!e)throw new Error(`assertion failed ${t}`)}function mgt(){throw new Error(\"assertion failed\")}function EY(e,t){if(cgt(e))return PY(e,t);if(ugt(e))return yB(e,t);if(hgt(e))return vB(e,t);if(fgt(e))return yB(e,t);if(dgt(e))return vB(e,t);if(pgt(e))return ggt(e,t);mgt()}function PY(e,t){Agt(e.type.listSize===2,\"expected 2D\");let r=lS(e),i=r.values,s=new Float64Array(i.length);for(let o=0;o_Y(s,i))):_Y(e,i)}function _Y(e,t){let r=[0,0];return EY(e,(s,n)=>(r[0]=s,r[1]=n,t.forward(r)))}var Sm;(function(e){e.POINT=\"geoarrow.point\",e.LINESTRING=\"geoarrow.linestring\",e.POLYGON=\"geoarrow.polygon\",e.MULTIPOINT=\"geoarrow.multipoint\",e.MULTILINESTRING=\"geoarrow.multilinestring\",e.MULTIPOLYGON=\"geoarrow.multipolygon\"})(Sm||(Sm={}));var nI=class{minX;minY;maxX;maxY;constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}updateBbox(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.maxY>this.maxY&&(this.maxY=t.maxY)}updateCoord(t,r){tthis.maxX&&(this.maxX=t),r>this.maxY&&(this.maxY=r)}};function ygt(e,t){switch(t.metadata.get(\"ARROW:extension:name\")){case Sm.POINT:return IY(e);case Sm.LINESTRING:case Sm.MULTIPOINT:return CY(e);case Sm.POLYGON:case Sm.MULTILINESTRING:return LY(e);case Sm.MULTIPOLYGON:return xgt(e);default:throw new Error(\"Unknown ext type name\")}}function vgt(e){let r=lS(e).values,i=new nI;for(let s=0;skY(r)));let t=new fm({type:new oc,nullValues:[null]});t.set(e.length-1,null);for(let r=0;rRY(r,t));return}for(let r=0;raS(n,t)));let r=[];for(let n of e.children)r.push(aS(n,t));let i;e.dictionary!==void 0&&(i=aS(e.dictionary,t));let s={[Ci.OFFSET]:eI(e.buffers[Ci.OFFSET],t),[Ci.DATA]:eI(e.buffers[Ci.DATA],t),[Ci.VALIDITY]:eI(e.buffers[Ci.VALIDITY],t),[Ci.TYPE]:eI(e.buffers[Ci.TYPE],t)};return new Di(e.type,e.offset,e.length,e._nullCount,s,r,i)}function rI(e){if(\"data\"in e)return e.data.some(r=>rI(r));for(let r of e.children)if(rI(r))return!0;if(e.dictionary!==void 0&&rI(e.dictionary))return!0;let t=[Ci.OFFSET,Ci.DATA,Ci.VALIDITY,Ci.TYPE];for(let r of t)if(e.buffers[r]!==void 0&&DY(e.buffers[r]))return!0;return!1}function DY(e){return!(e.byteOffset===0&&e.byteLength===e.buffer.byteLength)}function eI(e,t){return e===void 0||!t&&!DY(e)?e:e.slice()}function iI(e,t=!1){if(\"data\"in e){let i=[],s=[];for(let o of e.data){let[c,f]=iI(o);i.push(c),s.push(...f)}return[new wr(i),s]}e=aS(e,t);let r=[];for(let i=0;i1)throw new Error(\"expected 1 field\");return new lc(t[0])}case Rt.Struct:{let t=e.children.map(oS);return new un(t)}case Rt.Union:{let t=e.children.map(oS);return new cc(e.mode,e.typeIds,t)}case Rt.FixedSizeBinary:return new Zu(e.byteWidth);case Rt.FixedSizeList:{let t=e.children.map(oS);if(t.length>1)throw new Error(\"expected 1 field\");return new Il(e.listSize,t[0])}case Rt.Map:{let t=e.children.map(oS);if(t.length>1)throw new Error(\"expected 1 field\");let r=t[0];return new uc(r,e.keysSorted)}case Rt.Duration:return new qu(e.unit);default:throw new Error(`unknown type ${e}`)}}function oS(e){let t=OY(e.type);return new si(e.name,t,e.nullable,e.metadata)}function SB(e){let t=e.children.map(s=>SB(s)),r=e.dictionary?BY(e.dictionary):void 0,i={[Ci.OFFSET]:e.valueOffsets,[Ci.DATA]:e.values,[Ci.VALIDITY]:e.nullBitmap,[Ci.TYPE]:e.typeIds};return new Di(OY(e.type),e.offset,e.length,e._nullCount,i,t,r)}function BY(e){return new wr(e.data.map(t=>SB(t)))}var TB=Object.freeze({__proto__:null,hardClone:aS,isShared:rI,preparePostMessage:iI,rehydrateData:SB,rehydrateVector:BY});function Pgt(e,t,r){let i=e.fields.findIndex(s=>s.name===r||s.metadata.get(\"ARROW:extension:name\")===t);return i!==-1?i:null}function Igt(e,t){let{index:r,data:i}=e,s=r;i.invertedGeomOffsets!==void 0&&(s=i.invertedGeomOffsets[r]);let n={data:i.data,length:i.length,attributes:i.attributes},o={index:s,data:n,target:e.target};return t(o)}function ko(e){let{props:t,propName:r,propInput:i,chunkIdx:s,geomCoordOffsets:n}=e;if(i!==void 0)if(i instanceof wr){let o=i.data[s];if(Ne.isFixedSizeList(o)){br(o.children.length===1);let c=o.children[0].values;n&&(c=cI(c,o.type.listSize,n)),t.data.attributes[r]={value:c,size:o.type.listSize,normalized:!0}}else if(Ne.isFloat(o)){let c=o.values;n&&(c=cI(c,1,n)),t.data.attributes[r]={value:c,size:1}}}else typeof i==\"function\"?t[r]=(o,c)=>r===\"getPolygonOffset\"?i(o,c):Igt(c,i):t[r]=i}function cI(e,t,r){let i=r[r.length-1],s=new e.constructor(i*t);for(let n=0;n(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function Oo(e,t){let r=[],i=[];for(let[s,n]of Object.entries(e))s.startsWith(\"get\")&&n instanceof wr&&(r.push(n),s.endsWith(\"Color\")&&i.push(n));Cgt(t,r);for(let s of i)Lgt(s)}function Cgt(e,t){for(let r of t)br(e.batches.length===r.data.length);for(let r of t)for(let i=0;ithis.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let t=this.content?this.content.byteLength:0;return Number.isFinite(t)||console.error(\"byteLength not defined in tile data\"),t}async _loadData({getData:t,requestScheduler:r,onLoad:i,onError:s}){let{index:n,id:o,bbox:c,userData:f,zoom:_}=this,w=this._loaderId;this._abortController=new AbortController;let{signal:C}=this._abortController,R=await r.scheduleRequest(this,Y=>Y.isSelected?1:-1);if(!R){this._isCancelled=!0;return}if(this._isCancelled){R.done();return}let N=null,j;try{N=await t({index:n,id:o,bbox:c,userData:f,zoom:_,signal:C})}catch(Y){j=Y||!0}finally{R.done()}if(w===this._loaderId){if(this._loader=void 0,this.content=N,this._isCancelled&&!N){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,j?s(j,this):i(this)}}loadData(t){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(t),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var t;this.isLoaded||(this._isCancelled=!0,(t=this._abortController)===null||t===void 0||t.abort())}};var Js={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var VY=new Fe,Bgt=new Fe,Wg=class e{constructor(t=[0,0,0],r=[0,0,0],i){G(this,\"center\",void 0),G(this,\"halfDiagonal\",void 0),G(this,\"minimum\",void 0),G(this,\"maximum\",void 0),i=i||VY.copy(t).add(r).scale(.5),this.center=new Fe(i),this.halfDiagonal=new Fe(r).subtract(this.center),this.minimum=new Fe(t),this.maximum=new Fe(r)}clone(){return new e(this.minimum,this.maximum,this.center)}equals(t){return this===t||!!t&&this.minimum.equals(t.minimum)&&this.maximum.equals(t.maximum)}transform(t){return this.center.transformAsPoint(t),this.halfDiagonal.transform(t),this.minimum.transform(t),this.maximum.transform(t),this}intersectPlane(t){let{halfDiagonal:r}=this,i=Bgt.from(t.normal),s=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),n=this.center.dot(i)+t.distance;return n-s>0?Js.INSIDE:n+s<0?Js.OUTSIDE:Js.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=VY.from(t).subtract(this.center),{halfDiagonal:i}=this,s=0,n;return n=Math.abs(r.x)-i.x,n>0&&(s+=n*n),n=Math.abs(r.y)-i.y,n>0&&(s+=n*n),n=Math.abs(r.z)-i.z,n>0&&(s+=n*n),s}};var fS=new Fe,jY=new Fe,Hg=class e{constructor(t=[0,0,0],r=0){G(this,\"center\",void 0),G(this,\"radius\",void 0),this.radius=-0,this.center=new Fe,this.fromCenterRadius(t,r)}fromCenterRadius(t,r){return this.center.from(t),this.radius=r,this}fromCornerPoints(t,r){return r=fS.from(r),this.center=new Fe().from(t).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(t){return this===t||!!t&&this.center.equals(t.center)&&this.radius===t.radius}clone(){return new e(this.center,this.radius)}union(t){let r=this.center,i=this.radius,s=t.center,n=t.radius,o=fS.copy(s).subtract(r),c=o.magnitude();if(i>=c+n)return this.clone();if(n>=c+i)return t.clone();let f=(i+c+n)*.5;return jY.copy(o).scale((-i+f)/c).add(r),this.center.copy(jY),this.radius=f,this}expand(t){let i=fS.from(t).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(t){this.center.transform(t);let r=jj(fS,t);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(t){let r=this.distanceTo(t);return r*r}distanceTo(t){let i=fS.from(t).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(t){let r=this.center,i=this.radius,n=t.normal.dot(r)+t.distance;return n<-i?Js.OUTSIDE:n=f?Js.INSIDE:Js.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=zgt.from(t).subtract(this.center),i=this.halfAxes,s=i.getColumn(0,hI),n=i.getColumn(1,fI),o=i.getColumn(2,dI),c=s.magnitude(),f=n.magnitude(),_=o.magnitude();s.normalize(),n.normalize(),o.normalize();let w=0,C;return C=Math.abs(r.dot(s))-c,C>0&&(w+=C*C),C=Math.abs(r.dot(n))-f,C>0&&(w+=C*C),C=Math.abs(r.dot(o))-_,C>0&&(w+=C*C),w}computePlaneDistances(t,r,i=[-0,-0]){let s=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY,o=this.center,c=this.halfAxes,f=c.getColumn(0,hI),_=c.getColumn(1,fI),w=c.getColumn(2,dI),C=Ngt.copy(f).add(_).add(w).add(o),R=Ugt.copy(C).subtract(t),N=r.dot(R);return s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).add(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).subtract(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),C.copy(o).add(f).subtract(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).add(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).add(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).subtract(_).add(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),o.copy(C).subtract(f).subtract(_).subtract(w),R.copy(C).subtract(t),N=r.dot(R),s=Math.min(N,s),n=Math.max(N,n),i[0]=s,i[1]=n,i}transform(t){this.center.transformAsPoint(t);let r=this.halfAxes.getColumn(0,hI);r.transformAsPoint(t);let i=this.halfAxes.getColumn(1,fI);i.transformAsPoint(t);let s=this.halfAxes.getColumn(2,dI);return s.transformAsPoint(t),this.halfAxes=new rs([...r,...i,...s]),this}getTransform(){throw new Error(\"not implemented\")}};var GY=new Fe,WY=new Fe,pf=class e{constructor(t=[0,0,1],r=0){G(this,\"normal\",void 0),G(this,\"distance\",void 0),this.normal=new Fe,this.distance=-0,this.fromNormalDistance(t,r)}fromNormalDistance(t,r){return Oh(Number.isFinite(r)),this.normal.from(t).normalize(),this.distance=r,this}fromPointNormal(t,r){t=GY.from(t),this.normal.from(r).normalize();let i=-this.normal.dot(t);return this.distance=i,this}fromCoefficients(t,r,i,s){return this.normal.set(t,r,i),Oh(To(this.normal.len(),1)),this.distance=s,this}clone(){return new e(this.normal,this.distance)}equals(t){return To(this.distance,t.distance)&&To(this.normal,t.normal)}getPointDistance(t){return this.normal.dot(t)+this.distance}transform(t){let r=WY.copy(this.normal).transformAsVector(t).normalize(),i=this.normal.scale(-this.distance).transform(t);return this.fromPointNormal(i,r)}projectPointOntoPlane(t,r=[0,0,0]){t=GY.from(t);let i=this.getPointDistance(t),s=WY.copy(this.normal).scale(i);return t.subtract(s).to(r)}};var HY=[new Fe([1,0,0]),new Fe([0,1,0]),new Fe([0,0,1])],qY=new Fe,Vgt=new Fe,$ie=new pf(new Fe(1,0,0),0),dd=class e{constructor(t=[]){G(this,\"planes\",void 0),this.planes=t}fromBoundingSphere(t){this.planes.length=2*HY.length;let r=t.center,i=t.radius,s=0;for(let n of HY){let o=this.planes[s],c=this.planes[s+1];o||(o=this.planes[s]=new pf),c||(c=this.planes[s+1]=new pf);let f=qY.copy(n).scale(-i).add(r),_=-n.dot(f);o.fromPointNormal(f,n);let w=qY.copy(n).scale(i).add(r),C=Vgt.copy(n).negate(),R=-C.dot(w);c.fromPointNormal(w,C),s+=2}return this}computeVisibility(t){let r=Js.INSIDE;for(let i of this.planes)switch(t.intersectPlane(i)){case Js.OUTSIDE:return Js.OUTSIDE;case Js.INTERSECTING:r=Js.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(t,r){if(Oh(Number.isFinite(r),\"parentPlaneMask is required.\"),r===e.MASK_OUTSIDE||r===e.MASK_INSIDE)return r;let i=e.MASK_INSIDE,s=this.planes;for(let n=0;nf;)Zgt(c,pI),ZY.copy(pI).transpose(),c.multiplyRight(pI),c.multiplyLeft(ZY),o.multiplyRight(pI),++s>2&&(++n,s=0);return t.unitary=o.toTarget(t.unitary),t.diagonal=c.toTarget(t.diagonal),t}function Hgt(e){let t=0;for(let r=0;r<9;++r){let i=e[r];t+=i*i}return Math.sqrt(t)}var EB=[1,0,0],PB=[2,2,1];function qgt(e){let t=0;for(let r=0;r<3;++r){let i=e[pd.getElementIndex(PB[r],EB[r])];t+=2*i*i}return Math.sqrt(t)}function Zgt(e,t){let r=RE.EPSILON15,i=0,s=1;for(let _=0;_<3;++_){let w=Math.abs(e[pd.getElementIndex(PB[_],EB[_])]);w>i&&(s=_,i=w)}let n=EB[s],o=PB[s],c=1,f=0;if(Math.abs(e[pd.getElementIndex(o,n)])>r){let _=e[pd.getElementIndex(o,o)],w=e[pd.getElementIndex(n,n)],C=e[pd.getElementIndex(o,n)],R=(_-w)/2/C,N;R<0?N=-1/(-R+Math.sqrt(1+R*R)):N=1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+N*N),f=N*c}return rs.IDENTITY.to(t),t[pd.getElementIndex(n,n)]=t[pd.getElementIndex(o,o)]=c,t[pd.getElementIndex(o,n)]=f,t[pd.getElementIndex(n,o)]=-f,t}var Tm=new Fe,Ygt=new Fe,Qgt=new Fe,$gt=new Fe,Xgt=new Fe,Kgt=new rs,Jgt={diagonal:new rs,unitary:new rs};function IB(e,t=new lx){if(!e||e.length===0)return t.halfAxes=new rs([0,0,0,0,0,0,0,0,0]),t.center=new Fe,t;let r=e.length,i=new Fe(0,0,0);for(let le of e)i.add(le);let s=1/r;i.multiplyByScalar(s);let n=0,o=0,c=0,f=0,_=0,w=0;for(let le of e){let ue=Tm.copy(le).subtract(i);n+=ue.x*ue.x,o+=ue.x*ue.y,c+=ue.x*ue.z,f+=ue.y*ue.y,_+=ue.y*ue.z,w+=ue.z*ue.z}n*=s,o*=s,c*=s,f*=s,_*=s,w*=s;let C=Kgt;C[0]=n,C[1]=o,C[2]=c,C[3]=o,C[4]=f,C[5]=_,C[6]=c,C[7]=_,C[8]=w;let{unitary:R}=AI(C,Jgt),N=t.halfAxes.copy(R),j=N.getColumn(0,Qgt),Y=N.getColumn(1,$gt),rt=N.getColumn(2,Xgt),$=-Number.MAX_VALUE,K=-Number.MAX_VALUE,tt=-Number.MAX_VALUE,ut=Number.MAX_VALUE,Pt=Number.MAX_VALUE,Ot=Number.MAX_VALUE;for(let le of e)Tm.copy(le),$=Math.max(Tm.dot(j),$),K=Math.max(Tm.dot(Y),K),tt=Math.max(Tm.dot(rt),tt),ut=Math.min(Tm.dot(j),ut),Pt=Math.min(Tm.dot(Y),Pt),Ot=Math.min(Tm.dot(rt),Ot);j=j.multiplyByScalar(.5*(ut+$)),Y=Y.multiplyByScalar(.5*(Pt+K)),rt=rt.multiplyByScalar(.5*(Ot+tt)),t.center.copy(j).add(Y).add(rt);let Kt=Ygt.set($-ut,K-Pt,tt-Ot).multiplyByScalar(.5),Zt=new rs([Kt[0],0,0,0,Kt[1],0,0,0,Kt[2]]);return t.halfAxes.multiplyRight(Zt),t}var cx=512,YY=3,QY=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],$Y=QY.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),t_t=$Y.concat([[.25,.5],[.75,.5]]),CB=class e{constructor(t,r,i){G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"z\",void 0),G(this,\"childVisible\",void 0),G(this,\"selected\",void 0),G(this,\"_children\",void 0),this.x=t,this.y=r,this.z=i}get children(){if(!this._children){let t=this.x*2,r=this.y*2,i=this.z+1;this._children=[new e(t,r,i),new e(t,r+1,i),new e(t+1,r,i),new e(t+1,r+1,i)]}return this._children}update(t){let{viewport:r,cullingVolume:i,elevationBounds:s,minZ:n,maxZ:o,bounds:c,offset:f,project:_}=t,w=this.getBoundingVolume(s,f,_);if(c&&!this.insideBounds(c)||i.computeVisibility(w)<0)return!1;if(!this.childVisible){let{z:R}=this;if(R=n){let N=w.distanceTo(r.cameraPosition)*r.scale/r.height;R+=Math.floor(Math.log2(N))}if(R>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let R of this.children)R.update(t);return!0}getSelected(t=[]){if(this.selected&&t.push(this),this._children)for(let r of this._children)r.getSelected(t);return t}insideBounds([t,r,i,s]){let n=Math.pow(2,this.z),o=cx/n;return this.x*ot&&(this.y+1)*o>r}getBoundingVolume(t,r,i){if(i){let f=this.z<1?t_t:this.z<2?$Y:QY,_=[];for(let w of f){let C=mI(this.x+w[0],this.y+w[1],this.z);C[2]=t[0],_.push(i(C)),t[0]!==t[1]&&(C[2]=t[1],_.push(i(C)))}return IB(_)}let s=Math.pow(2,this.z),n=cx/s,o=this.x*n+r*cx,c=cx-(this.y+1)*n;return new Wg([o,c,t[0]],[o+n,c+n,t[1]])}};function XY(e,t,r,i){let s=e instanceof qy&&e.resolution?e.projectPosition:null,n=Object.values(e.getFrustumPlanes()).map(({normal:N,distance:j})=>new pf(N.clone().negate(),j)),o=new dd(n),c=e.distanceScales.unitsPerMeter[2],f=r&&r[0]*c||0,_=r&&r[1]*c||0,w=e instanceof nc&&e.pitch<=60?t:0;if(i){let[N,j,Y,rt]=i,$=El([N,rt]),K=El([Y,j]);i=[$[0],cx-$[1],K[0],cx-K[1]]}let C=new CB(0,0,0),R={viewport:e,project:s,cullingVolume:o,elevationBounds:[f,_],minZ:w,maxZ:t,bounds:i,offset:0};if(C.update(R),e instanceof nc&&e.subViewports&&e.subViewports.length>1){for(R.offset=-1;C.update(R)&&!(--R.offset<-YY););for(R.offset=1;C.update(R)&&!(++R.offset>YY););}return C.getSelected()}var Dp=512,e_t=[-1/0,-1/0,1/0,1/0],kB={type:\"object\",value:null,validate:(e,t)=>t.optional&&e===null||typeof e==\"string\"||Array.isArray(e)&&e.every(r=>typeof r==\"string\"),equal:(e,t)=>{if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;let r=e.length;if(r!==t.length)return!1;for(let i=0;is[0])),Math.min(...r.map(s=>s[1])),Math.max(...r.map(s=>s[0])),Math.max(...r.map(s=>s[1]))]}function r_t(e){return Math.abs(e.split(\"\").reduce((t,r)=>(t<<5)-t+r.charCodeAt(0)|0,0))}function RB(e,t){if(!e||!e.length)return null;let{index:r,id:i}=t;if(Array.isArray(e)){let n=r_t(i)%e.length;e=e[n]}let s=e;for(let n of Object.keys(r)){let o=new RegExp(\"{\".concat(n,\"}\"),\"g\");s=s.replace(o,String(r[n]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(s=s.replace(/\\{-y\\}/g,String(Math.pow(2,r.z)-r.y-1))),s}function i_t(e,t,r){let i;if(t&&t.length===2){let[s,n]=t,o=e.getBounds({z:s}),c=e.getBounds({z:n});i=[Math.min(o[0],c[0]),Math.min(o[1],c[1]),Math.max(o[2],c[2]),Math.max(o[3],c[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function tQ({viewport:e,z:t=0,cullRect:r}){return(e.subViewports||[e]).map(s=>LB(s,t,r))}function LB(e,t,r){if(!Array.isArray(t)){let n=r.x-e.x,o=r.y-e.y,{width:c,height:f}=r,_={targetZ:t},w=e.unproject([n,o],_),C=e.unproject([n+c,o],_),R=e.unproject([n,o+f],_),N=e.unproject([n+c,o+f],_);return[Math.min(w[0],C[0],R[0],N[0]),Math.min(w[1],C[1],R[1],N[1]),Math.max(w[0],C[0],R[0],N[0]),Math.max(w[1],C[1],R[1],N[1])]}let i=LB(e,t[0],r),s=LB(e,t[1],r);return[Math.min(i[0],s[0]),Math.min(i[1],s[1]),Math.max(i[2],s[2]),Math.max(i[3],s[3])]}function n_t(e,t,r){return r?JY(e,r).map(s=>s*t/Dp):e.map(i=>i*t/Dp)}function DB(e,t){return Math.pow(2,e)*Dp/t}function mI(e,t,r){let i=DB(r,Dp),s=e/i*360-180,n=Math.PI-2*Math.PI*t/i,o=180/Math.PI*Math.atan(.5*(Math.exp(n)-Math.exp(-n)));return[s,o]}function KY(e,t,r,i){let s=DB(r,i);return[e/s*Dp,t/s*Dp]}function OB(e,t,r,i,s=Dp){if(e.isGeospatial){let[_,w]=mI(t,r,i),[C,R]=mI(t+1,r+1,i);return{west:_,north:w,east:C,south:R}}let[n,o]=KY(t,r,i,s),[c,f]=KY(t+1,r+1,i,s);return{left:n,top:o,right:c,bottom:f}}function s_t(e,t,r,i,s){let n=i_t(e,null,i),o=DB(t,r),[c,f,_,w]=n_t(n,o,s),C=[];for(let R=Math.floor(c);R<_;R++)for(let N=Math.floor(f);Nt&&(_=t);let w=s;return o&&c&&s&&!e.isGeospatial&&(w=JY(s,o)),e.isGeospatial?XY(e,_,i,s):s_t(e,_,n,w||e_t,c)}function eQ(e){let t={},r;return i=>{for(let s in i)if(!o_t(i[s],t[s])){r=e(i),t=i;break}return r}}function o_t(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{}},h_t={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:\"best-available\",zRange:null,maxRequests:6,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},dS=class{constructor(t){G(this,\"opts\",void 0),G(this,\"_requestScheduler\",void 0),G(this,\"_cache\",void 0),G(this,\"_dirty\",void 0),G(this,\"_tiles\",void 0),G(this,\"_cacheByteSize\",void 0),G(this,\"_viewport\",void 0),G(this,\"_zRange\",void 0),G(this,\"_selectedTiles\",void 0),G(this,\"_frameNumber\",void 0),G(this,\"_modelMatrix\",void 0),G(this,\"_modelMatrixInverse\",void 0),G(this,\"_maxZoom\",void 0),G(this,\"_minZoom\",void 0),G(this,\"onTileLoad\",void 0),G(this,\"_getCullBounds\",eQ(tQ)),this.opts={...h_t,...t},this.onTileLoad=r=>{var i,s;(i=(s=this.opts).onTileLoad)===null||i===void 0||i.call(s,r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new iy({maxRequests:t.maxRequests,throttleRequests:!!(t.maxRequests&&t.maxRequests>0)}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new wn,this._modelMatrixInverse=new wn,this.setOptions(t)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(t=>t.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(t=>t.needsReload)}setOptions(t){Object.assign(this.opts,t),Number.isFinite(t.maxZoom)&&(this._maxZoom=Math.floor(t.maxZoom)),Number.isFinite(t.minZoom)&&(this._minZoom=Math.ceil(t.minZoom))}finalize(){for(let t of this._cache.values())t.isLoading&&t.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let t of this._cache.keys()){let r=this._cache.get(t);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(t):r.setNeedsReload()}}update(t,{zRange:r,modelMatrix:i}={}){let s=new wn(i),n=!s.equals(this._modelMatrix);if(!this._viewport||!t.equals(this._viewport)||!To(this._zRange,r)||n){n&&(this._modelMatrixInverse=s.clone().invert(),this._modelMatrix=s),this._viewport=t,this._zRange=r;let c=this.getTileIndices({viewport:t,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=c.map(f=>this._getTile(f,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(c=>this._getTile(c.index,!0)));let o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(t,r){if(!t.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=t;for(let[n,o,c,f]of i){let _;if(\"west\"in s)_=s.westn&&s.southo;else{let w=Math.min(s.top,s.bottom),C=Math.max(s.top,s.bottom);_=s.leftn&&wo}if(_)return!0}return!1}return!0}getTileIndices({viewport:t,maxZoom:r,minZoom:i,zRange:s,modelMatrix:n,modelMatrixInverse:o}){let{tileSize:c,extent:f,zoomOffset:_}=this.opts;return BB({viewport:t,maxZoom:r,minZoom:i,zRange:s,tileSize:c,extent:f,modelMatrix:n,modelMatrixInverse:o,zoomOffset:_})}getTileId(t){return\"\".concat(t.x,\"-\").concat(t.y,\"-\").concat(t.z)}getTileZoom(t){return t.z}getTileMetadata(t){let{tileSize:r}=this.opts;return{bbox:OB(this._viewport,t.x,t.y,t.z,r)}}getParentIndex(t){let r=Math.floor(t.x/2),i=Math.floor(t.y/2),s=t.z-1;return{x:r,y:i,z:s}}updateTileStates(){let t=this.opts.refinementStrategy||pS,r=new Array(this._cache.size),i=0;for(let s of this._cache.values())r[i++]=s.isVisible,s.isSelected=!1,s.isVisible=!1;for(let s of this._selectedTiles)s.isSelected=!0,s.isVisible=!0;(typeof t==\"function\"?t:u_t[t])(Array.from(this._cache.values())),i=0;for(let s of this._cache.values())if(r[i++]!==s.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:t=0}=this.opts,r=[],i=0;for(let s of this._cache.values())s.isLoading&&(i++,!s.isSelected&&!s.isVisible&&r.push(s));for(;t>0&&i>t&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:t}=this;for(let r of t.values())r.parent=null,r.children&&(r.children.length=0);for(let r of t.values()){let i=this._getNearestAncestor(r);r.parent=i,i!=null&&i.children&&i.children.push(r)}}_resizeCache(){let{_cache:t,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:c_t*this.selectedTiles.length),s=r.maxCacheByteSize||1/0;if(t.size>i||this._cacheByteSize>s){for(let[f,_]of t){if(!_.isVisible&&!_.isSelected){var o,c;this._cacheByteSize-=r.maxCacheByteSize?_.byteLength:0,t.delete(f),(o=(c=this.opts).onTileUnload)===null||o===void 0||o.call(c,_)}if(t.size<=i&&this._cacheByteSize<=s)break}this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((f,_)=>f.zoom-_.zoom),this._dirty=!1)}_getTile(t,r){let i=this.getTileId(t),s=this._cache.get(i),n=!1;return!s&&r?(s=new uI(t),Object.assign(s,this.getTileMetadata(s.index)),Object.assign(s,{id:i,zoom:this.getTileZoom(s.index)}),n=!0,this._cache.set(i,s),this._dirty=!0):s&&s.needsReload&&(n=!0),s&&n&&s.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),s}_getNearestAncestor(t){let{_minZoom:r=0}=this,i=t.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let s=this._getTile(i);if(s)return s}return null}};function f_t(e){for(let t of e)t.state=0;for(let t of e)t.isSelected&&!iQ(t)&&FB(t);for(let t of e)t.isVisible=!!(t.state&gI)}function d_t(e){for(let r of e)r.state=0;for(let r of e)r.isSelected&&iQ(r);let t=Array.from(e).sort((r,i)=>r.zoom-i.zoom);for(let r of t)if(r.isVisible=!!(r.state&gI),r.children&&(r.isVisible||r.state&rQ))for(let i of r.children)i.state=rQ;else r.isSelected&&FB(r)}function iQ(e){let t=e;for(;t;){if(t.isLoaded||t.content)return t.state|=gI,!0;t=t.parent}return!1}function FB(e){for(let t of e.children)t.isLoaded||t.content?t.state|=gI:FB(t)}var p_t={TilesetClass:dS,data:{type:\"data\",value:[]},dataComparator:kB.equal,renderSubLayers:{type:\"function\",value:e=>new xm(e)},getTileData:{type:\"function\",optional:!0,value:null},onViewportLoad:{type:\"function\",optional:!0,value:null},onTileLoad:{type:\"function\",value:e=>{}},onTileUnload:{type:\"function\",value:e=>{}},onTileError:{type:\"function\",value:e=>console.error(e)},extent:{type:\"array\",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:pS,zRange:null,maxRequests:6,zoomOffset:0},Mm=class extends tn{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var t,r;(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||r.finalize()}get isLoaded(){var t,r,i;return(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||(i=r.selectedTiles)===null||i===void 0?void 0:i.every(s=>s.isLoaded&&s.layers&&s.layers.every(n=>n.isLoaded))}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState({changeFlags:t}){let{tileset:r}=this.state,i=t.propsOrDataChanged||t.updateTriggersChanged,s=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),s?r.reloadAll():this.state.tileset.tiles.forEach(n=>{n.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:t,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:s,extent:n,maxZoom:o,minZoom:c,maxRequests:f,zoomOffset:_}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:o,minZoom:c,tileSize:t,refinementStrategy:s,extent:n,maxRequests:f,zoomOffset:_,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let{tileset:t}=this.state,{zRange:r,modelMatrix:i}=this.props,s=t.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:n}=t,o=this.state.isLoaded!==n,c=this.state.frameNumber!==s;n&&(o||c)&&this._onViewportLoad(),c&&this.setState({frameNumber:s}),this.state.isLoaded=n}_onViewportLoad(){let{tileset:t}=this.state,{onViewportLoad:r}=this.props;r&&r(t.selectedTiles)}_onTileLoad(t){this.props.onTileLoad(t),t.layers=null,this.setNeedsUpdate()}_onTileError(t,r){this.props.onTileError(t),r.layers=null,this.setNeedsUpdate()}_onTileUnload(t){this.props.onTileUnload(t)}getTileData(t){let{data:r,getTileData:i,fetch:s}=this.props,{signal:n}=t;return t.url=typeof r==\"string\"||Array.isArray(r)?RB(r,t):null,i?i(t):s&&t.url?s(t.url,{propName:\"data\",layer:this,signal:n}):null}renderSubLayers(t){return this.props.renderSubLayers(t)}getSubLayerPropsByTile(t){return null}getPickingInfo({info:t,sourceLayer:r}){let i=r.props.tile;return t.picked&&(t.tile=i),t.sourceTile=i,t}_updateAutoHighlight(t){let r=t.sourceTile;if(r&&r.layers)for(let i of r.layers)i.updateAutoHighlight(t)}renderLayers(){return this.state.tileset.tiles.map(t=>{let r=this.getSubLayerPropsByTile(t);if(!(!t.isLoaded&&!t.content))if(t.layers)r&&t.layers[0]&&Object.keys(r).some(i=>t.layers[0].props[i]!==r[i])&&(t.layers=t.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:t.id,updateTriggers:this.props.updateTriggers}),data:t.content,_offset:0,tile:t});t.layers=np(i,Boolean).map(s=>s.clone({tile:t,...r}))}return t.layers})}filterSubLayer({layer:t,cullRect:r}){let{tile:i}=t.props;return this.state.tileset.isTileVisible(i,r)}};G(Mm,\"defaultProps\",p_t);G(Mm,\"layerName\",\"TileLayer\");var Tc=function(e){e=e||{};var t=typeof e<\"u\"?e:{},r={},i;for(i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);var s=[],n=\"\";function o(Ht){return t.locateFile?t.locateFile(Ht,n):n+Ht}var c;document.currentScript&&(n=document.currentScript.src),n.indexOf(\"blob:\")!==0?n=n.substr(0,n.lastIndexOf(\"/\")+1):n=\"\",c=function(fe,De,vr){var g=new XMLHttpRequest;g.open(\"GET\",fe,!0),g.responseType=\"arraybuffer\",g.onload=function(){if(g.status==200||g.status==0&&g.response){De(g.response);return}var Si=ht(fe);if(Si){De(Si.buffer);return}vr()},g.onerror=vr,g.send(null)};var f=t.print||console.log.bind(console),_=t.printErr||console.warn.bind(console);for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);r=null,t.arguments&&(s=t.arguments);var w=0,C=function(Ht){w=Ht},R=function(){return w},N=8;function j(Ht,fe,De,vr){switch(De=De||\"i8\",De.charAt(De.length-1)===\"*\"&&(De=\"i32\"),De){case\"i1\":Lr[Ht>>0]=fe;break;case\"i8\":Lr[Ht>>0]=fe;break;case\"i16\":Bo[Ht>>1]=fe;break;case\"i32\":Fo[Ht>>2]=fe;break;case\"i64\":ve=[fe>>>0,(Ao=fe,+Ol(Ao)>=1?Ao>0?(fn(+os(Ao/4294967296),4294967295)|0)>>>0:~~+te((Ao-+(~~Ao>>>0))/4294967296)>>>0:0)],Fo[Ht>>2]=ve[0],Fo[Ht+4>>2]=ve[1];break;case\"float\":zo[Ht>>2]=fe;break;case\"double\":wi[Ht>>3]=fe;break;default:sh(\"invalid type for setValue: \"+De)}}function Y(Ht,fe,De){switch(fe=fe||\"i8\",fe.charAt(fe.length-1)===\"*\"&&(fe=\"i32\"),fe){case\"i1\":return Lr[Ht>>0];case\"i8\":return Lr[Ht>>0];case\"i16\":return Bo[Ht>>1];case\"i32\":return Fo[Ht>>2];case\"i64\":return Fo[Ht>>2];case\"float\":return zo[Ht>>2];case\"double\":return wi[Ht>>3];default:sh(\"invalid type for getValue: \"+fe)}return null}var rt=!1;function $(Ht,fe){Ht||sh(\"Assertion failed: \"+fe)}function K(Ht){var fe=t[\"_\"+Ht];return $(fe,\"Cannot call unknown function \"+Ht+\", make sure it is exported\"),fe}function tt(Ht,fe,De,vr,g){var Ni={string:function(Ur){var hi=0;if(Ur!=null&&Ur!==0){var go=(Ur.length<<2)+1;hi=jp(go),le(Ur,hi,go)}return hi},array:function(Ur){var hi=jp(Ur.length);return Ge(Ur,hi),hi}};function Si(Ur){return fe===\"string\"?Kt(Ur):fe===\"boolean\"?!!Ur:Ur}var Tt=K(Ht),Ts=[],as=0;if(vr)for(var li=0;li=vr);)++g;if(g-fe>16&&Ht.subarray&&Pt)return Pt.decode(Ht.subarray(fe,g));for(var Ni=\"\";fe>10,56320|as&1023)}}return Ni}function Kt(Ht,fe){return Ht?Ot(zi,Ht,fe):\"\"}function Zt(Ht,fe,De,vr){if(!(vr>0))return 0;for(var g=De,Ni=De+vr-1,Si=0;Si=55296&&Tt<=57343){var Ts=Ht.charCodeAt(++Si);Tt=65536+((Tt&1023)<<10)|Ts&1023}if(Tt<=127){if(De>=Ni)break;fe[De++]=Tt}else if(Tt<=2047){if(De+1>=Ni)break;fe[De++]=192|Tt>>6,fe[De++]=128|Tt&63}else if(Tt<=65535){if(De+2>=Ni)break;fe[De++]=224|Tt>>12,fe[De++]=128|Tt>>6&63,fe[De++]=128|Tt&63}else{if(De+3>=Ni)break;fe[De++]=240|Tt>>18,fe[De++]=128|Tt>>12&63,fe[De++]=128|Tt>>6&63,fe[De++]=128|Tt&63}}return fe[De]=0,De-g}function le(Ht,fe,De){return Zt(Ht,zi,fe,De)}var ue=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0;function Ge(Ht,fe){Lr.set(Ht,fe)}function tr(Ht,fe){return Ht%fe>0&&(Ht+=fe-Ht%fe),Ht}var er,Lr,zi,Bo,Pc,Fo,rh,zo,wi;function Ds(Ht){er=Ht,t.HEAP8=Lr=new Int8Array(Ht),t.HEAP16=Bo=new Int16Array(Ht),t.HEAP32=Fo=new Int32Array(Ht),t.HEAPU8=zi=new Uint8Array(Ht),t.HEAPU16=Pc=new Uint16Array(Ht),t.HEAPU32=rh=new Uint32Array(Ht),t.HEAPF32=zo=new Float32Array(Ht),t.HEAPF64=wi=new Float64Array(Ht)}var sl=5266928,Ic=24016,Cc=t.TOTAL_MEMORY||33554432;t.buffer?er=t.buffer:er=new ArrayBuffer(Cc),Cc=er.byteLength,Ds(er),Fo[Ic>>2]=sl;function Zi(Ht){for(;Ht.length>0;){var fe=Ht.shift();if(typeof fe==\"function\"){fe();continue}var De=fe.func;typeof De==\"number\"?fe.arg===void 0?t.dynCall_v(De):t.dynCall_vi(De,fe.arg):De(fe.arg===void 0?null:fe.arg)}}var $n=[],Ii=[],Xn=[],No=[];function ol(){if(t.preRun)for(typeof t.preRun==\"function\"&&(t.preRun=[t.preRun]);t.preRun.length;)ss(t.preRun.shift());Zi($n)}function fo(){Zi(Ii)}function Ea(){Zi(Xn)}function na(){if(t.postRun)for(typeof t.postRun==\"function\"&&(t.postRun=[t.postRun]);t.postRun.length;)to(t.postRun.shift());Zi(No)}function ss(Ht){$n.unshift(Ht)}function to(Ht){No.unshift(Ht)}var Ol=Math.abs,te=Math.ceil,os=Math.floor,fn=Math.min,gi=0,oi=null,eo=null;function uu(Ht){gi++,t.monitorRunDependencies&&t.monitorRunDependencies(gi)}function al(Ht){if(gi--,t.monitorRunDependencies&&t.monitorRunDependencies(gi),gi==0&&(oi!==null&&(clearInterval(oi),oi=null),eo)){var fe=eo;eo=null,fe()}}t.preloadedImages={},t.preloadedAudios={};var po=null,ll=\"data:application/octet-stream;base64,\";function Pa(Ht){return String.prototype.startsWith?Ht.startsWith(ll):Ht.indexOf(ll)===0}var Ao,ve;po=\"data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl\";var Uo=24032;function dn(Ht){return Ht}function Bl(Ht){var fe=/\\b__Z[\\w\\d_]+/g;return Ht.replace(fe,function(De){var vr=De;return De===vr?De:vr+\" [\"+De+\"]\"})}function Ia(){var Ht=new Error;if(!Ht.stack){try{throw new Error(0)}catch(fe){Ht=fe}if(!Ht.stack)return\"(no stack trace available)\"}return Ht.stack.toString()}function Se(){var Ht=Ia();return t.extraStackTrace&&(Ht+=`\n`+t.extraStackTrace()),Bl(Ht)}function Dr(Ht,fe,De,vr){sh(\"Assertion failed: \"+Kt(Ht)+\", at: \"+[fe?Kt(fe):\"unknown filename\",De,vr?Kt(vr):\"unknown function\"])}function mr(){return Lr.length}function Os(Ht,fe,De){zi.set(zi.subarray(fe,fe+De),Ht)}function Ca(Ht){return t.___errno_location&&(Fo[t.___errno_location()>>2]=Ht),Ht}function Tr(Ht){sh(\"OOM\")}function sa(Ht){try{var fe=new ArrayBuffer(Ht);return fe.byteLength!=Ht?void 0:(new Int8Array(fe).set(Lr),vi(fe),Ds(fe),1)}catch{}}function gt(Ht){var fe=mr(),De=16777216,vr=2147483648-De;if(Ht>vr)return!1;for(var g=16777216,Ni=Math.max(fe,g);Ni>4,g=(Tt&15)<<4|Ts>>2,Ni=(Ts&3)<<6|as,De=De+String.fromCharCode(vr),Ts!==64&&(De=De+String.fromCharCode(g)),as!==64&&(De=De+String.fromCharCode(Ni));while(li>2]=p,g[k+4>>2]=m,k=(I|0)!=0,k&&(g[I>>2]=0),Ui(p,m)|0)return zt=1,wt=Gt,zt|0;g[zt>>2]=0;t:do if((y|0)>=1)if(k)for(it=0,ot=1,Ct=1,L=0,k=p;;){if(!(L|it)){if(k=jn(k,m,4,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(Ui(k,m)|0){k=1;break t}}if(k=jn(k,m,g[16+(it<<2)>>2]|0,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Ct<<3)|0,g[p>>2]=k,g[p+4>>2]=m,g[I+(Ct<<2)>>2]=ot,L=L+1|0,p=(L|0)==(ot|0),z=it+1|0,H=(z|0)==6,Ui(k,m)|0){k=1;break t}if(ot=ot+(H&p&1)|0,(ot|0)>(y|0)){k=0;break}else it=p?H?0:z:it,Ct=Ct+1|0,L=p?0:L}else for(it=0,ot=1,Ct=1,L=0,k=p;;){if(!(L|it)){if(k=jn(k,m,4,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(Ui(k,m)|0){k=1;break t}}if(k=jn(k,m,g[16+(it<<2)>>2]|0,zt)|0,m=It()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Ct<<3)|0,g[p>>2]=k,g[p+4>>2]=m,L=L+1|0,p=(L|0)==(ot|0),z=it+1|0,H=(z|0)==6,Ui(k,m)|0){k=1;break t}if(ot=ot+(H&p&1)|0,(ot|0)>(y|0)){k=0;break}else it=p?H?0:z:it,Ct=Ct+1|0,L=p?0:L}else k=0;while(!1);return zt=k,wt=Gt,zt|0}function Oa(p,m,y,S,I,k,L){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0,k=k|0,L=L|0;var z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0;if(Ct=wt,wt=wt+16|0,ot=Ct,(p|0)==0&(m|0)==0){wt=Ct;return}if(z=qo(p|0,m|0,k|0,((k|0)<0)<<31>>31|0)|0,It()|0,H=S+(z<<3)|0,zt=H,Gt=g[zt>>2]|0,zt=g[zt+4>>2]|0,it=(Gt|0)==(p|0)&(zt|0)==(m|0),!((Gt|0)==0&(zt|0)==0|it))do z=(z+1|0)%(k|0)|0,H=S+(z<<3)|0,Gt=H,zt=g[Gt>>2]|0,Gt=g[Gt+4>>2]|0,it=(zt|0)==(p|0)&(Gt|0)==(m|0);while(!((zt|0)==0&(Gt|0)==0|it));if(z=I+(z<<2)|0,it&&(g[z>>2]|0)<=(L|0)){wt=Ct;return}if(Gt=H,g[Gt>>2]=p,g[Gt+4>>2]=m,g[z>>2]=L,(L|0)>=(y|0)){wt=Ct;return}Gt=L+1|0,g[ot>>2]=0,zt=jn(p,m,2,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,3,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,1,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,5,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,4,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),g[ot>>2]=0,zt=jn(p,m,6,ot)|0,Oa(zt,It()|0,y,S,I,k,Gt),wt=Ct}function jn(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0;if((g[S>>2]|0)>0){I=0;do y=za(y)|0,I=I+1|0;while((I|0)<(g[S>>2]|0))}z=me(p|0,m|0,45)|0,It()|0,H=z&127,k=Ms(p,m)|0,I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!I)L=6;else for(;;){if(Ct=(15-I|0)*3|0,zt=me(p|0,m|0,Ct|0)|0,It()|0,zt=zt&7,Gt=(Go(I)|0)==0,I=I+-1|0,ot=Le(7,0,Ct|0)|0,m=m&~(It()|0),Ct=Le(g[(Gt?464:48)+(zt*28|0)+(y<<2)>>2]|0,0,Ct|0)|0,it=It()|0,y=g[(Gt?672:256)+(zt*28|0)+(y<<2)>>2]|0,p=Ct|p&~ot,m=it|m,!y){y=0;break t}if(!I){L=6;break}}while(!1);(L|0)==6&&(Gt=g[880+(H*28|0)+(y<<2)>>2]|0,zt=Le(Gt|0,0,45)|0,p=zt|p,m=It()|0|m&-1040385,y=g[4304+(H*28|0)+(y<<2)>>2]|0,(Gt&127|0)==127&&(Gt=Le(g[880+(H*28|0)+20>>2]|0,0,45)|0,m=It()|0|m&-1040385,y=g[4304+(H*28|0)+20>>2]|0,p=jo(Gt|p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+1)),L=me(p|0,m|0,45)|0,It()|0,L=L&127;t:do if(fi(L)|0){e:do if((Ms(p,m)|0)==1){if((H|0)!=(L|0))if(lh(L,g[7728+(H*28|0)>>2]|0)|0){p=Od(p,m)|0,k=1,m=It()|0;break}else{p=jo(p,m)|0,k=1,m=It()|0;break}switch(k|0){case 5:{p=Od(p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+5,k=0;break e}case 3:{p=jo(p,m)|0,m=It()|0,g[S>>2]=(g[S>>2]|0)+1,k=0;break e}default:return zt=0,Gt=0,$e(zt|0),Gt|0}}else k=0;while(!1);if((y|0)>0){I=0;do p=mh(p,m)|0,m=It()|0,I=I+1|0;while((I|0)!=(y|0))}if((H|0)!=(L|0)){if(!(du(L)|0)){if((k|0)!=0|(Ms(p,m)|0)!=5)break;g[S>>2]=(g[S>>2]|0)+1;break}switch(z&127){case 8:case 118:break t;default:}(Ms(p,m)|0)!=3&&(g[S>>2]=(g[S>>2]|0)+1)}}else if((y|0)>0){I=0;do p=jo(p,m)|0,m=It()|0,I=I+1|0;while((I|0)!=(y|0))}while(!1);return g[S>>2]=((g[S>>2]|0)+y|0)%6|0,zt=m,Gt=p,$e(zt|0),Gt|0}function i_(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0;if(Ct=wt,wt=wt+16|0,ot=Ct,!y)return ot=S,g[ot>>2]=p,g[ot+4>>2]=m,ot=0,wt=Ct,ot|0;g[ot>>2]=0;t:do if(Ui(p,m)|0)p=1;else{if(k=(y|0)>0,k){I=0,it=p;do{if(it=jn(it,m,4,ot)|0,m=It()|0,(it|0)==0&(m|0)==0){p=2;break t}if(I=I+1|0,Ui(it,m)|0){p=1;break t}}while((I|0)<(y|0));if(H=S,g[H>>2]=it,g[H+4>>2]=m,H=y+-1|0,k){k=0,L=1,I=it,p=m;do{if(I=jn(I,p,2,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(L<<3)|0,g[z>>2]=I,g[z+4>>2]=p,L=L+1|0,Ui(I,p)|0){p=1;break t}k=k+1|0}while((k|0)<(y|0));z=0,k=L;do{if(I=jn(I,p,3,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(L=S+(k<<3)|0,g[L>>2]=I,g[L+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}z=z+1|0}while((z|0)<(y|0));L=0;do{if(I=jn(I,p,1,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(I=jn(I,p,5,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(I=jn(I,p,4,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,k=k+1|0,Ui(I,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));for(L=0;;){if(I=jn(I,p,6,ot)|0,p=It()|0,(I|0)==0&(p|0)==0){p=2;break t}if((L|0)!=(H|0))if(z=S+(k<<3)|0,g[z>>2]=I,g[z+4>>2]=p,!(Ui(I,p)|0))k=k+1|0;else{p=1;break t}if(L=L+1|0,(L|0)>=(y|0)){L=it,k=m;break}}}else L=it,I=it,k=m,p=m}else L=S,g[L>>2]=p,g[L+4>>2]=m,L=p,I=p,k=m,p=m;p=((L|0)!=(I|0)|(k|0)!=(p|0))&1}while(!1);return ot=p,wt=Ct,ot|0}function Pd(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;if(k=wt,wt=wt+48|0,I=k+8|0,S=k,z=p,L=g[z+4>>2]|0,y=S,g[y>>2]=g[z>>2],g[y+4>>2]=L,Me(S,I),I=ch(I,m)|0,m=g[S>>2]|0,S=g[p+8>>2]|0,(S|0)<=0)return z=m,L=(I|0)<(z|0),z=L?z:I,z=z+12|0,wt=k,z|0;y=g[p+12>>2]|0,p=0;do m=(g[y+(p<<3)>>2]|0)+m|0,p=p+1|0;while((p|0)<(S|0));return z=(I|0)<(m|0),z=z?m:I,z=z+12|0,wt=k,z|0}function Zp(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;if(z=wt,wt=wt+48|0,S=z+8|0,I=z,!(Yp(p,m,y)|0)){wt=z;return}if(H=p,k=g[H+4>>2]|0,L=I,g[L>>2]=g[H>>2],g[L+4>>2]=k,Me(I,S),L=ch(S,m)|0,m=g[I>>2]|0,k=g[p+8>>2]|0,(k|0)>0){I=g[p+12>>2]|0,S=0;do m=(g[I+(S<<3)>>2]|0)+m|0,S=S+1|0;while((S|0)!=(k|0))}if(m=(L|0)<(m|0)?m:L,(m|0)<=-12){wt=z;return}H=m+11|0,Dc(y|0,0,(((H|0)>0?H:0)<<3)+8|0)|0,wt=z}function Yp(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(Or=wt,wt=wt+112|0,cn=Or+80|0,H=Or+72|0,Ei=Or,vn=Or+56|0,it=p+8|0,An=no((g[it>>2]<<5)+32|0)|0,An||Ti(22848,22448,800,22456),dr(p,An),k=p,S=g[k+4>>2]|0,z=H,g[z>>2]=g[k>>2],g[z+4>>2]=S,Me(H,cn),z=ch(cn,m)|0,S=g[H>>2]|0,k=g[it>>2]|0,(k|0)>0){L=g[p+12>>2]|0,I=0;do S=(g[L+(I<<3)>>2]|0)+S|0,I=I+1|0;while((I|0)!=(k|0))}if(z=(z|0)<(S|0)?S:z,Mi=z+12|0,I=Na(Mi,8)|0,ot=Na(Mi,8)|0,g[cn>>2]=0,Zr=p,Gi=g[Zr+4>>2]|0,S=H,g[S>>2]=g[Zr>>2],g[S+4>>2]=Gi,S=Km(H,Mi,m,cn,I,ot)|0,S|0)return Gr(I),Gr(ot),Gr(An),An=S,wt=Or,An|0;t:do if((g[it>>2]|0)>0){for(k=p+12|0,S=0;L=Km((g[k>>2]|0)+(S<<3)|0,Mi,m,cn,I,ot)|0,S=S+1|0,!(L|0);)if((S|0)>=(g[it>>2]|0))break t;return Gr(I),Gr(ot),Gr(An),An=L,wt=Or,An|0}while(!1);(z|0)>-12&&Dc(ot|0,0,((Mi|0)>1?Mi:1)<<3|0)|0;t:do if((g[cn>>2]|0)>0){Gi=((Mi|0)<0)<<31>>31,Nt=I,Ze=ot,Ke=I,be=I,ze=ot,Zr=I,S=I,Ce=I,Ve=ot,Jt=ot,_e=ot,I=ot;e:for(;;){for(ie=g[cn>>2]|0,Gt=0,ee=0,k=0;;){L=Ei,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));if(m=Nt+(Gt<<3)|0,H=g[m>>2]|0,m=g[m+4>>2]|0,gf(H,m,1,Ei,0)|0){L=Ei,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));L=Na(7,4)|0,L|0&&(Oa(H,m,1,Ei,L,7,0),Gr(L))}zt=0;do{Ct=Ei+(zt<<3)|0,ot=g[Ct>>2]|0,Ct=g[Ct+4>>2]|0;r:do if(!((ot|0)==0&(Ct|0)==0)){if(H=qo(ot|0,Ct|0,Mi|0,Gi|0)|0,It()|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,!((m|0)==0&(z|0)==0))for(it=0;;){if((it|0)>(Mi|0))break e;if((m|0)==(ot|0)&(z|0)==(Ct|0))break r;if(H=(H+1|0)%(Mi|0)|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,(m|0)==0&(z|0)==0)break;it=it+1|0}(ot|0)==0&(Ct|0)==0||(l(ot,Ct,vn),Xe(p,An,vn)|0&&(it=L,g[it>>2]=ot,g[it+4>>2]=Ct,it=Ze+(k<<3)|0,g[it>>2]=ot,g[it+4>>2]=Ct,k=k+1|0))}while(!1);zt=zt+1|0}while(zt>>>0<7);if(ee=ee+1|0,(ee|0)>=(ie|0))break;Gt=Gt+1|0}if((ie|0)>0&&Dc(Ke|0,0,ie<<3|0)|0,g[cn>>2]=k,(k|0)>0)ot=I,Ct=_e,zt=Zr,Gt=Jt,ee=Ve,ie=Ze,I=Ce,_e=S,Jt=be,Ve=Ke,Ce=ot,S=Ct,Zr=ze,ze=zt,be=Gt,Ke=ee,Ze=Nt,Nt=ie;else break t}return Gr(be),Gr(ze),Gr(An),An=-1,wt=Or,An|0}else S=ot;while(!1);return Gr(An),Gr(I),Gr(S),An=0,wt=Or,An|0}function Km(p,m,y,S,I,k){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0,k=k|0;var L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0;if(Gi=wt,wt=wt+48|0,Ke=Gi+32|0,be=Gi+16|0,ze=Gi,L=g[p>>2]|0,(L|0)<=0)return Zr=0,wt=Gi,Zr|0;Ve=p+4|0,Jt=Ke+8|0,_e=be+8|0,Nt=ze+8|0,Ze=((m|0)<0)<<31>>31,Ce=0;t:for(;;){z=g[Ve>>2]|0,ee=z+(Ce<<4)|0,g[Ke>>2]=g[ee>>2],g[Ke+4>>2]=g[ee+4>>2],g[Ke+8>>2]=g[ee+8>>2],g[Ke+12>>2]=g[ee+12>>2],(Ce|0)==(L+-1|0)?(g[be>>2]=g[z>>2],g[be+4>>2]=g[z+4>>2],g[be+8>>2]=g[z+8>>2],g[be+12>>2]=g[z+12>>2]):(ee=z+(Ce+1<<4)|0,g[be>>2]=g[ee>>2],g[be+4>>2]=g[ee+4>>2],g[be+8>>2]=g[ee+8>>2],g[be+12>>2]=g[ee+12>>2]),ee=la(Ke,be,y)|0;e:do if((ee|0)>0){ie=+(ee|0),Gt=0;r:for(;;){cn=+(ee-Gt|0),Mi=+(Gt|0),Tt[ze>>3]=+Tt[Ke>>3]*cn/ie+ +Tt[be>>3]*Mi/ie,Tt[Nt>>3]=+Tt[Jt>>3]*cn/ie+ +Tt[_e>>3]*Mi/ie,Ct=sA(ze,y)|0,zt=It()|0,z=qo(Ct|0,zt|0,m|0,Ze|0)|0,It()|0,L=k+(z<<3)|0,H=L,it=g[H>>2]|0,H=g[H+4>>2]|0;i:do if((it|0)==0&(H|0)==0)Zr=14;else for(ot=0;;){if((ot|0)>(m|0)){L=1;break i}if((it|0)==(Ct|0)&(H|0)==(zt|0)){L=7;break i}if(z=(z+1|0)%(m|0)|0,L=k+(z<<3)|0,H=L,it=g[H>>2]|0,H=g[H+4>>2]|0,(it|0)==0&(H|0)==0){Zr=14;break}else ot=ot+1|0}while(!1);switch((Zr|0)==14&&(Zr=0,(Ct|0)==0&(zt|0)==0?L=7:(g[L>>2]=Ct,g[L+4>>2]=zt,L=g[S>>2]|0,ot=I+(L<<3)|0,g[ot>>2]=Ct,g[ot+4>>2]=zt,g[S>>2]=L+1,L=0)),L&7){case 7:case 0:break;default:break r}if(Gt=Gt+1|0,(ee|0)<=(Gt|0)){Zr=8;break e}}if(L|0){L=-1,Zr=20;break t}}else Zr=8;while(!1);if((Zr|0)==8&&(Zr=0),Ce=Ce+1|0,L=g[p>>2]|0,(Ce|0)>=(L|0)){L=0,Zr=20;break}}return(Zr|0)==20?(wt=Gi,L|0):0}function Pn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(it=wt,wt=wt+176|0,H=it,(m|0)<1){gu(y,0,0),wt=it;return}L=p,L=me(g[L>>2]|0,g[L+4>>2]|0,52)|0,It()|0,gu(y,(m|0)>6?m:6,L&15),L=0;do{if(S=p+(L<<3)|0,d(g[S>>2]|0,g[S+4>>2]|0,H),S=g[H>>2]|0,(S|0)>0){z=0;do k=H+8+(z<<4)|0,z=z+1|0,S=H+8+(((z|0)%(S|0)|0)<<4)|0,I=_h(y,S,k)|0,I?Es(y,I)|0:yo(y,k,S)|0,S=g[H>>2]|0;while((z|0)<(S|0))}L=L+1|0}while((L|0)!=(m|0));wt=it}function oh(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(k=wt,wt=wt+32|0,S=k,I=k+16|0,Pn(p,m,I),g[y>>2]=0,g[y+4>>2]=0,g[y+8>>2]=0,p=Ns(I)|0,!p){Wt(y)|0,gh(I),wt=k;return}do{m=yt(y)|0;do dt(m,p)|0,L=p+16|0,g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],g[S+12>>2]=g[L+12>>2],Es(I,p)|0,p=On(I,S)|0;while(p|0);p=Ns(I)|0}while(p|0);Wt(y)|0,gh(I),wt=k}function fi(p){return p=p|0,g[7728+(p*28|0)+16>>2]|0}function du(p){return p=p|0,(p|0)==4|(p|0)==117|0}function _f(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)>>2]|0}function Qp(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)+4>>2]|0}function ah(p,m){p=p|0,m=m|0,p=7728+(p*28|0)|0,g[m>>2]=g[p>>2],g[m+4>>2]=g[p+4>>2],g[m+8>>2]=g[p+8>>2],g[m+12>>2]=g[p+12>>2]}function Id(p,m){p=p|0,m=m|0;var y=0,S=0;if(m>>>0>20)return m=-1,m|0;do if((g[11152+(m*216|0)>>2]|0)!=(p|0))if((g[11152+(m*216|0)+8>>2]|0)!=(p|0))if((g[11152+(m*216|0)+16>>2]|0)!=(p|0))if((g[11152+(m*216|0)+24>>2]|0)!=(p|0))if((g[11152+(m*216|0)+32>>2]|0)!=(p|0))if((g[11152+(m*216|0)+40>>2]|0)!=(p|0))if((g[11152+(m*216|0)+48>>2]|0)!=(p|0))if((g[11152+(m*216|0)+56>>2]|0)!=(p|0))if((g[11152+(m*216|0)+64>>2]|0)!=(p|0))if((g[11152+(m*216|0)+72>>2]|0)!=(p|0))if((g[11152+(m*216|0)+80>>2]|0)!=(p|0))if((g[11152+(m*216|0)+88>>2]|0)!=(p|0))if((g[11152+(m*216|0)+96>>2]|0)!=(p|0))if((g[11152+(m*216|0)+104>>2]|0)!=(p|0))if((g[11152+(m*216|0)+112>>2]|0)!=(p|0))if((g[11152+(m*216|0)+120>>2]|0)!=(p|0))if((g[11152+(m*216|0)+128>>2]|0)!=(p|0))if((g[11152+(m*216|0)+136>>2]|0)==(p|0))p=2,y=1,S=2;else{if((g[11152+(m*216|0)+144>>2]|0)==(p|0)){p=0,y=2,S=0;break}if((g[11152+(m*216|0)+152>>2]|0)==(p|0)){p=0,y=2,S=1;break}if((g[11152+(m*216|0)+160>>2]|0)==(p|0)){p=0,y=2,S=2;break}if((g[11152+(m*216|0)+168>>2]|0)==(p|0)){p=1,y=2,S=0;break}if((g[11152+(m*216|0)+176>>2]|0)==(p|0)){p=1,y=2,S=1;break}if((g[11152+(m*216|0)+184>>2]|0)==(p|0)){p=1,y=2,S=2;break}if((g[11152+(m*216|0)+192>>2]|0)==(p|0)){p=2,y=2,S=0;break}if((g[11152+(m*216|0)+200>>2]|0)==(p|0)){p=2,y=2,S=1;break}if((g[11152+(m*216|0)+208>>2]|0)==(p|0)){p=2,y=2,S=2;break}else p=-1;return p|0}else p=2,y=1,S=1;else p=2,y=1,S=0;else p=1,y=1,S=2;else p=1,y=1,S=1;else p=1,y=1,S=0;else p=0,y=1,S=2;else p=0,y=1,S=1;else p=0,y=1,S=0;else p=2,y=0,S=2;else p=2,y=0,S=1;else p=2,y=0,S=0;else p=1,y=0,S=2;else p=1,y=0,S=1;else p=1,y=0,S=0;else p=0,y=0,S=2;else p=0,y=0,S=1;else p=0,y=0,S=0;while(!1);return m=g[11152+(m*216|0)+(y*72|0)+(p*24|0)+(S<<3)+4>>2]|0,m|0}function lh(p,m){return p=p|0,m=m|0,(g[7728+(p*28|0)+20>>2]|0)==(m|0)?(m=1,m|0):(m=(g[7728+(p*28|0)+24>>2]|0)==(m|0),m|0)}function $p(p,m){return p=p|0,m=m|0,g[880+(p*28|0)+(m<<2)>>2]|0}function Xp(p,m){return p=p|0,m=m|0,(g[880+(p*28|0)>>2]|0)==(m|0)?(m=0,m|0):(g[880+(p*28|0)+4>>2]|0)==(m|0)?(m=1,m|0):(g[880+(p*28|0)+8>>2]|0)==(m|0)?(m=2,m|0):(g[880+(p*28|0)+12>>2]|0)==(m|0)?(m=3,m|0):(g[880+(p*28|0)+16>>2]|0)==(m|0)?(m=4,m|0):(g[880+(p*28|0)+20>>2]|0)==(m|0)?(m=5,m|0):((g[880+(p*28|0)+24>>2]|0)==(m|0)?6:7)|0}function n_(){return 122}function s_(p){p=p|0;var m=0,y=0,S=0;m=0;do Le(m|0,0,45)|0,S=It()|0|134225919,y=p+(m<<3)|0,g[y>>2]=-1,g[y+4>>2]=S,m=m+1|0;while((m|0)!=122)}function Jm(p){return p=p|0,+Tt[p+16>>3]<+Tt[p+24>>3]|0}function hl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return y=+Tt[m>>3],!(y>=+Tt[p+8>>3])||!(y<=+Tt[p>>3])?(m=0,m|0):(S=+Tt[p+16>>3],y=+Tt[p+24>>3],I=+Tt[m+8>>3],m=I>=y,p=I<=S&1,S>2]=0,k=k+4|0;while((k|0)<(z|0));return O(m,I),k=I,z=g[k>>2]|0,k=g[k+4>>2]|0,l(z,k,y),d(z,k,S),H=+Rc(y,S+8|0),Tt[y>>3]=+Tt[p>>3],k=y+8|0,Tt[k>>3]=+Tt[p+16>>3],Tt[S>>3]=+Tt[p+8>>3],z=S+8|0,Tt[z>>3]=+Tt[p+24>>3],it=+Rc(y,S),z=~~+Qi(+(it*it/+dl(+ +li(+((+Tt[k>>3]-+Tt[z>>3])/(+Tt[y>>3]-+Tt[S>>3]))),3)/(H*(H*2.59807621135)*.8))),wt=L,(z|0?z:1)|0}function la(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0;z=wt,wt=wt+288|0,S=z+264|0,I=z+96|0,k=z,L=k,H=L+96|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(H|0));return O(y,k),H=k,L=g[H>>2]|0,H=g[H+4>>2]|0,l(L,H,S),d(L,H,I),it=+Rc(S,I+8|0),H=~~+Qi(+(+Rc(p,m)/(it*2))),wt=z,(H|0?H:1)|0}function Cd(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0,g[p>>2]=m,g[p+4>>2]=y,g[p+8>>2]=S}function o_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;Ct=m+8|0,g[Ct>>2]=0,H=+Tt[p>>3],L=+li(+H),it=+Tt[p+8>>3],z=+li(+it)/.8660254037844386,L=L+z*.5,y=~~L,p=~~z,L=L-+(y|0),z=z-+(p|0);do if(L<.5)if(L<.3333333333333333)if(g[m>>2]=y,z<(L+1)*.5){g[m+4>>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}else if(zt=1-L,p=(!(z>2]=p,zt<=z&z>2]=y;break}else{g[m>>2]=y;break}else{if(!(L<.6666666666666666))if(y=y+1|0,g[m>>2]=y,z>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}if(z<1-L){if(g[m+4>>2]=p,L*2+-1>2]=y;break}}else p=p+1|0,g[m+4>>2]=p;y=y+1|0,g[m>>2]=y}while(!1);do if(H<0)if(p&1){ot=(p+1|0)/2|0,ot=Bd(y|0,((y|0)<0)<<31>>31|0,ot|0,((ot|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-((+(ot>>>0)+4294967296*+(It()|0))*2+1)),g[m>>2]=y;break}else{ot=(p|0)/2|0,ot=Bd(y|0,((y|0)<0)<<31>>31|0,ot|0,((ot|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-(+(ot>>>0)+4294967296*+(It()|0))*2),g[m>>2]=y;break}while(!1);ot=m+4|0,it<0&&(y=y-((p<<1|1|0)/2|0)|0,g[m>>2]=y,p=0-p|0,g[ot>>2]=p),S=p-y|0,(y|0)<0?(I=0-y|0,g[ot>>2]=S,g[Ct>>2]=I,g[m>>2]=0,p=S,y=0):I=0,(p|0)<0&&(y=y-p|0,g[m>>2]=y,I=I-p|0,g[Ct>>2]=I,g[ot>>2]=0,p=0),k=y-I|0,S=p-I|0,(I|0)<0&&(g[m>>2]=k,g[ot>>2]=S,g[Ct>>2]=0,p=S,y=k,I=0),S=(p|0)<(y|0)?p:y,S=(I|0)<(S|0)?I:S,!((S|0)<=0)&&(g[m>>2]=y-S,g[ot>>2]=p-S,g[Ct>>2]=I-S)}function Fs(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,(m|0)<0&&(y=y-m|0,g[L>>2]=y,k=p+8|0,g[k>>2]=(g[k>>2]|0)-m,g[p>>2]=0,m=0),(y|0)<0?(m=m-y|0,g[p>>2]=m,k=p+8|0,I=(g[k>>2]|0)-y|0,g[k>>2]=I,g[L>>2]=0,y=0):(I=p+8|0,k=I,I=g[I>>2]|0),(I|0)<0&&(m=m-I|0,g[p>>2]=m,y=y-I|0,g[L>>2]=y,g[k>>2]=0,I=0),S=(y|0)<(m|0)?y:m,S=(I|0)<(S|0)?I:S,!((S|0)<=0)&&(g[p>>2]=m-S,g[L>>2]=y-S,g[k>>2]=I-S)}function pu(p,m){p=p|0,m=m|0;var y=0,S=0;S=g[p+8>>2]|0,y=+((g[p+4>>2]|0)-S|0),Tt[m>>3]=+((g[p>>2]|0)-S|0)-y*.5,Tt[m+8>>3]=y*.8660254037844386}function In(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[m>>2]|0)+(g[p>>2]|0),g[y+4>>2]=(g[m+4>>2]|0)+(g[p+4>>2]|0),g[y+8>>2]=(g[m+8>>2]|0)+(g[p+8>>2]|0)}function Kp(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[p>>2]|0)-(g[m>>2]|0),g[y+4>>2]=(g[p+4>>2]|0)-(g[m+4>>2]|0),g[y+8>>2]=(g[p+8>>2]|0)-(g[m+8>>2]|0)}function ca(p,m){p=p|0,m=m|0;var y=0,S=0;y=kc(g[p>>2]|0,m)|0,g[p>>2]=y,y=p+4|0,S=kc(g[y>>2]|0,m)|0,g[y>>2]=S,p=p+8|0,m=kc(g[p>>2]|0,m)|0,g[p>>2]=m}function Ba(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=g[p>>2]|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,I=(k?0-S|0:0)+((g[p+8>>2]|0)-(z?L:0))|0,y=(I|0)<0,p=y?0:I,m=(k?0:S)-(y?I:0)|0,I=(z?0:L)-(k?S:0)-(y?I:0)|0,y=(m|0)<(I|0)?m:I,y=(p|0)<(y|0)?p:y,S=(y|0)>0,p=p-(S?y:0)|0,m=m-(S?y:0)|0;t:do switch(I-(S?y:0)|0){case 0:switch(m|0){case 0:return z=p|0?(p|0)==1?1:7:0,z|0;case 1:return z=p|0?(p|0)==1?3:7:2,z|0;default:break t}case 1:switch(m|0){case 0:return z=p|0?(p|0)==1?5:7:4,z|0;case 1:{if(!p)p=6;else break t;return p|0}default:break t}default:}while(!1);return z=7,z|0}function Ld(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=pn(+((m*3|0)-y|0)/7)|0,g[p>>2]=S,m=pn(+((y<<1)+m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,I=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,m=I,I=k,y=0):I=S,S=(m|0)<(I|0)?m:I,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=I-S,g[z>>2]=m-S,g[L>>2]=y-S)}function fl(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=pn(+((m<<1)+y|0)/7)|0,g[p>>2]=S,m=pn(+((y*3|0)-m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,I=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,m=I,I=k,y=0):I=S,S=(m|0)<(I|0)?m:I,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=I-S,g[z>>2]=m-S,g[L>>2]=y-S)}function Fa(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,I=y+(m*3|0)|0,g[p>>2]=I,y=S+(y*3|0)|0,g[L>>2]=y,m=(S*3|0)+m|0,g[z>>2]=m,S=y-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=I,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function uh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m*3|0)+I|0,I=y+(I*3|0)|0,g[p>>2]=I,g[L>>2]=S,m=(y*3|0)+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,I=0):y=S,(y|0)<0&&(I=I-y|0,g[p>>2]=I,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=I-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,I=k,m=0):S=y,y=(S|0)<(I|0)?S:I,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=I-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Jp(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;(m+-1|0)>>>0>=6||(I=(g[15472+(m*12|0)>>2]|0)+(g[p>>2]|0)|0,g[p>>2]=I,z=p+4|0,S=(g[15472+(m*12|0)+4>>2]|0)+(g[z>>2]|0)|0,g[z>>2]=S,L=p+8|0,m=(g[15472+(m*12|0)+8>>2]|0)+(g[L>>2]|0)|0,g[L>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[z>>2]=y,g[L>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[L>>2]=m,g[z>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[z>>2]=I,g[L>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[z>>2]=I-y,g[L>>2]=m-y))}function t0(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=m+I|0,I=y+I|0,g[p>>2]=I,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function hh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,S=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,I=S+m|0,g[p>>2]=I,S=y+S|0,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=I),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function za(p){switch(p=p|0,p|0){case 1:{p=5;break}case 5:{p=4;break}case 4:{p=6;break}case 6:{p=2;break}case 2:{p=3;break}case 3:{p=1;break}default:}return p|0}function ro(p){switch(p=p|0,p|0){case 1:{p=3;break}case 3:{p=2;break}case 2:{p=6;break}case 6:{p=4;break}case 4:{p=5;break}case 5:{p=1;break}default:}return p|0}function Ue(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,I=y+(m<<1)|0,g[p>>2]=I,y=S+(y<<1)|0,g[L>>2]=y,m=(S<<1)+m|0,g[z>>2]=m,S=y-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=I,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,I=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=I,g[z>>2]=0,S=k,m=0):I=y,y=(I|0)<(S|0)?I:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=I-y,g[z>>2]=m-y)}function kd(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m<<1)+I|0,I=y+(I<<1)|0,g[p>>2]=I,g[L>>2]=S,m=(y<<1)+m|0,g[z>>2]=m,y=S-I|0,(I|0)<0?(m=m-I|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,I=0):y=S,(y|0)<0&&(I=I-y|0,g[p>>2]=I,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=I-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,I=k,m=0):S=y,y=(S|0)<(I|0)?S:I,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=I-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Vl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;return L=(g[p>>2]|0)-(g[m>>2]|0)|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(g[m+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,I=(z?0-L|0:0)+(g[p+8>>2]|0)-(g[m+8>>2]|0)+(k?0-S|0:0)|0,p=(I|0)<0,m=p?0:I,y=(k?0:S)-(p?I:0)|0,I=(z?0:L)-(k?S:0)-(p?I:0)|0,p=(y|0)<(I|0)?y:I,p=(m|0)<(p|0)?m:p,S=(p|0)>0,m=m-(S?p:0)|0,y=y-(S?p:0)|0,p=I-(S?p:0)|0,p=(p|0)>-1?p:0-p|0,y=(y|0)>-1?y:0-y|0,m=(m|0)>-1?m:0-m|0,m=(y|0)>(m|0)?y:m,((p|0)>(m|0)?p:m)|0}function yf(p,m){p=p|0,m=m|0;var y=0;y=g[p+8>>2]|0,g[m>>2]=(g[p>>2]|0)-y,g[m+4>>2]=(g[p+4>>2]|0)-y}function a_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;S=g[p>>2]|0,g[m>>2]=S,p=g[p+4>>2]|0,L=m+4|0,g[L>>2]=p,z=m+8|0,g[z>>2]=0,y=p-S|0,(S|0)<0?(p=0-S|0,g[L>>2]=y,g[z>>2]=p,g[m>>2]=0,S=0):(y=p,p=0),(y|0)<0&&(S=S-y|0,g[m>>2]=S,p=p-y|0,g[z>>2]=p,g[L>>2]=0,y=0),k=S-p|0,I=y-p|0,(p|0)<0?(g[m>>2]=k,g[L>>2]=I,g[z>>2]=0,y=I,I=k,p=0):I=S,S=(y|0)<(I|0)?y:I,S=(p|0)<(S|0)?p:S,!((S|0)<=0)&&(g[m>>2]=I-S,g[L>>2]=y-S,g[z>>2]=p-S)}function Re(p){p=p|0;var m=0,y=0,S=0,I=0;m=p+8|0,I=g[m>>2]|0,y=I-(g[p>>2]|0)|0,g[p>>2]=y,S=p+4|0,p=(g[S>>2]|0)-I|0,g[S>>2]=p,g[m>>2]=0-(p+y)}function e0(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;y=g[p>>2]|0,m=0-y|0,g[p>>2]=m,L=p+8|0,g[L>>2]=0,z=p+4|0,S=g[z>>2]|0,I=S+y|0,(y|0)>0?(g[z>>2]=I,g[L>>2]=y,g[p>>2]=0,m=0,S=I):y=0,(S|0)<0?(k=m-S|0,g[p>>2]=k,y=y-S|0,g[L>>2]=y,g[z>>2]=0,I=k-y|0,m=0-y|0,(y|0)<0?(g[p>>2]=I,g[z>>2]=m,g[L>>2]=0,S=m,y=0):(S=0,I=k)):I=m,m=(S|0)<(I|0)?S:I,m=(y|0)<(m|0)?y:m,!((m|0)<=0)&&(g[p>>2]=I-m,g[z>>2]=S-m,g[L>>2]=y-m)}function r0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,Ix(p,m,y,I),o_(I,y+4|0),wt=S}function Ix(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0;if(H=wt,wt=wt+32|0,k=H,jl(p,k),g[y>>2]=0,I=+jr(15888,k),L=+jr(15912,k),L>2]=1,I=L),L=+jr(15936,k),L>2]=2,I=L),L=+jr(15960,k),L>2]=3,I=L),L=+jr(15984,k),L>2]=4,I=L),L=+jr(16008,k),L>2]=5,I=L),L=+jr(16032,k),L>2]=6,I=L),L=+jr(16056,k),L>2]=7,I=L),L=+jr(16080,k),L>2]=8,I=L),L=+jr(16104,k),L>2]=9,I=L),L=+jr(16128,k),L>2]=10,I=L),L=+jr(16152,k),L>2]=11,I=L),L=+jr(16176,k),L>2]=12,I=L),L=+jr(16200,k),L>2]=13,I=L),L=+jr(16224,k),L>2]=14,I=L),L=+jr(16248,k),L>2]=15,I=L),L=+jr(16272,k),L>2]=16,I=L),L=+jr(16296,k),L>2]=17,I=L),L=+jr(16320,k),L>2]=18,I=L),L=+jr(16344,k),L>2]=19,I=L),L=+mf(+(1-I*.5)),L<1e-16){g[S>>2]=0,g[S+4>>2]=0,g[S+8>>2]=0,g[S+12>>2]=0,wt=H;return}if(y=g[y>>2]|0,I=+Tt[16368+(y*24|0)>>3],I=+dh(I-+dh(+Rd(15568+(y<<4)|0,p))),Go(m)|0?z=+dh(I+-.3334731722518321):z=I,I=+go(+L)/.381966011250105,(m|0)>0){k=0;do I=I*2.6457513110645907,k=k+1|0;while((k|0)!=(m|0))}L=+Ur(+z)*I,Tt[S>>3]=L,z=+hi(+z)*I,Tt[S+8>>3]=z,wt=H}function fh(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0;if(k=+cs(p),k<1e-16){m=15568+(m<<4)|0,g[I>>2]=g[m>>2],g[I+4>>2]=g[m+4>>2],g[I+8>>2]=g[m+8>>2],g[I+12>>2]=g[m+12>>2];return}if(L=+qr(+ +Tt[p+8>>3],+ +Tt[p>>3]),(y|0)>0){p=0;do k=k/2.6457513110645907,p=p+1|0;while((p|0)!=(y|0))}S?(k=k/3,y=(Go(y)|0)==0,k=+Sd(+((y?k:k/2.6457513110645907)*.381966011250105))):(k=+Sd(+(k*.381966011250105)),Go(y)|0&&(L=+dh(L+.3334731722518321))),a0(15568+(m<<4)|0,+dh(+Tt[16368+(m*24|0)>>3]-L),k,I)}function l_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,pu(p+4|0,I),fh(I,g[p>>2]|0,m,0,y),wt=S}function i0(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(vn=wt,wt=wt+272|0,k=vn+256|0,Jt=vn+240|0,Mi=vn,cn=vn+224|0,Ei=vn+208|0,_e=vn+176|0,Nt=vn+160|0,Ze=vn+192|0,Ke=vn+144|0,be=vn+128|0,ze=vn+112|0,Zr=vn+96|0,Gi=vn+80|0,g[k>>2]=m,g[Jt>>2]=g[p>>2],g[Jt+4>>2]=g[p+4>>2],g[Jt+8>>2]=g[p+8>>2],g[Jt+12>>2]=g[p+12>>2],n0(Jt,k,Mi),g[I>>2]=0,Jt=S+y+((S|0)==5&1)|0,(Jt|0)<=(y|0)){wt=vn;return}H=g[k>>2]|0,it=cn+4|0,ot=_e+4|0,Ct=y+5|0,zt=16848+(H<<2)|0,Gt=16928+(H<<2)|0,ee=be+8|0,ie=ze+8|0,Ce=Zr+8|0,Ve=Ei+4|0,z=y;t:for(;;){L=Mi+(((z|0)%5|0)<<4)|0,g[Ei>>2]=g[L>>2],g[Ei+4>>2]=g[L+4>>2],g[Ei+8>>2]=g[L+8>>2],g[Ei+12>>2]=g[L+12>>2];do;while((vf(Ei,H,0,1)|0)==2);if((z|0)>(y|0)&(Go(m)|0)!=0){if(g[_e>>2]=g[Ei>>2],g[_e+4>>2]=g[Ei+4>>2],g[_e+8>>2]=g[Ei+8>>2],g[_e+12>>2]=g[Ei+12>>2],pu(it,Nt),S=g[_e>>2]|0,k=g[17008+(S*80|0)+(g[cn>>2]<<2)>>2]|0,g[_e>>2]=g[18608+(S*80|0)+(k*20|0)>>2],L=g[18608+(S*80|0)+(k*20|0)+16>>2]|0,(L|0)>0){p=0;do t0(ot),p=p+1|0;while((p|0)<(L|0))}switch(L=18608+(S*80|0)+(k*20|0)+4|0,g[Ze>>2]=g[L>>2],g[Ze+4>>2]=g[L+4>>2],g[Ze+8>>2]=g[L+8>>2],ca(Ze,(g[zt>>2]|0)*3|0),In(ot,Ze,ot),Fs(ot),pu(ot,Ke),An=+(g[Gt>>2]|0),Tt[be>>3]=An*3,Tt[ee>>3]=0,Or=An*-1.5,Tt[ze>>3]=Or,Tt[ie>>3]=An*2.598076211353316,Tt[Zr>>3]=Or,Tt[Ce>>3]=An*-2.598076211353316,g[17008+((g[_e>>2]|0)*80|0)+(g[Ei>>2]<<2)>>2]|0){case 1:{p=ze,S=be;break}case 3:{p=Zr,S=ze;break}case 2:{p=be,S=Zr;break}default:{p=12;break t}}Dn(Nt,Ke,S,p,Gi),fh(Gi,g[_e>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1}if((z|0)<(Ct|0)&&(pu(Ve,_e),fh(_e,g[Ei>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1),g[cn>>2]=g[Ei>>2],g[cn+4>>2]=g[Ei+4>>2],g[cn+8>>2]=g[Ei+8>>2],g[cn+12>>2]=g[Ei+12>>2],z=z+1|0,(z|0)>=(Jt|0)){p=3;break}}if((p|0)==3){wt=vn;return}else(p|0)==12&&Ti(22474,22521,581,22531)}function n0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+128|0,S=H+64|0,I=H,k=S,L=20208,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=I,L=20272,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Go(g[m>>2]|0)|0)==0,S=z?S:I,I=p+4|0,Ue(I),kd(I),Go(g[m>>2]|0)|0&&(uh(I),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,In(I,S,m),Fs(m),g[y+16>>2]=g[p>>2],m=y+20|0,In(I,S+12|0,m),Fs(m),g[y+32>>2]=g[p>>2],m=y+36|0,In(I,S+24|0,m),Fs(m),g[y+48>>2]=g[p>>2],m=y+52|0,In(I,S+36|0,m),Fs(m),g[y+64>>2]=g[p>>2],y=y+68|0,In(I,S+48|0,y),Fs(y),wt=H}function vf(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0;if(ee=wt,wt=wt+32|0,zt=ee+12|0,z=ee,Gt=p+4|0,Ct=g[16928+(m<<2)>>2]|0,ot=(S|0)!=0,Ct=ot?Ct*3|0:Ct,I=g[Gt>>2]|0,it=p+8|0,L=g[it>>2]|0,ot){if(k=p+12|0,S=g[k>>2]|0,I=L+I+S|0,(I|0)==(Ct|0))return Gt=1,wt=ee,Gt|0;H=k}else H=p+12|0,S=g[H>>2]|0,I=L+I+S|0;if((I|0)<=(Ct|0))return Gt=0,wt=ee,Gt|0;do if((S|0)>0){if(S=g[p>>2]|0,(L|0)>0){k=18608+(S*80|0)+60|0,S=p;break}S=18608+(S*80|0)+40|0,y?(Cd(zt,Ct,0,0),Kp(Gt,zt,z),hh(z),In(z,zt,Gt),k=S,S=p):(k=S,S=p)}else k=18608+((g[p>>2]|0)*80|0)+20|0,S=p;while(!1);if(g[S>>2]=g[k>>2],I=k+16|0,(g[I>>2]|0)>0){S=0;do t0(Gt),S=S+1|0;while((S|0)<(g[I>>2]|0))}return p=k+4|0,g[zt>>2]=g[p>>2],g[zt+4>>2]=g[p+4>>2],g[zt+8>>2]=g[p+8>>2],m=g[16848+(m<<2)>>2]|0,ca(zt,ot?m*3|0:m),In(Gt,zt,Gt),Fs(Gt),ot?S=((g[it>>2]|0)+(g[Gt>>2]|0)+(g[H>>2]|0)|0)==(Ct|0)?1:2:S=2,Gt=S,wt=ee,Gt|0}function s0(p,m){p=p|0,m=m|0;var y=0;do y=vf(p,m,0,1)|0;while((y|0)==2);return y|0}function tA(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0;if(Zr=wt,wt=wt+240|0,k=Zr+224|0,Ze=Zr+208|0,Ke=Zr,be=Zr+192|0,ze=Zr+176|0,Ce=Zr+160|0,Ve=Zr+144|0,Jt=Zr+128|0,_e=Zr+112|0,Nt=Zr+96|0,g[k>>2]=m,g[Ze>>2]=g[p>>2],g[Ze+4>>2]=g[p+4>>2],g[Ze+8>>2]=g[p+8>>2],g[Ze+12>>2]=g[p+12>>2],eA(Ze,k,Ke),g[I>>2]=0,ie=S+y+((S|0)==6&1)|0,(ie|0)<=(y|0)){wt=Zr;return}H=g[k>>2]|0,it=y+6|0,ot=16928+(H<<2)|0,Ct=Ve+8|0,zt=Jt+8|0,Gt=_e+8|0,ee=be+4|0,L=0,z=y,S=-1;t:for(;;){if(k=(z|0)%6|0,p=Ke+(k<<4)|0,g[be>>2]=g[p>>2],g[be+4>>2]=g[p+4>>2],g[be+8>>2]=g[p+8>>2],g[be+12>>2]=g[p+12>>2],p=L,L=vf(be,H,0,1)|0,(z|0)>(y|0)&(Go(m)|0)!=0&&(p|0)!=1&&(g[be>>2]|0)!=(S|0)){switch(pu(Ke+(((k+5|0)%6|0)<<4)+4|0,ze),pu(Ke+(k<<4)+4|0,Ce),Gi=+(g[ot>>2]|0),Tt[Ve>>3]=Gi*3,Tt[Ct>>3]=0,Mi=Gi*-1.5,Tt[Jt>>3]=Mi,Tt[zt>>3]=Gi*2.598076211353316,Tt[_e>>3]=Mi,Tt[Gt>>3]=Gi*-2.598076211353316,k=g[Ze>>2]|0,g[17008+(k*80|0)+(((S|0)==(k|0)?g[be>>2]|0:S)<<2)>>2]|0){case 1:{p=Jt,S=Ve;break}case 3:{p=_e,S=Jt;break}case 2:{p=Ve,S=_e;break}default:{p=8;break t}}Dn(ze,Ce,S,p,Nt),!(Wo(ze,Nt)|0)&&!(Wo(Ce,Nt)|0)&&(fh(Nt,g[Ze>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1)}if((z|0)<(it|0)&&(pu(ee,ze),fh(ze,g[be>>2]|0,H,1,I+8+(g[I>>2]<<4)|0),g[I>>2]=(g[I>>2]|0)+1),z=z+1|0,(z|0)>=(ie|0)){p=3;break}else S=g[be>>2]|0}if((p|0)==3){wt=Zr;return}else(p|0)==8&&Ti(22557,22521,746,22602)}function eA(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+160|0,S=H+80|0,I=H,k=S,L=20336,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=I,L=20416,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Go(g[m>>2]|0)|0)==0,S=z?S:I,I=p+4|0,Ue(I),kd(I),Go(g[m>>2]|0)|0&&(uh(I),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,In(I,S,m),Fs(m),g[y+16>>2]=g[p>>2],m=y+20|0,In(I,S+12|0,m),Fs(m),g[y+32>>2]=g[p>>2],m=y+36|0,In(I,S+24|0,m),Fs(m),g[y+48>>2]=g[p>>2],m=y+52|0,In(I,S+36|0,m),Fs(m),g[y+64>>2]=g[p>>2],m=y+68|0,In(I,S+48|0,m),Fs(m),g[y+80>>2]=g[p>>2],y=y+84|0,In(I,S+60|0,y),Fs(y),wt=H}function dh(p){p=+p;var m=0;return m=p<0?p+6.283185307179586:p,+(p>=6.283185307179586?m+-6.283185307179586:m)}function ls(p,m){return p=p|0,m=m|0,+li(+(+Tt[p>>3]-+Tt[m>>3]))<17453292519943298e-27?(m=+li(+(+Tt[p+8>>3]-+Tt[m+8>>3]))<17453292519943298e-27,m|0):(m=0,m|0)}function Au(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2)}function Rc(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2*6371.007180918475)}function o0(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;return I=+Tt[m>>3],S=+Tt[p>>3],k=+hi(+((I-S)*.5)),y=+hi(+((+Tt[m+8>>3]-+Tt[p+8>>3])*.5)),y=k*k+y*(+Ur(+I)*+Ur(+S)*y),+(+qr(+ +_n(+y),+ +_n(+(1-y)))*2*6371.007180918475*1e3)}function Rd(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;return k=+Tt[m>>3],S=+Ur(+k),I=+Tt[m+8>>3]-+Tt[p+8>>3],L=S*+hi(+I),y=+Tt[p>>3],+ +qr(+L,+(+hi(+k)*+Ur(+y)-+Ur(+I)*(S*+hi(+y))))}function a0(p,m,y,S){p=p|0,m=+m,y=+y,S=S|0;var I=0,k=0,L=0,z=0;if(y<1e-16){g[S>>2]=g[p>>2],g[S+4>>2]=g[p+4>>2],g[S+8>>2]=g[p+8>>2],g[S+12>>2]=g[p+12>>2];return}k=m<0?m+6.283185307179586:m,k=m>=6.283185307179586?k+-6.283185307179586:k;do if(k<1e-16)m=+Tt[p>>3]+y,Tt[S>>3]=m,I=S;else{if(I=+li(+(k+-3.141592653589793))<1e-16,m=+Tt[p>>3],I){m=m-y,Tt[S>>3]=m,I=S;break}if(L=+Ur(+y),y=+hi(+y),m=L*+hi(+m)+ +Ur(+k)*(y*+Ur(+m)),m=m>1?1:m,m=+t_(+(m<-1?-1:m)),Tt[S>>3]=m,+li(+(m+-1.5707963267948966))<1e-16){Tt[S>>3]=1.5707963267948966,Tt[S+8>>3]=0;return}if(+li(+(m+1.5707963267948966))<1e-16){Tt[S>>3]=-1.5707963267948966,Tt[S+8>>3]=0;return}if(z=+Ur(+m),k=y*+hi(+k)/z,y=+Tt[p>>3],m=(L-+hi(+m)*+hi(+y))/+Ur(+y)/z,L=k>1?1:k,m=m>1?1:m,m=+Tt[p+8>>3]+ +qr(+(L<-1?-1:L),+(m<-1?-1:m)),m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);Tt[S+8>>3]=m;return}while(!1);if(+li(+(m+-1.5707963267948966))<1e-16){Tt[I>>3]=1.5707963267948966,Tt[S+8>>3]=0;return}if(+li(+(m+1.5707963267948966))<1e-16){Tt[I>>3]=-1.5707963267948966,Tt[S+8>>3]=0;return}if(m=+Tt[p+8>>3],m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);Tt[S+8>>3]=m}function c_(p){return p=p|0,+ +Tt[20496+(p<<3)>>3]}function ua(p){return p=p|0,+ +Tt[20624+(p<<3)>>3]}function ln(p){return p=p|0,+ +Tt[20752+(p<<3)>>3]}function rA(p){return p=p|0,+ +Tt[20880+(p<<3)>>3]}function l0(p){p=p|0;var m=0;return m=21008+(p<<3)|0,p=g[m>>2]|0,$e(g[m+4>>2]|0),p|0}function ph(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;return zt=+Tt[m>>3],ot=+Tt[p>>3],H=+hi(+((zt-ot)*.5)),k=+Tt[m+8>>3],it=+Tt[p+8>>3],L=+hi(+((k-it)*.5)),z=+Ur(+ot),Ct=+Ur(+zt),L=H*H+L*(Ct*z*L),L=+qr(+ +_n(+L),+ +_n(+(1-L)))*2,H=+Tt[y>>3],zt=+hi(+((H-zt)*.5)),S=+Tt[y+8>>3],k=+hi(+((S-k)*.5)),I=+Ur(+H),k=zt*zt+k*(Ct*I*k),k=+qr(+ +_n(+k),+ +_n(+(1-k)))*2,H=+hi(+((ot-H)*.5)),S=+hi(+((it-S)*.5)),S=H*H+S*(z*I*S),S=+qr(+ +_n(+S),+ +_n(+(1-S)))*2,I=(L+k+S)*.5,+(+Sd(+ +_n(+(+go(+(I*.5))*+go(+((I-L)*.5))*+go(+((I-k)*.5))*+go(+((I-S)*.5)))))*4)}function u_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)<=0)return y=0,wt=k,+y;if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)==1)return wt=k,+y;p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0));return wt=k,+y}function h_(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)>0){if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475)}function Cx(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,I=k,l(p,m,S),d(p,m,I),m=g[I>>2]|0,(m|0)>0){if(y=+ph(I+8|0,I+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +ph(I+8+(L<<4)|0,I+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475*1e3*1e3)}function _o(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+S)*+Ur(+H)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)<(m|0));return wt=L,+y}function iA(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+H)*+Ur(+S)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)!=(m|0));return it=y*6371.007180918475,wt=L,+it}function rr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(L=wt,wt=wt+176|0,k=L,pt(p,m,k),p=g[k>>2]|0,(p|0)<=1)return I=0,wt=L,+I;m=p+-1|0,p=0,y=0,S=+Tt[k+8>>3],I=+Tt[k+16>>3];do p=p+1|0,H=S,S=+Tt[k+8+(p<<4)>>3],it=+hi(+((S-H)*.5)),z=I,I=+Tt[k+8+(p<<4)+8>>3],z=+hi(+((I-z)*.5)),z=it*it+z*(+Ur(+H)*+Ur(+S)*z),y=y+ +qr(+ +_n(+z),+ +_n(+(1-z)))*2;while((p|0)!=(m|0));return it=y*6371.007180918475*1e3,wt=L,+it}function fr(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,52)|0,It()|0,m&15|0}function xf(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,45)|0,It()|0,m&127|0}function nA(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0;if(!(!0&(m&-16777216|0)==134217728)||(L=me(p|0,m|0,45)|0,It()|0,L=L&127,L>>>0>121))return m=0,m|0;y=me(p|0,m|0,52)|0,It()|0,y=y&15;do if(y|0){for(I=1,S=0;;){if(k=me(p|0,m|0,(15-I|0)*3|0)|0,It()|0,k=k&7,(k|0)!=0&(S^1))if((k|0)==1&(fi(L)|0)!=0){z=0,S=13;break}else S=1;if((k|0)==7){z=0,S=13;break}if(I>>>0>>0)I=I+1|0;else{S=9;break}}if((S|0)==9){if((y|0)==15)z=1;else break;return z|0}else if((S|0)==13)return z|0}while(!1);for(;;){if(z=me(p|0,m|0,(14-y|0)*3|0)|0,It()|0,!((z&7|0)==7&!0)){z=0,S=13;break}if(y>>>0<14)y=y+1|0;else{z=1,S=13;break}}return(S|0)==13?z|0:0}function Dd(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,(S|0)>=(y|0)){if((S|0)!=(y|0))if(y>>>0<=15){if(I=Le(y|0,0,52)|0,p=I|p,m=It()|0|m&-15728641,(S|0)>(y|0))do I=Le(7,0,(14-y|0)*3|0)|0,y=y+1|0,p=I|p,m=It()|0|m;while((y|0)<(S|0))}else m=0,p=0}else m=0,p=0;return $e(m|0),p|0}function Gn(p,m,y){return p=p|0,m=m|0,y=y|0,p=me(p|0,m|0,52)|0,It()|0,p=p&15,(y|0)<16&(p|0)<=(y|0)?(y=We(7,y-p|0)|0,y|0):(y=0,y|0)}function io(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(L=me(p|0,m|0,52)|0,It()|0,L=L&15,!!((y|0)<16&(L|0)<=(y|0))){if((L|0)==(y|0)){y=S,g[y>>2]=p,g[y+4>>2]=m;return}if(H=We(7,y-L|0)|0,it=(H|0)/7|0,z=me(p|0,m|0,45)|0,It()|0,!(fi(z&127)|0))k=0;else{t:do if(!L)I=0;else for(k=1;;){if(I=me(p|0,m|0,(15-k|0)*3|0)|0,It()|0,I=I&7,I|0)break t;if(k>>>0>>0)k=k+1|0;else{I=0;break}}while(!1);k=(I|0)==0}if(ot=Le(L+1|0,0,52)|0,I=It()|0|m&-15728641,z=(14-L|0)*3|0,m=Le(7,0,z|0)|0,m=(ot|p)&~m,L=I&~(It()|0),io(m,L,y,S),I=S+(it<<3)|0,!k){ot=Le(1,0,z|0)|0,io(ot|m,It()|0|L,y,I),ot=I+(it<<3)|0,H=Le(2,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(3,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(4,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(5,0,z|0)|0,io(H|m,It()|0|L,y,ot),H=Le(6,0,z|0)|0,io(H|m,It()|0|L,y,ot+(it<<3)|0);return}k=I+(it<<3)|0,(H|0)>6&&(H=I+8|0,ot=(k>>>0>H>>>0?k:H)+-1+(0-I)|0,Dc(I|0,0,ot+8&-8|0)|0,I=H+(ot>>>3<<3)|0),ot=Le(2,0,z|0)|0,io(ot|m,It()|0|L,y,I),ot=I+(it<<3)|0,H=Le(3,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(4,0,z|0)|0,io(H|m,It()|0|L,y,ot),ot=ot+(it<<3)|0,H=Le(5,0,z|0)|0,io(H|m,It()|0|L,y,ot),H=Le(6,0,z|0)|0,io(H|m,It()|0|L,y,ot+(it<<3)|0)}}function Ui(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(I=me(p|0,m|0,45)|0,It()|0,!(fi(I&127)|0))return I=0,I|0;I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!I)y=0;else for(S=1;;){if(y=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,y=y&7,y|0)break t;if(S>>>0>>0)S=S+1|0;else{y=0;break}}while(!1);return I=(y|0)==0&1,I|0}function f_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,(y|0)<16&(S|0)<=(y|0)){if((S|0)!=(y|0)&&(I=Le(y|0,0,52)|0,p=I|p,m=It()|0|m&-15728641,(S|0)<(y|0)))do I=Le(7,0,(14-S|0)*3|0)|0,S=S+1|0,p=p&~I,m=m&~(It()|0);while((S|0)<(y|0))}else m=0,p=0;return $e(m|0),p|0}function Ah(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0;if(!y)return be=0,be|0;if(I=p,S=g[I>>2]|0,I=g[I+4>>2]|0,!0&(I&15728640|0)==0){if((y|0)<=0||(be=m,g[be>>2]=S,g[be+4>>2]=I,(y|0)==1))return be=0,be|0;S=1;do Ze=p+(S<<3)|0,Ke=g[Ze+4>>2]|0,be=m+(S<<3)|0,g[be>>2]=g[Ze>>2],g[be+4>>2]=Ke,S=S+1|0;while((S|0)!=(y|0));return S=0,S|0}if(Ze=y<<3,Ke=no(Ze)|0,!Ke)return be=-3,be|0;if(Ua(Ke|0,p|0,Ze|0)|0,Nt=Na(y,8)|0,!Nt)return Gr(Ke),be=-3,be|0;S=y;t:for(;;){L=Ke,ot=g[L>>2]|0,L=g[L+4>>2]|0,Jt=me(ot|0,L|0,52)|0,It()|0,Jt=Jt&15,_e=Jt+-1|0,Ve=(S|0)>0;e:do if(Ve){if(Ce=((S|0)<0)<<31>>31,ee=Le(_e|0,0,52)|0,ie=It()|0,_e>>>0>15)for(I=0,p=ot,y=L;;){if(!((p|0)==0&(y|0)==0)){if(k=me(p|0,y|0,52)|0,It()|0,k=k&15,z=(k|0)<(_e|0),k=(k|0)==(_e|0),it=z?0:k?p:0,p=z?0:k?y:0,y=qo(it|0,p|0,S|0,Ce|0)|0,It()|0,k=Nt+(y<<3)|0,z=k,H=g[z>>2]|0,z=g[z+4>>2]|0,(H|0)==0&(z|0)==0)y=it;else for(ee=0,Gt=y,zt=z,y=it;;){if((ee|0)>(S|0)){be=41;break t}if((H|0)==(y|0)&(zt&-117440513|0)==(p|0)){it=me(H|0,zt|0,56)|0,It()|0,it=it&7,Ct=it+1|0,ie=me(H|0,zt|0,45)|0,It()|0;r:do if(!(fi(ie&127)|0))z=7;else{if(H=me(H|0,zt|0,52)|0,It()|0,H=H&15,!H){z=6;break}for(z=1;;){if(ie=Le(7,0,(15-z|0)*3|0)|0,!((ie&y|0)==0&((It()|0)&p|0)==0)){z=7;break r}if(z>>>0>>0)z=z+1|0;else{z=6;break}}}while(!1);if((it+2|0)>>>0>z>>>0){be=51;break t}ie=Le(Ct|0,0,56)|0,p=It()|0|p&-117440513,z=k,g[z>>2]=0,g[z+4>>2]=0,z=Gt,y=ie|y}else z=(Gt+1|0)%(S|0)|0;if(k=Nt+(z<<3)|0,zt=k,H=g[zt>>2]|0,zt=g[zt+4>>2]|0,(H|0)==0&(zt|0)==0)break;ee=ee+1|0,Gt=z}ie=k,g[ie>>2]=y,g[ie+4>>2]=p}if(I=I+1|0,(I|0)>=(S|0))break e;y=Ke+(I<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}for(I=0,p=ot,y=L;;){if(!((p|0)==0&(y|0)==0)){if(z=me(p|0,y|0,52)|0,It()|0,z=z&15,(z|0)>=(_e|0)){if((z|0)!=(_e|0)&&(p=p|ee,y=y&-15728641|ie,z>>>0>=Jt>>>0)){k=_e;do Gt=Le(7,0,(14-k|0)*3|0)|0,k=k+1|0,p=Gt|p,y=It()|0|y;while(k>>>0>>0)}}else p=0,y=0;if(z=qo(p|0,y|0,S|0,Ce|0)|0,It()|0,k=Nt+(z<<3)|0,H=k,it=g[H>>2]|0,H=g[H+4>>2]|0,!((it|0)==0&(H|0)==0))for(Gt=0;;){if((Gt|0)>(S|0)){be=41;break t}if((it|0)==(p|0)&(H&-117440513|0)==(y|0)){Ct=me(it|0,H|0,56)|0,It()|0,Ct=Ct&7,zt=Ct+1|0,ze=me(it|0,H|0,45)|0,It()|0;r:do if(!(fi(ze&127)|0))H=7;else{if(it=me(it|0,H|0,52)|0,It()|0,it=it&15,!it){H=6;break}for(H=1;;){if(ze=Le(7,0,(15-H|0)*3|0)|0,!((ze&p|0)==0&((It()|0)&y|0)==0)){H=7;break r}if(H>>>0>>0)H=H+1|0;else{H=6;break}}}while(!1);if((Ct+2|0)>>>0>H>>>0){be=51;break t}ze=Le(zt|0,0,56)|0,y=It()|0|y&-117440513,zt=k,g[zt>>2]=0,g[zt+4>>2]=0,p=ze|p}else z=(z+1|0)%(S|0)|0;if(k=Nt+(z<<3)|0,H=k,it=g[H>>2]|0,H=g[H+4>>2]|0,(it|0)==0&(H|0)==0)break;Gt=Gt+1|0}ze=k,g[ze>>2]=p,g[ze+4>>2]=y}if(I=I+1|0,(I|0)>=(S|0))break e;y=Ke+(I<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}}while(!1);if((S+5|0)>>>0<11){be=99;break}if(ie=Na((S|0)/6|0,8)|0,!ie){be=58;break}e:do if(Ve){Gt=0,zt=0;do{if(z=Nt+(Gt<<3)|0,p=z,I=g[p>>2]|0,p=g[p+4>>2]|0,!((I|0)==0&(p|0)==0)){H=me(I|0,p|0,56)|0,It()|0,H=H&7,y=H+1|0,it=p&-117440513,ze=me(I|0,p|0,45)|0,It()|0;r:do if(fi(ze&127)|0){if(Ct=me(I|0,p|0,52)|0,It()|0,Ct=Ct&15,Ct|0)for(k=1;;){if(ze=Le(7,0,(15-k|0)*3|0)|0,!((I&ze|0)==0&(it&(It()|0)|0)==0))break r;if(k>>>0>>0)k=k+1|0;else break}p=Le(y|0,0,56)|0,I=p|I,p=It()|0|it,y=z,g[y>>2]=I,g[y+4>>2]=p,y=H+2|0}while(!1);(y|0)==7&&(ze=ie+(zt<<3)|0,g[ze>>2]=I,g[ze+4>>2]=p&-117440513,zt=zt+1|0)}Gt=Gt+1|0}while((Gt|0)!=(S|0));if(Ve){if(ee=((S|0)<0)<<31>>31,Ct=Le(_e|0,0,52)|0,Gt=It()|0,_e>>>0>15)for(p=0,I=0;;){do if(!((ot|0)==0&(L|0)==0)){for(H=me(ot|0,L|0,52)|0,It()|0,H=H&15,k=(H|0)<(_e|0),H=(H|0)==(_e|0),z=k?0:H?ot:0,H=k?0:H?L:0,k=qo(z|0,H|0,S|0,ee|0)|0,It()|0,y=0;;){if((y|0)>(S|0)){be=98;break t}if(ze=Nt+(k<<3)|0,it=g[ze+4>>2]|0,(it&-117440513|0)==(H|0)&&(g[ze>>2]|0)==(z|0)){be=70;break}if(k=(k+1|0)%(S|0)|0,ze=Nt+(k<<3)|0,(g[ze>>2]|0)==(z|0)&&(g[ze+4>>2]|0)==(H|0))break;y=y+1|0}if((be|0)==70&&(be=0,!0&(it&117440512|0)==100663296))break;ze=m+(I<<3)|0,g[ze>>2]=ot,g[ze+4>>2]=L,I=I+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=zt;break e}L=Ke+(p<<3)|0,ot=g[L>>2]|0,L=g[L+4>>2]|0}for(p=0,I=0;;){do if(!((ot|0)==0&(L|0)==0)){if(H=me(ot|0,L|0,52)|0,It()|0,H=H&15,(H|0)>=(_e|0))if((H|0)!=(_e|0))if(y=ot|Ct,k=L&-15728641|Gt,H>>>0>>0)H=k;else{z=_e;do ze=Le(7,0,(14-z|0)*3|0)|0,z=z+1|0,y=ze|y,k=It()|0|k;while(z>>>0>>0);H=k}else y=ot,H=L;else y=0,H=0;for(z=qo(y|0,H|0,S|0,ee|0)|0,It()|0,k=0;;){if((k|0)>(S|0)){be=98;break t}if(ze=Nt+(z<<3)|0,it=g[ze+4>>2]|0,(it&-117440513|0)==(H|0)&&(g[ze>>2]|0)==(y|0)){be=93;break}if(z=(z+1|0)%(S|0)|0,ze=Nt+(z<<3)|0,(g[ze>>2]|0)==(y|0)&&(g[ze+4>>2]|0)==(H|0))break;k=k+1|0}if((be|0)==93&&(be=0,!0&(it&117440512|0)==100663296))break;ze=m+(I<<3)|0,g[ze>>2]=ot,g[ze+4>>2]=L,I=I+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=zt;break e}L=Ke+(p<<3)|0,ot=g[L>>2]|0,L=g[L+4>>2]|0}}else I=0,S=zt}else I=0,S=0;while(!1);if(Dc(Nt|0,0,Ze|0)|0,Ua(Ke|0,ie|0,S<<3|0)|0,Gr(ie),S)m=m+(I<<3)|0;else break}return(be|0)==41?(Gr(Ke),Gr(Nt),ze=-1,ze|0):(be|0)==51?(Gr(Ke),Gr(Nt),ze=-2,ze|0):(be|0)==58?(Gr(Ke),Gr(Nt),ze=-3,ze|0):(be|0)==98?(Gr(ie),Gr(Ke),Gr(Nt),ze=-1,ze|0):((be|0)==99&&Ua(m|0,Ke|0,S<<3|0)|0,Gr(Ke),Gr(Nt),ze=0,ze|0)}function Cn(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0;if((m|0)<=0)return I=0,I|0;if((I|0)>=16){for(k=0;;){if(ot=p+(k<<3)|0,!((g[ot>>2]|0)==0&(g[ot+4>>2]|0)==0)){k=14;break}if(k=k+1|0,(k|0)>=(m|0)){L=0,k=16;break}}if((k|0)==14)return((S|0)>0?-2:-1)|0;if((k|0)==16)return L|0}k=0,ot=0;t:for(;;){it=p+(ot<<3)|0,z=it,L=g[z>>2]|0,z=g[z+4>>2]|0;do if(!((L|0)==0&(z|0)==0)){if((k|0)>=(S|0)){L=-1,k=16;break t}if(H=me(L|0,z|0,52)|0,It()|0,H=H&15,(H|0)>(I|0)){L=-2,k=16;break t}if((H|0)==(I|0)){it=y+(k<<3)|0,g[it>>2]=L,g[it+4>>2]=z,k=k+1|0;break}if(L=(We(7,I-H|0)|0)+k|0,(L|0)>(S|0)){L=-1,k=16;break t}io(g[it>>2]|0,g[it+4>>2]|0,I,y+(k<<3)|0),k=L}while(!1);if(ot=ot+1|0,(ot|0)>=(m|0)){L=0,k=16;break}}return(k|0)==16?L|0:0}function yn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if((m|0)<=0)return y=0,y|0;if((y|0)>=16){for(S=0;;){if(L=p+(S<<3)|0,!((g[L>>2]|0)==0&(g[L+4>>2]|0)==0)){S=-1,I=13;break}if(S=S+1|0,(S|0)>=(m|0)){S=0,I=13;break}}if((I|0)==13)return S|0}S=0,L=0;t:for(;;){I=p+(L<<3)|0,k=g[I>>2]|0,I=g[I+4>>2]|0;do if(!((k|0)==0&(I|0)==0)){if(I=me(k|0,I|0,52)|0,It()|0,I=I&15,(I|0)>(y|0)){S=-1,I=13;break t}if((I|0)==(y|0)){S=S+1|0;break}else{S=(We(7,y-I|0)|0)+S|0;break}}while(!1);if(L=L+1|0,(L|0)>=(m|0)){I=13;break}}return(I|0)==13?S|0:0}function bf(p,m){return p=p|0,m=m|0,m=me(p|0,m|0,52)|0,It()|0,m&1|0}function Ms(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(I=me(p|0,m|0,52)|0,It()|0,I=I&15,!I)return I=0,I|0;for(S=1;;){if(y=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,y=y&7,y|0){S=5;break}if(S>>>0>>0)S=S+1|0;else{y=0,S=5;break}}return(S|0)==5?y|0:0}function mh(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(H=me(p|0,m|0,52)|0,It()|0,H=H&15,!H)return z=m,H=p,$e(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=Le(7,0,k|0)|0,I=It()|0,L=me(p|0,m|0,k|0)|0,It()|0,k=Le(za(L&7)|0,0,k|0)|0,L=It()|0,p=k|p&~S,m=L|m&~I;t:do if(!y)if((k&S|0)==0&(L&I|0)==0)y=0;else if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(L=(15-y|0)*3|0,I=me(p|0,m|0,L|0)|0,It()|0,k=Le(7,0,L|0)|0,m=m&~(It()|0),L=Le(za(I&7)|0,0,L|0)|0,p=p&~k|L,m=m|(It()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return $e(m|0),p|0}function jo(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return y=m,S=p,$e(y|0),S|0;for(y=1;k=(15-y|0)*3|0,L=me(p|0,m|0,k|0)|0,It()|0,I=Le(7,0,k|0)|0,m=m&~(It()|0),k=Le(za(L&7)|0,0,k|0)|0,p=k|p&~I,m=It()|0|m,y>>>0>>0;)y=y+1|0;return $e(m|0),p|0}function c0(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(H=me(p|0,m|0,52)|0,It()|0,H=H&15,!H)return z=m,H=p,$e(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=Le(7,0,k|0)|0,I=It()|0,L=me(p|0,m|0,k|0)|0,It()|0,k=Le(ro(L&7)|0,0,k|0)|0,L=It()|0,p=k|p&~S,m=L|m&~I;t:do if(!y)if((k&S|0)==0&(L&I|0)==0)y=0;else if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(I=(15-y|0)*3|0,k=Le(7,0,I|0)|0,L=m&~(It()|0),m=me(p|0,m|0,I|0)|0,It()|0,m=Le(ro(m&7)|0,0,I|0)|0,p=p&~k|m,m=L|(It()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return $e(m|0),p|0}function Od(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return y=m,S=p,$e(y|0),S|0;for(y=1;L=(15-y|0)*3|0,k=Le(7,0,L|0)|0,I=m&~(It()|0),m=me(p|0,m|0,L|0)|0,It()|0,m=Le(ro(m&7)|0,0,L|0)|0,p=m|p&~k,m=It()|0|I,y>>>0>>0;)y=y+1|0;return $e(m|0),p|0}function wf(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(H=wt,wt=wt+64|0,z=H+40|0,S=H+24|0,I=H+12|0,k=H,Le(m|0,0,52)|0,y=It()|0|134225919,!m)return(g[p+4>>2]|0)>2||(g[p+8>>2]|0)>2||(g[p+12>>2]|0)>2?(L=0,z=0,$e(L|0),wt=H,z|0):(Le(_f(p)|0,0,45)|0,L=It()|0|y,z=-1,$e(L|0),wt=H,z|0);if(g[z>>2]=g[p>>2],g[z+4>>2]=g[p+4>>2],g[z+8>>2]=g[p+8>>2],g[z+12>>2]=g[p+12>>2],L=z+4|0,(m|0)>0)for(p=-1;g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],m&1?(Ld(L),g[I>>2]=g[L>>2],g[I+4>>2]=g[L+4>>2],g[I+8>>2]=g[L+8>>2],Fa(I)):(fl(L),g[I>>2]=g[L>>2],g[I+4>>2]=g[L+4>>2],g[I+8>>2]=g[L+8>>2],uh(I)),Kp(S,I,k),Fs(k),ot=(15-m|0)*3|0,it=Le(7,0,ot|0)|0,y=y&~(It()|0),ot=Le(Ba(k)|0,0,ot|0)|0,p=ot|p&~it,y=It()|0|y,(m|0)>1;)m=m+-1|0;else p=-1;t:do if((g[L>>2]|0)<=2&&(g[z+8>>2]|0)<=2&&(g[z+12>>2]|0)<=2){if(S=_f(z)|0,m=Le(S|0,0,45)|0,m=m|p,p=It()|0|y&-1040385,k=Qp(z)|0,!(fi(S)|0)){if((k|0)<=0)break;for(I=0;;){if(S=me(m|0,p|0,52)|0,It()|0,S=S&15,S)for(y=1;ot=(15-y|0)*3|0,z=me(m|0,p|0,ot|0)|0,It()|0,it=Le(7,0,ot|0)|0,p=p&~(It()|0),ot=Le(za(z&7)|0,0,ot|0)|0,m=m&~it|ot,p=p|(It()|0),y>>>0>>0;)y=y+1|0;if(I=I+1|0,(I|0)==(k|0))break t}}I=me(m|0,p|0,52)|0,It()|0,I=I&15;e:do if(I){y=1;r:for(;;){switch(ot=me(m|0,p|0,(15-y|0)*3|0)|0,It()|0,ot&7){case 1:break r;case 0:break;default:break e}if(y>>>0>>0)y=y+1|0;else break e}if(lh(S,g[z>>2]|0)|0)for(y=1;z=(15-y|0)*3|0,it=Le(7,0,z|0)|0,ot=p&~(It()|0),p=me(m|0,p|0,z|0)|0,It()|0,p=Le(ro(p&7)|0,0,z|0)|0,m=m&~it|p,p=ot|(It()|0),y>>>0>>0;)y=y+1|0;else for(y=1;ot=(15-y|0)*3|0,z=me(m|0,p|0,ot|0)|0,It()|0,it=Le(7,0,ot|0)|0,p=p&~(It()|0),ot=Le(za(z&7)|0,0,ot|0)|0,m=m&~it|ot,p=p|(It()|0),y>>>0>>0;)y=y+1|0}while(!1);if((k|0)>0){y=0;do m=mh(m,p)|0,p=It()|0,y=y+1|0;while((y|0)!=(k|0))}}else m=0,p=0;while(!1);return it=p,ot=m,$e(it|0),wt=H,ot|0}function Go(p){return p=p|0,(p|0)%2|0|0}function sA(p,m){p=p|0,m=m|0;var y=0,S=0;return S=wt,wt=wt+16|0,y=S,m>>>0<=15&&(g[p+4>>2]&2146435072|0)!=2146435072&&(g[p+8+4>>2]&2146435072|0)!=2146435072?(r0(p,m,y),m=wf(y,m)|0,p=It()|0):(p=0,m=0),$e(p|0),wt=S,m|0}function xi(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(I=y+4|0,k=me(p|0,m|0,52)|0,It()|0,k=k&15,L=me(p|0,m|0,45)|0,It()|0,S=(k|0)==0,fi(L&127)|0){if(S)return L=1,L|0;S=1}else{if(S)return L=0,L|0;!(g[I>>2]|0)&&!(g[y+8>>2]|0)?S=(g[y+12>>2]|0)!=0&1:S=1}for(y=1;y&1?Fa(I):uh(I),L=me(p|0,m|0,(15-y|0)*3|0)|0,It()|0,Jp(I,L&7),y>>>0>>0;)y=y+1|0;return S|0}function T(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;ot=wt,wt=wt+16|0,H=ot,it=me(p|0,m|0,45)|0,It()|0,it=it&127;t:do if(fi(it)|0&&(k=me(p|0,m|0,52)|0,It()|0,k=k&15,(k|0)!=0)){S=1;e:for(;;){switch(z=me(p|0,m|0,(15-S|0)*3|0)|0,It()|0,z&7){case 5:break e;case 0:break;default:{S=m;break t}}if(S>>>0>>0)S=S+1|0;else{S=m;break t}}for(I=1,S=m;m=(15-I|0)*3|0,L=Le(7,0,m|0)|0,z=S&~(It()|0),S=me(p|0,S|0,m|0)|0,It()|0,S=Le(ro(S&7)|0,0,m|0)|0,p=p&~L|S,S=z|(It()|0),I>>>0>>0;)I=I+1|0}else S=m;while(!1);if(z=7728+(it*28|0)|0,g[y>>2]=g[z>>2],g[y+4>>2]=g[z+4>>2],g[y+8>>2]=g[z+8>>2],g[y+12>>2]=g[z+12>>2],!(xi(p,S,y)|0)){wt=ot;return}if(L=y+4|0,g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],k=me(p|0,S|0,52)|0,It()|0,z=k&15,k&1?(uh(L),k=z+1|0):k=z,!(fi(it)|0))S=0;else{t:do if(!z)S=0;else for(m=1;;){if(I=me(p|0,S|0,(15-m|0)*3|0)|0,It()|0,I=I&7,I|0){S=I;break t}if(m>>>0>>0)m=m+1|0;else{S=0;break}}while(!1);S=(S|0)==4&1}if(!(vf(y,k,S,0)|0))(k|0)!=(z|0)&&(g[L>>2]=g[H>>2],g[L+4>>2]=g[H+4>>2],g[L+8>>2]=g[H+8>>2]);else{if(fi(it)|0)do;while(vf(y,k,0,0)|0);(k|0)!=(z|0)&&fl(L)}wt=ot}function l(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;S=wt,wt=wt+16|0,I=S,T(p,m,I),m=me(p|0,m|0,52)|0,It()|0,l_(I,m&15,y),wt=S}function d(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;L=wt,wt=wt+16|0,k=L,T(p,m,k),S=me(p|0,m|0,45)|0,It()|0,S=(fi(S&127)|0)==0,I=me(p|0,m|0,52)|0,It()|0,I=I&15;t:do if(!S){if(I|0)for(S=1;;){if(z=Le(7,0,(15-S|0)*3|0)|0,!((z&p|0)==0&((It()|0)&m|0)==0))break t;if(S>>>0>>0)S=S+1|0;else break}i0(k,I,0,5,y),wt=L;return}while(!1);tA(k,I,0,6,y),wt=L}function v(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;if(S=me(p|0,m|0,45)|0,It()|0,!(fi(S&127)|0))return S=2,S|0;if(S=me(p|0,m|0,52)|0,It()|0,S=S&15,!S)return S=5,S|0;for(y=1;;){if(I=Le(7,0,(15-y|0)*3|0)|0,!((I&p|0)==0&((It()|0)&m|0)==0)){y=2,p=6;break}if(y>>>0>>0)y=y+1|0;else{y=5,p=6;break}}return(p|0)==6?y|0:0}function b(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0;Ct=wt,wt=wt+128|0,it=Ct+112|0,k=Ct+96|0,ot=Ct,I=me(p|0,m|0,52)|0,It()|0,z=I&15,g[it>>2]=z,L=me(p|0,m|0,45)|0,It()|0,L=L&127;t:do if(fi(L)|0){if(z|0)for(S=1;;){if(H=Le(7,0,(15-S|0)*3|0)|0,!((H&p|0)==0&((It()|0)&m|0)==0)){I=0;break t}if(S>>>0>>0)S=S+1|0;else break}if(I&1)I=1;else{H=Le(z+1|0,0,52)|0,ot=It()|0|m&-15728641,it=Le(7,0,(14-z|0)*3|0)|0,b((H|p)&~it,ot&~(It()|0),y),wt=Ct;return}}else I=0;while(!1);T(p,m,k),I?(n0(k,it,ot),H=5):(eA(k,it,ot),H=6);t:do if(fi(L)|0)if(!z)S=20;else for(S=1;;){if(L=Le(7,0,(15-S|0)*3|0)|0,!((L&p|0)==0&((It()|0)&m|0)==0)){S=8;break t}if(S>>>0>>0)S=S+1|0;else{S=20;break}}else S=8;while(!1);if(Dc(y|0,-1,S|0)|0,I){I=0;do{for(k=ot+(I<<4)|0,s0(k,g[it>>2]|0)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,I=I+1|0}while((I|0)!=(H|0))}else{I=0;do{for(k=ot+(I<<4)|0,vf(k,g[it>>2]|0,0,1)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,I=I+1|0}while((I|0)!=(H|0))}wt=Ct}function M(){return 12}function O(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(Le(p|0,0,52)|0,z=It()|0|134225919,(p|0)<1){S=0,y=0;do fi(S)|0&&(Le(S|0,0,45)|0,L=z|(It()|0),p=m+(y<<3)|0,g[p>>2]=-1,g[p+4>>2]=L,y=y+1|0),S=S+1|0;while((S|0)!=122);return}L=0,y=0;do{if(fi(L)|0){for(Le(L|0,0,45)|0,S=1,I=-1,k=z|(It()|0);H=Le(7,0,(15-S|0)*3|0)|0,I=I&~H,k=k&~(It()|0),(S|0)!=(p|0);)S=S+1|0;H=m+(y<<3)|0,g[H>>2]=I,g[H+4>>2]=k,y=y+1|0}L=L+1|0}while((L|0)!=122)}function B(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0;if(z=wt,wt=wt+64|0,L=z,(p|0)==(y|0)&(m|0)==(S|0)|(!1|(m&2013265920|0)!=134217728|(!1|(S&2013265920|0)!=134217728))||(I=me(p|0,m|0,52)|0,It()|0,I=I&15,k=me(y|0,S|0,52)|0,It()|0,(I|0)!=(k&15|0)))return L=0,wt=z,L|0;if(k=I+-1|0,I>>>0>1&&(it=Dd(p,m,k)|0,H=It()|0,k=Dd(y,S,k)|0,(it|0)==(k|0)&(H|0)==(It()|0))&&(k=(I^15)*3|0,I=me(p|0,m|0,k|0)|0,It()|0,I=I&7,k=me(y|0,S|0,k|0)|0,It()|0,k=k&7,(I|0)==0|(k|0)==0||(g[21136+(I<<2)>>2]|0)==(k|0)||(g[21168+(I<<2)>>2]|0)==(k|0)))return it=1,wt=z,it|0;I=L,k=I+56|0;do g[I>>2]=0,I=I+4|0;while((I|0)<(k|0));return e_(p,m,1,L),it=L,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0))&&(it=L+8|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+16|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+24|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+32|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))&&(it=L+40|0,!((g[it>>2]|0)==(y|0)&&(g[it+4>>2]|0)==(S|0)))?(I=L+48|0,I=((g[I>>2]|0)==(y|0)?(g[I+4>>2]|0)==(S|0):0)&1):I=1,it=I,wt=z,it|0}function U(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(it=wt,wt=wt+16|0,L=it,!(B(p,m,y,S)|0))return z=0,H=0,$e(z|0),wt=it,H|0;for(z=m&-2130706433,I=(Ui(p,m)|0)==0,I=I?1:2;g[L>>2]=0,ot=jn(p,m,I,L)|0,k=I+1|0,!((ot|0)==(y|0)&(It()|0)==(S|0));)if(k>>>0<7)I=k;else{I=0,p=0,H=6;break}return(H|0)==6?($e(I|0),wt=it,p|0):(ot=Le(I|0,0,56)|0,H=z|(It()|0)|268435456,ot=p|ot,$e(H|0),wt=it,ot|0)}function W(p,m){p=p|0,m=m|0;var y=0;return y=!0&(m&2013265920|0)==268435456,$e((y?m&-2130706433|134217728:0)|0),(y?p:0)|0}function Z(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return S=wt,wt=wt+16|0,y=S,!0&(m&2013265920|0)==268435456?(I=me(p|0,m|0,56)|0,It()|0,g[y>>2]=0,y=jn(p,m&-2130706433|134217728,I&7,y)|0,m=It()|0,$e(m|0),wt=S,y|0):(m=0,y=0,$e(m|0),wt=S,y|0)}function Q(p,m){p=p|0,m=m|0;var y=0;if(!(!0&(m&2013265920|0)==268435456))return y=0,y|0;switch(y=me(p|0,m|0,56)|0,It()|0,y&7){case 0:case 7:return y=0,y|0;default:}return y=m&-2130706433|134217728,!0&(m&117440512|0)==16777216&(Ui(p,y)|0)!=0?(y=0,y|0):(y=nA(p,y)|0,y|0)}function st(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;k=wt,wt=wt+16|0,S=k,L=!0&(m&2013265920|0)==268435456,I=m&-2130706433|134217728,z=y,g[z>>2]=L?p:0,g[z+4>>2]=L?I:0,L?(m=me(p|0,m|0,56)|0,It()|0,g[S>>2]=0,p=jn(p,I,m&7,S)|0,m=It()|0):(p=0,m=0),z=y+8|0,g[z>>2]=p,g[z+4>>2]=m,wt=k}function At(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;I=(Ui(p,m)|0)==0,m=m&-2130706433,S=y,g[S>>2]=I?p:0,g[S+4>>2]=I?m|285212672:0,S=y+8|0,g[S>>2]=p,g[S+4>>2]=m|301989888,S=y+16|0,g[S>>2]=p,g[S+4>>2]=m|318767104,S=y+24|0,g[S>>2]=p,g[S+4>>2]=m|335544320,S=y+32|0,g[S>>2]=p,g[S+4>>2]=m|352321536,y=y+40|0,g[y>>2]=p,g[y+4>>2]=m|369098752}function pt(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0;if(L=wt,wt=wt+16|0,k=L,S=me(p|0,m|0,56)|0,It()|0,z=!0&(m&2013265920|0)==268435456,I=z?p:0,p=z?m&-2130706433|134217728:0,m=mu(I,p,S&7)|0,(m|0)==-1){g[y>>2]=0,wt=L;return}T(I,p,k),S=me(I|0,p|0,52)|0,It()|0,S=S&15,Ui(I,p)|0?i0(k,S,m,2,y):tA(k,S,m,2,y),wt=L}function yt(p){p=p|0;var m=0,y=0,S=0;return m=Na(1,12)|0,m||Ti(22691,22646,49,22704),y=p+4|0,S=g[y>>2]|0,S|0?(S=S+8|0,g[S>>2]=m,g[y>>2]=m,m|0):(g[p>>2]|0&&Ti(22721,22646,61,22744),S=p,g[S>>2]=m,g[y>>2]=m,m|0)}function dt(p,m){p=p|0,m=m|0;var y=0,S=0;return S=no(24)|0,S||Ti(22758,22646,78,22772),g[S>>2]=g[m>>2],g[S+4>>2]=g[m+4>>2],g[S+8>>2]=g[m+8>>2],g[S+12>>2]=g[m+12>>2],g[S+16>>2]=0,m=p+4|0,y=g[m>>2]|0,y|0?(g[y+16>>2]=S,g[m>>2]=S,S|0):(g[p>>2]|0&&Ti(22787,22646,82,22772),g[p>>2]=S,g[m>>2]=S,S|0)}function Ft(p){p=p|0;var m=0,y=0,S=0,I=0;if(p)for(S=1;;){if(m=g[p>>2]|0,m|0)do{if(y=g[m>>2]|0,y|0)do I=y,y=g[y+16>>2]|0,Gr(I);while(y|0);I=m,m=g[m+8>>2]|0,Gr(I)}while(m|0);if(m=p,p=g[p+8>>2]|0,S||Gr(m),p)S=0;else break}}function Wt(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0,ze=0,Zr=0,Gi=0,Mi=0,cn=0,Ei=0,vn=0,An=0,Or=0;if(I=p+8|0,g[I>>2]|0)return Or=1,Or|0;if(S=g[p>>2]|0,!S)return Or=0,Or|0;m=S,y=0;do y=y+1|0,m=g[m+8>>2]|0;while(m|0);if(y>>>0<2)return Or=0,Or|0;vn=no(y<<2)|0,vn||Ti(22807,22646,317,22826),Ei=no(y<<5)|0,Ei||Ti(22848,22646,321,22826),g[p>>2]=0,Ke=p+4|0,g[Ke>>2]=0,g[I>>2]=0,y=0,cn=0,Ze=0,Ct=0;t:for(;;){if(ot=g[S>>2]|0,ot){k=0,L=ot;do{if(H=+Tt[L+8>>3],m=L,L=g[L+16>>2]|0,it=(L|0)==0,I=it?ot:L,z=+Tt[I+8>>3],+li(+(H-z))>3.141592653589793){Or=14;break}k=k+(z-H)*(+Tt[m>>3]+ +Tt[I>>3])}while(!it);if((Or|0)==14){Or=0,k=0,m=ot;do Nt=+Tt[m+8>>3],Mi=m+16|0,Gi=g[Mi>>2]|0,Gi=Gi|0?Gi:ot,_e=+Tt[Gi+8>>3],k=k+(+Tt[m>>3]+ +Tt[Gi>>3])*((_e<0?_e+6.283185307179586:_e)-(Nt<0?Nt+6.283185307179586:Nt)),m=g[(m|0?Mi:S)>>2]|0;while(m|0)}k>0?(g[vn+(cn<<2)>>2]=S,cn=cn+1|0,I=Ze,m=Ct):Or=19}else Or=19;if((Or|0)==19){Or=0;do if(y){if(m=y+8|0,g[m>>2]|0){Or=21;break t}if(y=Na(1,12)|0,!y){Or=23;break t}g[m>>2]=y,I=y+4|0,L=y,m=Ct}else if(Ct){I=Ke,L=Ct+8|0,m=S,y=p;break}else if(g[p>>2]|0){Or=27;break t}else{I=Ke,L=p,m=S,y=p;break}while(!1);if(g[L>>2]=S,g[I>>2]=S,L=Ei+(Ze<<5)|0,it=g[S>>2]|0,it){for(ot=Ei+(Ze<<5)+8|0,Tt[ot>>3]=17976931348623157e292,Ct=Ei+(Ze<<5)+24|0,Tt[Ct>>3]=17976931348623157e292,Tt[L>>3]=-17976931348623157e292,zt=Ei+(Ze<<5)+16|0,Tt[zt>>3]=-17976931348623157e292,Ve=17976931348623157e292,Jt=-17976931348623157e292,I=0,Gt=it,H=17976931348623157e292,ie=17976931348623157e292,Ce=-17976931348623157e292,z=-17976931348623157e292;k=+Tt[Gt>>3],Nt=+Tt[Gt+8>>3],Gt=g[Gt+16>>2]|0,ee=(Gt|0)==0,_e=+Tt[(ee?it:Gt)+8>>3],k>3]=k,H=k),Nt>3]=Nt,ie=Nt),k>Ce?Tt[L>>3]=k:k=Ce,Nt>z&&(Tt[zt>>3]=Nt,z=Nt),Ve=Nt>0&NtJt?Nt:Jt,I=I|+li(+(Nt-_e))>3.141592653589793,!ee;)Ce=k;I&&(Tt[zt>>3]=Jt,Tt[Ct>>3]=Ve)}else g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,g[L+12>>2]=0,g[L+16>>2]=0,g[L+20>>2]=0,g[L+24>>2]=0,g[L+28>>2]=0;I=Ze+1|0}if(Mi=S+8|0,S=g[Mi>>2]|0,g[Mi>>2]=0,S)Ze=I,Ct=m;else{Or=45;break}}if((Or|0)==21)Ti(22624,22646,35,22658);else if((Or|0)==23)Ti(22678,22646,37,22658);else if((Or|0)==27)Ti(22721,22646,61,22744);else if((Or|0)==45){t:do if((cn|0)>0){for(Mi=(I|0)==0,Zr=I<<2,Gi=(p|0)==0,ze=0,m=0;;){if(be=g[vn+(ze<<2)>>2]|0,Mi)Or=73;else{if(Ze=no(Zr)|0,!Ze){Or=50;break}if(Ke=no(Zr)|0,!Ke){Or=52;break}e:do if(Gi)y=0;else{for(I=0,y=0,L=p;S=Ei+(I<<5)|0,St(g[L>>2]|0,S,g[be>>2]|0)|0?(g[Ze+(y<<2)>>2]=L,g[Ke+(y<<2)>>2]=S,ee=y+1|0):ee=y,L=g[L+8>>2]|0,L;)I=I+1|0,y=ee;if((ee|0)>0)if(S=g[Ze>>2]|0,(ee|0)==1)y=S;else for(zt=0,Gt=-1,y=S,Ct=S;;){for(it=g[Ct>>2]|0,S=0,L=0;I=g[g[Ze+(L<<2)>>2]>>2]|0,(I|0)==(it|0)?ot=S:ot=S+((St(I,g[Ke+(L<<2)>>2]|0,g[it>>2]|0)|0)&1)|0,L=L+1|0,(L|0)!=(ee|0);)S=ot;if(I=(ot|0)>(Gt|0),y=I?Ct:y,S=zt+1|0,(S|0)==(ee|0))break e;zt=S,Gt=I?ot:Gt,Ct=g[Ze+(S<<2)>>2]|0}else y=0}while(!1);if(Gr(Ze),Gr(Ke),y){if(I=y+4|0,S=g[I>>2]|0,S)y=S+8|0;else if(g[y>>2]|0){Or=70;break}g[y>>2]=be,g[I>>2]=be}else Or=73}if((Or|0)==73){if(Or=0,m=g[be>>2]|0,m|0)do Ke=m,m=g[m+16>>2]|0,Gr(Ke);while(m|0);Gr(be),m=2}if(ze=ze+1|0,(ze|0)>=(cn|0)){An=m;break t}}(Or|0)==50?Ti(22863,22646,249,22882):(Or|0)==52?Ti(22901,22646,252,22882):(Or|0)==70&&Ti(22721,22646,61,22744)}else An=0;while(!1);return Gr(vn),Gr(Ei),Or=An,Or|0}return 0}function St(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0;if(!(hl(m,y)|0)||(m=Jm(m)|0,it=+Tt[y>>3],S=+Tt[y+8>>3],S=m&S<0?S+6.283185307179586:S,p=g[p>>2]|0,!p))return p=0,p|0;if(m){m=0,y=p;t:for(;;){for(;L=+Tt[y>>3],H=+Tt[y+8>>3],y=y+16|0,ot=g[y>>2]|0,ot=ot|0?ot:p,k=+Tt[ot>>3],I=+Tt[ot+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(itz);)if(y=g[y>>2]|0,!y){y=22;break t}if(H=I<0?I+6.283185307179586:I,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(it-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}else{m=0,y=p;t:for(;;){for(;L=+Tt[y>>3],H=+Tt[y+8>>3],y=y+16|0,ot=g[y>>2]|0,ot=ot|0?ot:p,k=+Tt[ot>>3],I=+Tt[ot+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(itz);)if(y=g[y>>2]|0,!y){y=22;break t}if(S=L==S|I==S?S+-2220446049250313e-31:S,I+(it-k)/(z-k)*(L-I)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}return 0}function Bt(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(Jt=wt,wt=wt+32|0,Ve=Jt+16|0,Ce=Jt,k=me(p|0,m|0,52)|0,It()|0,k=k&15,Gt=me(y|0,S|0,52)|0,It()|0,(k|0)!=(Gt&15|0))return Ve=1,wt=Jt,Ve|0;if(it=me(p|0,m|0,45)|0,It()|0,it=it&127,ot=me(y|0,S|0,45)|0,It()|0,ot=ot&127,Gt=(it|0)!=(ot|0),Gt){if(z=Xp(it,ot)|0,(z|0)==7)return Ve=2,wt=Jt,Ve|0;H=Xp(ot,it)|0,(H|0)==7?Ti(22925,22949,151,22959):(ee=z,L=H)}else ee=0,L=0;Ct=fi(it)|0,zt=fi(ot)|0,g[Ve>>2]=0,g[Ve+4>>2]=0,g[Ve+8>>2]=0,g[Ve+12>>2]=0;do if(ee){if(ot=g[4304+(it*28|0)+(ee<<2)>>2]|0,z=(ot|0)>0,zt)if(z){it=0,H=y,z=S;do H=c0(H,z)|0,z=It()|0,L=ro(L)|0,(L|0)==1&&(L=ro(1)|0),it=it+1|0;while((it|0)!=(ot|0));ot=L,it=H,H=z}else ot=L,it=y,H=S;else if(z){it=0,H=y,z=S;do H=Od(H,z)|0,z=It()|0,L=ro(L)|0,it=it+1|0;while((it|0)!=(ot|0));ot=L,it=H,H=z}else ot=L,it=y,H=S;if(xi(it,H,Ve)|0,Gt||Ti(22972,22949,181,22959),z=(Ct|0)!=0,L=(zt|0)!=0,z&L&&Ti(22999,22949,182,22959),z){if(L=Ms(p,m)|0,vr[22032+(L*7|0)+ee>>0]|0){k=3;break}H=g[21200+(L*28|0)+(ee<<2)>>2]|0,it=H,ie=26}else if(L){if(L=Ms(it,H)|0,vr[22032+(L*7|0)+ot>>0]|0){k=4;break}it=0,H=g[21200+(ot*28|0)+(L<<2)>>2]|0,ie=26}else L=0;if((ie|0)==26)if((H|0)<=-1&&Ti(23030,22949,212,22959),(it|0)<=-1&&Ti(23053,22949,213,22959),(H|0)>0){z=Ve+4|0,L=0;do hh(z),L=L+1|0;while((L|0)!=(H|0));L=it}else L=it;if(g[Ce>>2]=0,g[Ce+4>>2]=0,g[Ce+8>>2]=0,Jp(Ce,ee),k|0)for(;Go(k)|0?Fa(Ce):uh(Ce),(k|0)>1;)k=k+-1|0;if((L|0)>0){k=0;do hh(Ce),k=k+1|0;while((k|0)!=(L|0))}ie=Ve+4|0,In(ie,Ce,ie),Fs(ie),ie=50}else if(xi(y,S,Ve)|0,(Ct|0)!=0&(zt|0)!=0)if((ot|0)!=(it|0)&&Ti(23077,22949,243,22959),L=Ms(p,m)|0,k=Ms(y,S)|0,vr[22032+(L*7|0)+k>>0]|0)k=5;else if(L=g[21200+(L*28|0)+(k<<2)>>2]|0,(L|0)>0){z=Ve+4|0,k=0;do hh(z),k=k+1|0;while((k|0)!=(L|0));ie=50}else ie=50;else ie=50;while(!1);return(ie|0)==50&&(k=Ve+4|0,g[I>>2]=g[k>>2],g[I+4>>2]=g[k+4>>2],g[I+8>>2]=g[k+8>>2],k=0),Ve=k,wt=Jt,Ve|0}function Yt(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(ee=wt,wt=wt+48|0,L=ee+36|0,z=ee+24|0,H=ee+12|0,it=ee,k=me(p|0,m|0,52)|0,It()|0,k=k&15,zt=me(p|0,m|0,45)|0,It()|0,zt=zt&127,ot=fi(zt)|0,Le(k|0,0,52)|0,Ce=It()|0|134225919,ie=S,g[ie>>2]=-1,g[ie+4>>2]=Ce,!k)return(g[y>>2]|0)>1||(g[y+4>>2]|0)>1||(g[y+8>>2]|0)>1||(I=$p(zt,Ba(y)|0)|0,(I|0)==127)?(Ce=1,wt=ee,Ce|0):(Gt=Le(I|0,0,45)|0,ie=It()|0,zt=S,ie=g[zt+4>>2]&-1040385|ie,Ce=S,g[Ce>>2]=g[zt>>2]|Gt,g[Ce+4>>2]=ie,Ce=0,wt=ee,Ce|0);for(g[L>>2]=g[y>>2],g[L+4>>2]=g[y+4>>2],g[L+8>>2]=g[y+8>>2];g[z>>2]=g[L>>2],g[z+4>>2]=g[L+4>>2],g[z+8>>2]=g[L+8>>2],Go(k)|0?(Ld(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],Fa(H)):(fl(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],uh(H)),Kp(z,H,it),Fs(it),ie=S,Ve=g[ie>>2]|0,ie=g[ie+4>>2]|0,Jt=(15-k|0)*3|0,y=Le(7,0,Jt|0)|0,ie=ie&~(It()|0),Jt=Le(Ba(it)|0,0,Jt|0)|0,ie=It()|0|ie,Ce=S,g[Ce>>2]=Jt|Ve&~y,g[Ce+4>>2]=ie,(k|0)>1;)k=k+-1|0;t:do if((g[L>>2]|0)<=1&&(g[L+4>>2]|0)<=1&&(g[L+8>>2]|0)<=1){k=Ba(L)|0,z=$p(zt,k)|0,(z|0)==127?it=0:it=fi(z)|0;e:do if(k){if(ot){if(L=21408+((Ms(p,m)|0)*28|0)+(k<<2)|0,L=g[L>>2]|0,(L|0)>0){y=0;do k=za(k)|0,y=y+1|0;while((y|0)!=(L|0))}if((k|0)==1){I=3;break t}y=$p(zt,k)|0,(y|0)==127&&Ti(23104,22949,376,23134),fi(y)|0?Ti(23147,22949,377,23134):(Gt=L,Ct=k,I=y)}else Gt=0,Ct=k,I=z;if(H=g[4304+(zt*28|0)+(Ct<<2)>>2]|0,(H|0)<=-1&&Ti(23178,22949,384,23134),!it){if((Gt|0)<=-1&&Ti(23030,22949,417,23134),Gt|0){L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,k=k+1|0;while((k|0)<(Gt|0))}if((H|0)<=0){k=54;break}for(L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;;)if(y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,k=k+1|0,(k|0)==(H|0)){k=54;break e}}if(z=Xp(I,zt)|0,(z|0)==7&&Ti(22925,22949,393,23134),k=S,y=g[k>>2]|0,k=g[k+4>>2]|0,(H|0)>0){L=0;do y=jo(y,k)|0,k=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=k,L=L+1|0;while((L|0)!=(H|0))}if(y=Ms(y,k)|0,Jt=du(I)|0,y=g[(Jt?21824:21616)+(z*28|0)+(y<<2)>>2]|0,(y|0)<=-1&&Ti(23030,22949,412,23134),!y)k=54;else{z=S,k=0,L=g[z>>2]|0,z=g[z+4>>2]|0;do L=mh(L,z)|0,z=It()|0,Jt=S,g[Jt>>2]=L,g[Jt+4>>2]=z,k=k+1|0;while((k|0)<(y|0));k=54}}else if((ot|0)!=0&(it|0)!=0)if(Jt=Ms(p,m)|0,k=S,k=21408+(Jt*28|0)+((Ms(g[k>>2]|0,g[k+4>>2]|0)|0)<<2)|0,k=g[k>>2]|0,(k|0)<=-1&&Ti(23201,22949,433,23134),!k)I=z,k=55;else{L=S,I=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=jo(y,L)|0,L=It()|0,Jt=S,g[Jt>>2]=y,g[Jt+4>>2]=L,I=I+1|0;while((I|0)<(k|0));I=z,k=54}else I=z,k=54;while(!1);if((k|0)==54&&it&&(k=55),(k|0)==55&&(Jt=S,(Ms(g[Jt>>2]|0,g[Jt+4>>2]|0)|0)==1)){I=4;break}Jt=S,Ce=g[Jt>>2]|0,Jt=g[Jt+4>>2]&-1040385,Ve=Le(I|0,0,45)|0,Jt=Jt|(It()|0),I=S,g[I>>2]=Ce|Ve,g[I+4>>2]=Jt,I=0}else I=2;while(!1);return Jt=I,wt=ee,Jt|0}function Qt(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0;return L=wt,wt=wt+16|0,k=L,p=Bt(p,m,y,S,k)|0,p||(yf(k,I),p=0),wt=L,p|0}function se(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0;return I=wt,wt=wt+16|0,k=I,a_(y,k),S=Yt(p,m,k,S)|0,wt=I,S|0}function pe(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0;return L=wt,wt=wt+32|0,I=L+12|0,k=L,!(Bt(p,m,p,m,I)|0)&&!(Bt(p,m,y,S,k)|0)?p=Vl(I,k)|0:p=-1,wt=L,p|0}function he(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0,L=0;return L=wt,wt=wt+32|0,I=L+12|0,k=L,!(Bt(p,m,p,m,I)|0)&&!(Bt(p,m,y,S,k)|0)?p=Vl(I,k)|0:p=-1,wt=L,(p>>>31^1)+p|0}function xe(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0;if(Ze=wt,wt=wt+48|0,k=Ze+24|0,L=Ze+12|0,Nt=Ze,!(Bt(p,m,p,m,k)|0)&&!(Bt(p,m,y,S,L)|0)){if(_e=Vl(k,L)|0,(_e|0)<0)return Nt=_e,wt=Ze,Nt|0;for(g[k>>2]=0,g[k+4>>2]=0,g[k+8>>2]=0,g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,Bt(p,m,p,m,k)|0,Bt(p,m,y,S,L)|0,Re(k),Re(L),_e?(ot=g[k>>2]|0,Gt=+(_e|0),Ce=k+4|0,Ct=g[Ce>>2]|0,Ve=k+8|0,zt=g[Ve>>2]|0,Jt=k,y=ot,S=Ct,k=zt,ee=+((g[L>>2]|0)-ot|0)/Gt,ie=+((g[L+4>>2]|0)-Ct|0)/Gt,Gt=+((g[L+8>>2]|0)-zt|0)/Gt):(S=k+4|0,zt=k+8|0,Ce=S,Ve=zt,Jt=k,y=g[k>>2]|0,S=g[S>>2]|0,k=g[zt>>2]|0,ee=0,ie=0,Gt=0),g[Nt>>2]=y,zt=Nt+4|0,g[zt>>2]=S,Ct=Nt+8|0,g[Ct>>2]=k,ot=0;;){H=+(ot|0),Ke=ee*H+ +(y|0),z=ie*H+ +(g[Ce>>2]|0),H=Gt*H+ +(g[Ve>>2]|0),S=~~+Sf(+Ke),L=~~+Sf(+z),y=~~+Sf(+H),Ke=+li(+(+(S|0)-Ke)),z=+li(+(+(L|0)-z)),H=+li(+(+(y|0)-H));do if(Ke>z&Ke>H)S=0-(L+y)|0,k=L;else if(it=0-S|0,z>H){k=it-y|0;break}else{k=L,y=it-L|0;break}while(!1);if(g[Nt>>2]=S,g[zt>>2]=k,g[Ct>>2]=y,e0(Nt),Yt(p,m,Nt,I+(ot<<3)|0)|0,(ot|0)==(_e|0))break;ot=ot+1|0,y=g[Jt>>2]|0}return Nt=0,wt=Ze,Nt|0}return Nt=-1,wt=Ze,Nt|0}function We(p,m){p=p|0,m=m|0;var y=0;if(!m)return y=1,y|0;y=p,p=1;do p=kc(m&1|0?y:1,p)|0,m=m>>1,y=kc(y,y)|0;while(m|0);return p|0}function Kr(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;if(!(hl(m,y)|0)||(m=Jm(m)|0,zt=+Tt[y>>3],S=+Tt[y+8>>3],S=m&S<0?S+6.283185307179586:S,Ct=g[p>>2]|0,(Ct|0)<=0))return Ct=0,Ct|0;if(ot=g[p+4>>2]|0,m){m=0,y=-1,p=0;t:for(;;){for(it=p;L=+Tt[ot+(it<<4)>>3],H=+Tt[ot+(it<<4)+8>>3],p=(y+2|0)%(Ct|0)|0,k=+Tt[ot+(p<<4)>>3],I=+Tt[ot+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(ztz);)if(y=it+1|0,(y|0)<(Ct|0))p=it,it=y,y=p;else{y=22;break t}if(H=I<0?I+6.283185307179586:I,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(zt-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),p=it+1|0,(p|0)>=(Ct|0)){y=22;break}else y=it}if((y|0)==22)return m|0}else{m=0,y=-1,p=0;t:for(;;){for(it=p;L=+Tt[ot+(it<<4)>>3],H=+Tt[ot+(it<<4)+8>>3],p=(y+2|0)%(Ct|0)|0,k=+Tt[ot+(p<<4)>>3],I=+Tt[ot+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=I,I=H),!!(ztz);)if(y=it+1|0,(y|0)<(Ct|0))p=it,it=y,y=p;else{y=22;break t}if(S=L==S|I==S?S+-2220446049250313e-31:S,I+(zt-k)/(z-k)*(L-I)>S&&(m=m^1),p=it+1|0,(p|0)>=(Ct|0)){y=22;break}else y=it}if((y|0)==22)return m|0}return 0}function Me(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0;if(ee=g[p>>2]|0,!ee){g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;return}if(ie=m+8|0,Tt[ie>>3]=17976931348623157e292,Ce=m+24|0,Tt[Ce>>3]=17976931348623157e292,Tt[m>>3]=-17976931348623157e292,Ve=m+16|0,Tt[Ve>>3]=-17976931348623157e292,!((ee|0)<=0)){for(zt=g[p+4>>2]|0,it=17976931348623157e292,ot=-17976931348623157e292,Ct=0,p=-1,k=17976931348623157e292,L=17976931348623157e292,H=-17976931348623157e292,S=-17976931348623157e292,Gt=0;y=+Tt[zt+(Gt<<4)>>3],z=+Tt[zt+(Gt<<4)+8>>3],p=p+2|0,I=+Tt[zt+(((p|0)==(ee|0)?0:p)<<4)+8>>3],y>3]=y,k=y),z>3]=z,L=z),y>H?Tt[m>>3]=y:y=H,z>S&&(Tt[Ve>>3]=z,S=z),it=z>0&zot?z:ot,Ct=Ct|+li(+(z-I))>3.141592653589793,p=Gt+1|0,(p|0)!=(ee|0);)Jt=Gt,H=y,Gt=p,p=Jt;Ct&&(Tt[Ve>>3]=ot,Tt[Ce>>3]=it)}}function dr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0,Ke=0,be=0;if(ee=g[p>>2]|0,ee){if(ie=m+8|0,Tt[ie>>3]=17976931348623157e292,Ce=m+24|0,Tt[Ce>>3]=17976931348623157e292,Tt[m>>3]=-17976931348623157e292,Ve=m+16|0,Tt[Ve>>3]=-17976931348623157e292,(ee|0)>0){for(I=g[p+4>>2]|0,zt=17976931348623157e292,Gt=-17976931348623157e292,S=0,y=-1,H=17976931348623157e292,it=17976931348623157e292,Ct=-17976931348623157e292,L=-17976931348623157e292,Jt=0;k=+Tt[I+(Jt<<4)>>3],ot=+Tt[I+(Jt<<4)+8>>3],Ke=y+2|0,z=+Tt[I+(((Ke|0)==(ee|0)?0:Ke)<<4)+8>>3],k>3]=k,H=k),ot>3]=ot,it=ot),k>Ct?Tt[m>>3]=k:k=Ct,ot>L&&(Tt[Ve>>3]=ot,L=ot),zt=ot>0&otGt?ot:Gt,S=S|+li(+(ot-z))>3.141592653589793,y=Jt+1|0,(y|0)!=(ee|0);)Ke=Jt,Ct=k,Jt=y,y=Ke;S&&(Tt[Ve>>3]=Gt,Tt[Ce>>3]=zt)}}else g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;if(Ke=p+8|0,y=g[Ke>>2]|0,!((y|0)<=0)){Ze=p+12|0,Nt=0;do if(I=g[Ze>>2]|0,S=Nt,Nt=Nt+1|0,Ce=m+(Nt<<5)|0,Ve=g[I+(S<<3)>>2]|0,Ve){if(Jt=m+(Nt<<5)+8|0,Tt[Jt>>3]=17976931348623157e292,p=m+(Nt<<5)+24|0,Tt[p>>3]=17976931348623157e292,Tt[Ce>>3]=-17976931348623157e292,_e=m+(Nt<<5)+16|0,Tt[_e>>3]=-17976931348623157e292,(Ve|0)>0){for(ee=g[I+(S<<3)+4>>2]|0,zt=17976931348623157e292,Gt=-17976931348623157e292,I=0,S=-1,ie=0,H=17976931348623157e292,it=17976931348623157e292,ot=-17976931348623157e292,L=-17976931348623157e292;k=+Tt[ee+(ie<<4)>>3],Ct=+Tt[ee+(ie<<4)+8>>3],S=S+2|0,z=+Tt[ee+(((S|0)==(Ve|0)?0:S)<<4)+8>>3],k>3]=k,H=k),Ct>3]=Ct,it=Ct),k>ot?Tt[Ce>>3]=k:k=ot,Ct>L&&(Tt[_e>>3]=Ct,L=Ct),zt=Ct>0&CtGt?Ct:Gt,I=I|+li(+(Ct-z))>3.141592653589793,S=ie+1|0,(S|0)!=(Ve|0);)be=ie,ie=S,ot=k,S=be;I&&(Tt[_e>>3]=Gt,Tt[p>>3]=zt)}}else g[Ce>>2]=0,g[Ce+4>>2]=0,g[Ce+8>>2]=0,g[Ce+12>>2]=0,g[Ce+16>>2]=0,g[Ce+20>>2]=0,g[Ce+24>>2]=0,g[Ce+28>>2]=0,y=g[Ke>>2]|0;while((Nt|0)<(y|0))}}function Xe(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0;if(!(Kr(p,m,y)|0))return I=0,I|0;if(I=p+8|0,(g[I>>2]|0)<=0)return I=1,I|0;for(S=p+12|0,p=0;;){if(k=p,p=p+1|0,Kr((g[S>>2]|0)+(k<<3)|0,m+(p<<5)|0,y)|0){p=0,S=6;break}if((p|0)>=(g[I>>2]|0)){p=1,S=6;break}}return(S|0)==6?p|0:0}function Vi(){return 8}function Jr(){return 16}function Vr(){return 168}function ei(){return 8}function Rn(){return 16}function $i(){return 12}function zs(){return 8}function cs(p){p=p|0;var m=0,y=0;return y=+Tt[p>>3],m=+Tt[p+8>>3],+ +_n(+(y*y+m*m))}function Dn(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0;it=+Tt[p>>3],H=+Tt[m>>3]-it,z=+Tt[p+8>>3],L=+Tt[m+8>>3]-z,Ct=+Tt[y>>3],k=+Tt[S>>3]-Ct,zt=+Tt[y+8>>3],ot=+Tt[S+8>>3]-zt,k=(k*(z-zt)-(it-Ct)*ot)/(H*ot-L*k),Tt[I>>3]=it+H*k,Tt[I+8>>3]=z+L*k}function Wo(p,m){return p=p|0,m=m|0,+Tt[p>>3]!=+Tt[m>>3]?(m=0,m|0):(m=+Tt[p+8>>3]==+Tt[m+8>>3],m|0)}function jr(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;return I=+Tt[p>>3]-+Tt[m>>3],S=+Tt[p+8>>3]-+Tt[m+8>>3],y=+Tt[p+16>>3]-+Tt[m+16>>3],+(I*I+S*S+y*y)}function jl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0;y=+Tt[p>>3],S=+Ur(+y),y=+hi(+y),Tt[m+16>>3]=y,y=+Tt[p+8>>3],I=S*+Ur(+y),Tt[m>>3]=I,y=S*+hi(+y),Tt[m+8>>3]=y}function Gl(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0;if(it=wt,wt=wt+32|0,I=it+16|0,k=it,T(p,m,I),L=xf(p,m)|0,H=Ms(p,m)|0,ah(L,k),m=Id(L,g[I>>2]|0)|0,!(fi(L)|0))return H=m,wt=it,H|0;do switch(L|0){case 4:{p=0,y=14;break}case 14:{p=1,y=14;break}case 24:{p=2,y=14;break}case 38:{p=3,y=14;break}case 49:{p=4,y=14;break}case 58:{p=5,y=14;break}case 63:{p=6,y=14;break}case 72:{p=7,y=14;break}case 83:{p=8,y=14;break}case 97:{p=9,y=14;break}case 107:{p=10,y=14;break}case 117:{p=11,y=14;break}default:z=0,S=0}while(!1);return(y|0)==14&&(z=g[22096+(p*24|0)+8>>2]|0,S=g[22096+(p*24|0)+16>>2]|0),p=g[I>>2]|0,(p|0)!=(g[k>>2]|0)&&(L=du(L)|0,p=g[I>>2]|0,L|(p|0)==(S|0)&&(m=(m+1|0)%6|0)),(H|0)==3&(p|0)==(S|0)?(H=(m+5|0)%6|0,wt=it,H|0):(H|0)==5&(p|0)==(z|0)?(H=(m+1|0)%6|0,wt=it,H|0):(H=m,wt=it,H|0)}function mu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;return S=Ui(p,m)|0,(y+-1|0)>>>0>5||(I=(S|0)!=0,(y|0)==1&I)?(y=-1,y|0):(S=Gl(p,m)|0,I?(y=(5-S+(g[22384+(y<<2)>>2]|0)|0)%5|0,y|0):(y=(6-S+(g[22416+(y<<2)>>2]|0)|0)%6|0,y|0))}function gu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0;(m|0)>0?(S=Na(m,4)|0,g[p>>2]=S,S||Ti(23230,23253,40,23267)):g[p>>2]=0,g[p+4>>2]=m,g[p+8>>2]=0,g[p+12>>2]=y}function gh(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0;I=p+4|0,k=p+12|0,L=p+8|0;t:for(;;){for(y=g[I>>2]|0,m=0;;){if((m|0)>=(y|0))break t;if(S=g[p>>2]|0,z=g[S+(m<<2)>>2]|0,!z)m=m+1|0;else break}m=S+(~~(+li(+(+ul(10,+ +(15-(g[k>>2]|0)|0))*(+Tt[z>>3]+ +Tt[z+8>>3])))%+(y|0))>>>0<<2)|0,y=g[m>>2]|0;e:do if(y|0){if(S=z+32|0,(y|0)==(z|0))g[m>>2]=g[S>>2];else{if(y=y+32|0,m=g[y>>2]|0,!m)break;for(;(m|0)!=(z|0);)if(y=m+32|0,m=g[y>>2]|0,!m)break e;g[y>>2]=g[S>>2]}Gr(z),g[L>>2]=(g[L>>2]|0)+-1}while(!1)}Gr(g[p>>2]|0)}function Ns(p){p=p|0;var m=0,y=0,S=0;for(S=g[p+4>>2]|0,y=0;;){if((y|0)>=(S|0)){m=0,y=4;break}if(m=g[(g[p>>2]|0)+(y<<2)>>2]|0,!m)y=y+1|0;else{y=4;break}}return(y|0)==4?m|0:0}function Es(p,m){p=p|0,m=m|0;var y=0,S=0,I=0,k=0;if(y=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,y=(g[p>>2]|0)+(y<<2)|0,S=g[y>>2]|0,!S)return k=1,k|0;k=m+32|0;do if((S|0)!=(m|0)){if(y=g[S+32>>2]|0,!y)return k=1,k|0;for(I=y;;){if((I|0)==(m|0)){I=8;break}if(y=g[I+32>>2]|0,y)S=I,I=y;else{y=1,I=10;break}}if((I|0)==8){g[S+32>>2]=g[k>>2];break}else if((I|0)==10)return y|0}else g[y>>2]=g[k>>2];while(!1);return Gr(m),k=p+8|0,g[k>>2]=(g[k>>2]|0)+-1,k=0,k|0}function yo(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;k=no(40)|0,k||Ti(23283,23253,98,23296),g[k>>2]=g[m>>2],g[k+4>>2]=g[m+4>>2],g[k+8>>2]=g[m+8>>2],g[k+12>>2]=g[m+12>>2],I=k+16|0,g[I>>2]=g[y>>2],g[I+4>>2]=g[y+4>>2],g[I+8>>2]=g[y+8>>2],g[I+12>>2]=g[y+12>>2],g[k+32>>2]=0,I=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,I=(g[p>>2]|0)+(I<<2)|0,S=g[I>>2]|0;do if(!S)g[I>>2]=k;else{for(;!(ls(S,m)|0&&ls(S+16|0,y)|0);)if(I=g[S+32>>2]|0,S=I|0?I:S,!(g[S+32>>2]|0)){L=10;break}if((L|0)==10){g[S+32>>2]=k;break}return Gr(k),L=S,L|0}while(!1);return L=p+8|0,g[L>>2]=(g[L>>2]|0)+1,L=k,L|0}function _h(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0;if(I=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,I=g[(g[p>>2]|0)+(I<<2)>>2]|0,!I)return y=0,y|0;if(!y){for(p=I;;){if(ls(p,m)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}if((S|0)==10)return p|0}for(p=I;;){if(ls(p,m)|0&&ls(p+16|0,y)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}return(S|0)==10?p|0:0}function On(p,m){p=p|0,m=m|0;var y=0;if(y=~~(+li(+(+ul(10,+ +(15-(g[p+12>>2]|0)|0))*(+Tt[m>>3]+ +Tt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,p=g[(g[p>>2]|0)+(y<<2)>>2]|0,!p)return y=0,y|0;for(;;){if(ls(p,m)|0){m=5;break}if(p=g[p+32>>2]|0,!p){p=0,m=5;break}}return(m|0)==5?p|0:0}function us(){return 23312}function Ho(p){return p=+p,+ +Lx(+p)}function pn(p){return p=+p,~~+Ho(p)|0}function no(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0,ie=0,Ce=0,Ve=0,Jt=0,_e=0,Nt=0,Ze=0;Ze=wt,wt=wt+16|0,zt=Ze;do if(p>>>0<245){if(it=p>>>0<11?16:p+11&-8,p=it>>>3,Ct=g[5829]|0,y=Ct>>>p,y&3|0)return m=(y&1^1)+p|0,p=23356+(m<<1<<2)|0,y=p+8|0,S=g[y>>2]|0,I=S+8|0,k=g[I>>2]|0,(k|0)==(p|0)?g[5829]=Ct&~(1<>2]=p,g[y>>2]=k),Nt=m<<3,g[S+4>>2]=Nt|3,Nt=S+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1,Nt=I,wt=Ze,Nt|0;if(ot=g[5831]|0,it>>>0>ot>>>0){if(y|0)return m=2<>>12&16,m=m>>>z,y=m>>>5&8,m=m>>>y,k=m>>>2&4,m=m>>>k,p=m>>>1&2,m=m>>>p,S=m>>>1&1,S=(y|z|k|p|S)+(m>>>S)|0,m=23356+(S<<1<<2)|0,p=m+8|0,k=g[p>>2]|0,z=k+8|0,y=g[z>>2]|0,(y|0)==(m|0)?(p=Ct&~(1<>2]=m,g[p>>2]=y,p=Ct),Nt=S<<3,L=Nt-it|0,g[k+4>>2]=it|3,I=k+it|0,g[I+4>>2]=L|1,g[k+Nt>>2]=L,ot|0&&(S=g[5834]|0,m=ot>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=L,g[5834]=I,Nt=z,wt=Ze,Nt|0;if(k=g[5830]|0,k){for(y=(k&0-k)+-1|0,I=y>>>12&16,y=y>>>I,S=y>>>5&8,y=y>>>S,L=y>>>2&4,y=y>>>L,z=y>>>1&2,y=y>>>z,H=y>>>1&1,H=g[23620+((S|I|L|z|H)+(y>>>H)<<2)>>2]|0,y=H,z=H,H=(g[H+4>>2]&-8)-it|0;p=g[y+16>>2]|0,!(!p&&(p=g[y+20>>2]|0,!p));)L=(g[p+4>>2]&-8)-it|0,I=L>>>0>>0,y=p,z=I?p:z,H=I?L:H;if(L=z+it|0,L>>>0>z>>>0){I=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){y=0;break}for(;;)if(S=m+20|0,y=g[S>>2]|0,y)m=y,p=S;else if(S=m+16|0,y=g[S>>2]|0,y)m=y,p=S;else break;g[p>>2]=0,y=m}else y=g[z+8>>2]|0,g[y+12>>2]=m,g[m+8>>2]=y,y=m;while(!1);do if(I|0){if(m=g[z+28>>2]|0,p=23620+(m<<2)|0,(z|0)==(g[p>>2]|0)){if(g[p>>2]=y,!y){g[5830]=k&~(1<>2]|0)==(z|0)?Nt:I+20|0)>>2]=y,!y)break;g[y+24>>2]=I,m=g[z+16>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),m=g[z+20>>2]|0,m|0&&(g[y+20>>2]=m,g[m+24>>2]=y)}while(!1);return H>>>0<16?(Nt=H+it|0,g[z+4>>2]=Nt|3,Nt=z+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1):(g[z+4>>2]=it|3,g[L+4>>2]=H|1,g[L+H>>2]=H,ot|0&&(S=g[5834]|0,m=ot>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=m|Ct,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=H,g[5834]=L),Nt=z+8|0,wt=Ze,Nt|0}else Ct=it}else Ct=it}else Ct=it}else if(p>>>0<=4294967231)if(p=p+11|0,it=p&-8,S=g[5830]|0,S){I=0-it|0,p=p>>>8,p?it>>>0>16777215?H=31:(Ct=(p+1048320|0)>>>16&8,ie=p<>>16&4,ie=ie<>>16&2,H=14-(z|Ct|H)+(ie<>>15)|0,H=it>>>(H+7|0)&1|H<<1):H=0,y=g[23620+(H<<2)>>2]|0;t:do if(!y)y=0,p=0,ie=61;else for(p=0,z=it<<((H|0)==31?0:25-(H>>>1)|0),k=0;;){if(L=(g[y+4>>2]&-8)-it|0,L>>>0>>0)if(L)p=y,I=L;else{p=y,I=0,ie=65;break t}if(ie=g[y+20>>2]|0,y=g[y+16+(z>>>31<<2)>>2]|0,k=(ie|0)==0|(ie|0)==(y|0)?k:ie,y)z=z<<1;else{y=k,ie=61;break}}while(!1);if((ie|0)==61){if((y|0)==0&(p|0)==0){if(p=2<>>12&16,Ct=Ct>>>L,k=Ct>>>5&8,Ct=Ct>>>k,z=Ct>>>2&4,Ct=Ct>>>z,H=Ct>>>1&2,Ct=Ct>>>H,y=Ct>>>1&1,p=0,y=g[23620+((k|L|z|H|y)+(Ct>>>y)<<2)>>2]|0}y?ie=65:(z=p,L=I)}if((ie|0)==65)for(k=y;;)if(Ct=(g[k+4>>2]&-8)-it|0,y=Ct>>>0>>0,I=y?Ct:I,p=y?k:p,y=g[k+16>>2]|0,y||(y=g[k+20>>2]|0),y)k=y;else{z=p,L=I;break}if(z|0&&L>>>0<((g[5831]|0)-it|0)>>>0&&(ot=z+it|0,ot>>>0>z>>>0)){k=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){m=0;break}for(;;)if(I=m+20|0,y=g[I>>2]|0,y)m=y,p=I;else if(I=m+16|0,y=g[I>>2]|0,y)m=y,p=I;else break;g[p>>2]=0}else Nt=g[z+8>>2]|0,g[Nt+12>>2]=m,g[m+8>>2]=Nt;while(!1);do if(k){if(p=g[z+28>>2]|0,y=23620+(p<<2)|0,(z|0)==(g[y>>2]|0)){if(g[y>>2]=m,!m){S=S&~(1<>2]|0)==(z|0)?Nt:k+20|0)>>2]=m,!m)break;g[m+24>>2]=k,p=g[z+16>>2]|0,p|0&&(g[m+16>>2]=p,g[p+24>>2]=m),p=g[z+20>>2]|0,p&&(g[m+20>>2]=p,g[p+24>>2]=m)}while(!1);t:do if(L>>>0<16)Nt=L+it|0,g[z+4>>2]=Nt|3,Nt=z+Nt+4|0,g[Nt>>2]=g[Nt>>2]|1;else{if(g[z+4>>2]=it|3,g[ot+4>>2]=L|1,g[ot+L>>2]=L,m=L>>>3,L>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=ot,g[m+12>>2]=ot,g[ot+8>>2]=m,g[ot+12>>2]=y;break}if(m=L>>>8,m?L>>>0>16777215?y=31:(_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,y=14-(Jt|_e|y)+(Nt<>>15)|0,y=L>>>(y+7|0)&1|y<<1):y=0,m=23620+(y<<2)|0,g[ot+28>>2]=y,p=ot+16|0,g[p+4>>2]=0,g[p>>2]=0,p=1<>2]=ot,g[ot+24>>2]=m,g[ot+12>>2]=ot,g[ot+8>>2]=ot;break}m=g[m>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(L|0)){for(S=L<<((y|0)==31?0:25-(y>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(L|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=ot,g[ot+24>>2]=m,g[ot+12>>2]=ot,g[ot+8>>2]=ot;break t}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=ot,g[_e>>2]=ot,g[ot+8>>2]=Nt,g[ot+12>>2]=m,g[ot+24>>2]=0}while(!1);return Nt=z+8|0,wt=Ze,Nt|0}else Ct=it}else Ct=it;else Ct=-1;while(!1);if(y=g[5831]|0,y>>>0>=Ct>>>0)return m=y-Ct|0,p=g[5834]|0,m>>>0>15?(Nt=p+Ct|0,g[5834]=Nt,g[5831]=m,g[Nt+4>>2]=m|1,g[p+y>>2]=m,g[p+4>>2]=Ct|3):(g[5831]=0,g[5834]=0,g[p+4>>2]=y|3,Nt=p+y+4|0,g[Nt>>2]=g[Nt>>2]|1),Nt=p+8|0,wt=Ze,Nt|0;if(L=g[5832]|0,L>>>0>Ct>>>0)return Jt=L-Ct|0,g[5832]=Jt,Nt=g[5835]|0,_e=Nt+Ct|0,g[5835]=_e,g[_e+4>>2]=Jt|1,g[Nt+4>>2]=Ct|3,Nt=Nt+8|0,wt=Ze,Nt|0;if(g[5947]|0?p=g[5949]|0:(g[5949]=4096,g[5948]=4096,g[5950]=-1,g[5951]=-1,g[5952]=0,g[5940]=0,g[5947]=zt&-16^1431655768,p=4096),z=Ct+48|0,H=Ct+47|0,k=p+H|0,I=0-p|0,it=k&I,it>>>0<=Ct>>>0||(p=g[5939]|0,p|0&&(ot=g[5937]|0,zt=ot+it|0,zt>>>0<=ot>>>0|zt>>>0>p>>>0)))return Nt=0,wt=Ze,Nt|0;t:do if(g[5940]&4)m=0,ie=143;else{y=g[5835]|0;e:do if(y){for(S=23764;zt=g[S>>2]|0,!(zt>>>0<=y>>>0&&(zt+(g[S+4>>2]|0)|0)>>>0>y>>>0);)if(p=g[S+8>>2]|0,p)S=p;else{ie=128;break e}if(m=k-L&I,m>>>0<2147483647)if(p=Xi(m|0)|0,(p|0)==((g[S>>2]|0)+(g[S+4>>2]|0)|0)){if((p|0)!=-1){L=m,k=p,ie=145;break t}}else S=p,ie=136;else m=0}else ie=128;while(!1);do if((ie|0)==128)if(y=Xi(0)|0,(y|0)!=-1&&(m=y,Gt=g[5948]|0,ee=Gt+-1|0,m=(ee&m|0?(ee+m&0-Gt)-m|0:0)+it|0,Gt=g[5937]|0,ee=m+Gt|0,m>>>0>Ct>>>0&m>>>0<2147483647)){if(zt=g[5939]|0,zt|0&&ee>>>0<=Gt>>>0|ee>>>0>zt>>>0){m=0;break}if(p=Xi(m|0)|0,(p|0)==(y|0)){L=m,k=y,ie=145;break t}else S=p,ie=136}else m=0;while(!1);do if((ie|0)==136){if(y=0-m|0,!(z>>>0>m>>>0&(m>>>0<2147483647&(S|0)!=-1)))if((S|0)==-1){m=0;break}else{L=m,k=S,ie=145;break t}if(p=g[5949]|0,p=H-m+p&0-p,p>>>0>=2147483647){L=m,k=S,ie=145;break t}if((Xi(p|0)|0)==-1){Xi(y|0)|0,m=0;break}else{L=p+m|0,k=S,ie=145;break t}}while(!1);g[5940]=g[5940]|4,ie=143}while(!1);if((ie|0)==143&&it>>>0<2147483647&&(Jt=Xi(it|0)|0,ee=Xi(0)|0,Ce=ee-Jt|0,Ve=Ce>>>0>(Ct+40|0)>>>0,!((Jt|0)==-1|Ve^1|Jt>>>0>>0&((Jt|0)!=-1&(ee|0)!=-1)^1))&&(L=Ve?Ce:m,k=Jt,ie=145),(ie|0)==145){m=(g[5937]|0)+L|0,g[5937]=m,m>>>0>(g[5938]|0)>>>0&&(g[5938]=m),H=g[5835]|0;t:do if(H){for(m=23764;;){if(p=g[m>>2]|0,y=g[m+4>>2]|0,(k|0)==(p+y|0)){ie=154;break}if(S=g[m+8>>2]|0,S)m=S;else break}if((ie|0)==154&&(_e=m+4|0,(g[m+12>>2]&8|0)==0)&&k>>>0>H>>>0&p>>>0<=H>>>0){g[_e>>2]=y+L,Nt=(g[5832]|0)+L|0,Jt=H+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=H+Jt|0,Jt=Nt-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[H+Nt+4>>2]=40,g[5836]=g[5951];break}for(k>>>0<(g[5833]|0)>>>0&&(g[5833]=k),y=k+L|0,m=23764;;){if((g[m>>2]|0)==(y|0)){ie=162;break}if(p=g[m+8>>2]|0,p)m=p;else break}if((ie|0)==162&&!(g[m+12>>2]&8|0)){g[m>>2]=k,ot=m+4|0,g[ot>>2]=(g[ot>>2]|0)+L,ot=k+8|0,ot=k+(ot&7|0?0-ot&7:0)|0,m=y+8|0,m=y+(m&7|0?0-m&7:0)|0,it=ot+Ct|0,z=m-ot-Ct|0,g[ot+4>>2]=Ct|3;e:do if((H|0)==(m|0))Nt=(g[5832]|0)+z|0,g[5832]=Nt,g[5835]=it,g[it+4>>2]=Nt|1;else{if((g[5834]|0)==(m|0)){Nt=(g[5831]|0)+z|0,g[5831]=Nt,g[5834]=it,g[it+4>>2]=Nt|1,g[it+Nt>>2]=Nt;break}if(p=g[m+4>>2]|0,(p&3|0)==1){L=p&-8,S=p>>>3;r:do if(p>>>0<256)if(p=g[m+8>>2]|0,y=g[m+12>>2]|0,(y|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=y,g[y+8>>2]=p;break}else{k=g[m+24>>2]|0,p=g[m+12>>2]|0;do if((p|0)==(m|0)){if(y=m+16|0,S=y+4|0,p=g[S>>2]|0,p)y=S;else if(p=g[y>>2]|0,!p){p=0;break}for(;;)if(I=p+20|0,S=g[I>>2]|0,S)p=S,y=I;else if(I=p+16|0,S=g[I>>2]|0,S)p=S,y=I;else break;g[y>>2]=0}else Nt=g[m+8>>2]|0,g[Nt+12>>2]=p,g[p+8>>2]=Nt;while(!1);if(!k)break;y=g[m+28>>2]|0,S=23620+(y<<2)|0;do if((g[S>>2]|0)!=(m|0)){if(Nt=k+16|0,g[((g[Nt>>2]|0)==(m|0)?Nt:k+20|0)>>2]=p,!p)break r}else{if(g[S>>2]=p,p|0)break;g[5830]=g[5830]&~(1<>2]=k,y=m+16|0,S=g[y>>2]|0,S|0&&(g[p+16>>2]=S,g[S+24>>2]=p),y=g[y+4>>2]|0,!y)break;g[p+20>>2]=y,g[y+24>>2]=p}while(!1);m=m+L|0,I=L+z|0}else I=z;if(m=m+4|0,g[m>>2]=g[m>>2]&-2,g[it+4>>2]=I|1,g[it+I>>2]=I,m=I>>>3,I>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=it,g[m+12>>2]=it,g[it+8>>2]=m,g[it+12>>2]=y;break}m=I>>>8;do if(!m)S=0;else{if(I>>>0>16777215){S=31;break}_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,S=14-(Jt|_e|S)+(Nt<>>15)|0,S=I>>>(S+7|0)&1|S<<1}while(!1);if(m=23620+(S<<2)|0,g[it+28>>2]=S,p=it+16|0,g[p+4>>2]=0,g[p>>2]=0,p=g[5830]|0,y=1<>2]=it,g[it+24>>2]=m,g[it+12>>2]=it,g[it+8>>2]=it;break}m=g[m>>2]|0;r:do if((g[m+4>>2]&-8|0)!=(I|0)){for(S=I<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(I|0)){m=p;break r}else S=S<<1,m=p;g[y>>2]=it,g[it+24>>2]=m,g[it+12>>2]=it,g[it+8>>2]=it;break e}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=it,g[_e>>2]=it,g[it+8>>2]=Nt,g[it+12>>2]=m,g[it+24>>2]=0}while(!1);return Nt=ot+8|0,wt=Ze,Nt|0}for(m=23764;p=g[m>>2]|0,!(p>>>0<=H>>>0&&(Nt=p+(g[m+4>>2]|0)|0,Nt>>>0>H>>>0));)m=g[m+8>>2]|0;I=Nt+-47|0,p=I+8|0,p=I+(p&7|0?0-p&7:0)|0,I=H+16|0,p=p>>>0>>0?H:p,m=p+8|0,y=L+-40|0,Jt=k+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=k+Jt|0,Jt=y-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[k+y+4>>2]=40,g[5836]=g[5951],y=p+4|0,g[y>>2]=27,g[m>>2]=g[5941],g[m+4>>2]=g[5942],g[m+8>>2]=g[5943],g[m+12>>2]=g[5944],g[5941]=k,g[5942]=L,g[5944]=0,g[5943]=m,m=p+24|0;do _e=m,m=m+4|0,g[m>>2]=7;while((_e+8|0)>>>0>>0);if((p|0)!=(H|0)){if(k=p-H|0,g[y>>2]=g[y>>2]&-2,g[H+4>>2]=k|1,g[p>>2]=k,m=k>>>3,k>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=H,g[m+12>>2]=H,g[H+8>>2]=m,g[H+12>>2]=y;break}if(m=k>>>8,m?k>>>0>16777215?S=31:(_e=(m+1048320|0)>>>16&8,Nt=m<<_e,Jt=(Nt+520192|0)>>>16&4,Nt=Nt<>>16&2,S=14-(Jt|_e|S)+(Nt<>>15)|0,S=k>>>(S+7|0)&1|S<<1):S=0,y=23620+(S<<2)|0,g[H+28>>2]=S,g[H+20>>2]=0,g[I>>2]=0,m=g[5830]|0,p=1<>2]=H,g[H+24>>2]=y,g[H+12>>2]=H,g[H+8>>2]=H;break}m=g[y>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(k|0)){for(S=k<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(k|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=H,g[H+24>>2]=m,g[H+12>>2]=H,g[H+8>>2]=H;break t}while(!1);_e=m+8|0,Nt=g[_e>>2]|0,g[Nt+12>>2]=H,g[_e>>2]=H,g[H+8>>2]=Nt,g[H+12>>2]=m,g[H+24>>2]=0}}else Nt=g[5833]|0,(Nt|0)==0|k>>>0>>0&&(g[5833]=k),g[5941]=k,g[5942]=L,g[5944]=0,g[5838]=g[5947],g[5837]=-1,g[5842]=23356,g[5841]=23356,g[5844]=23364,g[5843]=23364,g[5846]=23372,g[5845]=23372,g[5848]=23380,g[5847]=23380,g[5850]=23388,g[5849]=23388,g[5852]=23396,g[5851]=23396,g[5854]=23404,g[5853]=23404,g[5856]=23412,g[5855]=23412,g[5858]=23420,g[5857]=23420,g[5860]=23428,g[5859]=23428,g[5862]=23436,g[5861]=23436,g[5864]=23444,g[5863]=23444,g[5866]=23452,g[5865]=23452,g[5868]=23460,g[5867]=23460,g[5870]=23468,g[5869]=23468,g[5872]=23476,g[5871]=23476,g[5874]=23484,g[5873]=23484,g[5876]=23492,g[5875]=23492,g[5878]=23500,g[5877]=23500,g[5880]=23508,g[5879]=23508,g[5882]=23516,g[5881]=23516,g[5884]=23524,g[5883]=23524,g[5886]=23532,g[5885]=23532,g[5888]=23540,g[5887]=23540,g[5890]=23548,g[5889]=23548,g[5892]=23556,g[5891]=23556,g[5894]=23564,g[5893]=23564,g[5896]=23572,g[5895]=23572,g[5898]=23580,g[5897]=23580,g[5900]=23588,g[5899]=23588,g[5902]=23596,g[5901]=23596,g[5904]=23604,g[5903]=23604,Nt=L+-40|0,Jt=k+8|0,Jt=Jt&7|0?0-Jt&7:0,_e=k+Jt|0,Jt=Nt-Jt|0,g[5835]=_e,g[5832]=Jt,g[_e+4>>2]=Jt|1,g[k+Nt+4>>2]=40,g[5836]=g[5951];while(!1);if(m=g[5832]|0,m>>>0>Ct>>>0)return Jt=m-Ct|0,g[5832]=Jt,Nt=g[5835]|0,_e=Nt+Ct|0,g[5835]=_e,g[_e+4>>2]=Jt|1,g[Nt+4>>2]=Ct|3,Nt=Nt+8|0,wt=Ze,Nt|0}return Nt=us()|0,g[Nt>>2]=12,Nt=0,wt=Ze,Nt|0}function Gr(p){p=p|0;var m=0,y=0,S=0,I=0,k=0,L=0,z=0,H=0;if(p){y=p+-8|0,I=g[5833]|0,p=g[p+-4>>2]|0,m=p&-8,H=y+m|0;do if(p&1)z=y,L=y;else{if(S=g[y>>2]|0,!(p&3)||(L=y+(0-S)|0,k=S+m|0,L>>>0>>0))return;if((g[5834]|0)==(L|0)){if(p=H+4|0,m=g[p>>2]|0,(m&3|0)!=3){z=L,m=k;break}g[5831]=k,g[p>>2]=m&-2,g[L+4>>2]=k|1,g[L+k>>2]=k;return}if(y=S>>>3,S>>>0<256)if(p=g[L+8>>2]|0,m=g[L+12>>2]|0,(m|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=m,g[m+8>>2]=p,z=L,m=k;break}I=g[L+24>>2]|0,p=g[L+12>>2]|0;do if((p|0)==(L|0)){if(m=L+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){p=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0}else z=g[L+8>>2]|0,g[z+12>>2]=p,g[p+8>>2]=z;while(!1);if(I){if(m=g[L+28>>2]|0,y=23620+(m<<2)|0,(g[y>>2]|0)==(L|0)){if(g[y>>2]=p,!p){g[5830]=g[5830]&~(1<>2]|0)==(L|0)?z:I+20|0)>>2]=p,!p){z=L,m=k;break}g[p+24>>2]=I,m=L+16|0,y=g[m>>2]|0,y|0&&(g[p+16>>2]=y,g[y+24>>2]=p),m=g[m+4>>2]|0,m?(g[p+20>>2]=m,g[m+24>>2]=p,z=L,m=k):(z=L,m=k)}else z=L,m=k}while(!1);if(!(L>>>0>=H>>>0)&&(p=H+4|0,S=g[p>>2]|0,!!(S&1))){if(S&2)g[p>>2]=S&-2,g[z+4>>2]=m|1,g[L+m>>2]=m,I=m;else{if((g[5835]|0)==(H|0)){if(H=(g[5832]|0)+m|0,g[5832]=H,g[5835]=z,g[z+4>>2]=H|1,(z|0)!=(g[5834]|0))return;g[5834]=0,g[5831]=0;return}if((g[5834]|0)==(H|0)){H=(g[5831]|0)+m|0,g[5831]=H,g[5834]=L,g[z+4>>2]=H|1,g[L+H>>2]=H;return}I=(S&-8)+m|0,y=S>>>3;do if(S>>>0<256)if(m=g[H+8>>2]|0,p=g[H+12>>2]|0,(p|0)==(m|0)){g[5829]=g[5829]&~(1<>2]=p,g[p+8>>2]=m;break}else{k=g[H+24>>2]|0,p=g[H+12>>2]|0;do if((p|0)==(H|0)){if(m=H+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){y=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0,y=p}else y=g[H+8>>2]|0,g[y+12>>2]=p,g[p+8>>2]=y,y=p;while(!1);if(k|0){if(p=g[H+28>>2]|0,m=23620+(p<<2)|0,(g[m>>2]|0)==(H|0)){if(g[m>>2]=y,!y){g[5830]=g[5830]&~(1<>2]|0)==(H|0)?S:k+20|0)>>2]=y,!y)break;g[y+24>>2]=k,p=H+16|0,m=g[p>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),p=g[p+4>>2]|0,p|0&&(g[y+20>>2]=p,g[p+24>>2]=y)}}while(!1);if(g[z+4>>2]=I|1,g[L+I>>2]=I,(z|0)==(g[5834]|0)){g[5831]=I;return}}if(p=I>>>3,I>>>0<256){y=23356+(p<<1<<2)|0,m=g[5829]|0,p=1<>2]|0):(g[5829]=m|p,p=y,m=y+8|0),g[m>>2]=z,g[p+12>>2]=z,g[z+8>>2]=p,g[z+12>>2]=y;return}p=I>>>8,p?I>>>0>16777215?S=31:(L=(p+1048320|0)>>>16&8,H=p<>>16&4,H=H<>>16&2,S=14-(k|L|S)+(H<>>15)|0,S=I>>>(S+7|0)&1|S<<1):S=0,p=23620+(S<<2)|0,g[z+28>>2]=S,g[z+20>>2]=0,g[z+16>>2]=0,m=g[5830]|0,y=1<>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;else{p=g[p>>2]|0;e:do if((g[p+4>>2]&-8|0)!=(I|0)){for(S=I<<((S|0)==31?0:25-(S>>>1)|0);y=p+16+(S>>>31<<2)|0,m=g[y>>2]|0,!!m;)if((g[m+4>>2]&-8|0)==(I|0)){p=m;break e}else S=S<<1,p=m;g[y>>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;break t}while(!1);L=p+8|0,H=g[L>>2]|0,g[H+12>>2]=z,g[L>>2]=z,g[z+8>>2]=H,g[z+12>>2]=p,g[z+24>>2]=0}while(!1);if(H=(g[5837]|0)+-1|0,g[5837]=H,!(H|0)){for(p=23772;p=g[p>>2]|0,p;)p=p+8|0;g[5837]=-1}}}}function Na(p,m){p=p|0,m=m|0;var y=0;return p?(y=kc(m,p)|0,(m|p)>>>0>65535&&(y=((y>>>0)/(p>>>0)|0|0)==(m|0)?y:-1)):y=0,p=no(y)|0,!p||!(g[p+-4>>2]&3)||Dc(p|0,0,y|0)|0,p|0}function d_(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,y=p+y>>>0,$e(m+S+(y>>>0

>>0|0)>>>0|0),y|0|0}function Bd(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,S=m-S-(y>>>0>p>>>0|0)>>>0,$e(S|0),p-y>>>0|0|0}function oA(p){return p=p|0,(p?31-(aa(p^p-1)|0)|0:32)|0}function Wl(p,m,y,S,I){p=p|0,m=m|0,y=y|0,S=S|0,I=I|0;var k=0,L=0,z=0,H=0,it=0,ot=0,Ct=0,zt=0,Gt=0,ee=0;if(ot=p,H=m,it=H,L=y,zt=S,z=zt,!it)return k=(I|0)!=0,z?k?(g[I>>2]=p|0,g[I+4>>2]=m&0,zt=0,I=0,$e(zt|0),I|0):(zt=0,I=0,$e(zt|0),I|0):(k&&(g[I>>2]=(ot>>>0)%(L>>>0),g[I+4>>2]=0),zt=0,I=(ot>>>0)/(L>>>0)>>>0,$e(zt|0),I|0);k=(z|0)==0;do if(L){if(!k){if(k=(aa(z|0)|0)-(aa(it|0)|0)|0,k>>>0<=31){Ct=k+1|0,z=31-k|0,m=k-31>>31,L=Ct,p=ot>>>(Ct>>>0)&m|it<>>(Ct>>>0)&m,k=0,z=ot<>2]=p|0,g[I+4>>2]=H|m&0,zt=0,I=0,$e(zt|0),I|0):(zt=0,I=0,$e(zt|0),I|0)}if(k=L-1|0,k&L|0){z=(aa(L|0)|0)+33-(aa(it|0)|0)|0,ee=64-z|0,Ct=32-z|0,H=Ct>>31,Gt=z-32|0,m=Gt>>31,L=z,p=Ct-1>>31&it>>>(Gt>>>0)|(it<>>(z>>>0))&m,m=m&it>>>(z>>>0),k=ot<>>(Gt>>>0))&H|ot<>31;break}return I|0&&(g[I>>2]=k&ot,g[I+4>>2]=0),(L|0)==1?(Gt=H|m&0,ee=p|0|0,$e(Gt|0),ee|0):(ee=oA(L|0)|0,Gt=it>>>(ee>>>0)|0,ee=it<<32-ee|ot>>>(ee>>>0)|0,$e(Gt|0),ee|0)}else{if(k)return I|0&&(g[I>>2]=(it>>>0)%(L>>>0),g[I+4>>2]=0),Gt=0,ee=(it>>>0)/(L>>>0)>>>0,$e(Gt|0),ee|0;if(!ot)return I|0&&(g[I>>2]=0,g[I+4>>2]=(it>>>0)%(z>>>0)),Gt=0,ee=(it>>>0)/(z>>>0)>>>0,$e(Gt|0),ee|0;if(k=z-1|0,!(k&z))return I|0&&(g[I>>2]=p|0,g[I+4>>2]=k&it|m&0),Gt=0,ee=it>>>((oA(z|0)|0)>>>0),$e(Gt|0),ee|0;if(k=(aa(z|0)|0)-(aa(it|0)|0)|0,k>>>0<=30){m=k+1|0,z=31-k|0,L=m,p=it<>>(m>>>0),m=it>>>(m>>>0),k=0,z=ot<>2]=p|0,g[I+4>>2]=H|m&0,Gt=0,ee=0,$e(Gt|0),ee|0):(Gt=0,ee=0,$e(Gt|0),ee|0)}while(!1);if(!L)it=z,H=0,z=0;else{Ct=y|0|0,ot=zt|S&0,it=d_(Ct|0,ot|0,-1,-1)|0,y=It()|0,H=z,z=0;do S=H,H=k>>>31|H<<1,k=z|k<<1,S=p<<1|S>>>31|0,zt=p>>>31|m<<1|0,Bd(it|0,y|0,S|0,zt|0)|0,ee=It()|0,Gt=ee>>31|((ee|0)<0?-1:0)<<1,z=Gt&1,p=Bd(S|0,zt|0,Gt&Ct|0,(((ee|0)<0?-1:0)>>31|((ee|0)<0?-1:0)<<1)&ot|0)|0,m=It()|0,L=L-1|0;while(L|0);it=H,H=0}return L=0,I|0&&(g[I>>2]=p,g[I+4>>2]=m),Gt=(k|0)>>>31|(it|L)<<1|(L<<1|k>>>31)&0|H,ee=(k<<1|0)&-2|z,$e(Gt|0),ee|0}function qo(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var I=0,k=0;return k=wt,wt=wt+16|0,I=k|0,Wl(p,m,y,S,I)|0,wt=k,$e(g[I+4>>2]|0),g[I>>2]|0|0}function me(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?($e(m>>>y|0),p>>>y|(m&(1<>>y-32|0)}function Le(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?($e(m<>>32-y|0),p<=0?+as(p+.5):+Qi(p-.5)}function Ua(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0;if((y|0)>=8192)return Hp(p|0,m|0,y|0)|0,p|0;if(k=p|0,I=p+y|0,(p&3)==(m&3)){for(;p&3;){if(!y)return k|0;vr[p>>0]=vr[m>>0]|0,p=p+1|0,m=m+1|0,y=y-1|0}for(y=I&-4|0,S=y-64|0;(p|0)<=(S|0);)g[p>>2]=g[m>>2],g[p+4>>2]=g[m+4>>2],g[p+8>>2]=g[m+8>>2],g[p+12>>2]=g[m+12>>2],g[p+16>>2]=g[m+16>>2],g[p+20>>2]=g[m+20>>2],g[p+24>>2]=g[m+24>>2],g[p+28>>2]=g[m+28>>2],g[p+32>>2]=g[m+32>>2],g[p+36>>2]=g[m+36>>2],g[p+40>>2]=g[m+40>>2],g[p+44>>2]=g[m+44>>2],g[p+48>>2]=g[m+48>>2],g[p+52>>2]=g[m+52>>2],g[p+56>>2]=g[m+56>>2],g[p+60>>2]=g[m+60>>2],p=p+64|0,m=m+64|0;for(;(p|0)<(y|0);)g[p>>2]=g[m>>2],p=p+4|0,m=m+4|0}else for(y=I-4|0;(p|0)<(y|0);)vr[p>>0]=vr[m>>0]|0,vr[p+1>>0]=vr[m+1>>0]|0,vr[p+2>>0]=vr[m+2>>0]|0,vr[p+3>>0]=vr[m+3>>0]|0,p=p+4|0,m=m+4|0;for(;(p|0)<(I|0);)vr[p>>0]=vr[m>>0]|0,p=p+1|0,m=m+1|0;return k|0}function Dc(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,I=0,k=0,L=0;if(k=p+y|0,m=m&255,(y|0)>=67){for(;p&3;)vr[p>>0]=m,p=p+1|0;for(S=k&-4|0,L=m|m<<8|m<<16|m<<24,I=S-64|0;(p|0)<=(I|0);)g[p>>2]=L,g[p+4>>2]=L,g[p+8>>2]=L,g[p+12>>2]=L,g[p+16>>2]=L,g[p+20>>2]=L,g[p+24>>2]=L,g[p+28>>2]=L,g[p+32>>2]=L,g[p+36>>2]=L,g[p+40>>2]=L,g[p+44>>2]=L,g[p+48>>2]=L,g[p+52>>2]=L,g[p+56>>2]=L,g[p+60>>2]=L,p=p+64|0;for(;(p|0)<(S|0);)g[p>>2]=L,p=p+4|0}for(;(p|0)<(k|0);)vr[p>>0]=m,p=p+1|0;return k-y|0}function Lx(p){return p=+p,p>=0?+as(p+.5):+Qi(p-.5)}function Xi(p){p=p|0;var m=0,y=0,S=0;return S=Ym()|0,y=g[Ts>>2]|0,m=y+p|0,(p|0)>0&(m|0)<(y|0)|(m|0)<0?(Qm(m|0)|0,Zm(12),-1):(m|0)>(S|0)&&!(qp(m|0)|0)?(Zm(12),-1):(g[Ts>>2]=m,y|0)}return{___uremdi3:qo,_bitshift64Lshr:me,_bitshift64Shl:Le,_calloc:Na,_cellAreaKm2:h_,_cellAreaM2:Cx,_cellAreaRads2:u_,_compact:Ah,_destroyLinkedPolygon:Ft,_edgeLengthKm:ln,_edgeLengthM:rA,_emscripten_replace_memory:$m,_exactEdgeLengthKm:iA,_exactEdgeLengthM:rr,_exactEdgeLengthRads:_o,_experimentalH3ToLocalIj:Qt,_experimentalLocalIjToH3:se,_free:Gr,_geoToH3:sA,_getDestinationH3IndexFromUnidirectionalEdge:Z,_getH3IndexesFromUnidirectionalEdge:st,_getH3UnidirectionalEdge:U,_getH3UnidirectionalEdgeBoundary:pt,_getH3UnidirectionalEdgesFromHexagon:At,_getOriginH3IndexFromUnidirectionalEdge:W,_getPentagonIndexes:O,_getRes0Indexes:s_,_h3Distance:pe,_h3GetBaseCell:xf,_h3GetFaces:b,_h3GetResolution:fr,_h3IndexesAreNeighbors:B,_h3IsPentagon:Ui,_h3IsResClassIII:bf,_h3IsValid:nA,_h3Line:xe,_h3LineSize:he,_h3SetToLinkedGeo:oh,_h3ToCenterChild:f_,_h3ToChildren:io,_h3ToGeo:l,_h3ToGeoBoundary:d,_h3ToParent:Dd,_h3UnidirectionalEdgeIsValid:Q,_hexAreaKm2:c_,_hexAreaM2:ua,_hexRing:i_,_i64Subtract:Bd,_kRing:e_,_kRingDistances:r_,_llvm_minnum_f64:dl,_llvm_round_f64:Sf,_malloc:no,_maxFaceCount:v,_maxH3ToChildrenSize:Gn,_maxKringSize:Xm,_maxPolyfillSize:Pd,_maxUncompactSize:yn,_memcpy:Ua,_memset:Dc,_numHexagons:l0,_pentagonIndexCount:M,_pointDistKm:Rc,_pointDistM:o0,_pointDistRads:Au,_polyfill:Zp,_res0IndexCount:n_,_round:Lx,_sbrk:Xi,_sizeOfCoordIJ:zs,_sizeOfGeoBoundary:Vr,_sizeOfGeoCoord:Jr,_sizeOfGeoPolygon:Rn,_sizeOfGeofence:ei,_sizeOfH3Index:Vi,_sizeOfLinkedGeoPolygon:$i,_uncompact:Cn,establishStackSpace:Px,stackAlloc:Td,stackRestore:Ed,stackSave:Md}}(vt,xt,er),Dt=t.___uremdi3=_t.___uremdi3,Mt=t._bitshift64Lshr=_t._bitshift64Lshr,Ut=t._bitshift64Shl=_t._bitshift64Shl,re=t._calloc=_t._calloc,ne=t._cellAreaKm2=_t._cellAreaKm2,oe=t._cellAreaM2=_t._cellAreaM2,ar=t._cellAreaRads2=_t._cellAreaRads2,_r=t._compact=_t._compact,Ye=t._destroyLinkedPolygon=_t._destroyLinkedPolygon,lr=t._edgeLengthKm=_t._edgeLengthKm,xr=t._edgeLengthM=_t._edgeLengthM,vi=t._emscripten_replace_memory=_t._emscripten_replace_memory,Bi=t._exactEdgeLengthKm=_t._exactEdgeLengthKm,ni=t._exactEdgeLengthM=_t._exactEdgeLengthM,Hr=t._exactEdgeLengthRads=_t._exactEdgeLengthRads,Un=t._experimentalH3ToLocalIj=_t._experimentalH3ToLocalIj,Li=t._experimentalLocalIjToH3=_t._experimentalLocalIjToH3,gn=t._free=_t._free,Kn=t._geoToH3=_t._geoToH3,oa=t._getDestinationH3IndexFromUnidirectionalEdge=_t._getDestinationH3IndexFromUnidirectionalEdge,Om=t._getH3IndexesFromUnidirectionalEdge=_t._getH3IndexesFromUnidirectionalEdge,Fl=t._getH3UnidirectionalEdge=_t._getH3UnidirectionalEdge,ws=t._getH3UnidirectionalEdgeBoundary=_t._getH3UnidirectionalEdgeBoundary,ih=t._getH3UnidirectionalEdgesFromHexagon=_t._getH3UnidirectionalEdgesFromHexagon,ai=t._getOriginH3IndexFromUnidirectionalEdge=_t._getOriginH3IndexFromUnidirectionalEdge,La=t._getPentagonIndexes=_t._getPentagonIndexes,Lc=t._getRes0Indexes=_t._getRes0Indexes,on=t._h3Distance=_t._h3Distance,kn=t._h3GetBaseCell=_t._h3GetBaseCell,Bm=t._h3GetFaces=_t._h3GetFaces,Vo=t._h3GetResolution=_t._h3GetResolution,Vn=t._h3IndexesAreNeighbors=_t._h3IndexesAreNeighbors,mo=t._h3IsPentagon=_t._h3IsPentagon,zl=t._h3IsResClassIII=_t._h3IsResClassIII,Yi=t._h3IsValid=_t._h3IsValid,_i=t._h3Line=_t._h3Line,Nl=t._h3LineSize=_t._h3LineSize,an=t._h3SetToLinkedGeo=_t._h3SetToLinkedGeo,hu=t._h3ToCenterChild=_t._h3ToCenterChild,Jn=t._h3ToChildren=_t._h3ToChildren,Up=t._h3ToGeo=_t._h3ToGeo,Ul=t._h3ToGeoBoundary=_t._h3ToGeoBoundary,md=t._h3ToParent=_t._h3ToParent,gd=t._h3UnidirectionalEdgeIsValid=_t._h3UnidirectionalEdgeIsValid,_d=t._hexAreaKm2=_t._hexAreaKm2,yd=t._hexAreaM2=_t._hexAreaM2,lt=t._hexRing=_t._hexRing,ft=t._i64Subtract=_t._i64Subtract,Lt=t._kRing=_t._kRing,$t=t._kRingDistances=_t._kRingDistances,ge=t._llvm_minnum_f64=_t._llvm_minnum_f64,qe=t._llvm_round_f64=_t._llvm_round_f64,ti=t._malloc=_t._malloc,ts=t._maxFaceCount=_t._maxFaceCount,Ss=t._maxH3ToChildrenSize=_t._maxH3ToChildrenSize,Bs=t._maxKringSize=_t._maxKringSize,ka=t._maxPolyfillSize=_t._maxPolyfillSize,Fm=t._maxUncompactSize=_t._maxUncompactSize,Mx=t._memcpy=_t._memcpy,Ex=t._memset=_t._memset,Xg=t._numHexagons=_t._numHexagons,Kg=t._pentagonIndexCount=_t._pentagonIndexCount,Af=t._pointDistKm=_t._pointDistKm,zm=t._pointDistM=_t._pointDistM,cl=t._pointDistRads=_t._pointDistRads,Nm=t._polyfill=_t._polyfill,Um=t._res0IndexCount=_t._res0IndexCount,Vp=t._round=_t._round,Vm=t._sbrk=_t._sbrk,vd=t._sizeOfCoordIJ=_t._sizeOfCoordIJ,nh=t._sizeOfGeoBoundary=_t._sizeOfGeoBoundary,ui=t._sizeOfGeoCoord=_t._sizeOfGeoCoord,jm=t._sizeOfGeoPolygon=_t._sizeOfGeoPolygon,Ra=t._sizeOfGeofence=_t._sizeOfGeofence,Da=t._sizeOfH3Index=_t._sizeOfH3Index,Jg=t._sizeOfLinkedGeoPolygon=_t._sizeOfLinkedGeoPolygon,Gm=t._uncompact=_t._uncompact,Wm=t.establishStackSpace=_t.establishStackSpace,jp=t.stackAlloc=_t.stackAlloc,Hm=t.stackRestore=_t.stackRestore,Gp=t.stackSave=_t.stackSave;if(t.asm=_t,t.cwrap=ut,t.setValue=j,t.getValue=Y,t.getTempRet0=R,po){Pa(po)||(po=o(po));{uu(\"memory initializer\");var xd=function(Ht){Ht.byteLength&&(Ht=new Uint8Array(Ht)),zi.set(Ht,N),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,al(\"memory initializer\")},Wp=function(){c(po,xd,function(){throw\"could not load memory initializer \"+po})},bd=ht(po);if(bd)xd(bd.buffer);else if(t.memoryInitializerRequest){var qm=function(){var Ht=t.memoryInitializerRequest,fe=Ht.response;if(Ht.status!==200&&Ht.status!==0){var De=ht(t.memoryInitializerRequestURL);if(De)fe=De.buffer;else{console.warn(\"a problem seems to have happened with Module.memoryInitializerRequest, status: \"+Ht.status+\", retrying \"+po),Wp();return}}xd(fe)};t.memoryInitializerRequest.response?setTimeout(qm,0):t.memoryInitializerRequest.addEventListener(\"load\",qm)}else Wp()}}var wd;eo=function Ht(){wd||fu(),wd||(eo=Ht)};function fu(Ht){if(Ht=Ht||s,gi>0||(ol(),gi>0))return;function fe(){wd||(wd=!0,!rt&&(fo(),Ea(),t.onRuntimeInitialized&&t.onRuntimeInitialized(),na()))}t.setStatus?(t.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){t.setStatus(\"\")},1),fe()},1)):fe()}t.run=fu;function sh(Ht){throw t.onAbort&&t.onAbort(Ht),Ht+=\"\",f(Ht),_(Ht),rt=!0,\"abort(\"+Ht+\"). Build with -s ASSERTIONS=1 for more info.\"}if(t.abort=sh,t.preInit)for(typeof t.preInit==\"function\"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return fu(),e}(typeof Tc==\"object\"?Tc:{}),Sr=\"number\",AS=Sr,$r=Sr,mi=Sr,Sc=Sr,ji=Sr,A_t=[[\"sizeOfH3Index\",Sr],[\"sizeOfGeoCoord\",Sr],[\"sizeOfGeoBoundary\",Sr],[\"sizeOfGeoPolygon\",Sr],[\"sizeOfGeofence\",Sr],[\"sizeOfLinkedGeoPolygon\",Sr],[\"sizeOfCoordIJ\",Sr],[\"h3IsValid\",AS,[$r,mi]],[\"geoToH3\",$r,[Sr,Sr,Sc]],[\"h3ToGeo\",null,[$r,mi,ji]],[\"h3ToGeoBoundary\",null,[$r,mi,ji]],[\"maxKringSize\",Sr,[Sr]],[\"kRing\",null,[$r,mi,Sr,ji]],[\"kRingDistances\",null,[$r,mi,Sr,ji,ji]],[\"hexRing\",null,[$r,mi,Sr,ji]],[\"maxPolyfillSize\",Sr,[ji,Sc]],[\"polyfill\",null,[ji,Sc,ji]],[\"h3SetToLinkedGeo\",null,[ji,Sr,ji]],[\"destroyLinkedPolygon\",null,[ji]],[\"compact\",Sr,[ji,ji,Sr]],[\"uncompact\",Sr,[ji,Sr,ji,Sr,Sc]],[\"maxUncompactSize\",Sr,[ji,Sr,Sc]],[\"h3IsPentagon\",AS,[$r,mi]],[\"h3IsResClassIII\",AS,[$r,mi]],[\"h3GetBaseCell\",Sr,[$r,mi]],[\"h3GetResolution\",Sr,[$r,mi]],[\"maxFaceCount\",Sr,[$r,mi]],[\"h3GetFaces\",null,[$r,mi,ji]],[\"h3ToParent\",$r,[$r,mi,Sc]],[\"h3ToChildren\",null,[$r,mi,Sc,ji]],[\"h3ToCenterChild\",$r,[$r,mi,Sc]],[\"maxH3ToChildrenSize\",Sr,[$r,mi,Sc]],[\"h3IndexesAreNeighbors\",AS,[$r,mi,$r,mi]],[\"getH3UnidirectionalEdge\",$r,[$r,mi,$r,mi]],[\"getOriginH3IndexFromUnidirectionalEdge\",$r,[$r,mi]],[\"getDestinationH3IndexFromUnidirectionalEdge\",$r,[$r,mi]],[\"h3UnidirectionalEdgeIsValid\",AS,[$r,mi]],[\"getH3IndexesFromUnidirectionalEdge\",null,[$r,mi,ji]],[\"getH3UnidirectionalEdgesFromHexagon\",null,[$r,mi,ji]],[\"getH3UnidirectionalEdgeBoundary\",null,[$r,mi,ji]],[\"h3Distance\",Sr,[$r,mi,$r,mi]],[\"h3Line\",Sr,[$r,mi,$r,mi,ji]],[\"h3LineSize\",Sr,[$r,mi,$r,mi]],[\"experimentalH3ToLocalIj\",Sr,[$r,mi,$r,mi,ji]],[\"experimentalLocalIjToH3\",Sr,[$r,mi,ji,ji]],[\"hexAreaM2\",Sr,[Sc]],[\"hexAreaKm2\",Sr,[Sc]],[\"edgeLengthM\",Sr,[Sc]],[\"edgeLengthKm\",Sr,[Sc]],[\"pointDistM\",Sr,[ji,ji]],[\"pointDistKm\",Sr,[ji,ji]],[\"pointDistRads\",Sr,[ji,ji]],[\"cellAreaM2\",Sr,[$r,mi]],[\"cellAreaKm2\",Sr,[$r,mi]],[\"cellAreaRads2\",Sr,[$r,mi]],[\"exactEdgeLengthM\",Sr,[$r,mi]],[\"exactEdgeLengthKm\",Sr,[$r,mi]],[\"exactEdgeLengthRads\",Sr,[$r,mi]],[\"numHexagons\",Sr,[Sc]],[\"getRes0Indexes\",null,[ji]],[\"res0IndexCount\",Sr],[\"getPentagonIndexes\",null,[Sr,ji]],[\"pentagonIndexCount\",Sr]],Ta={};A_t.forEach(function(t){Ta[t[0]]=Tc.cwrap.apply(Tc,t)});var ux=16;var mS=8,bse=Ta.sizeOfH3Index(),oQ=Ta.sizeOfGeoCoord(),m_t=Ta.sizeOfGeoBoundary(),wse=Ta.sizeOfGeoPolygon(),Sse=Ta.sizeOfGeofence(),Tse=Ta.sizeOfLinkedGeoPolygon(),Mse=Ta.sizeOfCoordIJ(),nQ={m:\"m\",m2:\"m2\",km:\"km\",km2:\"km2\",rads:\"rads\",rads2:\"rads2\"};function g_t(e){if(typeof e!=\"number\"||e<0||e>15||Math.floor(e)!==e)throw new Error(\"Invalid resolution: \"+e)}var __t=/[^0-9a-fA-F]/;function hx(e){if(Array.isArray(e)&&e.length===2&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if(typeof e!=\"string\"||__t.test(e))return[0,0];var t=parseInt(e.substring(0,e.length-8),ux),r=parseInt(e.substring(e.length-8),ux);return[r,t]}function sQ(e){if(e>=0)return e.toString(ux);e=e&2147483647;var t=aQ(8,e.toString(ux)),r=(parseInt(t[0],ux)+8).toString(ux);return t=r+t.substring(1),t}function y_t(e,t){return sQ(t)+aQ(8,sQ(e))}function aQ(e,t){for(var r=e-t.length,i=\"\",s=0;s180?r[0]-=360:i<-180&&(r[0]+=360)}}function E_t(e,t,r){let[i,s]=yI(e),n=t.length;mQ(t,s);let o=t[0]===t[n-1]?n-1:n;for(let c=0;ce.hexagon},extruded:!0},Op=class e extends tn{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){e._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:t}){return this._shouldUseHighPrecision()?t.propsOrDataChanged:t.somethingChanged}updateState({props:t,changeFlags:r}){if(t.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let i=this._calculateH3DataProps();this.setState(i)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let t=-1,r=!1,i=!1,{iterable:s,objectInfo:n}=Xc(this.props.data);for(let o of s){n.index++;let c=this.props.getHexagon(o,n),f=uQ(c);if(t<0){if(t=f,!this.props.highPrecision)break}else if(t!==f){i=!0;break}if(cQ(c)){r=!0;break}}return{resolution:t,edgeLengthKM:t>=0?pQ(t,\"km\"):0,hasMultipleRes:i,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision===\"auto\"){let{resolution:t,hasPentagon:r,hasMultipleRes:i}=this.state,{viewport:s}=this.context;return!!s?.resolution||i||r||t>=0&&t<=5}return this.props.highPrecision}_updateVertices(t){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:i,centerHex:s}=this.state;if(r<0)return;let n=this.props.centerHexagon||hQ(t.latitude,t.longitude,r);if(s===n)return;if(s){let R=dQ(s,n);if(R>=0&&R*i{let N=t.projectFlat(R);return[(N[0]-w)/o[0],(N[1]-C)/o[1]]}),this.setState({centerHex:n,vertices:c})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:t,material:r,coverage:i,extruded:s,wireframe:n,stroked:o,filled:c,lineWidthUnits:f,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:C,getFillColor:R,getElevation:N,getLineColor:j,getLineWidth:Y,transitions:rt,updateTriggers:$}=this.props;return{elevationScale:t,extruded:s,coverage:i,wireframe:n,stroked:o,filled:c,lineWidthUnits:f,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:C,material:r,getElevation:N,getFillColor:R,getLineColor:j,getLineWidth:Y,transitions:rt,updateTriggers:{getFillColor:$.getFillColor,getElevation:$.getElevation,getLineColor:$.getLineColor,getLineWidth:$.getLineWidth}}}_renderPolygonLayer(){let{data:t,getHexagon:r,updateTriggers:i,coverage:s}=this.props,n=this.getSubLayerClass(\"hexagon-cell-hifi\",lf),o=this._getForwardProps();return o.updateTriggers.getPolygon=C_t(i.getHexagon,s),new n(o,this.getSubLayerProps({id:\"hexagon-cell-hifi\",updateTriggers:o.updateTriggers}),{data:t,_normalize:!1,_windingOrder:\"CCW\",positionFormat:\"XY\",getPolygon:(c,f)=>{let _=r(c,f);return I_t(AQ(_,s))}})}_renderColumnLayer(){let{data:t,getHexagon:r,updateTriggers:i}=this.props,s=this.getSubLayerClass(\"hexagon-cell\",af),n=this._getForwardProps();return n.updateTriggers.getPosition=i.getHexagon,new s(n,this.getSubLayerProps({id:\"hexagon-cell\",flatShading:!0,updateTriggers:n.updateTriggers}),{data:t,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:P_t.bind(null,r)})}};G(Op,\"defaultProps\",L_t);G(Op,\"layerName\",\"H3HexagonLayer\");G(Op,\"_checkH3Lib\",()=>{});var{data:Vse,getHexagon:jse,...k_t}=Op.defaultProps,R_t={_validate:!0},Gse={...k_t,...R_t};var gQ=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function _Q(e,t=!1,r=Float32Array){let i;if(Number.isFinite(e[0]))i=new r(e);else{i=new r(e.length*4);let s=0;for(let n=0;nc[0]),r=e.map(c=>c[1]),i=Math.min.apply(null,t),s=Math.max.apply(null,t),n=Math.min.apply(null,r),o=Math.max.apply(null,r);return[i,n,s,o]}function bQ(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}var vQ=new Float32Array(12);function zB(e,t=2){let r=0;for(let i of e)for(let s=0;s 0.) {\n maxValue = colorDomain[1];\n minValue = colorDomain[0];\n }\n vIntensityMax = intensity / maxValue;\n vIntensityMin = intensity / minValue;\n}\n`;var EQ=`#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D texture;\nuniform sampler2D colorTexture;\nuniform float aggregationMode;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture2D(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture2D(texture, vTexCoords);\n float weight = weights.r;\n\n if (aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= opacity;\n gl_FragColor =linearColor;\n}\n`;var dx=class extends Tn{getShaders(){return{vs:MQ,fs:EQ,modules:[oo]}}initializeState({gl:t}){this.getAttributeManager().add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(t)})}_getModel(t){let{vertexCount:r}=this.props;return new Sn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:r})})}draw({uniforms:t}){let{model:r}=this.state,{texture:i,maxTexture:s,colorTexture:n,intensity:o,threshold:c,aggregationMode:f,colorDomain:_}=this.props;r.setUniforms({...t,texture:i,maxTexture:s,colorTexture:n,intensity:o,threshold:c,aggregationMode:f,colorDomain:_}).draw()}};G(dx,\"layerName\",\"TriangleLayer\");var PQ=`attribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float weights;\nvarying vec4 weightsTexture;\nuniform float radiusPixels;\nuniform float textureWidth;\nuniform vec4 commonBounds;\nuniform float weightsScale;\nvoid main()\n{\n weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n}\n`;var IQ=`varying vec4 weightsTexture;\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n gl_FragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var CQ=`attribute vec4 inTexture;\nvarying vec4 outTexture;\n\nvoid main()\n{\noutTexture = inTexture;\ngl_Position = vec4(0, 0, 0, 1.);\ngl_PointSize = 1.0;\n}\n`;var LQ=`varying vec4 outTexture;\nvoid main() {\n gl_FragColor = outTexture;\n gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n`;var O_t=2,NB={mipmaps:!1,parameters:{10240:9729,10241:9729,10242:33071,10243:33071},dataFormat:6408},kQ=[0,0],B_t={SUM:0,MEAN:1},F_t={getPosition:{type:\"accessor\",value:e=>e.position},getWeight:{type:\"accessor\",value:1},intensity:{type:\"number\",min:0,value:1},radiusPixels:{type:\"number\",min:1,max:100,value:50},colorRange:gQ,threshold:{type:\"number\",min:0,max:1,value:.05},colorDomain:{type:\"array\",value:null,optional:!0},aggregation:\"SUM\",weightsTextureSize:{type:\"number\",min:128,max:2048,value:2048},debounceTimeout:{type:\"number\",min:0,max:1e3,value:500}},z_t=[Pi.BLEND_EQUATION_MINMAX,Pi.TEXTURE_FLOAT],N_t=[Pi.COLOR_ATTACHMENT_RGBA32F,Pi.FLOAT_BLEND],U_t={data:{props:[\"radiusPixels\"]}},Bp=class extends fx{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){let{gl:t}=this.context;if(!Dh(t,z_t)){this.setState({supported:!1}),nr.error(\"HeatmapLayer: \".concat(this.id,\" is not supported on this browser\"))();return}super.initializeAggregationLayer(U_t),this.setState({supported:!0,colorDomain:kQ}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState(t){this.state.supported&&(super.updateState(t),this._updateHeatmapState(t))}_updateHeatmapState(t){let{props:r,oldProps:i}=t,s=this._getChangeFlags(t);(s.dataChanged||s.viewportChanged)&&(s.boundsChanged=this._updateBounds(s.dataChanged),this._updateTextureRenderingBounds()),s.dataChanged||s.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):s.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(t),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:t.context.viewport.zoom})}renderLayers(){if(!this.state.supported)return[];let{weightsTexture:t,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:s,colorTexture:n,colorDomain:o}=this.state,{updateTriggers:c,intensity:f,threshold:_,aggregation:w}=this.props,C=this.getSubLayerClass(\"triangle\",dx);return new C(this.getSubLayerProps({id:\"triangle-layer\",updateTriggers:c}),{coordinateSystem:Yr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:s,colorTexture:n,aggregationMode:B_t[w]||0,texture:t,intensity:f,threshold:_,colorDomain:o})}finalizeState(t){super.finalizeState(t);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:s,maxWeightsTexture:n,triPositionBuffer:o,triTexCoordBuffer:c,colorTexture:f,updateTimer:_}=this.state;r?.delete(),i?.delete(),s?.delete(),n?.delete(),o?.delete(),c?.delete(),f?.delete(),_&&clearTimeout(_)}_getAttributeManager(){return new Yf(this.context.gl,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(t){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(t,{compareAll:!0,dimension:i.data}),r.viewportChanged=t.changeFlags.viewportChanged;let{zoom:s}=this.state;return(!t.context.viewport||t.context.viewport.zoom!==s)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{gl:t}=this.context,{textureSize:r,format:i,type:s}=this.state;this.setState({weightsTexture:new pi(t,{width:r,height:r,format:i,type:s,...NB}),maxWeightsTexture:new pi(t,{format:i,type:s,...NB})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:5130,accessor:\"getPosition\"},weights:{size:1,accessor:\"getWeight\"}}),this.setState({positionAttributeName:\"positions\"})}_setupTextureParams(){let{gl:t}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,fy(t,3379)),s=Dh(t,N_t),{format:n,type:o}=TQ({gl:t,floatTargetSupport:s}),c=s?1:1/255;this.setState({textureSize:i,format:n,type:o,weightsScale:c}),s||nr.warn(\"HeatmapLayer: \".concat(this.id,\" rendering to float texture not supported, fallingback to low precession format\"))()}getShaders(t){return super.getShaders(t===\"max-weights-transform\"?{vs:CQ,_fs:LQ}:{vs:PQ,_fs:IQ})}_createWeightsTransform(t={}){var r;let{gl:i}=this.context,{weightsTransform:s}=this.state,{weightsTexture:n}=this.state;(r=s)===null||r===void 0||r.delete(),s=new ec(i,{id:\"\".concat(this.id,\"-weights-transform\"),elementCount:1,_targetTexture:n,_targetTextureVarying:\"weightsTexture\",...t}),this.setState({weightsTransform:s})}_setupResources(){let{gl:t}=this.context;this._createTextures();let{textureSize:r,weightsTexture:i,maxWeightsTexture:s}=this.state,n=this.getShaders(\"weights-transform\");this._createWeightsTransform(n);let o=this.getShaders(\"max-weights-transform\"),c=new ec(t,{id:\"\".concat(this.id,\"-max-weights-transform\"),_sourceTextures:{inTexture:i},_targetTexture:s,_targetTextureVarying:\"outTexture\",...o,elementCount:r*r});this.setState({weightsTexture:i,maxWeightsTexture:s,maxWeightTransform:c,zoom:null,triPositionBuffer:new Fr(t,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new Fr(t,{byteLength:48,accessor:{size:2}})})}updateShaders(t){this._createWeightsTransform(t)}_updateMaxWeightValue(){let{maxWeightTransform:t}=this.state;t.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}_updateBounds(t=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(c=>c.map(Math.fround)),s=xQ(i),n={visibleWorldBounds:s,viewportCorners:i},o=!1;if(t||!this.state.worldBounds||!bQ(this.state.worldBounds,s)){let c=this._worldToCommonBounds(s),f=this._commonToWorldBounds(c);this.props.coordinateSystem===Yr.LNGLAT&&(f[1]=Math.max(f[1],-85.051129),f[3]=Math.min(f[3],85.051129),f[0]=Math.max(f[0],-360),f[2]=Math.min(f[2],360));let _=this._worldToCommonBounds(f);n.worldBounds=f,n.normalizedCommonBounds=_,o=!0}return this.setState(n),o}_updateTextureRenderingBounds(){let{triPositionBuffer:t,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:s}=this.state,{viewport:n}=this.context;t.subData(zB(s,3));let o=s.map(c=>SQ(n.projectPosition(c),i));r.subData(zB(o,2))}_updateColorTexture(t){let{colorRange:r}=t.props,{colorTexture:i}=this.state,s=_Q(r,!1,Uint8Array);i?i.setImageData({data:s,width:r.length}):i=new pi(this.context.gl,{data:s,width:r.length,height:1,...NB}),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:t,colorDomain:r,aggregation:i}=this.props,{weightsTransform:s,worldBounds:n,textureSize:o,weightsTexture:c,weightsScale:f}=this.state;this.state.isWeightMapDirty=!1;let _=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i===\"SUM\"){let{viewport:C}=this.context,R=C.distanceScales.metersPerUnit[2]*(_[2]-_[0])/o;this.state.colorDomain=r.map(N=>N*R*f)}else this.state.colorDomain=r||kQ;let w={radiusPixels:t,commonBounds:_,textureWidth:o,weightsScale:f};s.update({elementCount:this.getNumInstances()}),bn(this.context.gl,{clearColor:[0,0,0,0]},()=>{s.run({uniforms:w,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:this.getAttributes(),moduleSettings:this.getModuleSettings()})}),this._updateMaxWeightValue(),c.setParameters({10240:9729,10241:9729})}_debouncedUpdateWeightmap(t=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;t?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(t,r={}){let{useLayerCoordinateSystem:i=!1}=r,[s,n,o,c]=t,{viewport:f}=this.context,{textureSize:_}=this.state,{coordinateSystem:w}=this.props,C=i&&(w===Yr.LNGLAT_OFFSETS||w===Yr.METER_OFFSETS),R=C?f.projectPosition(this.props.coordinateOrigin):[0,0],N=_*O_t/f.scale,j,Y;return i&&!C?(j=this.projectPosition([s,n,0]),Y=this.projectPosition([o,c,0])):(j=f.projectPosition([s,n,0]),Y=f.projectPosition([o,c,0])),wQ([j[0]-R[0],j[1]-R[1],Y[0]-R[0],Y[1]-R[1]],N,N)}_commonToWorldBounds(t){let[r,i,s,n]=t,{viewport:o}=this.context,c=o.unprojectPosition([r,i]),f=o.unprojectPosition([s,n]);return c.slice(0,2).concat(f.slice(0,2))}};G(Bp,\"layerName\",\"HeatmapLayer\");G(Bp,\"defaultProps\",F_t);var{data:koe,getPosition:Roe,...V_t}=Bp.defaultProps,RQ={_validate:!0},j_t={...V_t,...RQ},gS=class extends tn{static defaultProps=j_t;static layerName=\"GeoArrowHeatmapLayer\";renderLayers(){let{data:t}=this.props,r=Ro(t,Ks.POINT);if(r!==null)return this._renderLayersPoint(r);let i=this.props.getPosition;if(i!==void 0&&sn.isPointVector(i))return this._renderLayersPoint(i);throw new Error(\"getPosition not GeoArrow point\")}_renderLayersPoint(t){let{data:r}=this.props;this.props._validate&&(br(sn.isPointVector(t)),Oo(this.props,r));let[i,s]=Do(this.props,[\"getPosition\"]),n=ra(r.data),o=[];for(let c=0;cr.text()),earcutWorkerPool:null}}async initEarcutPool(){if(this.state.earcutWorkerPool)return this.state.earcutWorkerPool;let t=await this.state.earcutWorkerRequest;if(!t)return null;let r=W$(()=>j$(G$.fromText(t)),8);return this.state.earcutWorkerPool=r,this.state.earcutWorkerPool}async finalizeState(t){await this.state?.earcutWorkerPool?.terminate(),console.log(\"terminated\")}async updateData(){let{data:t}=this.props,r=await this._updateEarcut(t),i=ra(t.data);this.setState({table:this.props.data,triangles:r,tableOffsets:i})}async _updateEarcut(t){let r=Ro(t,Ks.POLYGON);if(r!==null)return this._earcutPolygonVector(r);let i=Ro(t,Ks.MULTIPOLYGON);if(i!==null)return this._earcutMultiPolygonVector(i);let s=this.props.getPolygon;if(s!==void 0&&sn.isPolygonVector(s))return this._earcutPolygonVector(s);if(s!==void 0&&sn.isMultiPolygonVector(s))return this._earcutMultiPolygonVector(s);throw new Error(\"geometryColumn not Polygon or MultiPolygon\")}async _earcutPolygonVector(t){let r=await this.initEarcutPool();if(!r)return this._earcutPolygonVectorMainThread(t);let i=new Array(t.data.length);console.time(\"earcut\");for(let s=0;s{let _=await f(A6(o,c));i[s]=_})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{let w=await _(A6(c,f));i[s]=w})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutMultiPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{this.table=w2(this.model.get(t))};this.model.on(`change:${t}`,r),this.callbacks.set(`change:${t}`,r)}},BI=class extends Np{static layerType=\"arc\";greatCircle;numSegments;widthUnits;widthScale;widthMinPixels;widthMaxPixels;getSourcePosition;getTargetPosition;getSourceColor;getTargetColor;getWidth;getHeight;getTilt;constructor(t,r){super(t,r),this.initRegularAttribute(\"great_circle\",\"greatCircle\"),this.initRegularAttribute(\"num_segments\",\"numSegments\"),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initVectorizedAccessor(\"get_source_position\",\"getSourcePosition\"),this.initVectorizedAccessor(\"get_target_position\",\"getTargetPosition\"),this.initVectorizedAccessor(\"get_source_color\",\"getSourceColor\"),this.initVectorizedAccessor(\"get_target_color\",\"getTargetColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\"),this.initVectorizedAccessor(\"get_height\",\"getHeight\"),this.initVectorizedAccessor(\"get_tilt\",\"getTilt\")}layerProps(){return{data:this.table,getSourcePosition:this.getSourcePosition,getTargetPosition:this.getTargetPosition,...ce(this.greatCircle)&&{greatCircle:this.greatCircle},...ce(this.numSegments)&&{numSegments:this.numSegments},...ce(this.widthUnits)&&{widthUnits:this.widthUnits},...ce(this.widthScale)&&{widthScale:this.widthScale},...ce(this.widthMinPixels)&&{widthMinPixels:this.widthMinPixels},...ce(this.widthMaxPixels)&&{widthMaxPixels:this.widthMaxPixels},...ce(this.getSourceColor)&&{getSourceColor:this.getSourceColor},...ce(this.getTargetColor)&&{getTargetColor:this.getTargetColor},...ce(this.getWidth)&&{getWidth:this.getWidth},...ce(this.getHeight)&&{getHeight:this.getHeight},...ce(this.getTilt)&&{getTilt:this.getTilt}}}render(){return new uS({...this.baseLayerProps(),...this.layerProps()})}},FI=class extends Lg{static layerType=\"bitmap\";image;bounds;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"image\",\"image\"),this.initRegularAttribute(\"bounds\",\"bounds\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}layerProps(){return{...ce(this.image)&&{image:this.image},...ce(this.bounds)&&{bounds:this.bounds},...ce(this.desaturate)&&{desaturate:this.desaturate},...ce(this.transparentColor)&&{transparentColor:this.transparentColor},...ce(this.tintColor)&&{tintColor:this.tintColor}}}render(){return new wp({...this.baseLayerProps(),...this.layerProps(),data:void 0,pickable:!1})}},zI=class extends Lg{static layerType=\"bitmap-tile\";data;tileSize;zoomOffset;maxZoom;minZoom;extent;maxCacheSize;maxCacheByteSize;refinementStrategy;maxRequests;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"data\",\"data\"),this.initRegularAttribute(\"tile_size\",\"tileSize\"),this.initRegularAttribute(\"zoom_offset\",\"zoomOffset\"),this.initRegularAttribute(\"max_zoom\",\"maxZoom\"),this.initRegularAttribute(\"min_zoom\",\"minZoom\"),this.initRegularAttribute(\"extent\",\"extent\"),this.initRegularAttribute(\"max_cache_size\",\"maxCacheSize\"),this.initRegularAttribute(\"max_cache_byte_size\",\"maxCacheByteSize\"),this.initRegularAttribute(\"refinement_strategy\",\"refinementStrategy\"),this.initRegularAttribute(\"max_requests\",\"maxRequests\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}bitmapLayerProps(){return{...ce(this.desaturate)&&{desaturate:this.desaturate},...ce(this.transparentColor)&&{transparentColor:this.transparentColor},...ce(this.tintColor)&&{tintColor:this.tintColor}}}layerProps(){return{data:this.data,...ce(this.tileSize)&&{tileSize:this.tileSize},...ce(this.zoomOffset)&&{zoomOffset:this.zoomOffset},...ce(this.maxZoom)&&{maxZoom:this.maxZoom},...ce(this.minZoom)&&{minZoom:this.minZoom},...ce(this.extent)&&{extent:this.extent},...ce(this.maxCacheSize)&&{maxCacheSize:this.maxCacheSize},...ce(this.maxCacheByteSize)&&{maxCacheByteSize:this.maxCacheByteSize},...ce(this.refinementStrategy)&&{refinementStrategy:this.refinementStrategy},...ce(this.maxRequests)&&{maxRequests:this.maxRequests}}}render(){return new Mm({...this.baseLayerProps(),...this.layerProps(),renderSubLayers:t=>{let[r,i]=t.tile.boundingBox;return new wp(t,{...this.bitmapLayerProps(),data:void 0,image:t.data,bounds:[r[0],r[1],i[0],i[1]]})}})}},NI=class extends Np{static layerType=\"column\";diskResolution;radius;angle;vertices;offset;coverage;elevationScale;filled;stroked;extruded;wireframe;flatShading;radiusUnits;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;material;getPosition;getFillColor;getLineColor;getElevation;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"disk_resolution\",\"diskResolution\"),this.initRegularAttribute(\"radius\",\"radius\"),this.initRegularAttribute(\"angle\",\"angle\"),this.initRegularAttribute(\"vertices\",\"vertices\"),this.initRegularAttribute(\"offset\",\"offset\"),this.initRegularAttribute(\"coverage\",\"coverage\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"flat_shading\",\"flatShading\"),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"material\",\"material\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...ce(this.diskResolution)&&{diskResolution:this.diskResolution},...ce(this.radius)&&{radius:this.radius},...ce(this.angle)&&{angle:this.angle},...ce(this.vertices)&&this.vertices!==void 0&&{vertices:this.vertices},...ce(this.offset)&&{offset:this.offset},...ce(this.coverage)&&{coverage:this.coverage},...ce(this.elevationScale)&&{elevationScale:this.elevationScale},...ce(this.filled)&&{filled:this.filled},...ce(this.stroked)&&{stroked:this.stroked},...ce(this.extruded)&&{extruded:this.extruded},...ce(this.wireframe)&&{wireframe:this.wireframe},...ce(this.flatShading)&&{flatShading:this.flatShading},...ce(this.radiusUnits)&&{radiusUnits:this.radiusUnits},...ce(this.lineWidthUnits)&&{lineWidthUnits:this.lineWidthUnits},...ce(this.lineWidthScale)&&{lineWidthScale:this.lineWidthScale},...ce(this.lineWidthMinPixels)&&{lineWidthMinPixels:this.lineWidthMinPixels},...ce(this.lineWidthMaxPixels)&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...ce(this.material)&&{material:this.material},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor},...ce(this.getElevation)&&{getElevation:this.getElevation},...ce(this.getLineWidth)&&{getLineWidth:this.getLineWidth}}}render(){return new hS({...this.baseLayerProps(),...this.layerProps()})}},UI=class extends Np{static layerType=\"heatmap\";radiusPixels;colorRange;intensity;threshold;colorDomain;aggregation;weightsTextureSize;debounceTimeout;getPosition;getWeight;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_pixels\",\"radiusPixels\"),this.initRegularAttribute(\"color_range\",\"colorRange\"),this.initRegularAttribute(\"intensity\",\"intensity\"),this.initRegularAttribute(\"threshold\",\"threshold\"),this.initRegularAttribute(\"color_domain\",\"colorDomain\"),this.initRegularAttribute(\"aggregation\",\"aggregation\"),this.initRegularAttribute(\"weights_texture_size\",\"weightsTextureSize\"),this.initRegularAttribute(\"debounce_timeout\",\"debounceTimeout\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_weight\",\"getWeight\")}layerProps(){return{data:this.table,...ce(this.radiusPixels)&&{radiusPixels:this.radiusPixels},...ce(this.colorRange)&&{colorRange:this.colorRange},...ce(this.intensity)&&{intensity:this.intensity},...ce(this.threshold)&&{threshold:this.threshold},...ce(this.colorDomain)&&{colorDomain:this.colorDomain},...ce(this.aggregation)&&{aggregation:this.aggregation},...ce(this.weightsTextureSize)&&{weightsTextureSize:this.weightsTextureSize},...ce(this.debounceTimeout)&&{debounceTimeout:this.debounceTimeout},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getWeight)&&{getWeight:this.getWeight}}}render(){return new gS({...this.baseLayerProps(),...this.layerProps()})}},DS=class extends Np{static layerType=\"path\";widthUnits;widthScale;widthMinPixels;widthMaxPixels;jointRounded;capRounded;miterLimit;billboard;getColor;getWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initRegularAttribute(\"joint_rounded\",\"jointRounded\"),this.initRegularAttribute(\"cap_rounded\",\"capRounded\"),this.initRegularAttribute(\"miter_limit\",\"miterLimit\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\")}layerProps(){return{data:this.table,...ce(this.widthUnits)&&{widthUnits:this.widthUnits},...ce(this.widthScale)&&{widthScale:this.widthScale},...ce(this.widthMinPixels)&&{widthMinPixels:this.widthMinPixels},...ce(this.widthMaxPixels)&&{widthMaxPixels:this.widthMaxPixels},...ce(this.jointRounded)&&{jointRounded:this.jointRounded},...ce(this.capRounded)&&{capRounded:this.capRounded},...ce(this.miterLimit)&&{miterLimit:this.miterLimit},...ce(this.billboard)&&{billboard:this.billboard},...ce(this.getColor)&&{getColor:this.getColor},...ce(this.getWidth)&&{getWidth:this.getWidth}}}render(){return new px({...this.baseLayerProps(),...this.layerProps()})}},OS=class extends Np{static layerType=\"scatterplot\";radiusUnits;radiusScale;radiusMinPixels;radiusMaxPixels;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;stroked;filled;billboard;antialiasing;getRadius;getFillColor;getLineColor;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"radius_scale\",\"radiusScale\"),this.initRegularAttribute(\"radius_min_pixels\",\"radiusMinPixels\"),this.initRegularAttribute(\"radius_max_pixels\",\"radiusMaxPixels\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"antialiasing\",\"antialiasing\"),this.initVectorizedAccessor(\"get_radius\",\"getRadius\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...ce(this.radiusUnits)&&{radiusUnits:this.radiusUnits},...ce(this.radiusScale)&&{radiusScale:this.radiusScale},...ce(this.radiusMinPixels)&&{radiusMinPixels:this.radiusMinPixels},...ce(this.radiusMaxPixels)&&{radiusMaxPixels:this.radiusMaxPixels},...ce(this.lineWidthUnits)&&{lineWidthUnits:this.lineWidthUnits},...ce(this.lineWidthScale)&&{lineWidthScale:this.lineWidthScale},...ce(this.lineWidthMinPixels)&&{lineWidthMinPixels:this.lineWidthMinPixels},...ce(this.lineWidthMaxPixels)&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...ce(this.stroked)&&{stroked:this.stroked},...ce(this.filled)&&{filled:this.filled},...ce(this.billboard)&&{billboard:this.billboard},...ce(this.antialiasing)&&{antialiasing:this.antialiasing},...ce(this.getRadius)&&{getRadius:this.getRadius},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor},...ce(this.getLineWidth)&&{getLineWidth:this.getLineWidth}}}render(){return new kS({...this.baseLayerProps(),...this.layerProps()})}},BS=class extends Np{static layerType=\"solid-polygon\";filled;extruded;wireframe;elevationScale;getElevation;getFillColor;getLineColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\")}layerProps(){return{data:this.table,...ce(this.filled)&&{filled:this.filled},...ce(this.extruded)&&{extruded:this.extruded},...ce(this.wireframe)&&{wireframe:this.wireframe},...ce(this.elevationScale)&&{elevationScale:this.elevationScale},...ce(this.getElevation)&&{getElevation:this.getElevation},...ce(this.getFillColor)&&{getFillColor:this.getFillColor},...ce(this.getLineColor)&&{getLineColor:this.getLineColor}}}render(){return new Tx({...this.baseLayerProps(),...this.layerProps()})}},VI=class extends Np{static layerType=\"text\";billboard;sizeScale;sizeUnits;sizeMinPixels;sizeMaxPixels;getBackgroundColor;getBorderColor;getBorderWidth;backgroundPadding;characterSet;fontFamily;fontWeight;lineHeight;outlineWidth;outlineColor;fontSettings;wordBreak;maxWidth;getText;getPosition;getColor;getSize;getAngle;getTextAnchor;getAlignmentBaseline;getPixelOffset;constructor(t,r){super(t,r),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"size_scale\",\"sizeScale\"),this.initRegularAttribute(\"size_units\",\"sizeUnits\"),this.initRegularAttribute(\"size_min_pixels\",\"sizeMinPixels\"),this.initRegularAttribute(\"size_max_pixels\",\"sizeMaxPixels\"),this.initRegularAttribute(\"background_padding\",\"backgroundPadding\"),this.initRegularAttribute(\"character_set\",\"characterSet\"),this.initRegularAttribute(\"font_family\",\"fontFamily\"),this.initRegularAttribute(\"font_weight\",\"fontWeight\"),this.initRegularAttribute(\"line_height\",\"lineHeight\"),this.initRegularAttribute(\"outline_width\",\"outlineWidth\"),this.initRegularAttribute(\"outline_color\",\"outlineColor\"),this.initRegularAttribute(\"font_settings\",\"fontSettings\"),this.initRegularAttribute(\"word_break\",\"wordBreak\"),this.initRegularAttribute(\"max_width\",\"maxWidth\"),this.initVectorizedAccessor(\"get_background_color\",\"getBackgroundColor\"),this.initVectorizedAccessor(\"get_border_color\",\"getBorderColor\"),this.initVectorizedAccessor(\"get_border_width\",\"getBorderWidth\"),this.initVectorizedAccessor(\"get_text\",\"getText\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_size\",\"getSize\"),this.initVectorizedAccessor(\"get_angle\",\"getAngle\"),this.initVectorizedAccessor(\"get_text_anchor\",\"getTextAnchor\"),this.initVectorizedAccessor(\"get_alignment_baseline\",\"getAlignmentBaseline\"),this.initVectorizedAccessor(\"get_pixel_offset\",\"getPixelOffset\")}layerProps(){return{data:this.table,getText:this.getText,...ce(this.billboard)&&{billboard:this.billboard},...ce(this.sizeScale)&&{sizeScale:this.sizeScale},...ce(this.sizeUnits)&&{sizeUnits:this.sizeUnits},...ce(this.sizeMinPixels)&&{sizeMinPixels:this.sizeMinPixels},...ce(this.sizeMaxPixels)&&{sizeMaxPixels:this.sizeMaxPixels},...ce(this.backgroundPadding)&&{backgroundPadding:this.backgroundPadding},...ce(this.characterSet)&&{characterSet:this.characterSet},...ce(this.fontFamily)&&{fontFamily:this.fontFamily},...ce(this.fontWeight)&&{fontWeight:this.fontWeight},...ce(this.lineHeight)&&{lineHeight:this.lineHeight},...ce(this.outlineWidth)&&{outlineWidth:this.outlineWidth},...ce(this.outlineColor)&&{outlineColor:this.outlineColor},...ce(this.fontSettings)&&{fontSettings:this.fontSettings},...ce(this.wordBreak)&&{wordBreak:this.wordBreak},...ce(this.maxWidth)&&{maxWidth:this.maxWidth},...ce(this.getBackgroundColor)&&{getBackgroundColor:this.getBackgroundColor},...ce(this.getBorderColor)&&{getBorderColor:this.getBorderColor},...ce(this.getBorderWidth)&&{getBorderWidth:this.getBorderWidth},...ce(this.getPosition)&&{getPosition:this.getPosition},...ce(this.getColor)&&{getColor:this.getColor},...ce(this.getSize)&&{getSize:this.getSize},...ce(this.getAngle)&&{getAngle:this.getAngle},...ce(this.getTextAnchor)&&{getTextAnchor:this.getTextAnchor},...ce(this.getAlignmentBaseline)&&{getAlignmentBaseline:this.getAlignmentBaseline},...ce(this.getPixelOffset)&&{getPixelOffset:this.getPixelOffset}}}render(){return new RS({...this.baseLayerProps(),...this.layerProps()})}};async function _6(e,t){let r=e.get(\"_layer_type\"),i;switch(r){case BI.layerType:i=new BI(e,t);break;case FI.layerType:i=new FI(e,t);break;case zI.layerType:i=new zI(e,t);break;case NI.layerType:i=new NI(e,t);break;case UI.layerType:i=new UI(e,t);break;case DS.layerType:i=new DS(e,t);break;case OS.layerType:i=new OS(e,t);break;case BS.layerType:i=new BS(e,t);break;case VI.layerType:i=new VI(e,t);break;default:throw new Error(`no layer supported for ${r}`)}return await i.loadSubModels(),i}var jI=Symbol.for(\"rowIndex\");function Fxt(e){return`\n \n ${Object.keys(e).map(t=>{let r=e[t];return`\n \n \n `}).join(\"\")}\n \n
${t}${r}
`}function q$({object:e}){if(e){if(e[jI]===null||e[jI]===void 0||e[jI]&&e[jI]<0)return null;let t=e.toJSON();return!t||(delete t.geometry,Object.keys(t).length===0)?null:{className:\"lonboard-tooltip\",html:Fxt(t),style:{backgroundColor:\"#fff\",boxShadow:\"0 0 15px rgba(0, 0, 0, 0.1)\",color:\"#000\",padding:\"6px\"}}}return null}var GI,zxt=new Uint8Array(16);function y6(){if(!GI&&(GI=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!GI))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return GI(zxt)}var Ma=[];for(let e=0;e<256;++e)Ma.push((e+256).toString(16).slice(1));function Z$(e,t=0){return Ma[e[t+0]]+Ma[e[t+1]]+Ma[e[t+2]]+Ma[e[t+3]]+\"-\"+Ma[e[t+4]]+Ma[e[t+5]]+\"-\"+Ma[e[t+6]]+Ma[e[t+7]]+\"-\"+Ma[e[t+8]]+Ma[e[t+9]]+\"-\"+Ma[e[t+10]]+Ma[e[t+11]]+Ma[e[t+12]]+Ma[e[t+13]]+Ma[e[t+14]]+Ma[e[t+15]]}var Nxt=typeof crypto<\"u\"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),v6={randomUUID:Nxt};function Uxt(e,t,r){if(v6.randomUUID&&!t&&!e)return v6.randomUUID();e=e||{};let i=e.random||(e.rng||y6)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let s=0;s<16;++s)t[r+s]=i[s];return t}return Z$(i)}var x6=Uxt;await XW();var Vxt={latitude:10,longitude:0,zoom:.5,bearing:0,pitch:0},jxt=\"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";async function Gxt(e,t,r,i){let s={},n=()=>i(new Date);for(let o=0;o{(async()=>{let j=await d3(f.widget_manager,_),Y=await Gxt(j,_,o,C);c(Y)})().catch(console.error)},[_]);let R=[];for(let N of Object.values(o))R.push(N.render());return(0,$g.useEffect)(()=>{if(r)return;let j=document.getElementById(`map-${n}`)?.parentElement;if(j){let Y=window.getComputedStyle(j);(!Y.height||Y.height===\"0px\")&&(j.style.height=\"100%\",j.style.minHeight=\"500px\")}},[]),WI.createElement(\"div\",{id:`map-${n}`,style:{height:r||\"100%\"}},WI.createElement(SD,{initialViewState:[\"longitude\",\"latitude\",\"zoom\"].every(N=>Object.keys(e).includes(N))?e:Vxt,controller:!0,layers:R,getTooltip:i&&q$,pickingRadius:s},WI.createElement(j8,{mapStyle:t||jxt})))}var Hxt={render:E8(Wxt)},Bce=Hxt;export{Bce as default};\n/*! Bundled license information:\n\nreact/cjs/react.production.min.js:\n (**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.min.js:\n (**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.min.js:\n (**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nhammerjs/hammer.js:\n (*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license *)\n*/\n", + "_height": null, + "_initial_view_state": { + "latitude": 30.27504616188673, + "longitude": 21.17458729027878, + "zoom": 1 + }, + "_model_module": "anywidget", + "_model_module_version": "0.9.0", + "_model_name": "AnyModel", + "_view_module": "anywidget", + "_view_module_version": "0.9.0", + "_view_name": "AnyView", + "basemap_style": "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json", + "layers": [ + "IPY_MODEL_86c77079fb0f4064a75941af529d5f32" + ], + "layout": "IPY_MODEL_e113a500f0c943729217631ae3818597", + "picking_radius": 5, + "show_tooltip": true + } + }, + "467773a857a146059054479993094fb8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "4b3785d8fed74ec4a79f70ed1fc6eb8a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "521cf5a4fd44411b94dc956469ea78b8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "53cb3adb91d34c8495403e08855a9be8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "551a25db442c44539a32d7bcd284b516": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "5a3584e2e6a24e8bb6e253ffa9116dad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "WidgetModel", + "state": { + "_extension_type": "data-filter", + "_view_module": null, + "_view_module_version": "", + "filter_size": 3 + } + }, + "5c3c9baa0765445f984012e280fbf820": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "63c2d32b7e7e47cf92d3b5e5753e7aea": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Download: ", + "layout": "IPY_MODEL_86feeed1f57c4796a38fc66d738964bc", + "max": 70000, + "step": 0.1, + "style": "IPY_MODEL_521cf5a4fd44411b94dc956469ea78b8", + "value": [ + 28864.600000000006, + 55395.20000000001 + ] + } + }, + "6bd6d9aef0ad4339a019d54b2715a9af": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "DirectionalLinkModel", + "state": { + "source": [ + "IPY_MODEL_a2b07fb3fc024cccbac791f1f72818f8", + "value" + ], + "target": [ + "IPY_MODEL_86c77079fb0f4064a75941af529d5f32", + "filter_range" + ] + } + }, + "6e7628bed4fe40418a31e8e33f3a40e5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "6f870f37842747f0a3cfbfe0c1e655f1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "746b54189dcc4542bd253b6d37af5e76": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "74fbe31d154746be9f5f586e7308355d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "DirectionalLinkModel", + "state": { + "source": [ + "IPY_MODEL_0bdf00bb5d3c4631b940a45d32c4628a", + "value" + ], + "target": [ + "IPY_MODEL_fdfd2c5dc30f43a3b51962546e8e0850", + "filter_range" + ] + } + }, + "79ebcd52df0a4581896592eabf9db63a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "7c631432318e4951b642534fe5570a73": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Latency: ", + "layout": "IPY_MODEL_24158c5e180e45e7aa19315d9ca327da", + "max": 500, + "style": "IPY_MODEL_248d002a8e4a4d30b86212e228a00f85", + "value": [ + 0, + 100 + ] + } + }, + "7dbef9b0051c49b2a0e3be7c1df153ca": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "8652590182104f168e70b7d656994d60": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "86c77079fb0f4064a75941af529d5f32": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "WidgetModel", + "state": { + "_layer_type": "scatterplot", + "_view_module": null, + "_view_module_version": "", + "antialiasing": null, + "auto_highlight": false, + "billboard": null, + "extensions": [ + "IPY_MODEL_5a3584e2e6a24e8bb6e253ffa9116dad" + ], + "filled": null, + "filter_enabled": true, + "filter_range": [ + [ + 20779.800000000003, + 64836.7 + ], + [ + 21697, + 44171 + ], + [ + 0, + 285 + ] + ], + "filter_soft_range": null, + "filter_transform_color": true, + "filter_transform_size": true, + "get_fill_color": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "get_filter_value": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "get_line_color": null, + "get_line_width": null, + "get_radius": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "line_width_max_pixels": null, + "line_width_min_pixels": null, + "line_width_scale": null, + "line_width_units": null, + "opacity": 1, + "pickable": true, + "radius_max_pixels": null, + "radius_min_pixels": 0.1, + "radius_scale": null, + "radius_units": "meters", + "selected_index": null, + "stroked": null, + "table": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "visible": true + } + }, + "86feeed1f57c4796a38fc66d738964bc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "94a5378be89d46c7beda59acaf03ad4f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "9808d05ed63b4b40ba9f2ca7a03ea368": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Download: ", + "layout": "IPY_MODEL_202d717a8515400187c9c310b7bd7652", + "max": 70000, + "step": 0.1, + "style": "IPY_MODEL_eafa8206bd8249fe844f2f494c6fd623", + "value": [ + 10000, + 50000 + ] + } + }, + "9b3c8bd9fd414eeeb3f317c1940535de": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "a2b07fb3fc024cccbac791f1f72818f8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_c68aee532e71425892772c1b1484edfa", + "IPY_MODEL_e99847233feb4b178d6fa3bee4531596", + "IPY_MODEL_c84271ba4b9f42b8b5029f1bb82ba053" + ], + "layout": "IPY_MODEL_3842b5bedc9a4a2b88c65eaf1dcb052f", + "value": [ + [ + 20779.800000000003, + 64836.7 + ], + [ + 21697, + 44171 + ], + [ + 0, + 285 + ] + ] + } + }, + "a450f22879a243198e55353c9c5c09d8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "DirectionalLinkModel", + "state": { + "source": [ + "IPY_MODEL_b6f7513aacb54429b9866e790386b8d8", + "value" + ], + "target": [ + "IPY_MODEL_86c77079fb0f4064a75941af529d5f32", + "filter_range" + ] + } + }, + "ab6fb03bc63946ec92fefd9ffa357cf4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "afb2b6de78c64692b0840d2fd2c0480c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "b067bf2c7a2d44e8a2c633a43fd91f50": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_63c2d32b7e7e47cf92d3b5e5753e7aea", + "IPY_MODEL_ede270cd5c4f40b99c10af7a698ed60e", + "IPY_MODEL_7c631432318e4951b642534fe5570a73" + ], + "layout": "IPY_MODEL_94a5378be89d46c7beda59acaf03ad4f", + "value": [ + [ + 28864.600000000006, + 55395.20000000001 + ], + [ + 538, + 41724.00000000001 + ], + [ + 0, + 100 + ] + ] + } + }, + "b6f7513aacb54429b9866e790386b8d8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_09cb5c9f1fce42ada2fe6edb2468ab90", + "IPY_MODEL_ced43cc7f7f64c0c9a0ed59a671288ca", + "IPY_MODEL_ca302ab4ad854f8c920261c90acbaf95" + ], + "layout": "IPY_MODEL_5c3c9baa0765445f984012e280fbf820", + "value": [ + [ + 10000, + 50000 + ], + [ + 1000, + 10000 + ], + [ + 0, + 100 + ] + ] + } + }, + "c400761928e04b0e8090a1b1fea2774c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "c5ec49b2b8ed4ad48aba32d8b504bda3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "c68aee532e71425892772c1b1484edfa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Download: ", + "layout": "IPY_MODEL_79ebcd52df0a4581896592eabf9db63a", + "max": 70000, + "step": 0.1, + "style": "IPY_MODEL_551a25db442c44539a32d7bcd284b516", + "value": [ + 20779.800000000003, + 64836.7 + ] + } + }, + "c84271ba4b9f42b8b5029f1bb82ba053": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Latency: ", + "layout": "IPY_MODEL_ce48acce67ef4041a6c5a9d3415bc861", + "max": 500, + "style": "IPY_MODEL_4b3785d8fed74ec4a79f70ed1fc6eb8a", + "value": [ + 0, + 285 + ] + } + }, + "ca302ab4ad854f8c920261c90acbaf95": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Latency: ", + "layout": "IPY_MODEL_c400761928e04b0e8090a1b1fea2774c", + "max": 500, + "style": "IPY_MODEL_04218391fad145588dafd221d7165505", + "value": [ + 0, + 100 + ] + } + }, + "ce48acce67ef4041a6c5a9d3415bc861": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ced43cc7f7f64c0c9a0ed59a671288ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Upload: ", + "layout": "IPY_MODEL_afb2b6de78c64692b0840d2fd2c0480c", + "max": 50000, + "style": "IPY_MODEL_ab6fb03bc63946ec92fefd9ffa357cf4", + "value": [ + 1000, + 10000 + ] + } + }, + "d51b07e818d04c83a8714c0d1e798549": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "e113a500f0c943729217631ae3818597": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "e99847233feb4b178d6fa3bee4531596": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Upload: ", + "layout": "IPY_MODEL_53cb3adb91d34c8495403e08855a9be8", + "max": 50000, + "style": "IPY_MODEL_467773a857a146059054479993094fb8", + "value": [ + 21697, + 44171 + ] + } + }, + "eafa8206bd8249fe844f2f494c6fd623": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "ede270cd5c4f40b99c10af7a698ed60e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Upload: ", + "layout": "IPY_MODEL_9b3c8bd9fd414eeeb3f317c1940535de", + "max": 50000, + "style": "IPY_MODEL_8652590182104f168e70b7d656994d60", + "value": [ + 538, + 41724.00000000001 + ] + } + }, + "f691bbd4d594470c95ba19aa98a622c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatRangeSliderModel", + "state": { + "_model_name": "FloatRangeSliderModel", + "_view_name": "FloatRangeSliderView", + "behavior": "drag-tap", + "description": "Upload: ", + "layout": "IPY_MODEL_7dbef9b0051c49b2a0e3be7c1df153ca", + "max": 50000, + "style": "IPY_MODEL_6e7628bed4fe40418a31e8e33f3a40e5", + "value": [ + 1000, + 10000 + ] + } + }, + "fdfd2c5dc30f43a3b51962546e8e0850": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "WidgetModel", + "state": { + "_layer_type": "scatterplot", + "_view_module": null, + "_view_module_version": "", + "antialiasing": null, + "auto_highlight": false, + "billboard": null, + "extensions": [ + "IPY_MODEL_5a3584e2e6a24e8bb6e253ffa9116dad" + ], + "filled": null, + "filter_enabled": true, + "filter_range": [ + [ + 28864.600000000006, + 55395.20000000001 + ], + [ + 538, + 41724.00000000001 + ], + [ + 0, + 100 + ] + ], + "filter_soft_range": null, + "filter_transform_color": true, + "filter_transform_size": true, + "get_fill_color": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "get_filter_value": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "get_line_color": null, + "get_line_width": null, + "get_radius": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "line_width_max_pixels": null, + "line_width_min_pixels": null, + "line_width_scale": null, + "line_width_units": null, + "opacity": 1, + "pickable": true, + "radius_max_pixels": null, + "radius_min_pixels": 0.1, + "radius_scale": null, + "radius_units": "meters", + "selected_index": null, + "stroked": null, + "table": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "visible": true + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/internet-speeds.ipynb b/examples/internet-speeds.ipynb index cc2a69ff..1ea52124 100644 --- a/examples/internet-speeds.ipynb +++ b/examples/internet-speeds.ipynb @@ -5,7 +5,7 @@ "id": "0f09e1c5", "metadata": {}, "source": [ - "# Speedtest Data from Ookla\n", + "# Speedtest Data (`ScatterplotLayer`)\n", "\n", "This example will use data collected from Ookla's Speed Test application and [shared publicly in the AWS Open Data Registry](https://registry.opendata.aws/speedtest-global-performance/). From the AWS page:\n", "\n", @@ -22,11 +22,13 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "d1678764", "metadata": {}, "outputs": [], "source": [ + "from pathlib import Path\n", + "\n", "import geopandas as gpd\n", "import numpy as np\n", "import pandas as pd\n", @@ -37,17 +39,26 @@ "from lonboard.colormap import apply_continuous_cmap" ] }, + { + "cell_type": "markdown", + "id": "d51ca576", + "metadata": {}, + "source": [ + "## Fetch data\n", + "\n" + ] + }, { "cell_type": "markdown", "id": "c747d8b9-94b9-421a-967a-8350bf72de9a", "metadata": {}, "source": [ - "The URL for a single data file for mobile network speeds in the first quarter of 2019." + "The URL for a single data file for mobile network speeds in the first quarter of 2019:" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "34ac8eae", "metadata": {}, "outputs": [], @@ -60,29 +71,31 @@ "id": "5991ef2c-5db0-4110-b6a1-b33fcbddad0d", "metadata": {}, "source": [ - "We can fetch two columns from this data file directly from AWS. This `pd.read_parquet` command will perform a network request for the data file, so it may take a while on a slow network connection." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "8e7bc021", - "metadata": {}, - "outputs": [], - "source": [ - "# avg_d_kbps is the average download speed for that data point in kilobits per second\n", - "# tile is the WKT string representing a given zoom-16 Web Mercator tile\n", - "columns = [\"avg_d_kbps\", \"tile\"]" + "The data used in this example is relatively large. In the cell below, we cache the downloading and preparation of the dataset so that it's faster to run this notebook the second time.\n", + "\n", + "We fetch two columns — `avg_d_kbps` and `tile` — from this data file directly from AWS. The `pd.read_parquet` command will perform a network request for these columns from the data file, so it may take a while on a slow network connection. `avg_d_kbps` is the average download speed for that data point in kilobits per second. `tile` is the WKT string representing a given zoom-16 Web Mercator tile.\n", + "\n", + "The `tile` column contains _strings_ representing WKT-formatted geometries. We need to parse those strings into geometries. Then for simplicity we'll convert into their centroids." ] }, { "cell_type": "code", "execution_count": 4, - "id": "f0be9f56", + "id": "7c20cb4c-9746-486f-aef7-95dd2dedd6a5", "metadata": {}, "outputs": [], "source": [ - "df = pd.read_parquet(url, columns=columns)" + "local_path = Path(\"internet-speeds.parquet\")\n", + "if local_path.exists():\n", + " gdf = gpd.read_parquet(local_path)\n", + "else:\n", + " columns = [\"avg_d_kbps\", \"tile\"]\n", + " df = pd.read_parquet(url, columns=columns)\n", + "\n", + " tile_geometries = shapely.from_wkt(df[\"tile\"])\n", + " tile_centroids = shapely.centroid(tile_geometries)\n", + " gdf = gpd.GeoDataFrame(df[[\"avg_d_kbps\"]], geometry=tile_centroids)\n", + " gdf.to_parquet(local_path)" ] }, { @@ -121,46 +134,46 @@ " \n", " \n", " avg_d_kbps\n", - " tile\n", + " geometry\n", " \n", " \n", " \n", " \n", " 0\n", " 5983\n", - " POLYGON((-160.021362304688 70.6381267305321, -...\n", + " POINT (-160.01862 70.63722)\n", " \n", " \n", " 1\n", " 3748\n", - " POLYGON((-160.043334960938 70.6344840663086, -...\n", + " POINT (-160.04059 70.63357)\n", " \n", " \n", " 2\n", " 3364\n", - " POLYGON((-160.043334960938 70.6326624870732, -...\n", + " POINT (-160.04059 70.63175)\n", " \n", " \n", " 3\n", " 2381\n", - " POLYGON((-160.037841796875 70.6344840663086, -...\n", + " POINT (-160.03510 70.63357)\n", " \n", " \n", " 4\n", " 3047\n", - " POLYGON((-160.037841796875 70.6326624870732, -...\n", + " POINT (-160.03510 70.63175)\n", " \n", " \n", "\n", "" ], "text/plain": [ - " avg_d_kbps tile\n", - "0 5983 POLYGON((-160.021362304688 70.6381267305321, -...\n", - "1 3748 POLYGON((-160.043334960938 70.6344840663086, -...\n", - "2 3364 POLYGON((-160.043334960938 70.6326624870732, -...\n", - "3 2381 POLYGON((-160.037841796875 70.6344840663086, -...\n", - "4 3047 POLYGON((-160.037841796875 70.6326624870732, -..." + " avg_d_kbps geometry\n", + "0 5983 POINT (-160.01862 70.63722)\n", + "1 3748 POINT (-160.04059 70.63357)\n", + "2 3364 POINT (-160.04059 70.63175)\n", + "3 2381 POINT (-160.03510 70.63357)\n", + "4 3047 POINT (-160.03510 70.63175)" ] }, "execution_count": 5, @@ -169,44 +182,7 @@ } ], "source": [ - "df.head()" - ] - }, - { - "cell_type": "markdown", - "id": "3872dac0-2774-4695-a531-744683f18ee7", - "metadata": {}, - "source": [ - "The `tile` column contains _strings_ representing geometries. We need to parse those strings into geometries. Then for simplicity we'll convert into their centroids." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "93ceca1d", - "metadata": {}, - "outputs": [], - "source": [ - "tile_geometries = shapely.from_wkt(df[\"tile\"])\n", - "tile_centroids = shapely.centroid(tile_geometries)" - ] - }, - { - "cell_type": "markdown", - "id": "808db614-df1f-41a9-8074-a79e2db7e2e3", - "metadata": {}, - "source": [ - "Now we can create a geopandas GeoDataFrame from the download speed and the shapely geometries." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "e67cf569", - "metadata": {}, - "outputs": [], - "source": [ - "gdf = gpd.GeoDataFrame(df[[\"avg_d_kbps\"]], geometry=tile_centroids)" + "gdf.head()" ] }, { @@ -219,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "id": "80326895-70ba-4f4b-a7b3-106b4bbd36d9", "metadata": {}, "outputs": [], @@ -237,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "id": "a34a6a27-0259-4da9-94c4-923466da05fb", "metadata": {}, "outputs": [ @@ -344,7 +320,7 @@ "[807221 rows x 2 columns]" ] }, - "execution_count": 9, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -363,33 +339,33 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "id": "570ab332-3767-4246-8d83-df4625b2ae48", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "931c5d08b8454c23a71ce9832943d4f1", + "model_id": "f6b03302ad634c6d912f972288b35c09", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(layers=[ScatterplotLayer(table=pyarrow.Table\n", - "avg_d_kbps: int64\n", + "avg_d_kbps: uint32\n", "__index_level_0__: int64\n", - "geometry: fixed_si…" + "geometry: fixed_s…" ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "layer = ScatterplotLayer.from_geopandas(gdf)\n", - "map_ = Map(layers=[layer])\n", - "map_" + "m = Map(layer)\n", + "m" ] }, { @@ -402,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "id": "3912b241-577f-4ac3-b78f-2702e89d6010", "metadata": {}, "outputs": [], @@ -428,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "id": "179071b3", "metadata": {}, "outputs": [], @@ -449,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "id": "a8df3963-2bc2-4f89-8a38-20e232a13932", "metadata": {}, "outputs": [ @@ -470,7 +446,7 @@ "Name: avg_d_kbps, Length: 807221, dtype: float64" ] }, - "execution_count": 13, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -489,21 +465,21 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "id": "9d5347e2-84c7-40bc-af45-c8638188709e", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAYAAABsv8+/AAAAE3RFWHRUaXRsZQBCckJHIGNvbG9ybWFwMTXIUAAAABl0RVh0RGVzY3JpcHRpb24AQnJCRyBjb2xvcm1hcLqHWMgAAAAwdEVYdEF1dGhvcgBNYXRwbG90bGliIHYzLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZ7rJ3hAAAAAydEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdjMuNy4zLCBodHRwczovL21hdHBsb3RsaWIub3JnlG9BNwAAAilJREFUeJzt1k1u2zAURlGSQffTxXT/O7GYgSUHejahBPGgwHfOROWPKCYBitv//f0zW2ut99Zaa21cPu//GOPd+/t5/O7949h/39iP8WP+GI/TfO9l3yj79vXn88bL9/riO/Ueva4v7tHLd/rHx/7+6+d4rI/z+uq9sn8s18u5i/PG4tyrexz3bsffr5f3HvP7vnEer/a3Xu6x2N/K+V/7X8+3i++u7jn3v/Ns9+fWxv6s8+f15/lvnvPj7/32fne3Oe/j/XmbWxkf69ti/2/XV9970/q2nZ5bGd+2uZg/9pdzZj1nlv3fO/9p3/zhPco5x88763xZr/NzMb967+n8i/eX56/us1hv+++97b+Hr/GxPi/G/+n7+779fysAIIkAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAn0CyK5V+uT9Ti4AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAYAAABsv8+/AAAAE3RFWHRUaXRsZQBCckJHIGNvbG9ybWFwMTXIUAAAABl0RVh0RGVzY3JpcHRpb24AQnJCRyBjb2xvcm1hcLqHWMgAAAAwdEVYdEF1dGhvcgBNYXRwbG90bGliIHYzLjcuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZ3SZIrgAAAAydEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdjMuNy40LCBodHRwczovL21hdHBsb3RsaWIub3JnWj+9nwAAAilJREFUeJzt1k1u2zAURlGSQffTxXT/O7GYgSUHejahBPGgwHfOROWPKCYBitv//f0zW2ut99Zaa21cPu//GOPd+/t5/O7949h/39iP8WP+GI/TfO9l3yj79vXn88bL9/riO/Ueva4v7tHLd/rHx/7+6+d4rI/z+uq9sn8s18u5i/PG4tyrexz3bsffr5f3HvP7vnEer/a3Xu6x2N/K+V/7X8+3i++u7jn3v/Ns9+fWxv6s8+f15/lvnvPj7/32fne3Oe/j/XmbWxkf69ti/2/XV9970/q2nZ5bGd+2uZg/9pdzZj1nlv3fO/9p3/zhPco5x88763xZr/NzMb967+n8i/eX56/us1hv+++97b+Hr/GxPi/G/+n7+779fysAIIkAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAn0CyK5V+uT9Ti4AAAAASUVORK5CYII=", "text/html": [ - "

BrBG
\"BrBG
under
bad
over
" + "
BrBG
\"BrBG
under
bad
over
" ], "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -522,7 +498,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "id": "5a77f728-9cbe-4372-9bfd-d6dee4b93a01", "metadata": {}, "outputs": [], @@ -550,13 +526,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "id": "579233ef-e077-4c8f-a111-f33d44f30a0d", "metadata": {}, "outputs": [], "source": [ - "# for now, cast to a numpy array until the layer is updated to support pandas series\n", - "layer.get_radius = np.array(normalized_download_speed) * 200\n", + "layer.get_radius = normalized_download_speed * 200\n", "layer.radius_units = \"meters\"\n", "layer.radius_min_pixels = 0.5" ] @@ -587,6 +562,100 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "93bb8eb822cb45a3bd45230e38cb36fd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "WidgetModel", + "state": { + "_layer_type": "scatterplot", + "_view_module": null, + "_view_module_version": "", + "antialiasing": null, + "auto_highlight": false, + "billboard": null, + "extensions": [], + "filled": null, + "get_fill_color": [ + 0, + 0, + 200, + 200 + ], + "get_line_color": null, + "get_line_width": null, + "get_radius": null, + "line_width_max_pixels": null, + "line_width_min_pixels": null, + "line_width_scale": null, + "line_width_units": null, + "opacity": 1, + "pickable": true, + "radius_max_pixels": null, + "radius_min_pixels": null, + "radius_scale": null, + "radius_units": null, + "selected_index": null, + "stroked": null, + "table": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "visible": true + } + }, + "a6b8fd292f24409988b4f6b7715d87bf": { + "model_module": "anywidget", + "model_module_version": "0.9.0", + "model_name": "AnyModel", + "state": { + "_anywidget_id": "lonboard._map.Map", + "_css": ".lonboard-tooltip{font-family:var(--jp-ui-font-family);font-size:var(--jp-ui-font-size1)}.lonboard-tooltip table{border-collapse:collapse}.lonboard-tooltip table tr:nth-child(odd){background-color:#fff}.lonboard-tooltip table tr:nth-child(2n){background-color:#f1f1f1}.lonboard-tooltip td{border:1px solid rgb(204,204,204);padding:5px}.lonboard-tooltip td:first-child{font-weight:450}\n", + "_esm": "var wK=Object.create;var TC=Object.defineProperty;var SK=Object.getOwnPropertyDescriptor;var TK=Object.getOwnPropertyNames;var MK=Object.getPrototypeOf,EK=Object.prototype.hasOwnProperty;var zr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),AA=(e,t)=>{for(var r in t)TC(e,r,{get:t[r],enumerable:!0})},PK=(e,t,r,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of TK(t))!EK.call(e,n)&&n!==r&&TC(e,n,{get:()=>t[n],enumerable:!(i=SK(t,n))||i.enumerable});return e};var xi=(e,t,r)=>(r=e!=null?wK(MK(e)):{},PK(t||!e||!e.__esModule?TC(r,\"default\",{value:e,enumerable:!0}):r,e));var qF=zr(bi=>{\"use strict\";var Vx=Symbol.for(\"react.element\"),IK=Symbol.for(\"react.portal\"),CK=Symbol.for(\"react.fragment\"),LK=Symbol.for(\"react.strict_mode\"),kK=Symbol.for(\"react.profiler\"),RK=Symbol.for(\"react.provider\"),DK=Symbol.for(\"react.context\"),OK=Symbol.for(\"react.forward_ref\"),BK=Symbol.for(\"react.suspense\"),FK=Symbol.for(\"react.memo\"),zK=Symbol.for(\"react.lazy\"),BF=Symbol.iterator;function NK(e){return e===null||typeof e!=\"object\"?null:(e=BF&&e[BF]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var NF={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},UF=Object.assign,VF={};function __(e,t,r){this.props=e,this.context=t,this.refs=VF,this.updater=r||NF}__.prototype.isReactComponent={};__.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};__.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function jF(){}jF.prototype=__.prototype;function EC(e,t,r){this.props=e,this.context=t,this.refs=VF,this.updater=r||NF}var PC=EC.prototype=new jF;PC.constructor=EC;UF(PC,__.prototype);PC.isPureReactComponent=!0;var FF=Array.isArray,GF=Object.prototype.hasOwnProperty,IC={current:null},WF={key:!0,ref:!0,__self:!0,__source:!0};function HF(e,t,r){var i,n={},s=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=\"\"+t.key),t)GF.call(t,i)&&!WF.hasOwnProperty(i)&&(n[i]=t[i]);var c=arguments.length-2;if(c===1)n.children=r;else if(1{\"use strict\";ZF.exports=qF()});var i5=zr(Fn=>{\"use strict\";function DC(e,t){var r=e.length;e.push(t);t:for(;0>>1,n=e[i];if(0>>1;itT(c,r))dtT(_,c)?(e[i]=_,e[d]=r,i=d):(e[i]=c,e[o]=r,i=o);else if(dtT(_,r))e[i]=_,e[d]=r,i=d;else break t}}return t}function tT(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance==\"object\"&&typeof performance.now==\"function\"?(YF=performance,Fn.unstable_now=function(){return YF.now()}):(LC=Date,$F=LC.now(),Fn.unstable_now=function(){return LC.now()-$F});var YF,LC,$F,Of=[],mA=[],WK=1,Mu=null,Ha=3,iT=!1,h0=!1,Gx=!1,KF=typeof setTimeout==\"function\"?setTimeout:null,JF=typeof clearTimeout==\"function\"?clearTimeout:null,QF=typeof setImmediate<\"u\"?setImmediate:null;typeof navigator<\"u\"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function OC(e){for(var t=yh(mA);t!==null;){if(t.callback===null)rT(mA);else if(t.startTime<=e)rT(mA),t.sortIndex=t.expirationTime,DC(Of,t);else break;t=yh(mA)}}function BC(e){if(Gx=!1,OC(e),!h0)if(yh(Of)!==null)h0=!0,zC(FC);else{var t=yh(mA);t!==null&&NC(BC,t.startTime-e)}}function FC(e,t){h0=!1,Gx&&(Gx=!1,JF(Wx),Wx=-1),iT=!0;var r=Ha;try{for(OC(t),Mu=yh(Of);Mu!==null&&(!(Mu.expirationTime>t)||e&&!r5());){var i=Mu.callback;if(typeof i==\"function\"){Mu.callback=null,Ha=Mu.priorityLevel;var n=i(Mu.expirationTime<=t);t=Fn.unstable_now(),typeof n==\"function\"?Mu.callback=n:Mu===yh(Of)&&rT(Of),OC(t)}else rT(Of);Mu=yh(Of)}if(Mu!==null)var s=!0;else{var o=yh(mA);o!==null&&NC(BC,o.startTime-t),s=!1}return s}finally{Mu=null,Ha=r,iT=!1}}var nT=!1,eT=null,Wx=-1,t5=5,e5=-1;function r5(){return!(Fn.unstable_now()-e5e||125i?(e.sortIndex=r,DC(mA,e),yh(Of)===null&&e===yh(mA)&&(Gx?(JF(Wx),Wx=-1):Gx=!0,NC(BC,r-i))):(e.sortIndex=n,DC(Of,e),h0||iT||(h0=!0,zC(FC))),e};Fn.unstable_shouldYield=r5;Fn.unstable_wrapCallback=function(e){var t=Ha;return function(){var r=Ha;Ha=t;try{return e.apply(this,arguments)}finally{Ha=r}}}});var s5=zr((Nxt,n5)=>{\"use strict\";n5.exports=i5()});var h8=zr(Hc=>{\"use strict\";var fz=Zi(),Gc=s5();function Te(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=1;r\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),lL=Object.prototype.hasOwnProperty,HK=/^[: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]*$/,o5={},a5={};function qK(e){return lL.call(a5,e)?!0:lL.call(o5,e)?!1:HK.test(e)?a5[e]=!0:(o5[e]=!0,!1)}function ZK(e,t,r,i){if(r!==null&&r.type===0)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return i?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!==\"data-\"&&e!==\"aria-\");default:return!1}}function YK(e,t,r,i){if(t===null||typeof t>\"u\"||ZK(e,t,r,i))return!0;if(i)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function vl(e,t,r,i,n,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=n,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var ya={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){ya[e]=new vl(e,0,!1,e,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];ya[t]=new vl(t,1,!1,e[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ya[e]=new vl(e,2,!1,e.toLowerCase(),null,!1,!1)});[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ya[e]=new vl(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){ya[e]=new vl(e,3,!1,e.toLowerCase(),null,!1,!1)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ya[e]=new vl(e,3,!0,e,null,!1,!1)});[\"capture\",\"download\"].forEach(function(e){ya[e]=new vl(e,4,!1,e,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ya[e]=new vl(e,6,!1,e,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(e){ya[e]=new vl(e,5,!1,e.toLowerCase(),null,!1,!1)});var tk=/[\\-:]([a-z])/g;function ek(e){return e[1].toUpperCase()}\"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(tk,ek);ya[t]=new vl(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(tk,ek);ya[t]=new vl(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(tk,ek);ya[t]=new vl(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ya[e]=new vl(e,1,!1,e.toLowerCase(),null,!1,!1)});ya.xlinkHref=new vl(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){ya[e]=new vl(e,1,!1,e.toLowerCase(),null,!0,!0)});function rk(e,t,r,i){var n=ya.hasOwnProperty(t)?ya[t]:null;(n!==null?n.type!==0:i||!(2c||n[o]!==s[c]){var d=`\n`+n[o].replace(\" at new \",\" at \");return e.displayName&&d.includes(\"\")&&(d=d.replace(\"\",e.displayName)),d}while(1<=o&&0<=c);break}}}finally{VC=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:\"\")?Jx(e):\"\"}function $K(e){switch(e.tag){case 5:return Jx(e.type);case 16:return Jx(\"Lazy\");case 13:return Jx(\"Suspense\");case 19:return Jx(\"SuspenseList\");case 0:case 2:case 15:return e=jC(e.type,!1),e;case 11:return e=jC(e.type.render,!1),e;case 1:return e=jC(e.type,!0),e;default:return\"\"}}function fL(e){if(e==null)return null;if(typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case b_:return\"Fragment\";case x_:return\"Portal\";case cL:return\"Profiler\";case ik:return\"StrictMode\";case uL:return\"Suspense\";case hL:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case Az:return(e.displayName||\"Context\")+\".Consumer\";case pz:return(e._context.displayName||\"Context\")+\".Provider\";case nk:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||\"\",e=e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case sk:return t=e.displayName||null,t!==null?t:fL(e.type)||\"Memo\";case _A:t=e._payload,e=e._init;try{return fL(e(t))}catch{}}return null}function QK(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=t.render,e=e.displayName||e.name||\"\",t.displayName||(e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return fL(t);case 8:return t===ik?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==\"function\")return t.displayName||t.name||null;if(typeof t==\"string\")return t}return null}function kA(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function gz(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function XK(e){var t=gz(e)?\"checked\":\"value\",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof r<\"u\"&&typeof r.get==\"function\"&&typeof r.set==\"function\"){var n=r.get,s=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return n.call(this)},set:function(o){i=\"\"+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return i},setValue:function(o){i=\"\"+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function oT(e){e._valueTracker||(e._valueTracker=XK(e))}function _z(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),i=\"\";return e&&(i=gz(e)?e.checked?\"true\":\"false\":e.value),e=i,e!==r?(t.setValue(e),!0):!1}function DT(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}function dL(e,t){var r=t.checked;return ps({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function c5(e,t){var r=t.defaultValue==null?\"\":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;r=kA(t.value!=null?t.value:r),e._wrapperState={initialChecked:i,initialValue:r,controlled:t.type===\"checkbox\"||t.type===\"radio\"?t.checked!=null:t.value!=null}}function yz(e,t){t=t.checked,t!=null&&rk(e,\"checked\",t,!1)}function pL(e,t){yz(e,t);var r=kA(t.value),i=t.type;if(r!=null)i===\"number\"?(r===0&&e.value===\"\"||e.value!=r)&&(e.value=\"\"+r):e.value!==\"\"+r&&(e.value=\"\"+r);else if(i===\"submit\"||i===\"reset\"){e.removeAttribute(\"value\");return}t.hasOwnProperty(\"value\")?AL(e,t.type,r):t.hasOwnProperty(\"defaultValue\")&&AL(e,t.type,kA(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function u5(e,t,r){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var i=t.type;if(!(i!==\"submit\"&&i!==\"reset\"||t.value!==void 0&&t.value!==null))return;t=\"\"+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==\"\"&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,r!==\"\"&&(e.name=r)}function AL(e,t,r){(t!==\"number\"||DT(e.ownerDocument)!==e)&&(r==null?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+r&&(e.defaultValue=\"\"+r))}var t1=Array.isArray;function R_(e,t,r,i){if(e=e.options,t){t={};for(var n=0;n\"+t.valueOf().toString()+\"\",t=aT.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function d1(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var i1={animationIterationCount:!0,aspectRatio:!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},KK=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(i1).forEach(function(e){KK.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),i1[t]=i1[e]})});function wz(e,t,r){return t==null||typeof t==\"boolean\"||t===\"\"?\"\":r||typeof t!=\"number\"||t===0||i1.hasOwnProperty(e)&&i1[e]?(\"\"+t).trim():t+\"px\"}function Sz(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var i=r.indexOf(\"--\")===0,n=wz(r,t[r],i);r===\"float\"&&(r=\"cssFloat\"),i?e.setProperty(r,n):e[r]=n}}var JK=ps({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 _L(e,t){if(t){if(JK[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Te(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Te(60));if(typeof t.dangerouslySetInnerHTML!=\"object\"||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(Te(61))}if(t.style!=null&&typeof t.style!=\"object\")throw Error(Te(62))}}function yL(e,t){if(e.indexOf(\"-\")===-1)return typeof t.is==\"string\";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}}var vL=null;function ok(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xL=null,D_=null,O_=null;function d5(e){if(e=L1(e)){if(typeof xL!=\"function\")throw Error(Te(280));var t=e.stateNode;t&&(t=lM(t),xL(e.stateNode,e.type,t))}}function Tz(e){D_?O_?O_.push(e):O_=[e]:D_=e}function Mz(){if(D_){var e=D_,t=O_;if(O_=D_=null,d5(e),t)for(e=0;e>>=0,e===0?32:31-(uJ(e)/hJ|0)|0}var lT=64,cT=4194304;function e1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function zT(e,t){var r=e.pendingLanes;if(r===0)return 0;var i=0,n=e.suspendedLanes,s=e.pingedLanes,o=r&268435455;if(o!==0){var c=o&~n;c!==0?i=e1(c):(s&=o,s!==0&&(i=e1(s)))}else o=r&~n,o!==0?i=e1(o):s!==0&&(i=e1(s));if(i===0)return 0;if(t!==0&&t!==i&&!(t&n)&&(n=i&-i,s=t&-t,n>=s||n===16&&(s&4194240)!==0))return t;if(i&4&&(i|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0r;r++)t.push(e);return t}function I1(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Sh(t),e[t]=r}function AJ(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=s1),b5=\" \",w5=!1;function qz(e,t){switch(e){case\"keyup\":return GJ.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function Zz(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var w_=!1;function HJ(e,t){switch(e){case\"compositionend\":return Zz(t);case\"keypress\":return t.which!==32?null:(w5=!0,b5);case\"textInput\":return e=t.data,e===b5&&w5?null:e;default:return null}}function qJ(e,t){if(w_)return e===\"compositionend\"||!pk&&qz(e,t)?(e=Wz(),TT=hk=bA=null,w_=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=i}t:{for(;r;){if(r.nextSibling){r=r.nextSibling;break t}r=r.parentNode}r=void 0}r=M5(r)}}function Xz(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Xz(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Kz(){for(var e=window,t=DT();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href==\"string\"}catch{r=!1}if(r)e=t.contentWindow;else break;t=DT(e.document)}return t}function Ak(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}function ett(e){var t=Kz(),r=e.focusedElem,i=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Xz(r.ownerDocument.documentElement,r)){if(i!==null&&Ak(r)){if(t=i.start,e=i.end,e===void 0&&(e=t),\"selectionStart\"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var n=r.textContent.length,s=Math.min(i.start,n);i=i.end===void 0?s:Math.min(i.end,n),!e.extend&&s>i&&(n=i,i=s,s=n),n=E5(r,s);var o=E5(r,i);n&&o&&(e.rangeCount!==1||e.anchorNode!==n.node||e.anchorOffset!==n.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(n.node,n.offset),e.removeAllRanges(),s>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus==\"function\"&&r.focus(),r=0;r=document.documentMode,S_=null,EL=null,a1=null,PL=!1;function P5(e,t,r){var i=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;PL||S_==null||S_!==DT(i)||(i=S_,\"selectionStart\"in i&&Ak(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),a1&&y1(a1,i)||(a1=i,i=VT(EL,\"onSelect\"),0E_||(e.current=DL[E_],DL[E_]=null,E_--)}function zn(e,t){E_++,DL[E_]=e.current,e.current=t}var RA={},$a=OA(RA),Wl=OA(!1),y0=RA;function U_(e,t){var r=e.type.contextTypes;if(!r)return RA;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var n={},s;for(s in r)n[s]=t[s];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=n),n}function Hl(e){return e=e.childContextTypes,e!=null}function GT(){$n(Wl),$n($a)}function F5(e,t,r){if($a.current!==RA)throw Error(Te(168));zn($a,t),zn(Wl,r)}function aN(e,t,r){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=\"function\")return r;i=i.getChildContext();for(var n in i)if(!(n in t))throw Error(Te(108,QK(e)||\"Unknown\",n));return ps({},r,i)}function WT(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||RA,y0=$a.current,zn($a,e),zn(Wl,Wl.current),!0}function z5(e,t,r){var i=e.stateNode;if(!i)throw Error(Te(169));r?(e=aN(e,t,y0),i.__reactInternalMemoizedMergedChildContext=e,$n(Wl),$n($a),zn($a,e)):$n(Wl),zn(Wl,r)}var Vd=null,cM=!1,JC=!1;function lN(e){Vd===null?Vd=[e]:Vd.push(e)}function htt(e){cM=!0,lN(e)}function BA(){if(!JC&&Vd!==null){JC=!0;var e=0,t=cn;try{var r=Vd;for(cn=1;e>=o,n-=o,jd=1<<32-Sh(t)+n|r<te?(oe=Yt,Yt=null):oe=Yt.sibling;var ae=R(Z,Yt,J[te],ht);if(ae===null){Yt===null&&(Yt=oe);break}e&&Yt&&ae.alternate===null&&t(Z,Yt),K=s(ae,K,te),Ot===null?Tt=ae:Ot.sibling=ae,Ot=ae,Yt=oe}if(te===J.length)return r(Z,Yt),ns&&f0(Z,te),Tt;if(Yt===null){for(;tete?(oe=Yt,Yt=null):oe=Yt.sibling;var Le=R(Z,Yt,ae.value,ht);if(Le===null){Yt===null&&(Yt=oe);break}e&&Yt&&Le.alternate===null&&t(Z,Yt),K=s(Le,K,te),Ot===null?Tt=Le:Ot.sibling=Le,Ot=Le,Yt=oe}if(ae.done)return r(Z,Yt),ns&&f0(Z,te),Tt;if(Yt===null){for(;!ae.done;te++,ae=J.next())ae=I(Z,ae.value,ht),ae!==null&&(K=s(ae,K,te),Ot===null?Tt=ae:Ot.sibling=ae,Ot=ae);return ns&&f0(Z,te),Tt}for(Yt=i(Z,Yt);!ae.done;te++,ae=J.next())ae=N(Yt,Z,te,ae.value,ht),ae!==null&&(e&&ae.alternate!==null&&Yt.delete(ae.key===null?te:ae.key),K=s(ae,K,te),Ot===null?Tt=ae:Ot.sibling=ae,Ot=ae);return e&&Yt.forEach(function(sr){return t(Z,sr)}),ns&&f0(Z,te),Tt}function it(Z,K,J,ht){if(typeof J==\"object\"&&J!==null&&J.type===b_&&J.key===null&&(J=J.props.children),typeof J==\"object\"&&J!==null){switch(J.$$typeof){case sT:t:{for(var Tt=J.key,Ot=K;Ot!==null;){if(Ot.key===Tt){if(Tt=J.type,Tt===b_){if(Ot.tag===7){r(Z,Ot.sibling),K=n(Ot,J.props.children),K.return=Z,Z=K;break t}}else if(Ot.elementType===Tt||typeof Tt==\"object\"&&Tt!==null&&Tt.$$typeof===_A&&H5(Tt)===Ot.type){r(Z,Ot.sibling),K=n(Ot,J.props),K.ref=$x(Z,Ot,J),K.return=Z,Z=K;break t}r(Z,Ot);break}else t(Z,Ot);Ot=Ot.sibling}J.type===b_?(K=_0(J.props.children,Z.mode,ht,J.key),K.return=Z,Z=K):(ht=RT(J.type,J.key,J.props,null,Z.mode,ht),ht.ref=$x(Z,K,J),ht.return=Z,Z=ht)}return o(Z);case x_:t:{for(Ot=J.key;K!==null;){if(K.key===Ot)if(K.tag===4&&K.stateNode.containerInfo===J.containerInfo&&K.stateNode.implementation===J.implementation){r(Z,K.sibling),K=n(K,J.children||[]),K.return=Z,Z=K;break t}else{r(Z,K);break}else t(Z,K);K=K.sibling}K=aL(J,Z.mode,ht),K.return=Z,Z=K}return o(Z);case _A:return Ot=J._init,it(Z,K,Ot(J._payload),ht)}if(t1(J))return j(Z,K,J,ht);if(Hx(J))return Y(Z,K,J,ht);vT(Z,J)}return typeof J==\"string\"&&J!==\"\"||typeof J==\"number\"?(J=\"\"+J,K!==null&&K.tag===6?(r(Z,K.sibling),K=n(K,J),K.return=Z,Z=K):(r(Z,K),K=oL(J,Z.mode,ht),K.return=Z,Z=K),o(Z)):r(Z,K)}return it}var j_=mN(!0),gN=mN(!1),k1={},Uf=OA(k1),w1=OA(k1),S1=OA(k1);function m0(e){if(e===k1)throw Error(Te(174));return e}function Sk(e,t){switch(zn(S1,t),zn(w1,e),zn(Uf,k1),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:gL(null,\"\");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=gL(t,e)}$n(Uf),zn(Uf,t)}function G_(){$n(Uf),$n(w1),$n(S1)}function _N(e){m0(S1.current);var t=m0(Uf.current),r=gL(t,e.type);t!==r&&(zn(w1,e),zn(Uf,r))}function Tk(e){w1.current===e&&($n(Uf),$n(w1))}var fs=OA(0);function QT(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data===\"$?\"||r.data===\"$!\"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var tL=[];function Mk(){for(var e=0;er?r:4,e(!0);var i=eL.transition;eL.transition={};try{e(!1),t()}finally{cn=r,eL.transition=i}}function DN(){return ku().memoizedState}function Att(e,t,r){var i=CA(e);if(r={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null},ON(e))BN(t,r);else if(r=fN(e,t,r,i),r!==null){var n=yl();Th(r,e,i,n),FN(r,t,i)}}function mtt(e,t,r){var i=CA(e),n={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null};if(ON(e))BN(t,n);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,c=s(o,r);if(n.hasEagerState=!0,n.eagerState=c,Mh(c,o)){var d=t.interleaved;d===null?(n.next=n,bk(t)):(n.next=d.next,d.next=n),t.interleaved=n;return}}catch{}finally{}r=fN(e,t,n,i),r!==null&&(n=yl(),Th(r,e,i,n),FN(r,t,i))}}function ON(e){var t=e.alternate;return e===ds||t!==null&&t===ds}function BN(e,t){l1=XT=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function FN(e,t,r){if(r&4194240){var i=t.lanes;i&=e.pendingLanes,r|=i,t.lanes=r,lk(e,r)}}var KT={readContext:Lu,useCallback:qa,useContext:qa,useEffect:qa,useImperativeHandle:qa,useInsertionEffect:qa,useLayoutEffect:qa,useMemo:qa,useReducer:qa,useRef:qa,useState:qa,useDebugValue:qa,useDeferredValue:qa,useTransition:qa,useMutableSource:qa,useSyncExternalStore:qa,useId:qa,unstable_isNewReconciler:!1},gtt={readContext:Lu,useCallback:function(e,t){return Ff().memoizedState=[e,t===void 0?null:t],e},useContext:Lu,useEffect:Z5,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,IT(4194308,4,IN.bind(null,t,e),r)},useLayoutEffect:function(e,t){return IT(4194308,4,e,t)},useInsertionEffect:function(e,t){return IT(4,2,e,t)},useMemo:function(e,t){var r=Ff();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var i=Ff();return t=r!==void 0?r(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=Att.bind(null,ds,e),[i.memoizedState,e]},useRef:function(e){var t=Ff();return e={current:e},t.memoizedState=e},useState:q5,useDebugValue:Lk,useDeferredValue:function(e){return Ff().memoizedState=e},useTransition:function(){var e=q5(!1),t=e[0];return e=ptt.bind(null,e[1]),Ff().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var i=ds,n=Ff();if(ns){if(r===void 0)throw Error(Te(407));r=r()}else{if(r=t(),Jo===null)throw Error(Te(349));x0&30||xN(i,t,r)}n.memoizedState=r;var s={value:r,getSnapshot:t};return n.queue=s,Z5(wN.bind(null,i,s,e),[e]),i.flags|=2048,E1(9,bN.bind(null,i,s,r,t),void 0,null),r},useId:function(){var e=Ff(),t=Jo.identifierPrefix;if(ns){var r=Gd,i=jd;r=(i&~(1<<32-Sh(i)-1)).toString(32)+r,t=\":\"+t+\"R\"+r,r=T1++,0<\\/script>\",e=e.removeChild(e.firstChild)):typeof i.is==\"string\"?e=o.createElement(r,{is:i.is}):(e=o.createElement(r),r===\"select\"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,r),e[zf]=t,e[b1]=i,qN(e,t,!1,!1),t.stateNode=e;t:{switch(o=yL(r,i),r){case\"dialog\":Yn(\"cancel\",e),Yn(\"close\",e),n=i;break;case\"iframe\":case\"object\":case\"embed\":Yn(\"load\",e),n=i;break;case\"video\":case\"audio\":for(n=0;nH_&&(t.flags|=128,i=!0,Qx(s,!1),t.lanes=4194304)}else{if(!i)if(e=QT(o),e!==null){if(t.flags|=128,i=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Qx(s,!0),s.tail===null&&s.tailMode===\"hidden\"&&!o.alternate&&!ns)return Za(t),null}else 2*$s()-s.renderingStartTime>H_&&r!==1073741824&&(t.flags|=128,i=!0,Qx(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(r=s.last,r!==null?r.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=$s(),t.sibling=null,r=fs.current,zn(fs,i?r&1|2:r&1),t):(Za(t),null);case 22:case 23:return Fk(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Uc&1073741824&&(Za(t),t.subtreeFlags&6&&(t.flags|=8192)):Za(t),null;case 24:return null;case 25:return null}throw Error(Te(156,t.tag))}function Ttt(e,t){switch(gk(t),t.tag){case 1:return Hl(t.type)&>(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return G_(),$n(Wl),$n($a),Mk(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Tk(t),null;case 13:if($n(fs),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Te(340));V_()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return $n(fs),null;case 4:return G_(),null;case 10:return xk(t.type._context),null;case 22:case 23:return Fk(),null;case 24:return null;default:return null}}var bT=!1,Ya=!1,Mtt=typeof WeakSet==\"function\"?WeakSet:Set,or=null;function L_(e,t){var r=e.ref;if(r!==null)if(typeof r==\"function\")try{r(null)}catch(i){ks(e,t,i)}else r.current=null}function qL(e,t,r){try{r()}catch(i){ks(e,t,i)}}var rz=!1;function Ett(e,t){if(IL=NT,e=Kz(),Ak(e)){if(\"selectionStart\"in e)var r={start:e.selectionStart,end:e.selectionEnd};else t:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var n=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{r.nodeType,s.nodeType}catch{r=null;break t}var o=0,c=-1,d=-1,_=0,w=0,I=e,R=null;e:for(;;){for(var N;I!==r||n!==0&&I.nodeType!==3||(c=o+n),I!==s||i!==0&&I.nodeType!==3||(d=o+i),I.nodeType===3&&(o+=I.nodeValue.length),(N=I.firstChild)!==null;)R=I,I=N;for(;;){if(I===e)break e;if(R===r&&++_===n&&(c=o),R===s&&++w===i&&(d=o),(N=I.nextSibling)!==null)break;I=R,R=I.parentNode}I=N}r=c===-1||d===-1?null:{start:c,end:d}}else r=null}r=r||{start:0,end:0}}else r=null;for(CL={focusedElem:e,selectionRange:r},NT=!1,or=t;or!==null;)if(t=or,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,or=e;else for(;or!==null;){t=or;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var Y=j.memoizedProps,it=j.memoizedState,Z=t.stateNode,K=Z.getSnapshotBeforeUpdate(t.elementType===t.type?Y:xh(t.type,Y),it);Z.__reactInternalSnapshotBeforeUpdate=K}break;case 3:var J=t.stateNode.containerInfo;J.nodeType===1?J.textContent=\"\":J.nodeType===9&&J.documentElement&&J.removeChild(J.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Te(163))}}catch(ht){ks(t,t.return,ht)}if(e=t.sibling,e!==null){e.return=t.return,or=e;break}or=t.return}return j=rz,rz=!1,j}function c1(e,t,r){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var n=i=i.next;do{if((n.tag&e)===e){var s=n.destroy;n.destroy=void 0,s!==void 0&&qL(t,r,s)}n=n.next}while(n!==i)}}function fM(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var i=r.create;r.destroy=i()}r=r.next}while(r!==t)}}function ZL(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t==\"function\"?t(e):t.current=e}}function $N(e){var t=e.alternate;t!==null&&(e.alternate=null,$N(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[zf],delete t[b1],delete t[RL],delete t[ctt],delete t[utt])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function QN(e){return e.tag===5||e.tag===3||e.tag===4}function iz(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||QN(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function YL(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=jT));else if(i!==4&&(e=e.child,e!==null))for(YL(e,t,r),e=e.sibling;e!==null;)YL(e,t,r),e=e.sibling}function $L(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for($L(e,t,r),e=e.sibling;e!==null;)$L(e,t,r),e=e.sibling}var ga=null,bh=!1;function gA(e,t,r){for(r=r.child;r!==null;)XN(e,t,r),r=r.sibling}function XN(e,t,r){if(Nf&&typeof Nf.onCommitFiberUnmount==\"function\")try{Nf.onCommitFiberUnmount(nM,r)}catch{}switch(r.tag){case 5:Ya||L_(r,t);case 6:var i=ga,n=bh;ga=null,gA(e,t,r),ga=i,bh=n,ga!==null&&(bh?(e=ga,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):ga.removeChild(r.stateNode));break;case 18:ga!==null&&(bh?(e=ga,r=r.stateNode,e.nodeType===8?KC(e.parentNode,r):e.nodeType===1&&KC(e,r),g1(e)):KC(ga,r.stateNode));break;case 4:i=ga,n=bh,ga=r.stateNode.containerInfo,bh=!0,gA(e,t,r),ga=i,bh=n;break;case 0:case 11:case 14:case 15:if(!Ya&&(i=r.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){n=i=i.next;do{var s=n,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&qL(r,t,o),n=n.next}while(n!==i)}gA(e,t,r);break;case 1:if(!Ya&&(L_(r,t),i=r.stateNode,typeof i.componentWillUnmount==\"function\"))try{i.props=r.memoizedProps,i.state=r.memoizedState,i.componentWillUnmount()}catch(c){ks(r,t,c)}gA(e,t,r);break;case 21:gA(e,t,r);break;case 22:r.mode&1?(Ya=(i=Ya)||r.memoizedState!==null,gA(e,t,r),Ya=i):gA(e,t,r);break;default:gA(e,t,r)}}function nz(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Mtt),t.forEach(function(i){var n=Btt.bind(null,e,i);r.has(i)||(r.add(i),i.then(n,n))})}}function vh(e,t){var r=t.deletions;if(r!==null)for(var i=0;in&&(n=o),i&=~s}if(i=n,i=$s()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Itt(i/1960))-i,10e?16:e,wA===null)var i=!1;else{if(e=wA,wA=null,eM=0,Fi&6)throw Error(Te(331));var n=Fi;for(Fi|=4,or=e.current;or!==null;){var s=or,o=s.child;if(or.flags&16){var c=s.deletions;if(c!==null){for(var d=0;d$s()-Ok?g0(e,0):Dk|=r),ql(e,t)}function s8(e,t){t===0&&(e.mode&1?(t=cT,cT<<=1,!(cT&130023424)&&(cT=4194304)):t=1);var r=yl();e=Zd(e,t),e!==null&&(I1(e,t,r),ql(e,r))}function Ott(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),s8(e,r)}function Btt(e,t){var r=0;switch(e.tag){case 13:var i=e.stateNode,n=e.memoizedState;n!==null&&(r=n.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(Te(314))}i!==null&&i.delete(t),s8(e,r)}var o8;o8=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Wl.current)Gl=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Gl=!1,wtt(e,t,r);Gl=!!(e.flags&131072)}else Gl=!1,ns&&t.flags&1048576&&cN(t,qT,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;CT(e,t),e=t.pendingProps;var n=U_(t,$a.current);F_(t,r),n=Pk(null,t,i,e,n,r);var s=Ik();return t.flags|=1,typeof n==\"object\"&&n!==null&&typeof n.render==\"function\"&&n.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Hl(i)?(s=!0,WT(t)):s=!1,t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,wk(t),n.updater=uM,t.stateNode=n,n._reactInternals=t,NL(t,i,e,r),t=jL(null,t,i,!0,s,r)):(t.tag=0,ns&&s&&mk(t),_l(null,t,n,r),t=t.child),t;case 16:i=t.elementType;t:{switch(CT(e,t),e=t.pendingProps,n=i._init,i=n(i._payload),t.type=i,n=t.tag=ztt(i),e=xh(i,e),n){case 0:t=VL(null,t,i,e,r);break t;case 1:t=J5(null,t,i,e,r);break t;case 11:t=X5(null,t,i,e,r);break t;case 14:t=K5(null,t,i,xh(i.type,e),r);break t}throw Error(Te(306,i,\"\"))}return t;case 0:return i=t.type,n=t.pendingProps,n=t.elementType===i?n:xh(i,n),VL(e,t,i,n,r);case 1:return i=t.type,n=t.pendingProps,n=t.elementType===i?n:xh(i,n),J5(e,t,i,n,r);case 3:t:{if(GN(t),e===null)throw Error(Te(387));i=t.pendingProps,s=t.memoizedState,n=s.element,dN(e,t),$T(t,i,null,r);var o=t.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){n=W_(Error(Te(423)),t),t=tz(e,t,i,r,n);break t}else if(i!==n){n=W_(Error(Te(424)),t),t=tz(e,t,i,r,n);break t}else for(Vc=EA(t.stateNode.containerInfo.firstChild),jc=t,ns=!0,wh=null,r=gN(t,null,i,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(V_(),i===n){t=Yd(e,t,r);break t}_l(e,t,i,r)}t=t.child}return t;case 5:return _N(t),e===null&&BL(t),i=t.type,n=t.pendingProps,s=e!==null?e.memoizedProps:null,o=n.children,LL(i,n)?o=null:s!==null&&LL(i,s)&&(t.flags|=32),jN(e,t),_l(e,t,o,r),t.child;case 6:return e===null&&BL(t),null;case 13:return WN(e,t,r);case 4:return Sk(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=j_(t,null,i,r):_l(e,t,i,r),t.child;case 11:return i=t.type,n=t.pendingProps,n=t.elementType===i?n:xh(i,n),X5(e,t,i,n,r);case 7:return _l(e,t,t.pendingProps,r),t.child;case 8:return _l(e,t,t.pendingProps.children,r),t.child;case 12:return _l(e,t,t.pendingProps.children,r),t.child;case 10:t:{if(i=t.type._context,n=t.pendingProps,s=t.memoizedProps,o=n.value,zn(ZT,i._currentValue),i._currentValue=o,s!==null)if(Mh(s.value,o)){if(s.children===n.children&&!Wl.current){t=Yd(e,t,r);break t}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var c=s.dependencies;if(c!==null){o=s.child;for(var d=c.firstContext;d!==null;){if(d.context===i){if(s.tag===1){d=Wd(-1,r&-r),d.tag=2;var _=s.updateQueue;if(_!==null){_=_.shared;var w=_.pending;w===null?d.next=d:(d.next=w.next,w.next=d),_.pending=d}}s.lanes|=r,d=s.alternate,d!==null&&(d.lanes|=r),FL(s.return,r,t),c.lanes|=r;break}d=d.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Te(341));o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),FL(o,r,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}_l(e,t,n.children,r),t=t.child}return t;case 9:return n=t.type,i=t.pendingProps.children,F_(t,r),n=Lu(n),i=i(n),t.flags|=1,_l(e,t,i,r),t.child;case 14:return i=t.type,n=xh(i,t.pendingProps),n=xh(i.type,n),K5(e,t,i,n,r);case 15:return UN(e,t,t.type,t.pendingProps,r);case 17:return i=t.type,n=t.pendingProps,n=t.elementType===i?n:xh(i,n),CT(e,t),t.tag=1,Hl(i)?(e=!0,WT(t)):e=!1,F_(t,r),AN(t,i,n),NL(t,i,n,r),jL(null,t,i,!0,e,r);case 19:return HN(e,t,r);case 22:return VN(e,t,r)}throw Error(Te(156,t.tag))};function a8(e,t){return Rz(e,t)}function Ftt(e,t,r,i){this.tag=e,this.key=r,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=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Iu(e,t,r,i){return new Ftt(e,t,r,i)}function Nk(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ztt(e){if(typeof e==\"function\")return Nk(e)?1:0;if(e!=null){if(e=e.$$typeof,e===nk)return 11;if(e===sk)return 14}return 2}function LA(e,t){var r=e.alternate;return r===null?(r=Iu(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function RT(e,t,r,i,n,s){var o=2;if(i=e,typeof e==\"function\")Nk(e)&&(o=1);else if(typeof e==\"string\")o=5;else t:switch(e){case b_:return _0(r.children,n,s,t);case ik:o=8,n|=8;break;case cL:return e=Iu(12,r,t,n|2),e.elementType=cL,e.lanes=s,e;case uL:return e=Iu(13,r,t,n),e.elementType=uL,e.lanes=s,e;case hL:return e=Iu(19,r,t,n),e.elementType=hL,e.lanes=s,e;case mz:return pM(r,n,s,t);default:if(typeof e==\"object\"&&e!==null)switch(e.$$typeof){case pz:o=10;break t;case Az:o=9;break t;case nk:o=11;break t;case sk:o=14;break t;case _A:o=16,i=null;break t}throw Error(Te(130,e==null?e:typeof e,\"\"))}return t=Iu(o,r,t,n),t.elementType=e,t.type=i,t.lanes=s,t}function _0(e,t,r,i){return e=Iu(7,e,i,t),e.lanes=r,e}function pM(e,t,r,i){return e=Iu(22,e,i,t),e.elementType=mz,e.lanes=r,e.stateNode={isHidden:!1},e}function oL(e,t,r){return e=Iu(6,e,null,t),e.lanes=r,e}function aL(e,t,r){return t=Iu(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ntt(e,t,r,i,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=WC(0),this.expirationTimes=WC(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=WC(0),this.identifierPrefix=i,this.onRecoverableError=n,this.mutableSourceEagerHydrationData=null}function Uk(e,t,r,i,n,s,o,c,d){return e=new Ntt(e,t,r,c,d),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Iu(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:i,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},wk(s),e}function Utt(e,t,r){var i=3{\"use strict\";function f8(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(f8)}catch(e){console.error(e)}}f8(),d8.exports=h8()});var A8=zr(Wk=>{\"use strict\";var p8=yM();Wk.createRoot=p8.createRoot,Wk.hydrateRoot=p8.hydrateRoot;var jxt});var L8=zr((e4,r4)=>{(function(e,t){typeof e4==\"object\"&&typeof r4<\"u\"?r4.exports=t():(e=typeof globalThis<\"u\"?globalThis:e||self,e.maplibregl=t())})(e4,function(){\"use strict\";var e={},t={};function r(n,s,o){if(t[n]=o,n===\"index\"){var c=\"var sharedModule = {}; (\"+t.shared+\")(sharedModule); (\"+t.worker+\")(sharedModule);\",d={};return t.shared(d),t.index(e,d),typeof window<\"u\"&&e.setWorkerUrl(window.URL.createObjectURL(new Blob([c],{type:\"text/javascript\"}))),e}}r(\"shared\",[\"exports\"],function(n){\"use strict\";function s(u,a,h,A){return new(h||(h=Promise))(function(x,E){function P(V){try{B(A.next(V))}catch(q){E(q)}}function D(V){try{B(A.throw(V))}catch(q){E(q)}}function B(V){var q;V.done?x(V.value):(q=V.value,q instanceof h?q:new h(function(Q){Q(q)})).then(P,D)}B((A=A.apply(u,a||[])).next())})}function o(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,\"default\")?u.default:u}typeof SuppressedError==\"function\"&&SuppressedError;var c=d;function d(u,a){this.x=u,this.y=a}d.prototype={clone:function(){return new d(this.x,this.y)},add:function(u){return this.clone()._add(u)},sub:function(u){return this.clone()._sub(u)},multByPoint:function(u){return this.clone()._multByPoint(u)},divByPoint:function(u){return this.clone()._divByPoint(u)},mult:function(u){return this.clone()._mult(u)},div:function(u){return this.clone()._div(u)},rotate:function(u){return this.clone()._rotate(u)},rotateAround:function(u,a){return this.clone()._rotateAround(u,a)},matMult:function(u){return this.clone()._matMult(u)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(u){return this.x===u.x&&this.y===u.y},dist:function(u){return Math.sqrt(this.distSqr(u))},distSqr:function(u){var a=u.x-this.x,h=u.y-this.y;return a*a+h*h},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(u){return Math.atan2(this.y-u.y,this.x-u.x)},angleWith:function(u){return this.angleWithSep(u.x,u.y)},angleWithSep:function(u,a){return Math.atan2(this.x*a-this.y*u,this.x*u+this.y*a)},_matMult:function(u){var a=u[2]*this.x+u[3]*this.y;return this.x=u[0]*this.x+u[1]*this.y,this.y=a,this},_add:function(u){return this.x+=u.x,this.y+=u.y,this},_sub:function(u){return this.x-=u.x,this.y-=u.y,this},_mult:function(u){return this.x*=u,this.y*=u,this},_div:function(u){return this.x/=u,this.y/=u,this},_multByPoint:function(u){return this.x*=u.x,this.y*=u.y,this},_divByPoint:function(u){return this.x/=u.x,this.y/=u.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var u=this.y;return this.y=this.x,this.x=-u,this},_rotate:function(u){var a=Math.cos(u),h=Math.sin(u),A=h*this.x+a*this.y;return this.x=a*this.x-h*this.y,this.y=A,this},_rotateAround:function(u,a){var h=Math.cos(u),A=Math.sin(u),x=a.y+A*(this.x-a.x)+h*(this.y-a.y);return this.x=a.x+h*(this.x-a.x)-A*(this.y-a.y),this.y=x,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},d.convert=function(u){return u instanceof d?u:Array.isArray(u)?new d(u[0],u[1]):u};var _=o(c),w=I;function I(u,a,h,A){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(A-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=a,this.p2x=h,this.p2y=A}I.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,a){if(a===void 0&&(a=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,A=0;A<8;A++){var x=this.sampleCurveX(h)-u;if(Math.abs(x)x?P=h:D=h,h=.5*(D-P)+P;return h},solve:function(u,a){return this.sampleCurveY(this.solveCurveX(u,a))}};var R=o(w);let N,j;function Y(){return N==null&&(N=typeof OffscreenCanvas<\"u\"&&new OffscreenCanvas(1,1).getContext(\"2d\")&&typeof createImageBitmap==\"function\"),N}function it(){if(j==null&&(j=!1,Y())){let a=new OffscreenCanvas(5,5).getContext(\"2d\",{willReadFrequently:!0});if(a){for(let A=0;A<5*5;A++){let x=4*A;a.fillStyle=`rgb(${x},${x+1},${x+2})`,a.fillRect(A%5,Math.floor(A/5),1,1)}let h=a.getImageData(0,0,5,5).data;for(let A=0;A<5*5*4;A++)if(A%4!=3&&h[A]!==A){j=!0;break}}}return j||!1}function Z(u,a,h,A){let x=new R(u,a,h,A);return function(E){return x.solve(E)}}let K=Z(.25,.1,.25,1);function J(u,a,h){return Math.min(h,Math.max(a,u))}function ht(u,a,h){let A=h-a,x=((u-a)%A+A)%A+a;return x===a?h:x}function Tt(u,...a){for(let h of a)for(let A in h)u[A]=h[A];return u}let Ot=1;function Yt(u,a,h){let A={};for(let x in u)A[x]=a.call(h||this,u[x],x,u);return A}function te(u,a,h){let A={};for(let x in u)a.call(h||this,u[x],x,u)&&(A[x]=u[x]);return A}function oe(u){return Array.isArray(u)?u.map(oe):typeof u==\"object\"&&u?Yt(u,oe):u}let ae={};function Le(u){ae[u]||(typeof console<\"u\"&&console.warn(u),ae[u]=!0)}function sr(u,a,h){return(h.y-u.y)*(a.x-u.x)>(a.y-u.y)*(h.x-u.x)}function lr(u){let a=0;for(let h,A,x=0,E=u.length,P=E-1;x\"u\")throw new Error(\"VideoFrame not supported\");let E=new VideoFrame(u,{timestamp:0});try{let P=E?.format;if(!P||!P.startsWith(\"BGR\")&&!P.startsWith(\"RGB\"))throw new Error(`Unrecognized format ${P}`);let D=P.startsWith(\"BGR\"),B=new Uint8ClampedArray(A*x*4);if(yield E.copyTo(B,function(V,q,Q,rt,ot){let lt=4*Math.max(-q,0),pt=(Math.max(0,Q)-Q)*rt*4+lt,xt=4*rt,Mt=Math.max(0,q),Vt=Math.max(0,Q);return{rect:{x:Mt,y:Vt,width:Math.min(V.width,q+rt)-Mt,height:Math.min(V.height,Q+ot)-Vt},layout:[{offset:pt,stride:xt}]}}(u,a,h,A,x)),D)for(let V=0;VCr(self)?self.worker&&self.worker.referrer:(window.location.protocol===\"blob:\"?window.parent:window).location.href,Oi=function(u,a){if(/:\\/\\//.test(u.url)&&!/^https?:|^file:/.test(u.url)){let A=Ia(u.url);if(A)return A(u,a);if(Cr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:\"getResource\",data:u,targetMapId:Uo},a)}if(!(/^file:/.test(h=u.url)||/^file:/.test(yo())&&!/^\\w+:/.test(h))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return function(A,x){return s(this,void 0,void 0,function*(){let E=new Request(A.url,{method:A.method||\"GET\",body:A.body,credentials:A.credentials,headers:A.headers,cache:A.cache,referrer:yo(),signal:x.signal});A.type===\"json\"&&E.headers.set(\"Accept\",\"application/json\");let P=yield fetch(E);if(!P.ok){let V=yield P.blob();throw new Ci(P.status,P.statusText,A.url,V)}let D=A.type===\"arrayBuffer\"||A.type===\"image\"?P.arrayBuffer():A.type===\"json\"?P.json():P.text(),B=yield D;if(x.signal.aborted)throw oa();return{data:B,cacheControl:P.headers.get(\"Cache-Control\"),expires:P.headers.get(\"Expires\")}})}(u,a);if(Cr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:\"getResource\",data:u,mustQueue:!0,targetMapId:Uo},a)}var h;return function(A,x){return new Promise((E,P)=>{let D=new XMLHttpRequest;D.open(A.method||\"GET\",A.url,!0),A.type!==\"arrayBuffer\"&&A.type!==\"image\"||(D.responseType=\"arraybuffer\");for(let B in A.headers)D.setRequestHeader(B,A.headers[B]);A.type===\"json\"&&(D.responseType=\"text\",D.setRequestHeader(\"Accept\",\"application/json\")),D.withCredentials=A.credentials===\"include\",D.onerror=()=>{P(new Error(D.statusText))},D.onload=()=>{if(!x.signal.aborted)if((D.status>=200&&D.status<300||D.status===0)&&D.response!==null){let B=D.response;if(A.type===\"json\")try{B=JSON.parse(D.response)}catch(V){return void P(V)}E({data:B,cacheControl:D.getResponseHeader(\"Cache-Control\"),expires:D.getResponseHeader(\"Expires\")})}else{let B=new Blob([D.response],{type:D.getResponseHeader(\"Content-Type\")});P(new Ci(D.status,D.statusText,A.url,B))}},x.signal.addEventListener(\"abort\",()=>{D.abort(),P(oa())}),D.send(A.body)})}(u,a)};function ls(u){if(!u||u.indexOf(\"://\")<=0||u.indexOf(\"data:image/\")===0||u.indexOf(\"blob:\")===0)return!0;let a=new URL(u),h=window.location;return a.protocol===h.protocol&&a.host===h.host}function Vo(u,a,h){h[u]&&h[u].indexOf(a)!==-1||(h[u]=h[u]||[],h[u].push(a))}function jo(u,a,h){if(h&&h[u]){let A=h[u].indexOf(a);A!==-1&&h[u].splice(A,1)}}class Go{constructor(a,h={}){Tt(this,h),this.type=a}}class an extends Go{constructor(a,h={}){super(\"error\",Tt({error:a},h))}}class aa{on(a,h){return this._listeners=this._listeners||{},Vo(a,h,this._listeners),this}off(a,h){return jo(a,h,this._listeners),jo(a,h,this._oneTimeListeners),this}once(a,h){return h?(this._oneTimeListeners=this._oneTimeListeners||{},Vo(a,h,this._oneTimeListeners),this):new Promise(A=>this.once(a,A))}fire(a,h){typeof a==\"string\"&&(a=new Go(a,h||{}));let A=a.type;if(this.listens(A)){a.target=this;let x=this._listeners&&this._listeners[A]?this._listeners[A].slice():[];for(let D of x)D.call(this,a);let E=this._oneTimeListeners&&this._oneTimeListeners[A]?this._oneTimeListeners[A].slice():[];for(let D of E)jo(A,D,this._oneTimeListeners),D.call(this,a);let P=this._eventedParent;P&&(Tt(a,typeof this._eventedParentData==\"function\"?this._eventedParentData():this._eventedParentData),P.fire(a))}else a instanceof an&&console.error(a.error);return this}listens(a){return this._listeners&&this._listeners[a]&&this._listeners[a].length>0||this._oneTimeListeners&&this._oneTimeListeners[a]&&this._oneTimeListeners[a].length>0||this._eventedParent&&this._eventedParent.listens(a)}setEventedParent(a,h){return this._eventedParent=a,this._eventedParentData=h,this}}var Jt={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},sky:{type:\"sky\"},terrain:{type:\"terrain\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"sprite\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{},custom:{}},default:\"mapbox\"},redFactor:{type:\"number\",default:1},blueFactor:{type:\"number\",default:1},greenFactor:{type:\"number\",default:1},baseShift:{type:\"number\",default:0},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{required:!0,type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},filter:{type:\"*\"},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!1},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterMinPoints:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"!\":\"icon-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"padding\",default:[2],units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},\"viewport-glyph\":{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-variable-anchor-offset\":{type:\"variableAnchorOffsetCollection\",requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\",{\"!\":\"text-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{},within:{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},sky:{\"sky-color\":{type:\"color\",\"property-type\":\"data-constant\",default:\"#88C6FC\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},\"fog-color\":{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},\"fog-blend\":{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},\"horizon-blend\":{type:\"number\",\"property-type\":\"data-constant\",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},terrain:{source:{type:\"string\",required:!0},exaggeration:{type:\"number\",minimum:0,default:1}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}};let vo=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"];function hu(u,a){let h={};for(let A in u)A!==\"ref\"&&(h[A]=u[A]);return vo.forEach(A=>{A in a&&(h[A]=a[A])}),h}function ti(u,a){if(Array.isArray(u)){if(!Array.isArray(a)||u.length!==a.length)return!1;for(let h=0;h`:u.itemType.kind===\"value\"?\"array\":`array<${a}>`}return u.kind}let Rt=[ts,be,Lr,wr,Cn,jn,ka,ct(mr),vt,tt,nt];function Dt(u,a){if(a.kind===\"error\")return null;if(u.kind===\"array\"){if(a.kind===\"array\"&&(a.N===0&&a.itemType.kind===\"value\"||!Dt(u.itemType,a.itemType))&&(typeof u.N!=\"number\"||u.N===a.N))return null}else{if(u.kind===a.kind)return null;if(u.kind===\"value\"){for(let h of Rt)if(!Dt(h,a))return null}}return`Expected ${mt(u)} but found ${mt(a)} instead.`}function Ut(u,a){return a.some(h=>h.kind===u.kind)}function ft(u,a){return a.some(h=>h===\"null\"?u===null:h===\"array\"?Array.isArray(u):h===\"object\"?u&&!Array.isArray(u)&&typeof u==\"object\":h===typeof u)}function jt(u,a){return u.kind===\"array\"&&a.kind===\"array\"?u.itemType.kind===a.itemType.kind&&typeof u.N==\"number\":u.kind===a.kind}let le=.96422,ee=.82521,re=4/29,Je=6/29,ir=3*Je*Je,kr=Je*Je*Je,_r=Math.PI/180,ii=180/Math.PI;function Si(u){return(u%=360)<0&&(u+=360),u}function Wi([u,a,h,A]){let x,E,P=Rr((.2225045*(u=bn(u))+.7168786*(a=bn(a))+.0606169*(h=bn(h)))/1);u===a&&a===h?x=E=P:(x=Rr((.4360747*u+.3850649*a+.1430804*h)/le),E=Rr((.0139322*u+.0971045*a+.7141733*h)/ee));let D=116*P-16;return[D<0?0:D,500*(x-P),200*(P-E),A]}function bn(u){return u<=.04045?u/12.92:Math.pow((u+.055)/1.055,2.4)}function Rr(u){return u>kr?Math.pow(u,1/3):u/ir+re}function Ji([u,a,h,A]){let x=(u+16)/116,E=isNaN(a)?x:x+a/500,P=isNaN(h)?x:x-h/200;return x=1*es(x),E=le*es(E),P=ee*es(P),[tn(3.1338561*E-1.6168667*x-.4906146*P),tn(-.9787684*E+1.9161415*x+.033454*P),tn(.0719453*E-.2289914*x+1.4052427*P),A]}function tn(u){return(u=u<=.00304?12.92*u:1.055*Math.pow(u,1/2.4)-.055)<0?0:u>1?1:u}function es(u){return u>Je?u*u*u:ir*(u-re)}function cs(u){return parseInt(u.padEnd(2,u),16)/255}function Ln(u,a){return la(a?u/100:u,0,1)}function la(u,a,h){return Math.min(Math.max(a,u),h)}function Fm(u){return!u.some(Number.isNaN)}let $g={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],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],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],rebeccapurple:[102,51,153],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]};class mi{constructor(a,h,A,x=1,E=!0){this.r=a,this.g=h,this.b=A,this.a=x,E||(this.r*=x,this.g*=x,this.b*=x,x||this.overwriteGetter(\"rgb\",[a,h,A,x]))}static parse(a){if(a instanceof mi)return a;if(typeof a!=\"string\")return;let h=function(A){if((A=A.toLowerCase().trim())===\"transparent\")return[0,0,0,0];let x=$g[A];if(x){let[P,D,B]=x;return[P/255,D/255,B/255,1]}if(A.startsWith(\"#\")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(A)){let P=A.length<6?1:2,D=1;return[cs(A.slice(D,D+=P)),cs(A.slice(D,D+=P)),cs(A.slice(D,D+=P)),cs(A.slice(D,D+P)||\"ff\")]}if(A.startsWith(\"rgb\")){let P=A.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(P){let[D,B,V,q,Q,rt,ot,lt,pt,xt,Mt,Vt]=P,It=[q||\" \",ot||\" \",xt].join(\"\");if(It===\" \"||It===\" /\"||It===\",,\"||It===\",,,\"){let zt=[V,rt,pt].join(\"\"),ie=zt===\"%%%\"?100:zt===\"\"?255:0;if(ie){let ue=[la(+B/ie,0,1),la(+Q/ie,0,1),la(+lt/ie,0,1),Mt?Ln(+Mt,Vt):1];if(Fm(ue))return ue}}return}}let E=A.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(E){let[P,D,B,V,q,Q,rt,ot,lt]=E,pt=[B||\" \",q||\" \",rt].join(\"\");if(pt===\" \"||pt===\" /\"||pt===\",,\"||pt===\",,,\"){let xt=[+D,la(+V,0,100),la(+Q,0,100),ot?Ln(+ot,lt):1];if(Fm(xt))return function([Mt,Vt,It,zt]){function ie(ue){let Be=(ue+Mt/30)%12,Ke=Vt*Math.min(It,1-It);return It-Ke*Math.max(-1,Math.min(Be-3,9-Be,1))}return Mt=Si(Mt),Vt/=100,It/=100,[ie(0),ie(8),ie(4),zt]}(xt)}}}(a);return h?new mi(...h,!1):void 0}get rgb(){let{r:a,g:h,b:A,a:x}=this,E=x||1/0;return this.overwriteGetter(\"rgb\",[a/E,h/E,A/E,x])}get hcl(){return this.overwriteGetter(\"hcl\",function(a){let[h,A,x,E]=Wi(a),P=Math.sqrt(A*A+x*x);return[Math.round(1e4*P)?Si(Math.atan2(x,A)*ii):NaN,P,h,E]}(this.rgb))}get lab(){return this.overwriteGetter(\"lab\",Wi(this.rgb))}overwriteGetter(a,h){return Object.defineProperty(this,a,{value:h}),h}toString(){let[a,h,A,x]=this.rgb;return`rgba(${[a,h,A].map(E=>Math.round(255*E)).join(\",\")},${x})`}}mi.black=new mi(0,0,0,1),mi.white=new mi(1,1,1,1),mi.transparent=new mi(0,0,0,0),mi.red=new mi(1,0,0,1);class xo{constructor(a,h,A){this.sensitivity=a?h?\"variant\":\"case\":h?\"accent\":\"base\",this.locale=A,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"})}compare(a,h){return this.collator.compare(a,h)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Ec{constructor(a,h,A,x,E){this.text=a,this.image=h,this.scale=A,this.fontStack=x,this.textColor=E}}class Gn{constructor(a){this.sections=a}static fromString(a){return new Gn([new Ec(a,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(a=>a.text.length!==0||a.image&&a.image.name.length!==0)}static factory(a){return a instanceof Gn?a:Gn.fromString(a)}toString(){return this.sections.length===0?\"\":this.sections.map(a=>a.text).join(\"\")}}class wn{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof wn)return a;if(typeof a==\"number\")return new wn([a,a,a,a]);if(Array.isArray(a)&&!(a.length<1||a.length>4)){for(let h of a)if(typeof h!=\"number\")return;switch(a.length){case 1:a=[a[0],a[0],a[0],a[0]];break;case 2:a=[a[0],a[1],a[0],a[1]];break;case 3:a=[a[0],a[1],a[2],a[1]]}return new wn(a)}}toString(){return JSON.stringify(this.values)}}let Ol=new Set([\"center\",\"left\",\"right\",\"top\",\"bottom\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]);class kn{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof kn)return a;if(Array.isArray(a)&&!(a.length<1)&&a.length%2==0){for(let h=0;h=0&&u<=255&&typeof a==\"number\"&&a>=0&&a<=255&&typeof h==\"number\"&&h>=0&&h<=255?A===void 0||typeof A==\"number\"&&A>=0&&A<=1?null:`Invalid rgba value [${[u,a,h,A].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof A==\"number\"?[u,a,h,A]:[u,a,h]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function ff(u){if(u===null||typeof u==\"string\"||typeof u==\"boolean\"||typeof u==\"number\"||u instanceof mi||u instanceof xo||u instanceof Gn||u instanceof wn||u instanceof kn||u instanceof Wn)return!0;if(Array.isArray(u)){for(let a of u)if(!ff(a))return!1;return!0}if(typeof u==\"object\"){for(let a in u)if(!ff(u[a]))return!1;return!0}return!1}function hn(u){if(u===null)return ts;if(typeof u==\"string\")return Lr;if(typeof u==\"boolean\")return wr;if(typeof u==\"number\")return be;if(u instanceof mi)return Cn;if(u instanceof xo)return Mc;if(u instanceof Gn)return jn;if(u instanceof wn)return vt;if(u instanceof kn)return nt;if(u instanceof Wn)return tt;if(Array.isArray(u)){let a=u.length,h;for(let A of u){let x=hn(A);if(h){if(h===x)continue;h=mr;break}h=x}return ct(h||mr,a)}return ka}function no(u){let a=typeof u;return u===null?\"\":a===\"string\"||a===\"number\"||a===\"boolean\"?String(u):u instanceof mi||u instanceof Gn||u instanceof wn||u instanceof kn||u instanceof Wn?u.toString():JSON.stringify(u)}class Ra{constructor(a,h){this.type=a,this.value=h}static parse(a,h){if(a.length!==2)return h.error(`'literal' expression requires exactly one argument, but found ${a.length-1} instead.`);if(!ff(a[1]))return h.error(\"invalid value\");let A=a[1],x=hn(A),E=h.expectedType;return x.kind!==\"array\"||x.N!==0||!E||E.kind!==\"array\"||typeof E.N==\"number\"&&E.N!==0||(x=E),new Ra(x,A)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class Hi{constructor(a){this.name=\"ExpressionEvaluationError\",this.message=a}toJSON(){return this.message}}let lh={string:Lr,number:be,boolean:wr,object:ka};class so{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A,x=1,E=a[0];if(E===\"array\"){let D,B;if(a.length>2){let V=a[1];if(typeof V!=\"string\"||!(V in lh)||V===\"object\")return h.error('The item type argument of \"array\" must be one of string, number, boolean',1);D=lh[V],x++}else D=mr;if(a.length>3){if(a[2]!==null&&(typeof a[2]!=\"number\"||a[2]<0||a[2]!==Math.floor(a[2])))return h.error('The length argument to \"array\" must be a positive integer literal',2);B=a[2],x++}A=ct(D,B)}else{if(!lh[E])throw new Error(`Types doesn't contain name = ${E}`);A=lh[E]}let P=[];for(;xa.outputDefined())}}let ch={\"to-boolean\":wr,\"to-color\":Cn,\"to-number\":be,\"to-string\":Lr};class qo{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[0];if(!ch[A])throw new Error(`Can't parse ${A} as it is not part of the known types`);if((A===\"to-boolean\"||A===\"to-string\")&&a.length!==2)return h.error(\"Expected one argument.\");let x=ch[A],E=[];for(let P=1;P4?`Invalid rbga value ${JSON.stringify(h)}: expected an array containing either three or four numeric values.`:fu(h[0],h[1],h[2],h[3]),!A))return new mi(h[0]/255,h[1]/255,h[2]/255,h[3])}throw new Hi(A||`Could not parse color from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"padding\":{let h;for(let A of this.args){h=A.evaluate(a);let x=wn.parse(h);if(x)return x}throw new Hi(`Could not parse padding from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"variableAnchorOffsetCollection\":{let h;for(let A of this.args){h=A.evaluate(a);let x=kn.parse(h);if(x)return x}throw new Hi(`Could not parse variableAnchorOffsetCollection from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"number\":{let h=null;for(let A of this.args){if(h=A.evaluate(a),h===null)return 0;let x=Number(h);if(!isNaN(x))return x}throw new Hi(`Could not convert ${JSON.stringify(h)} to number.`)}case\"formatted\":return Gn.fromString(no(this.args[0].evaluate(a)));case\"resolvedImage\":return Wn.fromString(no(this.args[0].evaluate(a)));default:return no(this.args[0].evaluate(a))}}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}let ca=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class Ti{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&\"id\"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==\"number\"?ca[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(a){let h=this._parseColorCache[a];return h||(h=this._parseColorCache[a]=mi.parse(a)),h}}class df{constructor(a,h,A=[],x,E=new La,P=[]){this.registry=a,this.path=A,this.key=A.map(D=>`[${D}]`).join(\"\"),this.scope=E,this.errors=P,this.expectedType=x,this._isConstant=h}parse(a,h,A,x,E={}){return h?this.concat(h,A,x)._parse(a,E):this._parse(a,E)}_parse(a,h){function A(x,E,P){return P===\"assert\"?new so(E,[x]):P===\"coerce\"?new qo(E,[x]):x}if(a!==null&&typeof a!=\"string\"&&typeof a!=\"boolean\"&&typeof a!=\"number\"||(a=[\"literal\",a]),Array.isArray(a)){if(a.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');let x=a[0];if(typeof x!=\"string\")return this.error(`Expression name must be a string, but found ${typeof x} instead. If you wanted a literal array, use [\"literal\", [...]].`,0),null;let E=this.registry[x];if(E){let P=E.parse(a,this);if(!P)return null;if(this.expectedType){let D=this.expectedType,B=P.type;if(D.kind!==\"string\"&&D.kind!==\"number\"&&D.kind!==\"boolean\"&&D.kind!==\"object\"&&D.kind!==\"array\"||B.kind!==\"value\")if(D.kind!==\"color\"&&D.kind!==\"formatted\"&&D.kind!==\"resolvedImage\"||B.kind!==\"value\"&&B.kind!==\"string\")if(D.kind!==\"padding\"||B.kind!==\"value\"&&B.kind!==\"number\"&&B.kind!==\"array\")if(D.kind!==\"variableAnchorOffsetCollection\"||B.kind!==\"value\"&&B.kind!==\"array\"){if(this.checkSubtype(D,B))return null}else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"assert\")}if(!(P instanceof Ra)&&P.type.kind!==\"resolvedImage\"&&this._isConstant(P)){let D=new Ti;try{P=new Ra(P.type,P.evaluate(D))}catch(B){return this.error(B.message),null}}return P}return this.error(`Unknown expression \"${x}\". If you wanted a literal array, use [\"literal\", [...]].`,0)}return this.error(a===void 0?\"'undefined' value invalid. Use null instead.\":typeof a==\"object\"?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof a} instead.`)}concat(a,h,A){let x=typeof a==\"number\"?this.path.concat(a):this.path,E=A?this.scope.concat(A):this.scope;return new df(this.registry,this._isConstant,x,h||null,E,this.errors)}error(a,...h){let A=`${this.key}${h.map(x=>`[${x}]`).join(\"\")}`;this.errors.push(new Vn(A,a))}checkSubtype(a,h){let A=Dt(a,h);return A&&this.error(A),A}}class Pc{constructor(a,h,A){this.type=Mc,this.locale=A,this.caseSensitive=a,this.diacriticSensitive=h}static parse(a,h){if(a.length!==2)return h.error(\"Expected one argument.\");let A=a[1];if(typeof A!=\"object\"||Array.isArray(A))return h.error(\"Collator options argument must be an object.\");let x=h.parse(A[\"case-sensitive\"]!==void 0&&A[\"case-sensitive\"],1,wr);if(!x)return null;let E=h.parse(A[\"diacritic-sensitive\"]!==void 0&&A[\"diacritic-sensitive\"],1,wr);if(!E)return null;let P=null;return A.locale&&(P=h.parse(A.locale,1,Lr),!P)?null:new Pc(x,E,P)}evaluate(a){return new xo(this.caseSensitive.evaluate(a),this.diacriticSensitive.evaluate(a),this.locale?this.locale.evaluate(a):null)}eachChild(a){a(this.caseSensitive),a(this.diacriticSensitive),this.locale&&a(this.locale)}outputDefined(){return!1}}let Bl=8192;function Sd(u,a){u[0]=Math.min(u[0],a[0]),u[1]=Math.min(u[1],a[1]),u[2]=Math.max(u[2],a[0]),u[3]=Math.max(u[3],a[1])}function pf(u,a){return!(u[0]<=a[0]||u[2]>=a[2]||u[1]<=a[1]||u[3]>=a[3])}function ut(u,a){let h=(180+u[0])/360,A=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u[1]*Math.PI/360)))/360,x=Math.pow(2,a.z);return[Math.round(h*x*Bl),Math.round(A*x*Bl)]}function dt(u,a,h){let A=u[0]-a[0],x=u[1]-a[1],E=u[0]-h[0],P=u[1]-h[1];return A*P-E*x==0&&A*E<=0&&x*P<=0}function Ct(u,a){let h=!1;for(let P=0,D=a.length;P(A=u)[1]!=(E=B[V+1])[1]>A[1]&&A[0]<(E[0]-x[0])*(A[1]-x[1])/(E[1]-x[1])+x[0]&&(h=!h)}}var A,x,E;return h}function $t(u,a){for(let h=0;h0&&D<0||P<0&&D>0}function Ze(u,a,h){for(let V of h)for(let q=0;qh[2]){let x=.5*A,E=u[0]-h[0]>x?-A:h[0]-u[0]>x?A:0;E===0&&(E=u[0]-h[2]>x?-A:h[2]-u[0]>x?A:0),u[0]+=E}Sd(a,u)}function zm(u,a,h,A){let x=Math.pow(2,A.z)*Bl,E=[A.x*Bl,A.y*Bl],P=[];for(let D of u)for(let B of D){let V=[B.x+E[0],B.y+E[1]];Da(V,a,h,x),P.push(V)}return P}function bx(u,a,h,A){let x=Math.pow(2,A.z)*Bl,E=[A.x*Bl,A.y*Bl],P=[];for(let B of u){let V=[];for(let q of B){let Q=[q.x+E[0],q.y+E[1]];Sd(a,Q),V.push(Q)}P.push(V)}if(a[2]-a[0]<=x/2){(D=a)[0]=D[1]=1/0,D[2]=D[3]=-1/0;for(let B of P)for(let V of B)Da(V,a,h,x)}var D;return P}class Af{constructor(a,h){this.type=wr,this.geojson=a,this.geometries=h}static parse(a,h){if(a.length!==2)return h.error(`'within' expression requires exactly one argument, but found ${a.length-1} instead.`);if(ff(a[1])){let A=a[1];if(A.type===\"FeatureCollection\"){let x=[];for(let E of A.features){let{type:P,coordinates:D}=E.geometry;P===\"Polygon\"&&x.push(D),P===\"MultiPolygon\"&&x.push(...D)}if(x.length)return new Af(A,{type:\"MultiPolygon\",coordinates:x})}else if(A.type===\"Feature\"){let x=A.geometry.type;if(x===\"Polygon\"||x===\"MultiPolygon\")return new Af(A,A.geometry)}else if(A.type===\"Polygon\"||A.type===\"MultiPolygon\")return new Af(A,A)}return h.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\")}evaluate(a){if(a.geometry()!=null&&a.canonicalID()!=null){if(a.geometryType()===\"Point\")return function(h,A){let x=[1/0,1/0,-1/0,-1/0],E=[1/0,1/0,-1/0,-1/0],P=h.canonicalID();if(A.type===\"Polygon\"){let D=Hn(A.coordinates,E,P),B=zm(h.geometry(),x,E,P);if(!pf(x,E))return!1;for(let V of B)if(!Ct(V,D))return!1}if(A.type===\"MultiPolygon\"){let D=zs(A.coordinates,E,P),B=zm(h.geometry(),x,E,P);if(!pf(x,E))return!1;for(let V of B)if(!$t(V,D))return!1}return!0}(a,this.geometries);if(a.geometryType()===\"LineString\")return function(h,A){let x=[1/0,1/0,-1/0,-1/0],E=[1/0,1/0,-1/0,-1/0],P=h.canonicalID();if(A.type===\"Polygon\"){let D=Hn(A.coordinates,E,P),B=bx(h.geometry(),x,E,P);if(!pf(x,E))return!1;for(let V of B)if(!ni(V,D))return!1}if(A.type===\"MultiPolygon\"){let D=zs(A.coordinates,E,P),B=bx(h.geometry(),x,E,P);if(!pf(x,E))return!1;for(let V of B)if(!rs(V,D))return!1}return!0}(a,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}class Nm{constructor(a,h){this.type=h.type,this.name=a,this.boundExpression=h}static parse(a,h){if(a.length!==2||typeof a[1]!=\"string\")return h.error(\"'var' expression requires exactly one string literal argument.\");let A=a[1];return h.scope.has(A)?new Nm(A,h.scope.get(A)):h.error(`Unknown variable \"${A}\". Make sure \"${A}\" has been bound in an enclosing \"let\" expression before using it.`,1)}evaluate(a){return this.boundExpression.evaluate(a)}eachChild(){}outputDefined(){return!1}}class Oa{constructor(a,h,A,x){this.name=a,this.type=h,this._evaluate=A,this.args=x}evaluate(a){return this._evaluate(a,this.args)}eachChild(a){this.args.forEach(a)}outputDefined(){return!1}static parse(a,h){let A=a[0],x=Oa.definitions[A];if(!x)return h.error(`Unknown expression \"${A}\". If you wanted a literal array, use [\"literal\", [...]].`,0);let E=Array.isArray(x)?x[0]:x.type,P=Array.isArray(x)?[[x[1],x[2]]]:x.overloads,D=P.filter(([V])=>!Array.isArray(V)||V.length===a.length-1),B=null;for(let[V,q]of D){B=new df(h.registry,Np,h.path,null,h.scope);let Q=[],rt=!1;for(let ot=1;ot{return rt=Q,Array.isArray(rt)?`(${rt.map(mt).join(\", \")})`:`(${mt(rt.type)}...)`;var rt}).join(\" | \"),q=[];for(let Q=1;Q{h=a?h&&Np(A):h&&A instanceof Ra}),!!h&&Um(u)&&Vp(u,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Um(u){if(u instanceof Oa&&(u.name===\"get\"&&u.args.length===1||u.name===\"feature-state\"||u.name===\"has\"&&u.args.length===1||u.name===\"properties\"||u.name===\"geometry-type\"||u.name===\"id\"||/^filter-/.test(u.name))||u instanceof Af)return!1;let a=!0;return u.eachChild(h=>{a&&!Um(h)&&(a=!1)}),a}function Up(u){if(u instanceof Oa&&u.name===\"feature-state\")return!1;let a=!0;return u.eachChild(h=>{a&&!Up(h)&&(a=!1)}),a}function Vp(u,a){if(u instanceof Oa&&a.indexOf(u.name)>=0)return!1;let h=!0;return u.eachChild(A=>{h&&!Vp(A,a)&&(h=!1)}),h}function jp(u,a){let h=u.length-1,A,x,E=0,P=h,D=0;for(;E<=P;)if(D=Math.floor((E+P)/2),A=u[D],x=u[D+1],A<=a){if(D===h||aa))throw new Hi(\"Input is not a number.\");P=D-1}return 0}class Gp{constructor(a,h,A){this.type=a,this.input=h,this.labels=[],this.outputs=[];for(let[x,E]of A)this.labels.push(x),this.outputs.push(E)}static parse(a,h){if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");let A=h.parse(a[1],1,be);if(!A)return null;let x=[],E=null;h.expectedType&&h.expectedType.kind!==\"value\"&&(E=h.expectedType);for(let P=1;P=D)return h.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',V);let Q=h.parse(B,q,E);if(!Q)return null;E=E||Q.type,x.push([D,Q])}return new Gp(E,A,x)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;return x>=h[E-1]?A[E-1].evaluate(a):A[jp(h,x)].evaluate(a)}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function LS(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,\"default\")?u.default:u}var kS=wx;function wx(u,a,h,A){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(A-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=a,this.p2x=h,this.p2y=A}wx.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,a){if(a===void 0&&(a=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,A=0;A<8;A++){var x=this.sampleCurveX(h)-u;if(Math.abs(x)x?P=h:D=h,h=.5*(D-P)+P;return h},solve:function(u,a){return this.sampleCurveY(this.solveCurveX(u,a))}};var RS=LS(kS);function mf(u,a,h){return u+h*(a-u)}function Vm(u,a,h){return u.map((A,x)=>mf(A,a[x],h))}let Zo={number:mf,color:function(u,a,h,A=\"rgb\"){switch(A){case\"rgb\":{let[x,E,P,D]=Vm(u.rgb,a.rgb,h);return new mi(x,E,P,D,!1)}case\"hcl\":{let[x,E,P,D]=u.hcl,[B,V,q,Q]=a.hcl,rt,ot;if(isNaN(x)||isNaN(B))isNaN(x)?isNaN(B)?rt=NaN:(rt=B,P!==1&&P!==0||(ot=V)):(rt=x,q!==1&&q!==0||(ot=E));else{let Vt=B-x;B>x&&Vt>180?Vt-=360:B180&&(Vt+=360),rt=x+h*Vt}let[lt,pt,xt,Mt]=function([Vt,It,zt,ie]){return Vt=isNaN(Vt)?0:Vt*_r,Ji([zt,Math.cos(Vt)*It,Math.sin(Vt)*It,ie])}([rt,ot??mf(E,V,h),mf(P,q,h),mf(D,Q,h)]);return new mi(lt,pt,xt,Mt,!1)}case\"lab\":{let[x,E,P,D]=Ji(Vm(u.lab,a.lab,h));return new mi(x,E,P,D,!1)}}},array:Vm,padding:function(u,a,h){return new wn(Vm(u.values,a.values,h))},variableAnchorOffsetCollection:function(u,a,h){let A=u.values,x=a.values;if(A.length!==x.length)throw new Hi(`Cannot interpolate values of different length. from: ${u.toString()}, to: ${a.toString()}`);let E=[];for(let P=0;Ptypeof q!=\"number\"||q<0||q>1))return h.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);x={name:\"cubic-bezier\",controlPoints:V}}}if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");if(E=h.parse(E,2,be),!E)return null;let D=[],B=null;A===\"interpolate-hcl\"||A===\"interpolate-lab\"?B=Cn:h.expectedType&&h.expectedType.kind!==\"value\"&&(B=h.expectedType);for(let V=0;V=q)return h.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',rt);let lt=h.parse(Q,ot,B);if(!lt)return null;B=B||lt.type,D.push([q,lt])}return jt(B,be)||jt(B,Cn)||jt(B,vt)||jt(B,nt)||jt(B,ct(be))?new bo(B,A,x,E,D):h.error(`Type ${mt(B)} is not interpolatable.`)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;if(x>=h[E-1])return A[E-1].evaluate(a);let P=jp(h,x),D=bo.interpolationFactor(this.interpolation,x,h[P],h[P+1]),B=A[P].evaluate(a),V=A[P+1].evaluate(a);switch(this.operator){case\"interpolate\":return Zo[this.type.kind](B,V,D);case\"interpolate-hcl\":return Zo.color(B,V,D,\"hcl\");case\"interpolate-lab\":return Zo.color(B,V,D,\"lab\")}}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function _i(u,a,h,A){let x=A-h,E=u-h;return x===0?0:a===1?E/x:(Math.pow(a,E)-1)/(Math.pow(a,x)-1)}class jm{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expectected at least one argument.\");let A=null,x=h.expectedType;x&&x.kind!==\"value\"&&(A=x);let E=[];for(let D of a.slice(1)){let B=h.parse(D,1+E.length,A,void 0,{typeAnnotation:\"omit\"});if(!B)return null;A=A||B.type,E.push(B)}if(!A)throw new Error(\"No output type\");let P=x&&E.some(D=>Dt(x,D.type));return new jm(P?mr:A,E)}evaluate(a){let h,A=null,x=0;for(let E of this.args)if(x++,A=E.evaluate(a),A&&A instanceof Wn&&!A.available&&(h||(h=A.name),A=null,x===this.args.length&&(A=h)),A!==null)break;return A}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}class Td{constructor(a,h){this.type=h.type,this.bindings=[].concat(a),this.result=h}evaluate(a){return this.result.evaluate(a)}eachChild(a){for(let h of this.bindings)a(h[1]);a(this.result)}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found ${a.length-1} instead.`);let A=[];for(let E=1;E=A.length)throw new Hi(`Array index out of bounds: ${h} > ${A.length-1}.`);if(h!==Math.floor(h))throw new Hi(`Array index must be an integer, but found ${h} instead.`);return A[h]}eachChild(a){a(this.index),a(this.input)}outputDefined(){return!1}}class Wm{constructor(a,h){this.type=wr,this.needle=a,this.haystack=h}static parse(a,h){if(a.length!==3)return h.error(`Expected 2 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,mr),x=h.parse(a[2],2,mr);return A&&x?Ut(A.type,[wr,Lr,be,ts,mr])?new Wm(A,x):h.error(`Expected first argument to be of type boolean, string, number or null, but found ${mt(A.type)} instead`):null}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!A)return!1;if(!ft(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new Hi(`Expected first argument to be of type boolean, string, number or null, but found ${mt(hn(h))} instead.`);if(!ft(A,[\"string\",\"array\"]))throw new Hi(`Expected second argument to be of type array or string, but found ${mt(hn(A))} instead.`);return A.indexOf(h)>=0}eachChild(a){a(this.needle),a(this.haystack)}outputDefined(){return!0}}class gf{constructor(a,h,A){this.type=be,this.needle=a,this.haystack=h,this.fromIndex=A}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,mr),x=h.parse(a[2],2,mr);if(!A||!x)return null;if(!Ut(A.type,[wr,Lr,be,ts,mr]))return h.error(`Expected first argument to be of type boolean, string, number or null, but found ${mt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,be);return E?new gf(A,x,E):null}return new gf(A,x)}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!ft(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new Hi(`Expected first argument to be of type boolean, string, number or null, but found ${mt(hn(h))} instead.`);if(!ft(A,[\"string\",\"array\"]))throw new Hi(`Expected second argument to be of type array or string, but found ${mt(hn(A))} instead.`);if(this.fromIndex){let x=this.fromIndex.evaluate(a);return A.indexOf(h,x)}return A.indexOf(h)}eachChild(a){a(this.needle),a(this.haystack),this.fromIndex&&a(this.fromIndex)}outputDefined(){return!1}}class Wp{constructor(a,h,A,x,E,P){this.inputType=a,this.type=h,this.input=A,this.cases=x,this.outputs=E,this.otherwise=P}static parse(a,h){if(a.length<5)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if(a.length%2!=1)return h.error(\"Expected an even number of arguments.\");let A,x;h.expectedType&&h.expectedType.kind!==\"value\"&&(x=h.expectedType);let E={},P=[];for(let V=2;VNumber.MAX_SAFE_INTEGER)return rt.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof lt==\"number\"&&Math.floor(lt)!==lt)return rt.error(\"Numeric branch labels must be integer values.\");if(A){if(rt.checkSubtype(A,hn(lt)))return null}else A=hn(lt);if(E[String(lt)]!==void 0)return rt.error(\"Branch labels must be unique.\");E[String(lt)]=P.length}let ot=h.parse(Q,V,x);if(!ot)return null;x=x||ot.type,P.push(ot)}let D=h.parse(a[1],1,mr);if(!D)return null;let B=h.parse(a[a.length-1],a.length-1,x);return B?D.type.kind!==\"value\"&&h.concat(1).checkSubtype(A,D.type)?null:new Wp(A,x,D,E,P,B):null}evaluate(a){let h=this.input.evaluate(a);return(hn(h)===this.inputType&&this.outputs[this.cases[h]]||this.otherwise).evaluate(a)}eachChild(a){a(this.input),this.outputs.forEach(a),a(this.otherwise)}outputDefined(){return this.outputs.every(a=>a.outputDefined())&&this.otherwise.outputDefined()}}class Hp{constructor(a,h,A){this.type=a,this.branches=h,this.otherwise=A}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found only ${a.length-1}.`);if(a.length%2!=0)return h.error(\"Expected an odd number of arguments.\");let A;h.expectedType&&h.expectedType.kind!==\"value\"&&(A=h.expectedType);let x=[];for(let P=1;Ph.outputDefined())&&this.otherwise.outputDefined()}}class Md{constructor(a,h,A,x){this.type=a,this.input=h,this.beginIndex=A,this.endIndex=x}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,mr),x=h.parse(a[2],2,be);if(!A||!x)return null;if(!Ut(A.type,[ct(mr),Lr,mr]))return h.error(`Expected first argument to be of type array or string, but found ${mt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,be);return E?new Md(A.type,A,x,E):null}return new Md(A.type,A,x)}evaluate(a){let h=this.input.evaluate(a),A=this.beginIndex.evaluate(a);if(!ft(h,[\"string\",\"array\"]))throw new Hi(`Expected first argument to be of type array or string, but found ${mt(hn(h))} instead.`);if(this.endIndex){let x=this.endIndex.evaluate(a);return h.slice(A,x)}return h.slice(A)}eachChild(a){a(this.input),a(this.beginIndex),this.endIndex&&a(this.endIndex)}outputDefined(){return!1}}function Ed(u,a){return u===\"==\"||u===\"!=\"?a.kind===\"boolean\"||a.kind===\"string\"||a.kind===\"number\"||a.kind===\"null\"||a.kind===\"value\":a.kind===\"string\"||a.kind===\"number\"||a.kind===\"value\"}function qp(u,a,h,A){return A.compare(a,h)===0}function Ba(u,a,h){let A=u!==\"==\"&&u!==\"!=\";return class C8{constructor(E,P,D){this.type=wr,this.lhs=E,this.rhs=P,this.collator=D,this.hasUntypedArgument=E.type.kind===\"value\"||P.type.kind===\"value\"}static parse(E,P){if(E.length!==3&&E.length!==4)return P.error(\"Expected two or three arguments.\");let D=E[0],B=P.parse(E[1],1,mr);if(!B)return null;if(!Ed(D,B.type))return P.concat(1).error(`\"${D}\" comparisons are not supported for type '${mt(B.type)}'.`);let V=P.parse(E[2],2,mr);if(!V)return null;if(!Ed(D,V.type))return P.concat(2).error(`\"${D}\" comparisons are not supported for type '${mt(V.type)}'.`);if(B.type.kind!==V.type.kind&&B.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(`Cannot compare types '${mt(B.type)}' and '${mt(V.type)}'.`);A&&(B.type.kind===\"value\"&&V.type.kind!==\"value\"?B=new so(V.type,[B]):B.type.kind!==\"value\"&&V.type.kind===\"value\"&&(V=new so(B.type,[V])));let q=null;if(E.length===4){if(B.type.kind!==\"string\"&&V.type.kind!==\"string\"&&B.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(\"Cannot use collator to compare non-string types.\");if(q=P.parse(E[3],3,Mc),!q)return null}return new C8(B,V,q)}evaluate(E){let P=this.lhs.evaluate(E),D=this.rhs.evaluate(E);if(A&&this.hasUntypedArgument){let B=hn(P),V=hn(D);if(B.kind!==V.kind||B.kind!==\"string\"&&B.kind!==\"number\")throw new Hi(`Expected arguments for \"${u}\" to be (string, string) or (number, number), but found (${B.kind}, ${V.kind}) instead.`)}if(this.collator&&!A&&this.hasUntypedArgument){let B=hn(P),V=hn(D);if(B.kind!==\"string\"||V.kind!==\"string\")return a(E,P,D)}return this.collator?h(E,P,D,this.collator.evaluate(E)):a(E,P,D)}eachChild(E){E(this.lhs),E(this.rhs),this.collator&&E(this.collator)}outputDefined(){return!0}}}let qt=Ba(\"==\",function(u,a,h){return a===h},qp),fe=Ba(\"!=\",function(u,a,h){return a!==h},function(u,a,h,A){return!qp(0,a,h,A)}),ke=Ba(\"<\",function(u,a,h){return a\",function(u,a,h){return a>h},function(u,a,h,A){return A.compare(a,h)>0}),g=Ba(\"<=\",function(u,a,h){return a<=h},function(u,a,h,A){return A.compare(a,h)<=0}),zi=Ba(\">=\",function(u,a,h){return a>=h},function(u,a,h,A){return A.compare(a,h)>=0});class yi{constructor(a,h,A,x,E){this.type=Lr,this.number=a,this.locale=h,this.currency=A,this.minFractionDigits=x,this.maxFractionDigits=E}static parse(a,h){if(a.length!==3)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,be);if(!A)return null;let x=a[2];if(typeof x!=\"object\"||Array.isArray(x))return h.error(\"NumberFormat options argument must be an object.\");let E=null;if(x.locale&&(E=h.parse(x.locale,1,Lr),!E))return null;let P=null;if(x.currency&&(P=h.parse(x.currency,1,Lr),!P))return null;let D=null;if(x[\"min-fraction-digits\"]&&(D=h.parse(x[\"min-fraction-digits\"],1,be),!D))return null;let B=null;return x[\"max-fraction-digits\"]&&(B=h.parse(x[\"max-fraction-digits\"],1,be),!B)?null:new yi(A,E,P,D,B)}evaluate(a){return new Intl.NumberFormat(this.locale?this.locale.evaluate(a):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(a):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(a):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(a):void 0}).format(this.number.evaluate(a))}eachChild(a){a(this.number),this.locale&&a(this.locale),this.currency&&a(this.currency),this.minFractionDigits&&a(this.minFractionDigits),this.maxFractionDigits&&a(this.maxFractionDigits)}outputDefined(){return!1}}class bt{constructor(a){this.type=jn,this.sections=a}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[1];if(!Array.isArray(A)&&typeof A==\"object\")return h.error(\"First argument must be an image or text section.\");let x=[],E=!1;for(let P=1;P<=a.length-1;++P){let D=a[P];if(E&&typeof D==\"object\"&&!Array.isArray(D)){E=!1;let B=null;if(D[\"font-scale\"]&&(B=h.parse(D[\"font-scale\"],1,be),!B))return null;let V=null;if(D[\"text-font\"]&&(V=h.parse(D[\"text-font\"],1,ct(Lr)),!V))return null;let q=null;if(D[\"text-color\"]&&(q=h.parse(D[\"text-color\"],1,Cn),!q))return null;let Q=x[x.length-1];Q.scale=B,Q.font=V,Q.textColor=q}else{let B=h.parse(a[P],1,mr);if(!B)return null;let V=B.type.kind;if(V!==\"string\"&&V!==\"value\"&&V!==\"null\"&&V!==\"resolvedImage\")return h.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");E=!0,x.push({content:B,scale:null,font:null,textColor:null})}}return new bt(x)}evaluate(a){return new Gn(this.sections.map(h=>{let A=h.content.evaluate(a);return hn(A)===tt?new Ec(\"\",A,null,null,null):new Ec(no(A),null,h.scale?h.scale.evaluate(a):null,h.font?h.font.evaluate(a).join(\",\"):null,h.textColor?h.textColor.evaluate(a):null)}))}eachChild(a){for(let h of this.sections)a(h.content),h.scale&&a(h.scale),h.font&&a(h.font),h.textColor&&a(h.textColor)}outputDefined(){return!1}}class Ms{constructor(a){this.type=tt,this.input=a}static parse(a,h){if(a.length!==2)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Lr);return A?new Ms(A):h.error(\"No image name provided.\")}evaluate(a){let h=this.input.evaluate(a),A=Wn.fromString(h);return A&&a.availableImages&&(A.available=a.availableImages.indexOf(h)>-1),A}eachChild(a){a(this.input)}outputDefined(){return!1}}class oo{constructor(a){this.type=be,this.input=a}static parse(a,h){if(a.length!==2)return h.error(`Expected 1 argument, but found ${a.length-1} instead.`);let A=h.parse(a[1],1);return A?A.type.kind!==\"array\"&&A.type.kind!==\"string\"&&A.type.kind!==\"value\"?h.error(`Expected argument of type string or array, but found ${mt(A.type)} instead.`):new oo(A):null}evaluate(a){let h=this.input.evaluate(a);if(typeof h==\"string\"||Array.isArray(h))return h.length;throw new Hi(`Expected value to be of type string or array, but found ${mt(hn(h))} instead.`)}eachChild(a){a(this.input)}outputDefined(){return!1}}let Zr={\"==\":qt,\"!=\":fe,\">\":yr,\"<\":ke,\">=\":zi,\"<=\":g,array:so,at:Gm,boolean:so,case:Hp,coalesce:jm,collator:Pc,format:bt,image:Ms,in:Wm,\"index-of\":gf,interpolate:bo,\"interpolate-hcl\":bo,\"interpolate-lab\":bo,length:oo,let:Td,literal:Ra,match:Wp,number:so,\"number-format\":yi,object:so,slice:Md,step:Gp,string:so,\"to-boolean\":qo,\"to-color\":qo,\"to-number\":qo,\"to-string\":qo,var:Nm,within:Af};function fn(u,[a,h,A,x]){a=a.evaluate(u),h=h.evaluate(u),A=A.evaluate(u);let E=x?x.evaluate(u):1,P=fu(a,h,A,E);if(P)throw new Hi(P);return new mi(a/255,h/255,A/255,E,!1)}function Fl(u,a){return u in a}function Kr(u,a){let h=a[u];return h===void 0?null:h}function Yr(u){return{type:u}}function Ic(u){return{result:\"success\",value:u}}function _f(u){return{result:\"error\",value:u}}function yf(u){return u[\"property-type\"]===\"data-driven\"||u[\"property-type\"]===\"cross-faded-data-driven\"}function Zp(u){return!!u.expression&&u.expression.parameters.indexOf(\"zoom\")>-1}function Yo(u){return!!u.expression&&u.expression.interpolated}function si(u){return u instanceof Number?\"number\":u instanceof String?\"string\":u instanceof Boolean?\"boolean\":Array.isArray(u)?\"array\":u===null?\"null\":typeof u}function Fa(u){return typeof u==\"object\"&&u!==null&&!Array.isArray(u)}function Sx(u){return u}function du(u,a){let h=a.type===\"color\",A=u.stops&&typeof u.stops[0][0]==\"object\",x=A||!(A||u.property!==void 0),E=u.type||(Yo(a)?\"exponential\":\"interval\");if(h||a.type===\"padding\"){let q=h?mi.parse:wn.parse;(u=Ho({},u)).stops&&(u.stops=u.stops.map(Q=>[Q[0],q(Q[1])])),u.default=q(u.default?u.default:a.default)}if(u.colorSpace&&(P=u.colorSpace)!==\"rgb\"&&P!==\"hcl\"&&P!==\"lab\")throw new Error(`Unknown color space: \"${u.colorSpace}\"`);var P;let D,B,V;if(E===\"exponential\")D=oi;else if(E===\"interval\")D=Li;else if(E===\"categorical\"){D=Pt,B=Object.create(null);for(let q of u.stops)B[q[0]]=q[1];V=typeof u.stops[0][0]}else{if(E!==\"identity\")throw new Error(`Unknown function type \"${E}\"`);D=Hm}if(A){let q={},Q=[];for(let lt=0;ltlt[0]),evaluate:({zoom:lt},pt)=>oi({stops:rt,base:u.base},a,lt).evaluate(lt,pt)}}if(x){let q=E===\"exponential\"?{name:\"exponential\",base:u.base!==void 0?u.base:1}:null;return{kind:\"camera\",interpolationType:q,interpolationFactor:bo.interpolationFactor.bind(void 0,q),zoomStops:u.stops.map(Q=>Q[0]),evaluate:({zoom:Q})=>D(u,a,Q,B,V)}}return{kind:\"source\",evaluate(q,Q){let rt=Q&&Q.properties?Q.properties[u.property]:void 0;return rt===void 0?Sr(u.default,a.default):D(u,a,rt,B,V)}}}function Sr(u,a,h){return u!==void 0?u:a!==void 0?a:h!==void 0?h:void 0}function Pt(u,a,h,A,x){return Sr(typeof h===x?A[h]:void 0,u.default,a.default)}function Li(u,a,h){if(si(h)!==\"number\")return Sr(u.default,a.default);let A=u.stops.length;if(A===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[A-1][0])return u.stops[A-1][1];let x=jp(u.stops.map(E=>E[0]),h);return u.stops[x][1]}function oi(u,a,h){let A=u.base!==void 0?u.base:1;if(si(h)!==\"number\")return Sr(u.default,a.default);let x=u.stops.length;if(x===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[x-1][0])return u.stops[x-1][1];let E=jp(u.stops.map(q=>q[0]),h),P=function(q,Q,rt,ot){let lt=ot-rt,pt=q-rt;return lt===0?0:Q===1?pt/lt:(Math.pow(Q,pt)-1)/(Math.pow(Q,lt)-1)}(h,A,u.stops[E][0],u.stops[E+1][0]),D=u.stops[E][1],B=u.stops[E+1][1],V=Zo[a.type]||Sx;return typeof D.evaluate==\"function\"?{evaluate(...q){let Q=D.evaluate.apply(void 0,q),rt=B.evaluate.apply(void 0,q);if(Q!==void 0&&rt!==void 0)return V(Q,rt,P,u.colorSpace)}}:V(D,B,P,u.colorSpace)}function Hm(u,a,h){switch(a.type){case\"color\":h=mi.parse(h);break;case\"formatted\":h=Gn.fromString(h.toString());break;case\"resolvedImage\":h=Wn.fromString(h.toString());break;case\"padding\":h=wn.parse(h);break;default:si(h)===a.type||a.type===\"enum\"&&a.values[h]||(h=void 0)}return Sr(h,u.default,a.default)}Oa.register(Zr,{error:[{kind:\"error\"},[Lr],(u,[a])=>{throw new Hi(a.evaluate(u))}],typeof:[Lr,[mr],(u,[a])=>mt(hn(a.evaluate(u)))],\"to-rgba\":[ct(be,4),[Cn],(u,[a])=>{let[h,A,x,E]=a.evaluate(u).rgb;return[255*h,255*A,255*x,E]}],rgb:[Cn,[be,be,be],fn],rgba:[Cn,[be,be,be,be],fn],has:{type:wr,overloads:[[[Lr],(u,[a])=>Fl(a.evaluate(u),u.properties())],[[Lr,ka],(u,[a,h])=>Fl(a.evaluate(u),h.evaluate(u))]]},get:{type:mr,overloads:[[[Lr],(u,[a])=>Kr(a.evaluate(u),u.properties())],[[Lr,ka],(u,[a,h])=>Kr(a.evaluate(u),h.evaluate(u))]]},\"feature-state\":[mr,[Lr],(u,[a])=>Kr(a.evaluate(u),u.featureState||{})],properties:[ka,[],u=>u.properties()],\"geometry-type\":[Lr,[],u=>u.geometryType()],id:[mr,[],u=>u.id()],zoom:[be,[],u=>u.globals.zoom],\"heatmap-density\":[be,[],u=>u.globals.heatmapDensity||0],\"line-progress\":[be,[],u=>u.globals.lineProgress||0],accumulated:[mr,[],u=>u.globals.accumulated===void 0?null:u.globals.accumulated],\"+\":[be,Yr(be),(u,a)=>{let h=0;for(let A of a)h+=A.evaluate(u);return h}],\"*\":[be,Yr(be),(u,a)=>{let h=1;for(let A of a)h*=A.evaluate(u);return h}],\"-\":{type:be,overloads:[[[be,be],(u,[a,h])=>a.evaluate(u)-h.evaluate(u)],[[be],(u,[a])=>-a.evaluate(u)]]},\"/\":[be,[be,be],(u,[a,h])=>a.evaluate(u)/h.evaluate(u)],\"%\":[be,[be,be],(u,[a,h])=>a.evaluate(u)%h.evaluate(u)],ln2:[be,[],()=>Math.LN2],pi:[be,[],()=>Math.PI],e:[be,[],()=>Math.E],\"^\":[be,[be,be],(u,[a,h])=>Math.pow(a.evaluate(u),h.evaluate(u))],sqrt:[be,[be],(u,[a])=>Math.sqrt(a.evaluate(u))],log10:[be,[be],(u,[a])=>Math.log(a.evaluate(u))/Math.LN10],ln:[be,[be],(u,[a])=>Math.log(a.evaluate(u))],log2:[be,[be],(u,[a])=>Math.log(a.evaluate(u))/Math.LN2],sin:[be,[be],(u,[a])=>Math.sin(a.evaluate(u))],cos:[be,[be],(u,[a])=>Math.cos(a.evaluate(u))],tan:[be,[be],(u,[a])=>Math.tan(a.evaluate(u))],asin:[be,[be],(u,[a])=>Math.asin(a.evaluate(u))],acos:[be,[be],(u,[a])=>Math.acos(a.evaluate(u))],atan:[be,[be],(u,[a])=>Math.atan(a.evaluate(u))],min:[be,Yr(be),(u,a)=>Math.min(...a.map(h=>h.evaluate(u)))],max:[be,Yr(be),(u,a)=>Math.max(...a.map(h=>h.evaluate(u)))],abs:[be,[be],(u,[a])=>Math.abs(a.evaluate(u))],round:[be,[be],(u,[a])=>{let h=a.evaluate(u);return h<0?-Math.round(-h):Math.round(h)}],floor:[be,[be],(u,[a])=>Math.floor(a.evaluate(u))],ceil:[be,[be],(u,[a])=>Math.ceil(a.evaluate(u))],\"filter-==\":[wr,[Lr,mr],(u,[a,h])=>u.properties()[a.value]===h.value],\"filter-id-==\":[wr,[mr],(u,[a])=>u.id()===a.value],\"filter-type-==\":[wr,[Lr],(u,[a])=>u.geometryType()===a.value],\"filter-<\":[wr,[Lr,mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A{let h=u.id(),A=a.value;return typeof h==typeof A&&h\":[wr,[Lr,mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>x}],\"filter-id->\":[wr,[mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>A}],\"filter-<=\":[wr,[Lr,mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A<=x}],\"filter-id-<=\":[wr,[mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h<=A}],\"filter->=\":[wr,[Lr,mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>=x}],\"filter-id->=\":[wr,[mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>=A}],\"filter-has\":[wr,[mr],(u,[a])=>a.value in u.properties()],\"filter-has-id\":[wr,[],u=>u.id()!==null&&u.id()!==void 0],\"filter-type-in\":[wr,[ct(Lr)],(u,[a])=>a.value.indexOf(u.geometryType())>=0],\"filter-id-in\":[wr,[ct(mr)],(u,[a])=>a.value.indexOf(u.id())>=0],\"filter-in-small\":[wr,[Lr,ct(mr)],(u,[a,h])=>h.value.indexOf(u.properties()[a.value])>=0],\"filter-in-large\":[wr,[Lr,ct(mr)],(u,[a,h])=>function(A,x,E,P){for(;E<=P;){let D=E+P>>1;if(x[D]===A)return!0;x[D]>A?P=D-1:E=D+1}return!1}(u.properties()[a.value],h.value,0,h.value.length-1)],all:{type:wr,overloads:[[[wr,wr],(u,[a,h])=>a.evaluate(u)&&h.evaluate(u)],[Yr(wr),(u,a)=>{for(let h of a)if(!h.evaluate(u))return!1;return!0}]]},any:{type:wr,overloads:[[[wr,wr],(u,[a,h])=>a.evaluate(u)||h.evaluate(u)],[Yr(wr),(u,a)=>{for(let h of a)if(h.evaluate(u))return!0;return!1}]]},\"!\":[wr,[wr],(u,[a])=>!a.evaluate(u)],\"is-supported-script\":[wr,[Lr],(u,[a])=>{let h=u.globals&&u.globals.isSupportedScript;return!h||h(a.evaluate(u))}],upcase:[Lr,[Lr],(u,[a])=>a.evaluate(u).toUpperCase()],downcase:[Lr,[Lr],(u,[a])=>a.evaluate(u).toLowerCase()],concat:[Lr,Yr(mr),(u,a)=>a.map(h=>no(h.evaluate(u))).join(\"\")],\"resolved-locale\":[Lr,[Mc],(u,[a])=>a.evaluate(u).resolvedLocale()]});class en{constructor(a,h){var A;this.expression=a,this._warningHistory={},this._evaluator=new Ti,this._defaultValue=h?(A=h).type===\"color\"&&Fa(A.default)?new mi(0,0,0,0):A.type===\"color\"?mi.parse(A.default)||null:A.type===\"padding\"?wn.parse(A.default)||null:A.type===\"variableAnchorOffsetCollection\"?kn.parse(A.default)||null:A.default===void 0?null:A.default:null,this._enumValues=h&&h.type===\"enum\"?h.values:null}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._evaluator.globals=a,this._evaluator.feature=h,this._evaluator.featureState=A,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P,this.expression.evaluate(this._evaluator)}evaluate(a,h,A,x,E,P){this._evaluator.globals=a,this._evaluator.feature=h||null,this._evaluator.featureState=A||null,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P||null;try{let D=this.expression.evaluate(this._evaluator);if(D==null||typeof D==\"number\"&&D!=D)return this._defaultValue;if(this._enumValues&&!(D in this._enumValues))throw new Hi(`Expected value to be one of ${Object.keys(this._enumValues).map(B=>JSON.stringify(B)).join(\", \")}, but found ${JSON.stringify(D)} instead.`);return D}catch(D){return this._warningHistory[D.message]||(this._warningHistory[D.message]=!0,typeof console<\"u\"&&console.warn(D.message)),this._defaultValue}}}function Ni(u){return Array.isArray(u)&&u.length>0&&typeof u[0]==\"string\"&&u[0]in Zr}function uh(u,a){let h=new df(Zr,Np,[],a?function(x){let E={color:Cn,string:Lr,number:be,enum:Lr,boolean:wr,formatted:jn,padding:vt,resolvedImage:tt,variableAnchorOffsetCollection:nt};return x.type===\"array\"?ct(E[x.value]||mr,x.length):E[x.type]}(a):void 0),A=h.parse(u,void 0,void 0,void 0,a&&a.type===\"string\"?{typeAnnotation:\"coerce\"}:void 0);return A?Ic(new en(A,a)):_f(h.errors)}class wt{constructor(a,h){this.kind=a,this._styleExpression=h,this.isStateDependent=a!==\"constant\"&&!Up(h.expression)}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}}class qm{constructor(a,h,A,x){this.kind=a,this.zoomStops=A,this._styleExpression=h,this.isStateDependent=a!==\"camera\"&&!Up(h.expression),this.interpolationType=x}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}interpolationFactor(a,h,A){return this.interpolationType?bo.interpolationFactor(this.interpolationType,a,h,A):0}}function Qg(u,a){let h=uh(u,a);if(h.result===\"error\")return h;let A=h.value.expression,x=Um(A);if(!x&&!yf(a))return _f([new Vn(\"\",\"data expressions not supported\")]);let E=Vp(A,[\"zoom\"]);if(!E&&!Zp(a))return _f([new Vn(\"\",\"zoom expressions not supported\")]);let P=$p(A);return P||E?P instanceof Vn?_f([P]):P instanceof bo&&!Yo(a)?_f([new Vn(\"\",'\"interpolate\" expressions cannot be used with this property')]):Ic(P?new qm(x?\"camera\":\"composite\",h.value,P.labels,P instanceof bo?P.interpolation:void 0):new wt(x?\"constant\":\"source\",h.value)):_f([new Vn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class Yp{constructor(a,h){this._parameters=a,this._specification=h,Ho(this,du(this._parameters,this._specification))}static deserialize(a){return new Yp(a._parameters,a._specification)}static serialize(a){return{_parameters:a._parameters,_specification:a._specification}}}function $p(u){let a=null;if(u instanceof Td)a=$p(u.result);else if(u instanceof jm){for(let h of u.args)if(a=$p(h),a)break}else(u instanceof Gp||u instanceof bo)&&u.input instanceof Oa&&u.input.name===\"zoom\"&&(a=u);return a instanceof Vn||u.eachChild(h=>{let A=$p(h);A instanceof Vn?a=A:!a&&A?a=new Vn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):a&&A&&a!==A&&(a=new Vn(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'))}),a}function Qp(u){if(u===!0||u===!1)return!0;if(!Array.isArray(u)||u.length===0)return!1;switch(u[0]){case\"has\":return u.length>=2&&u[1]!==\"$id\"&&u[1]!==\"$type\";case\"in\":return u.length>=3&&(typeof u[1]!=\"string\"||Array.isArray(u[2]));case\"!in\":case\"!has\":case\"none\":return!1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return u.length!==3||Array.isArray(u[1])||Array.isArray(u[2]);case\"any\":case\"all\":for(let a of u.slice(1))if(!Qp(a)&&typeof a!=\"boolean\")return!1;return!0;default:return!0}}let Xg={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Pd(u){if(u==null)return{filter:()=>!0,needGeometry:!1};Qp(u)||(u=ua(u));let a=uh(u,Xg);if(a.result===\"error\")throw new Error(a.value.map(h=>`${h.key}: ${h.message}`).join(\", \"));return{filter:(h,A,x)=>a.value.evaluate(h,A,{},x),needGeometry:vf(u)}}function Kg(u,a){return ua?1:0}function vf(u){if(!Array.isArray(u))return!1;if(u[0]===\"within\")return!0;for(let a=1;a\"||a===\"<=\"||a===\">=\"?Rn(u[1],u[2],a):a===\"any\"?(h=u.slice(1),[\"any\"].concat(h.map(ua))):a===\"all\"?[\"all\"].concat(u.slice(1).map(ua)):a===\"none\"?[\"all\"].concat(u.slice(1).map(ua).map(Xp)):a===\"in\"?Jg(u[1],u.slice(2)):a===\"!in\"?Xp(Jg(u[1],u.slice(2))):a===\"has\"?t_(u[1]):a===\"!has\"?Xp(t_(u[1])):a!==\"within\"||u;var h}function Rn(u,a,h){switch(u){case\"$type\":return[`filter-type-${h}`,a];case\"$id\":return[`filter-id-${h}`,a];default:return[`filter-${h}`,u,a]}}function Jg(u,a){if(a.length===0)return!1;switch(u){case\"$type\":return[\"filter-type-in\",[\"literal\",a]];case\"$id\":return[\"filter-id-in\",[\"literal\",a]];default:return a.length>200&&!a.some(h=>typeof h!=typeof a[0])?[\"filter-in-large\",u,[\"literal\",a.sort(Kg)]]:[\"filter-in-small\",u,[\"literal\",a]]}}function t_(u){switch(u){case\"$type\":return!0;case\"$id\":return[\"filter-has-id\"];default:return[\"filter-has\",u]}}function Xp(u){return[\"!\",u]}function Zm(u){let a=typeof u;if(a===\"number\"||a===\"boolean\"||a===\"string\"||u==null)return JSON.stringify(u);if(Array.isArray(u)){let x=\"[\";for(let E of u)x+=`${Zm(E)},`;return`${x}]`}let h=Object.keys(u).sort(),A=\"{\";for(let x=0;xA.maximum?[new Ae(a,h,`${h} is greater than the maximum value ${A.maximum}`)]:[]}function i_(u){let a=u.valueSpec,h=Sn(u.value.type),A,x,E,P={},D=h!==\"categorical\"&&u.value.property===void 0,B=!D,V=si(u.value.stops)===\"array\"&&si(u.value.stops[0])===\"array\"&&si(u.value.stops[0][0])===\"object\",q=Ns({key:u.key,value:u.value,valueSpec:u.styleSpec.function,validateSpec:u.validateSpec,style:u.style,styleSpec:u.styleSpec,objectElementValidators:{stops:function(ot){if(h===\"identity\")return[new Ae(ot.key,ot.value,'identity function may not have a \"stops\" property')];let lt=[],pt=ot.value;return lt=lt.concat(Kp({key:ot.key,value:pt,valueSpec:ot.valueSpec,validateSpec:ot.validateSpec,style:ot.style,styleSpec:ot.styleSpec,arrayElementValidator:Q})),si(pt)===\"array\"&&pt.length===0&<.push(new Ae(ot.key,pt,\"array must have at least one stop\")),lt},default:function(ot){return ot.validateSpec({key:ot.key,value:ot.value,valueSpec:a,validateSpec:ot.validateSpec,style:ot.style,styleSpec:ot.styleSpec})}}});return h===\"identity\"&&D&&q.push(new Ae(u.key,u.value,'missing required property \"property\"')),h===\"identity\"||u.value.stops||q.push(new Ae(u.key,u.value,'missing required property \"stops\"')),h===\"exponential\"&&u.valueSpec.expression&&!Yo(u.valueSpec)&&q.push(new Ae(u.key,u.value,\"exponential functions not supported\")),u.styleSpec.$version>=8&&(B&&!yf(u.valueSpec)?q.push(new Ae(u.key,u.value,\"property functions not supported\")):D&&!Zp(u.valueSpec)&&q.push(new Ae(u.key,u.value,\"zoom functions not supported\"))),h!==\"categorical\"&&!V||u.value.property!==void 0||q.push(new Ae(u.key,u.value,'\"property\" property is required')),q;function Q(ot){let lt=[],pt=ot.value,xt=ot.key;if(si(pt)!==\"array\")return[new Ae(xt,pt,`array expected, ${si(pt)} found`)];if(pt.length!==2)return[new Ae(xt,pt,`array length 2 expected, length ${pt.length} found`)];if(V){if(si(pt[0])!==\"object\")return[new Ae(xt,pt,`object expected, ${si(pt[0])} found`)];if(pt[0].zoom===void 0)return[new Ae(xt,pt,\"object stop key must have zoom\")];if(pt[0].value===void 0)return[new Ae(xt,pt,\"object stop key must have value\")];if(E&&E>Sn(pt[0].zoom))return[new Ae(xt,pt[0].zoom,\"stop zoom values must appear in ascending order\")];Sn(pt[0].zoom)!==E&&(E=Sn(pt[0].zoom),x=void 0,P={}),lt=lt.concat(Ns({key:`${xt}[0]`,value:pt[0],valueSpec:{zoom:{}},validateSpec:ot.validateSpec,style:ot.style,styleSpec:ot.styleSpec,objectElementValidators:{zoom:Jp,value:rt}}))}else lt=lt.concat(rt({key:`${xt}[0]`,value:pt[0],valueSpec:{},validateSpec:ot.validateSpec,style:ot.style,styleSpec:ot.styleSpec},pt));return Ni(Mi(pt[1]))?lt.concat([new Ae(`${xt}[1]`,pt[1],\"expressions are not allowed in function stops.\")]):lt.concat(ot.validateSpec({key:`${xt}[1]`,value:pt[1],valueSpec:a,validateSpec:ot.validateSpec,style:ot.style,styleSpec:ot.styleSpec}))}function rt(ot,lt){let pt=si(ot.value),xt=Sn(ot.value),Mt=ot.value!==null?ot.value:lt;if(A){if(pt!==A)return[new Ae(ot.key,Mt,`${pt} stop domain type must match previous stop domain type ${A}`)]}else A=pt;if(pt!==\"number\"&&pt!==\"string\"&&pt!==\"boolean\")return[new Ae(ot.key,Mt,\"stop domain value must be a number, string, or boolean\")];if(pt!==\"number\"&&h!==\"categorical\"){let Vt=`number expected, ${pt} found`;return yf(a)&&h===void 0&&(Vt+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new Ae(ot.key,Mt,Vt)]}return h!==\"categorical\"||pt!==\"number\"||isFinite(xt)&&Math.floor(xt)===xt?h!==\"categorical\"&&pt===\"number\"&&x!==void 0&&xtnew Ae(`${u.key}${A.key}`,u.value,A.message));let h=a.value.expression||a.value._styleExpression.expression;if(u.expressionContext===\"property\"&&u.propertyKey===\"text-font\"&&!h.outputDefined())return[new Ae(u.key,u.value,`Invalid data expression for \"${u.propertyKey}\". Output values must be contained as literals within the expression.`)];if(u.expressionContext===\"property\"&&u.propertyType===\"layout\"&&!Up(h))return[new Ae(u.key,u.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(u.expressionContext===\"filter\"&&!Up(h))return[new Ae(u.key,u.value,'\"feature-state\" data expressions are not supported with filters.')];if(u.expressionContext&&u.expressionContext.indexOf(\"cluster\")===0){if(!Vp(h,[\"zoom\",\"feature-state\"]))return[new Ae(u.key,u.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(u.expressionContext===\"cluster-initial\"&&!Um(h))return[new Ae(u.key,u.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return[]}function Cc(u){let a=u.key,h=u.value,A=u.valueSpec,x=[];return Array.isArray(A.values)?A.values.indexOf(Sn(h))===-1&&x.push(new Ae(a,h,`expected one of [${A.values.join(\", \")}], ${JSON.stringify(h)} found`)):Object.keys(A.values).indexOf(Sn(h))===-1&&x.push(new Ae(a,h,`expected one of [${Object.keys(A.values).join(\", \")}], ${JSON.stringify(h)} found`)),x}function Au(u){return Qp(Mi(u.value))?pu(Ho({},u,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):xf(u)}function xf(u){let a=u.value,h=u.key;if(si(a)!==\"array\")return[new Ae(h,a,`array expected, ${si(a)} found`)];let A=u.styleSpec,x,E=[];if(a.length<1)return[new Ae(h,a,\"filter array must have at least 1 element\")];switch(E=E.concat(Cc({key:`${h}[0]`,value:a[0],valueSpec:A.filter_operator,style:u.style,styleSpec:u.styleSpec})),Sn(a[0])){case\"<\":case\"<=\":case\">\":case\">=\":a.length>=2&&Sn(a[1])===\"$type\"&&E.push(new Ae(h,a,`\"$type\" cannot be use with operator \"${a[0]}\"`));case\"==\":case\"!=\":a.length!==3&&E.push(new Ae(h,a,`filter array for operator \"${a[0]}\" must have 3 elements`));case\"in\":case\"!in\":a.length>=2&&(x=si(a[1]),x!==\"string\"&&E.push(new Ae(`${h}[1]`,a[1],`string expected, ${x} found`)));for(let P=2;P{V in h&&a.push(new Ae(A,h[V],`\"${V}\" is prohibited for ref layers`))}),x.layers.forEach(V=>{Sn(V.id)===D&&(B=V)}),B?B.ref?a.push(new Ae(A,h.ref,\"ref cannot reference another ref layer\")):P=Sn(B.type):a.push(new Ae(A,h.ref,`ref layer \"${D}\" not found`))}else if(P!==\"background\")if(h.source){let B=x.sources&&x.sources[h.source],V=B&&Sn(B.type);B?V===\"vector\"&&P===\"raster\"?a.push(new Ae(A,h.source,`layer \"${h.id}\" requires a raster source`)):V!==\"raster-dem\"&&P===\"hillshade\"?a.push(new Ae(A,h.source,`layer \"${h.id}\" requires a raster-dem source`)):V===\"raster\"&&P!==\"raster\"?a.push(new Ae(A,h.source,`layer \"${h.id}\" requires a vector source`)):V!==\"vector\"||h[\"source-layer\"]?V===\"raster-dem\"&&P!==\"hillshade\"?a.push(new Ae(A,h.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):P!==\"line\"||!h.paint||!h.paint[\"line-gradient\"]||V===\"geojson\"&&B.lineMetrics||a.push(new Ae(A,h,`layer \"${h.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):a.push(new Ae(A,h,`layer \"${h.id}\" must specify a \"source-layer\"`)):a.push(new Ae(A,h.source,`source \"${h.source}\" not found`))}else a.push(new Ae(A,h,'missing required property \"source\"'));return a=a.concat(Ns({key:A,value:h,valueSpec:E.layer,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,objectElementValidators:{\"*\":()=>[],type:()=>u.validateSpec({key:`${A}.type`,value:h.type,valueSpec:E.layer.type,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,object:h,objectKey:\"type\"}),filter:Au,layout:B=>Ns({layer:h,key:B.key,value:B.value,style:B.style,styleSpec:B.styleSpec,validateSpec:B.validateSpec,objectElementValidators:{\"*\":V=>bf(Ho({layerType:P},V))}}),paint:B=>Ns({layer:h,key:B.key,value:B.value,style:B.style,styleSpec:B.styleSpec,validateSpec:B.validateSpec,objectElementValidators:{\"*\":V=>$m(Ho({layerType:P},V))}})}})),a}function Lc(u){let a=u.value,h=u.key,A=si(a);return A!==\"string\"?[new Ae(h,a,`string expected, ${A} found`)]:[]}let n_={promoteId:function({key:u,value:a}){if(si(a)===\"string\")return Lc({key:u,value:a});{let h=[];for(let A in a)h.push(...Lc({key:`${u}.${A}`,value:a[A]}));return h}}};function s_(u){let a=u.value,h=u.key,A=u.styleSpec,x=u.style,E=u.validateSpec;if(!a.type)return[new Ae(h,a,'\"type\" is required')];let P=Sn(a.type),D;switch(P){case\"vector\":case\"raster\":return D=Ns({key:h,value:a,valueSpec:A[`source_${P.replace(\"-\",\"_\")}`],style:u.style,styleSpec:A,objectElementValidators:n_,validateSpec:E}),D;case\"raster-dem\":return D=function(B){var V;let q=(V=B.sourceName)!==null&&V!==void 0?V:\"\",Q=B.value,rt=B.styleSpec,ot=rt.source_raster_dem,lt=B.style,pt=[],xt=si(Q);if(Q===void 0)return pt;if(xt!==\"object\")return pt.push(new Ae(\"source_raster_dem\",Q,`object expected, ${xt} found`)),pt;let Mt=Sn(Q.encoding)===\"custom\",Vt=[\"redFactor\",\"greenFactor\",\"blueFactor\",\"baseShift\"],It=B.value.encoding?`\"${B.value.encoding}\"`:\"Default\";for(let zt in Q)!Mt&&Vt.includes(zt)?pt.push(new Ae(zt,Q[zt],`In \"${q}\": \"${zt}\" is only valid when \"encoding\" is set to \"custom\". ${It} encoding found`)):ot[zt]?pt=pt.concat(B.validateSpec({key:zt,value:Q[zt],valueSpec:ot[zt],validateSpec:B.validateSpec,style:lt,styleSpec:rt})):pt.push(new Ae(zt,Q[zt],`unknown property \"${zt}\"`));return pt}({sourceName:h,value:a,style:u.style,styleSpec:A,validateSpec:E}),D;case\"geojson\":if(D=Ns({key:h,value:a,valueSpec:A.source_geojson,style:x,styleSpec:A,validateSpec:E,objectElementValidators:n_}),a.cluster)for(let B in a.clusterProperties){let[V,q]=a.clusterProperties[B],Q=typeof V==\"string\"?[V,[\"accumulated\"],[\"get\",B]]:V;D.push(...pu({key:`${h}.${B}.map`,value:q,validateSpec:E,expressionContext:\"cluster-map\"})),D.push(...pu({key:`${h}.${B}.reduce`,value:Q,validateSpec:E,expressionContext:\"cluster-reduce\"}))}return D;case\"video\":return Ns({key:h,value:a,valueSpec:A.source_video,style:x,validateSpec:E,styleSpec:A});case\"image\":return Ns({key:h,value:a,valueSpec:A.source_image,style:x,validateSpec:E,styleSpec:A});case\"canvas\":return[new Ae(h,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Cc({key:`${h}.type`,value:a.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:x,validateSpec:E,styleSpec:A})}}function o_(u){let a=u.value,h=u.styleSpec,A=h.light,x=u.style,E=[],P=si(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new Ae(\"light\",a,`object expected, ${P} found`)]),E;for(let D in a){let B=D.match(/^(.*)-transition$/);E=E.concat(B&&A[B[1]]&&A[B[1]].transition?u.validateSpec({key:D,value:a[D],valueSpec:h.transition,validateSpec:u.validateSpec,style:x,styleSpec:h}):A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new Ae(D,a[D],`unknown property \"${D}\"`)])}return E}function is(u){let a=u.value,h=u.styleSpec,A=h.sky,x=u.style,E=si(a);if(a===void 0)return[];if(E!==\"object\")return[new Ae(\"sky\",a,`object expected, ${E} found`)];let P=[];for(let D in a)P=P.concat(A[D]?gu({key:D,value:a[D],valueSpec:A[D],style:x,styleSpec:h}):[new Ae(D,a[D],`unknown property \"${D}\"`)]);return P}function ol(u){let a=u.value,h=u.styleSpec,A=h.terrain,x=u.style,E=[],P=si(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new Ae(\"terrain\",a,`object expected, ${P} found`)]),E;for(let D in a)E=E.concat(A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new Ae(D,a[D],`unknown property \"${D}\"`)]);return E}function Ui(u){let a=[],h=u.value,A=u.key;if(Array.isArray(h)){let x=[],E=[];for(let P in h)h[P].id&&x.includes(h[P].id)&&a.push(new Ae(A,h,`all the sprites' ids must be unique, but ${h[P].id} is duplicated`)),x.push(h[P].id),h[P].url&&E.includes(h[P].url)&&a.push(new Ae(A,h,`all the sprites' URLs must be unique, but ${h[P].url} is duplicated`)),E.push(h[P].url),a=a.concat(Ns({key:`${A}[${P}]`,value:h[P],valueSpec:{id:{type:\"string\",required:!0},url:{type:\"string\",required:!0}},validateSpec:u.validateSpec}));return a}return Lc({key:A,value:h})}let mu={\"*\":()=>[],array:Kp,boolean:function(u){let a=u.value,h=u.key,A=si(a);return A!==\"boolean\"?[new Ae(h,a,`boolean expected, ${A} found`)]:[]},number:Jp,color:function(u){let a=u.key,h=u.value,A=si(h);return A!==\"string\"?[new Ae(a,h,`color expected, ${A} found`)]:mi.parse(String(h))?[]:[new Ae(a,h,`color expected, \"${h}\" found`)]},constants:r_,enum:Cc,filter:Au,function:i_,layer:Qm,object:Ns,source:s_,light:o_,sky:is,terrain:ol,string:Lc,formatted:function(u){return Lc(u).length===0?[]:pu(u)},resolvedImage:function(u){return Lc(u).length===0?[]:pu(u)},padding:function(u){let a=u.key,h=u.value;if(si(h)===\"array\"){if(h.length<1||h.length>4)return[new Ae(a,h,`padding requires 1 to 4 values; ${h.length} values found`)];let A={type:\"number\"},x=[];for(let E=0;E[]}})),u.constants&&(h=h.concat(r_({key:\"constants\",value:u.constants,style:u,styleSpec:a,validateSpec:gu}))),wf(h)}function ao(u){return function(a){return u({...a,validateSpec:gu})}}function wf(u){return[].concat(u).sort((a,h)=>a.line-h.line)}function Es(u){return function(...a){return wf(u.apply(this,a))}}za.source=Es(ao(s_)),za.sprite=Es(ao(Ui)),za.glyphs=Es(ao(Id)),za.light=Es(ao(o_)),za.sky=Es(ao(is)),za.terrain=Es(ao(ol)),za.layer=Es(ao(Qm)),za.filter=Es(ao(Au)),za.paintProperty=Es(ao($m)),za.layoutProperty=Es(ao(bf));let Sf=za,tA=Sf.light,eA=Sf.paintProperty,al=Sf.layoutProperty;function kc(u,a){let h=!1;if(a&&a.length)for(let A of a)u.fire(new an(new Error(A.message))),h=!0;return h}class _u{constructor(a,h,A){let x=this.cells=[];if(a instanceof ArrayBuffer){this.arrayBuffer=a;let P=new Int32Array(this.arrayBuffer);a=P[0],this.d=(h=P[1])+2*(A=P[2]);for(let B=0;B=Q[lt+0]&&x>=Q[lt+1])?(D[ot]=!0,P.push(q[ot])):D[ot]=!1}}}}_forEachCell(a,h,A,x,E,P,D,B){let V=this._convertToCellCoord(a),q=this._convertToCellCoord(h),Q=this._convertToCellCoord(A),rt=this._convertToCellCoord(x);for(let ot=V;ot<=Q;ot++)for(let lt=q;lt<=rt;lt++){let pt=this.d*lt+ot;if((!B||B(this._convertFromCellCoord(ot),this._convertFromCellCoord(lt),this._convertFromCellCoord(ot+1),this._convertFromCellCoord(lt+1)))&&E.call(this,a,h,A,x,pt,P,D,B))return}}_convertFromCellCoord(a){return(a-this.padding)/this.scale}_convertToCellCoord(a){return Math.max(0,Math.min(this.d-1,Math.floor(a*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let a=this.cells,h=3+this.cells.length+1+1,A=0;for(let P=0;P=0)continue;let P=u[E];x[E]=zl[A].shallow.indexOf(E)>=0?P:Tf(P,a)}u instanceof Error&&(x.message=u.message)}if(x.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return A!==\"Object\"&&(x.$name=A),x}throw new Error(\"can't serialize object of type \"+typeof u)}function Mf(u){if(u==null||typeof u==\"boolean\"||typeof u==\"number\"||typeof u==\"string\"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob||u instanceof Error||Xm(u)||Fs(u)||ArrayBuffer.isView(u)||u instanceof ImageData)return u;if(Array.isArray(u))return u.map(Mf);if(typeof u==\"object\"){let a=u.$name||\"Object\";if(!zl[a])throw new Error(`can't deserialize unregistered class ${a}`);let{klass:h}=zl[a];if(!h)throw new Error(`can't deserialize unregistered class ${a}`);if(h.deserialize)return h.deserialize(u);let A=Object.create(h.prototype);for(let x of Object.keys(u)){if(x===\"$name\")continue;let E=u[x];A[x]=zl[a].shallow.indexOf(x)>=0?E:Mf(E)}return A}throw new Error(\"can't deserialize object of type \"+typeof u)}class rA{constructor(){this.first=!0}update(a,h){let A=Math.floor(a);return this.first?(this.first=!1,this.lastIntegerZoom=A,this.lastIntegerZoomTime=0,this.lastZoom=a,this.lastFloorZoom=A,!0):(this.lastFloorZoom>A?(this.lastIntegerZoom=A+1,this.lastIntegerZoomTime=h):this.lastFloorZoomu>=128&&u<=255,Arabic:u=>u>=1536&&u<=1791,\"Arabic Supplement\":u=>u>=1872&&u<=1919,\"Arabic Extended-A\":u=>u>=2208&&u<=2303,\"Hangul Jamo\":u=>u>=4352&&u<=4607,\"Unified Canadian Aboriginal Syllabics\":u=>u>=5120&&u<=5759,Khmer:u=>u>=6016&&u<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":u=>u>=6320&&u<=6399,\"General Punctuation\":u=>u>=8192&&u<=8303,\"Letterlike Symbols\":u=>u>=8448&&u<=8527,\"Number Forms\":u=>u>=8528&&u<=8591,\"Miscellaneous Technical\":u=>u>=8960&&u<=9215,\"Control Pictures\":u=>u>=9216&&u<=9279,\"Optical Character Recognition\":u=>u>=9280&&u<=9311,\"Enclosed Alphanumerics\":u=>u>=9312&&u<=9471,\"Geometric Shapes\":u=>u>=9632&&u<=9727,\"Miscellaneous Symbols\":u=>u>=9728&&u<=9983,\"Miscellaneous Symbols and Arrows\":u=>u>=11008&&u<=11263,\"CJK Radicals Supplement\":u=>u>=11904&&u<=12031,\"Kangxi Radicals\":u=>u>=12032&&u<=12255,\"Ideographic Description Characters\":u=>u>=12272&&u<=12287,\"CJK Symbols and Punctuation\":u=>u>=12288&&u<=12351,Hiragana:u=>u>=12352&&u<=12447,Katakana:u=>u>=12448&&u<=12543,Bopomofo:u=>u>=12544&&u<=12591,\"Hangul Compatibility Jamo\":u=>u>=12592&&u<=12687,Kanbun:u=>u>=12688&&u<=12703,\"Bopomofo Extended\":u=>u>=12704&&u<=12735,\"CJK Strokes\":u=>u>=12736&&u<=12783,\"Katakana Phonetic Extensions\":u=>u>=12784&&u<=12799,\"Enclosed CJK Letters and Months\":u=>u>=12800&&u<=13055,\"CJK Compatibility\":u=>u>=13056&&u<=13311,\"CJK Unified Ideographs Extension A\":u=>u>=13312&&u<=19903,\"Yijing Hexagram Symbols\":u=>u>=19904&&u<=19967,\"CJK Unified Ideographs\":u=>u>=19968&&u<=40959,\"Yi Syllables\":u=>u>=40960&&u<=42127,\"Yi Radicals\":u=>u>=42128&&u<=42191,\"Hangul Jamo Extended-A\":u=>u>=43360&&u<=43391,\"Hangul Syllables\":u=>u>=44032&&u<=55215,\"Hangul Jamo Extended-B\":u=>u>=55216&&u<=55295,\"Private Use Area\":u=>u>=57344&&u<=63743,\"CJK Compatibility Ideographs\":u=>u>=63744&&u<=64255,\"Arabic Presentation Forms-A\":u=>u>=64336&&u<=65023,\"Vertical Forms\":u=>u>=65040&&u<=65055,\"CJK Compatibility Forms\":u=>u>=65072&&u<=65103,\"Small Form Variants\":u=>u>=65104&&u<=65135,\"Arabic Presentation Forms-B\":u=>u>=65136&&u<=65279,\"Halfwidth and Fullwidth Forms\":u=>u>=65280&&u<=65519};function iA(u){for(let a of u)if(Cd(a.charCodeAt(0)))return!0;return!1}function Ef(u){for(let a of u)if(!a_(a.charCodeAt(0)))return!1;return!0}function a_(u){return!(Ce.Arabic(u)||Ce[\"Arabic Supplement\"](u)||Ce[\"Arabic Extended-A\"](u)||Ce[\"Arabic Presentation Forms-A\"](u)||Ce[\"Arabic Presentation Forms-B\"](u))}function Cd(u){return!(u!==746&&u!==747&&(u<4352||!(Ce[\"Bopomofo Extended\"](u)||Ce.Bopomofo(u)||Ce[\"CJK Compatibility Forms\"](u)&&!(u>=65097&&u<=65103)||Ce[\"CJK Compatibility Ideographs\"](u)||Ce[\"CJK Compatibility\"](u)||Ce[\"CJK Radicals Supplement\"](u)||Ce[\"CJK Strokes\"](u)||!(!Ce[\"CJK Symbols and Punctuation\"](u)||u>=12296&&u<=12305||u>=12308&&u<=12319||u===12336)||Ce[\"CJK Unified Ideographs Extension A\"](u)||Ce[\"CJK Unified Ideographs\"](u)||Ce[\"Enclosed CJK Letters and Months\"](u)||Ce[\"Hangul Compatibility Jamo\"](u)||Ce[\"Hangul Jamo Extended-A\"](u)||Ce[\"Hangul Jamo Extended-B\"](u)||Ce[\"Hangul Jamo\"](u)||Ce[\"Hangul Syllables\"](u)||Ce.Hiragana(u)||Ce[\"Ideographic Description Characters\"](u)||Ce.Kanbun(u)||Ce[\"Kangxi Radicals\"](u)||Ce[\"Katakana Phonetic Extensions\"](u)||Ce.Katakana(u)&&u!==12540||!(!Ce[\"Halfwidth and Fullwidth Forms\"](u)||u===65288||u===65289||u===65293||u>=65306&&u<=65310||u===65339||u===65341||u===65343||u>=65371&&u<=65503||u===65507||u>=65512&&u<=65519)||!(!Ce[\"Small Form Variants\"](u)||u>=65112&&u<=65118||u>=65123&&u<=65126)||Ce[\"Unified Canadian Aboriginal Syllabics\"](u)||Ce[\"Unified Canadian Aboriginal Syllabics Extended\"](u)||Ce[\"Vertical Forms\"](u)||Ce[\"Yijing Hexagram Symbols\"](u)||Ce[\"Yi Syllables\"](u)||Ce[\"Yi Radicals\"](u))))}function Ld(u){return!(Cd(u)||function(a){return!!(Ce[\"Latin-1 Supplement\"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Ce[\"General Punctuation\"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Ce[\"Letterlike Symbols\"](a)||Ce[\"Number Forms\"](a)||Ce[\"Miscellaneous Technical\"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Ce[\"Control Pictures\"](a)&&a!==9251||Ce[\"Optical Character Recognition\"](a)||Ce[\"Enclosed Alphanumerics\"](a)||Ce[\"Geometric Shapes\"](a)||Ce[\"Miscellaneous Symbols\"](a)&&!(a>=9754&&a<=9759)||Ce[\"Miscellaneous Symbols and Arrows\"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Ce[\"CJK Symbols and Punctuation\"](a)||Ce.Katakana(a)||Ce[\"Private Use Area\"](a)||Ce[\"CJK Compatibility Forms\"](a)||Ce[\"Small Form Variants\"](a)||Ce[\"Halfwidth and Fullwidth Forms\"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(u))}function yu(u){return u>=1424&&u<=2303||Ce[\"Arabic Presentation Forms-A\"](u)||Ce[\"Arabic Presentation Forms-B\"](u)}function Tx(u,a){return!(!a&&yu(u)||u>=2304&&u<=3583||u>=3840&&u<=4255||Ce.Khmer(u))}function Km(u){for(let a of u)if(yu(a.charCodeAt(0)))return!0;return!1}let vu=new class{constructor(){this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=\"unavailable\",this.pluginURL=null}setState(u){this.pluginStatus=u.pluginStatus,this.pluginURL=u.pluginURL}setMethods(u){this.applyArabicShaping=u.applyArabicShaping,this.processBidirectionalText=u.processBidirectionalText,this.processStyledBidirectionalText=u.processStyledBidirectionalText}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getPluginURL(){return this.pluginURL}getRTLTextPluginStatus(){return this.pluginStatus}};class ki{constructor(a,h){this.zoom=a,h?(this.now=h.now,this.fadeDuration=h.fadeDuration,this.zoomHistory=h.zoomHistory,this.transition=h.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new rA,this.transition={})}isSupportedScript(a){return function(h,A){for(let x of h)if(!Tx(x.charCodeAt(0),A))return!1;return!0}(a,vu.getRTLTextPluginStatus()===\"loaded\")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let a=this.zoom,h=a-Math.floor(a),A=this.crossFadingFactor();return a>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:h+(1-h)*A}:{fromScale:.5,toScale:1,t:1-(1-A)*h}}}class Nl{constructor(a,h){this.property=a,this.value=h,this.expression=function(A,x){if(Fa(A))return new Yp(A,x);if(Ni(A)){let E=Qg(A,x);if(E.result===\"error\")throw new Error(E.value.map(P=>`${P.key}: ${P.message}`).join(\", \"));return E.value}{let E=A;return x.type===\"color\"&&typeof A==\"string\"?E=mi.parse(A):x.type!==\"padding\"||typeof A!=\"number\"&&!Array.isArray(A)?x.type===\"variableAnchorOffsetCollection\"&&Array.isArray(A)&&(E=kn.parse(A)):E=wn.parse(A),{kind:\"constant\",evaluate:()=>E}}}(h===void 0?a.specification.default:h,a.specification)}isDataDriven(){return this.expression.kind===\"source\"||this.expression.kind===\"composite\"}possiblyEvaluate(a,h,A){return this.property.possiblyEvaluate(this,a,h,A)}}class nA{constructor(a){this.property=a,this.value=new Nl(a,void 0)}transitioned(a,h){return new l_(this.property,this.value,h,Tt({},a.transition,this.transition),a.now)}untransitioned(){return new l_(this.property,this.value,null,{},0)}}class Pf{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitionablePropertyValues)}getValue(a){return oe(this._values[a].value.value)}setValue(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new nA(this._values[a].property)),this._values[a].value=new Nl(this._values[a].property,h===null?void 0:oe(h))}getTransition(a){return oe(this._values[a].transition)}setTransition(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new nA(this._values[a].property)),this._values[a].transition=oe(h)||void 0}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A);let x=this.getTransition(h);x!==void 0&&(a[`${h}-transition`]=x)}return a}transitioned(a,h){let A=new Jm(this._properties);for(let x of Object.keys(this._values))A._values[x]=this._values[x].transitioned(a,h._values[x]);return A}untransitioned(){let a=new Jm(this._properties);for(let h of Object.keys(this._values))a._values[h]=this._values[h].untransitioned();return a}}class l_{constructor(a,h,A,x,E){this.property=a,this.value=h,this.begin=E+x.delay||0,this.end=this.begin+x.duration||0,a.specification.transition&&(x.delay||x.duration)&&(this.prior=A)}possiblyEvaluate(a,h,A){let x=a.now||0,E=this.value.possiblyEvaluate(a,h,A),P=this.prior;if(P){if(x>this.end)return this.prior=null,E;if(this.value.isDataDriven())return this.prior=null,E;if(x=1)return 1;let V=B*B,q=V*B;return 4*(B<.5?q:3*(B-V)+q-.75)}(D))}}return E}}class Jm{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitioningPropertyValues)}possiblyEvaluate(a,h,A){let x=new kd(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}hasTransition(){for(let a of Object.keys(this._values))if(this._values[a].prior)return!0;return!1}}class c_{constructor(a){this._properties=a,this._values=Object.create(a.defaultPropertyValues)}hasValue(a){return this._values[a].value!==void 0}getValue(a){return oe(this._values[a].value)}setValue(a,h){this._values[a]=new Nl(this._values[a].property,h===null?void 0:oe(h))}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A)}return a}possiblyEvaluate(a,h,A){let x=new kd(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}}class ll{constructor(a,h,A){this.property=a,this.value=h,this.parameters=A}isConstant(){return this.value.kind===\"constant\"}constantOr(a){return this.value.kind===\"constant\"?this.value.value:a}evaluate(a,h,A,x){return this.property.evaluate(this.value,this.parameters,a,h,A,x)}}class kd{constructor(a){this._properties=a,this._values=Object.create(a.defaultPossiblyEvaluatedValues)}get(a){return this._values[a]}}class Qe{constructor(a){this.specification=a}possiblyEvaluate(a,h){if(a.isDataDriven())throw new Error(\"Value should not be data driven\");return a.expression.evaluate(h)}interpolate(a,h,A){let x=Zo[this.specification.type];return x?x(a,h,A):a}}class fr{constructor(a,h){this.specification=a,this.overrides=h}possiblyEvaluate(a,h,A,x){return new ll(this,a.expression.kind===\"constant\"||a.expression.kind===\"camera\"?{kind:\"constant\",value:a.expression.evaluate(h,null,{},A,x)}:a.expression,h)}interpolate(a,h,A){if(a.value.kind!==\"constant\"||h.value.kind!==\"constant\")return a;if(a.value.value===void 0||h.value.value===void 0)return new ll(this,{kind:\"constant\",value:void 0},a.parameters);let x=Zo[this.specification.type];if(x){let E=x(a.value.value,h.value.value,A);return new ll(this,{kind:\"constant\",value:E},a.parameters)}return a}evaluate(a,h,A,x,E,P){return a.kind===\"constant\"?a.value:a.evaluate(h,A,x,E,P)}}class If extends fr{possiblyEvaluate(a,h,A,x){if(a.value===void 0)return new ll(this,{kind:\"constant\",value:void 0},h);if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x),P=a.property.specification.type===\"resolvedImage\"&&typeof E!=\"string\"?E.name:E,D=this._calculate(P,P,P,h);return new ll(this,{kind:\"constant\",value:D},h)}if(a.expression.kind===\"camera\"){let E=this._calculate(a.expression.evaluate({zoom:h.zoom-1}),a.expression.evaluate({zoom:h.zoom}),a.expression.evaluate({zoom:h.zoom+1}),h);return new ll(this,{kind:\"constant\",value:E},h)}return new ll(this,a.expression,h)}evaluate(a,h,A,x,E,P){if(a.kind===\"source\"){let D=a.evaluate(h,A,x,E,P);return this._calculate(D,D,D,h)}return a.kind===\"composite\"?this._calculate(a.evaluate({zoom:Math.floor(h.zoom)-1},A,x),a.evaluate({zoom:Math.floor(h.zoom)},A,x),a.evaluate({zoom:Math.floor(h.zoom)+1},A,x),h):a.value}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class xu{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){if(a.value!==void 0){if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x);return this._calculate(E,E,E,h)}return this._calculate(a.expression.evaluate(new ki(Math.floor(h.zoom-1),h)),a.expression.evaluate(new ki(Math.floor(h.zoom),h)),a.expression.evaluate(new ki(Math.floor(h.zoom+1),h)),h)}}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class t0{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){return!!a.expression.evaluate(h,null,{},A,x)}interpolate(){return!1}}class wo{constructor(a){this.properties=a,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let h in a){let A=a[h];A.specification.overridable&&this.overridableProperties.push(h);let x=this.defaultPropertyValues[h]=new Nl(A,void 0),E=this.defaultTransitionablePropertyValues[h]=new nA(A);this.defaultTransitioningPropertyValues[h]=E.untransitioned(),this.defaultPossiblyEvaluatedValues[h]=x.possiblyEvaluate({})}}}Fe(\"DataDrivenProperty\",fr),Fe(\"DataConstantProperty\",Qe),Fe(\"CrossFadedDataDrivenProperty\",If),Fe(\"CrossFadedProperty\",xu),Fe(\"ColorRampProperty\",t0);let e0=\"-transition\";class cl extends aa{constructor(a,h){if(super(),this.id=a.id,this.type=a.type,this._featureFilter={filter:()=>!0,needGeometry:!1},a.type!==\"custom\"&&(this.metadata=a.metadata,this.minzoom=a.minzoom,this.maxzoom=a.maxzoom,a.type!==\"background\"&&(this.source=a.source,this.sourceLayer=a[\"source-layer\"],this.filter=a.filter),h.layout&&(this._unevaluatedLayout=new c_(h.layout)),h.paint)){this._transitionablePaint=new Pf(h.paint);for(let A in a.paint)this.setPaintProperty(A,a.paint[A],{validate:!1});for(let A in a.layout)this.setLayoutProperty(A,a.layout[A],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new kd(h.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(a){return a===\"visibility\"?this.visibility:this._unevaluatedLayout.getValue(a)}setLayoutProperty(a,h,A={}){h!=null&&this._validate(al,`layers.${this.id}.layout.${a}`,a,h,A)||(a!==\"visibility\"?this._unevaluatedLayout.setValue(a,h):this.visibility=h)}getPaintProperty(a){return a.endsWith(e0)?this._transitionablePaint.getTransition(a.slice(0,-11)):this._transitionablePaint.getValue(a)}setPaintProperty(a,h,A={}){if(h!=null&&this._validate(eA,`layers.${this.id}.paint.${a}`,a,h,A))return!1;if(a.endsWith(e0))return this._transitionablePaint.setTransition(a.slice(0,-11),h||void 0),!1;{let x=this._transitionablePaint._values[a],E=x.property.specification[\"property-type\"]===\"cross-faded-data-driven\",P=x.value.isDataDriven(),D=x.value;this._transitionablePaint.setValue(a,h),this._handleSpecialPaintPropertyUpdate(a);let B=this._transitionablePaint._values[a].value;return B.isDataDriven()||P||E||this._handleOverridablePaintPropertyUpdate(a,D,B)}}_handleSpecialPaintPropertyUpdate(a){}_handleOverridablePaintPropertyUpdate(a,h,A){return!1}isHidden(a){return!!(this.minzoom&&a=this.maxzoom)||this.visibility===\"none\"}updateTransitions(a){this._transitioningPaint=this._transitionablePaint.transitioned(a,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(a,h){a.getCrossfadeParameters&&(this._crossfadeParameters=a.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(a,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(a,void 0,h)}serialize(){let a={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(a.layout=a.layout||{},a.layout.visibility=this.visibility),te(a,(h,A)=>!(h===void 0||A===\"layout\"&&!Object.keys(h).length||A===\"paint\"&&!Object.keys(h).length))}_validate(a,h,A,x,E={}){return(!E||E.validate!==!1)&&kc(this,a.call(Sf,{key:h,layerType:this.type,objectKey:A,value:x,styleSpec:Jt,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let a in this.paint._values){let h=this.paint.get(a);if(h instanceof ll&&yf(h.property.specification)&&(h.value.kind===\"source\"||h.value.kind===\"composite\")&&h.value.isStateDependent)return!0}return!1}}let Mx={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Rd{constructor(a,h){this._structArray=a,this._pos1=h*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Tn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(a,h){return a._trim(),h&&(a.isTransferred=!0,h.push(a.arrayBuffer)),{length:a.length,arrayBuffer:a.arrayBuffer}}static deserialize(a){let h=Object.create(this.prototype);return h.arrayBuffer=a.arrayBuffer,h.length=a.length,h.capacity=a.arrayBuffer.byteLength/h.bytesPerElement,h._refreshViews(),h}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(a){this.reserve(a),this.length=a}reserve(a){if(a>this.capacity){this.capacity=Math.max(a,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let h=this.uint8;this._refreshViews(),h&&this.uint8.set(h)}}_refreshViews(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")}}function Dn(u,a=1){let h=0,A=0;return{members:u.map(x=>{let E=Mx[x.type].BYTES_PER_ELEMENT,P=h=r0(h,Math.max(a,E)),D=x.components||1;return A=Math.max(A,E),h+=E*D,{name:x.name,type:x.type,components:D,offset:P}}),size:r0(h,Math.max(A,a)),alignment:a}}function r0(u,a){return Math.ceil(u/a)*a}class Na extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.int16[x+0]=h,this.int16[x+1]=A,a}}Na.prototype.bytesPerElement=4,Fe(\"StructArrayLayout2i4\",Na);class sA extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.int16[E+0]=h,this.int16[E+1]=A,this.int16[E+2]=x,a}}sA.prototype.bytesPerElement=6,Fe(\"StructArrayLayout3i6\",sA);class lo extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.int16[P+0]=h,this.int16[P+1]=A,this.int16[P+2]=x,this.int16[P+3]=E,a}}lo.prototype.bytesPerElement=8,Fe(\"StructArrayLayout4i8\",lo);class qn extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let B=6*a;return this.int16[B+0]=h,this.int16[B+1]=A,this.int16[B+2]=x,this.int16[B+3]=E,this.int16[B+4]=P,this.int16[B+5]=D,a}}qn.prototype.bytesPerElement=12,Fe(\"StructArrayLayout2i4i12\",qn);class i0 extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let B=4*a,V=8*a;return this.int16[B+0]=h,this.int16[B+1]=A,this.uint8[V+4]=x,this.uint8[V+5]=E,this.uint8[V+6]=P,this.uint8[V+7]=D,a}}i0.prototype.bytesPerElement=8,Fe(\"StructArrayLayout2i4ub8\",i0);class Cf extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.float32[x+0]=h,this.float32[x+1]=A,a}}Cf.prototype.bytesPerElement=8,Fe(\"StructArrayLayout2f8\",Cf);class n0 extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,B,V,q){let Q=this.length;return this.resize(Q+1),this.emplace(Q,a,h,A,x,E,P,D,B,V,q)}emplace(a,h,A,x,E,P,D,B,V,q,Q){let rt=10*a;return this.uint16[rt+0]=h,this.uint16[rt+1]=A,this.uint16[rt+2]=x,this.uint16[rt+3]=E,this.uint16[rt+4]=P,this.uint16[rt+5]=D,this.uint16[rt+6]=B,this.uint16[rt+7]=V,this.uint16[rt+8]=q,this.uint16[rt+9]=Q,a}}n0.prototype.bytesPerElement=20,Fe(\"StructArrayLayout10ui20\",n0);class s0 extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,B,V,q,Q,rt){let ot=this.length;return this.resize(ot+1),this.emplace(ot,a,h,A,x,E,P,D,B,V,q,Q,rt)}emplace(a,h,A,x,E,P,D,B,V,q,Q,rt,ot){let lt=12*a;return this.int16[lt+0]=h,this.int16[lt+1]=A,this.int16[lt+2]=x,this.int16[lt+3]=E,this.uint16[lt+4]=P,this.uint16[lt+5]=D,this.uint16[lt+6]=B,this.uint16[lt+7]=V,this.int16[lt+8]=q,this.int16[lt+9]=Q,this.int16[lt+10]=rt,this.int16[lt+11]=ot,a}}s0.prototype.bytesPerElement=24,Fe(\"StructArrayLayout4i4ui4i24\",s0);class Rc extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.float32[E+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}Rc.prototype.bytesPerElement=12,Fe(\"StructArrayLayout3f12\",Rc);class Us extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint32[1*a+0]=h,a}}Us.prototype.bytesPerElement=4,Fe(\"StructArrayLayout1ul4\",Us);class hh extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,B,V){let q=this.length;return this.resize(q+1),this.emplace(q,a,h,A,x,E,P,D,B,V)}emplace(a,h,A,x,E,P,D,B,V,q){let Q=10*a,rt=5*a;return this.int16[Q+0]=h,this.int16[Q+1]=A,this.int16[Q+2]=x,this.int16[Q+3]=E,this.int16[Q+4]=P,this.int16[Q+5]=D,this.uint32[rt+3]=B,this.uint16[Q+8]=V,this.uint16[Q+9]=q,a}}hh.prototype.bytesPerElement=20,Fe(\"StructArrayLayout6i1ul2ui20\",hh);class ul extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let B=6*a;return this.int16[B+0]=h,this.int16[B+1]=A,this.int16[B+2]=x,this.int16[B+3]=E,this.int16[B+4]=P,this.int16[B+5]=D,a}}ul.prototype.bytesPerElement=12,Fe(\"StructArrayLayout2i2i2i12\",ul);class Dd extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E){let P=this.length;return this.resize(P+1),this.emplace(P,a,h,A,x,E)}emplace(a,h,A,x,E,P){let D=4*a,B=8*a;return this.float32[D+0]=h,this.float32[D+1]=A,this.float32[D+2]=x,this.int16[B+6]=E,this.int16[B+7]=P,a}}Dd.prototype.bytesPerElement=16,Fe(\"StructArrayLayout2f1f2i16\",Dd);class Od extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=12*a,D=3*a;return this.uint8[P+0]=h,this.uint8[P+1]=A,this.float32[D+1]=x,this.float32[D+2]=E,a}}Od.prototype.bytesPerElement=12,Fe(\"StructArrayLayout2ub2f12\",Od);class fh extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[E+0]=h,this.uint16[E+1]=A,this.uint16[E+2]=x,a}}fh.prototype.bytesPerElement=6,Fe(\"StructArrayLayout3ui6\",fh);class Ps extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt){let Vt=this.length;return this.resize(Vt+1),this.emplace(Vt,a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt)}emplace(a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt,Vt){let It=24*a,zt=12*a,ie=48*a;return this.int16[It+0]=h,this.int16[It+1]=A,this.uint16[It+2]=x,this.uint16[It+3]=E,this.uint32[zt+2]=P,this.uint32[zt+3]=D,this.uint32[zt+4]=B,this.uint16[It+10]=V,this.uint16[It+11]=q,this.uint16[It+12]=Q,this.float32[zt+7]=rt,this.float32[zt+8]=ot,this.uint8[ie+36]=lt,this.uint8[ie+37]=pt,this.uint8[ie+38]=xt,this.uint32[zt+10]=Mt,this.int16[It+22]=Vt,a}}Ps.prototype.bytesPerElement=48,Fe(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",Ps);class oA extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt,Vt,It,zt,ie,ue,Be,Ke,Re,Ie,we,We){let Ee=this.length;return this.resize(Ee+1),this.emplace(Ee,a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt,Vt,It,zt,ie,ue,Be,Ke,Re,Ie,we,We)}emplace(a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt,xt,Mt,Vt,It,zt,ie,ue,Be,Ke,Re,Ie,we,We,Ee){let pe=32*a,cr=16*a;return this.int16[pe+0]=h,this.int16[pe+1]=A,this.int16[pe+2]=x,this.int16[pe+3]=E,this.int16[pe+4]=P,this.int16[pe+5]=D,this.int16[pe+6]=B,this.int16[pe+7]=V,this.uint16[pe+8]=q,this.uint16[pe+9]=Q,this.uint16[pe+10]=rt,this.uint16[pe+11]=ot,this.uint16[pe+12]=lt,this.uint16[pe+13]=pt,this.uint16[pe+14]=xt,this.uint16[pe+15]=Mt,this.uint16[pe+16]=Vt,this.uint16[pe+17]=It,this.uint16[pe+18]=zt,this.uint16[pe+19]=ie,this.uint16[pe+20]=ue,this.uint16[pe+21]=Be,this.uint16[pe+22]=Ke,this.uint32[cr+12]=Re,this.float32[cr+13]=Ie,this.float32[cr+14]=we,this.uint16[pe+30]=We,this.uint16[pe+31]=Ee,a}}oA.prototype.bytesPerElement=64,Fe(\"StructArrayLayout8i15ui1ul2f2ui64\",oA);class dh extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.float32[1*a+0]=h,a}}dh.prototype.bytesPerElement=4,Fe(\"StructArrayLayout1f4\",dh);class hl extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[6*a+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}hl.prototype.bytesPerElement=12,Fe(\"StructArrayLayout1ui2f12\",hl);class Dc extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=4*a;return this.uint32[2*a+0]=h,this.uint16[E+2]=A,this.uint16[E+3]=x,a}}Dc.prototype.bytesPerElement=8,Fe(\"StructArrayLayout1ul2ui8\",Dc);class Oc extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.uint16[x+0]=h,this.uint16[x+1]=A,a}}Oc.prototype.bytesPerElement=4,Fe(\"StructArrayLayout2ui4\",Oc);class aA extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint16[1*a+0]=h,a}}aA.prototype.bytesPerElement=2,Fe(\"StructArrayLayout1ui2\",aA);class lA extends Tn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.float32[P+0]=h,this.float32[P+1]=A,this.float32[P+2]=x,this.float32[P+3]=E,a}}lA.prototype.bytesPerElement=16,Fe(\"StructArrayLayout4f16\",lA);class T extends Rd{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new _(this.anchorPointX,this.anchorPointY)}}T.prototype.size=20;class l extends hh{get(a){return new T(this,a)}}Fe(\"CollisionBoxArray\",l);class f extends Rd{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(a){this._structArray.uint8[this._pos1+37]=a}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(a){this._structArray.uint8[this._pos1+38]=a}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(a){this._structArray.uint32[this._pos4+10]=a}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}f.prototype.size=48;class v extends Ps{get(a){return new f(this,a)}}Fe(\"PlacedSymbolArray\",v);class b extends Rd{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(a){this._structArray.uint32[this._pos4+12]=a}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}b.prototype.size=64;class M extends oA{get(a){return new b(this,a)}}Fe(\"SymbolInstanceArray\",M);class O extends dh{getoffsetX(a){return this.float32[1*a+0]}}Fe(\"GlyphOffsetArray\",O);class F extends sA{getx(a){return this.int16[3*a+0]}gety(a){return this.int16[3*a+1]}gettileUnitDistanceFromAnchor(a){return this.int16[3*a+2]}}Fe(\"SymbolLineVertexArray\",F);class U extends Rd{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}U.prototype.size=12;class W extends hl{get(a){return new U(this,a)}}Fe(\"TextAnchorOffsetArray\",W);class $ extends Rd{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}$.prototype.size=8;class X extends Dc{get(a){return new $(this,a)}}Fe(\"FeatureIndexArray\",X);class at extends Na{}class gt extends Na{}class _t extends Na{}class yt extends qn{}class At extends i0{}class kt extends Cf{}class Wt extends n0{}class St extends s0{}class Nt extends Rc{}class Zt extends Us{}class Ht extends ul{}class ne extends Od{}class he extends fh{}class ce extends Oc{}let ge=Dn([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:Ue}=ge;class ur{constructor(a=[]){this.segments=a}prepareSegment(a,h,A,x){let E=this.segments[this.segments.length-1];return a>ur.MAX_VERTEX_ARRAY_LENGTH&&Le(`Max vertices per segment is ${ur.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${a}`),(!E||E.vertexLength+a>ur.MAX_VERTEX_ARRAY_LENGTH||E.sortKey!==x)&&(E={vertexOffset:h.length,primitiveOffset:A.length,vertexLength:0,primitiveLength:0},x!==void 0&&(E.sortKey=x),this.segments.push(E)),E}get(){return this.segments}destroy(){for(let a of this.segments)for(let h in a.vaos)a.vaos[h].destroy()}static simpleSegment(a,h,A,x){return new ur([{vertexOffset:a,primitiveOffset:h,vertexLength:A,primitiveLength:x,vaos:{},sortKey:0}])}}function Me(u,a){return 256*(u=J(Math.floor(u),0,255))+J(Math.floor(a),0,255)}ur.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Fe(\"SegmentVector\",ur);let ar=Dn([{name:\"a_pattern_from\",components:4,type:\"Uint16\"},{name:\"a_pattern_to\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio_from\",components:1,type:\"Uint16\"},{name:\"a_pixel_ratio_to\",components:1,type:\"Uint16\"}]);var He={exports:{}},rn={exports:{}};rn.exports=function(u,a){var h,A,x,E,P,D,B,V;for(A=u.length-(h=3&u.length),x=a,P=3432918353,D=461845907,V=0;V>>16)*P&65535)<<16)&4294967295)<<15|B>>>17))*D+(((B>>>16)*D&65535)<<16)&4294967295)<<13|x>>>19))+((5*(x>>>16)&65535)<<16)&4294967295))+((58964+(E>>>16)&65535)<<16);switch(B=0,h){case 3:B^=(255&u.charCodeAt(V+2))<<16;case 2:B^=(255&u.charCodeAt(V+1))<<8;case 1:x^=B=(65535&(B=(B=(65535&(B^=255&u.charCodeAt(V)))*P+(((B>>>16)*P&65535)<<16)&4294967295)<<15|B>>>17))*D+(((B>>>16)*D&65535)<<16)&4294967295}return x^=u.length,x=2246822507*(65535&(x^=x>>>16))+((2246822507*(x>>>16)&65535)<<16)&4294967295,x=3266489909*(65535&(x^=x>>>13))+((3266489909*(x>>>16)&65535)<<16)&4294967295,(x^=x>>>16)>>>0};var Jr=rn.exports,Fr={exports:{}};Fr.exports=function(u,a){for(var h,A=u.length,x=a^A,E=0;A>=4;)h=1540483477*(65535&(h=255&u.charCodeAt(E)|(255&u.charCodeAt(++E))<<8|(255&u.charCodeAt(++E))<<16|(255&u.charCodeAt(++E))<<24))+((1540483477*(h>>>16)&65535)<<16),x=1540483477*(65535&x)+((1540483477*(x>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),A-=4,++E;switch(A){case 3:x^=(255&u.charCodeAt(E+2))<<16;case 2:x^=(255&u.charCodeAt(E+1))<<8;case 1:x=1540483477*(65535&(x^=255&u.charCodeAt(E)))+((1540483477*(x>>>16)&65535)<<16)}return x=1540483477*(65535&(x^=x>>>13))+((1540483477*(x>>>16)&65535)<<16),(x^=x>>>15)>>>0};var $r=Jr,On=Fr.exports;He.exports=$r,He.exports.murmur3=$r,He.exports.murmur2=On;var Dr=o(He.exports);class So{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(a,h,A,x){this.ids.push(Is(a)),this.positions.push(h,A,x)}getPositions(a){if(!this.indexed)throw new Error(\"Trying to get index, but feature positions are not indexed\");let h=Is(a),A=0,x=this.ids.length-1;for(;A>1;this.ids[P]>=h?x=P:A=P+1}let E=[];for(;this.ids[A]===h;)E.push({index:this.positions[3*A],start:this.positions[3*A+1],end:this.positions[3*A+2]}),A++;return E}static serialize(a,h){let A=new Float64Array(a.ids),x=new Uint32Array(a.positions);return Mn(A,x,0,A.length-1),h&&h.push(A.buffer,x.buffer),{ids:A,positions:x}}static deserialize(a){let h=new So;return h.ids=a.ids,h.positions=a.positions,h.indexed=!0,h}}function Is(u){let a=+u;return!isNaN(a)&&a<=Number.MAX_SAFE_INTEGER?a:Dr(String(u))}function Mn(u,a,h,A){for(;h>1],E=h-1,P=A+1;for(;;){do E++;while(u[E]x);if(E>=P)break;Vs(u,E,P),Vs(a,3*E,3*P),Vs(a,3*E+1,3*P+1),Vs(a,3*E+2,3*P+2)}P-h`u_${x}`),this.type=A}setUniform(a,h,A){a.set(A.constantOr(this.value))}getBinding(a,h,A){return this.type===\"color\"?new Lf(a,h):new ha(a,h)}}class Zn{constructor(a,h){this.uniformNames=h.map(A=>`u_${A}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(a,h){this.pixelRatioFrom=h.pixelRatio,this.pixelRatioTo=a.pixelRatio,this.patternFrom=h.tlbr,this.patternTo=a.tlbr}setUniform(a,h,A,x){let E=x===\"u_pattern_to\"?this.patternTo:x===\"u_pattern_from\"?this.patternFrom:x===\"u_pixel_ratio_to\"?this.pixelRatioTo:x===\"u_pixel_ratio_from\"?this.pixelRatioFrom:null;E&&a.set(E)}getBinding(a,h,A){return A.substr(0,9)===\"u_pattern\"?new Bc(a,h):new ha(a,h)}}class nn{constructor(a,h,A,x){this.expression=a,this.type=A,this.maxValue=0,this.paintVertexAttributes=h.map(E=>({name:`a_${E}`,type:\"Float32\",components:A===\"color\"?2:1,offset:0})),this.paintVertexArray=new x}populatePaintArray(a,h,A,x,E){let P=this.paintVertexArray.length,D=this.expression.evaluate(new ki(0),h,{},x,[],E);this.paintVertexArray.resize(a),this._setPaintValue(P,a,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:0},A,x);this._setPaintValue(a,h,E)}_setPaintValue(a,h,A){if(this.type===\"color\"){let x=bu(A);for(let E=a;E`u_${D}_t`),this.type=A,this.useIntegerZoom=x,this.zoom=E,this.maxValue=0,this.paintVertexAttributes=h.map(D=>({name:`a_${D}`,type:\"Float32\",components:A===\"color\"?4:2,offset:0})),this.paintVertexArray=new P}populatePaintArray(a,h,A,x,E){let P=this.expression.evaluate(new ki(this.zoom),h,{},x,[],E),D=this.expression.evaluate(new ki(this.zoom+1),h,{},x,[],E),B=this.paintVertexArray.length;this.paintVertexArray.resize(a),this._setPaintValue(B,a,P,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:this.zoom},A,x),P=this.expression.evaluate({zoom:this.zoom+1},A,x);this._setPaintValue(a,h,E,P)}_setPaintValue(a,h,A,x){if(this.type===\"color\"){let E=bu(A),P=bu(x);for(let D=a;D`#define HAS_UNIFORM_${x}`))}return a}getBinderAttributes(){let a=[];for(let h in this.binders){let A=this.binders[h];if(A instanceof nn||A instanceof dn)for(let x=0;x!0){this.programConfigurations={};for(let x of a)this.programConfigurations[x.id]=new Bi(x,h,A);this.needsUpload=!1,this._featureMap=new So,this._bufferOffset=0}populatePaintArrays(a,h,A,x,E,P){for(let D in this.programConfigurations)this.programConfigurations[D].populatePaintArrays(a,h,x,E,P);h.id!==void 0&&this._featureMap.add(h.id,A,this._bufferOffset,a),this._bufferOffset=a,this.needsUpload=!0}updatePaintArrays(a,h,A,x){for(let E of A)this.needsUpload=this.programConfigurations[E.id].updatePaintArrays(a,this._featureMap,h,E,x)||this.needsUpload}get(a){return this.programConfigurations[a]}upload(a){if(this.needsUpload){for(let h in this.programConfigurations)this.programConfigurations[h].upload(a);this.needsUpload=!1}}destroy(){for(let a in this.programConfigurations)this.programConfigurations[a].destroy()}}function En(u,a){return{\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"]}[u]||[u.replace(`${a}-`,\"\").replace(/-/g,\"_\")]}function o0(u,a,h){let A={color:{source:Cf,composite:lA},number:{source:dh,composite:Cf}},x=function(E){return{\"line-pattern\":{source:Wt,composite:Wt},\"fill-pattern\":{source:Wt,composite:Wt},\"fill-extrusion-pattern\":{source:Wt,composite:Wt}}[E]}(u);return x&&x[h]||A[a][h]}Fe(\"ConstantBinder\",us),Fe(\"CrossFadedConstantBinder\",Zn),Fe(\"SourceExpressionBinder\",nn),Fe(\"CrossFadedCompositeBinder\",Xe),Fe(\"CompositeExpressionBinder\",dn),Fe(\"ProgramConfiguration\",Bi,{omit:[\"_buffers\"]}),Fe(\"ProgramConfigurationSet\",Cs);let Bn=8192,Ul=Math.pow(2,14)-1,ve=-Ul-1;function De(u){let a=Bn/u.extent,h=u.loadGeometry();for(let A=0;AP.x+1||BP.y+1)&&Le(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\")}}return h}function wu(u,a){return{type:u.type,id:u.id,properties:u.properties,geometry:a?De(u):[]}}function Ua(u,a,h,A,x){u.emplaceBack(2*a+(A+1)/2,2*h+(x+1)/2)}class ph{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new gt,this.indexArray=new he,this.segments=new ur,this.programConfigurations=new Cs(a.layers,a.zoom),this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){let x=this.layers[0],E=[],P=null,D=!1;x.type===\"circle\"&&(P=x.layout.get(\"circle-sort-key\"),D=!P.isConstant());for(let{feature:B,id:V,index:q,sourceLayerIndex:Q}of a){let rt=this.layers[0]._featureFilter.needGeometry,ot=wu(B,rt);if(!this.layers[0]._featureFilter.filter(new ki(this.zoom),ot,A))continue;let lt=D?P.evaluate(ot,{},A):void 0,pt={id:V,properties:B.properties,type:B.type,sourceLayerIndex:Q,index:q,geometry:rt?ot.geometry:De(B),patterns:{},sortKey:lt};E.push(pt)}D&&E.sort((B,V)=>B.sortKey-V.sortKey);for(let B of E){let{geometry:V,index:q,sourceLayerIndex:Q}=B,rt=a[q].feature;this.addFeature(B,V,q,A),h.featureIndex.insert(rt,V,q,Q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,Ue),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(a,h,A,x){for(let E of h)for(let P of E){let D=P.x,B=P.y;if(D<0||D>=Bn||B<0||B>=Bn)continue;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,a.sortKey),q=V.vertexLength;Ua(this.layoutVertexArray,D,B,-1,-1),Ua(this.layoutVertexArray,D,B,1,-1),Ua(this.layoutVertexArray,D,B,1,1),Ua(this.layoutVertexArray,D,B,-1,1),this.indexArray.emplaceBack(q,q+1,q+2),this.indexArray.emplaceBack(q,q+3,q+2),V.vertexLength+=4,V.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,{},x)}}function fa(u,a){for(let h=0;h1){if(m(u,a))return!0;for(let A=0;A1?h:h.sub(a)._mult(x)._add(a))}function k(u,a){let h,A,x,E=!1;for(let P=0;Pa.y!=x.y>a.y&&a.x<(x.x-A.x)*(a.y-A.y)/(x.y-A.y)+A.x&&(E=!E)}return E}function L(u,a){let h=!1;for(let A=0,x=u.length-1;Aa.y!=P.y>a.y&&a.x<(P.x-E.x)*(a.y-E.y)/(P.y-E.y)+E.x&&(h=!h)}return h}function z(u,a,h){let A=h[0],x=h[2];if(u.xx.x&&a.x>x.x||u.yx.y&&a.y>x.y)return!1;let E=sr(u,a,h[0]);return E!==sr(u,a,h[1])||E!==sr(u,a,h[2])||E!==sr(u,a,h[3])}function H(u,a,h){let A=a.paint.get(u).value;return A.kind===\"constant\"?A.value:h.programConfigurations.get(a.id).getMaxValue(u)}function et(u){return Math.sqrt(u[0]*u[0]+u[1]*u[1])}function st(u,a,h,A,x){if(!a[0]&&!a[1])return u;let E=_.convert(a)._mult(x);h===\"viewport\"&&E._rotate(-A);let P=[];for(let D=0;DYe(xt,pt))}(V,B),ot=Q?q*D:q;for(let lt of x)for(let pt of lt){let xt=Q?pt:Ye(pt,B),Mt=ot,Vt=Ft([],[pt.x,pt.y,0,1],B);if(this.paint.get(\"circle-pitch-scale\")===\"viewport\"&&this.paint.get(\"circle-pitch-alignment\")===\"map\"?Mt*=Vt[3]/P.cameraToCenterDistance:this.paint.get(\"circle-pitch-scale\")===\"map\"&&this.paint.get(\"circle-pitch-alignment\")===\"viewport\"&&(Mt*=P.cameraToCenterDistance/Vt[3]),a0(rt,xt,Mt))return!0}return!1}}function Ye(u,a){let h=Ft([],[u.x,u.y,0,1],a);return new _(h[0]/h[3],h[1]/h[3])}class Oe extends ph{}let Ve;Fe(\"HeatmapBucket\",Oe,{omit:[\"layers\"]});var Qr={get paint(){return Ve=Ve||new wo({\"heatmap-radius\":new fr(Jt.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new fr(Jt.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new Qe(Jt.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new t0(Jt.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new Qe(Jt.paint_heatmap[\"heatmap-opacity\"])})}};function Ri(u,{width:a,height:h},A,x){if(x){if(x instanceof Uint8ClampedArray)x=new Uint8Array(x.buffer);else if(x.length!==a*h*A)throw new RangeError(`mismatched image size. expected: ${x.length} but got: ${a*h*A}`)}else x=new Uint8Array(a*h*A);return u.width=a,u.height=h,u.data=x,u}function Ei(u,{width:a,height:h},A){if(a===u.width&&h===u.height)return;let x=Ri({},{width:a,height:h},A);Vi(u,x,{x:0,y:0},{x:0,y:0},{width:Math.min(u.width,a),height:Math.min(u.height,h)},A),u.width=a,u.height=h,u.data=x.data}function Vi(u,a,h,A,x,E){if(x.width===0||x.height===0)return a;if(x.width>u.width||x.height>u.height||h.x>u.width-x.width||h.y>u.height-x.height)throw new RangeError(\"out of range source coordinates for image copy\");if(x.width>a.width||x.height>a.height||A.x>a.width-x.width||A.y>a.height-x.height)throw new RangeError(\"out of range destination coordinates for image copy\");let P=u.data,D=a.data;if(P===D)throw new Error(\"srcData equals dstData, so image is already copied\");for(let B=0;B{a[u.evaluationKey]=B;let V=u.expression.evaluate(a);x.data[P+D+0]=Math.floor(255*V.r/V.a),x.data[P+D+1]=Math.floor(255*V.g/V.a),x.data[P+D+2]=Math.floor(255*V.b/V.a),x.data[P+D+3]=Math.floor(255*V.a)};if(u.clips)for(let P=0,D=0;P80*h){A=E=u[0],x=P=u[1];for(var lt=h;ltE&&(E=D),B>P&&(P=B);V=(V=Math.max(E-A,P-x))!==0?32767/V:0}return Ex(rt,ot,h,A,x,V,0),ot}function _6(u,a,h,A,x){var E,P;if(x===qI(u,a,h,A)>0)for(E=a;E=a;E-=A)P=x6(E,u[E],u[E+1],P);return P&&OS(P,P.next)&&(Ix(P),P=P.next),P}function l0(u,a){if(!u)return u;a||(a=u);var h,A=u;do if(h=!1,A.steiner||!OS(A,A.next)&&hs(A.prev,A,A.next)!==0)A=A.next;else{if(Ix(A),(A=a=A.prev)===A.next)break;h=!0}while(h||A!==a);return a}function Ex(u,a,h,A,x,E,P){if(u){!P&&E&&function(q,Q,rt,ot){var lt=q;do lt.z===0&&(lt.z=WI(lt.x,lt.y,Q,rt,ot)),lt.prevZ=lt.prev,lt.nextZ=lt.next,lt=lt.next;while(lt!==q);lt.prevZ.nextZ=null,lt.prevZ=null,function(pt){var xt,Mt,Vt,It,zt,ie,ue,Be,Ke=1;do{for(Mt=pt,pt=null,zt=null,ie=0;Mt;){for(ie++,Vt=Mt,ue=0,xt=0;xt0||Be>0&&Vt;)ue!==0&&(Be===0||!Vt||Mt.z<=Vt.z)?(It=Mt,Mt=Mt.nextZ,ue--):(It=Vt,Vt=Vt.nextZ,Be--),zt?zt.nextZ=It:pt=It,It.prevZ=zt,zt=It;Mt=Vt}zt.nextZ=null,Ke*=2}while(ie>1)}(lt)}(u,A,x,E);for(var D,B,V=u;u.prev!==u.next;)if(D=u.prev,B=u.next,E?WQ(u,A,x,E):GQ(u))a.push(D.i/h|0),a.push(u.i/h|0),a.push(B.i/h|0),Ix(u),u=B.next,V=B.next;else if((u=B)===V){P?P===1?Ex(u=HQ(l0(u),a,h),a,h,A,x,E,2):P===2&&qQ(u,a,h,A,x,E):Ex(l0(u),a,h,A,x,E,1);break}}}function GQ(u){var a=u.prev,h=u,A=u.next;if(hs(a,h,A)>=0)return!1;for(var x=a.x,E=h.x,P=A.x,D=a.y,B=h.y,V=A.y,q=xE?x>P?x:P:E>P?E:P,ot=D>B?D>V?D:V:B>V?B:V,lt=A.next;lt!==a;){if(lt.x>=q&<.x<=rt&<.y>=Q&<.y<=ot&&u_(x,D,E,B,P,V,lt.x,lt.y)&&hs(lt.prev,lt,lt.next)>=0)return!1;lt=lt.next}return!0}function WQ(u,a,h,A){var x=u.prev,E=u,P=u.next;if(hs(x,E,P)>=0)return!1;for(var D=x.x,B=E.x,V=P.x,q=x.y,Q=E.y,rt=P.y,ot=DB?D>V?D:V:B>V?B:V,xt=q>Q?q>rt?q:rt:Q>rt?Q:rt,Mt=WI(ot,lt,a,h,A),Vt=WI(pt,xt,a,h,A),It=u.prevZ,zt=u.nextZ;It&&It.z>=Mt&&zt&&zt.z<=Vt;){if(It.x>=ot&&It.x<=pt&&It.y>=lt&&It.y<=xt&&It!==x&&It!==P&&u_(D,q,B,Q,V,rt,It.x,It.y)&&hs(It.prev,It,It.next)>=0||(It=It.prevZ,zt.x>=ot&&zt.x<=pt&&zt.y>=lt&&zt.y<=xt&&zt!==x&&zt!==P&&u_(D,q,B,Q,V,rt,zt.x,zt.y)&&hs(zt.prev,zt,zt.next)>=0))return!1;zt=zt.nextZ}for(;It&&It.z>=Mt;){if(It.x>=ot&&It.x<=pt&&It.y>=lt&&It.y<=xt&&It!==x&&It!==P&&u_(D,q,B,Q,V,rt,It.x,It.y)&&hs(It.prev,It,It.next)>=0)return!1;It=It.prevZ}for(;zt&&zt.z<=Vt;){if(zt.x>=ot&&zt.x<=pt&&zt.y>=lt&&zt.y<=xt&&zt!==x&&zt!==P&&u_(D,q,B,Q,V,rt,zt.x,zt.y)&&hs(zt.prev,zt,zt.next)>=0)return!1;zt=zt.nextZ}return!0}function HQ(u,a,h){var A=u;do{var x=A.prev,E=A.next.next;!OS(x,E)&&y6(x,A,A.next,E)&&Px(x,E)&&Px(E,x)&&(a.push(x.i/h|0),a.push(A.i/h|0),a.push(E.i/h|0),Ix(A),Ix(A.next),A=u=E),A=A.next}while(A!==u);return l0(A)}function qQ(u,a,h,A,x,E){var P=u;do{for(var D=P.next.next;D!==P.prev;){if(P.i!==D.i&&XQ(P,D)){var B=v6(P,D);return P=l0(P,P.next),B=l0(B,B.next),Ex(P,a,h,A,x,E,0),void Ex(B,a,h,A,x,E,0)}D=D.next}P=P.next}while(P!==u)}function ZQ(u,a){return u.x-a.x}function YQ(u,a){var h=function(x,E){var P,D=E,B=x.x,V=x.y,q=-1/0;do{if(V<=D.y&&V>=D.next.y&&D.next.y!==D.y){var Q=D.x+(V-D.y)*(D.next.x-D.x)/(D.next.y-D.y);if(Q<=B&&Q>q&&(q=Q,P=D.x=D.x&&D.x>=lt&&B!==D.x&&u_(VP.x||D.x===P.x&&$Q(P,D)))&&(P=D,xt=rt)),D=D.next;while(D!==ot);return P}(u,a);if(!h)return a;var A=v6(h,u);return l0(A,A.next),l0(h,h.next)}function $Q(u,a){return hs(u.prev,u,a.prev)<0&&hs(a.next,u,u.next)<0}function WI(u,a,h,A,x){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=(u-h)*x|0)|u<<8))|u<<4))|u<<2))|u<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-A)*x|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function QQ(u){var a=u,h=u;do(a.x=(u-P)*(E-D)&&(u-P)*(A-D)>=(h-P)*(a-D)&&(h-P)*(E-D)>=(x-P)*(A-D)}function XQ(u,a){return u.next.i!==a.i&&u.prev.i!==a.i&&!function(h,A){var x=h;do{if(x.i!==h.i&&x.next.i!==h.i&&x.i!==A.i&&x.next.i!==A.i&&y6(x,x.next,h,A))return!0;x=x.next}while(x!==h);return!1}(u,a)&&(Px(u,a)&&Px(a,u)&&function(h,A){var x=h,E=!1,P=(h.x+A.x)/2,D=(h.y+A.y)/2;do x.y>D!=x.next.y>D&&x.next.y!==x.y&&P<(x.next.x-x.x)*(D-x.y)/(x.next.y-x.y)+x.x&&(E=!E),x=x.next;while(x!==h);return E}(u,a)&&(hs(u.prev,u,a.prev)||hs(u,a.prev,a))||OS(u,a)&&hs(u.prev,u,u.next)>0&&hs(a.prev,a,a.next)>0)}function hs(u,a,h){return(a.y-u.y)*(h.x-a.x)-(a.x-u.x)*(h.y-a.y)}function OS(u,a){return u.x===a.x&&u.y===a.y}function y6(u,a,h,A){var x=FS(hs(u,a,h)),E=FS(hs(u,a,A)),P=FS(hs(h,A,u)),D=FS(hs(h,A,a));return x!==E&&P!==D||!(x!==0||!BS(u,h,a))||!(E!==0||!BS(u,A,a))||!(P!==0||!BS(h,u,A))||!(D!==0||!BS(h,a,A))}function BS(u,a,h){return a.x<=Math.max(u.x,h.x)&&a.x>=Math.min(u.x,h.x)&&a.y<=Math.max(u.y,h.y)&&a.y>=Math.min(u.y,h.y)}function FS(u){return u>0?1:u<0?-1:0}function Px(u,a){return hs(u.prev,u,u.next)<0?hs(u,a,u.next)>=0&&hs(u,u.prev,a)>=0:hs(u,a,u.prev)<0||hs(u,u.next,a)<0}function v6(u,a){var h=new HI(u.i,u.x,u.y),A=new HI(a.i,a.x,a.y),x=u.next,E=a.prev;return u.next=a,a.prev=u,h.next=x,x.prev=h,A.next=h,h.prev=A,E.next=A,A.prev=E,A}function x6(u,a,h,A){var x=new HI(u,a,h);return A?(x.next=A.next,x.prev=A,A.next.prev=x,A.next=x):(x.prev=x,x.next=x),x}function Ix(u){u.next.prev=u.prev,u.prev.next=u.next,u.prevZ&&(u.prevZ.nextZ=u.nextZ),u.nextZ&&(u.nextZ.prevZ=u.prevZ)}function HI(u,a,h){this.i=u,this.x=a,this.y=h,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function qI(u,a,h,A){for(var x=0,E=a,P=h-A;E0&&h.holes.push(A+=u[x-1].length)}return h};var b6=o(GI.exports);function KQ(u,a,h,A,x){w6(u,a,h||0,A||u.length-1,x||JQ)}function w6(u,a,h,A,x){for(;A>h;){if(A-h>600){var E=A-h+1,P=a-h+1,D=Math.log(E),B=.5*Math.exp(2*D/3),V=.5*Math.sqrt(D*B*(E-B)/E)*(P-E/2<0?-1:1);w6(u,a,Math.max(h,Math.floor(a-P*B/E+V)),Math.min(A,Math.floor(a+(E-P)*B/E+V)),x)}var q=u[a],Q=h,rt=A;for(Cx(u,h,a),x(u[A],q)>0&&Cx(u,h,A);Q0;)rt--}x(u[h],q)===0?Cx(u,h,rt):Cx(u,++rt,A),rt<=a&&(h=rt+1),a<=rt&&(A=rt-1)}}function Cx(u,a,h){var A=u[a];u[a]=u[h],u[h]=A}function JQ(u,a){return ua?1:0}function ZI(u,a){let h=u.length;if(h<=1)return[u];let A=[],x,E;for(let P=0;P1)for(let P=0;Ph.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new _t,this.indexArray=new he,this.indexArray2=new ce,this.programConfigurations=new Cs(a.layers,a.zoom),this.segments=new ur,this.segments2=new ur,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=YI(\"fill\",this.layers,h);let x=this.layers[0].layout.get(\"fill-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:B,index:V,sourceLayerIndex:q}of a){let Q=this.layers[0]._featureFilter.needGeometry,rt=wu(D,Q);if(!this.layers[0]._featureFilter.filter(new ki(this.zoom),rt,A))continue;let ot=E?x.evaluate(rt,{},A,h.availableImages):void 0,lt={id:B,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:Q?rt.geometry:De(D),patterns:{},sortKey:ot};P.push(lt)}E&&P.sort((D,B)=>D.sortKey-B.sortKey);for(let D of P){let{geometry:B,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let Q=$I(\"fill\",this.layers,D,this.zoom,h);this.patternFeatures.push(Q)}else this.addFeature(D,B,V,A,{});h.featureIndex.insert(a[V].feature,B,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,jQ),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.indexBuffer2=a.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(a,h,A,x,E){for(let P of ZI(h,500)){let D=0;for(let ot of P)D+=ot.length;let B=this.segments.prepareSegment(D,this.layoutVertexArray,this.indexArray),V=B.vertexLength,q=[],Q=[];for(let ot of P){if(ot.length===0)continue;ot!==P[0]&&Q.push(q.length/2);let lt=this.segments2.prepareSegment(ot.length,this.layoutVertexArray,this.indexArray2),pt=lt.vertexLength;this.layoutVertexArray.emplaceBack(ot[0].x,ot[0].y),this.indexArray2.emplaceBack(pt+ot.length-1,pt),q.push(ot[0].x),q.push(ot[0].y);for(let xt=1;xt>3}if(x--,A===1||A===2)E+=u.readSVarint(),P+=u.readSVarint(),A===1&&(a&&D.push(a),a=[]),a.push(new oX(E,P));else{if(A!==7)throw new Error(\"unknown command \"+A);a&&a.push(a[0].clone())}}return a&&D.push(a),D},h_.prototype.bbox=function(){var u=this._pbf;u.pos=this._geometry;for(var a=u.readVarint()+u.pos,h=1,A=0,x=0,E=0,P=1/0,D=-1/0,B=1/0,V=-1/0;u.pos>3}if(A--,h===1||h===2)(x+=u.readSVarint())D&&(D=x),(E+=u.readSVarint())V&&(V=E);else if(h!==7)throw new Error(\"unknown command \"+h)}return[P,B,D,V]},h_.prototype.toGeoJSON=function(u,a,h){var A,x,E=this.extent*Math.pow(2,h),P=this.extent*u,D=this.extent*a,B=this.loadGeometry(),V=h_.types[this.type];function q(ot){for(var lt=0;lt>3;x=P===1?A.readString():P===2?A.readFloat():P===3?A.readDouble():P===4?A.readVarint64():P===5?A.readVarint():P===6?A.readSVarint():P===7?A.readBoolean():null}return x}(h))}P6.prototype.feature=function(u){if(u<0||u>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[u];var a=this._pbf.readVarint()+this._pbf.pos;return new cX(this._pbf,a,this.extent,this._keys,this._values)};var hX=E6;function fX(u,a,h){if(u===3){var A=new hX(h,h.readVarint()+h.pos);A.length&&(a[A.name]=A)}}cA.VectorTile=function(u,a){this.layers=u.readFields(fX,{},a)},cA.VectorTileFeature=M6,cA.VectorTileLayer=E6;let dX=cA.VectorTileFeature.types,XI=Math.pow(2,13);function Lx(u,a,h,A,x,E,P,D){u.emplaceBack(a,h,2*Math.floor(A*XI)+P,x*XI*2,E*XI*2,Math.round(D))}class KI{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new yt,this.centroidVertexArray=new at,this.indexArray=new he,this.programConfigurations=new Cs(a.layers,a.zoom),this.segments=new ur,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.features=[],this.hasPattern=YI(\"fill-extrusion\",this.layers,h);for(let{feature:x,id:E,index:P,sourceLayerIndex:D}of a){let B=this.layers[0]._featureFilter.needGeometry,V=wu(x,B);if(!this.layers[0]._featureFilter.filter(new ki(this.zoom),V,A))continue;let q={id:E,sourceLayerIndex:D,index:P,geometry:B?V.geometry:De(x),properties:x.properties,type:x.type,patterns:{}};this.hasPattern?this.features.push($I(\"fill-extrusion\",this.layers,q,this.zoom,h)):this.addFeature(q,q.geometry,P,A,{}),h.featureIndex.insert(x,q.geometry,P,D,this.index,!0)}}addFeatures(a,h,A){for(let x of this.features){let{geometry:E}=x;this.addFeature(x,E,x.index,h,A)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,sX),this.centroidVertexBuffer=a.createVertexBuffer(this.centroidVertexArray,nX.members,!0),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(a,h,A,x,E){let P={x:0,y:0,vertexCount:0};for(let D of ZI(h,500)){let B=0;for(let lt of D)B+=lt.length;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(let lt of D){if(lt.length===0||AX(lt))continue;let pt=0;for(let xt=0;xt=1){let Vt=lt[xt-1];if(!pX(Mt,Vt)){V.vertexLength+4>ur.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let It=Mt.sub(Vt)._perp()._unit(),zt=Vt.dist(Mt);pt+zt>32768&&(pt=0),Lx(this.layoutVertexArray,Mt.x,Mt.y,It.x,It.y,0,0,pt),Lx(this.layoutVertexArray,Mt.x,Mt.y,It.x,It.y,0,1,pt),P.x+=2*Mt.x,P.y+=2*Mt.y,P.vertexCount+=2,pt+=zt,Lx(this.layoutVertexArray,Vt.x,Vt.y,It.x,It.y,0,0,pt),Lx(this.layoutVertexArray,Vt.x,Vt.y,It.x,It.y,0,1,pt),P.x+=2*Vt.x,P.y+=2*Vt.y,P.vertexCount+=2;let ie=V.vertexLength;this.indexArray.emplaceBack(ie,ie+2,ie+1),this.indexArray.emplaceBack(ie+1,ie+2,ie+3),V.vertexLength+=4,V.primitiveLength+=2}}}}if(V.vertexLength+B>ur.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(B,this.layoutVertexArray,this.indexArray)),dX[a.type]!==\"Polygon\")continue;let q=[],Q=[],rt=V.vertexLength;for(let lt of D)if(lt.length!==0){lt!==D[0]&&Q.push(q.length/2);for(let pt=0;ptBn)||u.y===a.y&&(u.y<0||u.y>Bn)}function AX(u){return u.every(a=>a.x<0)||u.every(a=>a.x>Bn)||u.every(a=>a.y<0)||u.every(a=>a.y>Bn)}let I6;Fe(\"FillExtrusionBucket\",KI,{omit:[\"layers\",\"features\"]});var mX={get paint(){return I6=I6||new wo({\"fill-extrusion-opacity\":new Qe(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new fr(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new Qe(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new Qe(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new If(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new fr(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new fr(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new Qe(Jt[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})}};class gX extends cl{constructor(a){super(a,mX)}createBucket(a){return new KI(a)}queryRadius(){return et(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return!0}queryIntersectsFeature(a,h,A,x,E,P,D,B){let V=st(a,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),P.angle,D),q=this.paint.get(\"fill-extrusion-height\").evaluate(h,A),Q=this.paint.get(\"fill-extrusion-base\").evaluate(h,A),rt=function(lt,pt,xt,Mt){let Vt=[];for(let It of lt){let zt=[It.x,It.y,0,1];Ft(zt,zt,pt),Vt.push(new _(zt[0]/zt[3],zt[1]/zt[3]))}return Vt}(V,B),ot=function(lt,pt,xt,Mt){let Vt=[],It=[],zt=Mt[8]*pt,ie=Mt[9]*pt,ue=Mt[10]*pt,Be=Mt[11]*pt,Ke=Mt[8]*xt,Re=Mt[9]*xt,Ie=Mt[10]*xt,we=Mt[11]*xt;for(let We of lt){let Ee=[],pe=[];for(let cr of We){let tr=cr.x,ei=cr.y,pn=Mt[0]*tr+Mt[4]*ei+Mt[12],Pn=Mt[1]*tr+Mt[5]*ei+Mt[13],Ws=Mt[2]*tr+Mt[6]*ei+Mt[14],Vl=Mt[3]*tr+Mt[7]*ei+Mt[15],Va=Ws+ue,Ls=Vl+Be,To=pn+Ke,Qo=Pn+Re,ja=Ws+Ie,Ga=Vl+we,Hs=new _((pn+zt)/Ls,(Pn+ie)/Ls);Hs.z=Va/Ls,Ee.push(Hs);let qs=new _(To/Ga,Qo/Ga);qs.z=ja/Ga,pe.push(qs)}Vt.push(Ee),It.push(pe)}return[Vt,It]}(x,Q,q,B);return function(lt,pt,xt){let Mt=1/0;fl(xt,pt)&&(Mt=C6(xt,pt[0]));for(let Vt=0;Vth.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(h=>{this.gradients[h.id]={}}),this.layoutVertexArray=new At,this.layoutVertexArray2=new kt,this.indexArray=new he,this.programConfigurations=new Cs(a.layers,a.zoom),this.segments=new ur,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=YI(\"line\",this.layers,h);let x=this.layers[0].layout.get(\"line-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:B,index:V,sourceLayerIndex:q}of a){let Q=this.layers[0]._featureFilter.needGeometry,rt=wu(D,Q);if(!this.layers[0]._featureFilter.filter(new ki(this.zoom),rt,A))continue;let ot=E?x.evaluate(rt,{},A):void 0,lt={id:B,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:Q?rt.geometry:De(D),patterns:{},sortKey:ot};P.push(lt)}E&&P.sort((D,B)=>D.sortKey-B.sortKey);for(let D of P){let{geometry:B,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let Q=$I(\"line\",this.layers,D,this.zoom,h);this.patternFeatures.push(Q)}else this.addFeature(D,B,V,A,{});h.featureIndex.insert(a[V].feature,B,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=a.createVertexBuffer(this.layoutVertexArray2,xX)),this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,yX),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(a){if(a.properties&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_start\")&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_end\"))return{start:+a.properties.mapbox_clip_start,end:+a.properties.mapbox_clip_end}}addFeature(a,h,A,x,E){let P=this.layers[0].layout,D=P.get(\"line-join\").evaluate(a,{}),B=P.get(\"line-cap\"),V=P.get(\"line-miter-limit\"),q=P.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(a);for(let Q of h)this.addLine(Q,a,D,B,V,q);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}addLine(a,h,A,x,E,P){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let Mt=0;Mt=2&&a[B-1].equals(a[B-2]);)B--;let V=0;for(;V0;if(Be&&Mt>V){let we=rt.dist(ot);if(we>2*q){let We=rt.sub(rt.sub(ot)._mult(q/we)._round());this.updateDistance(ot,We),this.addCurrentVertex(We,pt,0,0,Q),ot=We}}let Re=ot&<,Ie=Re?A:D?\"butt\":x;if(Re&&Ie===\"round\"&&(ieE&&(Ie=\"bevel\"),Ie===\"bevel\"&&(ie>2&&(Ie=\"flipbevel\"),ie100)Vt=xt.mult(-1);else{let we=ie*pt.add(xt).mag()/pt.sub(xt).mag();Vt._perp()._mult(we*(Ke?-1:1))}this.addCurrentVertex(rt,Vt,0,0,Q),this.addCurrentVertex(rt,Vt.mult(-1),0,0,Q)}else if(Ie===\"bevel\"||Ie===\"fakeround\"){let we=-Math.sqrt(ie*ie-1),We=Ke?we:0,Ee=Ke?0:we;if(ot&&this.addCurrentVertex(rt,pt,We,Ee,Q),Ie===\"fakeround\"){let pe=Math.round(180*ue/Math.PI/20);for(let cr=1;cr2*q){let We=rt.add(lt.sub(rt)._mult(q/we)._round());this.updateDistance(rt,We),this.addCurrentVertex(We,xt,0,0,Q),rt=We}}}}addCurrentVertex(a,h,A,x,E,P=!1){let D=h.y*x-h.x,B=-h.y-h.x*x;this.addHalfVertex(a,h.x+h.y*A,h.y-h.x*A,P,!1,A,E),this.addHalfVertex(a,D,B,P,!0,-x,E),this.distance>L6/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(a,h,A,x,E,P))}addHalfVertex({x:a,y:h},A,x,E,P,D,B){let V=.5*(this.lineClips?this.scaledDistance*(L6-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((a<<1)+(E?1:0),(h<<1)+(P?1:0),Math.round(63*A)+128,Math.round(63*x)+128,1+(D===0?0:D<0?-1:1)|(63&V)<<2,V>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);let q=B.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,q),B.primitiveLength++),P?this.e2=q:this.e1=q}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(a,h){this.distance+=a.dist(h),this.updateScaledDistance()}}let k6,R6;Fe(\"LineBucket\",JI,{omit:[\"layers\",\"patternFeatures\"]});var D6={get paint(){return R6=R6||new wo({\"line-opacity\":new fr(Jt.paint_line[\"line-opacity\"]),\"line-color\":new fr(Jt.paint_line[\"line-color\"]),\"line-translate\":new Qe(Jt.paint_line[\"line-translate\"]),\"line-translate-anchor\":new Qe(Jt.paint_line[\"line-translate-anchor\"]),\"line-width\":new fr(Jt.paint_line[\"line-width\"]),\"line-gap-width\":new fr(Jt.paint_line[\"line-gap-width\"]),\"line-offset\":new fr(Jt.paint_line[\"line-offset\"]),\"line-blur\":new fr(Jt.paint_line[\"line-blur\"]),\"line-dasharray\":new xu(Jt.paint_line[\"line-dasharray\"]),\"line-pattern\":new If(Jt.paint_line[\"line-pattern\"]),\"line-gradient\":new t0(Jt.paint_line[\"line-gradient\"])})},get layout(){return k6=k6||new wo({\"line-cap\":new Qe(Jt.layout_line[\"line-cap\"]),\"line-join\":new fr(Jt.layout_line[\"line-join\"]),\"line-miter-limit\":new Qe(Jt.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new Qe(Jt.layout_line[\"line-round-limit\"]),\"line-sort-key\":new fr(Jt.layout_line[\"line-sort-key\"])})}};class SX extends fr{possiblyEvaluate(a,h){return h=new ki(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),super.possiblyEvaluate(a,h)}evaluate(a,h,A,x){return h=Tt({},h,{zoom:Math.floor(h.zoom)}),super.evaluate(a,h,A,x)}}let zS;class TX extends cl{constructor(a){super(a,D6),this.gradientVersion=0,zS||(zS=new SX(D6.paint.properties[\"line-width\"].specification),zS.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(a){if(a===\"line-gradient\"){let h=this.gradientExpression();this.stepInterpolant=!!function(A){return A._styleExpression!==void 0}(h)&&h._styleExpression.expression instanceof Gp,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}recalculate(a,h){super.recalculate(a,h),this.paint._values[\"line-floorwidth\"]=zS.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,a)}createBucket(a){return new JI(a)}queryRadius(a){let h=a,A=O6(H(\"line-width\",this,h),H(\"line-gap-width\",this,h)),x=H(\"line-offset\",this,h);return A/2+Math.abs(x)+et(this.paint.get(\"line-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D){let B=st(a,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),P.angle,D),V=D/2*O6(this.paint.get(\"line-width\").evaluate(h,A),this.paint.get(\"line-gap-width\").evaluate(h,A)),q=this.paint.get(\"line-offset\").evaluate(h,A);return q&&(x=function(Q,rt){let ot=[];for(let lt=0;lt=3){for(let xt=0;xt0?a+2*u:u}let MX=Dn([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),EX=Dn([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);Dn([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);let PX=Dn([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);Dn([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);let B6=Dn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),IX=Dn([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function CX(u,a,h){return u.sections.forEach(A=>{A.text=function(x,E,P){let D=E.layout.get(\"text-transform\").evaluate(P,{});return D===\"uppercase\"?x=x.toLocaleUpperCase():D===\"lowercase\"&&(x=x.toLocaleLowerCase()),vu.applyArabicShaping&&(x=vu.applyArabicShaping(x)),x}(A.text,a,h)}),u}Dn([{name:\"triangle\",components:3,type:\"Uint16\"}]),Dn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),Dn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",name:\"collisionCircleDiameter\"},{type:\"Uint16\",name:\"textAnchorOffsetStartIndex\"},{type:\"Uint16\",name:\"textAnchorOffsetEndIndex\"}]),Dn([{type:\"Float32\",name:\"offsetX\"}]),Dn([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]),Dn([{type:\"Uint16\",name:\"textAnchor\"},{type:\"Float32\",components:2,name:\"textOffset\"}]);let Rx={\"!\":\"\\uFE15\",\"#\":\"\\uFF03\",$:\"\\uFF04\",\"%\":\"\\uFF05\",\"&\":\"\\uFF06\",\"(\":\"\\uFE35\",\")\":\"\\uFE36\",\"*\":\"\\uFF0A\",\"+\":\"\\uFF0B\",\",\":\"\\uFE10\",\"-\":\"\\uFE32\",\".\":\"\\u30FB\",\"/\":\"\\uFF0F\",\":\":\"\\uFE13\",\";\":\"\\uFE14\",\"<\":\"\\uFE3F\",\"=\":\"\\uFF1D\",\">\":\"\\uFE40\",\"?\":\"\\uFE16\",\"@\":\"\\uFF20\",\"[\":\"\\uFE47\",\"\\\\\":\"\\uFF3C\",\"]\":\"\\uFE48\",\"^\":\"\\uFF3E\",_:\"\\uFE33\",\"`\":\"\\uFF40\",\"{\":\"\\uFE37\",\"|\":\"\\u2015\",\"}\":\"\\uFE38\",\"~\":\"\\uFF5E\",\"\\xA2\":\"\\uFFE0\",\"\\xA3\":\"\\uFFE1\",\"\\xA5\":\"\\uFFE5\",\"\\xA6\":\"\\uFFE4\",\"\\xAC\":\"\\uFFE2\",\"\\xAF\":\"\\uFFE3\",\"\\u2013\":\"\\uFE32\",\"\\u2014\":\"\\uFE31\",\"\\u2018\":\"\\uFE43\",\"\\u2019\":\"\\uFE44\",\"\\u201C\":\"\\uFE41\",\"\\u201D\":\"\\uFE42\",\"\\u2026\":\"\\uFE19\",\"\\u2027\":\"\\u30FB\",\"\\u20A9\":\"\\uFFE6\",\"\\u3001\":\"\\uFE11\",\"\\u3002\":\"\\uFE12\",\"\\u3008\":\"\\uFE3F\",\"\\u3009\":\"\\uFE40\",\"\\u300A\":\"\\uFE3D\",\"\\u300B\":\"\\uFE3E\",\"\\u300C\":\"\\uFE41\",\"\\u300D\":\"\\uFE42\",\"\\u300E\":\"\\uFE43\",\"\\u300F\":\"\\uFE44\",\"\\u3010\":\"\\uFE3B\",\"\\u3011\":\"\\uFE3C\",\"\\u3014\":\"\\uFE39\",\"\\u3015\":\"\\uFE3A\",\"\\u3016\":\"\\uFE17\",\"\\u3017\":\"\\uFE18\",\"\\uFF01\":\"\\uFE15\",\"\\uFF08\":\"\\uFE35\",\"\\uFF09\":\"\\uFE36\",\"\\uFF0C\":\"\\uFE10\",\"\\uFF0D\":\"\\uFE32\",\"\\uFF0E\":\"\\u30FB\",\"\\uFF1A\":\"\\uFE13\",\"\\uFF1B\":\"\\uFE14\",\"\\uFF1C\":\"\\uFE3F\",\"\\uFF1E\":\"\\uFE40\",\"\\uFF1F\":\"\\uFE16\",\"\\uFF3B\":\"\\uFE47\",\"\\uFF3D\":\"\\uFE48\",\"\\uFF3F\":\"\\uFE33\",\"\\uFF5B\":\"\\uFE37\",\"\\uFF5C\":\"\\u2015\",\"\\uFF5D\":\"\\uFE38\",\"\\uFF5F\":\"\\uFE35\",\"\\uFF60\":\"\\uFE36\",\"\\uFF61\":\"\\uFE12\",\"\\uFF62\":\"\\uFE41\",\"\\uFF63\":\"\\uFE42\"};var Gs=24,F6=qi,z6=function(u,a,h,A,x){var E,P,D=8*x-A-1,B=(1<>1,q=-7,Q=h?x-1:0,rt=h?-1:1,ot=u[a+Q];for(Q+=rt,E=ot&(1<<-q)-1,ot>>=-q,q+=D;q>0;E=256*E+u[a+Q],Q+=rt,q-=8);for(P=E&(1<<-q)-1,E>>=-q,q+=A;q>0;P=256*P+u[a+Q],Q+=rt,q-=8);if(E===0)E=1-V;else{if(E===B)return P?NaN:1/0*(ot?-1:1);P+=Math.pow(2,A),E-=V}return(ot?-1:1)*P*Math.pow(2,E-A)},N6=function(u,a,h,A,x,E){var P,D,B,V=8*E-x-1,q=(1<>1,rt=x===23?Math.pow(2,-24)-Math.pow(2,-77):0,ot=A?0:E-1,lt=A?1:-1,pt=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(D=isNaN(a)?1:0,P=q):(P=Math.floor(Math.log(a)/Math.LN2),a*(B=Math.pow(2,-P))<1&&(P--,B*=2),(a+=P+Q>=1?rt/B:rt*Math.pow(2,1-Q))*B>=2&&(P++,B/=2),P+Q>=q?(D=0,P=q):P+Q>=1?(D=(a*B-1)*Math.pow(2,x),P+=Q):(D=a*Math.pow(2,Q-1)*Math.pow(2,x),P=0));x>=8;u[h+ot]=255&D,ot+=lt,D/=256,x-=8);for(P=P<0;u[h+ot]=255&P,ot+=lt,P/=256,V-=8);u[h+ot-lt]|=128*pt};function qi(u){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(u)?u:new Uint8Array(u||0),this.pos=0,this.type=0,this.length=this.buf.length}qi.Varint=0,qi.Fixed64=1,qi.Bytes=2,qi.Fixed32=5;var tC=4294967296,U6=1/tC,V6=typeof TextDecoder>\"u\"?null:new TextDecoder(\"utf8\");function Bd(u){return u.type===qi.Bytes?u.readVarint()+u.pos:u.pos+1}function f_(u,a,h){return h?4294967296*a+(u>>>0):4294967296*(a>>>0)+(u>>>0)}function j6(u,a,h){var A=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));h.realloc(A);for(var x=h.pos-1;x>=u;x--)h.buf[x+A]=h.buf[x]}function LX(u,a){for(var h=0;h>>8,u[h+2]=a>>>16,u[h+3]=a>>>24}function G6(u,a){return(u[a]|u[a+1]<<8|u[a+2]<<16)+(u[a+3]<<24)}qi.prototype={destroy:function(){this.buf=null},readFields:function(u,a,h){for(h=h||this.length;this.pos>3,E=this.pos;this.type=7&A,u(x,a,this),this.pos===E&&this.skip(A)}return a},readMessage:function(u,a){return this.readFields(u,a,this.readVarint()+this.pos)},readFixed32:function(){var u=NS(this.buf,this.pos);return this.pos+=4,u},readSFixed32:function(){var u=G6(this.buf,this.pos);return this.pos+=4,u},readFixed64:function(){var u=NS(this.buf,this.pos)+NS(this.buf,this.pos+4)*tC;return this.pos+=8,u},readSFixed64:function(){var u=NS(this.buf,this.pos)+G6(this.buf,this.pos+4)*tC;return this.pos+=8,u},readFloat:function(){var u=z6(this.buf,this.pos,!0,23,4);return this.pos+=4,u},readDouble:function(){var u=z6(this.buf,this.pos,!0,52,8);return this.pos+=8,u},readVarint:function(u){var a,h,A=this.buf;return a=127&(h=A[this.pos++]),h<128?a:(a|=(127&(h=A[this.pos++]))<<7,h<128?a:(a|=(127&(h=A[this.pos++]))<<14,h<128?a:(a|=(127&(h=A[this.pos++]))<<21,h<128?a:function(x,E,P){var D,B,V=P.buf;if(D=(112&(B=V[P.pos++]))>>4,B<128||(D|=(127&(B=V[P.pos++]))<<3,B<128)||(D|=(127&(B=V[P.pos++]))<<10,B<128)||(D|=(127&(B=V[P.pos++]))<<17,B<128)||(D|=(127&(B=V[P.pos++]))<<24,B<128)||(D|=(1&(B=V[P.pos++]))<<31,B<128))return f_(x,D,E);throw new Error(\"Expected varint not more than 10 bytes\")}(a|=(15&(h=A[this.pos]))<<28,u,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var u=this.readVarint();return u%2==1?(u+1)/-2:u/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var u=this.readVarint()+this.pos,a=this.pos;return this.pos=u,u-a>=12&&V6?function(h,A,x){return V6.decode(h.subarray(A,x))}(this.buf,a,u):function(h,A,x){for(var E=\"\",P=A;P239?4:q>223?3:q>191?2:1;if(P+rt>x)break;rt===1?q<128&&(Q=q):rt===2?(192&(D=h[P+1]))==128&&(Q=(31&q)<<6|63&D)<=127&&(Q=null):rt===3?(B=h[P+2],(192&(D=h[P+1]))==128&&(192&B)==128&&((Q=(15&q)<<12|(63&D)<<6|63&B)<=2047||Q>=55296&&Q<=57343)&&(Q=null)):rt===4&&(B=h[P+2],V=h[P+3],(192&(D=h[P+1]))==128&&(192&B)==128&&(192&V)==128&&((Q=(15&q)<<18|(63&D)<<12|(63&B)<<6|63&V)<=65535||Q>=1114112)&&(Q=null)),Q===null?(Q=65533,rt=1):Q>65535&&(Q-=65536,E+=String.fromCharCode(Q>>>10&1023|55296),Q=56320|1023&Q),E+=String.fromCharCode(Q),P+=rt}return E}(this.buf,a,u)},readBytes:function(){var u=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,u);return this.pos=u,a},readPackedVarint:function(u,a){if(this.type!==qi.Bytes)return u.push(this.readVarint(a));var h=Bd(this);for(u=u||[];this.pos127;);else if(a===qi.Bytes)this.pos=this.readVarint()+this.pos;else if(a===qi.Fixed32)this.pos+=4;else{if(a!==qi.Fixed64)throw new Error(\"Unimplemented type: \"+a);this.pos+=8}},writeTag:function(u,a){this.writeVarint(u<<3|a)},realloc:function(u){for(var a=this.length||16;a268435455||u<0?function(a,h){var A,x;if(a>=0?(A=a%4294967296|0,x=a/4294967296|0):(x=~(-a/4294967296),4294967295^(A=~(-a%4294967296))?A=A+1|0:(A=0,x=x+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error(\"Given varint doesn't fit into 10 bytes\");h.realloc(10),function(E,P,D){D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,D.buf[D.pos]=127&(E>>>=7)}(A,0,h),function(E,P){var D=(7&E)<<4;P.buf[P.pos++]|=D|((E>>>=3)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E)))))}(x,h)}(u,this):(this.realloc(4),this.buf[this.pos++]=127&u|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=u>>>7&127))))},writeSVarint:function(u){this.writeVarint(u<0?2*-u-1:2*u)},writeBoolean:function(u){this.writeVarint(!!u)},writeString:function(u){u=String(u),this.realloc(4*u.length),this.pos++;var a=this.pos;this.pos=function(A,x,E){for(var P,D,B=0;B55295&&P<57344){if(!D){P>56319||B+1===x.length?(A[E++]=239,A[E++]=191,A[E++]=189):D=P;continue}if(P<56320){A[E++]=239,A[E++]=191,A[E++]=189,D=P;continue}P=D-55296<<10|P-56320|65536,D=null}else D&&(A[E++]=239,A[E++]=191,A[E++]=189,D=null);P<128?A[E++]=P:(P<2048?A[E++]=P>>6|192:(P<65536?A[E++]=P>>12|224:(A[E++]=P>>18|240,A[E++]=P>>12&63|128),A[E++]=P>>6&63|128),A[E++]=63&P|128)}return E}(this.buf,u,this.pos);var h=this.pos-a;h>=128&&j6(a,h,this),this.pos=a-1,this.writeVarint(h),this.pos+=h},writeFloat:function(u){this.realloc(4),N6(this.buf,u,this.pos,!0,23,4),this.pos+=4},writeDouble:function(u){this.realloc(8),N6(this.buf,u,this.pos,!0,52,8),this.pos+=8},writeBytes:function(u){var a=u.length;this.writeVarint(a),this.realloc(a);for(var h=0;h=128&&j6(h,A,this),this.pos=h-1,this.writeVarint(A),this.pos+=A},writeMessage:function(u,a,h){this.writeTag(u,qi.Bytes),this.writeRawMessage(a,h)},writePackedVarint:function(u,a){a.length&&this.writeMessage(u,LX,a)},writePackedSVarint:function(u,a){a.length&&this.writeMessage(u,kX,a)},writePackedBoolean:function(u,a){a.length&&this.writeMessage(u,OX,a)},writePackedFloat:function(u,a){a.length&&this.writeMessage(u,RX,a)},writePackedDouble:function(u,a){a.length&&this.writeMessage(u,DX,a)},writePackedFixed32:function(u,a){a.length&&this.writeMessage(u,BX,a)},writePackedSFixed32:function(u,a){a.length&&this.writeMessage(u,FX,a)},writePackedFixed64:function(u,a){a.length&&this.writeMessage(u,zX,a)},writePackedSFixed64:function(u,a){a.length&&this.writeMessage(u,NX,a)},writeBytesField:function(u,a){this.writeTag(u,qi.Bytes),this.writeBytes(a)},writeFixed32Field:function(u,a){this.writeTag(u,qi.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(u,a){this.writeTag(u,qi.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(u,a){this.writeTag(u,qi.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(u,a){this.writeTag(u,qi.Fixed64),this.writeSFixed64(a)},writeVarintField:function(u,a){this.writeTag(u,qi.Varint),this.writeVarint(a)},writeSVarintField:function(u,a){this.writeTag(u,qi.Varint),this.writeSVarint(a)},writeStringField:function(u,a){this.writeTag(u,qi.Bytes),this.writeString(a)},writeFloatField:function(u,a){this.writeTag(u,qi.Fixed32),this.writeFloat(a)},writeDoubleField:function(u,a){this.writeTag(u,qi.Fixed64),this.writeDouble(a)},writeBooleanField:function(u,a){this.writeVarintField(u,!!a)}};var eC=o(F6);let rC=3;function UX(u,a,h){u===1&&h.readMessage(VX,a)}function VX(u,a,h){if(u===3){let{id:A,bitmap:x,width:E,height:P,left:D,top:B,advance:V}=h.readMessage(jX,{});a.push({id:A,bitmap:new pi({width:E+2*rC,height:P+2*rC},x),metrics:{width:E,height:P,left:D,top:B,advance:V}})}}function jX(u,a,h){u===1?a.id=h.readVarint():u===2?a.bitmap=h.readBytes():u===3?a.width=h.readVarint():u===4?a.height=h.readVarint():u===5?a.left=h.readSVarint():u===6?a.top=h.readSVarint():u===7&&(a.advance=h.readVarint())}let W6=rC;function H6(u){let a=0,h=0;for(let P of u)a+=P.w*P.h,h=Math.max(h,P.w);u.sort((P,D)=>D.h-P.h);let A=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),h),h:1/0}],x=0,E=0;for(let P of u)for(let D=A.length-1;D>=0;D--){let B=A[D];if(!(P.w>B.w||P.h>B.h)){if(P.x=B.x,P.y=B.y,E=Math.max(E,P.y+P.h),x=Math.max(x,P.x+P.w),P.w===B.w&&P.h===B.h){let V=A.pop();D=0&&A>=a&&VS[this.text.charCodeAt(A)];A--)h--;this.text=this.text.substring(a,h),this.sectionIndex=this.sectionIndex.slice(a,h)}substring(a,h){let A=new p_;return A.text=this.text.substring(a,h),A.sectionIndex=this.sectionIndex.slice(a,h),A.sections=this.sections,A}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((a,h)=>Math.max(a,this.sections[h].scale),0)}addTextSection(a,h){this.text+=a.text,this.sections.push(Ox.forText(a.scale,a.fontStack||h));let A=this.sections.length-1;for(let x=0;x=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function US(u,a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt){let xt=p_.fromFeature(u,x),Mt;Q===n.ah.vertical&&xt.verticalizePunctuation();let{processBidirectionalText:Vt,processStyledBidirectionalText:It}=vu;if(Vt&&xt.sections.length===1){Mt=[];let ue=Vt(xt.toString(),nC(xt,V,E,a,A,ot,lt));for(let Be of ue){let Ke=new p_;Ke.text=Be,Ke.sections=xt.sections;for(let Re=0;Re0&&zd>pl&&(pl=zd)}else{let zc=Ke[li.fontStack],ml=zc&&zc[Xo];if(ml&&ml.rect)Ah=ml.rect,Su=ml.metrics;else{let zd=Be[li.fontStack],Ux=zd&&zd[Xo];if(!Ux)continue;Su=Ux.metrics}Ys=(qs-li.scale)*Gs}Tu?(ue.verticalizable=!0,pa.push({glyph:Xo,imageName:mh,x:pn,y:Pn+Ys,vertical:Tu,scale:li.scale,fontStack:li.fontStack,sectionIndex:Aa,metrics:Su,rect:Ah}),pn+=Fd*li.scale+cr):(pa.push({glyph:Xo,imageName:mh,x:pn,y:Pn+Ys,vertical:Tu,scale:li.scale,fontStack:li.fontStack,sectionIndex:Aa,metrics:Su,rect:Ah}),pn+=Su.advance*li.scale+cr)}pa.length!==0&&(Ws=Math.max(pn-cr,Ws),HX(pa,0,pa.length-1,Va,pl)),pn=0;let Al=we*qs+pl;Wa.lineOffset=Math.max(pl,da),Pn+=Al,Vl=Math.max(Al,Vl),++Ls}var To;let Qo=Pn-Dx,{horizontalAlign:ja,verticalAlign:Ga}=sC(We);(function(Hs,qs,da,Wa,pa,pl,Al,Zs,li){let Aa=(qs-da)*pa,Xo=0;Xo=pl!==Al?-Zs*Wa-Dx:(-Wa*li+.5)*Al;for(let Ys of Hs)for(let Su of Ys.positionedGlyphs)Su.x+=Aa,Su.y+=Xo})(ue.positionedLines,Va,ja,Ga,Ws,Vl,we,Qo,Ie.length),ue.top+=-Ga*Qo,ue.bottom=ue.top+Qo,ue.left+=-ja*Ws,ue.right=ue.left+Ws}(ie,a,h,A,Mt,P,D,B,Q,V,rt,pt),!function(ue){for(let Be of ue)if(Be.positionedGlyphs.length!==0)return!1;return!0}(zt)&&ie}let VS={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},GX={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Z6(u,a,h,A,x,E){if(a.imageName){let P=A[a.imageName];return P?P.displaySize[0]*a.scale*Gs/E+x:0}{let P=h[a.fontStack],D=P&&P[u];return D?D.metrics.advance*a.scale+x:0}}function Y6(u,a,h,A){let x=Math.pow(u-a,2);return A?u=0,q=0;for(let rt=0;rtP.id),this.index=a.index,this.pixelRatio=a.pixelRatio,this.sourceLayerIndex=a.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Se([]),this.placementViewportMatrix=Se([]);let h=this.layers[0]._unevaluatedLayout._values;this.textSizeData=K6(this.zoom,h[\"text-size\"]),this.iconSizeData=K6(this.zoom,h[\"icon-size\"]);let A=this.layers[0].layout,x=A.get(\"symbol-sort-key\"),E=A.get(\"symbol-z-order\");this.canOverlap=oC(A,\"text-overlap\",\"text-allow-overlap\")!==\"never\"||oC(A,\"icon-overlap\",\"icon-allow-overlap\")!==\"never\"||A.get(\"text-ignore-placement\")||A.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=E!==\"viewport-y\"&&!x.isConstant(),this.sortFeaturesByY=(E===\"viewport-y\"||E===\"auto\"&&!this.sortFeaturesByKey)&&this.canOverlap,A.get(\"symbol-placement\")===\"point\"&&(this.writingModes=A.get(\"text-writing-mode\").map(P=>n.ah[P])),this.stateDependentLayerIds=this.layers.filter(P=>P.isStateDependent()).map(P=>P.id),this.sourceID=a.sourceID}createArrays(){this.text=new lC(new Cs(this.layers,this.zoom,a=>/^text/.test(a))),this.icon=new lC(new Cs(this.layers,this.zoom,a=>/^icon/.test(a))),this.glyphOffsetArray=new O,this.lineVertexArray=new F,this.symbolInstances=new M,this.textAnchorOffsets=new W}calculateGlyphDependencies(a,h,A,x,E){for(let P=0;P0)&&(P.value.kind!==\"constant\"||P.value.value.length>0),q=B.value.kind!==\"constant\"||!!B.value.value||Object.keys(B.parameters).length>0,Q=E.get(\"symbol-sort-key\");if(this.features=[],!V&&!q)return;let rt=h.iconDependencies,ot=h.glyphDependencies,lt=h.availableImages,pt=new ki(this.zoom);for(let{feature:xt,id:Mt,index:Vt,sourceLayerIndex:It}of a){let zt=x._featureFilter.needGeometry,ie=wu(xt,zt);if(!x._featureFilter.filter(pt,ie,A))continue;let ue,Be;if(zt||(ie.geometry=De(xt)),V){let Re=x.getValueAndResolveTokens(\"text-field\",ie,A,lt),Ie=Gn.factory(Re);$X(Ie)&&(this.hasRTLText=!0),(!this.hasRTLText||vu.getRTLTextPluginStatus()===\"unavailable\"||this.hasRTLText&&vu.isParsed())&&(ue=CX(Ie,x,ie))}if(q){let Re=x.getValueAndResolveTokens(\"icon-image\",ie,A,lt);Be=Re instanceof Wn?Re:Wn.fromString(Re)}if(!ue&&!Be)continue;let Ke=this.sortFeaturesByKey?Q.evaluate(ie,{},A):void 0;if(this.features.push({id:Mt,text:ue,icon:Be,index:Vt,sourceLayerIndex:It,geometry:ie.geometry,properties:xt.properties,type:ZX[xt.type],sortKey:Ke}),Be&&(rt[Be.name]=!0),ue){let Re=P.evaluate(ie,{},A).join(\",\"),Ie=E.get(\"text-rotation-alignment\")!==\"viewport\"&&E.get(\"symbol-placement\")!==\"point\";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(n.ah.vertical)>=0;for(let we of ue.sections)if(we.image)rt[we.image.name]=!0;else{let We=iA(ue.toString()),Ee=we.fontStack||Re,pe=ot[Ee]=ot[Ee]||{};this.calculateGlyphDependencies(we.text,pe,Ie,this.allowVerticalPlacement,We)}}}E.get(\"symbol-placement\")===\"line\"&&(this.features=function(xt){let Mt={},Vt={},It=[],zt=0;function ie(Re){It.push(xt[Re]),zt++}function ue(Re,Ie,we){let We=Vt[Re];return delete Vt[Re],Vt[Ie]=We,It[We].geometry[0].pop(),It[We].geometry[0]=It[We].geometry[0].concat(we[0]),We}function Be(Re,Ie,we){let We=Mt[Ie];return delete Mt[Ie],Mt[Re]=We,It[We].geometry[0].shift(),It[We].geometry[0]=we[0].concat(It[We].geometry[0]),We}function Ke(Re,Ie,we){let We=we?Ie[0][Ie[0].length-1]:Ie[0][0];return`${Re}:${We.x}:${We.y}`}for(let Re=0;ReRe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((xt,Mt)=>xt.sortKey-Mt.sortKey)}update(a,h,A){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(a,h,this.layers,A),this.icon.programConfigurations.updatePaintArrays(a,h,this.layers,A))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(a){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(a),this.iconCollisionBox.upload(a)),this.text.upload(a,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(a,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(a,h){let A=this.lineVertexArray.length;if(a.segment!==void 0){let x=a.dist(h[a.segment+1]),E=a.dist(h[a.segment]),P={};for(let D=a.segment+1;D=0;D--)P[D]={x:h[D].x,y:h[D].y,tileUnitDistanceFromAnchor:E},D>0&&(E+=h[D-1].dist(h[D]));for(let D=0;D0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(a,h){let A=a.placedSymbolArray.get(h),x=A.vertexStartIndex+4*A.numGlyphs;for(let E=A.vertexStartIndex;Ex[D]-x[B]||E[B]-E[D]),P}addToSortKeyRanges(a,h){let A=this.sortKeyRanges[this.sortKeyRanges.length-1];A&&A.sortKey===h?A.symbolInstanceEnd=a+1:this.sortKeyRanges.push({sortKey:h,symbolInstanceStart:a,symbolInstanceEnd:a+1})}sortFeatures(a){if(this.sortFeaturesByY&&this.sortedAngle!==a&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(a),this.sortedAngle=a,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let h of this.symbolInstanceIndexes){let A=this.symbolInstances.get(h);this.featureSortOrder.push(A.featureIndex),[A.rightJustifiedTextSymbolIndex,A.centerJustifiedTextSymbolIndex,A.leftJustifiedTextSymbolIndex].forEach((x,E,P)=>{x>=0&&P.indexOf(x)===E&&this.addIndicesForPlacedSymbol(this.text,x)}),A.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,A.verticalPlacedTextSymbolIndex),A.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.placedIconSymbolIndex),A.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let J6,tF;Fe(\"SymbolBucket\",A_,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),A_.MAX_GLYPHS=65535,A_.addDynamicAttributes=aC;var uC={get paint(){return tF=tF||new wo({\"icon-opacity\":new fr(Jt.paint_symbol[\"icon-opacity\"]),\"icon-color\":new fr(Jt.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new fr(Jt.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new fr(Jt.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new fr(Jt.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new Qe(Jt.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new Qe(Jt.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new fr(Jt.paint_symbol[\"text-opacity\"]),\"text-color\":new fr(Jt.paint_symbol[\"text-color\"],{runtimeType:Cn,getOverride:u=>u.textColor,hasOverride:u=>!!u.textColor}),\"text-halo-color\":new fr(Jt.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new fr(Jt.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new fr(Jt.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new Qe(Jt.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new Qe(Jt.paint_symbol[\"text-translate-anchor\"])})},get layout(){return J6=J6||new wo({\"symbol-placement\":new Qe(Jt.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new Qe(Jt.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new Qe(Jt.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new fr(Jt.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new Qe(Jt.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new Qe(Jt.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new Qe(Jt.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new Qe(Jt.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new Qe(Jt.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new Qe(Jt.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new fr(Jt.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new Qe(Jt.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new Qe(Jt.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new fr(Jt.layout_symbol[\"icon-image\"]),\"icon-rotate\":new fr(Jt.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new fr(Jt.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new Qe(Jt.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new fr(Jt.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new fr(Jt.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new Qe(Jt.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new Qe(Jt.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new Qe(Jt.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new fr(Jt.layout_symbol[\"text-field\"]),\"text-font\":new fr(Jt.layout_symbol[\"text-font\"]),\"text-size\":new fr(Jt.layout_symbol[\"text-size\"]),\"text-max-width\":new fr(Jt.layout_symbol[\"text-max-width\"]),\"text-line-height\":new Qe(Jt.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new fr(Jt.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new fr(Jt.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new fr(Jt.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new Qe(Jt.layout_symbol[\"text-variable-anchor\"]),\"text-variable-anchor-offset\":new fr(Jt.layout_symbol[\"text-variable-anchor-offset\"]),\"text-anchor\":new fr(Jt.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new Qe(Jt.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new Qe(Jt.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new fr(Jt.layout_symbol[\"text-rotate\"]),\"text-padding\":new Qe(Jt.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new Qe(Jt.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new fr(Jt.layout_symbol[\"text-transform\"]),\"text-offset\":new fr(Jt.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new Qe(Jt.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new Qe(Jt.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new Qe(Jt.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new Qe(Jt.layout_symbol[\"text-optional\"])})}};class eF{constructor(a){if(a.property.overrides===void 0)throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");this.type=a.property.overrides?a.property.overrides.runtimeType:ts,this.defaultValue=a}evaluate(a){if(a.formattedSection){let h=this.defaultValue.property.overrides;if(h&&h.hasOverride(a.formattedSection))return h.getOverride(a.formattedSection)}return a.feature&&a.featureState?this.defaultValue.evaluate(a.feature,a.featureState):this.defaultValue.property.specification.default}eachChild(a){this.defaultValue.isConstant()||a(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Fe(\"FormatSectionOverride\",eF,{omit:[\"defaultValue\"]});class GS extends cl{constructor(a){super(a,uC)}recalculate(a,h){if(super.recalculate(a,h),this.layout.get(\"icon-rotation-alignment\")===\"auto\"&&(this.layout._values[\"icon-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-rotation-alignment\")===\"auto\"&&(this.layout._values[\"text-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-pitch-alignment\")===\"auto\"&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")===\"map\"?\"map\":\"viewport\"),this.layout.get(\"icon-pitch-alignment\")===\"auto\"&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),this.layout.get(\"symbol-placement\")===\"point\"){let A=this.layout.get(\"text-writing-mode\");if(A){let x=[];for(let E of A)x.indexOf(E)<0&&x.push(E);this.layout._values[\"text-writing-mode\"]=x}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"]}this._setPaintOverrides()}getValueAndResolveTokens(a,h,A,x){let E=this.layout.get(a).evaluate(h,{},A,x),P=this._unevaluatedLayout._values[a];return P.isDataDriven()||Ni(P.value)||!E?E:function(D,B){return B.replace(/{([^{}]+)}/g,(V,q)=>D&&q in D?String(D[q]):\"\")}(h.properties,E)}createBucket(a){return new A_(a)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(let a of uC.paint.overridableProperties){if(!GS.hasPaintOverride(this.layout,a))continue;let h=this.paint.get(a),A=new eF(h),x=new en(A,h.property.specification),E=null;E=h.value.kind===\"constant\"||h.value.kind===\"source\"?new wt(\"source\",x):new qm(\"composite\",x,h.value.zoomStops),this.paint._values[a]=new ll(h.property,E,h.parameters)}}_handleOverridablePaintPropertyUpdate(a,h,A){return!(!this.layout||h.isDataDriven()||A.isDataDriven())&&GS.hasPaintOverride(this.layout,a)}static hasPaintOverride(a,h){let A=a.get(\"text-field\"),x=uC.paint.properties[h],E=!1,P=D=>{for(let B of D)if(x.overrides&&x.overrides.hasOverride(B))return void(E=!0)};if(A.value.kind===\"constant\"&&A.value.value instanceof Gn)P(A.value.value.sections);else if(A.value.kind===\"source\"){let D=V=>{E||(V instanceof Ra&&hn(V.value)===jn?P(V.value.sections):V instanceof bt?P(V.sections):V.eachChild(D))},B=A.value;B._styleExpression&&D(B._styleExpression.expression)}return E}}let rF;var QX={get paint(){return rF=rF||new wo({\"background-color\":new Qe(Jt.paint_background[\"background-color\"]),\"background-pattern\":new xu(Jt.paint_background[\"background-pattern\"]),\"background-opacity\":new Qe(Jt.paint_background[\"background-opacity\"])})}};class XX extends cl{constructor(a){super(a,QX)}}let iF;var KX={get paint(){return iF=iF||new wo({\"raster-opacity\":new Qe(Jt.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new Qe(Jt.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new Qe(Jt.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new Qe(Jt.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new Qe(Jt.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new Qe(Jt.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new Qe(Jt.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new Qe(Jt.paint_raster[\"raster-fade-duration\"])})}};class JX extends cl{constructor(a){super(a,KX)}}class tK extends cl{constructor(a){super(a,{}),this.onAdd=h=>{this.implementation.onAdd&&this.implementation.onAdd(h,h.painter.context.gl)},this.onRemove=h=>{this.implementation.onRemove&&this.implementation.onRemove(h,h.painter.context.gl)},this.implementation=a}is3D(){return this.implementation.renderingMode===\"3d\"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error(\"Custom layers cannot be serialized\")}}class eK{constructor(a){this._methodToThrottle=a,this._triggered=!1,typeof MessageChannel<\"u\"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._methodToThrottle()},0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}let hC=63710088e-1;class fA{constructor(a,h){if(isNaN(a)||isNaN(h))throw new Error(`Invalid LngLat object: (${a}, ${h})`);if(this.lng=+a,this.lat=+h,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new fA(ht(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(a){let h=Math.PI/180,A=this.lat*h,x=a.lat*h,E=Math.sin(A)*Math.sin(x)+Math.cos(A)*Math.cos(x)*Math.cos((a.lng-this.lng)*h);return hC*Math.acos(Math.min(E,1))}static convert(a){if(a instanceof fA)return a;if(Array.isArray(a)&&(a.length===2||a.length===3))return new fA(Number(a[0]),Number(a[1]));if(!Array.isArray(a)&&typeof a==\"object\"&&a!==null)return new fA(Number(\"lng\"in a?a.lng:a.lon),Number(a.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\")}}let nF=2*Math.PI*hC;function sF(u){return nF*Math.cos(u*Math.PI/180)}function oF(u){return(180+u)/360}function aF(u){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u*Math.PI/360)))/360}function lF(u,a){return u/sF(a)}function fC(u){return 360/Math.PI*Math.atan(Math.exp((180-360*u)*Math.PI/180))-90}class WS{constructor(a,h,A=0){this.x=+a,this.y=+h,this.z=+A}static fromLngLat(a,h=0){let A=fA.convert(a);return new WS(oF(A.lng),aF(A.lat),lF(h,A.lat))}toLngLat(){return new fA(360*this.x-180,fC(this.y))}toAltitude(){return this.z*sF(fC(this.y))}meterInMercatorCoordinateUnits(){return 1/nF*(a=fC(this.y),1/Math.cos(a*Math.PI/180));var a}}function cF(u,a,h){var A=2*Math.PI*6378137/256/Math.pow(2,h);return[u*A-2*Math.PI*6378137/2,a*A-2*Math.PI*6378137/2]}class dC{constructor(a,h,A){if(a<0||a>25||A<0||A>=Math.pow(2,a)||h<0||h>=Math.pow(2,a))throw new Error(`x=${h}, y=${A}, z=${a} outside of bounds. 0<=x<${Math.pow(2,a)}, 0<=y<${Math.pow(2,a)} 0<=z<=25 `);this.z=a,this.x=h,this.y=A,this.key=Fx(0,a,a,h,A)}equals(a){return this.z===a.z&&this.x===a.x&&this.y===a.y}url(a,h,A){let x=(P=this.y,D=this.z,B=cF(256*(E=this.x),256*(P=Math.pow(2,D)-P-1),D),V=cF(256*(E+1),256*(P+1),D),B[0]+\",\"+B[1]+\",\"+V[0]+\",\"+V[1]);var E,P,D,B,V;let q=function(Q,rt,ot){let lt,pt=\"\";for(let xt=Q;xt>0;xt--)lt=1<1?\"@2x\":\"\").replace(/{quadkey}/g,q).replace(/{bbox-epsg-3857}/g,x)}isChildOf(a){let h=this.z-a.z;return h>0&&a.x===this.x>>h&&a.y===this.y>>h}getTilePoint(a){let h=Math.pow(2,this.z);return new _((a.x*h-this.x)*Bn,(a.y*h-this.y)*Bn)}toString(){return`${this.z}/${this.x}/${this.y}`}}class uF{constructor(a,h){this.wrap=a,this.canonical=h,this.key=Fx(a,h.z,h.z,h.x,h.y)}}class Fc{constructor(a,h,A,x,E){if(a= z; overscaledZ = ${a}; z = ${A}`);this.overscaledZ=a,this.wrap=h,this.canonical=new dC(A,+x,+E),this.key=Fx(h,a,A,x,E)}clone(){return new Fc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(a){return this.overscaledZ===a.overscaledZ&&this.wrap===a.wrap&&this.canonical.equals(a.canonical)}scaledTo(a){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let h=this.canonical.z-a;return a>this.canonical.z?new Fc(a,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Fc(a,this.wrap,a,this.canonical.x>>h,this.canonical.y>>h)}calculateScaledKey(a,h){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let A=this.canonical.z-a;return a>this.canonical.z?Fx(this.wrap*+h,a,this.canonical.z,this.canonical.x,this.canonical.y):Fx(this.wrap*+h,a,a,this.canonical.x>>A,this.canonical.y>>A)}isChildOf(a){if(a.wrap!==this.wrap)return!1;let h=this.canonical.z-a.canonical.z;return a.overscaledZ===0||a.overscaledZ>h&&a.canonical.y===this.canonical.y>>h}children(a){if(this.overscaledZ>=a)return[new Fc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let h=this.canonical.z+1,A=2*this.canonical.x,x=2*this.canonical.y;return[new Fc(h,this.wrap,h,A,x),new Fc(h,this.wrap,h,A+1,x),new Fc(h,this.wrap,h,A,x+1),new Fc(h,this.wrap,h,A+1,x+1)]}isLessThan(a){return this.wrapa.wrap)&&(this.overscaledZa.overscaledZ)&&(this.canonical.xa.canonical.x)&&this.canonical.ythis.max&&(this.max=Q),Q=this.dim+1||h<-1||h>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return(h+1)*this.stride+(a+1)}unpack(a,h,A){return a*this.redFactor+h*this.greenFactor+A*this.blueFactor-this.baseShift}getPixels(){return new fi({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(a,h,A){if(this.dim!==a.dim)throw new Error(\"dem dimension mismatch\");let x=h*this.dim,E=h*this.dim+this.dim,P=A*this.dim,D=A*this.dim+this.dim;switch(h){case-1:x=E-1;break;case 1:E=x+1}switch(A){case-1:P=D-1;break;case 1:D=P+1}let B=-h*this.dim,V=-A*this.dim;for(let q=P;q=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${a} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[a]}}class dF{constructor(a,h,A,x,E){this.type=\"Feature\",this._vectorTileFeature=a,a._z=h,a._x=A,a._y=x,this.properties=a.properties,this.id=E}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(a){this._geometry=a}toJSON(){let a={geometry:this.geometry};for(let h in this)h!==\"_geometry\"&&h!==\"_vectorTileFeature\"&&(a[h]=this[h]);return a}}class pF{constructor(a,h){this.tileID=a,this.x=a.canonical.x,this.y=a.canonical.y,this.z=a.canonical.z,this.grid=new _u(Bn,16,0),this.grid3D=new _u(Bn,16,0),this.featureIndexArray=new X,this.promoteId=h}insert(a,h,A,x,E,P){let D=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(A,x,E);let B=P?this.grid3D:this.grid;for(let V=0;V=0&&Q[3]>=0&&B.insert(D,Q[0],Q[1],Q[2],Q[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new cA.VectorTile(new eC(this.rawTileData)).layers,this.sourceLayerCoder=new fF(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(a,h,A,x){this.loadVTLayers();let E=a.params||{},P=Bn/a.tileSize/a.scale,D=Pd(E.filter),B=a.queryGeometry,V=a.queryPadding*P,q=mF(B),Q=this.grid.query(q.minX-V,q.minY-V,q.maxX+V,q.maxY+V),rt=mF(a.cameraQueryGeometry),ot=this.grid3D.query(rt.minX-V,rt.minY-V,rt.maxX+V,rt.maxY+V,(xt,Mt,Vt,It)=>function(zt,ie,ue,Be,Ke){for(let Ie of zt)if(ie<=Ie.x&&ue<=Ie.y&&Be>=Ie.x&&Ke>=Ie.y)return!0;let Re=[new _(ie,ue),new _(ie,Ke),new _(Be,Ke),new _(Be,ue)];if(zt.length>2){for(let Ie of Re)if(L(zt,Ie))return!0}for(let Ie=0;Ie(It||(It=De(zt)),ie.queryIntersectsFeature(B,zt,ue,It,this.z,a.transform,P,a.pixelPosMatrix)))}return lt}loadMatchingFeature(a,h,A,x,E,P,D,B,V,q,Q){let rt=this.bucketLayerIDs[h];if(P&&!function(xt,Mt){for(let Vt=0;Vt=0)return!0;return!1}(P,rt))return;let ot=this.sourceLayerCoder.decode(A),lt=this.vtLayers[ot].feature(x);if(E.needGeometry){let xt=wu(lt,!0);if(!E.filter(new ki(this.tileID.overscaledZ),xt,this.tileID.canonical))return}else if(!E.filter(new ki(this.tileID.overscaledZ),lt))return;let pt=this.getId(lt,ot);for(let xt=0;xt{let D=a instanceof kd?a.get(P):null;return D&&D.evaluate?D.evaluate(h,A,x):D})}function mF(u){let a=1/0,h=1/0,A=-1/0,x=-1/0;for(let E of u)a=Math.min(a,E.x),h=Math.min(h,E.y),A=Math.max(A,E.x),x=Math.max(x,E.y);return{minX:a,minY:h,maxX:A,maxY:x}}function rK(u,a){return a-u}function gF(u,a,h,A,x){let E=[];for(let P=0;P=A&&Q.x>=A||(q.x>=A?q=new _(A,q.y+(A-q.x)/(Q.x-q.x)*(Q.y-q.y))._round():Q.x>=A&&(Q=new _(A,q.y+(A-q.x)/(Q.x-q.x)*(Q.y-q.y))._round()),q.y>=x&&Q.y>=x||(q.y>=x?q=new _(q.x+(x-q.y)/(Q.y-q.y)*(Q.x-q.x),x)._round():Q.y>=x&&(Q=new _(q.x+(x-q.y)/(Q.y-q.y)*(Q.x-q.x),x)._round()),B&&q.equals(B[B.length-1])||(B=[q],E.push(B)),B.push(Q)))))}}return E}Fe(\"FeatureIndex\",pF,{omit:[\"rawTileData\",\"sourceLayerCoder\"]});class dA extends _{constructor(a,h,A,x){super(a,h),this.angle=A,x!==void 0&&(this.segment=x)}clone(){return new dA(this.x,this.y,this.angle,this.segment)}}function _F(u,a,h,A,x){if(a.segment===void 0||h===0)return!0;let E=a,P=a.segment+1,D=0;for(;D>-h/2;){if(P--,P<0)return!1;D-=u[P].dist(E),E=u[P]}D+=u[P].dist(u[P+1]),P++;let B=[],V=0;for(;DA;)V-=B.shift().angleDelta;if(V>x)return!1;P++,D+=q.dist(Q)}return!0}function yF(u){let a=0;for(let h=0;hV){let lt=(V-B)/ot,pt=Zo.number(Q.x,rt.x,lt),xt=Zo.number(Q.y,rt.y,lt),Mt=new dA(pt,xt,rt.angleTo(Q),q);return Mt._round(),!P||_F(u,Mt,D,P,a)?Mt:void 0}B+=ot}}function nK(u,a,h,A,x,E,P,D,B){let V=vF(A,E,P),q=xF(A,x),Q=q*P,rt=u[0].x===0||u[0].x===B||u[0].y===0||u[0].y===B;return a-Q
=0&&zt=0&&ie=0&&rt+V<=q){let ue=new dA(zt,ie,Vt,lt);ue._round(),A&&!_F(u,ue,E,A,x)||ot.push(ue)}}Q+=Mt}return D||ot.length||P||(ot=bF(u,Q/2,h,A,x,E,P,!0,B)),ot}Fe(\"Anchor\",dA);let m_=dl;function wF(u,a,h,A){let x=[],E=u.image,P=E.pixelRatio,D=E.paddedRect.w-2*m_,B=E.paddedRect.h-2*m_,V=u.right-u.left,q=u.bottom-u.top,Q=E.stretchX||[[0,D]],rt=E.stretchY||[[0,B]],ot=(we,We)=>we+We[1]-We[0],lt=Q.reduce(ot,0),pt=rt.reduce(ot,0),xt=D-lt,Mt=B-pt,Vt=0,It=lt,zt=0,ie=pt,ue=0,Be=xt,Ke=0,Re=Mt;if(E.content&&A){let we=E.content;Vt=HS(Q,0,we[0]),zt=HS(rt,0,we[1]),It=HS(Q,we[0],we[2]),ie=HS(rt,we[1],we[3]),ue=we[0]-Vt,Ke=we[1]-zt,Be=we[2]-we[0]-It,Re=we[3]-we[1]-ie}let Ie=(we,We,Ee,pe)=>{let cr=qS(we.stretch-Vt,It,V,u.left),tr=ZS(we.fixed-ue,Be,we.stretch,lt),ei=qS(We.stretch-zt,ie,q,u.top),pn=ZS(We.fixed-Ke,Re,We.stretch,pt),Pn=qS(Ee.stretch-Vt,It,V,u.left),Ws=ZS(Ee.fixed-ue,Be,Ee.stretch,lt),Vl=qS(pe.stretch-zt,ie,q,u.top),Va=ZS(pe.fixed-Ke,Re,pe.stretch,pt),Ls=new _(cr,ei),To=new _(Pn,ei),Qo=new _(Pn,Vl),ja=new _(cr,Vl),Ga=new _(tr/P,pn/P),Hs=new _(Ws/P,Va/P),qs=a*Math.PI/180;if(qs){let pa=Math.sin(qs),pl=Math.cos(qs),Al=[pl,-pa,pa,pl];Ls._matMult(Al),To._matMult(Al),ja._matMult(Al),Qo._matMult(Al)}let da=we.stretch+we.fixed,Wa=We.stretch+We.fixed;return{tl:Ls,tr:To,bl:ja,br:Qo,tex:{x:E.paddedRect.x+m_+da,y:E.paddedRect.y+m_+Wa,w:Ee.stretch+Ee.fixed-da,h:pe.stretch+pe.fixed-Wa},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Ga,pixelOffsetBR:Hs,minFontScaleX:Be/P/V,minFontScaleY:Re/P/q,isSDF:h}};if(A&&(E.stretchX||E.stretchY)){let we=SF(Q,xt,lt),We=SF(rt,Mt,pt);for(let Ee=0;Ee0&&(lt=Math.max(10,lt),this.circleDiameter=lt)}else{let Q=P.top*D-B[0],rt=P.bottom*D+B[2],ot=P.left*D-B[3],lt=P.right*D+B[1],pt=P.collisionPadding;if(pt&&(ot-=pt[0]*D,Q-=pt[1]*D,lt+=pt[2]*D,rt+=pt[3]*D),q){let xt=new _(ot,Q),Mt=new _(lt,Q),Vt=new _(ot,rt),It=new _(lt,rt),zt=q*Math.PI/180;xt._rotate(zt),Mt._rotate(zt),Vt._rotate(zt),It._rotate(zt),ot=Math.min(xt.x,Mt.x,Vt.x,It.x),lt=Math.max(xt.x,Mt.x,Vt.x,It.x),Q=Math.min(xt.y,Mt.y,Vt.y,It.y),rt=Math.max(xt.y,Mt.y,Vt.y,It.y)}a.emplaceBack(h.x,h.y,ot,Q,lt,rt,A,x,E)}this.boxEndIndex=a.length}}class sK{constructor(a=[],h=oK){if(this.data=a,this.length=this.data.length,this.compare=h,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(a){this.data.push(a),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let a=this.data[0],h=this.data.pop();return this.length--,this.length>0&&(this.data[0]=h,this._down(0)),a}peek(){return this.data[0]}_up(a){let{data:h,compare:A}=this,x=h[a];for(;a>0;){let E=a-1>>1,P=h[E];if(A(x,P)>=0)break;h[a]=P,a=E}h[a]=x}_down(a){let{data:h,compare:A}=this,x=this.length>>1,E=h[a];for(;a=0)break;h[a]=D,a=P}h[a]=E}}function oK(u,a){return ua?1:0}function aK(u,a=1,h=!1){let A=1/0,x=1/0,E=-1/0,P=-1/0,D=u[0];for(let ot=0;otE)&&(E=lt.x),(!ot||lt.y>P)&&(P=lt.y)}let B=Math.min(E-A,P-x),V=B/2,q=new sK([],lK);if(B===0)return new _(A,x);for(let ot=A;otQ.d||!Q.d)&&(Q=ot,h&&console.log(\"found best %d after %d probes\",Math.round(1e4*ot.d)/1e4,rt)),ot.max-Q.d<=a||(V=ot.h/2,q.push(new g_(ot.p.x-V,ot.p.y-V,V,u)),q.push(new g_(ot.p.x+V,ot.p.y-V,V,u)),q.push(new g_(ot.p.x-V,ot.p.y+V,V,u)),q.push(new g_(ot.p.x+V,ot.p.y+V,V,u)),rt+=4)}return h&&(console.log(`num probes: ${rt}`),console.log(`best distance: ${Q.d}`)),Q.p}function lK(u,a){return a.max-u.max}function g_(u,a,h,A){this.p=new _(u,a),this.h=h,this.d=function(x,E){let P=!1,D=1/0;for(let B=0;Bx.y!=lt.y>x.y&&x.x<(lt.x-ot.x)*(x.y-ot.y)/(lt.y-ot.y)+ot.x&&(P=!P),D=Math.min(D,C(x,ot,lt))}}return(P?1:-1)*Math.sqrt(D)}(this.p,A),this.max=this.d+this.h*Math.SQRT2}var $o;n.ap=void 0,($o=n.ap||(n.ap={}))[$o.center=1]=\"center\",$o[$o.left=2]=\"left\",$o[$o.right=3]=\"right\",$o[$o.top=4]=\"top\",$o[$o.bottom=5]=\"bottom\",$o[$o[\"top-left\"]=6]=\"top-left\",$o[$o[\"top-right\"]=7]=\"top-right\",$o[$o[\"bottom-left\"]=8]=\"bottom-left\",$o[$o[\"bottom-right\"]=9]=\"bottom-right\";let pA=7,pC=Number.POSITIVE_INFINITY;function TF(u,a){return a[1]!==pC?function(h,A,x){let E=0,P=0;switch(A=Math.abs(A),x=Math.abs(x),h){case\"top-right\":case\"top-left\":case\"top\":P=x-pA;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":P=-x+pA}switch(h){case\"top-right\":case\"bottom-right\":case\"right\":E=-A;break;case\"top-left\":case\"bottom-left\":case\"left\":E=A}return[E,P]}(u,a[0],a[1]):function(h,A){let x=0,E=0;A<0&&(A=0);let P=A/Math.SQRT2;switch(h){case\"top-right\":case\"top-left\":E=P-pA;break;case\"bottom-right\":case\"bottom-left\":E=-P+pA;break;case\"bottom\":E=-A+pA;break;case\"top\":E=A-pA}switch(h){case\"top-right\":case\"bottom-right\":x=-P;break;case\"top-left\":case\"bottom-left\":x=P;break;case\"left\":x=A;break;case\"right\":x=-A}return[x,E]}(u,a[0])}function MF(u,a,h){var A;let x=u.layout,E=(A=x.get(\"text-variable-anchor-offset\"))===null||A===void 0?void 0:A.evaluate(a,{},h);if(E){let D=E.values,B=[];for(let V=0;Vrt*Gs);q.startsWith(\"top\")?Q[1]-=pA:q.startsWith(\"bottom\")&&(Q[1]+=pA),B[V+1]=Q}return new kn(B)}let P=x.get(\"text-variable-anchor\");if(P){let D;D=u._unevaluatedLayout.getValue(\"text-radial-offset\")!==void 0?[x.get(\"text-radial-offset\").evaluate(a,{},h)*Gs,pC]:x.get(\"text-offset\").evaluate(a,{},h).map(V=>V*Gs);let B=[];for(let V of P)B.push(V,TF(V,D));return new kn(B)}return null}function AC(u){switch(u){case\"right\":case\"top-right\":case\"bottom-right\":return\"right\";case\"left\":case\"top-left\":case\"bottom-left\":return\"left\"}return\"center\"}function cK(u,a,h,A,x,E,P,D,B,V,q){let Q=E.textMaxSize.evaluate(a,{});Q===void 0&&(Q=P);let rt=u.layers[0].layout,ot=rt.get(\"icon-offset\").evaluate(a,{},q),lt=PF(h.horizontal),pt=P/24,xt=u.tilePixelRatio*pt,Mt=u.tilePixelRatio*Q/24,Vt=u.tilePixelRatio*D,It=u.tilePixelRatio*rt.get(\"symbol-spacing\"),zt=rt.get(\"text-padding\")*u.tilePixelRatio,ie=function(pe,cr,tr,ei=1){let pn=pe.get(\"icon-padding\").evaluate(cr,{},tr),Pn=pn&&pn.values;return[Pn[0]*ei,Pn[1]*ei,Pn[2]*ei,Pn[3]*ei]}(rt,a,q,u.tilePixelRatio),ue=rt.get(\"text-max-angle\")/180*Math.PI,Be=rt.get(\"text-rotation-alignment\")!==\"viewport\"&&rt.get(\"symbol-placement\")!==\"point\",Ke=rt.get(\"icon-rotation-alignment\")===\"map\"&&rt.get(\"symbol-placement\")!==\"point\",Re=rt.get(\"symbol-placement\"),Ie=It/2,we=rt.get(\"icon-text-fit\"),We;A&&we!==\"none\"&&(u.allowVerticalPlacement&&h.vertical&&(We=X6(A,h.vertical,we,rt.get(\"icon-text-fit-padding\"),ot,pt)),lt&&(A=X6(A,lt,we,rt.get(\"icon-text-fit-padding\"),ot,pt)));let Ee=(pe,cr)=>{cr.x<0||cr.x>=Bn||cr.y<0||cr.y>=Bn||function(tr,ei,pn,Pn,Ws,Vl,Va,Ls,To,Qo,ja,Ga,Hs,qs,da,Wa,pa,pl,Al,Zs,li,Aa,Xo,Ys,Su){let Ah=tr.addToLineVertexArray(ei,pn),mh,Fd,Tu,zc,ml=0,zd=0,Ux=0,kF=0,wC=-1,SC=-1,Nd={},RF=Dr(\"\");if(tr.allowVerticalPlacement&&Pn.vertical){let ma=Ls.layout.get(\"text-rotate\").evaluate(li,{},Ys)+90;Tu=new YS(To,ei,Qo,ja,Ga,Pn.vertical,Hs,qs,da,ma),Va&&(zc=new YS(To,ei,Qo,ja,Ga,Va,pa,pl,da,ma))}if(Ws){let ma=Ls.layout.get(\"icon-rotate\").evaluate(li,{}),Nc=Ls.layout.get(\"icon-text-fit\")!==\"none\",c0=wF(Ws,ma,Xo,Nc),_h=Va?wF(Va,ma,Xo,Nc):void 0;Fd=new YS(To,ei,Qo,ja,Ga,Ws,pa,pl,!1,ma),ml=4*c0.length;let u0=tr.iconSizeData,Df=null;u0.kind===\"source\"?(Df=[Rf*Ls.layout.get(\"icon-size\").evaluate(li,{})],Df[0]>hA&&Le(`${tr.layerIds[0]}: Value for \"icon-size\" is >= ${Bx}. Reduce your \"icon-size\".`)):u0.kind===\"composite\"&&(Df=[Rf*Aa.compositeIconSizes[0].evaluate(li,{},Ys),Rf*Aa.compositeIconSizes[1].evaluate(li,{},Ys)],(Df[0]>hA||Df[1]>hA)&&Le(`${tr.layerIds[0]}: Value for \"icon-size\" is >= ${Bx}. Reduce your \"icon-size\".`)),tr.addSymbols(tr.icon,c0,Df,Zs,Al,li,n.ah.none,ei,Ah.lineStartIndex,Ah.lineLength,-1,Ys),wC=tr.icon.placedSymbolArray.length-1,_h&&(zd=4*_h.length,tr.addSymbols(tr.icon,_h,Df,Zs,Al,li,n.ah.vertical,ei,Ah.lineStartIndex,Ah.lineLength,-1,Ys),SC=tr.icon.placedSymbolArray.length-1)}let DF=Object.keys(Pn.horizontal);for(let ma of DF){let Nc=Pn.horizontal[ma];if(!mh){RF=Dr(Nc.text);let _h=Ls.layout.get(\"text-rotate\").evaluate(li,{},Ys);mh=new YS(To,ei,Qo,ja,Ga,Nc,Hs,qs,da,_h)}let c0=Nc.positionedLines.length===1;if(Ux+=EF(tr,ei,Nc,Vl,Ls,da,li,Wa,Ah,Pn.vertical?n.ah.horizontal:n.ah.horizontalOnly,c0?DF:[ma],Nd,wC,Aa,Ys),c0)break}Pn.vertical&&(kF+=EF(tr,ei,Pn.vertical,Vl,Ls,da,li,Wa,Ah,n.ah.vertical,[\"vertical\"],Nd,SC,Aa,Ys));let fK=mh?mh.boxStartIndex:tr.collisionBoxArray.length,dK=mh?mh.boxEndIndex:tr.collisionBoxArray.length,pK=Tu?Tu.boxStartIndex:tr.collisionBoxArray.length,AK=Tu?Tu.boxEndIndex:tr.collisionBoxArray.length,mK=Fd?Fd.boxStartIndex:tr.collisionBoxArray.length,gK=Fd?Fd.boxEndIndex:tr.collisionBoxArray.length,_K=zc?zc.boxStartIndex:tr.collisionBoxArray.length,yK=zc?zc.boxEndIndex:tr.collisionBoxArray.length,gh=-1,QS=(ma,Nc)=>ma&&ma.circleDiameter?Math.max(ma.circleDiameter,Nc):Nc;gh=QS(mh,gh),gh=QS(Tu,gh),gh=QS(Fd,gh),gh=QS(zc,gh);let OF=gh>-1?1:0;OF&&(gh*=Su/Gs),tr.glyphOffsetArray.length>=A_.MAX_GLYPHS&&Le(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),li.sortKey!==void 0&&tr.addToSortKeyRanges(tr.symbolInstances.length,li.sortKey);let vK=MF(Ls,li,Ys),[xK,bK]=function(ma,Nc){let c0=ma.length,_h=Nc?.values;if(_h?.length>0)for(let u0=0;u0<_h.length;u0+=2){let Df=_h[u0+1];ma.emplaceBack(n.ap[_h[u0]],Df[0],Df[1])}return[c0,ma.length]}(tr.textAnchorOffsets,vK);tr.symbolInstances.emplaceBack(ei.x,ei.y,Nd.right>=0?Nd.right:-1,Nd.center>=0?Nd.center:-1,Nd.left>=0?Nd.left:-1,Nd.vertical||-1,wC,SC,RF,fK,dK,pK,AK,mK,gK,_K,yK,Qo,Ux,kF,ml,zd,OF,0,Hs,gh,xK,bK)}(u,cr,pe,h,A,x,We,u.layers[0],u.collisionBoxArray,a.index,a.sourceLayerIndex,u.index,xt,[zt,zt,zt,zt],Be,B,Vt,ie,Ke,ot,a,E,V,q,P)};if(Re===\"line\")for(let pe of gF(a.geometry,0,0,Bn,Bn)){let cr=nK(pe,It,ue,h.vertical||lt,A,24,Mt,u.overscaling,Bn);for(let tr of cr)lt&&uK(u,lt.text,Ie,tr)||Ee(pe,tr)}else if(Re===\"line-center\"){for(let pe of a.geometry)if(pe.length>1){let cr=iK(pe,ue,h.vertical||lt,A,24,Mt);cr&&Ee(pe,cr)}}else if(a.type===\"Polygon\")for(let pe of ZI(a.geometry,0)){let cr=aK(pe,16);Ee(pe[0],new dA(cr.x,cr.y,0))}else if(a.type===\"LineString\")for(let pe of a.geometry)Ee(pe,new dA(pe[0].x,pe[0].y,0));else if(a.type===\"Point\")for(let pe of a.geometry)for(let cr of pe)Ee([cr],new dA(cr.x,cr.y,0))}function EF(u,a,h,A,x,E,P,D,B,V,q,Q,rt,ot,lt){let pt=function(Vt,It,zt,ie,ue,Be,Ke,Re){let Ie=ie.layout.get(\"text-rotate\").evaluate(Be,{})*Math.PI/180,we=[];for(let We of It.positionedLines)for(let Ee of We.positionedGlyphs){if(!Ee.rect)continue;let pe=Ee.rect||{},cr=W6+1,tr=!0,ei=1,pn=0,Pn=(ue||Re)&&Ee.vertical,Ws=Ee.metrics.advance*Ee.scale/2;if(Re&&It.verticalizable&&(pn=We.lineOffset/2-(Ee.imageName?-(Gs-Ee.metrics.width*Ee.scale)/2:(Ee.scale-1)*Gs)),Ee.imageName){let Zs=Ke[Ee.imageName];tr=Zs.sdf,ei=Zs.pixelRatio,cr=dl/ei}let Vl=ue?[Ee.x+Ws,Ee.y]:[0,0],Va=ue?[0,0]:[Ee.x+Ws+zt[0],Ee.y+zt[1]-pn],Ls=[0,0];Pn&&(Ls=Va,Va=[0,0]);let To=Ee.metrics.isDoubleResolution?2:1,Qo=(Ee.metrics.left-cr)*Ee.scale-Ws+Va[0],ja=(-Ee.metrics.top-cr)*Ee.scale+Va[1],Ga=Qo+pe.w/To*Ee.scale/ei,Hs=ja+pe.h/To*Ee.scale/ei,qs=new _(Qo,ja),da=new _(Ga,ja),Wa=new _(Qo,Hs),pa=new _(Ga,Hs);if(Pn){let Zs=new _(-Ws,Ws-Dx),li=-Math.PI/2,Aa=Gs/2-Ws,Xo=new _(5-Dx-Aa,-(Ee.imageName?Aa:0)),Ys=new _(...Ls);qs._rotateAround(li,Zs)._add(Xo)._add(Ys),da._rotateAround(li,Zs)._add(Xo)._add(Ys),Wa._rotateAround(li,Zs)._add(Xo)._add(Ys),pa._rotateAround(li,Zs)._add(Xo)._add(Ys)}if(Ie){let Zs=Math.sin(Ie),li=Math.cos(Ie),Aa=[li,-Zs,Zs,li];qs._matMult(Aa),da._matMult(Aa),Wa._matMult(Aa),pa._matMult(Aa)}let pl=new _(0,0),Al=new _(0,0);we.push({tl:qs,tr:da,bl:Wa,br:pa,tex:pe,writingMode:It.writingMode,glyphOffset:Vl,sectionIndex:Ee.sectionIndex,isSDF:tr,pixelOffsetTL:pl,pixelOffsetBR:Al,minFontScaleX:0,minFontScaleY:0})}return we}(0,h,D,x,E,P,A,u.allowVerticalPlacement),xt=u.textSizeData,Mt=null;xt.kind===\"source\"?(Mt=[Rf*x.layout.get(\"text-size\").evaluate(P,{})],Mt[0]>hA&&Le(`${u.layerIds[0]}: Value for \"text-size\" is >= ${Bx}. Reduce your \"text-size\".`)):xt.kind===\"composite\"&&(Mt=[Rf*ot.compositeTextSizes[0].evaluate(P,{},lt),Rf*ot.compositeTextSizes[1].evaluate(P,{},lt)],(Mt[0]>hA||Mt[1]>hA)&&Le(`${u.layerIds[0]}: Value for \"text-size\" is >= ${Bx}. Reduce your \"text-size\".`)),u.addSymbols(u.text,pt,Mt,D,E,P,V,a,B.lineStartIndex,B.lineLength,rt,lt);for(let Vt of q)Q[Vt]=u.text.placedSymbolArray.length-1;return 4*pt.length}function PF(u){for(let a in u)return u[a];return null}function uK(u,a,h,A){let x=u.compareText;if(a in x){let E=x[a];for(let P=E.length-1;P>=0;P--)if(A.dist(E[P])>4;if(x!==1)throw new Error(`Got v${x} data when expected v1.`);let E=IF[15&A];if(!E)throw new Error(\"Unrecognized array type.\");let[P]=new Uint16Array(a,2,1),[D]=new Uint32Array(a,4,1);return new mC(D,P,E,a)}constructor(a,h=64,A=Float64Array,x){if(isNaN(a)||a<0)throw new Error(`Unpexpected numItems value: ${a}.`);this.numItems=+a,this.nodeSize=Math.min(Math.max(+h,2),65535),this.ArrayType=A,this.IndexArrayType=a<65536?Uint16Array:Uint32Array;let E=IF.indexOf(this.ArrayType),P=2*a*this.ArrayType.BYTES_PER_ELEMENT,D=a*this.IndexArrayType.BYTES_PER_ELEMENT,B=(8-D%8)%8;if(E<0)throw new Error(`Unexpected typed array class: ${A}.`);x&&x instanceof ArrayBuffer?(this.data=x,this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+B,2*a),this._pos=2*a,this._finished=!0):(this.data=new ArrayBuffer(8+P+D+B),this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+B,2*a),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+E]),new Uint16Array(this.data,2,1)[0]=h,new Uint32Array(this.data,4,1)[0]=a)}add(a,h){let A=this._pos>>1;return this.ids[A]=A,this.coords[this._pos++]=a,this.coords[this._pos++]=h,A}finish(){let a=this._pos>>1;if(a!==this.numItems)throw new Error(`Added ${a} items when expected ${this.numItems}.`);return gC(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(a,h,A,x){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:E,coords:P,nodeSize:D}=this,B=[0,E.length-1,0],V=[];for(;B.length;){let q=B.pop()||0,Q=B.pop()||0,rt=B.pop()||0;if(Q-rt<=D){for(let xt=rt;xt<=Q;xt++){let Mt=P[2*xt],Vt=P[2*xt+1];Mt>=a&&Mt<=A&&Vt>=h&&Vt<=x&&V.push(E[xt])}continue}let ot=rt+Q>>1,lt=P[2*ot],pt=P[2*ot+1];lt>=a&<<=A&&pt>=h&&pt<=x&&V.push(E[ot]),(q===0?a<=lt:h<=pt)&&(B.push(rt),B.push(ot-1),B.push(1-q)),(q===0?A>=lt:x>=pt)&&(B.push(ot+1),B.push(Q),B.push(1-q))}return V}within(a,h,A){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:x,coords:E,nodeSize:P}=this,D=[0,x.length-1,0],B=[],V=A*A;for(;D.length;){let q=D.pop()||0,Q=D.pop()||0,rt=D.pop()||0;if(Q-rt<=P){for(let xt=rt;xt<=Q;xt++)LF(E[2*xt],E[2*xt+1],a,h)<=V&&B.push(x[xt]);continue}let ot=rt+Q>>1,lt=E[2*ot],pt=E[2*ot+1];LF(lt,pt,a,h)<=V&&B.push(x[ot]),(q===0?a-A<=lt:h-A<=pt)&&(D.push(rt),D.push(ot-1),D.push(1-q)),(q===0?a+A>=lt:h+A>=pt)&&(D.push(ot+1),D.push(Q),D.push(1-q))}return B}}function gC(u,a,h,A,x,E){if(x-A<=h)return;let P=A+x>>1;CF(u,a,P,A,x,E),gC(u,a,h,A,P-1,1-E),gC(u,a,h,P+1,x,1-E)}function CF(u,a,h,A,x,E){for(;x>A;){if(x-A>600){let V=x-A+1,q=h-A+1,Q=Math.log(V),rt=.5*Math.exp(2*Q/3),ot=.5*Math.sqrt(Q*rt*(V-rt)/V)*(q-V/2<0?-1:1);CF(u,a,h,Math.max(A,Math.floor(h-q*rt/V+ot)),Math.min(x,Math.floor(h+(V-q)*rt/V+ot)),E)}let P=a[2*h+E],D=A,B=x;for(zx(u,a,A,h),a[2*x+E]>P&&zx(u,a,A,x);DP;)B--}a[2*A+E]===P?zx(u,a,A,B):(B++,zx(u,a,B,x)),B<=h&&(A=B+1),h<=B&&(x=B-1)}}function zx(u,a,h,A){_C(u,h,A),_C(a,2*h,2*A),_C(a,2*h+1,2*A+1)}function _C(u,a,h){let A=u[a];u[a]=u[h],u[h]=A}function LF(u,a,h,A){let x=u-h,E=a-A;return x*x+E*E}var yC;n.bc=void 0,(yC=n.bc||(n.bc={})).create=\"create\",yC.load=\"load\",yC.fullLoad=\"fullLoad\";let $S=null,Nx=[],vC=1e3/60,xC=\"loadTime\",bC=\"fullLoadTime\",hK={mark(u){performance.mark(u)},frame(u){let a=u;$S!=null&&Nx.push(a-$S),$S=a},clearMetrics(){$S=null,Nx=[],performance.clearMeasures(xC),performance.clearMeasures(bC);for(let u in n.bc)performance.clearMarks(n.bc[u])},getPerformanceMetrics(){performance.measure(xC,n.bc.create,n.bc.load),performance.measure(bC,n.bc.create,n.bc.fullLoad);let u=performance.getEntriesByName(xC)[0].duration,a=performance.getEntriesByName(bC)[0].duration,h=Nx.length,A=1/(Nx.reduce((E,P)=>E+P,0)/h/1e3),x=Nx.filter(E=>E>vC).reduce((E,P)=>E+(P-vC)/vC,0);return{loadTime:u,fullLoadTime:a,fps:A,percentDroppedFrames:x/(h+x)*100,totalFrames:h}}};n.$=ur,n.A=se,n.B=function(u){if(un==null){let a=u.navigator?u.navigator.userAgent:null;un=!!u.safari||!(!a||!(/\\b(iPad|iPhone|iPod)\\b/.test(a)||a.match(\"Safari\")&&!a.match(\"Chrome\")))}return un},n.C=class{constructor(u,a){this.target=u,this.mapId=a,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new eK(()=>this.process()),this.subscription=function(h,A,x,E){return h.addEventListener(A,x,!1),{unsubscribe:()=>{h.removeEventListener(A,x,!1)}}}(this.target,\"message\",h=>this.receive(h)),this.globalScope=Cr(self)?u:window}registerMessageHandler(u,a){this.messageHandlers[u]=a}sendAsync(u,a){return new Promise((h,A)=>{let x=Math.round(1e18*Math.random()).toString(36).substring(0,10);this.resolveRejects[x]={resolve:h,reject:A},a&&a.signal.addEventListener(\"abort\",()=>{delete this.resolveRejects[x];let D={id:x,type:\"\",origin:location.origin,targetMapId:u.targetMapId,sourceMapId:this.mapId};this.target.postMessage(D)},{once:!0});let E=[],P=Object.assign(Object.assign({},u),{id:x,sourceMapId:this.mapId,origin:location.origin,data:Tf(u.data,E)});this.target.postMessage(P,{transfer:E})})}receive(u){let a=u.data,h=a.id;if(a.origin===location.origin&&(!a.targetMapId||this.mapId===a.targetMapId)){if(a.type===\"\"){delete this.tasks[h];let A=this.abortControllers[h];return delete this.abortControllers[h],void(A&&A.abort())}if(Cr(self)||a.mustQueue)return this.tasks[h]=a,this.taskQueue.push(h),void this.invoker.trigger();this.processTask(h,a)}}process(){if(this.taskQueue.length===0)return;let u=this.taskQueue.shift(),a=this.tasks[u];delete this.tasks[u],this.taskQueue.length>0&&this.invoker.trigger(),a&&this.processTask(u,a)}processTask(u,a){return s(this,void 0,void 0,function*(){if(a.type===\"\"){let x=this.resolveRejects[u];return delete this.resolveRejects[u],x?void(a.error?x.reject(Mf(a.error)):x.resolve(Mf(a.data))):void 0}if(!this.messageHandlers[a.type])return void this.completeTask(u,new Error(`Could not find a registered handler for ${a.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(\", \")}`));let h=Mf(a.data),A=new AbortController;this.abortControllers[u]=A;try{let x=yield this.messageHandlers[a.type](a.sourceMapId,h,A);this.completeTask(u,null,x)}catch(x){this.completeTask(u,x)}})}completeTask(u,a,h){let A=[];delete this.abortControllers[u];let x={id:u,type:\"\",sourceMapId:this.mapId,origin:location.origin,error:a?Tf(a):null,data:Tf(h,A)};this.target.postMessage(x,{transfer:A})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},n.D=Qe,n.E=aa,n.F=function(){var u=new se(16);return se!=Float32Array&&(u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=0,u[12]=0,u[13]=0,u[14]=0),u[0]=1,u[5]=1,u[10]=1,u[15]=1,u},n.G=Uo,n.H=function(u,a,h){var A,x,E,P,D,B,V,q,Q,rt,ot,lt,pt=h[0],xt=h[1],Mt=h[2];return a===u?(u[12]=a[0]*pt+a[4]*xt+a[8]*Mt+a[12],u[13]=a[1]*pt+a[5]*xt+a[9]*Mt+a[13],u[14]=a[2]*pt+a[6]*xt+a[10]*Mt+a[14],u[15]=a[3]*pt+a[7]*xt+a[11]*Mt+a[15]):(x=a[1],E=a[2],P=a[3],D=a[4],B=a[5],V=a[6],q=a[7],Q=a[8],rt=a[9],ot=a[10],lt=a[11],u[0]=A=a[0],u[1]=x,u[2]=E,u[3]=P,u[4]=D,u[5]=B,u[6]=V,u[7]=q,u[8]=Q,u[9]=rt,u[10]=ot,u[11]=lt,u[12]=A*pt+D*xt+Q*Mt+a[12],u[13]=x*pt+B*xt+rt*Mt+a[13],u[14]=E*pt+V*xt+ot*Mt+a[14],u[15]=P*pt+q*xt+lt*Mt+a[15]),u},n.I=iC,n.J=function(u,a,h){var A=h[0],x=h[1],E=h[2];return u[0]=a[0]*A,u[1]=a[1]*A,u[2]=a[2]*A,u[3]=a[3]*A,u[4]=a[4]*x,u[5]=a[5]*x,u[6]=a[6]*x,u[7]=a[7]*x,u[8]=a[8]*E,u[9]=a[9]*E,u[10]=a[10]*E,u[11]=a[11]*E,u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.K=Ge,n.L=function(u,a){let h={};for(let A=0;A{let a=window.document.createElement(\"video\");return a.muted=!0,new Promise(h=>{a.onloadstart=()=>{h(a)};for(let A of u){let x=window.document.createElement(\"source\");ls(A)||(a.crossOrigin=\"Anonymous\"),x.src=A,a.appendChild(x)}})},n.a3=function(){return Ot++},n.a4=l,n.a5=A_,n.a6=Pd,n.a7=wu,n.a8=ki,n.a9=dF,n.aA=oe,n.aB=function(u,a){if(!u)return[{command:\"setStyle\",args:[a]}];let h=[];try{if(!ti(u.version,a.version))return[{command:\"setStyle\",args:[a]}];ti(u.center,a.center)||h.push({command:\"setCenter\",args:[a.center]}),ti(u.zoom,a.zoom)||h.push({command:\"setZoom\",args:[a.zoom]}),ti(u.bearing,a.bearing)||h.push({command:\"setBearing\",args:[a.bearing]}),ti(u.pitch,a.pitch)||h.push({command:\"setPitch\",args:[a.pitch]}),ti(u.sprite,a.sprite)||h.push({command:\"setSprite\",args:[a.sprite]}),ti(u.glyphs,a.glyphs)||h.push({command:\"setGlyphs\",args:[a.glyphs]}),ti(u.transition,a.transition)||h.push({command:\"setTransition\",args:[a.transition]}),ti(u.light,a.light)||h.push({command:\"setLight\",args:[a.light]}),ti(u.terrain,a.terrain)||h.push({command:\"setTerrain\",args:[a.terrain]});let A={},x=[];(function(P,D,B,V){let q;for(q in D=D||{},P=P||{})Object.prototype.hasOwnProperty.call(P,q)&&(Object.prototype.hasOwnProperty.call(D,q)||Wo(q,B,V));for(q in D)Object.prototype.hasOwnProperty.call(D,q)&&(Object.prototype.hasOwnProperty.call(P,q)?ti(P[q],D[q])||(P[q].type===\"geojson\"&&D[q].type===\"geojson\"&&Ca(P,D,q)?In(B,{command:\"setGeoJSONSourceData\",args:[q,D[q].data]}):Dl(q,D,B,V)):xn(q,D,B))})(u.sources,a.sources,x,A);let E=[];u.layers&&u.layers.forEach(P=>{\"source\"in P&&A[P.source]?h.push({command:\"removeLayer\",args:[P.id]}):E.push(P)}),h=h.concat(x),function(P,D,B){D=D||[];let V=(P=P||[]).map(hf),q=D.map(hf),Q=P.reduce(Ts,{}),rt=D.reduce(Ts,{}),ot=V.slice(),lt=Object.create(null),pt,xt,Mt,Vt,It;for(let zt=0,ie=0;zt@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,(h,A,x,E)=>{let P=x||E;return a[A]=!P||P.toLowerCase(),\"\"}),a[\"max-age\"]){let h=parseInt(a[\"max-age\"],10);isNaN(h)?delete a[\"max-age\"]:a[\"max-age\"]=h}return a},n.ab=function(u,a){let h=[];for(let A in u)A in a||h.push(A);return h},n.ac=J,n.ad=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[0],P=a[1],D=a[2],B=a[3],V=a[4],q=a[5],Q=a[6],rt=a[7];return a!==u&&(u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[0]=E*x+V*A,u[1]=P*x+q*A,u[2]=D*x+Q*A,u[3]=B*x+rt*A,u[4]=V*x-E*A,u[5]=q*x-P*A,u[6]=Q*x-D*A,u[7]=rt*x-B*A,u},n.ae=function(u){var a=new se(16);return a[0]=u[0],a[1]=u[1],a[2]=u[2],a[3]=u[3],a[4]=u[4],a[5]=u[5],a[6]=u[6],a[7]=u[7],a[8]=u[8],a[9]=u[9],a[10]=u[10],a[11]=u[11],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15],a},n.af=Ft,n.ag=function(u,a){let h=0,A=0;if(u.kind===\"constant\")A=u.layoutSize;else if(u.kind!==\"source\"){let{interpolationType:x,minZoom:E,maxZoom:P}=u,D=x?J(bo.interpolationFactor(x,a,E,P),0,1):0;u.kind===\"camera\"?A=Zo.number(u.minSize,u.maxSize,D):h=D}return{uSizeT:h,uSize:A}},n.ai=function(u,{uSize:a,uSizeT:h},{lowerSize:A,upperSize:x}){return u.kind===\"source\"?A/Rf:u.kind===\"composite\"?Zo.number(A/Rf,x/Rf,h):a},n.aj=aC,n.ak=function(u,a,h,A){let x=a.y-u.y,E=a.x-u.x,P=A.y-h.y,D=A.x-h.x,B=P*E-D*x;if(B===0)return null;let V=(D*(u.y-h.y)-P*(u.x-h.x))/B;return new _(u.x+V*E,u.y+V*x)},n.al=gF,n.am=fa,n.an=Se,n.ao=Gs,n.aq=oC,n.ar=function(u,a){var h=a[0],A=a[1],x=a[2],E=a[3],P=a[4],D=a[5],B=a[6],V=a[7],q=a[8],Q=a[9],rt=a[10],ot=a[11],lt=a[12],pt=a[13],xt=a[14],Mt=a[15],Vt=h*D-A*P,It=h*B-x*P,zt=h*V-E*P,ie=A*B-x*D,ue=A*V-E*D,Be=x*V-E*B,Ke=q*pt-Q*lt,Re=q*xt-rt*lt,Ie=q*Mt-ot*lt,we=Q*xt-rt*pt,We=Q*Mt-ot*pt,Ee=rt*Mt-ot*xt,pe=Vt*Ee-It*We+zt*we+ie*Ie-ue*Re+Be*Ke;return pe?(u[0]=(D*Ee-B*We+V*we)*(pe=1/pe),u[1]=(x*We-A*Ee-E*we)*pe,u[2]=(pt*Be-xt*ue+Mt*ie)*pe,u[3]=(rt*ue-Q*Be-ot*ie)*pe,u[4]=(B*Ie-P*Ee-V*Re)*pe,u[5]=(h*Ee-x*Ie+E*Re)*pe,u[6]=(xt*zt-lt*Be-Mt*It)*pe,u[7]=(q*Be-rt*zt+ot*It)*pe,u[8]=(P*We-D*Ie+V*Ke)*pe,u[9]=(A*Ie-h*We-E*Ke)*pe,u[10]=(lt*ue-pt*zt+Mt*Vt)*pe,u[11]=(Q*zt-q*ue-ot*Vt)*pe,u[12]=(D*Re-P*we-B*Ke)*pe,u[13]=(h*we-A*Re+x*Ke)*pe,u[14]=(pt*It-lt*ie-xt*Vt)*pe,u[15]=(q*ie-Q*It+rt*Vt)*pe,u):null},n.as=AC,n.at=sC,n.au=mC,n.av=function(){let u={},a=Jt.$version;for(let h in Jt.$root){let A=Jt.$root[h];if(A.required){let x=null;x=h===\"version\"?a:A.type===\"array\"?[]:{},x!=null&&(u[h]=x)}}return u},n.aw=rA,n.ax=yo,n.ay=function(u){u=u.slice();let a=Object.create(null);for(let h=0;hpe*Gs)}let Re=P?\"center\":h.get(\"text-justify\").evaluate(V,{},u.canonical),Ie=h.get(\"symbol-placement\"),we=Ie===\"point\"?h.get(\"text-max-width\").evaluate(V,{},u.canonical)*Gs:0,We=()=>{u.bucket.allowVerticalPlacement&&iA(zt)&&(lt.vertical=US(pt,u.glyphMap,u.glyphPositions,u.imagePositions,q,we,E,Be,\"left\",ue,Mt,n.ah.vertical,!0,Ie,rt,Q))};if(!P&&Ke){let Ee=new Set;if(Re===\"auto\")for(let cr=0;crs(void 0,void 0,void 0,function*(){if(u.byteLength===0)return createImageBitmap(new ImageData(1,1));let a=new Blob([new Uint8Array(u)],{type:\"image/png\"});try{return createImageBitmap(a)}catch(h){throw new Error(`Could not load image because of ${h.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}}),n.e=Tt,n.f=u=>new Promise((a,h)=>{let A=new Image;A.onload=()=>{a(A),URL.revokeObjectURL(A.src),A.onload=null,window.requestAnimationFrame(()=>{A.src=Sc})},A.onerror=()=>h(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));let x=new Blob([new Uint8Array(u)],{type:\"image/png\"});A.src=u.byteLength?URL.createObjectURL(x):Sc}),n.g=Ia,n.h=(u,a)=>Oi(Tt(u,{type:\"json\"}),a),n.i=Cr,n.j=an,n.k=Go,n.l=(u,a)=>Oi(Tt(u,{type:\"arrayBuffer\"}),a),n.m=Oi,n.n=function(u){return new eC(u).readFields(UX,[])},n.o=pi,n.p=H6,n.q=wo,n.r=tA,n.s=ls,n.t=kc,n.u=Ce,n.v=Jt,n.w=Le,n.x=Sf,n.y=function([u,a,h]){return a+=90,a*=Math.PI/180,h*=Math.PI/180,{x:u*Math.cos(a)*Math.sin(h),y:u*Math.sin(a)*Math.sin(h),z:u*Math.cos(h)}},n.z=Zo}),r(\"worker\",[\"./shared\"],function(n){\"use strict\";class s{constructor(tt){this.keyCache={},tt&&this.replace(tt)}replace(tt){this._layerConfigs={},this._layers={},this.update(tt,[])}update(tt,nt){for(let mt of tt){this._layerConfigs[mt.id]=mt;let Rt=this._layers[mt.id]=n.az(mt);Rt._featureFilter=n.a6(Rt.filter),this.keyCache[mt.id]&&delete this.keyCache[mt.id]}for(let mt of nt)delete this.keyCache[mt],delete this._layerConfigs[mt],delete this._layers[mt];this.familiesBySource={};let ct=n.bg(Object.values(this._layerConfigs),this.keyCache);for(let mt of ct){let Rt=mt.map(ee=>this._layers[ee.id]),Dt=Rt[0];if(Dt.visibility===\"none\")continue;let Ut=Dt.source||\"\",ft=this.familiesBySource[Ut];ft||(ft=this.familiesBySource[Ut]={});let jt=Dt.sourceLayer||\"_geojsonTileLayer\",le=ft[jt];le||(le=ft[jt]=[]),le.push(Rt)}}}class o{constructor(tt){let nt={},ct=[];for(let Ut in tt){let ft=tt[Ut],jt=nt[Ut]={};for(let le in ft){let ee=ft[+le];if(!ee||ee.bitmap.width===0||ee.bitmap.height===0)continue;let re={x:0,y:0,w:ee.bitmap.width+2,h:ee.bitmap.height+2};ct.push(re),jt[le]={rect:re,metrics:ee.metrics}}}let{w:mt,h:Rt}=n.p(ct),Dt=new n.o({width:mt||1,height:Rt||1});for(let Ut in tt){let ft=tt[Ut];for(let jt in ft){let le=ft[+jt];if(!le||le.bitmap.width===0||le.bitmap.height===0)continue;let ee=nt[Ut][jt].rect;n.o.copy(le.bitmap,Dt,{x:0,y:0},{x:ee.x+1,y:ee.y+1},le.bitmap)}}this.image=Dt,this.positions=nt}}n.bh(\"GlyphAtlas\",o);class c{constructor(tt){this.tileID=new n.Q(tt.tileID.overscaledZ,tt.tileID.wrap,tt.tileID.canonical.z,tt.tileID.canonical.x,tt.tileID.canonical.y),this.uid=tt.uid,this.zoom=tt.zoom,this.pixelRatio=tt.pixelRatio,this.tileSize=tt.tileSize,this.source=tt.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=tt.showCollisionBoxes,this.collectResourceTiming=!!tt.collectResourceTiming,this.returnDependencies=!!tt.returnDependencies,this.promoteId=tt.promoteId,this.inFlightDependencies=[]}parse(tt,nt,ct,mt){return n._(this,void 0,void 0,function*(){this.status=\"parsing\",this.data=tt,this.collisionBoxArray=new n.a4;let Rt=new n.bi(Object.keys(tt.layers).sort()),Dt=new n.bj(this.tileID,this.promoteId);Dt.bucketLayerIDs=[];let Ut={},ft={featureIndex:Dt,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:ct},jt=nt.familiesBySource[this.source];for(let Rr in jt){let Ji=tt.layers[Rr];if(!Ji)continue;Ji.version===1&&n.w(`Vector tile source \"${this.source}\" layer \"${Rr}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);let tn=Rt.encode(Rr),es=[];for(let cs=0;cs=Ln.maxzoom||Ln.visibility!==\"none\"&&(d(cs,this.zoom,ct),(Ut[Ln.id]=Ln.createBucket({index:Dt.bucketLayerIDs.length,layers:cs,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:tn,sourceID:this.source})).populate(es,ft,this.tileID.canonical),Dt.bucketLayerIDs.push(cs.map(la=>la.id)))}}let le=n.aE(ft.glyphDependencies,Rr=>Object.keys(Rr).map(Number));this.inFlightDependencies.forEach(Rr=>Rr?.abort()),this.inFlightDependencies=[];let ee=Promise.resolve({});if(Object.keys(le).length){let Rr=new AbortController;this.inFlightDependencies.push(Rr),ee=mt.sendAsync({type:\"getGlyphs\",data:{stacks:le,source:this.source,tileID:this.tileID,type:\"glyphs\"}},Rr)}let re=Object.keys(ft.iconDependencies),Je=Promise.resolve({});if(re.length){let Rr=new AbortController;this.inFlightDependencies.push(Rr),Je=mt.sendAsync({type:\"getImages\",data:{icons:re,source:this.source,tileID:this.tileID,type:\"icons\"}},Rr)}let ir=Object.keys(ft.patternDependencies),kr=Promise.resolve({});if(ir.length){let Rr=new AbortController;this.inFlightDependencies.push(Rr),kr=mt.sendAsync({type:\"getImages\",data:{icons:ir,source:this.source,tileID:this.tileID,type:\"patterns\"}},Rr)}let[_r,ii,Si]=yield Promise.all([ee,Je,kr]),Wi=new o(_r),bn=new n.bk(ii,Si);for(let Rr in Ut){let Ji=Ut[Rr];Ji instanceof n.a5?(d(Ji.layers,this.zoom,ct),n.bl({bucket:Ji,glyphMap:_r,glyphPositions:Wi.positions,imageMap:ii,imagePositions:bn.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Ji.hasPattern&&(Ji instanceof n.bm||Ji instanceof n.bn||Ji instanceof n.bo)&&(d(Ji.layers,this.zoom,ct),Ji.addFeatures(ft,this.tileID.canonical,bn.patternPositions))}return this.status=\"done\",{buckets:Object.values(Ut).filter(Rr=>!Rr.isEmpty()),featureIndex:Dt,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Wi.image,imageAtlas:bn,glyphMap:this.returnDependencies?_r:null,iconMap:this.returnDependencies?ii:null,glyphPositions:this.returnDependencies?Wi.positions:null}})}}function d(vt,tt,nt){let ct=new n.a8(tt);for(let mt of vt)mt.recalculate(ct,nt)}class _{constructor(tt,nt,ct){this.actor=tt,this.layerIndex=nt,this.availableImages=ct,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(tt,nt){return n._(this,void 0,void 0,function*(){let ct=yield n.l(tt.request,nt);try{return{vectorTile:new n.bp.VectorTile(new n.bq(ct.data)),rawData:ct.data,cacheControl:ct.cacheControl,expires:ct.expires}}catch(mt){let Rt=new Uint8Array(ct.data),Dt=`Unable to parse the tile at ${tt.request.url}, `;throw Dt+=Rt[0]===31&&Rt[1]===139?\"please make sure the data is not gzipped and that you have configured the relevant header in the server\":`got error: ${mt.messge}`,new Error(Dt)}})}loadTile(tt){return n._(this,void 0,void 0,function*(){let nt=tt.uid,ct=!!(tt&&tt.request&&tt.request.collectResourceTiming)&&new n.br(tt.request),mt=new c(tt);this.loading[nt]=mt;let Rt=new AbortController;mt.abort=Rt;try{let Dt=yield this.loadVectorTile(tt,Rt);if(delete this.loading[nt],!Dt)return null;let Ut=Dt.rawData,ft={};Dt.expires&&(ft.expires=Dt.expires),Dt.cacheControl&&(ft.cacheControl=Dt.cacheControl);let jt={};if(ct){let ee=ct.finish();ee&&(jt.resourceTiming=JSON.parse(JSON.stringify(ee)))}mt.vectorTile=Dt.vectorTile;let le=mt.parse(Dt.vectorTile,this.layerIndex,this.availableImages,this.actor);this.loaded[nt]=mt,this.fetching[nt]={rawTileData:Ut,cacheControl:ft,resourceTiming:jt};try{let ee=yield le;return n.e({rawTileData:Ut.slice(0)},ee,ft,jt)}finally{delete this.fetching[nt]}}catch(Dt){throw delete this.loading[nt],mt.status=\"done\",this.loaded[nt]=mt,Dt}})}reloadTile(tt){return n._(this,void 0,void 0,function*(){let nt=tt.uid;if(!this.loaded||!this.loaded[nt])throw new Error(\"Should not be trying to reload a tile that was never loaded or has been removed\");let ct=this.loaded[nt];if(ct.showCollisionBoxes=tt.showCollisionBoxes,ct.status===\"parsing\"){let mt=yield ct.parse(ct.vectorTile,this.layerIndex,this.availableImages,this.actor),Rt;if(this.fetching[nt]){let{rawTileData:Dt,cacheControl:Ut,resourceTiming:ft}=this.fetching[nt];delete this.fetching[nt],Rt=n.e({rawTileData:Dt.slice(0)},mt,Ut,ft)}else Rt=mt;return Rt}if(ct.status===\"done\"&&ct.vectorTile)return ct.parse(ct.vectorTile,this.layerIndex,this.availableImages,this.actor)})}abortTile(tt){return n._(this,void 0,void 0,function*(){let nt=this.loading,ct=tt.uid;nt&&nt[ct]&&nt[ct].abort&&(nt[ct].abort.abort(),delete nt[ct])})}removeTile(tt){return n._(this,void 0,void 0,function*(){this.loaded&&this.loaded[tt.uid]&&delete this.loaded[tt.uid]})}}class w{constructor(){this.loaded={}}loadTile(tt){return n._(this,void 0,void 0,function*(){let{uid:nt,encoding:ct,rawImageData:mt,redFactor:Rt,greenFactor:Dt,blueFactor:Ut,baseShift:ft}=tt,jt=mt.width+2,le=mt.height+2,ee=n.b(mt)?new n.R({width:jt,height:le},yield n.bs(mt,-1,-1,jt,le)):mt,re=new n.bt(nt,ee,ct,Rt,Dt,Ut,ft);return this.loaded=this.loaded||{},this.loaded[nt]=re,re})}removeTile(tt){let nt=this.loaded,ct=tt.uid;nt&&nt[ct]&&delete nt[ct]}}function I(vt,tt){if(vt.length!==0){R(vt[0],tt);for(var nt=1;nt=Math.abs(Ut)?nt-ft+Ut:Ut-ft+nt,nt=ft}nt+ct>=0!=!!tt&&vt.reverse()}var N=n.bu(function vt(tt,nt){var ct,mt=tt&&tt.type;if(mt===\"FeatureCollection\")for(ct=0;ct>31}function lr(vt,tt){for(var nt=vt.loadGeometry(),ct=vt.type,mt=0,Rt=0,Dt=nt.length,Ut=0;Utvt},Sc=Math.fround||(ws=new Float32Array(1),vt=>(ws[0]=+vt,ws[0]));var ws;let io=3,Ss=5,_o=6;class oa{constructor(tt){this.options=Object.assign(Object.create(Fs),tt),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(tt){let{log:nt,minZoom:ct,maxZoom:mt}=this.options;nt&&console.time(\"total time\");let Rt=`prepare ${tt.length} points`;nt&&console.time(Rt),this.points=tt;let Dt=[];for(let ft=0;ft=ct;ft--){let jt=+Date.now();Ut=this.trees[ft]=this._createTree(this._cluster(Ut,ft)),nt&&console.log(\"z%d: %d clusters in %dms\",ft,Ut.numItems,+Date.now()-jt)}return nt&&console.timeEnd(\"total time\"),this}getClusters(tt,nt){let ct=((tt[0]+180)%360+360)%360-180,mt=Math.max(-90,Math.min(90,tt[1])),Rt=tt[2]===180?180:((tt[2]+180)%360+360)%360-180,Dt=Math.max(-90,Math.min(90,tt[3]));if(tt[2]-tt[0]>=360)ct=-180,Rt=180;else if(ct>Rt){let ee=this.getClusters([ct,mt,180,Dt],nt),re=this.getClusters([-180,mt,Rt,Dt],nt);return ee.concat(re)}let Ut=this.trees[this._limitZoom(nt)],ft=Ut.range(Uo(ct),Ci(Dt),Uo(Rt),Ci(mt)),jt=Ut.data,le=[];for(let ee of ft){let re=this.stride*ee;le.push(jt[re+Ss]>1?sl(jt,re,this.clusterProps):this.points[jt[re+io]])}return le}getChildren(tt){let nt=this._getOriginId(tt),ct=this._getOriginZoom(tt),mt=\"No cluster with the specified id.\",Rt=this.trees[ct];if(!Rt)throw new Error(mt);let Dt=Rt.data;if(nt*this.stride>=Dt.length)throw new Error(mt);let Ut=this.options.radius/(this.options.extent*Math.pow(2,ct-1)),ft=Rt.within(Dt[nt*this.stride],Dt[nt*this.stride+1],Ut),jt=[];for(let le of ft){let ee=le*this.stride;Dt[ee+4]===tt&&jt.push(Dt[ee+Ss]>1?sl(Dt,ee,this.clusterProps):this.points[Dt[ee+io]])}if(jt.length===0)throw new Error(mt);return jt}getLeaves(tt,nt,ct){let mt=[];return this._appendLeaves(mt,tt,nt=nt||10,ct=ct||0,0),mt}getTile(tt,nt,ct){let mt=this.trees[this._limitZoom(tt)],Rt=Math.pow(2,tt),{extent:Dt,radius:Ut}=this.options,ft=Ut/Dt,jt=(ct-ft)/Rt,le=(ct+1+ft)/Rt,ee={features:[]};return this._addTileFeatures(mt.range((nt-ft)/Rt,jt,(nt+1+ft)/Rt,le),mt.data,nt,ct,Rt,ee),nt===0&&this._addTileFeatures(mt.range(1-ft/Rt,jt,1,le),mt.data,Rt,ct,Rt,ee),nt===Rt-1&&this._addTileFeatures(mt.range(0,jt,ft/Rt,le),mt.data,-1,ct,Rt,ee),ee.features.length?ee:null}getClusterExpansionZoom(tt){let nt=this._getOriginZoom(tt)-1;for(;nt<=this.options.maxZoom;){let ct=this.getChildren(tt);if(nt++,ct.length!==1)break;tt=ct[0].properties.cluster_id}return nt}_appendLeaves(tt,nt,ct,mt,Rt){let Dt=this.getChildren(nt);for(let Ut of Dt){let ft=Ut.properties;if(ft&&ft.cluster?Rt+ft.point_count<=mt?Rt+=ft.point_count:Rt=this._appendLeaves(tt,ft.cluster_id,ct,mt,Rt):Rt1,le,ee,re;if(jt)le=Ia(nt,ft,this.clusterProps),ee=nt[ft],re=nt[ft+1];else{let kr=this.points[nt[ft+io]];le=kr.properties;let[_r,ii]=kr.geometry.coordinates;ee=Uo(_r),re=Ci(ii)}let Je={type:1,geometry:[[Math.round(this.options.extent*(ee*Rt-ct)),Math.round(this.options.extent*(re*Rt-mt))]],tags:le},ir;ir=jt||this.options.generateId?nt[ft+io]:this.points[nt[ft+io]].id,ir!==void 0&&(Je.id=ir),Dt.features.push(Je)}}_limitZoom(tt){return Math.max(this.options.minZoom,Math.min(Math.floor(+tt),this.options.maxZoom+1))}_cluster(tt,nt){let{radius:ct,extent:mt,reduce:Rt,minPoints:Dt}=this.options,Ut=ct/(mt*Math.pow(2,nt)),ft=tt.data,jt=[],le=this.stride;for(let ee=0;eent&&(_r+=ft[Si+Ss])}if(_r>kr&&_r>=Dt){let ii,Si=re*kr,Wi=Je*kr,bn=-1,Rr=((ee/le|0)<<5)+(nt+1)+this.points.length;for(let Ji of ir){let tn=Ji*le;if(ft[tn+2]<=nt)continue;ft[tn+2]=nt;let es=ft[tn+Ss];Si+=ft[tn]*es,Wi+=ft[tn+1]*es,ft[tn+4]=Rr,Rt&&(ii||(ii=this._map(ft,ee,!0),bn=this.clusterProps.length,this.clusterProps.push(ii)),Rt(ii,this._map(ft,tn)))}ft[ee+4]=Rr,jt.push(Si/_r,Wi/_r,1/0,Rr,-1,_r),Rt&&jt.push(bn)}else{for(let ii=0;ii1)for(let ii of ir){let Si=ii*le;if(!(ft[Si+2]<=nt)){ft[Si+2]=nt;for(let Wi=0;Wi>5}_getOriginZoom(tt){return(tt-this.points.length)%32}_map(tt,nt,ct){if(tt[nt+Ss]>1){let Dt=this.clusterProps[tt[nt+_o]];return ct?Object.assign({},Dt):Dt}let mt=this.points[tt[nt+io]].properties,Rt=this.options.map(mt);return ct&&Rt===mt?Object.assign({},Rt):Rt}}function sl(vt,tt,nt){return{type:\"Feature\",id:vt[tt+io],properties:Ia(vt,tt,nt),geometry:{type:\"Point\",coordinates:[(ct=vt[tt],360*(ct-.5)),yo(vt[tt+1])]}};var ct}function Ia(vt,tt,nt){let ct=vt[tt+Ss],mt=ct>=1e4?`${Math.round(ct/1e3)}k`:ct>=1e3?Math.round(ct/100)/10+\"k\":ct,Rt=vt[tt+_o],Dt=Rt===-1?{}:Object.assign({},nt[Rt]);return Object.assign(Dt,{cluster:!0,cluster_id:vt[tt+io],point_count:ct,point_count_abbreviated:mt})}function Uo(vt){return vt/360+.5}function Ci(vt){let tt=Math.sin(vt*Math.PI/180),nt=.5-.25*Math.log((1+tt)/(1-tt))/Math.PI;return nt<0?0:nt>1?1:nt}function yo(vt){let tt=(180-360*vt)*Math.PI/180;return 360*Math.atan(Math.exp(tt))/Math.PI-90}function Oi(vt,tt,nt,ct){for(var mt,Rt=ct,Dt=nt-tt>>1,Ut=nt-tt,ft=vt[tt],jt=vt[tt+1],le=vt[nt],ee=vt[nt+1],re=tt+3;reRt)mt=re,Rt=Je;else if(Je===Rt){var ir=Math.abs(re-Dt);irct&&(mt-tt>3&&Oi(vt,tt,mt,ct),vt[mt+2]=Rt,nt-mt>3&&Oi(vt,mt,nt,ct))}function ls(vt,tt,nt,ct,mt,Rt){var Dt=mt-nt,Ut=Rt-ct;if(Dt!==0||Ut!==0){var ft=((vt-nt)*Dt+(tt-ct)*Ut)/(Dt*Dt+Ut*Ut);ft>1?(nt=mt,ct=Rt):ft>0&&(nt+=Dt*ft,ct+=Ut*ft)}return(Dt=vt-nt)*Dt+(Ut=tt-ct)*Ut}function Vo(vt,tt,nt,ct){var mt={id:vt===void 0?null:vt,type:tt,geometry:nt,tags:ct,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Rt){var Dt=Rt.geometry,Ut=Rt.type;if(Ut===\"Point\"||Ut===\"MultiPoint\"||Ut===\"LineString\")jo(Rt,Dt);else if(Ut===\"Polygon\"||Ut===\"MultiLineString\")for(var ft=0;ft0&&(Dt+=ct?(mt*jt-ft*Rt)/2:Math.sqrt(Math.pow(ft-mt,2)+Math.pow(jt-Rt,2))),mt=ft,Rt=jt}var le=tt.length-3;tt[2]=1,Oi(tt,0,le,nt),tt[le+2]=1,tt.size=Math.abs(Dt),tt.start=0,tt.end=tt.size}function Jt(vt,tt,nt,ct){for(var mt=0;mt1?1:nt}function ti(vt,tt,nt,ct,mt,Rt,Dt,Ut){if(ct/=tt,Rt>=(nt/=tt)&&Dt=ct)return null;for(var ft=[],jt=0;jt=nt&&ir=ct)){var kr=[];if(re===\"Point\"||re===\"MultiPoint\")In(ee,kr,nt,ct,mt);else if(re===\"LineString\")xn(ee,kr,nt,ct,mt,!1,Ut.lineMetrics);else if(re===\"MultiLineString\")Dl(ee,kr,nt,ct,mt,!1);else if(re===\"Polygon\")Dl(ee,kr,nt,ct,mt,!0);else if(re===\"MultiPolygon\")for(var _r=0;_r=nt&&Dt<=ct&&(tt.push(vt[Rt]),tt.push(vt[Rt+1]),tt.push(vt[Rt+2]))}}function xn(vt,tt,nt,ct,mt,Rt,Dt){for(var Ut,ft,jt=Wo(vt),le=mt===0?Tc:hf,ee=vt.start,re=0;rent&&(ft=le(jt,Je,ir,_r,ii,nt),Dt&&(jt.start=ee+Ut*ft)):Si>ct?Wi=nt&&(ft=le(jt,Je,ir,_r,ii,nt),bn=!0),Wi>ct&&Si<=ct&&(ft=le(jt,Je,ir,_r,ii,ct),bn=!0),!Rt&&bn&&(Dt&&(jt.end=ee+Ut*ft),tt.push(jt),jt=Wo(vt)),Dt&&(ee+=Ut)}var Rr=vt.length-3;Je=vt[Rr],ir=vt[Rr+1],kr=vt[Rr+2],(Si=mt===0?Je:ir)>=nt&&Si<=ct&&Ca(jt,Je,ir,kr),Rr=jt.length-3,Rt&&Rr>=3&&(jt[Rr]!==jt[0]||jt[Rr+1]!==jt[1])&&Ca(jt,jt[0],jt[1],jt[2]),jt.length&&tt.push(jt)}function Wo(vt){var tt=[];return tt.size=vt.size,tt.start=vt.start,tt.end=vt.end,tt}function Dl(vt,tt,nt,ct,mt,Rt){for(var Dt=0;DtDt.maxX&&(Dt.maxX=le),ee>Dt.maxY&&(Dt.maxY=ee)}return Dt}function ts(vt,tt,nt,ct){var mt=tt.geometry,Rt=tt.type,Dt=[];if(Rt===\"Point\"||Rt===\"MultiPoint\")for(var Ut=0;Ut0&&tt.size<(mt?Dt:ct))nt.numPoints+=tt.length/3;else{for(var Ut=[],ft=0;ftDt)&&(nt.numSimplified++,Ut.push(tt[ft]),Ut.push(tt[ft+1])),nt.numPoints++;mt&&function(jt,le){for(var ee=0,re=0,Je=jt.length,ir=Je-2;re0===le)for(re=0,Je=jt.length;re24)throw new Error(\"maxZoom should be in the 0-24 range\");if(tt.promoteId&&tt.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var ct=function(mt,Rt){var Dt=[];if(mt.type===\"FeatureCollection\")for(var Ut=0;Ut1&&console.time(\"creation\"),re=this.tiles[ee]=La(vt,tt,nt,ct,ft),this.tileCoords.push({z:tt,x:nt,y:ct}),jt)){jt>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",tt,nt,ct,re.numFeatures,re.numPoints,re.numSimplified),console.timeEnd(\"creation\"));var Je=\"z\"+tt;this.stats[Je]=(this.stats[Je]||0)+1,this.total++}if(re.source=vt,mt){if(tt===ft.maxZoom||tt===mt)continue;var ir=1<1&&console.time(\"clipping\");var kr,_r,ii,Si,Wi,bn,Rr=.5*ft.buffer/ft.extent,Ji=.5-Rr,tn=.5+Rr,es=1+Rr;kr=_r=ii=Si=null,Wi=ti(vt,le,nt-Rr,nt+tn,0,re.minX,re.maxX,ft),bn=ti(vt,le,nt+Ji,nt+es,0,re.minX,re.maxX,ft),vt=null,Wi&&(kr=ti(Wi,le,ct-Rr,ct+tn,1,re.minY,re.maxY,ft),_r=ti(Wi,le,ct+Ji,ct+es,1,re.minY,re.maxY,ft),Wi=null),bn&&(ii=ti(bn,le,ct-Rr,ct+tn,1,re.minY,re.maxY,ft),Si=ti(bn,le,ct+Ji,ct+es,1,re.minY,re.maxY,ft),bn=null),jt>1&&console.timeEnd(\"clipping\"),Ut.push(kr||[],tt+1,2*nt,2*ct),Ut.push(_r||[],tt+1,2*nt,2*ct+1),Ut.push(ii||[],tt+1,2*nt+1,2*ct),Ut.push(Si||[],tt+1,2*nt+1,2*ct+1)}}},Lr.prototype.getTile=function(vt,tt,nt){var ct=this.options,mt=ct.extent,Rt=ct.debug;if(vt<0||vt>24)return null;var Dt=1<1&&console.log(\"drilling down to z%d-%d-%d\",vt,tt,nt);for(var ft,jt=vt,le=tt,ee=nt;!ft&&jt>0;)jt--,le=Math.floor(le/2),ee=Math.floor(ee/2),ft=this.tiles[wr(jt,le,ee)];return ft&&ft.source?(Rt>1&&console.log(\"found parent tile z%d-%d-%d\",jt,le,ee),Rt>1&&console.time(\"drilling down\"),this.splitTile(ft.source,jt,le,ee,vt,tt,nt),Rt>1&&console.timeEnd(\"drilling down\"),this.tiles[Ut]?Ho(this.tiles[Ut],mt):null):null};class Mc extends _{constructor(){super(...arguments),this._dataUpdateable=new Map}loadVectorTile(tt,nt){return n._(this,void 0,void 0,function*(){let ct=tt.tileID.canonical;if(!this._geoJSONIndex)throw new Error(\"Unable to parse the data into a cluster or geojson\");let mt=this._geoJSONIndex.getTile(ct.z,ct.x,ct.y);if(!mt)return null;let Rt=new class{constructor(Ut){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=n.W,this.length=Ut.length,this._features=Ut}feature(Ut){return new class{constructor(ft){this._feature=ft,this.extent=n.W,this.type=ft.type,this.properties=ft.tags,\"id\"in ft&&!isNaN(ft.id)&&(this.id=parseInt(ft.id,10))}loadGeometry(){if(this._feature.type===1){let ft=[];for(let jt of this._feature.geometry)ft.push([new n.P(jt[0],jt[1])]);return ft}{let ft=[];for(let jt of this._feature.geometry){let le=[];for(let ee of jt)le.push(new n.P(ee[0],ee[1]));ft.push(le)}return ft}}toGeoJSON(ft,jt,le){return j.call(this,ft,jt,le)}}(this._features[Ut])}}(mt.features),Dt=un(Rt);return Dt.byteOffset===0&&Dt.byteLength===Dt.buffer.byteLength||(Dt=new Uint8Array(Dt)),{vectorTile:Rt,rawData:Dt.buffer}})}loadData(tt){var nt;return n._(this,void 0,void 0,function*(){(nt=this._pendingRequest)===null||nt===void 0||nt.abort();let ct=!!(tt&&tt.request&&tt.request.collectResourceTiming)&&new n.br(tt.request);this._pendingRequest=new AbortController;try{let mt=yield this.loadGeoJSON(tt,this._pendingRequest);if(delete this._pendingRequest,typeof mt!=\"object\")throw new Error(`Input data given to '${tt.source}' is not a valid GeoJSON object.`);if(N(mt,!0),tt.filter){let Dt=n.bx(tt.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(Dt.result===\"error\")throw new Error(Dt.value.map(ft=>`${ft.key}: ${ft.message}`).join(\", \"));mt={type:\"FeatureCollection\",features:mt.features.filter(ft=>Dt.value.evaluate({zoom:0},ft))}}this._geoJSONIndex=tt.cluster?new oa(function({superclusterOptions:Dt,clusterProperties:Ut}){if(!Ut||!Dt)return Dt;let ft={},jt={},le={accumulated:null,zoom:0},ee={properties:null},re=Object.keys(Ut);for(let Je of re){let[ir,kr]=Ut[Je],_r=n.bx(kr),ii=n.bx(typeof ir==\"string\"?[ir,[\"accumulated\"],[\"get\",Je]]:ir);ft[Je]=_r.value,jt[Je]=ii.value}return Dt.map=Je=>{ee.properties=Je;let ir={};for(let kr of re)ir[kr]=ft[kr].evaluate(le,ee);return ir},Dt.reduce=(Je,ir)=>{ee.properties=ir;for(let kr of re)le.accumulated=Je[kr],Je[kr]=jt[kr].evaluate(le,ee)},Dt}(tt)).load(mt.features):function(Dt,Ut){return new Lr(Dt,Ut)}(mt,tt.geojsonVtOptions),this.loaded={};let Rt={};if(ct){let Dt=ct.finish();Dt&&(Rt.resourceTiming={},Rt.resourceTiming[tt.source]=JSON.parse(JSON.stringify(Dt)))}return Rt}catch(mt){if(delete this._pendingRequest,n.by(mt))return{abandoned:!0};throw mt}})}reloadTile(tt){let nt=this.loaded;return nt&&nt[tt.uid]?super.reloadTile(tt):this.loadTile(tt)}loadGeoJSON(tt,nt){return n._(this,void 0,void 0,function*(){let{promoteId:ct}=tt;if(tt.request){let mt=yield n.h(tt.request,nt);return this._dataUpdateable=ka(mt.data,ct)?mr(mt.data,ct):void 0,mt.data}if(typeof tt.data==\"string\")try{let mt=JSON.parse(tt.data);return this._dataUpdateable=ka(mt,ct)?mr(mt,ct):void 0,mt}catch{throw new Error(`Input data given to '${tt.source}' is not a valid GeoJSON object.`)}if(!tt.dataDiff)throw new Error(`Input data given to '${tt.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${tt.source}`);return function(mt,Rt,Dt){var Ut,ft,jt,le;if(Rt.removeAll&&mt.clear(),Rt.remove)for(let ee of Rt.remove)mt.delete(ee);if(Rt.add)for(let ee of Rt.add){let re=Cn(ee,Dt);re!=null&&mt.set(re,ee)}if(Rt.update)for(let ee of Rt.update){let re=mt.get(ee.id);if(re==null)continue;let Je=!ee.removeAllProperties&&(((Ut=ee.removeProperties)===null||Ut===void 0?void 0:Ut.length)>0||((ft=ee.addOrUpdateProperties)===null||ft===void 0?void 0:ft.length)>0);if((ee.newGeometry||ee.removeAllProperties||Je)&&(re=Object.assign({},re),mt.set(ee.id,re),Je&&(re.properties=Object.assign({},re.properties))),ee.newGeometry&&(re.geometry=ee.newGeometry),ee.removeAllProperties)re.properties={};else if(((jt=ee.removeProperties)===null||jt===void 0?void 0:jt.length)>0)for(let ir of ee.removeProperties)Object.prototype.hasOwnProperty.call(re.properties,ir)&&delete re.properties[ir];if(((le=ee.addOrUpdateProperties)===null||le===void 0?void 0:le.length)>0)for(let{key:ir,value:kr}of ee.addOrUpdateProperties)re.properties[ir]=kr}}(this._dataUpdateable,tt.dataDiff,ct),{type:\"FeatureCollection\",features:Array.from(this._dataUpdateable.values())}})}removeSource(tt){return n._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(tt){return this._geoJSONIndex.getClusterExpansionZoom(tt.clusterId)}getClusterChildren(tt){return this._geoJSONIndex.getChildren(tt.clusterId)}getClusterLeaves(tt){return this._geoJSONIndex.getLeaves(tt.clusterId,tt.limit,tt.offset)}}class jn{constructor(tt){this.self=tt,this.actor=new n.C(tt),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(nt,ct)=>{if(this.externalWorkerSourceTypes[nt])throw new Error(`Worker source with name \"${nt}\" already registered.`);this.externalWorkerSourceTypes[nt]=ct},this.self.addProtocol=n.be,this.self.removeProtocol=n.bf,this.self.registerRTLTextPlugin=nt=>{if(n.bz.isParsed())throw new Error(\"RTL text plugin already registered.\");n.bz.setMethods(nt)},this.actor.registerMessageHandler(\"loadDEMTile\",(nt,ct)=>this._getDEMWorkerSource(nt,ct.source).loadTile(ct)),this.actor.registerMessageHandler(\"removeDEMTile\",(nt,ct)=>n._(this,void 0,void 0,function*(){this._getDEMWorkerSource(nt,ct.source).removeTile(ct)})),this.actor.registerMessageHandler(\"getClusterExpansionZoom\",(nt,ct)=>n._(this,void 0,void 0,function*(){return this._getWorkerSource(nt,ct.type,ct.source).getClusterExpansionZoom(ct)})),this.actor.registerMessageHandler(\"getClusterChildren\",(nt,ct)=>n._(this,void 0,void 0,function*(){return this._getWorkerSource(nt,ct.type,ct.source).getClusterChildren(ct)})),this.actor.registerMessageHandler(\"getClusterLeaves\",(nt,ct)=>n._(this,void 0,void 0,function*(){return this._getWorkerSource(nt,ct.type,ct.source).getClusterLeaves(ct)})),this.actor.registerMessageHandler(\"loadData\",(nt,ct)=>this._getWorkerSource(nt,ct.type,ct.source).loadData(ct)),this.actor.registerMessageHandler(\"loadTile\",(nt,ct)=>this._getWorkerSource(nt,ct.type,ct.source).loadTile(ct)),this.actor.registerMessageHandler(\"reloadTile\",(nt,ct)=>this._getWorkerSource(nt,ct.type,ct.source).reloadTile(ct)),this.actor.registerMessageHandler(\"abortTile\",(nt,ct)=>this._getWorkerSource(nt,ct.type,ct.source).abortTile(ct)),this.actor.registerMessageHandler(\"removeTile\",(nt,ct)=>this._getWorkerSource(nt,ct.type,ct.source).removeTile(ct)),this.actor.registerMessageHandler(\"removeSource\",(nt,ct)=>n._(this,void 0,void 0,function*(){if(!this.workerSources[nt]||!this.workerSources[nt][ct.type]||!this.workerSources[nt][ct.type][ct.source])return;let mt=this.workerSources[nt][ct.type][ct.source];delete this.workerSources[nt][ct.type][ct.source],mt.removeSource!==void 0&&mt.removeSource(ct)})),this.actor.registerMessageHandler(\"setReferrer\",(nt,ct)=>n._(this,void 0,void 0,function*(){this.referrer=ct})),this.actor.registerMessageHandler(\"syncRTLPluginState\",(nt,ct)=>this._syncRTLPluginState(nt,ct)),this.actor.registerMessageHandler(\"importScript\",(nt,ct)=>n._(this,void 0,void 0,function*(){this.self.importScripts(ct)})),this.actor.registerMessageHandler(\"setImages\",(nt,ct)=>this._setImages(nt,ct)),this.actor.registerMessageHandler(\"updateLayers\",(nt,ct)=>n._(this,void 0,void 0,function*(){this._getLayerIndex(nt).update(ct.layers,ct.removedIds)})),this.actor.registerMessageHandler(\"setLayers\",(nt,ct)=>n._(this,void 0,void 0,function*(){this._getLayerIndex(nt).replace(ct)}))}_setImages(tt,nt){return n._(this,void 0,void 0,function*(){this.availableImages[tt]=nt;for(let ct in this.workerSources[tt]){let mt=this.workerSources[tt][ct];for(let Rt in mt)mt[Rt].availableImages=nt}})}_syncRTLPluginState(tt,nt){return n._(this,void 0,void 0,function*(){n.bz.setState(nt);let ct=n.bz.getPluginURL();if(nt.pluginStatus===\"loaded\"&&!n.bz.isParsed()&&ct!=null){this.self.importScripts(ct);let mt=n.bz.isParsed();if(mt)return mt;throw new Error(`RTL Text Plugin failed to import scripts from ${ct}`)}return!1})}_getAvailableImages(tt){let nt=this.availableImages[tt];return nt||(nt=[]),nt}_getLayerIndex(tt){let nt=this.layerIndexes[tt];return nt||(nt=this.layerIndexes[tt]=new s),nt}_getWorkerSource(tt,nt,ct){if(this.workerSources[tt]||(this.workerSources[tt]={}),this.workerSources[tt][nt]||(this.workerSources[tt][nt]={}),!this.workerSources[tt][nt][ct]){let mt={sendAsync:(Rt,Dt)=>(Rt.targetMapId=tt,this.actor.sendAsync(Rt,Dt))};switch(nt){case\"vector\":this.workerSources[tt][nt][ct]=new _(mt,this._getLayerIndex(tt),this._getAvailableImages(tt));break;case\"geojson\":this.workerSources[tt][nt][ct]=new Mc(mt,this._getLayerIndex(tt),this._getAvailableImages(tt));break;default:this.workerSources[tt][nt][ct]=new this.externalWorkerSourceTypes[nt](mt,this._getLayerIndex(tt),this._getAvailableImages(tt))}}return this.workerSources[tt][nt][ct]}_getDEMWorkerSource(tt,nt){return this.demWorkerSources[tt]||(this.demWorkerSources[tt]={}),this.demWorkerSources[tt][nt]||(this.demWorkerSources[tt][nt]=new w),this.demWorkerSources[tt][nt]}}return n.i(self)&&(self.worker=new jn(self)),jn}),r(\"index\",[\"exports\",\"./shared\"],function(n,s){\"use strict\";var o=\"4.0.0\";let c,d,_={now:typeof performance<\"u\"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frameAsync:T=>new Promise((l,f)=>{let v=requestAnimationFrame(l);T.signal.addEventListener(\"abort\",()=>{cancelAnimationFrame(v),f(s.c())})}),getImageData(T,l=0){return this.getImageCanvasContext(T).getImageData(-l,-l,T.width+2*l,T.height+2*l)},getImageCanvasContext(T){let l=window.document.createElement(\"canvas\"),f=l.getContext(\"2d\",{willReadFrequently:!0});if(!f)throw new Error(\"failed to create canvas 2d context\");return l.width=T.width,l.height=T.height,f.drawImage(T,0,0,T.width,T.height),f},resolveURL:T=>(c||(c=document.createElement(\"a\")),c.href=T,c.href),hardwareConcurrency:typeof navigator<\"u\"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(d==null&&(d=matchMedia(\"(prefers-reduced-motion: reduce)\")),d.matches)}};class w{static testProp(l){if(!w.docStyle)return l[0];for(let f=0;f{window.removeEventListener(\"click\",w.suppressClickInternal,!0)},0)}static getScale(l){let f=l.getBoundingClientRect();return{x:f.width/l.offsetWidth||1,y:f.height/l.offsetHeight||1,boundingClientRect:f}}static getPoint(l,f,v){let b=f.boundingClientRect;return new s.P((v.clientX-b.left)/f.x-l.clientLeft,(v.clientY-b.top)/f.y-l.clientTop)}static mousePos(l,f){let v=w.getScale(l);return w.getPoint(l,v,f)}static touchPos(l,f){let v=[],b=w.getScale(l);for(let M=0;M{l=[],f=0,v=0,b={}},T.addThrottleControl=U=>{let W=v++;return b[W]=U,W},T.removeThrottleControl=U=>{delete b[U],O()},T.getImage=(U,W,$=!0)=>new Promise((X,at)=>{I.supported&&(U.headers||(U.headers={}),U.headers.accept=\"image/webp,*/*\"),s.e(U,{type:\"image\"}),l.push({abortController:W,requestParameters:U,supportImageRefresh:$,state:\"queued\",onError:gt=>{at(gt)},onSuccess:gt=>{X(gt)}}),O()});let M=U=>s._(this,void 0,void 0,function*(){U.state=\"running\";let{requestParameters:W,supportImageRefresh:$,onError:X,onSuccess:at,abortController:gt}=U,_t=$===!1&&!s.i(self)&&!s.g(W.url)&&(!W.headers||Object.keys(W.headers).reduce((kt,Wt)=>kt&&Wt===\"accept\",!0));f++;let yt=_t?F(W,gt):s.m(W,gt);try{let kt=yield yt;delete U.abortController,U.state=\"completed\",kt.data instanceof HTMLImageElement||s.b(kt.data)?at(kt):kt.data&&at({data:yield(At=kt.data,typeof createImageBitmap==\"function\"?s.d(At):s.f(At)),cacheControl:kt.cacheControl,expires:kt.expires})}catch(kt){delete U.abortController,X(kt)}finally{f--,O()}var At}),O=()=>{let U=(()=>{for(let W of Object.keys(b))if(b[W]())return!0;return!1})()?s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let W=f;W0;W++){let $=l.shift();$.abortController.signal.aborted?W--:M($)}},F=(U,W)=>new Promise(($,X)=>{let at=new Image,gt=U.url,_t=U.credentials;_t&&_t===\"include\"?at.crossOrigin=\"use-credentials\":(_t&&_t===\"same-origin\"||!s.s(gt))&&(at.crossOrigin=\"anonymous\"),W.signal.addEventListener(\"abort\",()=>{at.src=\"\",X(s.c())}),at.fetchPriority=\"high\",at.onload=()=>{at.onerror=at.onload=null,$({data:at})},at.onerror=()=>{at.onerror=at.onload=null,W.signal.aborted||X(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"))},at.src=gt})}(Z||(Z={})),Z.resetRequestQueue(),function(T){T.Glyphs=\"Glyphs\",T.Image=\"Image\",T.Source=\"Source\",T.SpriteImage=\"SpriteImage\",T.SpriteJSON=\"SpriteJSON\",T.Style=\"Style\",T.Tile=\"Tile\",T.Unknown=\"Unknown\"}(K||(K={}));class J{constructor(l){this._transformRequestFn=l}transformRequest(l,f){return this._transformRequestFn&&this._transformRequestFn(l,f)||{url:l}}normalizeSpriteURL(l,f,v){let b=function(M){let O=M.match(ht);if(!O)throw new Error(`Unable to parse URL \"${M}\"`);return{protocol:O[1],authority:O[2],path:O[3]||\"/\",params:O[4]?O[4].split(\"&\"):[]}}(l);return b.path+=`${f}${v}`,function(M){let O=M.params.length?`?${M.params.join(\"&\")}`:\"\";return`${M.protocol}://${M.authority}${M.path}${O}`}(b)}setTransformRequest(l){this._transformRequestFn=l}}let ht=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function Tt(T){var l=new s.A(3);return l[0]=T[0],l[1]=T[1],l[2]=T[2],l}var Ot,Yt=function(T,l,f){return T[0]=l[0]-f[0],T[1]=l[1]-f[1],T[2]=l[2]-f[2],T};Ot=new s.A(3),s.A!=Float32Array&&(Ot[0]=0,Ot[1]=0,Ot[2]=0);var te=function(T){var l=T[0],f=T[1];return l*l+f*f};function oe(T){let l=[];if(typeof T==\"string\")l.push({id:\"default\",url:T});else if(T&&T.length>0){let f=[];for(let{id:v,url:b}of T){let M=`${v}${b}`;f.indexOf(M)===-1&&(f.push(M),l.push({id:v,url:b}))}}return l}(function(){var T=new s.A(2);s.A!=Float32Array&&(T[0]=0,T[1]=0)})();class ae{constructor(l,f,v,b){this.context=l,this.format=v,this.texture=l.gl.createTexture(),this.update(f,b)}update(l,f,v){let{width:b,height:M}=l,O=!(this.size&&this.size[0]===b&&this.size[1]===M||v),{context:F}=this,{gl:U}=F;if(this.useMipmap=!!(f&&f.useMipmap),U.bindTexture(U.TEXTURE_2D,this.texture),F.pixelStoreUnpackFlipY.set(!1),F.pixelStoreUnpack.set(1),F.pixelStoreUnpackPremultiplyAlpha.set(this.format===U.RGBA&&(!f||f.premultiply!==!1)),O)this.size=[b,M],l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||s.b(l)?U.texImage2D(U.TEXTURE_2D,0,this.format,this.format,U.UNSIGNED_BYTE,l):U.texImage2D(U.TEXTURE_2D,0,this.format,b,M,0,this.format,U.UNSIGNED_BYTE,l.data);else{let{x:W,y:$}=v||{x:0,y:0};l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||s.b(l)?U.texSubImage2D(U.TEXTURE_2D,0,W,$,U.RGBA,U.UNSIGNED_BYTE,l):U.texSubImage2D(U.TEXTURE_2D,0,W,$,b,M,U.RGBA,U.UNSIGNED_BYTE,l.data)}this.useMipmap&&this.isSizePowerOfTwo()&&U.generateMipmap(U.TEXTURE_2D)}bind(l,f,v){let{context:b}=this,{gl:M}=b;M.bindTexture(M.TEXTURE_2D,this.texture),v!==M.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(v=M.LINEAR),l!==this.filter&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MAG_FILTER,l),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MIN_FILTER,v||l),this.filter=l),f!==this.wrap&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_S,f),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_T,f),this.wrap=f)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:l}=this.context;l.deleteTexture(this.texture),this.texture=null}}function Le(T){let{userImage:l}=T;return!!(l&&l.render&&l.render())&&(T.data.replace(new Uint8Array(l.data.buffer)),!0)}class sr extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(l){if(this.loaded!==l&&(this.loaded=l,l)){for(let{ids:f,promiseResolve:v}of this.requestors)v(this._getImagesForIds(f));this.requestors=[]}}getImage(l){let f=this.images[l];if(f&&!f.data&&f.spriteData){let v=f.spriteData;f.data=new s.R({width:v.width,height:v.height},v.context.getImageData(v.x,v.y,v.width,v.height).data),f.spriteData=null}return f}addImage(l,f){if(this.images[l])throw new Error(`Image id ${l} already exist, use updateImage instead`);this._validate(l,f)&&(this.images[l]=f)}_validate(l,f){let v=!0,b=f.data||f.spriteData;return this._validateStretch(f.stretchX,b&&b.width)||(this.fire(new s.j(new Error(`Image \"${l}\" has invalid \"stretchX\" value`))),v=!1),this._validateStretch(f.stretchY,b&&b.height)||(this.fire(new s.j(new Error(`Image \"${l}\" has invalid \"stretchY\" value`))),v=!1),this._validateContent(f.content,f)||(this.fire(new s.j(new Error(`Image \"${l}\" has invalid \"content\" value`))),v=!1),v}_validateStretch(l,f){if(!l)return!0;let v=0;for(let b of l){if(b[0]{let b=!0;if(!this.isLoaded())for(let M of l)this.images[M]||(b=!1);this.isLoaded()||b?f(this._getImagesForIds(l)):this.requestors.push({ids:l,promiseResolve:f})})}_getImagesForIds(l){let f={};for(let v of l){let b=this.getImage(v);b||(this.fire(new s.k(\"styleimagemissing\",{id:v})),b=this.getImage(v)),b?f[v]={data:b.data.clone(),pixelRatio:b.pixelRatio,sdf:b.sdf,version:b.version,stretchX:b.stretchX,stretchY:b.stretchY,content:b.content,hasRenderCallback:!!(b.userImage&&b.userImage.render)}:s.w(`Image \"${v}\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.`)}return f}getPixelSize(){let{width:l,height:f}=this.atlasImage;return{width:l,height:f}}getPattern(l){let f=this.patterns[l],v=this.getImage(l);if(!v)return null;if(f&&f.position.version===v.version)return f.position;if(f)f.position.version=v.version;else{let b={w:v.data.width+2,h:v.data.height+2,x:0,y:0},M=new s.I(b,v);this.patterns[l]={bin:b,position:M}}return this._updatePatternAtlas(),this.patterns[l].position}bind(l){let f=l.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new ae(l,this.atlasImage,f.RGBA),this.atlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE)}_updatePatternAtlas(){let l=[];for(let M in this.patterns)l.push(this.patterns[M].bin);let{w:f,h:v}=s.p(l),b=this.atlasImage;b.resize({width:f||1,height:v||1});for(let M in this.patterns){let{bin:O}=this.patterns[M],F=O.x+1,U=O.y+1,W=this.getImage(M).data,$=W.width,X=W.height;s.R.copy(W,b,{x:0,y:0},{x:F,y:U},{width:$,height:X}),s.R.copy(W,b,{x:0,y:X-1},{x:F,y:U-1},{width:$,height:1}),s.R.copy(W,b,{x:0,y:0},{x:F,y:U+X},{width:$,height:1}),s.R.copy(W,b,{x:$-1,y:0},{x:F-1,y:U},{width:1,height:X}),s.R.copy(W,b,{x:0,y:0},{x:F+$,y:U},{width:1,height:X})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(l){for(let f of l){if(this.callbackDispatchedThisFrame[f])continue;this.callbackDispatchedThisFrame[f]=!0;let v=this.getImage(f);v||s.w(`Image with ID: \"${f}\" was not found`),Le(v)&&this.updateImage(f,v)}}}let lr=1e20;function Cr(T,l,f,v,b,M,O,F,U){for(let W=l;W-1);U++,M[U]=F,O[U]=W,O[U+1]=lr}for(let F=0,U=0;F65535)throw new Error(\"glyphs > 65535 not supported\");if(v.ranges[M])return{stack:l,id:f,glyph:b};if(!this.url)throw new Error(\"glyphsUrl is not set\");if(!v.requests[M]){let F=Fs.loadGlyphRange(l,M,this.url,this.requestManager);v.requests[M]=F}let O=yield v.requests[M];for(let F in O)this._doesCharSupportLocalGlyph(+F)||(v.glyphs[+F]=O[+F]);return v.ranges[M]=!0,{stack:l,id:f,glyph:O[f]||null}})}_doesCharSupportLocalGlyph(l){return!!this.localIdeographFontFamily&&(s.u[\"CJK Unified Ideographs\"](l)||s.u[\"Hangul Syllables\"](l)||s.u.Hiragana(l)||s.u.Katakana(l))}_tinySDF(l,f,v){let b=this.localIdeographFontFamily;if(!b||!this._doesCharSupportLocalGlyph(v))return;let M=l.tinySDF;if(!M){let F=\"400\";/bold/i.test(f)?F=\"900\":/medium/i.test(f)?F=\"500\":/light/i.test(f)&&(F=\"200\"),M=l.tinySDF=new Fs.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:b,fontWeight:F})}let O=M.draw(String.fromCharCode(v));return{id:v,bitmap:new s.o({width:O.width||60,height:O.height||60},O.data),metrics:{width:O.glyphWidth/2||24,height:O.glyphHeight/2||24,left:O.glyphLeft/2+.5||0,top:O.glyphTop/2-27.5||-8,advance:O.glyphAdvance/2||24,isDoubleResolution:!0}}}}Fs.loadGlyphRange=function(T,l,f,v){return s._(this,void 0,void 0,function*(){let b=256*l,M=b+255,O=v.transformRequest(f.replace(\"{fontstack}\",T).replace(\"{range}\",`${b}-${M}`),K.Glyphs),F=yield s.l(O,new AbortController);if(!F||!F.data)throw new Error(`Could not load glyph range. range: ${l}, ${b}-${M}`);let U={};for(let W of s.n(F.data))U[W.id]=W;return U})},Fs.TinySDF=class{constructor({fontSize:T=24,buffer:l=3,radius:f=8,cutoff:v=.25,fontFamily:b=\"sans-serif\",fontWeight:M=\"normal\",fontStyle:O=\"normal\"}={}){this.buffer=l,this.cutoff=v,this.radius=f;let F=this.size=T+4*l,U=this._createCanvas(F),W=this.ctx=U.getContext(\"2d\",{willReadFrequently:!0});W.font=`${O} ${M} ${T}px ${b}`,W.textBaseline=\"alphabetic\",W.textAlign=\"left\",W.fillStyle=\"black\",this.gridOuter=new Float64Array(F*F),this.gridInner=new Float64Array(F*F),this.f=new Float64Array(F),this.z=new Float64Array(F+1),this.v=new Uint16Array(F)}_createCanvas(T){let l=document.createElement(\"canvas\");return l.width=l.height=T,l}draw(T){let{width:l,actualBoundingBoxAscent:f,actualBoundingBoxDescent:v,actualBoundingBoxLeft:b,actualBoundingBoxRight:M}=this.ctx.measureText(T),O=Math.ceil(f),F=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(M-b))),U=Math.min(this.size-this.buffer,O+Math.ceil(v)),W=F+2*this.buffer,$=U+2*this.buffer,X=Math.max(W*$,0),at=new Uint8ClampedArray(X),gt={data:at,width:W,height:$,glyphWidth:F,glyphHeight:U,glyphTop:O,glyphLeft:0,glyphAdvance:l};if(F===0||U===0)return gt;let{ctx:_t,buffer:yt,gridInner:At,gridOuter:kt}=this;_t.clearRect(yt,yt,F,U),_t.fillText(T,yt,yt+O);let Wt=_t.getImageData(yt,yt,F,U);kt.fill(lr,0,X),At.fill(0,0,X);for(let St=0;St0?ne*ne:0,At[Ht]=ne<0?ne*ne:0}}Cr(kt,0,0,W,$,W,this.f,this.v,this.z),Cr(At,yt,yt,F,U,W,this.f,this.v,this.z);for(let St=0;St1&&(U=l[++F]);let $=Math.abs(W-U.left),X=Math.abs(W-U.right),at=Math.min($,X),gt,_t=M/v*(b+1);if(U.isDash){let yt=b-Math.abs(_t);gt=Math.sqrt(at*at+yt*yt)}else gt=b-Math.sqrt(at*at+_t*_t);this.data[O+W]=Math.max(0,Math.min(255,gt+128))}}}addRegularDash(l){for(let F=l.length-1;F>=0;--F){let U=l[F],W=l[F+1];U.zeroLength?l.splice(F,1):W&&W.isDash===U.isDash&&(W.left=U.left,l.splice(F,1))}let f=l[0],v=l[l.length-1];f.isDash===v.isDash&&(f.left=v.left-this.width,v.right=f.right+this.width);let b=this.width*this.nextRow,M=0,O=l[M];for(let F=0;F1&&(O=l[++M]);let U=Math.abs(F-O.left),W=Math.abs(F-O.right),$=Math.min(U,W);this.data[b+F]=Math.max(0,Math.min(255,(O.isDash?$:-$)+128))}}addDash(l,f){let v=f?7:0,b=2*v+1;if(this.nextRow+b>this.height)return s.w(\"LineAtlas out of space\"),null;let M=0;for(let F=0;F{f.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[_o]}numActive(){return Object.keys(this.active).length}}let sl=Math.floor(_.hardwareConcurrency/2),Ia,Uo;function Ci(){return Ia||(Ia=new oa),Ia}oa.workerCount=s.B(globalThis)?Math.max(Math.min(sl,3),1):1;class yo{constructor(l,f){this.workerPool=l,this.actors=[],this.currentActor=0,this.id=f;let v=this.workerPool.acquire(f);for(let b=0;b{f.remove()}),this.actors=[],l&&this.workerPool.release(this.id)}registerMessageHandler(l,f){for(let v of this.actors)v.registerMessageHandler(l,f)}}function Oi(){return Uo||(Uo=new yo(Ci(),s.G),Uo.registerMessageHandler(\"getResource\",(T,l,f)=>s.m(l,f))),Uo}function ls(T,l){let f=s.F();return s.H(f,f,[1,1,0]),s.J(f,f,[.5*T.width,.5*T.height,1]),s.K(f,f,T.calculatePosMatrix(l.toUnwrapped()))}function Vo(T,l,f,v,b,M){let O=function(X,at,gt){if(X)for(let _t of X){let yt=at[_t];if(yt&&yt.source===gt&&yt.type===\"fill-extrusion\")return!0}else for(let _t in at){let yt=at[_t];if(yt.source===gt&&yt.type===\"fill-extrusion\")return!0}return!1}(b&&b.layers,l,T.id),F=M.maxPitchScaleFactor(),U=T.tilesIn(v,F,O);U.sort(jo);let W=[];for(let X of U)W.push({wrappedTileID:X.tileID.wrapped().key,queryResults:X.tile.queryRenderedFeatures(l,f,T._state,X.queryGeometry,X.cameraQueryGeometry,X.scale,b,M,F,ls(T.transform,X.tileID))});let $=function(X){let at={},gt={};for(let _t of X){let yt=_t.queryResults,At=_t.wrappedTileID,kt=gt[At]=gt[At]||{};for(let Wt in yt){let St=yt[Wt],Nt=kt[Wt]=kt[Wt]||{},Zt=at[Wt]=at[Wt]||[];for(let Ht of St)Nt[Ht.featureIndex]||(Nt[Ht.featureIndex]=!0,Zt.push(Ht))}}return at}(W);for(let X in $)$[X].forEach(at=>{let gt=at.feature,_t=T.getFeatureState(gt.layer[\"source-layer\"],gt.id);gt.source=gt.layer.source,gt.layer[\"source-layer\"]&&(gt.sourceLayer=gt.layer[\"source-layer\"]),gt.state=_t});return $}function jo(T,l){let f=T.tileID,v=l.tileID;return f.overscaledZ-v.overscaledZ||f.canonical.y-v.canonical.y||f.wrap-v.wrap||f.canonical.x-v.canonical.x}function Go(T,l,f){return s._(this,void 0,void 0,function*(){let v=T;if(T.url?v=(yield s.h(l.transformRequest(T.url,K.Source),f)).data:yield _.frameAsync(f),!v)return null;let b=s.L(s.e(v,T),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);return\"vector_layers\"in v&&v.vector_layers&&(b.vectorLayerIds=v.vector_layers.map(M=>M.id)),b})}class an{constructor(l,f){l&&(f?this.setSouthWest(l).setNorthEast(f):Array.isArray(l)&&(l.length===4?this.setSouthWest([l[0],l[1]]).setNorthEast([l[2],l[3]]):this.setSouthWest(l[0]).setNorthEast(l[1])))}setNorthEast(l){return this._ne=l instanceof s.M?new s.M(l.lng,l.lat):s.M.convert(l),this}setSouthWest(l){return this._sw=l instanceof s.M?new s.M(l.lng,l.lat):s.M.convert(l),this}extend(l){let f=this._sw,v=this._ne,b,M;if(l instanceof s.M)b=l,M=l;else{if(!(l instanceof an))return Array.isArray(l)?l.length===4||l.every(Array.isArray)?this.extend(an.convert(l)):this.extend(s.M.convert(l)):l&&(\"lng\"in l||\"lon\"in l)&&\"lat\"in l?this.extend(s.M.convert(l)):this;if(b=l._sw,M=l._ne,!b||!M)return this}return f||v?(f.lng=Math.min(b.lng,f.lng),f.lat=Math.min(b.lat,f.lat),v.lng=Math.max(M.lng,v.lng),v.lat=Math.max(M.lat,v.lat)):(this._sw=new s.M(b.lng,b.lat),this._ne=new s.M(M.lng,M.lat)),this}getCenter(){return new s.M((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new s.M(this.getWest(),this.getNorth())}getSouthEast(){return new s.M(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(l){let{lng:f,lat:v}=s.M.convert(l),b=this._sw.lng<=f&&f<=this._ne.lng;return this._sw.lng>this._ne.lng&&(b=this._sw.lng>=f&&f>=this._ne.lng),this._sw.lat<=v&&v<=this._ne.lat&&b}static convert(l){return l instanceof an?l:l&&new an(l)}static fromLngLat(l,f=0){let v=360*f/40075017,b=v/Math.cos(Math.PI/180*l.lat);return new an(new s.M(l.lng-b,l.lat-v),new s.M(l.lng+b,l.lat+v))}}class aa{constructor(l,f,v){this.bounds=an.convert(this.validateBounds(l)),this.minzoom=f||0,this.maxzoom=v||24}validateBounds(l){return Array.isArray(l)&&l.length===4?[Math.max(-180,l[0]),Math.max(-90,l[1]),Math.min(180,l[2]),Math.min(90,l[3])]:[-180,-90,180,90]}contains(l){let f=Math.pow(2,l.z),v=Math.floor(s.N(this.bounds.getWest())*f),b=Math.floor(s.O(this.bounds.getNorth())*f),M=Math.ceil(s.N(this.bounds.getEast())*f),O=Math.ceil(s.O(this.bounds.getSouth())*f);return l.x>=v&&l.x=b&&l.y{this._options.tiles=l}),this}setUrl(l){return this.setSourceProperty(()=>{this.url=l,this._options.url=l}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return s.e({},this._options)}loadTile(l){return s._(this,void 0,void 0,function*(){let f=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),v={request:this.map._requestManager.transformRequest(f,K.Tile),uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,tileSize:this.tileSize*l.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};v.request.collectResourceTiming=this._collectResourceTiming;let b=\"reloadTile\";if(l.actor&&l.state!==\"expired\"){if(l.state===\"loading\")return new Promise((M,O)=>{l.reloadPromise={resolve:M,reject:O}})}else l.actor=this.dispatcher.getActor(),b=\"loadTile\";l.abortController=new AbortController;try{let M=yield l.actor.sendAsync({type:b,data:v},l.abortController);if(delete l.abortController,l.aborted)return;this._afterTileLoadWorkerResponse(l,M)}catch(M){if(delete l.abortController,l.aborted)return;if(M&&M.status!==404)throw M;this._afterTileLoadWorkerResponse(l,null)}})}_afterTileLoadWorkerResponse(l,f){if(f&&f.resourceTiming&&(l.resourceTiming=f.resourceTiming),f&&this.map._refreshExpiredTiles&&l.setExpiryData(f),l.loadVectorData(f,this.map.painter),l.reloadPromise){let v=l.reloadPromise;l.reloadPromise=null,this.loadTile(l).then(v.resolve).catch(v.reject)}}abortTile(l){return s._(this,void 0,void 0,function*(){l.abortController&&(l.abortController.abort(),delete l.abortController),l.actor&&(yield l.actor.sendAsync({type:\"abortTile\",data:{uid:l.uid,type:this.type,source:this.id}}))})}unloadTile(l){return s._(this,void 0,void 0,function*(){l.unloadVectorData(),l.actor&&(yield l.actor.sendAsync({type:\"removeTile\",data:{uid:l.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class vo extends s.E{constructor(l,f,v,b){super(),this.id=l,this.dispatcher=v,this.setEventedParent(b),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=s.e({type:\"raster\"},f),s.e(this,s.L(f,[\"url\",\"scheme\",\"tileSize\"]))}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=new AbortController;try{let l=yield Go(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,l&&(s.e(this,l),l.bounds&&(this.tileBounds=new aa(l.bounds,this.minzoom,this.maxzoom)),this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))}catch(l){this._tileJSONRequest=null,this.fire(new s.j(l))}})}loaded(){return this._loaded}onAdd(l){this.map=l,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(l){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}serialize(){return s.e({},this._options)}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}loadTile(l){return s._(this,void 0,void 0,function*(){let f=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);l.abortController=new AbortController;try{let v=yield Z.getImage(this.map._requestManager.transformRequest(f,K.Tile),l.abortController,this.map._refreshExpiredTiles);if(delete l.abortController,l.aborted)return void(l.state=\"unloaded\");if(v&&v.data){this.map._refreshExpiredTiles&&v.cacheControl&&v.expires&&l.setExpiryData({cacheControl:v.cacheControl,expires:v.expires});let b=this.map.painter.context,M=b.gl,O=v.data;l.texture=this.map.painter.getTileTexture(O.width),l.texture?l.texture.update(O,{useMipmap:!0}):(l.texture=new ae(b,O,M.RGBA,{useMipmap:!0}),l.texture.bind(M.LINEAR,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST),b.extTextureFilterAnisotropic&&M.texParameterf(M.TEXTURE_2D,b.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,b.extTextureFilterAnisotropicMax)),l.state=\"loaded\"}}catch(v){if(delete l.abortController,l.aborted)l.state=\"unloaded\";else if(v)throw l.state=\"errored\",v}})}abortTile(l){return s._(this,void 0,void 0,function*(){l.abortController&&(l.abortController.abort(),delete l.abortController)})}unloadTile(l){return s._(this,void 0,void 0,function*(){l.texture&&this.map.painter.saveTileTexture(l.texture)})}hasTransition(){return!1}}class hu extends vo{constructor(l,f,v,b){super(l,f,v,b),this.type=\"raster-dem\",this.maxzoom=22,this._options=s.e({type:\"raster-dem\"},f),this.encoding=f.encoding||\"mapbox\",this.redFactor=f.redFactor,this.greenFactor=f.greenFactor,this.blueFactor=f.blueFactor,this.baseShift=f.baseShift}loadTile(l){return s._(this,void 0,void 0,function*(){let f=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),v=this.map._requestManager.transformRequest(f,K.Tile);l.neighboringTiles=this._getNeighboringTiles(l.tileID),l.abortController=new AbortController;try{let b=yield Z.getImage(v,l.abortController,this.map._refreshExpiredTiles);if(delete l.abortController,l.aborted)return void(l.state=\"unloaded\");if(b&&b.data){let M=b.data;this.map._refreshExpiredTiles&&b.cacheControl&&b.expires&&l.setExpiryData({cacheControl:b.cacheControl,expires:b.expires});let O=s.b(M)&&s.S()?M:yield this.readImageNow(M),F={type:this.type,uid:l.uid,source:this.id,rawImageData:O,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!l.actor||l.state===\"expired\"){l.actor=this.dispatcher.getActor();let U=yield l.actor.sendAsync({type:\"loadDEMTile\",data:F});l.dem=U,l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0,l.state=\"loaded\"}}}catch(b){if(delete l.abortController,l.aborted)l.state=\"unloaded\";else if(b)throw l.state=\"errored\",b}})}readImageNow(l){return s._(this,void 0,void 0,function*(){if(typeof VideoFrame<\"u\"&&s.U()){let f=l.width+2,v=l.height+2;try{return new s.R({width:f,height:v},yield s.V(l,-1,-1,f,v))}catch{}}return _.getImageData(l,1)})}_getNeighboringTiles(l){let f=l.canonical,v=Math.pow(2,f.z),b=(f.x-1+v)%v,M=f.x===0?l.wrap-1:l.wrap,O=(f.x+1+v)%v,F=f.x+1===v?l.wrap+1:l.wrap,U={};return U[new s.Q(l.overscaledZ,M,f.z,b,f.y).key]={backfilled:!1},U[new s.Q(l.overscaledZ,F,f.z,O,f.y).key]={backfilled:!1},f.y>0&&(U[new s.Q(l.overscaledZ,M,f.z,b,f.y-1).key]={backfilled:!1},U[new s.Q(l.overscaledZ,l.wrap,f.z,f.x,f.y-1).key]={backfilled:!1},U[new s.Q(l.overscaledZ,F,f.z,O,f.y-1).key]={backfilled:!1}),f.y+10&&s.e(M,{resourceTiming:b}),this.fire(new s.k(\"data\",Object.assign(Object.assign({},M),{sourceDataType:\"metadata\"}))),this.fire(new s.k(\"data\",Object.assign(Object.assign({},M),{sourceDataType:\"content\"})))}catch(v){if(this._pendingLoads--,this._removed)return void this.fire(new s.k(\"dataabort\",{dataType:\"source\"}));this.fire(new s.j(v))}})}loaded(){return this._pendingLoads===0}loadTile(l){return s._(this,void 0,void 0,function*(){let f=l.actor?\"reloadTile\":\"loadTile\";l.actor=this.actor;let v={type:this.type,uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};l.abortController=new AbortController;let b=yield this.actor.sendAsync({type:f,data:v},l.abortController);delete l.abortController,l.unloadVectorData(),l.aborted||l.loadVectorData(b,this.map.painter,f===\"reloadTile\")})}abortTile(l){return s._(this,void 0,void 0,function*(){l.abortController&&(l.abortController.abort(),delete l.abortController),l.aborted=!0})}unloadTile(l){return s._(this,void 0,void 0,function*(){l.unloadVectorData(),yield this.actor.sendAsync({type:\"removeTile\",data:{uid:l.uid,type:this.type,source:this.id}})})}onRemove(){this._removed=!0,this.actor.sendAsync({type:\"removeSource\",data:{type:this.type,source:this.id}})}serialize(){return s.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}var In=s.X([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class xn extends s.E{constructor(l,f,v,b){super(),this.id=l,this.dispatcher=v,this.coordinates=f.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(b),this.options=f}load(l){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.k(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,this._request=new AbortController;try{let f=yield Z.getImage(this.map._requestManager.transformRequest(this.url,K.Image),this._request);this._request=null,this._loaded=!0,f&&f.data&&(this.image=f.data,l&&(this.coordinates=l),this._finishLoading())}catch(f){this._request=null,this.fire(new s.j(f))}})}loaded(){return this._loaded}updateImage(l){return l.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=l.url,this.load(l.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})))}onAdd(l){this.map=l,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(l){this.coordinates=l;let f=l.map(s.Y.fromLngLat);this.tileID=function(b){let M=1/0,O=1/0,F=-1/0,U=-1/0;for(let at of b)M=Math.min(M,at.x),O=Math.min(O,at.y),F=Math.max(F,at.x),U=Math.max(U,at.y);let W=Math.max(F-M,U-O),$=Math.max(0,Math.floor(-Math.log(W)/Math.LN2)),X=Math.pow(2,$);return new s.a0($,Math.floor((M+F)/2*X),Math.floor((O+U)/2*X))}(f),this.minzoom=this.maxzoom=this.tileID.z;let v=f.map(b=>this.tileID.getTilePoint(b)._round());return this._boundsArray=new s.Z,this._boundsArray.emplaceBack(v[0].x,v[0].y,0,0),this._boundsArray.emplaceBack(v[1].x,v[1].y,s.W,0),this._boundsArray.emplaceBack(v[3].x,v[3].y,0,s.W),this._boundsArray.emplaceBack(v[2].x,v[2].y,s.W,s.W),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;let l=this.map.painter.context,f=l.gl;this.boundsBuffer||(this.boundsBuffer=l.createVertexBuffer(this._boundsArray,In.members)),this.boundsSegments||(this.boundsSegments=s.$.simpleSegment(0,0,4,2)),this.texture||(this.texture=new ae(l,this.image,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let v=!1;for(let b in this.tiles){let M=this.tiles[b];M.state!==\"loaded\"&&(M.state=\"loaded\",M.texture=this.texture,v=!0)}v&&this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))}loadTile(l){return s._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(l.tileID.canonical)?(this.tiles[String(l.tileID.wrap)]=l,l.buckets={}):l.state=\"errored\"})}serialize(){return{type:\"image\",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class Wo extends xn{constructor(l,f,v,b){super(l,f,v,b),this.roundZoom=!0,this.type=\"video\",this.options=f}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1;let l=this.options;this.urls=[];for(let f of l.urls)this.urls.push(this.map._requestManager.transformRequest(f,K.Source).url);try{let f=yield s.a2(this.urls);if(this._loaded=!0,!f)return;this.video=f,this.video.loop=!0,this.video.addEventListener(\"playing\",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(f){this.fire(new s.j(f))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(l){if(this.video){let f=this.video.seekable;lf.end(0)?this.fire(new s.j(new s.a1(`sources.${this.id}`,null,`Playback for this video can be set only between the ${f.start(0)} and ${f.end(0)}-second mark.`))):this.video.currentTime=l}}getVideo(){return this.video}onAdd(l){this.map||(this.map=l,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let l=this.map.painter.context,f=l.gl;this.boundsBuffer||(this.boundsBuffer=l.createVertexBuffer(this._boundsArray,In.members)),this.boundsSegments||(this.boundsSegments=s.$.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE),f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,this.video)):(this.texture=new ae(l,this.video,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let v=!1;for(let b in this.tiles){let M=this.tiles[b];M.state!==\"loaded\"&&(M.state=\"loaded\",M.texture=this.texture,v=!0)}v&&this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))}serialize(){return{type:\"video\",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class Dl extends xn{constructor(l,f,v,b){super(l,f,v,b),f.coordinates?Array.isArray(f.coordinates)&&f.coordinates.length===4&&!f.coordinates.some(M=>!Array.isArray(M)||M.length!==2||M.some(O=>typeof O!=\"number\"))||this.fire(new s.j(new s.a1(`sources.${l}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.j(new s.a1(`sources.${l}`,null,'missing required property \"coordinates\"'))),f.animate&&typeof f.animate!=\"boolean\"&&this.fire(new s.j(new s.a1(`sources.${l}`,null,'optional \"animate\" property must be a boolean value'))),f.canvas?typeof f.canvas==\"string\"||f.canvas instanceof HTMLCanvasElement||this.fire(new s.j(new s.a1(`sources.${l}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new s.j(new s.a1(`sources.${l}`,null,'missing required property \"canvas\"'))),this.options=f,this.animate=f.animate===void 0||f.animate}load(){return s._(this,void 0,void 0,function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())})}getCanvas(){return this.canvas}onAdd(l){this.map=l,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let l=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,l=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,l=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let f=this.map.painter.context,v=f.gl;this.boundsBuffer||(this.boundsBuffer=f.createVertexBuffer(this._boundsArray,In.members)),this.boundsSegments||(this.boundsSegments=s.$.simpleSegment(0,0,4,2)),this.texture?(l||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new ae(f,this.canvas,v.RGBA,{premultiply:!0});let b=!1;for(let M in this.tiles){let O=this.tiles[M];O.state!==\"loaded\"&&(O.state=\"loaded\",O.texture=this.texture,b=!0)}b&&this.fire(new s.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))}serialize(){return{type:\"canvas\",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let l of[this.canvas.width,this.canvas.height])if(isNaN(l)||l<=0)return!0;return!1}}let Ca={},Tc=T=>{switch(T){case\"geojson\":return ti;case\"image\":return xn;case\"raster\":return vo;case\"raster-dem\":return hu;case\"vector\":return Jt;case\"video\":return Wo;case\"canvas\":return Dl}return Ca[T]};class hf extends s.E{constructor(){super(...arguments),this.pluginStatus=\"unavailable\",this.pluginURL=null,this.dispatcher=Oi(),this.queue=[]}_sendPluginStateToWorker(){return s._(this,void 0,void 0,function*(){yield this.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}),this.fire(new s.k(\"pluginStateChange\",{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}))})}getRTLTextPluginStatus(){return this.pluginStatus}clearRTLTextPlugin(){this.pluginStatus=\"unavailable\",this.pluginURL=null}setRTLTextPlugin(l,f=!1){return s._(this,void 0,void 0,function*(){if(this.pluginStatus===\"deferred\"||this.pluginStatus===\"loading\"||this.pluginStatus===\"loaded\")throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");this.pluginURL=_.resolveURL(l),this.pluginStatus=\"deferred\",yield this._sendPluginStateToWorker(),f||(yield this._downloadRTLTextPlugin())})}_downloadRTLTextPlugin(){return s._(this,void 0,void 0,function*(){if(this.pluginStatus!==\"deferred\"||!this.pluginURL)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");try{this.pluginStatus=\"loading\",yield this._sendPluginStateToWorker(),yield s.l({url:this.pluginURL},new AbortController),this.pluginStatus=\"loaded\"}catch{this.pluginStatus=\"error\"}yield this._sendPluginStateToWorker()})}lazyLoadRTLTextPlugin(){return s._(this,void 0,void 0,function*(){this.pluginStatus===\"deferred\"&&(yield this._downloadRTLTextPlugin())})}}let Ts=null;function Ae(){return Ts||(Ts=new hf),Ts}class Ho{constructor(l,f){this.timeAdded=0,this.fadeEndTime=0,this.tileID=l,this.uid=s.a3(),this.uses=0,this.tileSize=f,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state=\"loading\"}registerFadeDuration(l){let f=l+this.timeAdded;fM.getLayer(W)).filter(Boolean);if(U.length!==0){F.layers=U,F.stateDependentLayerIds&&(F.stateDependentLayers=F.stateDependentLayerIds.map(W=>U.filter($=>$.id===W)[0]));for(let W of U)O[W.id]=F}}return O}(l.buckets,f.style),this.hasSymbolBuckets=!1;for(let b in this.buckets){let M=this.buckets[b];if(M instanceof s.a5){if(this.hasSymbolBuckets=!0,!v)break;M.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let b in this.buckets){let M=this.buckets[b];if(M instanceof s.a5&&M.hasRTLText){this.hasRTLText=!0,Ae().lazyLoadRTLTextPlugin();break}}this.queryPadding=0;for(let b in this.buckets){let M=this.buckets[b];this.queryPadding=Math.max(this.queryPadding,f.style.getLayer(b).queryRadius(M))}l.imageAtlas&&(this.imageAtlas=l.imageAtlas),l.glyphAtlasImage&&(this.glyphAtlasImage=l.glyphAtlasImage)}else this.collisionBoxArray=new s.a4}unloadVectorData(){for(let l in this.buckets)this.buckets[l].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\"}getBucket(l){return this.buckets[l.id]}upload(l){for(let v in this.buckets){let b=this.buckets[v];b.uploadPending()&&b.upload(l)}let f=l.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new ae(l,this.imageAtlas.image,f.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new ae(l,this.glyphAtlasImage,f.ALPHA),this.glyphAtlasImage=null)}prepare(l){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(l,this.imageAtlasTexture)}queryRenderedFeatures(l,f,v,b,M,O,F,U,W,$){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:b,cameraQueryGeometry:M,scale:O,tileSize:this.tileSize,pixelPosMatrix:$,transform:U,params:F,queryPadding:this.queryPadding*W},l,f,v):{}}querySourceFeatures(l,f){let v=this.latestFeatureIndex;if(!v||!v.rawTileData)return;let b=v.loadVTLayers(),M=f&&f.sourceLayer?f.sourceLayer:\"\",O=b._geojsonTileLayer||b[M];if(!O)return;let F=s.a6(f&&f.filter),{z:U,x:W,y:$}=this.tileID.canonical,X={z:U,x:W,y:$};for(let at=0;atv)b=!1;else if(f)if(this.expirationTime{this.remove(l,M)},v)),this.data[b].push(M),this.order.push(b),this.order.length>this.max){let O=this._getAndRemoveByKey(this.order[0]);O&&this.onRemove(O)}return this}has(l){return l.wrapped().key in this.data}getAndRemove(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null}_getAndRemoveByKey(l){let f=this.data[l].shift();return f.timeout&&clearTimeout(f.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),f.value}getByKey(l){let f=this.data[l];return f?f[0].value:null}get(l){return this.has(l)?this.data[l.wrapped().key][0].value:null}remove(l,f){if(!this.has(l))return this;let v=l.wrapped().key,b=f===void 0?0:this.data[v].indexOf(f),M=this.data[v][b];return this.data[v].splice(b,1),M.timeout&&clearTimeout(M.timeout),this.data[v].length===0&&delete this.data[v],this.onRemove(M.value),this.order.splice(this.order.indexOf(v),1),this}setMaxSize(l){for(this.max=l;this.order.length>this.max;){let f=this._getAndRemoveByKey(this.order[0]);f&&this.onRemove(f)}return this}filter(l){let f=[];for(let v in this.data)for(let b of this.data[v])l(b.value)||f.push(b);for(let v of f)this.remove(v.value.tileID,v)}}class La{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(l,f,v){let b=String(f);if(this.stateChanges[l]=this.stateChanges[l]||{},this.stateChanges[l][b]=this.stateChanges[l][b]||{},s.e(this.stateChanges[l][b],v),this.deletedStates[l]===null){this.deletedStates[l]={};for(let M in this.state[l])M!==b&&(this.deletedStates[l][M]=null)}else if(this.deletedStates[l]&&this.deletedStates[l][b]===null){this.deletedStates[l][b]={};for(let M in this.state[l][b])v[M]||(this.deletedStates[l][b][M]=null)}else for(let M in v)this.deletedStates[l]&&this.deletedStates[l][b]&&this.deletedStates[l][b][M]===null&&delete this.deletedStates[l][b][M]}removeFeatureState(l,f,v){if(this.deletedStates[l]===null)return;let b=String(f);if(this.deletedStates[l]=this.deletedStates[l]||{},v&&f!==void 0)this.deletedStates[l][b]!==null&&(this.deletedStates[l][b]=this.deletedStates[l][b]||{},this.deletedStates[l][b][v]=null);else if(f!==void 0)if(this.stateChanges[l]&&this.stateChanges[l][b])for(v in this.deletedStates[l][b]={},this.stateChanges[l][b])this.deletedStates[l][b][v]=null;else this.deletedStates[l][b]=null;else this.deletedStates[l]=null}getState(l,f){let v=String(f),b=s.e({},(this.state[l]||{})[v],(this.stateChanges[l]||{})[v]);if(this.deletedStates[l]===null)return{};if(this.deletedStates[l]){let M=this.deletedStates[l][f];if(M===null)return{};for(let O in M)delete b[O]}return b}initializeTileState(l,f){l.setFeatureState(this.state,f)}coalesceChanges(l,f){let v={};for(let b in this.stateChanges){this.state[b]=this.state[b]||{};let M={};for(let O in this.stateChanges[b])this.state[b][O]||(this.state[b][O]={}),s.e(this.state[b][O],this.stateChanges[b][O]),M[O]=this.state[b][O];v[b]=M}for(let b in this.deletedStates){this.state[b]=this.state[b]||{};let M={};if(this.deletedStates[b]===null)for(let O in this.state[b])M[O]={},this.state[b][O]={};else for(let O in this.deletedStates[b]){if(this.deletedStates[b][O]===null)this.state[b][O]={};else for(let F of Object.keys(this.deletedStates[b][O]))delete this.state[b][O][F];M[O]=this.state[b][O]}v[b]=v[b]||{},s.e(v[b],M)}if(this.stateChanges={},this.deletedStates={},Object.keys(v).length!==0)for(let b in l)l[b].setFeatureState(v,f)}}class ts extends s.E{constructor(l,f,v){super(),this.id=l,this.dispatcher=v,this.on(\"data\",b=>{b.dataType===\"source\"&&b.sourceDataType===\"metadata\"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&b.dataType===\"source\"&&b.sourceDataType===\"content\"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on(\"dataloading\",()=>{this._sourceErrored=!1}),this.on(\"error\",()=>{this._sourceErrored=this._source.loaded()}),this._source=((b,M,O,F)=>{let U=new(Tc(M.type))(b,M,O,F);if(U.id!==b)throw new Error(`Expected Source id to be ${b} instead of ${U.id}`);return U})(l,f,v,this),this._tiles={},this._cache=new Vn(0,b=>this._unloadTile(b)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new La,this._didEmitContent=!1,this._updated=!1}onAdd(l){this.map=l,this._maxTileCacheSize=l?l._maxTileCacheSize:null,this._maxTileCacheZoomLevels=l?l._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(l)}onRemove(l){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(l)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(let l in this._tiles){let f=this._tiles[l];if(f.state!==\"loaded\"&&f.state!==\"errored\")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let l=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,l&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(l,f,v){return s._(this,void 0,void 0,function*(){try{yield this._source.loadTile(l),this._tileLoaded(l,f,v)}catch(b){l.state=\"errored\",b.status!==404?this._source.fire(new s.j(b,{tile:l})):this.update(this.transform,this.terrain)}})}_unloadTile(l){this._source.unloadTile&&this._source.unloadTile(l)}_abortTile(l){this._source.abortTile&&this._source.abortTile(l),this._source.fire(new s.k(\"dataabort\",{tile:l,coord:l.tileID,dataType:\"source\"}))}serialize(){return this._source.serialize()}prepare(l){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(let f in this._tiles){let v=this._tiles[f];v.upload(l),v.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(l=>l.tileID).sort(be).map(l=>l.key)}getRenderableIds(l){let f=[];for(let v in this._tiles)this._isIdRenderable(v,l)&&f.push(this._tiles[v]);return l?f.sort((v,b)=>{let M=v.tileID,O=b.tileID,F=new s.P(M.canonical.x,M.canonical.y)._rotate(this.transform.angle),U=new s.P(O.canonical.x,O.canonical.y)._rotate(this.transform.angle);return M.overscaledZ-O.overscaledZ||U.y-F.y||U.x-F.x}).map(v=>v.tileID.key):f.map(v=>v.tileID).sort(be).map(v=>v.key)}hasRenderableParent(l){let f=this.findLoadedParent(l,0);return!!f&&this._isIdRenderable(f.tileID.key)}_isIdRenderable(l,f){return this._tiles[l]&&this._tiles[l].hasData()&&!this._coveredTiles[l]&&(f||!this._tiles[l].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let l in this._tiles)this._tiles[l].state!==\"errored\"&&this._reloadTile(l,\"reloading\")}}_reloadTile(l,f){return s._(this,void 0,void 0,function*(){let v=this._tiles[l];v&&(v.state!==\"loading\"&&(v.state=f),yield this._loadTile(v,l,f))})}_tileLoaded(l,f,v){l.timeAdded=_.now(),v===\"expired\"&&(l.refreshedUponExpiration=!0),this._setTileReloadTimer(f,l),this.getSource().type===\"raster-dem\"&&l.dem&&this._backfillDEM(l),this._state.initializeTileState(l,this.map?this.map.painter:null),l.aborted||this._source.fire(new s.k(\"data\",{dataType:\"source\",tile:l,coord:l.tileID}))}_backfillDEM(l){let f=this.getRenderableIds();for(let b=0;b1||(Math.abs(O)>1&&(Math.abs(O+U)===1?O+=U:Math.abs(O-U)===1&&(O-=U)),M.dem&&b.dem&&(b.dem.backfillBorder(M.dem,O,F),b.neighboringTiles&&b.neighboringTiles[W]&&(b.neighboringTiles[W].backfilled=!0)))}}getTile(l){return this.getTileByID(l.key)}getTileByID(l){return this._tiles[l]}_retainLoadedChildren(l,f,v,b){for(let M in this._tiles){let O=this._tiles[M];if(b[M]||!O.hasData()||O.tileID.overscaledZ<=f||O.tileID.overscaledZ>v)continue;let F=O.tileID;for(;O&&O.tileID.overscaledZ>f+1;){let W=O.tileID.scaledTo(O.tileID.overscaledZ-1);O=this._tiles[W.key],O&&O.hasData()&&(F=W)}let U=F;for(;U.overscaledZ>f;)if(U=U.scaledTo(U.overscaledZ-1),l[U.key]){b[F.key]=F;break}}}findLoadedParent(l,f){if(l.key in this._loadedParentTiles){let v=this._loadedParentTiles[l.key];return v&&v.tileID.overscaledZ>=f?v:null}for(let v=l.overscaledZ-1;v>=f;v--){let b=l.scaledTo(v),M=this._getLoadedTile(b);if(M)return M}}_getLoadedTile(l){let f=this._tiles[l.key];return f&&f.hasData()?f:this._cache.getByKey(l.wrapped().key)}updateCacheSize(l){let f=Math.ceil(l.width/this._source.tileSize)+1,v=Math.ceil(l.height/this._source.tileSize)+1,b=Math.floor(f*v*(this._maxTileCacheZoomLevels===null?s.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),M=typeof this._maxTileCacheSize==\"number\"?Math.min(this._maxTileCacheSize,b):b;this._cache.setMaxSize(M)}handleWrapJump(l){let f=Math.round((l-(this._prevLng===void 0?l:this._prevLng))/360);if(this._prevLng=l,f){let v={};for(let b in this._tiles){let M=this._tiles[b];M.tileID=M.tileID.unwrapTo(M.tileID.wrap+f),v[M.tileID.key]=M}this._tiles=v;for(let b in this._timers)clearTimeout(this._timers[b]),delete this._timers[b];for(let b in this._tiles)this._setTileReloadTimer(b,this._tiles[b])}}update(l,f){if(this.transform=l,this.terrain=f,!this._sourceLoaded||this._paused)return;let v;this.updateCacheSize(l),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?v=l.getVisibleUnwrappedCoordinates(this._source.tileID).map($=>new s.Q($.canonical.z,$.wrap,$.canonical.z,$.canonical.x,$.canonical.y)):(v=l.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:f}),this._source.hasTile&&(v=v.filter($=>this._source.hasTile($)))):v=[];let b=l.coveringZoomLevel(this._source),M=Math.max(b-ts.maxOverzooming,this._source.minzoom),O=Math.max(b+ts.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){let $={};for(let X of v)if(X.canonical.z>this._source.minzoom){let at=X.scaledTo(X.canonical.z-1);$[at.key]=at;let gt=X.scaledTo(Math.max(this._source.minzoom,Math.min(X.canonical.z,5)));$[gt.key]=gt}v=v.concat(Object.values($))}let F=v.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,F&&this.fire(new s.k(\"data\",{sourceDataType:\"idle\",dataType:\"source\",sourceId:this.id}));let U=this._updateRetainedTiles(v,b);if(Lr(this._source.type)){let $={},X={},at=Object.keys(U),gt=_.now();for(let _t of at){let yt=U[_t],At=this._tiles[_t];if(!At||At.fadeEndTime!==0&&At.fadeEndTime<=gt)continue;let kt=this.findLoadedParent(yt,M);kt&&(this._addTile(kt.tileID),$[kt.tileID.key]=kt.tileID),X[_t]=yt}this._retainLoadedChildren(X,b,O,U);for(let _t in $)U[_t]||(this._coveredTiles[_t]=!0,U[_t]=$[_t]);if(f){let _t={},yt={};for(let At of v)this._tiles[At.key].hasData()?_t[At.key]=At:yt[At.key]=At;for(let At in yt){let kt=yt[At].children(this._source.maxzoom);this._tiles[kt[0].key]&&this._tiles[kt[1].key]&&this._tiles[kt[2].key]&&this._tiles[kt[3].key]&&(_t[kt[0].key]=U[kt[0].key]=kt[0],_t[kt[1].key]=U[kt[1].key]=kt[1],_t[kt[2].key]=U[kt[2].key]=kt[2],_t[kt[3].key]=U[kt[3].key]=kt[3],delete yt[At])}for(let At in yt){let kt=this.findLoadedParent(yt[At],this._source.minzoom);if(kt){_t[kt.tileID.key]=U[kt.tileID.key]=kt.tileID;for(let Wt in _t)_t[Wt].isChildOf(kt.tileID)&&delete _t[Wt]}}for(let At in this._tiles)_t[At]||(this._coveredTiles[At]=!0)}}for(let $ in U)this._tiles[$].clearFadeHold();let W=s.ab(this._tiles,U);for(let $ of W){let X=this._tiles[$];X.hasSymbolBuckets&&!X.holdingForFade()?X.setHoldDuration(this.map._fadeDuration):X.hasSymbolBuckets&&!X.symbolFadeFinished()||this._removeTile($)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(let l in this._tiles)this._tiles[l].holdingForFade()&&this._removeTile(l)}_updateRetainedTiles(l,f){let v={},b={},M=Math.max(f-ts.maxOverzooming,this._source.minzoom),O=Math.max(f+ts.maxUnderzooming,this._source.minzoom),F={};for(let U of l){let W=this._addTile(U);v[U.key]=U,W.hasData()||fthis._source.maxzoom){let X=U.children(this._source.maxzoom)[0],at=this.getTile(X);if(at&&at.hasData()){v[X.key]=X;continue}}else{let X=U.children(this._source.maxzoom);if(v[X[0].key]&&v[X[1].key]&&v[X[2].key]&&v[X[3].key])continue}let $=W.wasRequested();for(let X=U.overscaledZ-1;X>=M;--X){let at=U.scaledTo(X);if(b[at.key])break;if(b[at.key]=!0,W=this.getTile(at),!W&&$&&(W=this._addTile(at)),W){let gt=W.hasData();if(($||gt)&&(v[at.key]=at),$=W.wasRequested(),gt)break}}}return v}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let l in this._tiles){let f=[],v,b=this._tiles[l].tileID;for(;b.overscaledZ>0;){if(b.key in this._loadedParentTiles){v=this._loadedParentTiles[b.key];break}f.push(b.key);let M=b.scaledTo(b.overscaledZ-1);if(v=this._getLoadedTile(M),v)break;b=M}for(let M of f)this._loadedParentTiles[M]=v}}_addTile(l){let f=this._tiles[l.key];if(f)return f;f=this._cache.getAndRemove(l),f&&(this._setTileReloadTimer(l.key,f),f.tileID=l,this._state.initializeTileState(f,this.map?this.map.painter:null),this._cacheTimers[l.key]&&(clearTimeout(this._cacheTimers[l.key]),delete this._cacheTimers[l.key],this._setTileReloadTimer(l.key,f)));let v=f;return f||(f=new Ho(l,this._source.tileSize*l.overscaleFactor()),this._loadTile(f,l.key,f.state)),f.uses++,this._tiles[l.key]=f,v||this._source.fire(new s.k(\"dataloading\",{tile:f,coord:f.tileID,dataType:\"source\"})),f}_setTileReloadTimer(l,f){l in this._timers&&(clearTimeout(this._timers[l]),delete this._timers[l]);let v=f.getExpiryTimeout();v&&(this._timers[l]=setTimeout(()=>{this._reloadTile(l,\"expired\"),delete this._timers[l]},v))}_removeTile(l){let f=this._tiles[l];f&&(f.uses--,delete this._tiles[l],this._timers[l]&&(clearTimeout(this._timers[l]),delete this._timers[l]),f.uses>0||(f.hasData()&&f.state!==\"reloading\"?this._cache.add(f.tileID,f,f.getExpiryTimeout()):(f.aborted=!0,this._abortTile(f),this._unloadTile(f))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let l in this._tiles)this._removeTile(l);this._cache.reset()}tilesIn(l,f,v){let b=[],M=this.transform;if(!M)return b;let O=v?M.getCameraQueryGeometry(l):l,F=l.map(_t=>M.pointCoordinate(_t,this.terrain)),U=O.map(_t=>M.pointCoordinate(_t,this.terrain)),W=this.getIds(),$=1/0,X=1/0,at=-1/0,gt=-1/0;for(let _t of U)$=Math.min($,_t.x),X=Math.min(X,_t.y),at=Math.max(at,_t.x),gt=Math.max(gt,_t.y);for(let _t=0;_t=0&&St[1].y+Wt>=0){let Nt=F.map(Ht=>At.getTilePoint(Ht)),Zt=U.map(Ht=>At.getTilePoint(Ht));b.push({tile:yt,tileID:At,queryGeometry:Nt,cameraQueryGeometry:Zt,scale:kt})}}return b}getVisibleCoordinates(l){let f=this.getRenderableIds(l).map(v=>this._tiles[v].tileID);for(let v of f)v.posMatrix=this.transform.calculatePosMatrix(v.toUnwrapped());return f}hasTransition(){if(this._source.hasTransition())return!0;if(Lr(this._source.type)){let l=_.now();for(let f in this._tiles)if(this._tiles[f].fadeEndTime>=l)return!0}return!1}setFeatureState(l,f,v){this._state.updateState(l=l||\"_geojsonTileLayer\",f,v)}removeFeatureState(l,f,v){this._state.removeFeatureState(l=l||\"_geojsonTileLayer\",f,v)}getFeatureState(l,f){return this._state.getState(l=l||\"_geojsonTileLayer\",f)}setDependencies(l,f,v){let b=this._tiles[l];b&&b.setDependencies(f,v)}reloadTilesForDependencies(l,f){for(let v in this._tiles)this._tiles[v].hasDependency(l,f)&&this._reloadTile(v,\"reloading\");this._cache.filter(v=>!v.hasDependency(l,f))}}function be(T,l){let f=Math.abs(2*T.wrap)-+(T.wrap<0),v=Math.abs(2*l.wrap)-+(l.wrap<0);return T.overscaledZ-l.overscaledZ||v-f||l.canonical.y-T.canonical.y||l.canonical.x-T.canonical.x}function Lr(T){return T===\"raster\"||T===\"image\"||T===\"video\"}ts.maxOverzooming=10,ts.maxUnderzooming=3;class wr{constructor(l,f){this.reset(l,f)}reset(l,f){this.points=l||[],this._distances=[0];for(let v=1;v0?(b-O)/F:0;return this.points[M].mult(1-U).add(this.points[f].mult(U))}}function Cn(T,l){let f=!0;return T===\"always\"||T!==\"never\"&&l!==\"never\"||(f=!1),f}class ka{constructor(l,f,v){let b=this.boxCells=[],M=this.circleCells=[];this.xCellCount=Math.ceil(l/v),this.yCellCount=Math.ceil(f/v);for(let O=0;Othis.width||b<0||f>this.height)return[];let U=[];if(l<=0&&f<=0&&this.width<=v&&this.height<=b){if(M)return[{key:null,x1:l,y1:f,x2:v,y2:b}];for(let W=0;W0}hitTestCircle(l,f,v,b,M){let O=l-v,F=l+v,U=f-v,W=f+v;if(F<0||O>this.width||W<0||U>this.height)return!1;let $=[];return this._forEachCell(O,U,F,W,this._queryCellCircle,$,{hitTest:!0,overlapMode:b,circle:{x:l,y:f,radius:v},seenUids:{box:{},circle:{}}},M),$.length>0}_queryCell(l,f,v,b,M,O,F,U){let{seenUids:W,hitTest:$,overlapMode:X}=F,at=this.boxCells[M];if(at!==null){let _t=this.bboxes;for(let yt of at)if(!W.box[yt]){W.box[yt]=!0;let At=4*yt,kt=this.boxKeys[yt];if(l<=_t[At+2]&&f<=_t[At+3]&&v>=_t[At+0]&&b>=_t[At+1]&&(!U||U(kt))&&(!$||!Cn(X,kt.overlapMode))&&(O.push({key:kt,x1:_t[At],y1:_t[At+1],x2:_t[At+2],y2:_t[At+3]}),$))return!0}}let gt=this.circleCells[M];if(gt!==null){let _t=this.circles;for(let yt of gt)if(!W.circle[yt]){W.circle[yt]=!0;let At=3*yt,kt=this.circleKeys[yt];if(this._circleAndRectCollide(_t[At],_t[At+1],_t[At+2],l,f,v,b)&&(!U||U(kt))&&(!$||!Cn(X,kt.overlapMode))){let Wt=_t[At],St=_t[At+1],Nt=_t[At+2];if(O.push({key:kt,x1:Wt-Nt,y1:St-Nt,x2:Wt+Nt,y2:St+Nt}),$)return!0}}}return!1}_queryCellCircle(l,f,v,b,M,O,F,U){let{circle:W,seenUids:$,overlapMode:X}=F,at=this.boxCells[M];if(at!==null){let _t=this.bboxes;for(let yt of at)if(!$.box[yt]){$.box[yt]=!0;let At=4*yt,kt=this.boxKeys[yt];if(this._circleAndRectCollide(W.x,W.y,W.radius,_t[At+0],_t[At+1],_t[At+2],_t[At+3])&&(!U||U(kt))&&!Cn(X,kt.overlapMode))return O.push(!0),!0}}let gt=this.circleCells[M];if(gt!==null){let _t=this.circles;for(let yt of gt)if(!$.circle[yt]){$.circle[yt]=!0;let At=3*yt,kt=this.circleKeys[yt];if(this._circlesCollide(_t[At],_t[At+1],_t[At+2],W.x,W.y,W.radius)&&(!U||U(kt))&&!Cn(X,kt.overlapMode))return O.push(!0),!0}}}_forEachCell(l,f,v,b,M,O,F,U){let W=this._convertToXCellCoord(l),$=this._convertToYCellCoord(f),X=this._convertToXCellCoord(v),at=this._convertToYCellCoord(b);for(let gt=W;gt<=X;gt++)for(let _t=$;_t<=at;_t++)if(M.call(this,l,f,v,b,this.xCellCount*_t+gt,O,F,U))return}_convertToXCellCoord(l){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(l*this.xScale)))}_convertToYCellCoord(l){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(l*this.yScale)))}_circlesCollide(l,f,v,b,M,O){let F=b-l,U=M-f,W=v+O;return W*W>F*F+U*U}_circleAndRectCollide(l,f,v,b,M,O,F){let U=(O-b)/2,W=Math.abs(l-(b+U));if(W>U+v)return!1;let $=(F-M)/2,X=Math.abs(f-(M+$));if(X>$+v)return!1;if(W<=U||X<=$)return!0;let at=W-U,gt=X-$;return at*at+gt*gt<=v*v}}function mr(T,l,f,v,b){let M=s.F();return l?(s.J(M,M,[1/b,1/b,1]),f||s.ad(M,M,v.angle)):s.K(M,v.labelPlaneMatrix,T),M}function Mc(T,l,f,v,b){if(l){let M=s.ae(T);return s.J(M,M,[b,b,1]),f||s.ad(M,M,-v.angle),M}return v.glCoordMatrix}function jn(T,l,f){let v;f?(v=[T.x,T.y,f(T.x,T.y),1],s.af(v,v,l)):(v=[T.x,T.y,0,1],Je(v,v,l));let b=v[3];return{point:new s.P(v[0]/b,v[1]/b),signedDistanceFromCamera:b}}function vt(T,l){return .5+T/l*.5}function tt(T,l){let f=T[0]/T[3],v=T[1]/T[3];return f>=-l[0]&&f<=l[0]&&v>=-l[1]&&v<=l[1]}function nt(T,l,f,v,b,M,O,F,U,W){let $=v?T.textSizeData:T.iconSizeData,X=s.ag($,f.transform.zoom),at=[256/f.width*2+1,256/f.height*2+1],gt=v?T.text.dynamicLayoutVertexArray:T.icon.dynamicLayoutVertexArray;gt.clear();let _t=T.lineVertexArray,yt=v?T.text.placedSymbolArray:T.icon.placedSymbolArray,At=f.transform.width/f.transform.height,kt=!1;for(let Wt=0;WtMath.abs(f.x-l.x)*v?{useVertical:!0}:(T===s.ah.vertical?l.yf.x)?{needsFlipping:!0}:null}function Rt(T,l,f,v,b,M,O,F,U,W,$,X,at,gt,_t,yt){let At=l/24,kt=T.lineOffsetX*At,Wt=T.lineOffsetY*At,St;if(T.numGlyphs>1){let Nt=T.glyphStartIndex+T.numGlyphs,Zt=T.lineStartIndex,Ht=T.lineStartIndex+T.lineLength,ne=ct(At,F,kt,Wt,f,$,X,T,U,M,at,_t,yt);if(!ne)return{notEnoughRoom:!0};let he=jn(ne.first.point,O,yt).point,ce=jn(ne.last.point,O,yt).point;if(v&&!f){let ge=mt(T.writingMode,he,ce,gt);if(ge)return ge}St=[ne.first];for(let ge=T.glyphStartIndex+1;ge0?he.point:Dt(X,ne,Zt,1,b,yt),ge=mt(T.writingMode,Zt,ce,gt);if(ge)return ge}let Nt=le(At*F.getoffsetX(T.glyphStartIndex),kt,Wt,f,$,X,T.segment,T.lineStartIndex,T.lineStartIndex+T.lineLength,U,M,at,_t,yt);if(!Nt)return{notEnoughRoom:!0};St=[Nt]}for(let Nt of St)s.aj(W,Nt.point,Nt.angle);return{}}function Dt(T,l,f,v,b,M){let O=jn(T.add(T.sub(l)._unit()),b,M).point,F=f.sub(O);return f.add(F._mult(v/F.mag()))}function Ut(T,l){let{projectionCache:f,lineVertexArray:v,labelPlaneMatrix:b,tileAnchorPoint:M,distanceFromAnchor:O,getElevation:F,previousVertex:U,direction:W,absOffsetX:$}=l;if(f.projections[T])return f.projections[T];let X=new s.P(v.getx(T),v.gety(T)),at=jn(X,b,F);if(at.signedDistanceFromCamera>0)return f.projections[T]=at.point,at.point;let gt=T-W;return Dt(O===0?M:new s.P(v.getx(gt),v.gety(gt)),X,U,$-O+1,b,F)}function ft(T,l,f){return T._unit()._perp()._mult(l*f)}function jt(T,l,f,v,b,M,O,F){let{projectionCache:U,direction:W}=F;if(U.offsets[T])return U.offsets[T];let $=f.add(l);if(T+W=b)return U.offsets[T]=$,$;let X=Ut(T+W,F),at=ft(X.sub(f),O,W),gt=f.add(at),_t=X.add(at);return U.offsets[T]=s.ak(M,$,gt,_t)||$,U.offsets[T]}function le(T,l,f,v,b,M,O,F,U,W,$,X,at,gt){let _t=v?T-l:T+l,yt=_t>0?1:-1,At=0;v&&(yt*=-1,At=Math.PI),yt<0&&(At+=Math.PI);let kt,Wt,St=yt>0?F+O:F+O+1,Nt=b,Zt=b,Ht=0,ne=0,he=Math.abs(_t),ce=[],ge;for(;Ht+ne<=he;){if(St+=yt,St=U)return null;Ht+=ne,Zt=Nt,Wt=kt;let Me={projectionCache:X,lineVertexArray:W,labelPlaneMatrix:$,tileAnchorPoint:M,distanceFromAnchor:Ht,getElevation:gt,previousVertex:Zt,direction:yt,absOffsetX:he};if(Nt=Ut(St,Me),f===0)ce.push(Zt),ge=Nt.sub(Zt);else{let ar,He=Nt.sub(Zt);ar=He.mag()===0?ft(Ut(St+yt,Me).sub(Nt),f,yt):ft(He,f,yt),Wt||(Wt=Zt.add(ar)),kt=jt(St,ar,Nt,F,U,Wt,f,Me),ce.push(Wt),ge=kt.sub(Wt)}ne=ge.mag()}let Ue=ge._mult((he-Ht)/ne)._add(Wt||Zt),ur=At+Math.atan2(Nt.y-Zt.y,Nt.x-Zt.x);return ce.push(Ue),{point:Ue,angle:at?ur:0,path:ce}}let ee=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function re(T,l){for(let f=0;f=1;Fr--)He.push(Me.path[Fr]);for(let Fr=1;Frjn($r,U,_t));He=Fr.some($r=>$r.signedDistanceFromCamera<=0)?[]:Fr.map($r=>$r.point)}let Jr=[];if(He.length>0){let Fr=He[0].clone(),$r=He[0].clone();for(let On=1;On=ge.x&&$r.x<=Ue.x&&Fr.y>=ge.y&&$r.y<=Ue.y?[He]:$r.xUe.x||$r.yUe.y?[]:s.al([He],ge.x,ge.y,Ue.x,Ue.y)}for(let Fr of Jr){ur.reset(Fr,.25*ce);let $r=0;$r=ur.length<=.5*ce?1:Math.ceil(ur.paddedLength/rn)+1;for(let On=0;On<$r;On++){let Dr=On/Math.max($r-1,1),So=ur.lerp(Dr),Is=So.x+ir,Mn=So.y+ir;yt.push(Is,Mn,ce,0);let Vs=Is-ce,js=Mn-ce,ha=Is+ce,Bc=Mn+ce;if(he=he&&this.isOffscreen(Vs,js,ha,Bc),ne=ne||this.isInsideGrid(Vs,js,ha,Bc),l!==\"always\"&&this.grid.hitTestCircle(Is,Mn,ce,l,X)&&(Ht=!0,!W))return{circles:[],offscreen:!1,collisionDetected:Ht}}}}return{circles:!W&&Ht||!ne||Wt=this.screenRightBoundary||bthis.screenBottomBoundary}isInsideGrid(l,f,v,b){return v>=0&&l=0&&fv.collisionGroupID===f}}return this.collisionGroups[l]}}function tn(T,l,f,v,b){let{horizontalAlign:M,verticalAlign:O}=s.at(T);return new s.P(-(M-.5)*l+v[0]*b,-(O-.5)*f+v[1]*b)}function es(T,l,f,v,b,M){let{x1:O,x2:F,y1:U,y2:W,anchorPointX:$,anchorPointY:X}=T,at=new s.P(l,f);return v&&at._rotate(b?M:-M),{x1:O+at.x,y1:U+at.y,x2:F+at.x,y2:W+at.y,anchorPointX:$,anchorPointY:X}}class cs{constructor(l,f,v,b,M){this.transform=l.clone(),this.terrain=f,this.collisionIndex=new kr(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=v,this.retainedQueryData={},this.collisionGroups=new Ji(b),this.collisionCircleArrays={},this.prevPlacement=M,M&&(M.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(l,f,v,b){let M=v.getBucket(f),O=v.latestFeatureIndex;if(!M||!O||f.id!==M.layerIds[0])return;let F=v.collisionBoxArray,U=M.layers[0].layout,W=Math.pow(2,this.transform.zoom-v.tileID.overscaledZ),$=v.tileSize/s.W,X=this.transform.calculatePosMatrix(v.tileID.toUnwrapped()),at=U.get(\"text-pitch-alignment\")===\"map\",gt=U.get(\"text-rotation-alignment\")===\"map\",_t=_r(v,1,this.transform.zoom),yt=mr(X,at,gt,this.transform,_t),At=null;if(at){let Wt=Mc(X,at,gt,this.transform,_t);At=s.K([],this.transform.labelPlaneMatrix,Wt)}this.retainedQueryData[M.bucketInstanceId]=new Rr(M.bucketInstanceId,O,M.sourceLayerIndex,M.index,v.tileID);let kt={bucket:M,layout:U,posMatrix:X,textLabelPlaneMatrix:yt,labelToScreenMatrix:At,scale:W,textPixelRatio:$,holdingForFade:v.holdingForFade(),collisionBoxArray:F,partiallyEvaluatedTextSize:s.ag(M.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(M.sourceID)};if(b)for(let Wt of M.sortKeyRanges){let{sortKey:St,symbolInstanceStart:Nt,symbolInstanceEnd:Zt}=Wt;l.push({sortKey:St,symbolInstanceStart:Nt,symbolInstanceEnd:Zt,parameters:kt})}else l.push({symbolInstanceStart:0,symbolInstanceEnd:M.symbolInstances.length,parameters:kt})}attemptAnchorPlacement(l,f,v,b,M,O,F,U,W,$,X,at,gt,_t,yt,At){let kt=s.ap[l.textAnchor],Wt=[l.textOffset0,l.textOffset1],St=tn(kt,v,b,Wt,M),Nt=this.collisionIndex.placeCollisionBox(es(f,St.x,St.y,O,F,this.transform.angle),X,U,W,$.predicate,At);if((!yt||this.collisionIndex.placeCollisionBox(es(yt,St.x,St.y,O,F,this.transform.angle),X,U,W,$.predicate,At).box.length!==0)&&Nt.box.length>0){let Zt;if(this.prevPlacement&&this.prevPlacement.variableOffsets[at.crossTileID]&&this.prevPlacement.placements[at.crossTileID]&&this.prevPlacement.placements[at.crossTileID].text&&(Zt=this.prevPlacement.variableOffsets[at.crossTileID].anchor),at.crossTileID===0)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[at.crossTileID]={textOffset:Wt,width:v,height:b,anchor:kt,textBoxScale:M,prevAnchor:Zt},this.markUsedJustification(gt,kt,at,_t),gt.allowVerticalPlacement&&(this.markUsedOrientation(gt,_t,at),this.placedOrientations[at.crossTileID]=_t),{shift:St,placedGlyphBoxes:Nt}}}placeLayerBucketPart(l,f,v){let{bucket:b,layout:M,posMatrix:O,textLabelPlaneMatrix:F,labelToScreenMatrix:U,textPixelRatio:W,holdingForFade:$,collisionBoxArray:X,partiallyEvaluatedTextSize:at,collisionGroup:gt}=l.parameters,_t=M.get(\"text-optional\"),yt=M.get(\"icon-optional\"),At=s.aq(M,\"text-overlap\",\"text-allow-overlap\"),kt=At===\"always\",Wt=s.aq(M,\"icon-overlap\",\"icon-allow-overlap\"),St=Wt===\"always\",Nt=M.get(\"text-rotation-alignment\")===\"map\",Zt=M.get(\"text-pitch-alignment\")===\"map\",Ht=M.get(\"icon-text-fit\")!==\"none\",ne=M.get(\"symbol-z-order\")===\"viewport-y\",he=kt&&(St||!b.hasIconData()||yt),ce=St&&(kt||!b.hasTextData()||_t);!b.collisionArrays&&X&&b.deserializeCollisionBoxes(X);let ge=this.retainedQueryData[b.bucketInstanceId].tileID,Ue=this.terrain?(Me,ar)=>this.terrain.getElevation(ge,Me,ar):null,ur=(Me,ar)=>{var He,rn;if(f[Me.crossTileID])return;if($)return void(this.placements[Me.crossTileID]=new Wi(!1,!1,!1));let Jr=!1,Fr=!1,$r=!0,On=null,Dr={box:null,offscreen:null},So={box:null,offscreen:null},Is=null,Mn=null,Vs=null,js=0,ha=0,Bc=0;ar.textFeatureIndex?js=ar.textFeatureIndex:Me.useRuntimeCollisionCircles&&(js=Me.featureIndex),ar.verticalTextFeatureIndex&&(ha=ar.verticalTextFeatureIndex);let Lf=ar.textBox;if(Lf){let us=Xe=>{let Bi=s.ah.horizontal;if(b.allowVerticalPlacement&&!Xe&&this.prevPlacement){let Cs=this.prevPlacement.placedOrientations[Me.crossTileID];Cs&&(this.placedOrientations[Me.crossTileID]=Cs,Bi=Cs,this.markUsedOrientation(b,Bi,Me))}return Bi},Zn=(Xe,Bi)=>{if(b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&ar.verticalTextBox){for(let Cs of b.writingModes)if(Cs===s.ah.vertical?(Dr=Bi(),So=Dr):Dr=Xe(),Dr&&Dr.box&&Dr.box.length)break}else Dr=Xe()},nn=Me.textAnchorOffsetStartIndex,dn=Me.textAnchorOffsetEndIndex;if(dn===nn){let Xe=(Bi,Cs)=>{let En=this.collisionIndex.placeCollisionBox(Bi,At,W,O,gt.predicate,Ue);return En&&En.box&&En.box.length&&(this.markUsedOrientation(b,Cs,Me),this.placedOrientations[Me.crossTileID]=Cs),En};Zn(()=>Xe(Lf,s.ah.horizontal),()=>{let Bi=ar.verticalTextBox;return b.allowVerticalPlacement&&Me.numVerticalGlyphVertices>0&&Bi?Xe(Bi,s.ah.vertical):{box:null,offscreen:null}}),us(Dr&&Dr.box&&Dr.box.length)}else{let Xe=s.ap[(rn=(He=this.prevPlacement)===null||He===void 0?void 0:He.variableOffsets[Me.crossTileID])===null||rn===void 0?void 0:rn.anchor],Bi=(En,o0,Bn)=>{let Ul=En.x2-En.x1,ve=En.y2-En.y1,De=Me.textBoxScale,wu=Ht&&Wt===\"never\"?o0:null,Ua={box:[],offscreen:!1},ph=At===\"never\"?1:2,fa=\"never\";Xe&&ph++;for(let a0=0;a0Bi(Lf,ar.iconBox,s.ah.horizontal),()=>{let En=ar.verticalTextBox;return b.allowVerticalPlacement&&!(Dr&&Dr.box&&Dr.box.length)&&Me.numVerticalGlyphVertices>0&&En?Bi(En,ar.verticalIconBox,s.ah.vertical):{box:null,offscreen:null}}),Dr&&(Jr=Dr.box,$r=Dr.offscreen);let Cs=us(Dr&&Dr.box);if(!Jr&&this.prevPlacement){let En=this.prevPlacement.variableOffsets[Me.crossTileID];En&&(this.variableOffsets[Me.crossTileID]=En,this.markUsedJustification(b,En.anchor,Me,Cs))}}}if(Is=Dr,Jr=Is&&Is.box&&Is.box.length>0,$r=Is&&Is.offscreen,Me.useRuntimeCollisionCircles){let us=b.text.placedSymbolArray.get(Me.centerJustifiedTextSymbolIndex),Zn=s.ai(b.textSizeData,at,us),nn=M.get(\"text-padding\");Mn=this.collisionIndex.placeCollisionCircles(At,us,b.lineVertexArray,b.glyphOffsetArray,Zn,O,F,U,v,Zt,gt.predicate,Me.collisionCircleDiameter,nn,Ue),Mn.circles.length&&Mn.collisionDetected&&!v&&s.w(\"Collisions detected, but collision boxes are not shown\"),Jr=kt||Mn.circles.length>0&&!Mn.collisionDetected,$r=$r&&Mn.offscreen}if(ar.iconFeatureIndex&&(Bc=ar.iconFeatureIndex),ar.iconBox){let us=Zn=>{let nn=Ht&&On?es(Zn,On.x,On.y,Nt,Zt,this.transform.angle):Zn;return this.collisionIndex.placeCollisionBox(nn,Wt,W,O,gt.predicate,Ue)};So&&So.box&&So.box.length&&ar.verticalIconBox?(Vs=us(ar.verticalIconBox),Fr=Vs.box.length>0):(Vs=us(ar.iconBox),Fr=Vs.box.length>0),$r=$r&&Vs.offscreen}let kf=_t||Me.numHorizontalGlyphVertices===0&&Me.numVerticalGlyphVertices===0,bu=yt||Me.numIconVertices===0;if(kf||bu?bu?kf||(Fr=Fr&&Jr):Jr=Fr&&Jr:Fr=Jr=Fr&&Jr,Jr&&Is&&Is.box&&this.collisionIndex.insertCollisionBox(Is.box,At,M.get(\"text-ignore-placement\"),b.bucketInstanceId,So&&So.box&&ha?ha:js,gt.ID),Fr&&Vs&&this.collisionIndex.insertCollisionBox(Vs.box,Wt,M.get(\"icon-ignore-placement\"),b.bucketInstanceId,Bc,gt.ID),Mn&&(Jr&&this.collisionIndex.insertCollisionCircles(Mn.circles,At,M.get(\"text-ignore-placement\"),b.bucketInstanceId,js,gt.ID),v)){let us=b.bucketInstanceId,Zn=this.collisionCircleArrays[us];Zn===void 0&&(Zn=this.collisionCircleArrays[us]=new bn);for(let nn=0;nn=0;--ar){let He=Me[ar];ur(b.symbolInstances.get(He),b.collisionArrays[He])}}else for(let Me=l.symbolInstanceStart;Me=0&&(l.text.placedSymbolArray.get(F).crossTileID=M>=0&&F!==M?0:v.crossTileID)}markUsedOrientation(l,f,v){let b=f===s.ah.horizontal||f===s.ah.horizontalOnly?f:0,M=f===s.ah.vertical?f:0,O=[v.leftJustifiedTextSymbolIndex,v.centerJustifiedTextSymbolIndex,v.rightJustifiedTextSymbolIndex];for(let F of O)l.text.placedSymbolArray.get(F).placedOrientation=b;v.verticalPlacedTextSymbolIndex&&(l.text.placedSymbolArray.get(v.verticalPlacedTextSymbolIndex).placedOrientation=M)}commit(l){this.commitTime=l,this.zoomAtLastRecencyCheck=this.transform.zoom;let f=this.prevPlacement,v=!1;this.prevZoomAdjustment=f?f.zoomAdjustment(this.transform.zoom):0;let b=f?f.symbolFadeChange(l):1,M=f?f.opacities:{},O=f?f.variableOffsets:{},F=f?f.placedOrientations:{};for(let U in this.placements){let W=this.placements[U],$=M[U];$?(this.opacities[U]=new Si($,b,W.text,W.icon),v=v||W.text!==$.text.placed||W.icon!==$.icon.placed):(this.opacities[U]=new Si(null,b,W.text,W.icon,W.skipFade),v=v||W.text||W.icon)}for(let U in M){let W=M[U];if(!this.opacities[U]){let $=new Si(W,b,!1,!1);$.isHidden()||(this.opacities[U]=$,v=v||W.text.placed||W.icon.placed)}}for(let U in O)this.variableOffsets[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.variableOffsets[U]=O[U]);for(let U in F)this.placedOrientations[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.placedOrientations[U]=F[U]);if(f&&f.lastPlacementChangeTime===void 0)throw new Error(\"Last placement time for previous placement is not defined\");v?this.lastPlacementChangeTime=l:typeof this.lastPlacementChangeTime!=\"number\"&&(this.lastPlacementChangeTime=f?f.lastPlacementChangeTime:l)}updateLayerOpacities(l,f){let v={};for(let b of f){let M=b.getBucket(l);M&&b.latestFeatureIndex&&l.id===M.layerIds[0]&&this.updateBucketOpacities(M,v,b.collisionBoxArray)}}updateBucketOpacities(l,f,v){l.hasTextData()&&(l.text.opacityVertexArray.clear(),l.text.hasVisibleVertices=!1),l.hasIconData()&&(l.icon.opacityVertexArray.clear(),l.icon.hasVisibleVertices=!1),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexArray.clear(),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexArray.clear();let b=l.layers[0],M=b.layout,O=new Si(null,0,!1,!1,!0),F=M.get(\"text-allow-overlap\"),U=M.get(\"icon-allow-overlap\"),W=b._unevaluatedLayout.hasValue(\"text-variable-anchor\")||b._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"),$=M.get(\"text-rotation-alignment\")===\"map\",X=M.get(\"text-pitch-alignment\")===\"map\",at=M.get(\"icon-text-fit\")!==\"none\",gt=new Si(null,0,F&&(U||!l.hasIconData()||M.get(\"icon-optional\")),U&&(F||!l.hasTextData()||M.get(\"text-optional\")),!0);!l.collisionArrays&&v&&(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData())&&l.deserializeCollisionBoxes(v);let _t=(yt,At,kt)=>{for(let Wt=0;Wt0,Ht=this.placedOrientations[At.crossTileID],ne=Ht===s.ah.vertical,he=Ht===s.ah.horizontal||Ht===s.ah.horizontalOnly;if(kt>0||Wt>0){let ce=wn(Nt.text);_t(l.text,kt,ne?Ol:ce),_t(l.text,Wt,he?Ol:ce);let ge=Nt.text.isHidden();[At.rightJustifiedTextSymbolIndex,At.centerJustifiedTextSymbolIndex,At.leftJustifiedTextSymbolIndex].forEach(Me=>{Me>=0&&(l.text.placedSymbolArray.get(Me).hidden=ge||ne?1:0)}),At.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(At.verticalPlacedTextSymbolIndex).hidden=ge||he?1:0);let Ue=this.variableOffsets[At.crossTileID];Ue&&this.markUsedJustification(l,Ue.anchor,At,Ht);let ur=this.placedOrientations[At.crossTileID];ur&&(this.markUsedJustification(l,\"left\",At,ur),this.markUsedOrientation(l,ur,At))}if(Zt){let ce=wn(Nt.icon),ge=!(at&&At.verticalPlacedIconSymbolIndex&&ne);At.placedIconSymbolIndex>=0&&(_t(l.icon,At.numIconVertices,ge?ce:Ol),l.icon.placedSymbolArray.get(At.placedIconSymbolIndex).hidden=Nt.icon.isHidden()),At.verticalPlacedIconSymbolIndex>=0&&(_t(l.icon,At.numVerticalIconVertices,ge?Ol:ce),l.icon.placedSymbolArray.get(At.verticalPlacedIconSymbolIndex).hidden=Nt.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){let ce=l.collisionArrays[yt];if(ce){let ge=new s.P(0,0);if(ce.textBox||ce.verticalTextBox){let ur=!0;if(W){let Me=this.variableOffsets[St];Me?(ge=tn(Me.anchor,Me.width,Me.height,Me.textOffset,Me.textBoxScale),$&&ge._rotate(X?this.transform.angle:-this.transform.angle)):ur=!1}ce.textBox&&Ln(l.textCollisionBox.collisionVertexArray,Nt.text.placed,!ur||ne,ge.x,ge.y),ce.verticalTextBox&&Ln(l.textCollisionBox.collisionVertexArray,Nt.text.placed,!ur||he,ge.x,ge.y)}let Ue=!!(!he&&ce.verticalIconBox);ce.iconBox&&Ln(l.iconCollisionBox.collisionVertexArray,Nt.icon.placed,Ue,at?ge.x:0,at?ge.y:0),ce.verticalIconBox&&Ln(l.iconCollisionBox.collisionVertexArray,Nt.icon.placed,!Ue,at?ge.x:0,at?ge.y:0)}}}if(l.sortFeatures(this.transform.angle),this.retainedQueryData[l.bucketInstanceId]&&(this.retainedQueryData[l.bucketInstanceId].featureSortOrder=l.featureSortOrder),l.hasTextData()&&l.text.opacityVertexBuffer&&l.text.opacityVertexBuffer.updateData(l.text.opacityVertexArray),l.hasIconData()&&l.icon.opacityVertexBuffer&&l.icon.opacityVertexBuffer.updateData(l.icon.opacityVertexArray),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexBuffer&&l.iconCollisionBox.collisionVertexBuffer.updateData(l.iconCollisionBox.collisionVertexArray),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexBuffer&&l.textCollisionBox.collisionVertexBuffer.updateData(l.textCollisionBox.collisionVertexArray),l.text.opacityVertexArray.length!==l.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${l.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${l.text.layoutVertexArray.length}) / 4`);if(l.icon.opacityVertexArray.length!==l.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${l.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${l.icon.layoutVertexArray.length}) / 4`);if(l.bucketInstanceId in this.collisionCircleArrays){let yt=this.collisionCircleArrays[l.bucketInstanceId];l.placementInvProjMatrix=yt.invProjMatrix,l.placementViewportMatrix=yt.viewportMatrix,l.collisionCircleArray=yt.circles,delete this.collisionCircleArrays[l.bucketInstanceId]}}symbolFadeChange(l){return this.fadeDuration===0?1:(l-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(l){return Math.max(0,(this.transform.zoom-l)/1.5)}hasTransitions(l){return this.stale||l-this.lastPlacementChangeTimel}setStale(){this.stale=!0}}function Ln(T,l,f,v,b){T.emplaceBack(l?1:0,f?1:0,v||0,b||0),T.emplaceBack(l?1:0,f?1:0,v||0,b||0),T.emplaceBack(l?1:0,f?1:0,v||0,b||0),T.emplaceBack(l?1:0,f?1:0,v||0,b||0)}let la=Math.pow(2,25),Fm=Math.pow(2,24),$g=Math.pow(2,17),mi=Math.pow(2,16),xo=Math.pow(2,9),Ec=Math.pow(2,8),Gn=Math.pow(2,1);function wn(T){if(T.opacity===0&&!T.placed)return 0;if(T.opacity===1&&T.placed)return 4294967295;let l=T.placed?1:0,f=Math.floor(127*T.opacity);return f*la+l*Fm+f*$g+l*mi+f*xo+l*Ec+f*Gn+l}let Ol=0;class kn{constructor(l){this._sortAcrossTiles=l.layout.get(\"symbol-z-order\")!==\"viewport-y\"&&!l.layout.get(\"symbol-sort-key\").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(l,f,v,b,M){let O=this._bucketParts;for(;this._currentTileIndexF.sortKey-U.sortKey));this._currentPartIndex!this._forceFullPlacement&&_.now()-b>2;for(;this._currentPlacementIndex>=0;){let O=f[l[this._currentPlacementIndex]],F=this.placement.collisionIndex.transform.zoom;if(O.type===\"symbol\"&&(!O.minzoom||O.minzoom<=F)&&(!O.maxzoom||O.maxzoom>F)){if(this._inProgressLayer||(this._inProgressLayer=new kn(O)),this._inProgressLayer.continuePlacement(v[O.source],this.placement,this._showCollisionBoxes,O,M))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(l){return this.placement.commit(l),this.placement}}let fu=512/s.W/2;class ff{constructor(l,f,v){this.tileID=l,this.bucketInstanceId=v,this._symbolsByKey={};let b=new Map;for(let M=0;M({x:Math.floor(U.anchorX*fu),y:Math.floor(U.anchorY*fu)})),crossTileIDs:O.map(U=>U.crossTileID)};if(F.positions.length>128){let U=new s.au(F.positions.length,16,Uint16Array);for(let{x:W,y:$}of F.positions)U.add(W,$);U.finish(),delete F.positions,F.index=U}this._symbolsByKey[M]=F}}getScaledCoordinates(l,f){let{x:v,y:b,z:M}=this.tileID.canonical,{x:O,y:F,z:U}=f.canonical,W=fu/Math.pow(2,U-M),$=(F*s.W+l.anchorY)*W,X=b*s.W*fu;return{x:Math.floor((O*s.W+l.anchorX)*W-v*s.W*fu),y:Math.floor($-X)}}findMatches(l,f,v){let b=this.tileID.canonical.zl)}}class hn{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class no{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(l){let f=Math.round((l-this.lng)/360);if(f!==0)for(let v in this.indexes){let b=this.indexes[v],M={};for(let O in b){let F=b[O];F.tileID=F.tileID.unwrapTo(F.tileID.wrap+f),M[F.tileID.key]=F}this.indexes[v]=M}this.lng=l}addBucket(l,f,v){if(this.indexes[l.overscaledZ]&&this.indexes[l.overscaledZ][l.key]){if(this.indexes[l.overscaledZ][l.key].bucketInstanceId===f.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(l.overscaledZ,this.indexes[l.overscaledZ][l.key])}for(let M=0;Ml.overscaledZ)for(let F in O){let U=O[F];U.tileID.isChildOf(l)&&U.findMatches(f.symbolInstances,l,b)}else{let F=O[l.scaledTo(Number(M)).key];F&&F.findMatches(f.symbolInstances,l,b)}}for(let M=0;M{f[v]=!0});for(let v in this.layerIndexes)f[v]||delete this.layerIndexes[v]}}let Hi=(T,l)=>s.t(T,l&&l.filter(f=>f.identifier!==\"source.canvas\")),lh=s.av();class so extends s.E{constructor(l,f={}){super(),this._rtlTextPluginStateChange=()=>{for(let v in this.sourceCaches){let b=this.sourceCaches[v].getSource().type;b!==\"vector\"&&b!==\"geojson\"||this.sourceCaches[v].reload()}},this.map=l,this.dispatcher=new yo(Ci(),l._getMapId()),this.dispatcher.registerMessageHandler(\"getGlyphs\",(v,b)=>this.getGlyphs(v,b)),this.dispatcher.registerMessageHandler(\"getImages\",(v,b)=>this.getImages(v,b)),this.imageManager=new sr,this.imageManager.setEventedParent(this),this.glyphManager=new Fs(l._requestManager,f.localIdeographFontFamily),this.lineAtlas=new Ss(256,512),this.crossTileSymbolIndex=new Ra,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.aw,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",s.ax()),Ae().on(\"pluginStateChange\",this._rtlTextPluginStateChange),this.on(\"data\",v=>{if(v.dataType!==\"source\"||v.sourceDataType!==\"metadata\")return;let b=this.sourceCaches[v.sourceId];if(!b)return;let M=b.getSource();if(M&&M.vectorLayerIds)for(let O in this._layers){let F=this._layers[O];F.source===M.id&&this._validateLayer(F)}})}loadURL(l,f={},v){this.fire(new s.k(\"dataloading\",{dataType:\"style\"})),f.validate=typeof f.validate!=\"boolean\"||f.validate;let b=this.map._requestManager.transformRequest(l,K.Style);this._loadStyleRequest=new AbortController,s.h(b,this._loadStyleRequest).then(M=>{this._loadStyleRequest=null,this._load(M.data,f,v)}).catch(M=>{this._loadStyleRequest=null,M&&this.fire(new s.j(M))})}loadJSON(l,f={},v){this.fire(new s.k(\"dataloading\",{dataType:\"style\"})),this._frameRequest=new AbortController,_.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,f.validate=f.validate!==!1,this._load(l,f,v)}).catch(()=>{})}loadEmpty(){this.fire(new s.k(\"dataloading\",{dataType:\"style\"})),this._load(lh,{validate:!1})}_load(l,f,v){var b;let M=f.transformStyle?f.transformStyle(v,l):l;if(!f.validate||!Hi(this,s.x(M))){this._loaded=!0,this.stylesheet=M;for(let O in M.sources)this.addSource(O,M.sources[O],{validate:!1});M.sprite?this._loadSprite(M.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(M.glyphs),this._createLayers(),this.light=new io(this.stylesheet.light),this.map.setTerrain((b=this.stylesheet.terrain)!==null&&b!==void 0?b:null),this.fire(new s.k(\"data\",{dataType:\"style\"})),this.fire(new s.k(\"style.load\"))}}_createLayers(){let l=s.ay(this.stylesheet.layers);this.dispatcher.broadcast(\"setLayers\",l),this._order=l.map(f=>f.id),this._layers={},this._serializedLayers=null;for(let f of l){let v=s.az(f);v.setEventedParent(this,{layer:{id:f.id}}),this._layers[f.id]=v}}_loadSprite(l,f=!1,v=void 0){let b;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(M,O,F,U){return s._(this,void 0,void 0,function*(){let W=oe(M),$=F>1?\"@2x\":\"\",X={},at={};for(let{id:gt,url:_t}of W){let yt=O.transformRequest(O.normalizeSpriteURL(_t,$,\".json\"),K.SpriteJSON);X[gt]=s.h(yt,U);let At=O.transformRequest(O.normalizeSpriteURL(_t,$,\".png\"),K.SpriteImage);at[gt]=Z.getImage(At,U)}return yield Promise.all([...Object.values(X),...Object.values(at)]),function(gt,_t){return s._(this,void 0,void 0,function*(){let yt={};for(let At in gt){yt[At]={};let kt=_.getImageCanvasContext((yield _t[At]).data),Wt=(yield gt[At]).data;for(let St in Wt){let{width:Nt,height:Zt,x:Ht,y:ne,sdf:he,pixelRatio:ce,stretchX:ge,stretchY:Ue,content:ur}=Wt[St];yt[At][St]={data:null,pixelRatio:ce,sdf:he,stretchX:ge,stretchY:Ue,content:ur,spriteData:{width:Nt,height:Zt,x:Ht,y:ne,context:kt}}}}return yt})}(X,at)})}(l,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(M=>{if(this._spriteRequest=null,M)for(let O in M){this._spritesImagesIds[O]=[];let F=this._spritesImagesIds[O]?this._spritesImagesIds[O].filter(U=>!(U in M)):[];for(let U of F)this.imageManager.removeImage(U),this._changedImages[U]=!0;for(let U in M[O]){let W=O===\"default\"?U:`${O}:${U}`;this._spritesImagesIds[O].push(W),W in this.imageManager.images?this.imageManager.updateImage(W,M[O][U],!1):this.imageManager.addImage(W,M[O][U]),f&&(this._changedImages[W]=!0)}}}).catch(M=>{this._spriteRequest=null,b=M,this.fire(new s.j(b))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),f&&(this._changed=!0),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new s.k(\"data\",{dataType:\"style\"})),v&&v(b)})}_unloadSprite(){for(let l of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(l),this._changedImages[l]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new s.k(\"data\",{dataType:\"style\"}))}_validateLayer(l){let f=this.sourceCaches[l.source];if(!f)return;let v=l.sourceLayer;if(!v)return;let b=f.getSource();(b.type===\"geojson\"||b.vectorLayerIds&&b.vectorLayerIds.indexOf(v)===-1)&&this.fire(new s.j(new Error(`Source layer \"${v}\" does not exist on source \"${b.id}\" as specified by style layer \"${l.id}\".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let l in this.sourceCaches)if(!this.sourceCaches[l].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(l){let f=this._serializedAllLayers();if(!l||l.length===0)return Object.values(f);let v=[];for(let b of l)f[b]&&v.push(f[b]);return v}_serializedAllLayers(){let l=this._serializedLayers;if(l)return l;l=this._serializedLayers={};let f=Object.keys(this._layers);for(let v of f){let b=this._layers[v];b.type!==\"custom\"&&(l[v]=b.serialize())}return l}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(let l in this.sourceCaches)if(this.sourceCaches[l].hasTransition())return!0;for(let l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading.\")}update(l){if(!this._loaded)return;let f=this._changed;if(this._changed){let b=Object.keys(this._updatedLayers),M=Object.keys(this._removedLayers);(b.length||M.length)&&this._updateWorkerLayers(b,M);for(let O in this._updatedSources){let F=this._updatedSources[O];if(F===\"reload\")this._reloadSource(O);else{if(F!==\"clear\")throw new Error(`Invalid action ${F}`);this._clearSource(O)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let O in this._updatedPaintProps)this._layers[O].updateTransitions(l);this.light.updateTransitions(l),this._resetUpdates()}let v={};for(let b in this.sourceCaches){let M=this.sourceCaches[b];v[b]=M.used,M.used=!1}for(let b of this._order){let M=this._layers[b];M.recalculate(l,this._availableImages),!M.isHidden(l.zoom)&&M.source&&(this.sourceCaches[M.source].used=!0)}for(let b in v){let M=this.sourceCaches[b];v[b]!==M.used&&M.fire(new s.k(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:b}))}this.light.recalculate(l),this.z=l.zoom,f&&this.fire(new s.k(\"data\",{dataType:\"style\"}))}_updateTilesForChangedImages(){let l=Object.keys(this._changedImages);if(l.length){for(let f in this.sourceCaches)this.sourceCaches[f].reloadTilesForDependencies([\"icons\",\"patterns\"],l);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let l in this.sourceCaches)this.sourceCaches[l].reloadTilesForDependencies([\"glyphs\"],[\"\"]);this._glyphsDidChange=!1}}_updateWorkerLayers(l,f){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeByIds(l),removedIds:f})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(l,f={}){this._checkLoaded();let v=this.serialize();if(l=f.transformStyle?f.transformStyle(v,l):l,Hi(this,s.x(l)))return!1;(l=s.aA(l)).layers=s.ay(l.layers);let b=s.aB(v,l),M=this._getOperationsToPerform(b);if(M.unimplemented.length>0)throw new Error(`Unimplemented: ${M.unimplemented.join(\", \")}.`);if(M.operations.length===0)return!1;for(let O of M.operations)O();return this.stylesheet=l,this._serializedLayers=null,!0}_getOperationsToPerform(l){let f=[],v=[];for(let b of l)switch(b.command){case\"setCenter\":case\"setZoom\":case\"setBearing\":case\"setPitch\":continue;case\"addLayer\":f.push(()=>this.addLayer.apply(this,b.args));break;case\"removeLayer\":f.push(()=>this.removeLayer.apply(this,b.args));break;case\"setPaintProperty\":f.push(()=>this.setPaintProperty.apply(this,b.args));break;case\"setLayoutProperty\":f.push(()=>this.setLayoutProperty.apply(this,b.args));break;case\"setFilter\":f.push(()=>this.setFilter.apply(this,b.args));break;case\"addSource\":f.push(()=>this.addSource.apply(this,b.args));break;case\"removeSource\":f.push(()=>this.removeSource.apply(this,b.args));break;case\"setLayerZoomRange\":f.push(()=>this.setLayerZoomRange.apply(this,b.args));break;case\"setLight\":f.push(()=>this.setLight.apply(this,b.args));break;case\"setGeoJSONSourceData\":f.push(()=>this.setGeoJSONSourceData.apply(this,b.args));break;case\"setGlyphs\":f.push(()=>this.setGlyphs.apply(this,b.args));break;case\"setSprite\":f.push(()=>this.setSprite.apply(this,b.args));break;case\"setTerrain\":f.push(()=>this.map.setTerrain.apply(this,b.args));break;case\"setTransition\":f.push(()=>{});break;default:v.push(b.command)}return{operations:f,unimplemented:v}}addImage(l,f){if(this.getImage(l))return this.fire(new s.j(new Error(`An image named \"${l}\" already exists.`)));this.imageManager.addImage(l,f),this._afterImageUpdated(l)}updateImage(l,f){this.imageManager.updateImage(l,f)}getImage(l){return this.imageManager.getImage(l)}removeImage(l){if(!this.getImage(l))return this.fire(new s.j(new Error(`An image named \"${l}\" does not exist.`)));this.imageManager.removeImage(l),this._afterImageUpdated(l)}_afterImageUpdated(l){this._availableImages=this.imageManager.listImages(),this._changedImages[l]=!0,this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new s.k(\"data\",{dataType:\"style\"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(l,f,v={}){if(this._checkLoaded(),this.sourceCaches[l]!==void 0)throw new Error(`Source \"${l}\" already exists.`);if(!f.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(f).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(f.type)>=0&&this._validate(s.x.source,`sources.${l}`,f,null,v))return;this.map&&this.map._collectResourceTiming&&(f.collectResourceTiming=!0);let b=this.sourceCaches[l]=new ts(l,f,this.dispatcher);b.style=this,b.setEventedParent(this,()=>({isSourceLoaded:b.loaded(),source:b.serialize(),sourceId:l})),b.onAdd(this.map),this._changed=!0}removeSource(l){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(\"There is no source with this ID\");for(let v in this._layers)if(this._layers[v].source===l)return this.fire(new s.j(new Error(`Source \"${l}\" cannot be removed while layer \"${v}\" is using it.`)));let f=this.sourceCaches[l];delete this.sourceCaches[l],delete this._updatedSources[l],f.fire(new s.k(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:l})),f.setEventedParent(null),f.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(l,f){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(`There is no source with this ID=${l}`);let v=this.sourceCaches[l].getSource();if(v.type!==\"geojson\")throw new Error(`geojsonSource.type is ${v.type}, which is !== 'geojson`);v.setData(f),this._changed=!0}getSource(l){return this.sourceCaches[l]&&this.sourceCaches[l].getSource()}addLayer(l,f,v={}){this._checkLoaded();let b=l.id;if(this.getLayer(b))return void this.fire(new s.j(new Error(`Layer \"${b}\" already exists on this map.`)));let M;if(l.type===\"custom\"){if(Hi(this,s.aC(l)))return;M=s.az(l)}else{if(\"source\"in l&&typeof l.source==\"object\"&&(this.addSource(b,l.source),l=s.aA(l),l=s.e(l,{source:b})),this._validate(s.x.layer,`layers.${b}`,l,{arrayIndex:-1},v))return;M=s.az(l),this._validateLayer(M),M.setEventedParent(this,{layer:{id:b}})}let O=f?this._order.indexOf(f):this._order.length;if(f&&O===-1)this.fire(new s.j(new Error(`Cannot add layer \"${b}\" before non-existing layer \"${f}\".`)));else{if(this._order.splice(O,0,b),this._layerOrderChanged=!0,this._layers[b]=M,this._removedLayers[b]&&M.source&&M.type!==\"custom\"){let F=this._removedLayers[b];delete this._removedLayers[b],F.type!==M.type?this._updatedSources[M.source]=\"clear\":(this._updatedSources[M.source]=\"reload\",this.sourceCaches[M.source].pause())}this._updateLayer(M),M.onAdd&&M.onAdd(this.map)}}moveLayer(l,f){if(this._checkLoaded(),this._changed=!0,!this._layers[l])return void this.fire(new s.j(new Error(`The layer '${l}' does not exist in the map's style and cannot be moved.`)));if(l===f)return;let v=this._order.indexOf(l);this._order.splice(v,1);let b=f?this._order.indexOf(f):this._order.length;f&&b===-1?this.fire(new s.j(new Error(`Cannot move layer \"${l}\" before non-existing layer \"${f}\".`))):(this._order.splice(b,0,l),this._layerOrderChanged=!0)}removeLayer(l){this._checkLoaded();let f=this._layers[l];if(!f)return void this.fire(new s.j(new Error(`Cannot remove non-existing layer \"${l}\".`)));f.setEventedParent(null);let v=this._order.indexOf(l);this._order.splice(v,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[l]=f,delete this._layers[l],this._serializedLayers&&delete this._serializedLayers[l],delete this._updatedLayers[l],delete this._updatedPaintProps[l],f.onRemove&&f.onRemove(this.map)}getLayer(l){return this._layers[l]}getLayersOrder(){return[...this._order]}hasLayer(l){return l in this._layers}setLayerZoomRange(l,f,v){this._checkLoaded();let b=this.getLayer(l);b?b.minzoom===f&&b.maxzoom===v||(f!=null&&(b.minzoom=f),v!=null&&(b.maxzoom=v),this._updateLayer(b)):this.fire(new s.j(new Error(`Cannot set the zoom range of non-existing layer \"${l}\".`)))}setFilter(l,f,v={}){this._checkLoaded();let b=this.getLayer(l);if(b){if(!s.aD(b.filter,f))return f==null?(b.filter=void 0,void this._updateLayer(b)):void(this._validate(s.x.filter,`layers.${b.id}.filter`,f,null,v)||(b.filter=s.aA(f),this._updateLayer(b)))}else this.fire(new s.j(new Error(`Cannot filter non-existing layer \"${l}\".`)))}getFilter(l){return s.aA(this.getLayer(l).filter)}setLayoutProperty(l,f,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?s.aD(M.getLayoutProperty(f),v)||(M.setLayoutProperty(f,v,b),this._updateLayer(M)):this.fire(new s.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getLayoutProperty(l,f){let v=this.getLayer(l);if(v)return v.getLayoutProperty(f);this.fire(new s.j(new Error(`Cannot get style of non-existing layer \"${l}\".`)))}setPaintProperty(l,f,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?s.aD(M.getPaintProperty(f),v)||(M.setPaintProperty(f,v,b)&&this._updateLayer(M),this._changed=!0,this._updatedPaintProps[l]=!0):this.fire(new s.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getPaintProperty(l,f){return this.getLayer(l).getPaintProperty(f)}setFeatureState(l,f){this._checkLoaded();let v=l.source,b=l.sourceLayer,M=this.sourceCaches[v];if(M===void 0)return void this.fire(new s.j(new Error(`The source '${v}' does not exist in the map's style.`)));let O=M.getSource().type;O===\"geojson\"&&b?this.fire(new s.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):O!==\"vector\"||b?(l.id===void 0&&this.fire(new s.j(new Error(\"The feature id parameter must be provided.\"))),M.setFeatureState(b,l.id,f)):this.fire(new s.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}removeFeatureState(l,f){this._checkLoaded();let v=l.source,b=this.sourceCaches[v];if(b===void 0)return void this.fire(new s.j(new Error(`The source '${v}' does not exist in the map's style.`)));let M=b.getSource().type,O=M===\"vector\"?l.sourceLayer:void 0;M!==\"vector\"||O?f&&typeof l.id!=\"string\"&&typeof l.id!=\"number\"?this.fire(new s.j(new Error(\"A feature id is required to remove its specific state property.\"))):b.removeFeatureState(O,l.id,f):this.fire(new s.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}getFeatureState(l){this._checkLoaded();let f=l.source,v=l.sourceLayer,b=this.sourceCaches[f];if(b!==void 0)return b.getSource().type!==\"vector\"||v?(l.id===void 0&&this.fire(new s.j(new Error(\"The feature id parameter must be provided.\"))),b.getFeatureState(v,l.id)):void this.fire(new s.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));this.fire(new s.j(new Error(`The source '${f}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;let l=s.aE(this.sourceCaches,M=>M.serialize()),f=this._serializeByIds(this._order),v=this.map.getTerrain()||void 0,b=this.stylesheet;return s.aF({version:b.version,name:b.name,metadata:b.metadata,light:b.light,center:b.center,zoom:b.zoom,bearing:b.bearing,pitch:b.pitch,sprite:b.sprite,glyphs:b.glyphs,transition:b.transition,sources:l,layers:f,terrain:v},M=>M!==void 0)}_updateLayer(l){this._updatedLayers[l.id]=!0,l.source&&!this._updatedSources[l.source]&&this.sourceCaches[l.source].getSource().type!==\"raster\"&&(this._updatedSources[l.source]=\"reload\",this.sourceCaches[l.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(l){let f=O=>this._layers[O].type===\"fill-extrusion\",v={},b=[];for(let O=this._order.length-1;O>=0;O--){let F=this._order[O];if(f(F)){v[F]=O;for(let U of l){let W=U[F];if(W)for(let $ of W)b.push($)}}}b.sort((O,F)=>F.intersectionZ-O.intersectionZ);let M=[];for(let O=this._order.length-1;O>=0;O--){let F=this._order[O];if(f(F))for(let U=b.length-1;U>=0;U--){let W=b[U].feature;if(v[W.layer.id]{let he=kt.featureSortOrder;if(he){let ce=he.indexOf(Ht.featureIndex);return he.indexOf(ne.featureIndex)-ce}return ne.featureIndex-Ht.featureIndex});for(let Ht of Zt)Nt.push(Ht)}}for(let kt in _t)_t[kt].forEach(Wt=>{let St=Wt.feature,Nt=W[F[kt].source].getFeatureState(St.layer[\"source-layer\"],St.id);St.source=St.layer.source,St.layer[\"source-layer\"]&&(St.sourceLayer=St.layer[\"source-layer\"]),St.state=Nt});return _t}(this._layers,O,this.sourceCaches,l,f,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(M)}querySourceFeatures(l,f){f&&f.filter&&this._validate(s.x.filter,\"querySourceFeatures.filter\",f.filter,null,f);let v=this.sourceCaches[l];return v?function(b,M){let O=b.getRenderableIds().map(W=>b.getTileByID(W)),F=[],U={};for(let W=0;Wat.getTileByID(gt)).sort((gt,_t)=>_t.tileID.overscaledZ-gt.tileID.overscaledZ||(gt.tileID.isLessThan(_t.tileID)?-1:1))}let X=this.crossTileSymbolIndex.addLayer($,U[$.source],l.center.lng);O=O||X}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((M=M||this._layerOrderChanged||v===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(_.now(),l.zoom))&&(this.pauseablePlacement=new Wn(l,this.map.terrain,this._order,M,f,v,b,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,U),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(_.now()),F=!0),O&&this.pauseablePlacement.placement.setStale()),F||O)for(let W of this._order){let $=this._layers[W];$.type===\"symbol\"&&this.placement.updateLayerOpacities($,U[$.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(_.now())}_releaseSymbolFadeTiles(){for(let l in this.sourceCaches)this.sourceCaches[l].releaseSymbolFadeTiles()}getImages(l,f){return s._(this,void 0,void 0,function*(){let v=yield this.imageManager.getImages(f.icons);this._updateTilesForChangedImages();let b=this.sourceCaches[f.source];return b&&b.setDependencies(f.tileID.key,f.type,f.icons),v})}getGlyphs(l,f){return s._(this,void 0,void 0,function*(){let v=yield this.glyphManager.getGlyphs(f.stacks),b=this.sourceCaches[f.source];return b&&b.setDependencies(f.tileID.key,f.type,[\"\"]),v})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(l,f={}){this._checkLoaded(),l&&this._validate(s.x.glyphs,\"glyphs\",l,null,f)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=l,this.glyphManager.entries={},this.glyphManager.setURL(l))}addSprite(l,f,v={},b){this._checkLoaded();let M=[{id:l,url:f}],O=[...oe(this.stylesheet.sprite),...M];this._validate(s.x.sprite,\"sprite\",O,null,v)||(this.stylesheet.sprite=O,this._loadSprite(M,!0,b))}removeSprite(l){this._checkLoaded();let f=oe(this.stylesheet.sprite);if(f.find(v=>v.id===l)){if(this._spritesImagesIds[l])for(let v of this._spritesImagesIds[l])this.imageManager.removeImage(v),this._changedImages[v]=!0;f.splice(f.findIndex(v=>v.id===l),1),this.stylesheet.sprite=f.length>0?f:void 0,delete this._spritesImagesIds[l],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new s.k(\"data\",{dataType:\"style\"}))}else this.fire(new s.j(new Error(`Sprite \"${l}\" doesn't exists on this map.`)))}getSprite(){return oe(this.stylesheet.sprite)}setSprite(l,f={},v){this._checkLoaded(),l&&this._validate(s.x.sprite,\"sprite\",l,null,f)||(this.stylesheet.sprite=l,l?this._loadSprite(l,!0,v):(this._unloadSprite(),v&&v(null)))}}var ch=s.X([{name:\"a_pos\",type:\"Int16\",components:2}]),qo=\"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\";let ca={prelude:Ti(`#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n`,`#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}`),background:Ti(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),backgroundPattern:Ti(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),circle:Ti(`varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:Ti(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:Ti(`uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:Ti(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),collisionBox:Ti(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),collisionCircle:Ti(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\",\"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:Ti(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\",\"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"),fill:Ti(`#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:Ti(`varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:Ti(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:Ti(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:Ti(`varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:Ti(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:Ti(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:Ti(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),line:Ti(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),lineGradient:Ti(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),linePattern:Ti(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:Ti(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:Ti(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),symbolIcon:Ti(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:Ti(`#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:Ti(`#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:Ti(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",qo),terrainDepth:Ti(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\",qo),terrainCoords:Ti(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\",qo)};function Ti(T,l){let f=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,v=l.match(/attribute ([\\w]+) ([\\w]+)/g),b=T.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),M=l.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),O=M?M.concat(b):b,F={};return{fragmentSource:T=T.replace(f,(U,W,$,X,at)=>(F[at]=!0,W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${at}\nvarying ${$} ${X} ${at};\n#else\nuniform ${$} ${X} u_${at};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${at}\n ${$} ${X} ${at} = u_${at};\n#endif\n`)),vertexSource:l=l.replace(f,(U,W,$,X,at)=>{let gt=X===\"float\"?\"vec2\":\"vec4\",_t=at.match(/color/)?\"color\":gt;return F[at]?W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${at}\nuniform lowp float u_${at}_t;\nattribute ${$} ${gt} a_${at};\nvarying ${$} ${X} ${at};\n#else\nuniform ${$} ${X} u_${at};\n#endif\n`:_t===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${at}\n ${at} = a_${at};\n#else\n ${$} ${X} ${at} = u_${at};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${at}\n ${at} = unpack_mix_${_t}(a_${at}, u_${at}_t);\n#else\n ${$} ${X} ${at} = u_${at};\n#endif\n`:W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${at}\nuniform lowp float u_${at}_t;\nattribute ${$} ${gt} a_${at};\n#else\nuniform ${$} ${X} u_${at};\n#endif\n`:_t===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${at}\n ${$} ${X} ${at} = a_${at};\n#else\n ${$} ${X} ${at} = u_${at};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${at}\n ${$} ${X} ${at} = unpack_mix_${_t}(a_${at}, u_${at}_t);\n#else\n ${$} ${X} ${at} = u_${at};\n#endif\n`}),staticAttributes:v,staticUniforms:O}}class df{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(l,f,v,b,M,O,F,U,W){this.context=l;let $=this.boundPaintVertexBuffers.length!==b.length;for(let X=0;!$&&X({u_depth:new s.aG(Ht,ne.u_depth),u_terrain:new s.aG(Ht,ne.u_terrain),u_terrain_dim:new s.aH(Ht,ne.u_terrain_dim),u_terrain_matrix:new s.aI(Ht,ne.u_terrain_matrix),u_terrain_unpack:new s.aJ(Ht,ne.u_terrain_unpack),u_terrain_exaggeration:new s.aH(Ht,ne.u_terrain_exaggeration)}))(l,Zt),this.binderUniforms=v?v.getUniforms(l,Zt):[]}draw(l,f,v,b,M,O,F,U,W,$,X,at,gt,_t,yt,At,kt,Wt){let St=l.gl;if(this.failedToCreate)return;if(l.program.set(this.program),l.setDepthMode(v),l.setStencilMode(b),l.setColorMode(M),l.setCullFace(O),U){l.activeTexture.set(St.TEXTURE2),St.bindTexture(St.TEXTURE_2D,U.depthTexture),l.activeTexture.set(St.TEXTURE3),St.bindTexture(St.TEXTURE_2D,U.texture);for(let Zt in this.terrainUniforms)this.terrainUniforms[Zt].set(U[Zt])}for(let Zt in this.fixedUniforms)this.fixedUniforms[Zt].set(F[Zt]);yt&&yt.setUniforms(l,this.binderUniforms,gt,{zoom:_t});let Nt=0;switch(f){case St.LINES:Nt=2;break;case St.TRIANGLES:Nt=3;break;case St.LINE_STRIP:Nt=1}for(let Zt of at.get()){let Ht=Zt.vaos||(Zt.vaos={});(Ht[W]||(Ht[W]=new df)).bind(l,this,$,yt?yt.getPaintVertexBuffers():[],X,Zt.vertexOffset,At,kt,Wt),St.drawElements(f,Zt.primitiveLength*Nt,St.UNSIGNED_SHORT,Zt.primitiveOffset*Nt*2)}}}function Sd(T,l,f){let v=1/_r(f,1,l.transform.tileZoom),b=Math.pow(2,f.tileID.overscaledZ),M=f.tileSize*Math.pow(2,l.transform.tileZoom)/b,O=M*(f.tileID.canonical.x+f.tileID.wrap*b),F=M*f.tileID.canonical.y;return{u_image:0,u_texsize:f.imageAtlasTexture.size,u_scale:[v,T.fromScale,T.toScale],u_fade:T.t,u_pixel_coord_upper:[O>>16,F>>16],u_pixel_coord_lower:[65535&O,65535&F]}}let pf=(T,l,f,v)=>{let b=l.style.light,M=b.properties.get(\"position\"),O=[M.x,M.y,M.z],F=function(){var W=new s.A(9);return s.A!=Float32Array&&(W[1]=0,W[2]=0,W[3]=0,W[5]=0,W[6]=0,W[7]=0),W[0]=1,W[4]=1,W[8]=1,W}();b.properties.get(\"anchor\")===\"viewport\"&&function(W,$){var X=Math.sin($),at=Math.cos($);W[0]=at,W[1]=X,W[2]=0,W[3]=-X,W[4]=at,W[5]=0,W[6]=0,W[7]=0,W[8]=1}(F,-l.transform.angle),function(W,$,X){var at=$[0],gt=$[1],_t=$[2];W[0]=at*X[0]+gt*X[3]+_t*X[6],W[1]=at*X[1]+gt*X[4]+_t*X[7],W[2]=at*X[2]+gt*X[5]+_t*X[8]}(O,O,F);let U=b.properties.get(\"color\");return{u_matrix:T,u_lightpos:O,u_lightintensity:b.properties.get(\"intensity\"),u_lightcolor:[U.r,U.g,U.b],u_vertical_gradient:+f,u_opacity:v}},ut=(T,l,f,v,b,M,O)=>s.e(pf(T,l,f,v),Sd(M,l,O),{u_height_factor:-Math.pow(2,b.overscaledZ)/O.tileSize/8}),dt=T=>({u_matrix:T}),Ct=(T,l,f,v)=>s.e(dt(T),Sd(f,l,v)),$t=(T,l)=>({u_matrix:T,u_world:l}),me=(T,l,f,v,b)=>s.e(Ct(T,l,f,v),{u_world:b}),Ze=(T,l,f,v)=>{let b=T.transform,M,O;if(v.paint.get(\"circle-pitch-alignment\")===\"map\"){let F=_r(f,1,b.zoom);M=!0,O=[F,F]}else M=!1,O=b.pixelsToGLUnits;return{u_camera_to_center_distance:b.cameraToCenterDistance,u_scale_with_map:+(v.paint.get(\"circle-pitch-scale\")===\"map\"),u_matrix:T.translatePosMatrix(l.posMatrix,f,v.paint.get(\"circle-translate\"),v.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+M,u_device_pixel_ratio:T.pixelRatio,u_extrude_scale:O}},ni=(T,l,f)=>{let v=_r(f,1,l.zoom),b=Math.pow(2,l.zoom-f.tileID.overscaledZ),M=f.tileID.overscaleFactor();return{u_matrix:T,u_camera_to_center_distance:l.cameraToCenterDistance,u_pixels_to_tile_units:v,u_extrude_scale:[l.pixelsToGLUnits[0]/(v*b),l.pixelsToGLUnits[1]/(v*b)],u_overscale_factor:M}},rs=(T,l,f=1)=>({u_matrix:T,u_color:l,u_overlay:0,u_overlay_scale:f}),Hn=T=>({u_matrix:T}),zs=(T,l,f,v)=>({u_matrix:T,u_extrude_scale:_r(l,1,f),u_intensity:v});function Da(T,l){let f=Math.pow(2,l.canonical.z),v=l.canonical.y;return[new s.Y(0,v/f).toLngLat().lat,new s.Y(0,(v+1)/f).toLngLat().lat]}let zm=(T,l,f,v)=>{let b=T.transform;return{u_matrix:Np(T,l,f,v),u_ratio:1/_r(l,1,b.zoom),u_device_pixel_ratio:T.pixelRatio,u_units_to_pixels:[1/b.pixelsToGLUnits[0],1/b.pixelsToGLUnits[1]]}},bx=(T,l,f,v,b)=>s.e(zm(T,l,f,b),{u_image:0,u_image_height:v}),Af=(T,l,f,v,b)=>{let M=T.transform,O=Oa(l,M);return{u_matrix:Np(T,l,f,b),u_texsize:l.imageAtlasTexture.size,u_ratio:1/_r(l,1,M.zoom),u_device_pixel_ratio:T.pixelRatio,u_image:0,u_scale:[O,v.fromScale,v.toScale],u_fade:v.t,u_units_to_pixels:[1/M.pixelsToGLUnits[0],1/M.pixelsToGLUnits[1]]}},Nm=(T,l,f,v,b,M)=>{let O=T.lineAtlas,F=Oa(l,T.transform),U=f.layout.get(\"line-cap\")===\"round\",W=O.getDash(v.from,U),$=O.getDash(v.to,U),X=W.width*b.fromScale,at=$.width*b.toScale;return s.e(zm(T,l,f,M),{u_patternscale_a:[F/X,-W.height/2],u_patternscale_b:[F/at,-$.height/2],u_sdfgamma:O.width/(256*Math.min(X,at)*T.pixelRatio)/2,u_image:0,u_tex_y_a:W.y,u_tex_y_b:$.y,u_mix:b.t})};function Oa(T,l){return 1/_r(T,1,l.tileZoom)}function Np(T,l,f,v){return T.translatePosMatrix(v?v.posMatrix:l.tileID.posMatrix,l,f.paint.get(\"line-translate\"),f.paint.get(\"line-translate-anchor\"))}let Um=(T,l,f,v,b)=>{return{u_matrix:T,u_tl_parent:l,u_scale_parent:f,u_buffer_scale:1,u_fade_t:v.mix,u_opacity:v.opacity*b.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:b.paint.get(\"raster-brightness-min\"),u_brightness_high:b.paint.get(\"raster-brightness-max\"),u_saturation_factor:(O=b.paint.get(\"raster-saturation\"),O>0?1-1/(1.001-O):-O),u_contrast_factor:(M=b.paint.get(\"raster-contrast\"),M>0?1/(1-M):1+M),u_spin_weights:Up(b.paint.get(\"raster-hue-rotate\"))};var M,O};function Up(T){T*=Math.PI/180;let l=Math.sin(T),f=Math.cos(T);return[(2*f+1)/3,(-Math.sqrt(3)*l-f+1)/3,(Math.sqrt(3)*l-f+1)/3]}let Vp=(T,l,f,v,b,M,O,F,U,W)=>{let $=b.transform;return{u_is_size_zoom_constant:+(T===\"constant\"||T===\"source\"),u_is_size_feature_constant:+(T===\"constant\"||T===\"camera\"),u_size_t:l?l.uSizeT:0,u_size:l?l.uSize:0,u_camera_to_center_distance:$.cameraToCenterDistance,u_pitch:$.pitch/360*2*Math.PI,u_rotate_symbol:+f,u_aspect_ratio:$.width/$.height,u_fade_change:b.options.fadeDuration?b.symbolFadeChange:1,u_matrix:M,u_label_plane_matrix:O,u_coord_matrix:F,u_is_text:+U,u_pitch_with_map:+v,u_texsize:W,u_texture:0}},jp=(T,l,f,v,b,M,O,F,U,W,$)=>{let X=b.transform;return s.e(Vp(T,l,f,v,b,M,O,F,U,W),{u_gamma_scale:v?Math.cos(X._pitch)*X.cameraToCenterDistance:1,u_device_pixel_ratio:b.pixelRatio,u_is_halo:+$})},Gp=(T,l,f,v,b,M,O,F,U,W)=>s.e(jp(T,l,f,v,b,M,O,F,!0,U,!0),{u_texsize_icon:W,u_texture_icon:1}),LS=(T,l,f)=>({u_matrix:T,u_opacity:l,u_color:f}),kS=(T,l,f,v,b,M)=>s.e(function(O,F,U,W){let $=U.imageManager.getPattern(O.from.toString()),X=U.imageManager.getPattern(O.to.toString()),{width:at,height:gt}=U.imageManager.getPixelSize(),_t=Math.pow(2,W.tileID.overscaledZ),yt=W.tileSize*Math.pow(2,U.transform.tileZoom)/_t,At=yt*(W.tileID.canonical.x+W.tileID.wrap*_t),kt=yt*W.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:$.tl,u_pattern_br_a:$.br,u_pattern_tl_b:X.tl,u_pattern_br_b:X.br,u_texsize:[at,gt],u_mix:F.t,u_pattern_size_a:$.displaySize,u_pattern_size_b:X.displaySize,u_scale_a:F.fromScale,u_scale_b:F.toScale,u_tile_units_to_pixels:1/_r(W,1,U.transform.tileZoom),u_pixel_coord_upper:[At>>16,kt>>16],u_pixel_coord_lower:[65535&At,65535&kt]}}(v,M,f,b),{u_matrix:T,u_opacity:l}),wx={fillExtrusion:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_lightpos:new s.aK(T,l.u_lightpos),u_lightintensity:new s.aH(T,l.u_lightintensity),u_lightcolor:new s.aK(T,l.u_lightcolor),u_vertical_gradient:new s.aH(T,l.u_vertical_gradient),u_opacity:new s.aH(T,l.u_opacity)}),fillExtrusionPattern:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_lightpos:new s.aK(T,l.u_lightpos),u_lightintensity:new s.aH(T,l.u_lightintensity),u_lightcolor:new s.aK(T,l.u_lightcolor),u_vertical_gradient:new s.aH(T,l.u_vertical_gradient),u_height_factor:new s.aH(T,l.u_height_factor),u_image:new s.aG(T,l.u_image),u_texsize:new s.aL(T,l.u_texsize),u_pixel_coord_upper:new s.aL(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new s.aL(T,l.u_pixel_coord_lower),u_scale:new s.aK(T,l.u_scale),u_fade:new s.aH(T,l.u_fade),u_opacity:new s.aH(T,l.u_opacity)}),fill:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix)}),fillPattern:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_image:new s.aG(T,l.u_image),u_texsize:new s.aL(T,l.u_texsize),u_pixel_coord_upper:new s.aL(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new s.aL(T,l.u_pixel_coord_lower),u_scale:new s.aK(T,l.u_scale),u_fade:new s.aH(T,l.u_fade)}),fillOutline:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_world:new s.aL(T,l.u_world)}),fillOutlinePattern:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_world:new s.aL(T,l.u_world),u_image:new s.aG(T,l.u_image),u_texsize:new s.aL(T,l.u_texsize),u_pixel_coord_upper:new s.aL(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new s.aL(T,l.u_pixel_coord_lower),u_scale:new s.aK(T,l.u_scale),u_fade:new s.aH(T,l.u_fade)}),circle:(T,l)=>({u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_scale_with_map:new s.aG(T,l.u_scale_with_map),u_pitch_with_map:new s.aG(T,l.u_pitch_with_map),u_extrude_scale:new s.aL(T,l.u_extrude_scale),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_matrix:new s.aI(T,l.u_matrix)}),collisionBox:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_pixels_to_tile_units:new s.aH(T,l.u_pixels_to_tile_units),u_extrude_scale:new s.aL(T,l.u_extrude_scale),u_overscale_factor:new s.aH(T,l.u_overscale_factor)}),collisionCircle:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_inv_matrix:new s.aI(T,l.u_inv_matrix),u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_viewport_size:new s.aL(T,l.u_viewport_size)}),debug:(T,l)=>({u_color:new s.aM(T,l.u_color),u_matrix:new s.aI(T,l.u_matrix),u_overlay:new s.aG(T,l.u_overlay),u_overlay_scale:new s.aH(T,l.u_overlay_scale)}),clippingMask:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix)}),heatmap:(T,l)=>({u_extrude_scale:new s.aH(T,l.u_extrude_scale),u_intensity:new s.aH(T,l.u_intensity),u_matrix:new s.aI(T,l.u_matrix)}),heatmapTexture:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_world:new s.aL(T,l.u_world),u_image:new s.aG(T,l.u_image),u_color_ramp:new s.aG(T,l.u_color_ramp),u_opacity:new s.aH(T,l.u_opacity)}),hillshade:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_image:new s.aG(T,l.u_image),u_latrange:new s.aL(T,l.u_latrange),u_light:new s.aL(T,l.u_light),u_shadow:new s.aM(T,l.u_shadow),u_highlight:new s.aM(T,l.u_highlight),u_accent:new s.aM(T,l.u_accent)}),hillshadePrepare:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_image:new s.aG(T,l.u_image),u_dimension:new s.aL(T,l.u_dimension),u_zoom:new s.aH(T,l.u_zoom),u_unpack:new s.aJ(T,l.u_unpack)}),line:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_ratio:new s.aH(T,l.u_ratio),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_units_to_pixels:new s.aL(T,l.u_units_to_pixels)}),lineGradient:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_ratio:new s.aH(T,l.u_ratio),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_units_to_pixels:new s.aL(T,l.u_units_to_pixels),u_image:new s.aG(T,l.u_image),u_image_height:new s.aH(T,l.u_image_height)}),linePattern:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_texsize:new s.aL(T,l.u_texsize),u_ratio:new s.aH(T,l.u_ratio),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_image:new s.aG(T,l.u_image),u_units_to_pixels:new s.aL(T,l.u_units_to_pixels),u_scale:new s.aK(T,l.u_scale),u_fade:new s.aH(T,l.u_fade)}),lineSDF:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_ratio:new s.aH(T,l.u_ratio),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_units_to_pixels:new s.aL(T,l.u_units_to_pixels),u_patternscale_a:new s.aL(T,l.u_patternscale_a),u_patternscale_b:new s.aL(T,l.u_patternscale_b),u_sdfgamma:new s.aH(T,l.u_sdfgamma),u_image:new s.aG(T,l.u_image),u_tex_y_a:new s.aH(T,l.u_tex_y_a),u_tex_y_b:new s.aH(T,l.u_tex_y_b),u_mix:new s.aH(T,l.u_mix)}),raster:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_tl_parent:new s.aL(T,l.u_tl_parent),u_scale_parent:new s.aH(T,l.u_scale_parent),u_buffer_scale:new s.aH(T,l.u_buffer_scale),u_fade_t:new s.aH(T,l.u_fade_t),u_opacity:new s.aH(T,l.u_opacity),u_image0:new s.aG(T,l.u_image0),u_image1:new s.aG(T,l.u_image1),u_brightness_low:new s.aH(T,l.u_brightness_low),u_brightness_high:new s.aH(T,l.u_brightness_high),u_saturation_factor:new s.aH(T,l.u_saturation_factor),u_contrast_factor:new s.aH(T,l.u_contrast_factor),u_spin_weights:new s.aK(T,l.u_spin_weights)}),symbolIcon:(T,l)=>({u_is_size_zoom_constant:new s.aG(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new s.aG(T,l.u_is_size_feature_constant),u_size_t:new s.aH(T,l.u_size_t),u_size:new s.aH(T,l.u_size),u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_pitch:new s.aH(T,l.u_pitch),u_rotate_symbol:new s.aG(T,l.u_rotate_symbol),u_aspect_ratio:new s.aH(T,l.u_aspect_ratio),u_fade_change:new s.aH(T,l.u_fade_change),u_matrix:new s.aI(T,l.u_matrix),u_label_plane_matrix:new s.aI(T,l.u_label_plane_matrix),u_coord_matrix:new s.aI(T,l.u_coord_matrix),u_is_text:new s.aG(T,l.u_is_text),u_pitch_with_map:new s.aG(T,l.u_pitch_with_map),u_texsize:new s.aL(T,l.u_texsize),u_texture:new s.aG(T,l.u_texture)}),symbolSDF:(T,l)=>({u_is_size_zoom_constant:new s.aG(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new s.aG(T,l.u_is_size_feature_constant),u_size_t:new s.aH(T,l.u_size_t),u_size:new s.aH(T,l.u_size),u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_pitch:new s.aH(T,l.u_pitch),u_rotate_symbol:new s.aG(T,l.u_rotate_symbol),u_aspect_ratio:new s.aH(T,l.u_aspect_ratio),u_fade_change:new s.aH(T,l.u_fade_change),u_matrix:new s.aI(T,l.u_matrix),u_label_plane_matrix:new s.aI(T,l.u_label_plane_matrix),u_coord_matrix:new s.aI(T,l.u_coord_matrix),u_is_text:new s.aG(T,l.u_is_text),u_pitch_with_map:new s.aG(T,l.u_pitch_with_map),u_texsize:new s.aL(T,l.u_texsize),u_texture:new s.aG(T,l.u_texture),u_gamma_scale:new s.aH(T,l.u_gamma_scale),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_is_halo:new s.aG(T,l.u_is_halo)}),symbolTextAndIcon:(T,l)=>({u_is_size_zoom_constant:new s.aG(T,l.u_is_size_zoom_constant),u_is_size_feature_constant:new s.aG(T,l.u_is_size_feature_constant),u_size_t:new s.aH(T,l.u_size_t),u_size:new s.aH(T,l.u_size),u_camera_to_center_distance:new s.aH(T,l.u_camera_to_center_distance),u_pitch:new s.aH(T,l.u_pitch),u_rotate_symbol:new s.aG(T,l.u_rotate_symbol),u_aspect_ratio:new s.aH(T,l.u_aspect_ratio),u_fade_change:new s.aH(T,l.u_fade_change),u_matrix:new s.aI(T,l.u_matrix),u_label_plane_matrix:new s.aI(T,l.u_label_plane_matrix),u_coord_matrix:new s.aI(T,l.u_coord_matrix),u_is_text:new s.aG(T,l.u_is_text),u_pitch_with_map:new s.aG(T,l.u_pitch_with_map),u_texsize:new s.aL(T,l.u_texsize),u_texsize_icon:new s.aL(T,l.u_texsize_icon),u_texture:new s.aG(T,l.u_texture),u_texture_icon:new s.aG(T,l.u_texture_icon),u_gamma_scale:new s.aH(T,l.u_gamma_scale),u_device_pixel_ratio:new s.aH(T,l.u_device_pixel_ratio),u_is_halo:new s.aG(T,l.u_is_halo)}),background:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_opacity:new s.aH(T,l.u_opacity),u_color:new s.aM(T,l.u_color)}),backgroundPattern:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_opacity:new s.aH(T,l.u_opacity),u_image:new s.aG(T,l.u_image),u_pattern_tl_a:new s.aL(T,l.u_pattern_tl_a),u_pattern_br_a:new s.aL(T,l.u_pattern_br_a),u_pattern_tl_b:new s.aL(T,l.u_pattern_tl_b),u_pattern_br_b:new s.aL(T,l.u_pattern_br_b),u_texsize:new s.aL(T,l.u_texsize),u_mix:new s.aH(T,l.u_mix),u_pattern_size_a:new s.aL(T,l.u_pattern_size_a),u_pattern_size_b:new s.aL(T,l.u_pattern_size_b),u_scale_a:new s.aH(T,l.u_scale_a),u_scale_b:new s.aH(T,l.u_scale_b),u_pixel_coord_upper:new s.aL(T,l.u_pixel_coord_upper),u_pixel_coord_lower:new s.aL(T,l.u_pixel_coord_lower),u_tile_units_to_pixels:new s.aH(T,l.u_tile_units_to_pixels)}),terrain:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_texture:new s.aG(T,l.u_texture),u_ele_delta:new s.aH(T,l.u_ele_delta)}),terrainDepth:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_ele_delta:new s.aH(T,l.u_ele_delta)}),terrainCoords:(T,l)=>({u_matrix:new s.aI(T,l.u_matrix),u_texture:new s.aG(T,l.u_texture),u_terrain_coords_id:new s.aH(T,l.u_terrain_coords_id),u_ele_delta:new s.aH(T,l.u_ele_delta)})};class RS{constructor(l,f,v){this.context=l;let b=l.gl;this.buffer=b.createBuffer(),this.dynamicDraw=!!v,this.context.unbindVAO(),l.bindElementBuffer.set(this.buffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?b.DYNAMIC_DRAW:b.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(l){let f=this.context.gl;if(!this.dynamicDraw)throw new Error(\"Attempted to update data while not in dynamic mode.\");this.context.unbindVAO(),this.bind(),f.bufferSubData(f.ELEMENT_ARRAY_BUFFER,0,l.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}let mf={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Vm{constructor(l,f,v,b){this.length=f.length,this.attributes=v,this.itemSize=f.bytesPerElement,this.dynamicDraw=b,this.context=l;let M=l.gl;this.buffer=M.createBuffer(),l.bindVertexBuffer.set(this.buffer),M.bufferData(M.ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?M.DYNAMIC_DRAW:M.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(l){if(l.length!==this.length)throw new Error(`Length of new data is ${l.length}, which doesn't match current length of ${this.length}`);let f=this.context.gl;this.bind(),f.bufferSubData(f.ARRAY_BUFFER,0,l.arrayBuffer)}enableAttributes(l,f){for(let v=0;v0){let ge=s.F(),Ue=ne;s.aP(ge,Ht.placementInvProjMatrix,T.transform.glCoordMatrix),s.aP(ge,ge,Ht.placementViewportMatrix),$.push({circleArray:ce,circleOffset:at,transform:Ue,invTransform:ge,coord:Nt}),X+=ce.length/4,at=X}he&&W.draw(F,U.LINES,oi.disabled,en.disabled,T.colorModeForRenderPass(),Ni.disabled,ni(ne,T.transform,Zt),T.style.map.terrain&&T.style.map.terrain.getTerrainData(Nt),f.id,he.layoutVertexBuffer,he.indexBuffer,he.segments,null,T.transform.zoom,null,null,he.collisionVertexBuffer)}if(!O||!$.length)return;let gt=T.useProgram(\"collisionCircle\"),_t=new s.aQ;_t.resize(4*X),_t._trim();let yt=0;for(let St of $)for(let Nt=0;Nt=0&&(_t[At.associatedIconIndex]={shiftedAnchor:ur,angle:Me})}else re(At.numGlyphs,at)}if(W){gt.clear();let yt=T.icon.placedSymbolArray;for(let At=0;AtT.style.map.terrain.getElevation(he,Cs,En):null,Bi=f.layout.get(\"text-rotation-alignment\")===\"map\";nt(ge,he.posMatrix,T,b,js,ha,At,W,Bi,Xe)}let kf=T.translatePosMatrix(he.posMatrix,ce,M,O),bu=kt||b&&Ht||Lf?qm:js,us=T.translatePosMatrix(ha,ce,M,O,!0),Zn=Me&&f.paint.get(b?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,nn;nn=Me?ge.iconsInText?Gp(ar.kind,Jr,Wt,At,T,kf,bu,us,$r,Is):jp(ar.kind,Jr,Wt,At,T,kf,bu,us,b,$r,!0):Vp(ar.kind,Jr,Wt,At,T,kf,bu,us,b,$r);let dn={program:rn,buffers:Ue,uniformValues:nn,atlasTexture:On,atlasTextureIcon:Mn,atlasInterpolation:Dr,atlasInterpolationIcon:So,isSDF:Me,hasHalo:Zn};if(St&&ge.canOverlap){Nt=!0;let Xe=Ue.segments.get();for(let Bi of Xe)ne.push({segments:new s.$([Bi]),sortKey:Bi.sortKey,state:dn,terrainData:Fr})}else ne.push({segments:Ue.segments,sortKey:0,state:dn,terrainData:Fr})}Nt&&ne.sort((he,ce)=>he.sortKey-ce.sortKey);for(let he of ne){let ce=he.state;if(at.activeTexture.set(gt.TEXTURE0),ce.atlasTexture.bind(ce.atlasInterpolation,gt.CLAMP_TO_EDGE),ce.atlasTextureIcon&&(at.activeTexture.set(gt.TEXTURE1),ce.atlasTextureIcon&&ce.atlasTextureIcon.bind(ce.atlasInterpolationIcon,gt.CLAMP_TO_EDGE)),ce.isSDF){let ge=ce.uniformValues;ce.hasHalo&&(ge.u_is_halo=1,Xg(ce.buffers,he.segments,f,T,ce.program,Zt,$,X,ge,he.terrainData)),ge.u_is_halo=0}Xg(ce.buffers,he.segments,f,T,ce.program,Zt,$,X,ce.uniformValues,he.terrainData)}}function Xg(T,l,f,v,b,M,O,F,U,W){let $=v.context;b.draw($,$.gl.TRIANGLES,M,O,F,Ni.disabled,U,W,f.id,T.layoutVertexBuffer,T.indexBuffer,l,f.paint,v.transform.zoom,T.programConfigurations.get(f.id),T.dynamicLayoutVertexBuffer,T.opacityVertexBuffer)}function Pd(T,l,f,v,b){if(!f||!v||!v.imageAtlas)return;let M=v.imageAtlas.patternPositions,O=M[f.to.toString()],F=M[f.from.toString()];if(!O&&F&&(O=F),!F&&O&&(F=O),!O||!F){let U=b.getPaintProperty(l);O=M[U],F=M[U]}O&&F&&T.setConstantPatternPositions(O,F)}function Kg(T,l,f,v,b,M,O){let F=T.context.gl,U=\"fill-pattern\",W=f.paint.get(U),$=W&&W.constantOr(1),X=f.getCrossfadeParameters(),at,gt,_t,yt,At;O?(gt=$&&!f.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",at=F.LINES):(gt=$?\"fillPattern\":\"fill\",at=F.TRIANGLES);let kt=W.constantOr(null);for(let Wt of v){let St=l.getTile(Wt);if($&&!St.patternsLoaded())continue;let Nt=St.getBucket(f);if(!Nt)continue;let Zt=Nt.programConfigurations.get(f.id),Ht=T.useProgram(gt,Zt),ne=T.style.map.terrain&&T.style.map.terrain.getTerrainData(Wt);$&&(T.context.activeTexture.set(F.TEXTURE0),St.imageAtlasTexture.bind(F.LINEAR,F.CLAMP_TO_EDGE),Zt.updatePaintBuffers(X)),Pd(Zt,U,kt,St,f);let he=ne?Wt:null,ce=T.translatePosMatrix(he?he.posMatrix:Wt.posMatrix,St,f.paint.get(\"fill-translate\"),f.paint.get(\"fill-translate-anchor\"));if(O){yt=Nt.indexBuffer2,At=Nt.segments2;let ge=[F.drawingBufferWidth,F.drawingBufferHeight];_t=gt===\"fillOutlinePattern\"&&$?me(ce,T,X,St,ge):$t(ce,ge)}else yt=Nt.indexBuffer,At=Nt.segments,_t=$?Ct(ce,T,X,St):dt(ce);Ht.draw(T.context,at,b,T.stencilModeForClipping(Wt),M,Ni.disabled,_t,ne,f.id,Nt.layoutVertexBuffer,yt,At,f.paint,T.transform.zoom,Zt)}}function vf(T,l,f,v,b,M,O){let F=T.context,U=F.gl,W=\"fill-extrusion-pattern\",$=f.paint.get(W),X=$.constantOr(1),at=f.getCrossfadeParameters(),gt=f.paint.get(\"fill-extrusion-opacity\"),_t=$.constantOr(null);for(let yt of v){let At=l.getTile(yt),kt=At.getBucket(f);if(!kt)continue;let Wt=T.style.map.terrain&&T.style.map.terrain.getTerrainData(yt),St=kt.programConfigurations.get(f.id),Nt=T.useProgram(X?\"fillExtrusionPattern\":\"fillExtrusion\",St);X&&(T.context.activeTexture.set(U.TEXTURE0),At.imageAtlasTexture.bind(U.LINEAR,U.CLAMP_TO_EDGE),St.updatePaintBuffers(at)),Pd(St,W,_t,At,f);let Zt=T.translatePosMatrix(yt.posMatrix,At,f.paint.get(\"fill-extrusion-translate\"),f.paint.get(\"fill-extrusion-translate-anchor\")),Ht=f.paint.get(\"fill-extrusion-vertical-gradient\"),ne=X?ut(Zt,T,Ht,gt,yt,at,At):pf(Zt,T,Ht,gt);Nt.draw(F,F.gl.TRIANGLES,b,M,O,Ni.backCCW,ne,Wt,f.id,kt.layoutVertexBuffer,kt.indexBuffer,kt.segments,f.paint,T.transform.zoom,St,T.style.map.terrain&&kt.centroidVertexBuffer)}}function ua(T,l,f,v,b,M,O){let F=T.context,U=F.gl,W=f.fbo;if(!W)return;let $=T.useProgram(\"hillshade\"),X=T.style.map.terrain&&T.style.map.terrain.getTerrainData(l);F.activeTexture.set(U.TEXTURE0),U.bindTexture(U.TEXTURE_2D,W.colorAttachment.get()),$.draw(F,U.TRIANGLES,b,M,O,Ni.disabled,((at,gt,_t,yt)=>{let At=_t.paint.get(\"hillshade-shadow-color\"),kt=_t.paint.get(\"hillshade-highlight-color\"),Wt=_t.paint.get(\"hillshade-accent-color\"),St=_t.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);_t.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(St-=at.transform.angle);let Nt=!at.options.moving;return{u_matrix:yt?yt.posMatrix:at.transform.calculatePosMatrix(gt.tileID.toUnwrapped(),Nt),u_image:0,u_latrange:Da(0,gt.tileID),u_light:[_t.paint.get(\"hillshade-exaggeration\"),St],u_shadow:At,u_highlight:kt,u_accent:Wt}})(T,f,v,X?l:null),X,v.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments)}function Rn(T,l,f,v,b,M){let O=T.context,F=O.gl,U=l.dem;if(U&&U.data){let W=U.dim,$=U.stride,X=U.getPixels();if(O.activeTexture.set(F.TEXTURE1),O.pixelStoreUnpackPremultiplyAlpha.set(!1),l.demTexture=l.demTexture||T.getTileTexture($),l.demTexture){let gt=l.demTexture;gt.update(X,{premultiply:!1}),gt.bind(F.NEAREST,F.CLAMP_TO_EDGE)}else l.demTexture=new ae(O,X,F.RGBA,{premultiply:!1}),l.demTexture.bind(F.NEAREST,F.CLAMP_TO_EDGE);O.activeTexture.set(F.TEXTURE0);let at=l.fbo;if(!at){let gt=new ae(O,{width:W,height:W,data:null},F.RGBA);gt.bind(F.LINEAR,F.CLAMP_TO_EDGE),at=l.fbo=O.createFramebuffer(W,W,!0,!1),at.colorAttachment.set(gt.texture)}O.bindFramebuffer.set(at.framebuffer),O.viewport.set([0,0,W,W]),T.useProgram(\"hillshadePrepare\").draw(O,F.TRIANGLES,v,b,M,Ni.disabled,((gt,_t)=>{let yt=_t.stride,At=s.F();return s.aN(At,0,s.W,-s.W,0,0,1),s.H(At,At,[0,-s.W,0]),{u_matrix:At,u_image:1,u_dimension:[yt,yt],u_zoom:gt.overscaledZ,u_unpack:_t.getUnpackVector()}})(l.tileID,U),null,f.id,T.rasterBoundsBuffer,T.quadTriangleIndexBuffer,T.rasterBoundsSegments),l.needsHillshadePrepare=!1}}function Jg(T,l,f,v,b,M){let O=v.paint.get(\"raster-fade-duration\");if(!M&&O>0){let F=_.now(),U=(F-T.timeAdded)/O,W=l?(F-l.timeAdded)/O:-1,$=f.getSource(),X=b.coveringZoomLevel({tileSize:$.tileSize,roundZoom:$.roundZoom}),at=!l||Math.abs(l.tileID.overscaledZ-X)>Math.abs(T.tileID.overscaledZ-X),gt=at&&T.refreshedUponExpiration?1:s.ac(at?U:1-W,0,1);return T.refreshedUponExpiration&&U>=1&&(T.refreshedUponExpiration=!1),l?{opacity:1,mix:1-gt}:{opacity:gt,mix:0}}return{opacity:1,mix:0}}let t_=new s.aO(1,0,0,1),Xp=new s.aO(0,1,0,1),Zm=new s.aO(0,0,1,1),e_=new s.aO(1,0,1,1),r_=new s.aO(0,1,1,1);function Sn(T,l,f,v){Ns(T,0,l+f/2,T.transform.width,f,v)}function Mi(T,l,f,v){Ns(T,l-f/2,0,f,T.transform.height,v)}function Ns(T,l,f,v,b,M){let O=T.context,F=O.gl;F.enable(F.SCISSOR_TEST),F.scissor(l*T.pixelRatio,f*T.pixelRatio,v*T.pixelRatio,b*T.pixelRatio),O.clear({color:M}),F.disable(F.SCISSOR_TEST)}function Kp(T,l,f){let v=T.context,b=v.gl,M=f.posMatrix,O=T.useProgram(\"debug\"),F=oi.disabled,U=en.disabled,W=T.colorModeForRenderPass(),$=\"$debug\",X=T.style.map.terrain&&T.style.map.terrain.getTerrainData(f);v.activeTexture.set(b.TEXTURE0);let at=l.getTileByID(f.key).latestRawTileData,gt=Math.floor((at&&at.byteLength||0)/1024),_t=l.getTile(f).tileSize,yt=512/Math.min(_t,512)*(f.overscaledZ/T.transform.zoom)*.5,At=f.canonical.toString();f.overscaledZ!==f.canonical.z&&(At+=` => ${f.overscaledZ}`),function(kt,Wt){kt.initDebugOverlayCanvas();let St=kt.debugOverlayCanvas,Nt=kt.context.gl,Zt=kt.debugOverlayCanvas.getContext(\"2d\");Zt.clearRect(0,0,St.width,St.height),Zt.shadowColor=\"white\",Zt.shadowBlur=2,Zt.lineWidth=1.5,Zt.strokeStyle=\"white\",Zt.textBaseline=\"top\",Zt.font=\"bold 36px Open Sans, sans-serif\",Zt.fillText(Wt,5,5),Zt.strokeText(Wt,5,5),kt.debugOverlayTexture.update(St),kt.debugOverlayTexture.bind(Nt.LINEAR,Nt.CLAMP_TO_EDGE)}(T,`${At} ${gt}kB`),O.draw(v,b.TRIANGLES,F,U,Pt.alphaBlended,Ni.disabled,rs(M,s.aO.transparent,yt),null,$,T.debugBuffer,T.quadTriangleIndexBuffer,T.debugSegments),O.draw(v,b.LINE_STRIP,F,U,W,Ni.disabled,rs(M,s.aO.red),X,$,T.debugBuffer,T.tileBorderIndexBuffer,T.debugSegments)}function Jp(T,l,f){let v=T.context,b=v.gl,M=T.colorModeForRenderPass(),O=new oi(b.LEQUAL,oi.ReadWrite,T.depthRangeFor3D),F=T.useProgram(\"terrain\"),U=l.getTerrainMesh();v.bindFramebuffer.set(null),v.viewport.set([0,0,T.width,T.height]);for(let W of f){let $=T.renderToTexture.getTexture(W),X=l.getTerrainData(W.tileID);v.activeTexture.set(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,$.texture);let at={u_matrix:T.transform.calculatePosMatrix(W.tileID.toUnwrapped()),u_texture:0,u_ele_delta:l.getMeshFrameDelta(T.transform.zoom)};F.draw(v,b.TRIANGLES,O,en.disabled,M,Ni.backCCW,at,X,\"terrain\",U.vertexBuffer,U.indexBuffer,U.segments)}}class i_{constructor(l,f){this.context=new Li(l),this.transform=f,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.F(),renderTime:0},this.setup(),this.numSublayers=ts.maxUnderzooming+ts.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Ra}resize(l,f,v){if(this.width=Math.floor(l*v),this.height=Math.floor(f*v),this.pixelRatio=v,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let b of this.style._order)this.style._layers[b].resize()}setup(){let l=this.context,f=new s.aV;f.emplaceBack(0,0),f.emplaceBack(s.W,0),f.emplaceBack(0,s.W),f.emplaceBack(s.W,s.W),this.tileExtentBuffer=l.createVertexBuffer(f,ch.members),this.tileExtentSegments=s.$.simpleSegment(0,0,4,2);let v=new s.aV;v.emplaceBack(0,0),v.emplaceBack(s.W,0),v.emplaceBack(0,s.W),v.emplaceBack(s.W,s.W),this.debugBuffer=l.createVertexBuffer(v,ch.members),this.debugSegments=s.$.simpleSegment(0,0,4,5);let b=new s.Z;b.emplaceBack(0,0,0,0),b.emplaceBack(s.W,0,s.W,0),b.emplaceBack(0,s.W,0,s.W),b.emplaceBack(s.W,s.W,s.W,s.W),this.rasterBoundsBuffer=l.createVertexBuffer(b,In.members),this.rasterBoundsSegments=s.$.simpleSegment(0,0,4,2);let M=new s.aV;M.emplaceBack(0,0),M.emplaceBack(1,0),M.emplaceBack(0,1),M.emplaceBack(1,1),this.viewportBuffer=l.createVertexBuffer(M,ch.members),this.viewportSegments=s.$.simpleSegment(0,0,4,2);let O=new s.aW;O.emplaceBack(0),O.emplaceBack(1),O.emplaceBack(3),O.emplaceBack(2),O.emplaceBack(0),this.tileBorderIndexBuffer=l.createIndexBuffer(O);let F=new s.aX;F.emplaceBack(0,1,2),F.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=l.createIndexBuffer(F);let U=this.context.gl;this.stencilClearMode=new en({func:U.ALWAYS,mask:0},0,255,U.ZERO,U.ZERO,U.ZERO)}clearStencil(){let l=this.context,f=l.gl;this.nextStencilID=1,this.currentStencilSource=void 0;let v=s.F();s.aN(v,0,this.width,this.height,0,0,1),s.J(v,v,[f.drawingBufferWidth,f.drawingBufferHeight,0]),this.useProgram(\"clippingMask\").draw(l,f.TRIANGLES,oi.disabled,this.stencilClearMode,Pt.disabled,Ni.disabled,Hn(v),null,\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(l,f){if(this.currentStencilSource===l.source||!l.isTileClipped()||!f||!f.length)return;this.currentStencilSource=l.source;let v=this.context,b=v.gl;this.nextStencilID+f.length>256&&this.clearStencil(),v.setColorMode(Pt.disabled),v.setDepthMode(oi.disabled);let M=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let O of f){let F=this._tileClippingMaskIDs[O.key]=this.nextStencilID++,U=this.style.map.terrain&&this.style.map.terrain.getTerrainData(O);M.draw(v,b.TRIANGLES,oi.disabled,new en({func:b.ALWAYS,mask:0},F,255,b.KEEP,b.KEEP,b.REPLACE),Pt.disabled,Ni.disabled,Hn(O.posMatrix),U,\"$clipping\",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let l=this.nextStencilID++,f=this.context.gl;return new en({func:f.NOTEQUAL,mask:255},l,255,f.KEEP,f.KEEP,f.REPLACE)}stencilModeForClipping(l){let f=this.context.gl;return new en({func:f.EQUAL,mask:255},this._tileClippingMaskIDs[l.key],0,f.KEEP,f.KEEP,f.REPLACE)}stencilConfigForOverlap(l){let f=this.context.gl,v=l.sort((O,F)=>F.overscaledZ-O.overscaledZ),b=v[v.length-1].overscaledZ,M=v[0].overscaledZ-b+1;if(M>1){this.currentStencilSource=void 0,this.nextStencilID+M>256&&this.clearStencil();let O={};for(let F=0;F=0;this.currentLayer--){let U=this.style._layers[v[this.currentLayer]],W=b[U.source],$=M[U.source];this._renderTileClippingMasks(U,$),this.renderLayer(this,W,U,$)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerAt.source&&!At.isHidden($)?[W.sourceCaches[At.source]]:[]),gt=at.filter(At=>At.getSource().type===\"vector\"),_t=at.filter(At=>At.getSource().type!==\"vector\"),yt=At=>{(!X||X.getSource().maxzoomyt(At)),X||_t.forEach(At=>yt(At)),X}(this.style,this.transform.zoom);U&&function(W,$,X){for(let at=0;atgt.style.map.terrain.getElevation(Ht,ar,He):null)}}}(U,M,F,O,F.layout.get(\"text-rotation-alignment\"),F.layout.get(\"text-pitch-alignment\"),W),F.paint.get(\"icon-opacity\").constantOr(1)!==0&&Qp(M,O,F,U,!1,F.paint.get(\"icon-translate\"),F.paint.get(\"icon-translate-anchor\"),F.layout.get(\"icon-rotation-alignment\"),F.layout.get(\"icon-pitch-alignment\"),F.layout.get(\"icon-keep-upright\"),$,X),F.paint.get(\"text-opacity\").constantOr(1)!==0&&Qp(M,O,F,U,!0,F.paint.get(\"text-translate\"),F.paint.get(\"text-translate-anchor\"),F.layout.get(\"text-rotation-alignment\"),F.layout.get(\"text-pitch-alignment\"),F.layout.get(\"text-keep-upright\"),$,X),O.map.showCollisionBoxes&&(wt(M,O,F,U,F.paint.get(\"text-translate\"),F.paint.get(\"text-translate-anchor\"),!0),wt(M,O,F,U,F.paint.get(\"icon-translate\"),F.paint.get(\"icon-translate-anchor\"),!1))})(l,f,v,b,this.style.placement.variableOffsets);break;case\"circle\":(function(M,O,F,U){if(M.renderPass!==\"translucent\")return;let W=F.paint.get(\"circle-opacity\"),$=F.paint.get(\"circle-stroke-width\"),X=F.paint.get(\"circle-stroke-opacity\"),at=!F.layout.get(\"circle-sort-key\").isConstant();if(W.constantOr(1)===0&&($.constantOr(1)===0||X.constantOr(1)===0))return;let gt=M.context,_t=gt.gl,yt=M.depthModeForSublayer(0,oi.ReadOnly),At=en.disabled,kt=M.colorModeForRenderPass(),Wt=[];for(let St=0;StSt.sortKey-Nt.sortKey);for(let St of Wt){let{programConfiguration:Nt,program:Zt,layoutVertexBuffer:Ht,indexBuffer:ne,uniformValues:he,terrainData:ce}=St.state;Zt.draw(gt,_t.TRIANGLES,yt,At,kt,Ni.disabled,he,ce,F.id,Ht,ne,St.segments,F.paint,M.transform.zoom,Nt)}})(l,f,v,b);break;case\"heatmap\":(function(M,O,F,U){if(F.paint.get(\"heatmap-opacity\")!==0)if(M.renderPass===\"offscreen\"){let W=M.context,$=W.gl,X=en.disabled,at=new Pt([$.ONE,$.ONE],s.aO.transparent,[!0,!0,!0,!0]);(function(gt,_t,yt){let At=gt.gl;gt.activeTexture.set(At.TEXTURE1),gt.viewport.set([0,0,_t.width/4,_t.height/4]);let kt=yt.heatmapFbo;if(kt)At.bindTexture(At.TEXTURE_2D,kt.colorAttachment.get()),gt.bindFramebuffer.set(kt.framebuffer);else{let Wt=At.createTexture();At.bindTexture(At.TEXTURE_2D,Wt),At.texParameteri(At.TEXTURE_2D,At.TEXTURE_WRAP_S,At.CLAMP_TO_EDGE),At.texParameteri(At.TEXTURE_2D,At.TEXTURE_WRAP_T,At.CLAMP_TO_EDGE),At.texParameteri(At.TEXTURE_2D,At.TEXTURE_MIN_FILTER,At.LINEAR),At.texParameteri(At.TEXTURE_2D,At.TEXTURE_MAG_FILTER,At.LINEAR),kt=yt.heatmapFbo=gt.createFramebuffer(_t.width/4,_t.height/4,!1,!1),function(St,Nt,Zt,Ht){var ne,he;let ce=St.gl,ge=(ne=St.HALF_FLOAT)!==null&&ne!==void 0?ne:ce.UNSIGNED_BYTE,Ue=(he=St.RGBA16F)!==null&&he!==void 0?he:ce.RGBA;ce.texImage2D(ce.TEXTURE_2D,0,Ue,Nt.width/4,Nt.height/4,0,ce.RGBA,ge,null),Ht.colorAttachment.set(Zt)}(gt,_t,Wt,kt)}})(W,M,F),W.clear({color:s.aO.transparent});for(let gt=0;gt{let St=s.F();s.aN(St,0,yt.width,yt.height,0,0,1);let Nt=yt.context.gl;return{u_matrix:St,u_world:[Nt.drawingBufferWidth,Nt.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:At.paint.get(\"heatmap-opacity\")}})(W,$),null,$.id,W.viewportBuffer,W.quadTriangleIndexBuffer,W.viewportSegments,$.paint,W.transform.zoom)}(M,F))})(l,f,v,b);break;case\"line\":(function(M,O,F,U){if(M.renderPass!==\"translucent\")return;let W=F.paint.get(\"line-opacity\"),$=F.paint.get(\"line-width\");if(W.constantOr(1)===0||$.constantOr(1)===0)return;let X=M.depthModeForSublayer(0,oi.ReadOnly),at=M.colorModeForRenderPass(),gt=F.paint.get(\"line-dasharray\"),_t=F.paint.get(\"line-pattern\"),yt=_t.constantOr(1),At=F.paint.get(\"line-gradient\"),kt=F.getCrossfadeParameters(),Wt=yt?\"linePattern\":gt?\"lineSDF\":At?\"lineGradient\":\"line\",St=M.context,Nt=St.gl,Zt=!0;for(let Ht of U){let ne=O.getTile(Ht);if(yt&&!ne.patternsLoaded())continue;let he=ne.getBucket(F);if(!he)continue;let ce=he.programConfigurations.get(F.id),ge=M.context.program.get(),Ue=M.useProgram(Wt,ce),ur=Zt||Ue.program!==ge,Me=M.style.map.terrain&&M.style.map.terrain.getTerrainData(Ht),ar=_t.constantOr(null);if(ar&&ne.imageAtlas){let Jr=ne.imageAtlas,Fr=Jr.patternPositions[ar.to.toString()],$r=Jr.patternPositions[ar.from.toString()];Fr&&$r&&ce.setConstantPatternPositions(Fr,$r)}let He=Me?Ht:null,rn=yt?Af(M,ne,F,kt,He):gt?Nm(M,ne,F,gt,kt,He):At?bx(M,ne,F,he.lineClipsArray.length,He):zm(M,ne,F,He);if(yt)St.activeTexture.set(Nt.TEXTURE0),ne.imageAtlasTexture.bind(Nt.LINEAR,Nt.CLAMP_TO_EDGE),ce.updatePaintBuffers(kt);else if(gt&&(ur||M.lineAtlas.dirty))St.activeTexture.set(Nt.TEXTURE0),M.lineAtlas.bind(St);else if(At){let Jr=he.gradients[F.id],Fr=Jr.texture;if(F.gradientVersion!==Jr.version){let $r=256;if(F.stepInterpolant){let On=O.getSource().maxzoom,Dr=Ht.canonical.z===On?Math.ceil(1<0?f.pop():null}isPatternMissing(l){if(!l)return!1;if(!l.from||!l.to)return!0;let f=this.imageManager.getPattern(l.from.toString()),v=this.imageManager.getPattern(l.to.toString());return!f||!v}useProgram(l,f){this.cache=this.cache||{};let v=l+(f?f.cacheKey:\"\")+(this._showOverdrawInspector?\"/overdraw\":\"\")+(this.style.map.terrain?\"/terrain\":\"\");return this.cache[v]||(this.cache[v]=new Bl(this.context,ca[l],f,wx[l],this._showOverdrawInspector,this.style.map.terrain)),this.cache[v]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let l=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(l.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement(\"canvas\"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new ae(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){let{drawingBufferWidth:l,drawingBufferHeight:f}=this.context.gl;return this.width!==l||this.height!==f}}class pu{constructor(l,f){this.points=l,this.planes=f}static fromInvProjectionMatrix(l,f,v){let b=Math.pow(2,v),M=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(F=>{let U=1/(F=s.af([],F,l))[3]/f*b;return s.a_(F,F,[U,U,1/F[3],U])}),O=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(F=>{let U=function(at,gt){var _t=gt[0],yt=gt[1],At=gt[2],kt=_t*_t+yt*yt+At*At;return kt>0&&(kt=1/Math.sqrt(kt)),at[0]=gt[0]*kt,at[1]=gt[1]*kt,at[2]=gt[2]*kt,at}([],function(at,gt,_t){var yt=gt[0],At=gt[1],kt=gt[2],Wt=_t[0],St=_t[1],Nt=_t[2];return at[0]=At*Nt-kt*St,at[1]=kt*Wt-yt*Nt,at[2]=yt*St-At*Wt,at}([],Yt([],M[F[0]],M[F[1]]),Yt([],M[F[2]],M[F[1]]))),W=-(($=U)[0]*(X=M[F[1]])[0]+$[1]*X[1]+$[2]*X[2]);var $,X;return U.concat(W)});return new pu(M,O)}}class Cc{constructor(l,f){this.min=l,this.max=f,this.center=function(v,b,M){return v[0]=.5*b[0],v[1]=.5*b[1],v[2]=.5*b[2],v}([],function(v,b,M){return v[0]=b[0]+M[0],v[1]=b[1]+M[1],v[2]=b[2]+M[2],v}([],this.min,this.max))}quadrant(l){let f=[l%2==0,l<2],v=Tt(this.min),b=Tt(this.max);for(let M=0;M=0&&O++;if(O===0)return 0;O!==f.length&&(v=!1)}if(v)return 2;for(let b=0;b<3;b++){let M=Number.MAX_VALUE,O=-Number.MAX_VALUE;for(let F=0;Fthis.max[b]-this.min[b])return 0}return 1}}class Au{constructor(l=0,f=0,v=0,b=0){if(isNaN(l)||l<0||isNaN(f)||f<0||isNaN(v)||v<0||isNaN(b)||b<0)throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");this.top=l,this.bottom=f,this.left=v,this.right=b}interpolate(l,f,v){return f.top!=null&&l.top!=null&&(this.top=s.z.number(l.top,f.top,v)),f.bottom!=null&&l.bottom!=null&&(this.bottom=s.z.number(l.bottom,f.bottom,v)),f.left!=null&&l.left!=null&&(this.left=s.z.number(l.left,f.left,v)),f.right!=null&&l.right!=null&&(this.right=s.z.number(l.right,f.right,v)),this}getCenter(l,f){let v=s.ac((this.left+l-this.right)/2,0,l),b=s.ac((this.top+f-this.bottom)/2,0,f);return new s.P(v,b)}equals(l){return this.top===l.top&&this.bottom===l.bottom&&this.left===l.left&&this.right===l.right}clone(){return new Au(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class xf{constructor(l,f,v,b,M){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=M===void 0||!!M,this._minZoom=l||0,this._maxZoom=f||22,this._minPitch=v??0,this._maxPitch=b??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new s.M(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Au,this._posMatrixCache={},this._alignedPosMatrixCache={},this.minElevationForCurrentTile=0}clone(){let l=new xf(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return l.apply(this),l}apply(l){this.tileSize=l.tileSize,this.latRange=l.latRange,this.width=l.width,this.height=l.height,this._center=l._center,this._elevation=l._elevation,this.minElevationForCurrentTile=l.minElevationForCurrentTile,this.zoom=l.zoom,this.angle=l.angle,this._fov=l._fov,this._pitch=l._pitch,this._unmodified=l._unmodified,this._edgeInsets=l._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(l){this._minZoom!==l&&(this._minZoom=l,this.zoom=Math.max(this.zoom,l))}get maxZoom(){return this._maxZoom}set maxZoom(l){this._maxZoom!==l&&(this._maxZoom=l,this.zoom=Math.min(this.zoom,l))}get minPitch(){return this._minPitch}set minPitch(l){this._minPitch!==l&&(this._minPitch=l,this.pitch=Math.max(this.pitch,l))}get maxPitch(){return this._maxPitch}set maxPitch(l){this._maxPitch!==l&&(this._maxPitch=l,this.pitch=Math.min(this.pitch,l))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(l){l===void 0?l=!0:l===null&&(l=!1),this._renderWorldCopies=l}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(l){let f=-s.b0(l,-180,180)*Math.PI/180;this.angle!==f&&(this._unmodified=!1,this.angle=f,this._calcMatrices(),this.rotationMatrix=function(){var v=new s.A(4);return s.A!=Float32Array&&(v[1]=0,v[2]=0),v[0]=1,v[3]=1,v}(),function(v,b,M){var O=b[0],F=b[1],U=b[2],W=b[3],$=Math.sin(M),X=Math.cos(M);v[0]=O*X+U*$,v[1]=F*X+W*$,v[2]=O*-$+U*X,v[3]=F*-$+W*X}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(l){let f=s.ac(l,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==f&&(this._unmodified=!1,this._pitch=f,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(l){l=Math.max(.01,Math.min(60,l)),this._fov!==l&&(this._unmodified=!1,this._fov=l/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(l){let f=Math.min(Math.max(l,this.minZoom),this.maxZoom);this._zoom!==f&&(this._unmodified=!1,this._zoom=f,this.tileZoom=Math.max(0,Math.floor(f)),this.scale=this.zoomScale(f),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(l){l.lat===this._center.lat&&l.lng===this._center.lng||(this._unmodified=!1,this._center=l,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(l){l!==this._elevation&&(this._elevation=l,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(l){this._edgeInsets.equals(l)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,l,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(l){return this._edgeInsets.equals(l)}interpolatePadding(l,f,v){this._unmodified=!1,this._edgeInsets.interpolate(l,f,v),this._constrain(),this._calcMatrices()}coveringZoomLevel(l){let f=(l.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/l.tileSize));return Math.max(0,f)}getVisibleUnwrappedCoordinates(l){let f=[new s.b1(0,l)];if(this._renderWorldCopies){let v=this.pointCoordinate(new s.P(0,0)),b=this.pointCoordinate(new s.P(this.width,0)),M=this.pointCoordinate(new s.P(this.width,this.height)),O=this.pointCoordinate(new s.P(0,this.height)),F=Math.floor(Math.min(v.x,b.x,M.x,O.x)),U=Math.floor(Math.max(v.x,b.x,M.x,O.x)),W=1;for(let $=F-W;$<=U+W;$++)$!==0&&f.push(new s.b1($,l))}return f}coveringTiles(l){var f,v;let b=this.coveringZoomLevel(l),M=b;if(l.minzoom!==void 0&&bl.maxzoom&&(b=l.maxzoom);let O=this.pointCoordinate(this.getCameraPoint()),F=s.Y.fromLngLat(this.center),U=Math.pow(2,b),W=[U*O.x,U*O.y,0],$=[U*F.x,U*F.y,0],X=pu.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,b),at=l.minzoom||0;!l.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(at=b);let gt=l.terrain?2/Math.min(this.tileSize,l.tileSize)*this.tileSize:3,_t=St=>({aabb:new Cc([St*U,0,0],[(St+1)*U,U,0]),zoom:0,x:0,y:0,wrap:St,fullyVisible:!1}),yt=[],At=[],kt=b,Wt=l.reparseOverscaled?M:b;if(this._renderWorldCopies)for(let St=1;St<=3;St++)yt.push(_t(-St)),yt.push(_t(St));for(yt.push(_t(0));yt.length>0;){let St=yt.pop(),Nt=St.x,Zt=St.y,Ht=St.fullyVisible;if(!Ht){let Ue=St.aabb.intersects(X);if(Ue===0)continue;Ht=Ue===2}let ne=l.terrain?W:$,he=St.aabb.distanceX(ne),ce=St.aabb.distanceY(ne),ge=Math.max(Math.abs(he),Math.abs(ce));if(St.zoom===kt||ge>gt+(1<=at){let Ue=kt-St.zoom,ur=W[0]-.5-(Nt<>1),ar=St.zoom+1,He=St.aabb.quadrant(Ue);if(l.terrain){let rn=new s.Q(ar,St.wrap,ar,ur,Me),Jr=l.terrain.getMinMaxElevation(rn),Fr=(f=Jr.minElevation)!==null&&f!==void 0?f:this.elevation,$r=(v=Jr.maxElevation)!==null&&v!==void 0?v:this.elevation;He=new Cc([He.min[0],He.min[1],Fr],[He.max[0],He.max[1],$r])}yt.push({aabb:He,zoom:ar,x:ur,y:Me,wrap:St.wrap,fullyVisible:Ht})}}return At.sort((St,Nt)=>St.distanceSq-Nt.distanceSq).map(St=>St.tileID)}resize(l,f){this.width=l,this.height=f,this.pixelsToGLUnits=[2/l,-2/f],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(l){return Math.pow(2,l)}scaleZoom(l){return Math.log(l)/Math.LN2}project(l){let f=s.ac(l.lat,-this.maxValidLatitude,this.maxValidLatitude);return new s.P(s.N(l.lng)*this.worldSize,s.O(f)*this.worldSize)}unproject(l){return new s.Y(l.x/this.worldSize,l.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(l){let f=this.pointLocation(this.centerPoint,l),v=l.getElevationForLngLatZoom(f,this.tileZoom);if(!(this.elevation-v))return;let b=this.getCameraPosition(),M=s.Y.fromLngLat(b.lngLat,b.altitude),O=s.Y.fromLngLat(f,v),F=M.x-O.x,U=M.y-O.y,W=M.z-O.z,$=Math.sqrt(F*F+U*U+W*W),X=this.scaleZoom(this.cameraToCenterDistance/$/this.tileSize);this._elevation=v,this._center=f,this.zoom=X}setLocationAtPoint(l,f){let v=this.pointCoordinate(f),b=this.pointCoordinate(this.centerPoint),M=this.locationCoordinate(l),O=new s.Y(M.x-(v.x-b.x),M.y-(v.y-b.y));this.center=this.coordinateLocation(O),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(l,f){return f?this.coordinatePoint(this.locationCoordinate(l),f.getElevationForLngLatZoom(l,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(l))}pointLocation(l,f){return this.coordinateLocation(this.pointCoordinate(l,f))}locationCoordinate(l){return s.Y.fromLngLat(l)}coordinateLocation(l){return l&&l.toLngLat()}pointCoordinate(l,f){if(f){let at=f.pointCoordinate(l);if(at!=null)return at}let v=[l.x,l.y,0,1],b=[l.x,l.y,1,1];s.af(v,v,this.pixelMatrixInverse),s.af(b,b,this.pixelMatrixInverse);let M=v[3],O=b[3],F=v[1]/M,U=b[1]/O,W=v[2]/M,$=b[2]/O,X=W===$?0:(0-W)/($-W);return new s.Y(s.z.number(v[0]/M,b[0]/O,X)/this.worldSize,s.z.number(F,U,X)/this.worldSize)}coordinatePoint(l,f=0,v=this.pixelMatrix){let b=[l.x*this.worldSize,l.y*this.worldSize,f,1];return s.af(b,b,v),new s.P(b[0]/b[3],b[1]/b[3])}getBounds(){let l=Math.max(0,this.height/2-this.getHorizon());return new an().extend(this.pointLocation(new s.P(0,l))).extend(this.pointLocation(new s.P(this.width,l))).extend(this.pointLocation(new s.P(this.width,this.height))).extend(this.pointLocation(new s.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new an([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(l){l?(this.lngRange=[l.getWest(),l.getEast()],this.latRange=[l.getSouth(),l.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])}calculatePosMatrix(l,f=!1){let v=l.key,b=f?this._alignedPosMatrixCache:this._posMatrixCache;if(b[v])return b[v];let M=l.canonical,O=this.worldSize/this.zoomScale(M.z),F=M.x+Math.pow(2,M.z)*l.wrap,U=s.an(new Float64Array(16));return s.H(U,U,[F*O,M.y*O,0]),s.J(U,U,[O/s.W,O/s.W,1]),s.K(U,f?this.alignedProjMatrix:this.projMatrix,U),b[v]=new Float32Array(U),b[v]}customLayerMatrix(){return this.mercatorMatrix.slice()}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let l,f,v,b,M=-90,O=90,F=-180,U=180,W=this.size,$=this._unmodified;if(this.latRange){let gt=this.latRange;M=s.O(gt[1])*this.worldSize,O=s.O(gt[0])*this.worldSize,l=O-MO&&(b=O-_t)}if(this.lngRange){let gt=(F+U)/2,_t=s.b0(X.x,gt-this.worldSize/2,gt+this.worldSize/2),yt=W.x/2;_t-ytU&&(v=U-yt)}v===void 0&&b===void 0||(this.center=this.unproject(new s.P(v!==void 0?v:X.x,b!==void 0?b:X.y)).wrap()),this._unmodified=$,this._constraining=!1}_calcMatrices(){if(!this.height)return;let l=this.centerOffset,f=this.point.x,v=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=s.b2(1,this.center.lat)*this.worldSize;let b=s.an(new Float64Array(16));s.J(b,b,[this.width/2,-this.height/2,1]),s.H(b,b,[1,-1,0]),this.labelPlaneMatrix=b,b=s.an(new Float64Array(16)),s.J(b,b,[1,-1,1]),s.H(b,b,[-1,-1,0]),s.J(b,b,[2/this.width,2/this.height,1]),this.glCoordMatrix=b;let M=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),O=Math.min(this.elevation,this.minElevationForCurrentTile),F=M-O*this._pixelPerMeter/Math.cos(this._pitch),U=O<0?F:M,W=Math.PI/2+this._pitch,$=this._fov*(.5+l.y/this.height),X=Math.sin($)*U/Math.sin(s.ac(Math.PI-W-$,.01,Math.PI-.01)),at=this.getHorizon(),gt=2*Math.atan(at/this.cameraToCenterDistance)*(.5+l.y/(2*at)),_t=Math.sin(gt)*U/Math.sin(s.ac(Math.PI-W-gt,.01,Math.PI-.01)),yt=Math.min(X,_t),At=1.01*(Math.cos(Math.PI/2-this._pitch)*yt+U),kt=this.height/50;b=new Float64Array(16),s.b3(b,this._fov,this.width/this.height,kt,At),b[8]=2*-l.x/this.width,b[9]=2*l.y/this.height,s.J(b,b,[1,-1,1]),s.H(b,b,[0,0,-this.cameraToCenterDistance]),s.b4(b,b,this._pitch),s.ad(b,b,this.angle),s.H(b,b,[-f,-v,0]),this.mercatorMatrix=s.J([],b,[this.worldSize,this.worldSize,this.worldSize]),s.J(b,b,[1,1,this._pixelPerMeter]),this.pixelMatrix=s.K(new Float64Array(16),this.labelPlaneMatrix,b),s.H(b,b,[0,0,-this.elevation]),this.projMatrix=b,this.invProjMatrix=s.ar([],b),this.pixelMatrix3D=s.K(new Float64Array(16),this.labelPlaneMatrix,b);let Wt=this.width%2/2,St=this.height%2/2,Nt=Math.cos(this.angle),Zt=Math.sin(this.angle),Ht=f-Math.round(f)+Nt*Wt+Zt*St,ne=v-Math.round(v)+Nt*St+Zt*Wt,he=new Float64Array(b);if(s.H(he,he,[Ht>.5?Ht-1:Ht,ne>.5?ne-1:ne,0]),this.alignedProjMatrix=he,b=s.ar(new Float64Array(16),this.pixelMatrix),!b)throw new Error(\"failed to invert matrix\");this.pixelMatrixInverse=b,this._posMatrixCache={},this._alignedPosMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;let l=this.pointCoordinate(new s.P(0,0)),f=[l.x*this.worldSize,l.y*this.worldSize,0,1];return s.af(f,f,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){let l=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(0,l))}getCameraQueryGeometry(l){let f=this.getCameraPoint();if(l.length===1)return[l[0],f];{let v=f.x,b=f.y,M=f.x,O=f.y;for(let F of l)v=Math.min(v,F.x),b=Math.min(b,F.y),M=Math.max(M,F.x),O=Math.max(O,F.y);return[new s.P(v,b),new s.P(M,b),new s.P(M,O),new s.P(v,O),new s.P(v,b)]}}lngLatToCameraDepth(l,f){let v=this.locationCoordinate(l),b=[v.x*this.worldSize,v.y*this.worldSize,f,1];return s.af(b,b,this.projMatrix),b[2]/b[3]}}function Ym(T,l){let f,v=!1,b=null,M=null,O=()=>{b=null,v&&(T.apply(M,f),b=setTimeout(O,l),v=!1)};return(...F)=>(v=!0,M=this,f=F,b||O(),b)}class $m{constructor(l){this._getCurrentHash=()=>{let f=window.location.hash.replace(\"#\",\"\");if(this._hashName){let v;return f.split(\"&\").map(b=>b.split(\"=\")).forEach(b=>{b[0]===this._hashName&&(v=b)}),(v&&v[1]||\"\").split(\"/\")}return f.split(\"/\")},this._onHashChange=()=>{let f=this._getCurrentHash();if(f.length>=3&&!f.some(v=>isNaN(v))){let v=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(f[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+f[2],+f[1]],zoom:+f[0],bearing:v,pitch:+(f[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{let f=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,f)}catch{}},this._updateHash=Ym(this._updateHashUnthrottled,300),this._hashName=l&&encodeURIComponent(l)}addTo(l){return this._map=l,addEventListener(\"hashchange\",this._onHashChange,!1),this._map.on(\"moveend\",this._updateHash),this}remove(){return removeEventListener(\"hashchange\",this._onHashChange,!1),this._map.off(\"moveend\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(l){let f=this._map.getCenter(),v=Math.round(100*this._map.getZoom())/100,b=Math.ceil((v*Math.LN2+Math.log(512/360/.5))/Math.LN10),M=Math.pow(10,b),O=Math.round(f.lng*M)/M,F=Math.round(f.lat*M)/M,U=this._map.getBearing(),W=this._map.getPitch(),$=\"\";if($+=l?`/${O}/${F}/${v}`:`${v}/${F}/${O}`,(U||W)&&($+=\"/\"+Math.round(10*U)/10),W&&($+=`/${Math.round(W)}`),this._hashName){let X=this._hashName,at=!1,gt=window.location.hash.slice(1).split(\"&\").map(_t=>{let yt=_t.split(\"=\")[0];return yt===X?(at=!0,`${yt}=${$}`):_t}).filter(_t=>_t);return at||gt.push(`${X}=${$}`),`#${gt.join(\"&\")}`}return`#${$}`}}let bf={linearity:.3,easing:s.b5(0,0,.3,1)},Qm=s.e({deceleration:2500,maxSpeed:1400},bf),Lc=s.e({deceleration:20,maxSpeed:1400},bf),n_=s.e({deceleration:1e3,maxSpeed:360},bf),s_=s.e({deceleration:1e3,maxSpeed:90},bf);class o_{constructor(l){this._map=l,this.clear()}clear(){this._inertiaBuffer=[]}record(l){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:_.now(),settings:l})}_drainInertiaBuffer(){let l=this._inertiaBuffer,f=_.now();for(;l.length>0&&f-l[0].time>160;)l.shift()}_onMoveEnd(l){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let f={zoom:0,bearing:0,pitch:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(let{settings:M}of this._inertiaBuffer)f.zoom+=M.zoomDelta||0,f.bearing+=M.bearingDelta||0,f.pitch+=M.pitchDelta||0,M.panDelta&&f.pan._add(M.panDelta),M.around&&(f.around=M.around),M.pinchAround&&(f.pinchAround=M.pinchAround);let v=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,b={};if(f.pan.mag()){let M=ol(f.pan.mag(),v,s.e({},Qm,l||{}));b.offset=f.pan.mult(M.amount/f.pan.mag()),b.center=this._map.transform.center,is(b,M)}if(f.zoom){let M=ol(f.zoom,v,Lc);b.zoom=this._map.transform.zoom+M.amount,is(b,M)}if(f.bearing){let M=ol(f.bearing,v,n_);b.bearing=this._map.transform.bearing+s.ac(M.amount,-179,179),is(b,M)}if(f.pitch){let M=ol(f.pitch,v,s_);b.pitch=this._map.transform.pitch+M.amount,is(b,M)}if(b.zoom||b.bearing){let M=f.pinchAround===void 0?f.around:f.pinchAround;b.around=M?this._map.unproject(M):this._map.getCenter()}return this.clear(),s.e(b,{noMoveStart:!0})}}function is(T,l){(!T.duration||T.durationf.unproject(U)),F=M.reduce((U,W,$,X)=>U.add(W.div(X.length)),new s.P(0,0));super(l,{points:M,point:F,lngLats:O,lngLat:f.unproject(F),originalEvent:v}),this._defaultPrevented=!1}}class gu extends s.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(l,f,v){super(l,{originalEvent:v}),this._defaultPrevented=!1}}class Id{constructor(l,f){this._map=l,this._clickTolerance=f.clickTolerance}reset(){delete this._mousedownPos}wheel(l){return this._firePreventable(new gu(l.type,this._map,l))}mousedown(l,f){return this._mousedownPos=f,this._firePreventable(new Ui(l.type,this._map,l))}mouseup(l){this._map.fire(new Ui(l.type,this._map,l))}click(l,f){this._mousedownPos&&this._mousedownPos.dist(f)>=this._clickTolerance||this._map.fire(new Ui(l.type,this._map,l))}dblclick(l){return this._firePreventable(new Ui(l.type,this._map,l))}mouseover(l){this._map.fire(new Ui(l.type,this._map,l))}mouseout(l){this._map.fire(new Ui(l.type,this._map,l))}touchstart(l){return this._firePreventable(new mu(l.type,this._map,l))}touchmove(l){this._map.fire(new mu(l.type,this._map,l))}touchend(l){this._map.fire(new mu(l.type,this._map,l))}touchcancel(l){this._map.fire(new mu(l.type,this._map,l))}_firePreventable(l){if(this._map.fire(l),l.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class za{constructor(l){this._map=l}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(l){this._map.fire(new Ui(l.type,this._map,l))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ui(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(l){this._delayContextMenu?this._contextMenuEvent=l:this._ignoreContextMenu||this._map.fire(new Ui(l.type,this._map,l)),this._map.listens(\"contextmenu\")&&l.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class ao{constructor(l){this._map=l}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(l){return this.transform.pointLocation(s.P.convert(l),this._map.terrain)}}class wf{constructor(l,f){this._map=l,this._tr=new ao(l),this._el=l.getCanvasContainer(),this._container=l.getContainer(),this._clickTolerance=f.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(l,f){this.isEnabled()&&l.shiftKey&&l.button===0&&(w.disableDrag(),this._startPos=this._lastPos=f,this._active=!0)}mousemoveWindow(l,f){if(!this._active)return;let v=f;if(this._lastPos.equals(v)||!this._box&&v.dist(this._startPos)M.fitScreenCoordinates(v,b,this._tr.bearing,{linear:!0})};this._fireEvent(\"boxzoomcancel\",l)}keydown(l){this._active&&l.keyCode===27&&(this.reset(),this._fireEvent(\"boxzoomcancel\",l))}reset(){this._active=!1,this._container.classList.remove(\"maplibregl-crosshair\"),this._box&&(w.remove(this._box),this._box=null),w.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(l,f){return this._map.fire(new s.k(l,{originalEvent:f}))}}function Es(T,l){if(T.length!==l.length)throw new Error(`The number of touches and points are not equal - touches ${T.length}, points ${l.length}`);let f={};for(let v=0;vthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=l.timeStamp),v.length===this.numTouches&&(this.centroid=function(b){let M=new s.P(0,0);for(let O of b)M._add(O);return M.div(b.length)}(f),this.touches=Es(v,f)))}touchmove(l,f,v){if(this.aborted||!this.centroid)return;let b=Es(v,f);for(let M in this.touches){let O=b[M];(!O||O.dist(this.touches[M])>30)&&(this.aborted=!0)}}touchend(l,f,v){if((!this.centroid||l.timeStamp-this.startTime>500)&&(this.aborted=!0),v.length===0){let b=!this.aborted&&this.centroid;if(this.reset(),b)return b}}}class tA{constructor(l){this.singleTap=new Sf(l),this.numTaps=l.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(l,f,v){this.singleTap.touchstart(l,f,v)}touchmove(l,f,v){this.singleTap.touchmove(l,f,v)}touchend(l,f,v){let b=this.singleTap.touchend(l,f,v);if(b){let M=l.timeStamp-this.lastTime<500,O=!this.lastTap||this.lastTap.dist(b)<30;if(M&&O||this.reset(),this.count++,this.lastTime=l.timeStamp,this.lastTap=b,this.count===this.numTaps)return this.reset(),b}}}class eA{constructor(l){this._tr=new ao(l),this._zoomIn=new tA({numTouches:1,numTaps:2}),this._zoomOut=new tA({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(l,f,v){this._zoomIn.touchstart(l,f,v),this._zoomOut.touchstart(l,f,v)}touchmove(l,f,v){this._zoomIn.touchmove(l,f,v),this._zoomOut.touchmove(l,f,v)}touchend(l,f,v){let b=this._zoomIn.touchend(l,f,v),M=this._zoomOut.touchend(l,f,v),O=this._tr;return b?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:F=>F.easeTo({duration:300,zoom:O.zoom+1,around:O.unproject(b)},{originalEvent:l})}):M?(this._active=!0,l.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:F=>F.easeTo({duration:300,zoom:O.zoom-1,around:O.unproject(M)},{originalEvent:l})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class al{constructor(l){this._enabled=!!l.enable,this._moveStateManager=l.moveStateManager,this._clickTolerance=l.clickTolerance||1,this._moveFunction=l.move,this._activateOnStart=!!l.activateOnStart,l.assignEvents(this),this.reset()}reset(l){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(l)}_move(...l){let f=this._moveFunction(...l);if(f.bearingDelta||f.pitchDelta||f.around||f.panDelta)return this._active=!0,f}dragStart(l,f){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(l)&&(this._moveStateManager.startMove(l),this._lastPoint=f.length?f[0]:f,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(l,f){if(!this.isEnabled())return;let v=this._lastPoint;if(!v)return;if(l.preventDefault(),!this._moveStateManager.isValidMoveEvent(l))return void this.reset(l);let b=f.length?f[0]:f;return!this._moved&&b.dist(v){T.mousedown=T.dragStart,T.mousemoveWindow=T.dragMove,T.mouseup=T.dragEnd,T.contextmenu=function(l){l.preventDefault()}},Xm=({enable:T,clickTolerance:l,bearingDegreesPerPixelMoved:f=.8})=>{let v=new _u({checkCorrectEvent:b=>w.mouseButton(b)===0&&b.ctrlKey||w.mouseButton(b)===2});return new al({clickTolerance:l,move:(b,M)=>({bearingDelta:(M.x-b.x)*f}),moveStateManager:v,enable:T,assignEvents:Fe})},Tf=({enable:T,clickTolerance:l,pitchDegreesPerPixelMoved:f=-.5})=>{let v=new _u({checkCorrectEvent:b=>w.mouseButton(b)===0&&b.ctrlKey||w.mouseButton(b)===2});return new al({clickTolerance:l,move:(b,M)=>({pitchDelta:(M.y-b.y)*f}),moveStateManager:v,enable:T,assignEvents:Fe})};class Mf{constructor(l,f){this._clickTolerance=l.clickTolerance||1,this._map=f,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}minTouchs(){return this._map.cooperativeGestures.isEnabled()?2:1}touchstart(l,f,v){return this._calculateTransform(l,f,v)}touchmove(l,f,v){if(this._active&&!(v.length0&&(this._active=!0);let b=Es(v,f),M=new s.P(0,0),O=new s.P(0,0),F=0;for(let W in b){let $=b[W],X=this._touches[W];X&&(M._add($),O._add($.sub(X)),F++,b[W]=$)}if(this._touches=b,FMath.abs(T.x)}class yu extends rA{constructor(l){super(),this._currentTouchCount=0,this._map=l}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(l,f,v){super.touchstart(l,f,v),this._currentTouchCount=v.length}_start(l){this._lastPoints=l,Ld(l[0].sub(l[1]))&&(this._valid=!1)}_move(l,f,v){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;let b=l[0].sub(this._lastPoints[0]),M=l[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(b,M,v.timeStamp),this._valid?(this._lastPoints=l,this._active=!0,{pitchDelta:(b.y+M.y)/2*-.5}):void 0}gestureBeginsVertically(l,f,v){if(this._valid!==void 0)return this._valid;let b=l.mag()>=2,M=f.mag()>=2;if(!b&&!M)return;if(!b||!M)return this._firstMove===void 0&&(this._firstMove=v),v-this._firstMove<100&&void 0;let O=l.y>0==f.y>0;return Ld(l)&&Ld(f)&&O}}let Tx={panStep:100,bearingStep:15,pitchStep:10};class Km{constructor(l){this._tr=new ao(l);let f=Tx;this._panStep=f.panStep,this._bearingStep=f.bearingStep,this._pitchStep=f.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(l){if(l.altKey||l.ctrlKey||l.metaKey)return;let f=0,v=0,b=0,M=0,O=0;switch(l.keyCode){case 61:case 107:case 171:case 187:f=1;break;case 189:case 109:case 173:f=-1;break;case 37:l.shiftKey?v=-1:(l.preventDefault(),M=-1);break;case 39:l.shiftKey?v=1:(l.preventDefault(),M=1);break;case 38:l.shiftKey?b=1:(l.preventDefault(),O=-1);break;case 40:l.shiftKey?b=-1:(l.preventDefault(),O=1);break;default:return}return this._rotationDisabled&&(v=0,b=0),{cameraAnimation:F=>{let U=this._tr;F.easeTo({duration:300,easeId:\"keyboardHandler\",easing:vu,zoom:f?Math.round(U.zoom)+f*(l.shiftKey?2:1):U.zoom,bearing:U.bearing+v*this._bearingStep,pitch:U.pitch+b*this._pitchStep,offset:[-M*this._panStep,-O*this._panStep],center:U.center},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function vu(T){return T*(2-T)}let ki=4.000244140625;class Nl{constructor(l,f){this._onTimeout=v=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(v)},this._map=l,this._tr=new ao(l),this._triggerRenderFrame=f,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(l){this._defaultZoomRate=l}setWheelZoomRate(l){this._wheelZoomRate=l}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(l){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!l&&l.around===\"center\")}disable(){this.isEnabled()&&(this._enabled=!1)}wheel(l){if(!this.isEnabled()||this._map.cooperativeGestures.isEnabled()&&!l[this._map.cooperativeGestures._bypassKey])return;let f=l.deltaMode===WheelEvent.DOM_DELTA_LINE?40*l.deltaY:l.deltaY,v=_.now(),b=v-(this._lastWheelEventTime||0);this._lastWheelEventTime=v,f!==0&&f%ki==0?this._type=\"wheel\":f!==0&&Math.abs(f)<4?this._type=\"trackpad\":b>400?(this._type=null,this._lastValue=f,this._timeout=setTimeout(this._onTimeout,40,l)):this._type||(this._type=Math.abs(b*f)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,f+=this._lastValue)),l.shiftKey&&f&&(f/=4),this._type&&(this._lastWheelEvent=l,this._delta-=f,this._active||this._start(l)),l.preventDefault()}_start(l){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let f=w.mousePos(this._map.getCanvas(),l),v=this._tr;this._around=f.y>v.transform.height/2-v.transform.getHorizon()?s.M.convert(this._aroundCenter?v.center:v.unproject(f)):s.M.convert(v.center),this._aroundPoint=v.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let l=this._tr.transform;if(this._delta!==0){let F=this._type===\"wheel\"&&Math.abs(this._delta)>ki?this._wheelZoomRate:this._defaultZoomRate,U=2/(1+Math.exp(-Math.abs(this._delta*F)));this._delta<0&&U!==0&&(U=1/U);let W=typeof this._targetZoom==\"number\"?l.zoomScale(this._targetZoom):l.scale;this._targetZoom=Math.min(l.maxZoom,Math.max(l.minZoom,l.scaleZoom(W*U))),this._type===\"wheel\"&&(this._startZoom=l.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}let f=typeof this._targetZoom==\"number\"?this._targetZoom:l.zoom,v=this._startZoom,b=this._easing,M,O=!1;if(this._type===\"wheel\"&&v&&b){let F=Math.min((_.now()-this._lastWheelEventTime)/200,1),U=b(F);M=s.z.number(v,f,U),F<1?this._frameId||(this._frameId=!0):O=!0}else M=f,O=!0;return this._active=!0,O&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!O,zoomDelta:M-l.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(l){let f=s.b6;if(this._prevEase){let v=this._prevEase,b=(_.now()-v.start)/v.duration,M=v.easing(b+.01)-v.easing(b),O=.27/Math.sqrt(M*M+1e-4)*.01,F=Math.sqrt(.0729-O*O);f=s.b5(O,F,.25,1)}return this._prevEase={start:_.now(),duration:l,easing:f},f}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class nA{constructor(l,f){this._clickZoom=l,this._tapZoom=f}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Pf{constructor(l){this._tr=new ao(l),this.reset()}reset(){this._active=!1}dblclick(l,f){return l.preventDefault(),{cameraAnimation:v=>{v.easeTo({duration:300,zoom:this._tr.zoom+(l.shiftKey?-1:1),around:this._tr.unproject(f)},{originalEvent:l})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class l_{constructor(){this._tap=new tA({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(l,f,v){if(!this._swipePoint)if(this._tapTime){let b=f[0],M=l.timeStamp-this._tapTime<500,O=this._tapPoint.dist(b)<30;M&&O?v.length>0&&(this._swipePoint=b,this._swipeTouch=v[0].identifier):this.reset()}else this._tap.touchstart(l,f,v)}touchmove(l,f,v){if(this._tapTime){if(this._swipePoint){if(v[0].identifier!==this._swipeTouch)return;let b=f[0],M=b.y-this._swipePoint.y;return this._swipePoint=b,l.preventDefault(),this._active=!0,{zoomDelta:M/128}}}else this._tap.touchmove(l,f,v)}touchend(l,f,v){if(this._tapTime)this._swipePoint&&v.length===0&&this.reset();else{let b=this._tap.touchend(l,f,v);b&&(this._tapTime=l.timeStamp,this._tapPoint=b)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Jm{constructor(l,f,v){this._el=l,this._mousePan=f,this._touchPan=v}enable(l){this._inertiaOptions=l||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(\"maplibregl-touch-drag-pan\")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"maplibregl-touch-drag-pan\")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class c_{constructor(l,f,v){this._pitchWithRotate=l.pitchWithRotate,this._mouseRotate=f,this._mousePitch=v}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class ll{constructor(l,f,v,b){this._el=l,this._touchZoom=f,this._touchRotate=v,this._tapDragZoom=b,this._rotationDisabled=!1,this._enabled=!0}enable(l){this._touchZoom.enable(l),this._rotationDisabled||this._touchRotate.enable(l),this._tapDragZoom.enable(),this._el.classList.add(\"maplibregl-touch-zoom-rotate\")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"maplibregl-touch-zoom-rotate\")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class kd{constructor(l,f){this._bypassKey=navigator.userAgent.indexOf(\"Mac\")!==-1?\"metaKey\":\"ctrlKey\",this._map=l,this._options=f,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;let l=this._map.getCanvasContainer();l.classList.add(\"maplibregl-cooperative-gestures\"),this._container=w.create(\"div\",\"maplibregl-cooperative-gesture-screen\",l);let f=this._map._getUIString(\"CooperativeGesturesHandler.WindowsHelpText\");this._bypassKey===\"metaKey\"&&(f=this._map._getUIString(\"CooperativeGesturesHandler.MacHelpText\"));let v=this._map._getUIString(\"CooperativeGesturesHandler.MobileHelpText\"),b=document.createElement(\"div\");b.className=\"maplibregl-desktop-message\",b.textContent=f,this._container.appendChild(b);let M=document.createElement(\"div\");M.className=\"maplibregl-mobile-message\",M.textContent=v,this._container.appendChild(M),this._container.setAttribute(\"aria-hidden\",\"true\")}_destoryUI(){this._container&&(w.remove(this._container),this._map.getCanvasContainer().classList.remove(\"maplibregl-cooperative-gestures\")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destoryUI()}isEnabled(){return this._enabled}touchmove(l){this._onCooperativeGesture(l.touches.length===1)}wheel(l){this._map.scrollZoom.isEnabled()&&this._onCooperativeGesture(!l[this._bypassKey])}_onCooperativeGesture(l){this._enabled&&l&&(this._container.classList.add(\"maplibregl-show\"),setTimeout(()=>{this._container.classList.remove(\"maplibregl-show\")},100))}}let Qe=T=>T.zoom||T.drag||T.pitch||T.rotate;class fr extends s.k{}function If(T){return T.panDelta&&T.panDelta.mag()||T.zoomDelta||T.bearingDelta||T.pitchDelta}class xu{constructor(l,f){this.handleWindowEvent=b=>{this.handleEvent(b,`${b.type}Window`)},this.handleEvent=(b,M)=>{if(b.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let O=b.type===\"renderFrame\"?void 0:b,F={needsRenderFrame:!1},U={},W={},$=b.touches,X=$?this._getMapTouches($):void 0,at=X?w.touchPos(this._map.getCanvas(),X):w.mousePos(this._map.getCanvas(),b);for(let{handlerName:yt,handler:At,allowed:kt}of this._handlers){if(!At.isEnabled())continue;let Wt;this._blockedByActive(W,kt,yt)?At.reset():At[M||b.type]&&(Wt=At[M||b.type](b,at,X),this.mergeHandlerResult(F,U,Wt,yt,O),Wt&&Wt.needsRenderFrame&&this._triggerRenderFrame()),(Wt||At.isActive())&&(W[yt]=At)}let gt={};for(let yt in this._previousActiveHandlers)W[yt]||(gt[yt]=O);this._previousActiveHandlers=W,(Object.keys(gt).length||If(F))&&(this._changes.push([F,U,gt]),this._triggerRenderFrame()),(Object.keys(W).length||If(F))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:_t}=F;_t&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],_t(this._map))},this._map=l,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new o_(l),this._bearingSnap=f.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(f);let v=this._el;this._listeners=[[v,\"touchstart\",{passive:!0}],[v,\"touchmove\",{passive:!1}],[v,\"touchend\",void 0],[v,\"touchcancel\",void 0],[v,\"mousedown\",void 0],[v,\"mousemove\",void 0],[v,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[v,\"mouseover\",void 0],[v,\"mouseout\",void 0],[v,\"dblclick\",void 0],[v,\"click\",void 0],[v,\"keydown\",{capture:!1}],[v,\"keyup\",void 0],[v,\"wheel\",{passive:!1}],[v,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(let[b,M,O]of this._listeners)w.addEventListener(b,M,b===document?this.handleWindowEvent:this.handleEvent,O)}destroy(){for(let[l,f,v]of this._listeners)w.removeEventListener(l,f,l===document?this.handleWindowEvent:this.handleEvent,v)}_addDefaultHandlers(l){let f=this._map,v=f.getCanvasContainer();this._add(\"mapEvent\",new Id(f,l));let b=f.boxZoom=new wf(f,l);this._add(\"boxZoom\",b),l.interactive&&l.boxZoom&&b.enable();let M=f.cooperativeGestures=new kd(f,l.cooperativeGestures);this._add(\"cooperativeGestures\",M),l.cooperativeGestures&&M.enable();let O=new eA(f),F=new Pf(f);f.doubleClickZoom=new nA(F,O),this._add(\"tapZoom\",O),this._add(\"clickZoom\",F),l.interactive&&l.doubleClickZoom&&f.doubleClickZoom.enable();let U=new l_;this._add(\"tapDragZoom\",U);let W=f.touchPitch=new yu(f);this._add(\"touchPitch\",W),l.interactive&&l.touchPitch&&f.touchPitch.enable(l.touchPitch);let $=Xm(l),X=Tf(l);f.dragRotate=new c_(l,$,X),this._add(\"mouseRotate\",$,[\"mousePitch\"]),this._add(\"mousePitch\",X,[\"mouseRotate\"]),l.interactive&&l.dragRotate&&f.dragRotate.enable();let at=(({enable:Wt,clickTolerance:St})=>{let Nt=new _u({checkCorrectEvent:Zt=>w.mouseButton(Zt)===0&&!Zt.ctrlKey});return new al({clickTolerance:St,move:(Zt,Ht)=>({around:Ht,panDelta:Ht.sub(Zt)}),activateOnStart:!0,moveStateManager:Nt,enable:Wt,assignEvents:Fe})})(l),gt=new Mf(l,f);f.dragPan=new Jm(v,at,gt),this._add(\"mousePan\",at),this._add(\"touchPan\",gt,[\"touchZoom\",\"touchRotate\"]),l.interactive&&l.dragPan&&f.dragPan.enable(l.dragPan);let _t=new Cd,yt=new Ef;f.touchZoomRotate=new ll(v,yt,_t,U),this._add(\"touchRotate\",_t,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",yt,[\"touchPan\",\"touchRotate\"]),l.interactive&&l.touchZoomRotate&&f.touchZoomRotate.enable(l.touchZoomRotate);let At=f.scrollZoom=new Nl(f,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",At,[\"mousePan\"]),l.interactive&&l.scrollZoom&&f.scrollZoom.enable(l.scrollZoom);let kt=f.keyboard=new Km(f);this._add(\"keyboard\",kt),l.interactive&&l.keyboard&&f.keyboard.enable(),this._add(\"blockableMapEvent\",new za(f))}_add(l,f,v){this._handlers.push({handlerName:l,handler:f,allowed:v}),this._handlersById[l]=f}stop(l){if(!this._updatingCamera){for(let{handler:f}of this._handlers)f.reset();this._inertia.clear(),this._fireEvents({},{},l),this._changes=[]}}isActive(){for(let{handler:l}of this._handlers)if(l.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Qe(this._eventsInProgress)||this.isZooming()}_blockedByActive(l,f,v){for(let b in l)if(b!==v&&(!f||f.indexOf(b)<0))return!0;return!1}_getMapTouches(l){let f=[];for(let v of l)this._el.contains(v.target)&&f.push(v);return f}mergeHandlerResult(l,f,v,b,M){if(!v)return;s.e(l,v);let O={handlerName:b,originalEvent:v.originalEvent||M};v.zoomDelta!==void 0&&(f.zoom=O),v.panDelta!==void 0&&(f.drag=O),v.pitchDelta!==void 0&&(f.pitch=O),v.bearingDelta!==void 0&&(f.rotate=O)}_applyChanges(){let l={},f={},v={};for(let[b,M,O]of this._changes)b.panDelta&&(l.panDelta=(l.panDelta||new s.P(0,0))._add(b.panDelta)),b.zoomDelta&&(l.zoomDelta=(l.zoomDelta||0)+b.zoomDelta),b.bearingDelta&&(l.bearingDelta=(l.bearingDelta||0)+b.bearingDelta),b.pitchDelta&&(l.pitchDelta=(l.pitchDelta||0)+b.pitchDelta),b.around!==void 0&&(l.around=b.around),b.pinchAround!==void 0&&(l.pinchAround=b.pinchAround),b.noInertia&&(l.noInertia=b.noInertia),s.e(f,M),s.e(v,O);this._updateMapTransform(l,f,v),this._changes=[]}_updateMapTransform(l,f,v){let b=this._map,M=b._getTransformForUpdate(),O=b.terrain;if(!(If(l)||O&&this._terrainMovement))return this._fireEvents(f,v,!0);let{panDelta:F,zoomDelta:U,bearingDelta:W,pitchDelta:$,around:X,pinchAround:at}=l;at!==void 0&&(X=at),b._stop(!0),X=X||b.transform.centerPoint;let gt=M.pointLocation(F?X.sub(F):X);W&&(M.bearing+=W),$&&(M.pitch+=$),U&&(M.zoom+=U),O?this._terrainMovement||!f.drag&&!f.zoom?f.drag&&this._terrainMovement?M.center=M.pointLocation(M.centerPoint.sub(F)):M.setLocationAtPoint(gt,X):(this._terrainMovement=!0,this._map._elevationFreeze=!0,M.setLocationAtPoint(gt,X),this._map.once(\"moveend\",()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,M.recalculateZoom(b.terrain)})):M.setLocationAtPoint(gt,X),b._applyUpdatedTransform(M),this._map._update(),l.noInertia||this._inertia.record(l),this._fireEvents(f,v,!0)}_fireEvents(l,f,v){let b=Qe(this._eventsInProgress),M=Qe(l),O={};for(let $ in l){let{originalEvent:X}=l[$];this._eventsInProgress[$]||(O[`${$}start`]=X),this._eventsInProgress[$]=l[$]}!b&&M&&this._fireEvent(\"movestart\",M.originalEvent);for(let $ in O)this._fireEvent($,O[$]);M&&this._fireEvent(\"move\",M.originalEvent);for(let $ in l){let{originalEvent:X}=l[$];this._fireEvent($,X)}let F={},U;for(let $ in this._eventsInProgress){let{handlerName:X,originalEvent:at}=this._eventsInProgress[$];this._handlersById[X].isActive()||(delete this._eventsInProgress[$],U=f[X]||at,F[`${$}end`]=U)}for(let $ in F)this._fireEvent($,F[$]);let W=Qe(this._eventsInProgress);if(v&&(b||M)&&!W){this._updatingCamera=!0;let $=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),X=at=>at!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new fr(\"renderFrame\",{timeStamp:l})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class t0 extends s.E{constructor(l,f){super(),this._renderFrameCallback=()=>{let v=Math.min((_.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(v)),v<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=l,this._bearingSnap=f.bearingSnap,this.on(\"moveend\",()=>{delete this._requestedCameraState})}getCenter(){return new s.M(this.transform.center.lng,this.transform.center.lat)}setCenter(l,f){return this.jumpTo({center:l},f)}panBy(l,f,v){return l=s.P.convert(l).mult(-1),this.panTo(this.transform.center,s.e({offset:l},f),v)}panTo(l,f,v){return this.easeTo(s.e({center:l},f),v)}getZoom(){return this.transform.zoom}setZoom(l,f){return this.jumpTo({zoom:l},f),this}zoomTo(l,f,v){return this.easeTo(s.e({zoom:l},f),v)}zoomIn(l,f){return this.zoomTo(this.getZoom()+1,l,f),this}zoomOut(l,f){return this.zoomTo(this.getZoom()-1,l,f),this}getBearing(){return this.transform.bearing}setBearing(l,f){return this.jumpTo({bearing:l},f),this}getPadding(){return this.transform.padding}setPadding(l,f){return this.jumpTo({padding:l},f),this}rotateTo(l,f,v){return this.easeTo(s.e({bearing:l},f),v)}resetNorth(l,f){return this.rotateTo(0,s.e({duration:1e3},l),f),this}resetNorthPitch(l,f){return this.easeTo(s.e({bearing:0,pitch:0,duration:1e3},l),f),this}snapToNorth(l,f){return Math.abs(this.getBearing()){if(this._zooming&&(v.zoom=s.z.number(b,U,Ht)),this._rotating&&(v.bearing=s.z.number(M,W,Ht)),this._pitching&&(v.pitch=s.z.number(O,$,Ht)),this._padding&&(v.interpolatePadding(F,X,Ht),gt=v.centerPoint.add(at)),this.terrain&&!l.freezeElevation&&this._updateElevation(Ht),St)v.setLocationAtPoint(St,Nt);else{let ne=v.zoomScale(v.zoom-b),he=U>b?Math.min(2,Wt):Math.max(.5,Wt),ce=Math.pow(he,1-Ht),ge=v.unproject(At.add(kt.mult(Ht*ce)).mult(ne));v.setLocationAtPoint(v.renderWorldCopies?ge.wrap():ge,gt)}this._applyUpdatedTransform(v),this._fireMoveEvents(f)},Ht=>{this.terrain&&this._finalizeElevation(),this._afterEase(f,Ht)},l),this}_prepareEase(l,f,v={}){this._moving=!0,f||v.moving||this.fire(new s.k(\"movestart\",l)),this._zooming&&!v.zooming&&this.fire(new s.k(\"zoomstart\",l)),this._rotating&&!v.rotating&&this.fire(new s.k(\"rotatestart\",l)),this._pitching&&!v.pitching&&this.fire(new s.k(\"pitchstart\",l))}_prepareElevation(l){this._elevationCenter=l,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(l,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(l){this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);let f=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(l<1&&f!==this._elevationTarget){let v=this._elevationTarget-this._elevationStart;this._elevationStart+=l*(v-(f-(v*l+this._elevationStart))/(1-l)),this._elevationTarget=f}this.transform.elevation=s.z.number(this._elevationStart,this._elevationTarget,l)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(l){if(!this.transformCameraUpdate)return;let f=l.clone(),{center:v,zoom:b,pitch:M,bearing:O,elevation:F}=this.transformCameraUpdate(f);v&&(f.center=v),b!==void 0&&(f.zoom=b),M!==void 0&&(f.pitch=M),O!==void 0&&(f.bearing=O),F!==void 0&&(f.elevation=F),this.transform.apply(f)}_fireMoveEvents(l){this.fire(new s.k(\"move\",l)),this._zooming&&this.fire(new s.k(\"zoom\",l)),this._rotating&&this.fire(new s.k(\"rotate\",l)),this._pitching&&this.fire(new s.k(\"pitch\",l))}_afterEase(l,f){if(this._easeId&&f&&this._easeId===f)return;delete this._easeId;let v=this._zooming,b=this._rotating,M=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,v&&this.fire(new s.k(\"zoomend\",l)),b&&this.fire(new s.k(\"rotateend\",l)),M&&this.fire(new s.k(\"pitchend\",l)),this.fire(new s.k(\"moveend\",l))}flyTo(l,f){if(!l.essential&&_.prefersReducedMotion){let He=s.L(l,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(He,f)}this.stop(),l=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.b6},l);let v=this._getTransformForUpdate(),b=this.getZoom(),M=this.getBearing(),O=this.getPitch(),F=this.getPadding(),U=\"zoom\"in l?s.ac(+l.zoom,v.minZoom,v.maxZoom):b,W=\"bearing\"in l?this._normalizeBearing(l.bearing,M):M,$=\"pitch\"in l?+l.pitch:O,X=\"padding\"in l?l.padding:v.padding,at=v.zoomScale(U-b),gt=s.P.convert(l.offset),_t=v.centerPoint.add(gt),yt=v.pointLocation(_t),At=s.M.convert(l.center||yt);this._normalizeCenter(At);let kt=v.project(yt),Wt=v.project(At).sub(kt),St=l.curve,Nt=Math.max(v.width,v.height),Zt=Nt/at,Ht=Wt.mag();if(\"minZoom\"in l){let He=s.ac(Math.min(l.minZoom,b,U),v.minZoom,v.maxZoom),rn=Nt/v.zoomScale(He-b);St=Math.sqrt(rn/Ht*2)}let ne=St*St;function he(He){let rn=(Zt*Zt-Nt*Nt+(He?-1:1)*ne*ne*Ht*Ht)/(2*(He?Zt:Nt)*ne*Ht);return Math.log(Math.sqrt(rn*rn+1)-rn)}function ce(He){return(Math.exp(He)-Math.exp(-He))/2}function ge(He){return(Math.exp(He)+Math.exp(-He))/2}let Ue=he(!1),ur=function(He){return ge(Ue)/ge(Ue+St*He)},Me=function(He){return Nt*((ge(Ue)*(ce(rn=Ue+St*He)/ge(rn))-ce(Ue))/ne)/Ht;var rn},ar=(he(!0)-Ue)/St;if(Math.abs(Ht)<1e-6||!isFinite(ar)){if(Math.abs(Nt-Zt)<1e-6)return this.easeTo(l,f);let He=Ztl.maxDuration&&(l.duration=0),this._zooming=!0,this._rotating=M!==W,this._pitching=$!==O,this._padding=!v.isPaddingEqual(X),this._prepareEase(f,!1),this.terrain&&this._prepareElevation(At),this._ease(He=>{let rn=He*ar,Jr=1/ur(rn);v.zoom=He===1?U:b+v.scaleZoom(Jr),this._rotating&&(v.bearing=s.z.number(M,W,He)),this._pitching&&(v.pitch=s.z.number(O,$,He)),this._padding&&(v.interpolatePadding(F,X,He),_t=v.centerPoint.add(gt)),this.terrain&&!l.freezeElevation&&this._updateElevation(He);let Fr=He===1?At:v.unproject(kt.add(Wt.mult(Me(rn))).mult(Jr));v.setLocationAtPoint(v.renderWorldCopies?Fr.wrap():Fr,_t),this._applyUpdatedTransform(v),this._fireMoveEvents(f)},()=>{this.terrain&&this._finalizeElevation(),this._afterEase(f)},l),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(l,f){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let v=this._onEaseEnd;delete this._onEaseEnd,v.call(this,f)}if(!l){let v=this.handlers;v&&v.stop(!1)}return this}_ease(l,f,v){v.animate===!1||v.duration===0?(l(1),f()):(this._easeStart=_.now(),this._easeOptions=v,this._onEaseFrame=l,this._onEaseEnd=f,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(l,f){l=s.b0(l,-180,180);let v=Math.abs(l-f);return Math.abs(l-360-f)180?-360:v<-180?360:0}queryTerrainElevation(l){return this.terrain?this.terrain.getElevationForLngLatZoom(s.M.convert(l),this.transform.tileZoom)-this.transform.elevation:null}}let wo={compact:!0,customAttribution:'MapLibre'};class e0{constructor(l=wo){this._toggleAttribution=()=>{this._container.classList.contains(\"maplibregl-compact\")&&(this._container.classList.contains(\"maplibregl-compact-show\")?(this._container.setAttribute(\"open\",\"\"),this._container.classList.remove(\"maplibregl-compact-show\")):(this._container.classList.add(\"maplibregl-compact-show\"),this._container.removeAttribute(\"open\")))},this._updateData=f=>{!f||f.sourceDataType!==\"metadata\"&&f.sourceDataType!==\"visibility\"&&f.dataType!==\"style\"&&f.type!==\"terrain\"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute(\"open\",\"\"):this._container.classList.contains(\"maplibregl-compact\")||this._container.classList.contains(\"maplibregl-attrib-empty\")||(this._container.setAttribute(\"open\",\"\"),this._container.classList.add(\"maplibregl-compact\",\"maplibregl-compact-show\")):(this._container.setAttribute(\"open\",\"\"),this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.remove(\"maplibregl-compact\",\"maplibregl-compact-show\"))},this._updateCompactMinimize=()=>{this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.contains(\"maplibregl-compact-show\")&&this._container.classList.remove(\"maplibregl-compact-show\")},this.options=l}getDefaultPosition(){return\"bottom-right\"}onAdd(l){return this._map=l,this._compact=this.options.compact,this._container=w.create(\"details\",\"maplibregl-ctrl maplibregl-ctrl-attrib\"),this._compactButton=w.create(\"summary\",\"maplibregl-ctrl-attrib-button\",this._container),this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._setElementTitle(this._compactButton,\"ToggleAttribution\"),this._innerContainer=w.create(\"div\",\"maplibregl-ctrl-attrib-inner\",this._container),this._updateAttributions(),this._updateCompact(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"terrain\",this._updateData),this._map.on(\"resize\",this._updateCompact),this._map.on(\"drag\",this._updateCompactMinimize),this._container}onRemove(){w.remove(this._container),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"terrain\",this._updateData),this._map.off(\"resize\",this._updateCompact),this._map.off(\"drag\",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(l,f){let v=this._map._getUIString(`AttributionControl.${f}`);l.title=v,l.setAttribute(\"aria-label\",v)}_updateAttributions(){if(!this._map.style)return;let l=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?l=l.concat(this.options.customAttribution.map(b=>typeof b!=\"string\"?\"\":b)):typeof this.options.customAttribution==\"string\"&&l.push(this.options.customAttribution)),this._map.style.stylesheet){let b=this._map.style.stylesheet;this.styleOwner=b.owner,this.styleId=b.id}let f=this._map.style.sourceCaches;for(let b in f){let M=f[b];if(M.used||M.usedForTerrain){let O=M.getSource();O.attribution&&l.indexOf(O.attribution)<0&&l.push(O.attribution)}}l=l.filter(b=>String(b).trim()),l.sort((b,M)=>b.length-M.length),l=l.filter((b,M)=>{for(let O=M+1;O=0)return!1;return!0});let v=l.join(\" | \");v!==this._attribHTML&&(this._attribHTML=v,l.length?(this._innerContainer.innerHTML=v,this._container.classList.remove(\"maplibregl-attrib-empty\")):this._container.classList.add(\"maplibregl-attrib-empty\"),this._updateCompact(),this._editLink=null)}}class cl{constructor(l={}){this._updateCompact=()=>{let f=this._container.children;if(f.length){let v=f[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&v.classList.add(\"maplibregl-compact\"):v.classList.remove(\"maplibregl-compact\")}},this.options=l}getDefaultPosition(){return\"bottom-left\"}onAdd(l){this._map=l,this._compact=this.options&&this.options.compact,this._container=w.create(\"div\",\"maplibregl-ctrl\");let f=w.create(\"a\",\"maplibregl-ctrl-logo\");return f.target=\"_blank\",f.rel=\"noopener nofollow\",f.href=\"https://maplibre.org/\",f.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),f.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(f),this._container.style.display=\"block\",this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container}onRemove(){w.remove(this._container),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._compact=void 0}}class Mx{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(l){let f=++this._id;return this._queue.push({callback:l,id:f,cancelled:!1}),f}remove(l){let f=this._currentlyRunning,v=f?this._queue.concat(f):this._queue;for(let b of v)if(b.id===l)return void(b.cancelled=!0)}run(l=0){if(this._currentlyRunning)throw new Error(\"Attempting to run(), but is already running.\");let f=this._currentlyRunning=this._queue;this._queue=[];for(let v of f)if(!v.cancelled&&(v.callback(l),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Rd=s.X([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class Tn extends s.E{constructor(l){super(),this.sourceCache=l,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,l.usedForTerrain=!0,l.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(l,f){this.sourceCache.update(l,f),this._renderableTilesKeys=[];let v={};for(let b of l.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:f}))v[b.key]=!0,this._renderableTilesKeys.push(b.key),this._tiles[b.key]||(b.posMatrix=new Float64Array(16),s.aN(b.posMatrix,0,s.W,0,s.W,0,1),this._tiles[b.key]=new Ho(b,this.tileSize));for(let b in this._tiles)v[b]||delete this._tiles[b]}freeRtt(l){for(let f in this._tiles){let v=this._tiles[f];(!l||v.tileID.equals(l)||v.tileID.isChildOf(l)||l.isChildOf(v.tileID))&&(v.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(l=>this.getTileByID(l))}getTileByID(l){return this._tiles[l]}getTerrainCoords(l){let f={};for(let v of this._renderableTilesKeys){let b=this._tiles[v].tileID;if(b.canonical.equals(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16),s.aN(M.posMatrix,0,s.W,0,s.W,0,1),f[v]=M}else if(b.canonical.isChildOf(l.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=b.canonical.z-l.canonical.z,F=b.canonical.x-(b.canonical.x>>O<>O<>O;s.aN(M.posMatrix,0,W,0,W,0,1),s.H(M.posMatrix,M.posMatrix,[-F*W,-U*W,0]),f[v]=M}else if(l.canonical.isChildOf(b.canonical)){let M=l.clone();M.posMatrix=new Float64Array(16);let O=l.canonical.z-b.canonical.z,F=l.canonical.x-(l.canonical.x>>O<>O<>O;s.aN(M.posMatrix,0,s.W,0,s.W,0,1),s.H(M.posMatrix,M.posMatrix,[F*W,U*W,0]),s.J(M.posMatrix,M.posMatrix,[1/2**O,1/2**O,0]),f[v]=M}}return f}getSourceTile(l,f){let v=this.sourceCache._source,b=l.overscaledZ-this.deltaZoom;if(b>v.maxzoom&&(b=v.maxzoom),b=v.minzoom&&(!M||!M.dem);)M=this.sourceCache.getTileByID(l.scaledTo(b--).key);return M}tilesAfterTime(l=Date.now()){return Object.values(this._tiles).filter(f=>f.timeAdded>=l)}}class Dn{constructor(l,f,v){this.painter=l,this.sourceCache=new Tn(f),this.options=v,this.exaggeration=typeof v.exaggeration==\"number\"?v.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(l,f,v,b=s.W){var M;if(!(f>=0&&f=0&&vl.canonical.z&&(l.canonical.z>=b?M=l.canonical.z-b:s.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let O=l.canonical.x-(l.canonical.x>>M<>M<>8<<4|M>>8,f[O+3]=0;let v=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(f.buffer)),b=new ae(l,v,l.gl.RGBA,{premultiply:!1});return b.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._coordsTexture=b,b}pointCoordinate(l){let f=new Uint8Array(4),v=this.painter.context,b=v.gl;v.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),b.readPixels(l.x,this.painter.height/devicePixelRatio-l.y-1,1,1,b.RGBA,b.UNSIGNED_BYTE,f),v.bindFramebuffer.set(null);let M=f[0]+(f[2]>>4<<8),O=f[1]+((15&f[2])<<8),F=this.coordsIndex[255-f[3]],U=F&&this.sourceCache.getTileByID(F);if(!U)return null;let W=this._coordsTextureSize,$=(1<l.id!==f),this._recentlyUsed.push(l.id)}stampObject(l){l.stamp=++this._stamp}getOrCreateFreeObject(){for(let f of this._recentlyUsed)if(!this._objects[f].inUse)return this._objects[f];if(this._objects.length>=this._size)throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");let l=this._createObject(this._objects.length);return this._objects.push(l),l}freeObject(l){l.inUse=!1}freeAllObjects(){for(let l of this._objects)this.freeObject(l)}isFull(){return!(this._objects.length!l.inUse)===!1}}let Na={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class sA{constructor(l,f){this.painter=l,this.terrain=f,this.pool=new r0(l.context,30,f.sourceCache.tileSize*f.qualityFactor)}destruct(){this.pool.destruct()}getTexture(l){return this.pool.getObjectForId(l.rtt[this._stacks.length-1].id).texture}prepareForRender(l,f){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=l._order.filter(v=>!l._layers[v].isHidden(f)),this._coordsDescendingInv={};for(let v in l.sourceCaches){this._coordsDescendingInv[v]={};let b=l.sourceCaches[v].getVisibleCoordinates();for(let M of b){let O=this.terrain.sourceCache.getTerrainCoords(M);for(let F in O)this._coordsDescendingInv[v][F]||(this._coordsDescendingInv[v][F]=[]),this._coordsDescendingInv[v][F].push(O[F])}}this._coordsDescendingInvStr={};for(let v of l._order){let b=l._layers[v],M=b.source;if(Na[b.type]&&!this._coordsDescendingInvStr[M]){this._coordsDescendingInvStr[M]={};for(let O in this._coordsDescendingInv[M])this._coordsDescendingInvStr[M][O]=this._coordsDescendingInv[M][O].map(F=>F.key).sort().join()}}for(let v of this._renderableTiles)for(let b in this._coordsDescendingInvStr){let M=this._coordsDescendingInvStr[b][v.tileID.key];M&&M!==v.rttCoords[b]&&(v.rtt=[])}}renderLayer(l){if(l.isHidden(this.painter.transform.zoom))return!1;let f=l.type,v=this.painter,b=this._renderableLayerIds[this._renderableLayerIds.length-1]===l.id;if(Na[f]&&(this._prevType&&Na[this._prevType]||this._stacks.push([]),this._prevType=f,this._stacks[this._stacks.length-1].push(l.id),!b))return!0;if(Na[this._prevType]||Na[f]&&b){this._prevType=f;let M=this._stacks.length-1,O=this._stacks[M]||[];for(let F of this._renderableTiles){if(this.pool.isFull()&&(Jp(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(F),F.rtt[M]){let W=this.pool.getObjectForId(F.rtt[M].id);if(W.stamp===F.rtt[M].stamp){this.pool.useObject(W);continue}}let U=this.pool.getOrCreateFreeObject();this.pool.useObject(U),this.pool.stampObject(U),F.rtt[M]={id:U.id,stamp:U.stamp},v.context.bindFramebuffer.set(U.fbo.framebuffer),v.context.clear({color:s.aO.transparent,stencil:0}),v.currentStencilSource=void 0;for(let W=0;W{T.touchstart=T.dragStart,T.touchmoveWindow=T.dragMove,T.touchend=T.dragEnd},n0={showCompass:!0,showZoom:!0,visualizePitch:!1};class s0{constructor(l,f,v=!1){this.mousedown=O=>{this.startMouse(s.e({},O,{ctrlKey:!0,preventDefault:()=>O.preventDefault()}),w.mousePos(this.element,O)),w.addEventListener(window,\"mousemove\",this.mousemove),w.addEventListener(window,\"mouseup\",this.mouseup)},this.mousemove=O=>{this.moveMouse(O,w.mousePos(this.element,O))},this.mouseup=O=>{this.mouseRotate.dragEnd(O),this.mousePitch&&this.mousePitch.dragEnd(O),this.offTemp()},this.touchstart=O=>{O.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=w.touchPos(this.element,O.targetTouches)[0],this.startTouch(O,this._startPos),w.addEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),w.addEventListener(window,\"touchend\",this.touchend))},this.touchmove=O=>{O.targetTouches.length!==1?this.reset():(this._lastPos=w.touchPos(this.element,O.targetTouches)[0],this.moveTouch(O,this._lastPos))},this.touchend=O=>{O.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;let b=l.dragRotate._mouseRotate.getClickTolerance(),M=l.dragRotate._mousePitch.getClickTolerance();this.element=f,this.mouseRotate=Xm({clickTolerance:b,enable:!0}),this.touchRotate=(({enable:O,clickTolerance:F,bearingDegreesPerPixelMoved:U=.8})=>{let W=new zl;return new al({clickTolerance:F,move:($,X)=>({bearingDelta:(X.x-$.x)*U}),moveStateManager:W,enable:O,assignEvents:Cf})})({clickTolerance:b,enable:!0}),this.map=l,v&&(this.mousePitch=Tf({clickTolerance:M,enable:!0}),this.touchPitch=(({enable:O,clickTolerance:F,pitchDegreesPerPixelMoved:U=-.5})=>{let W=new zl;return new al({clickTolerance:F,move:($,X)=>({pitchDelta:(X.y-$.y)*U}),moveStateManager:W,enable:O,assignEvents:Cf})})({clickTolerance:M,enable:!0})),w.addEventListener(f,\"mousedown\",this.mousedown),w.addEventListener(f,\"touchstart\",this.touchstart,{passive:!1}),w.addEventListener(f,\"touchcancel\",this.reset)}startMouse(l,f){this.mouseRotate.dragStart(l,f),this.mousePitch&&this.mousePitch.dragStart(l,f),w.disableDrag()}startTouch(l,f){this.touchRotate.dragStart(l,f),this.touchPitch&&this.touchPitch.dragStart(l,f),w.disableDrag()}moveMouse(l,f){let v=this.map,{bearingDelta:b}=this.mouseRotate.dragMove(l,f)||{};if(b&&v.setBearing(v.getBearing()+b),this.mousePitch){let{pitchDelta:M}=this.mousePitch.dragMove(l,f)||{};M&&v.setPitch(v.getPitch()+M)}}moveTouch(l,f){let v=this.map,{bearingDelta:b}=this.touchRotate.dragMove(l,f)||{};if(b&&v.setBearing(v.getBearing()+b),this.touchPitch){let{pitchDelta:M}=this.touchPitch.dragMove(l,f)||{};M&&v.setPitch(v.getPitch()+M)}}off(){let l=this.element;w.removeEventListener(l,\"mousedown\",this.mousedown),w.removeEventListener(l,\"touchstart\",this.touchstart,{passive:!1}),w.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),w.removeEventListener(window,\"touchend\",this.touchend),w.removeEventListener(l,\"touchcancel\",this.reset),this.offTemp()}offTemp(){w.enableDrag(),w.removeEventListener(window,\"mousemove\",this.mousemove),w.removeEventListener(window,\"mouseup\",this.mouseup),w.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),w.removeEventListener(window,\"touchend\",this.touchend)}}let Rc;function Us(T,l,f){if(T=new s.M(T.lng,T.lat),l){let v=new s.M(T.lng-360,T.lat),b=new s.M(T.lng+360,T.lat),M=f.locationPoint(T).distSqr(l);f.locationPoint(v).distSqr(l)180;){let v=f.locationPoint(T);if(v.x>=0&&v.y>=0&&v.x<=f.width&&v.y<=f.height)break;T.lng>f.center.lng?T.lng-=360:T.lng+=360}return T}let hh={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};function ul(T,l,f){let v=T.classList;for(let b in hh)v.remove(`maplibregl-${f}-anchor-${b}`);v.add(`maplibregl-${f}-anchor-${l}`)}class Dd extends s.E{constructor(l){if(super(),this._onKeyPress=f=>{let v=f.code,b=f.charCode||f.keyCode;v!==\"Space\"&&v!==\"Enter\"&&b!==32&&b!==13||this.togglePopup()},this._onMapClick=f=>{let v=f.originalEvent.target,b=this._element;this._popup&&(v===b||b.contains(v))&&this.togglePopup()},this._update=f=>{if(!this._map)return;let v=this._map.loaded()&&!this._map.isMoving();(f?.type===\"terrain\"||f?.type===\"render\"&&!v)&&this._map.once(\"render\",this._update),this._map.transform.renderWorldCopies&&(this._lngLat=Us(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let b=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?b=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(b=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let M=\"\";this._pitchAlignment===\"viewport\"||this._pitchAlignment===\"auto\"?M=\"rotateX(0deg)\":this._pitchAlignment===\"map\"&&(M=`rotateX(${this._map.getPitch()}deg)`),f&&f.type!==\"moveend\"||(this._pos=this._pos.round()),w.setTransform(this._element,`${hh[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${M} ${b}`),this._updateOpacity(f&&f.type===\"moveend\")},this._onMove=f=>{if(!this._isDragging){let v=this._clickTolerance||this._map._clickTolerance;this._isDragging=f.point.dist(this._pointerdownPos)>=v}this._isDragging&&(this._pos=f.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",this._state===\"pending\"&&(this._state=\"active\",this.fire(new s.k(\"dragstart\"))),this.fire(new s.k(\"drag\")))},this._onUp=()=>{this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),this._state===\"active\"&&this.fire(new s.k(\"dragend\")),this._state=\"inactive\"},this._addDragHandler=f=>{this._element.contains(f.originalEvent.target)&&(f.preventDefault(),this._positionDelta=f.point.sub(this._pos).add(this._offset),this._pointerdownPos=f.point,this._state=\"pending\",this._map.on(\"mousemove\",this._onMove),this._map.on(\"touchmove\",this._onMove),this._map.once(\"mouseup\",this._onUp),this._map.once(\"touchend\",this._onUp))},this._anchor=l&&l.anchor||\"center\",this._color=l&&l.color||\"#3FB1CE\",this._scale=l&&l.scale||1,this._draggable=l&&l.draggable||!1,this._clickTolerance=l&&l.clickTolerance||0,this._isDragging=!1,this._state=\"inactive\",this._rotation=l&&l.rotation||0,this._rotationAlignment=l&&l.rotationAlignment||\"auto\",this._pitchAlignment=l&&l.pitchAlignment&&l.pitchAlignment!==\"auto\"?l.pitchAlignment:this._rotationAlignment,this.setOpacity(),this.setOpacity(l?.opacity,l?.opacityWhenCovered),l&&l.element)this._element=l.element,this._offset=s.P.convert(l&&l.offset||[0,0]);else{this._defaultMarker=!0,this._element=w.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");let f=w.createNS(\"http://www.w3.org/2000/svg\",\"svg\"),v=41,b=27;f.setAttributeNS(null,\"display\",\"block\"),f.setAttributeNS(null,\"height\",`${v}px`),f.setAttributeNS(null,\"width\",`${b}px`),f.setAttributeNS(null,\"viewBox\",`0 0 ${b} ${v}`);let M=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");M.setAttributeNS(null,\"stroke\",\"none\"),M.setAttributeNS(null,\"stroke-width\",\"1\"),M.setAttributeNS(null,\"fill\",\"none\"),M.setAttributeNS(null,\"fill-rule\",\"evenodd\");let O=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");O.setAttributeNS(null,\"fill-rule\",\"nonzero\");let F=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");F.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),F.setAttributeNS(null,\"fill\",\"#000000\");let U=[{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"9.5\",ry:\"4.77275007\"},{rx:\"8.5\",ry:\"4.29549936\"},{rx:\"7.5\",ry:\"3.81822308\"},{rx:\"6.5\",ry:\"3.34094679\"},{rx:\"5.5\",ry:\"2.86367051\"},{rx:\"4.5\",ry:\"2.38636864\"}];for(let kt of U){let Wt=w.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");Wt.setAttributeNS(null,\"opacity\",\"0.04\"),Wt.setAttributeNS(null,\"cx\",\"10.5\"),Wt.setAttributeNS(null,\"cy\",\"5.80029008\"),Wt.setAttributeNS(null,\"rx\",kt.rx),Wt.setAttributeNS(null,\"ry\",kt.ry),F.appendChild(Wt)}let W=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");W.setAttributeNS(null,\"fill\",this._color);let $=w.createNS(\"http://www.w3.org/2000/svg\",\"path\");$.setAttributeNS(null,\"d\",\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"),W.appendChild($);let X=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");X.setAttributeNS(null,\"opacity\",\"0.25\"),X.setAttributeNS(null,\"fill\",\"#000000\");let at=w.createNS(\"http://www.w3.org/2000/svg\",\"path\");at.setAttributeNS(null,\"d\",\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"),X.appendChild(at);let gt=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");gt.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),gt.setAttributeNS(null,\"fill\",\"#FFFFFF\");let _t=w.createNS(\"http://www.w3.org/2000/svg\",\"g\");_t.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");let yt=w.createNS(\"http://www.w3.org/2000/svg\",\"circle\");yt.setAttributeNS(null,\"fill\",\"#000000\"),yt.setAttributeNS(null,\"opacity\",\"0.25\"),yt.setAttributeNS(null,\"cx\",\"5.5\"),yt.setAttributeNS(null,\"cy\",\"5.5\"),yt.setAttributeNS(null,\"r\",\"5.4999962\");let At=w.createNS(\"http://www.w3.org/2000/svg\",\"circle\");At.setAttributeNS(null,\"fill\",\"#FFFFFF\"),At.setAttributeNS(null,\"cx\",\"5.5\"),At.setAttributeNS(null,\"cy\",\"5.5\"),At.setAttributeNS(null,\"r\",\"5.4999962\"),_t.appendChild(yt),_t.appendChild(At),O.appendChild(F),O.appendChild(W),O.appendChild(X),O.appendChild(gt),O.appendChild(_t),f.appendChild(O),f.setAttributeNS(null,\"height\",v*this._scale+\"px\"),f.setAttributeNS(null,\"width\",b*this._scale+\"px\"),this._element.appendChild(f),this._offset=s.P.convert(l&&l.offset||[0,-14])}if(this._element.classList.add(\"maplibregl-marker\"),this._element.addEventListener(\"dragstart\",f=>{f.preventDefault()}),this._element.addEventListener(\"mousedown\",f=>{f.preventDefault()}),ul(this._element,this._anchor,\"marker\"),l&&l.className)for(let f of l.className.split(\" \"))this._element.classList.add(f);this._popup=null}addTo(l){return this.remove(),this._map=l,l.getCanvasContainer().appendChild(this._element),l.on(\"move\",this._update),l.on(\"moveend\",this._update),l.on(\"terrain\",this._update),this.setDraggable(this._draggable),this._update(),this._map.on(\"click\",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off(\"click\",this._onMapClick),this._map.off(\"move\",this._update),this._map.off(\"moveend\",this._update),this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler),this._map.off(\"mouseup\",this._onUp),this._map.off(\"touchend\",this._onUp),this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),delete this._map),w.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(l){return this._lngLat=s.M.convert(l),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(l){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),l){if(!(\"offset\"in l.options)){let b=Math.abs(13.5)/Math.SQRT2;l.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-38.1],\"bottom-left\":[b,-1*(38.1-13.5+b)],\"bottom-right\":[-b,-1*(38.1-13.5+b)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=l,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress)}return this}getPopup(){return this._popup}togglePopup(){let l=this._popup;return l?(l.isOpen()?l.remove():l.addTo(this._map),this):this}_updateOpacity(l=!1){if(!this._map.terrain)return void(this._element.style.opacity!==this._opacity&&(this._element.style.opacity=this._opacity));if(l)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}let f=this._map,v=f.terrain.depthAtPoint(this._pos),b=f.terrain.getElevationForLngLatZoom(this._lngLat,f.transform.tileZoom);if(f.transform.lngLatToCameraDepth(this._lngLat,b)-v<.006)return void(this._element.style.opacity=this._opacity);let M=-this._offset.y/f.transform._pixelPerMeter,O=Math.sin(f.getPitch()*Math.PI/180)*M,F=f.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),U=f.transform.lngLatToCameraDepth(this._lngLat,b+O);this._element.style.opacity=U-F>.006?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(l){return this._offset=s.P.convert(l),this._update(),this}addClassName(l){this._element.classList.add(l)}removeClassName(l){this._element.classList.remove(l)}toggleClassName(l){return this._element.classList.toggle(l)}setDraggable(l){return this._draggable=!!l,this._map&&(l?(this._map.on(\"mousedown\",this._addDragHandler),this._map.on(\"touchstart\",this._addDragHandler)):(this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(l){return this._rotation=l||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(l){return this._rotationAlignment=l||\"auto\",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(l){return this._pitchAlignment=l&&l!==\"auto\"?l:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(l,f){return l===void 0&&f===void 0&&(this._opacity=\"1\",this._opacityWhenCovered=\"0.2\"),l!==void 0&&(this._opacity=l),f!==void 0&&(this._opacityWhenCovered=f),this._map&&this._updateOpacity(!0),this}}let Od={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},fh=0,Ps=!1,oA={maxWidth:100,unit:\"metric\"};function dh(T,l,f){let v=f&&f.maxWidth||100,b=T._container.clientHeight/2,M=T.unproject([0,b]),O=T.unproject([v,b]),F=M.distanceTo(O);if(f&&f.unit===\"imperial\"){let U=3.2808*F;U>5280?hl(l,v,U/5280,T._getUIString(\"ScaleControl.Miles\")):hl(l,v,U,T._getUIString(\"ScaleControl.Feet\"))}else f&&f.unit===\"nautical\"?hl(l,v,F/1852,T._getUIString(\"ScaleControl.NauticalMiles\")):F>=1e3?hl(l,v,F/1e3,T._getUIString(\"ScaleControl.Kilometers\")):hl(l,v,F,T._getUIString(\"ScaleControl.Meters\"))}function hl(T,l,f,v){let b=function(M){let O=Math.pow(10,`${Math.floor(M)}`.length-1),F=M/O;return F=F>=10?10:F>=5?5:F>=3?3:F>=2?2:F>=1?1:function(U){let W=Math.pow(10,Math.ceil(-Math.log(U)/Math.LN10));return Math.round(U*W)/W}(F),O*F}(f);T.style.width=l*(b/f)+\"px\",T.innerHTML=`${b} ${v}`}let Dc={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},Oc=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function aA(T){if(T){if(typeof T==\"number\"){let l=Math.round(Math.abs(T)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,T),\"top-left\":new s.P(l,l),\"top-right\":new s.P(-l,l),bottom:new s.P(0,-T),\"bottom-left\":new s.P(l,-l),\"bottom-right\":new s.P(-l,-l),left:new s.P(T,0),right:new s.P(-T,0)}}if(T instanceof s.P||Array.isArray(T)){let l=s.P.convert(T);return{center:l,top:l,\"top-left\":l,\"top-right\":l,bottom:l,\"bottom-left\":l,\"bottom-right\":l,left:l,right:l}}return{center:s.P.convert(T.center||[0,0]),top:s.P.convert(T.top||[0,0]),\"top-left\":s.P.convert(T[\"top-left\"]||[0,0]),\"top-right\":s.P.convert(T[\"top-right\"]||[0,0]),bottom:s.P.convert(T.bottom||[0,0]),\"bottom-left\":s.P.convert(T[\"bottom-left\"]||[0,0]),\"bottom-right\":s.P.convert(T[\"bottom-right\"]||[0,0]),left:s.P.convert(T.left||[0,0]),right:s.P.convert(T.right||[0,0])}}return aA(new s.P(0,0))}let lA=o;n.AJAXError=s.bd,n.Evented=s.E,n.LngLat=s.M,n.MercatorCoordinate=s.Y,n.Point=s.P,n.addProtocol=s.be,n.config=s.a,n.removeProtocol=s.bf,n.AttributionControl=e0,n.BoxZoomHandler=wf,n.CanvasSource=Dl,n.CooperativeGesturesHandler=kd,n.DoubleClickZoomHandler=nA,n.DragPanHandler=Jm,n.DragRotateHandler=c_,n.EdgeInsets=Au,n.FullscreenControl=class extends s.E{constructor(T={}){super(),this._onFullscreenChange=()=>{(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,T&&T.container&&(T.container instanceof HTMLElement?this._container=T.container:s.w(\"Full screen control 'container' must be a DOM element.\")),\"onfullscreenchange\"in document?this._fullscreenchange=\"fullscreenchange\":\"onmozfullscreenchange\"in document?this._fullscreenchange=\"mozfullscreenchange\":\"onwebkitfullscreenchange\"in document?this._fullscreenchange=\"webkitfullscreenchange\":\"onmsfullscreenchange\"in document&&(this._fullscreenchange=\"MSFullscreenChange\")}onAdd(T){return this._map=T,this._container||(this._container=this._map.getContainer()),this._controlContainer=w.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),this._controlContainer}onRemove(){w.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){let T=this._fullscreenButton=w.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);w.create(\"span\",\"maplibregl-ctrl-icon\",T).setAttribute(\"aria-hidden\",\"true\"),T.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let T=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",T),this._fullscreenButton.title=T}_getTitle(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"),this._updateTitle(),this._fullscreen?(this.fire(new s.k(\"fullscreenstart\")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.k(\"fullscreenend\")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"),this._handleFullscreenChange(),this._map.resize()}},n.GeoJSONSource=ti,n.GeolocateControl=class extends s.E{constructor(T){super(),this._onSuccess=l=>{if(this._map){if(this._isOutOfMapMaxBounds(l))return this._setErrorState(),this.fire(new s.k(\"outofmaxbounds\",l)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=l,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!==\"OFF\"&&this._updateMarker(l),this.options.trackUserLocation&&this._watchState!==\"ACTIVE_LOCK\"||this._updateCamera(l),this.options.showUserLocation&&this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\"),this.fire(new s.k(\"geolocate\",l)),this._finish()}},this._updateCamera=l=>{let f=new s.M(l.coords.longitude,l.coords.latitude),v=l.coords.accuracy,b=this._map.getBearing(),M=s.e({bearing:b},this.options.fitBoundsOptions),O=an.fromLngLat(f,v);this._map.fitBounds(O,M,{geolocateSource:!0})},this._updateMarker=l=>{if(l){let f=new s.M(l.coords.longitude,l.coords.latitude);this._accuracyCircleMarker.setLngLat(f).addTo(this._map),this._userLocationDotMarker.setLngLat(f).addTo(this._map),this._accuracy=l.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=l=>{if(this._map){if(this.options.trackUserLocation)if(l.code===1){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;let f=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.title=f,this._geolocateButton.setAttribute(\"aria-label\",f),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(l.code===3&&Ps)return;this._setErrorState()}this._watchState!==\"OFF\"&&this.options.showUserLocation&&this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"),this.fire(new s.k(\"error\",l)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=l=>{if(this._map){if(this._container.addEventListener(\"contextmenu\",f=>f.preventDefault()),this._geolocateButton=w.create(\"button\",\"maplibregl-ctrl-geolocate\",this._container),w.create(\"span\",\"maplibregl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",\"true\"),this._geolocateButton.type=\"button\",l===!1){s.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");let f=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.title=f,this._geolocateButton.setAttribute(\"aria-label\",f)}else{let f=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.title=f,this._geolocateButton.setAttribute(\"aria-label\",f)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=w.create(\"div\",\"maplibregl-user-location-dot\"),this._userLocationDotMarker=new Dd({element:this._dotElement}),this._circleElement=w.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Dd({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",f=>{f.geolocateSource||this._watchState!==\"ACTIVE_LOCK\"||f.originalEvent&&f.originalEvent.type===\"resize\"||(this._watchState=\"BACKGROUND\",this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this.fire(new s.k(\"trackuserlocationend\")))})}},this.options=s.e({},Od,T)}onAdd(T){return this._map=T,this._container=w.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),function(l=!1){return s._(this,void 0,void 0,function*(){if(Rc!==void 0&&!l)return Rc;if(window.navigator.permissions===void 0)return Rc=!!window.navigator.geolocation,Rc;try{Rc=(yield window.navigator.permissions.query({name:\"geolocation\"})).state!==\"denied\"}catch{Rc=!!window.navigator.geolocation}return Rc})}().then(l=>this._setupUI(l)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),w.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,fh=0,Ps=!1}_isOutOfMapMaxBounds(T){let l=this._map.getMaxBounds(),f=T.coords;return l&&(f.longitudel.getEast()||f.latitudel.getNorth())}_setErrorState(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"ACTIVE_ERROR\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){let T=this._map.getBounds(),l=T.getSouthEast(),f=T.getNorthEast(),v=l.distanceTo(f),b=Math.ceil(this._accuracy/(v/this._map._container.clientHeight)*2);this._circleElement.style.width=`${b}px`,this._circleElement.style.height=`${b}px`}trigger(){if(!this._setup)return s.w(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new s.k(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":fh--,Ps=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this.fire(new s.k(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.k(\"trackuserlocationstart\"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"OFF\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState===\"OFF\"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let T;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),fh++,fh>1?(T={maximumAge:6e5,timeout:0},Ps=!0):(T=this.options.positionOptions,Ps=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,T)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null)}},n.Hash=$m,n.ImageSource=xn,n.KeyboardHandler=Km,n.LngLatBounds=an,n.LogoControl=cl,n.Map=class extends t0{constructor(T){if(s.bb.mark(s.bc.create),(T=s.e({},i0,T)).minZoom!=null&&T.maxZoom!=null&&T.minZoom>T.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(T.minPitch!=null&&T.maxPitch!=null&&T.minPitch>T.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(T.minPitch!=null&&T.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T.maxPitch!=null&&T.maxPitch>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(super(new xf(T.minZoom,T.maxZoom,T.minPitch,T.maxPitch,T.renderWorldCopies),{bearingSnap:T.bearingSnap}),this._contextLost=l=>{l.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.k(\"webglcontextlost\",{originalEvent:l}))},this._contextRestored=l=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.k(\"webglcontextrestored\",{originalEvent:l}))},this._onMapScroll=l=>{if(l.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=T.interactive,this._maxTileCacheSize=T.maxTileCacheSize,this._maxTileCacheZoomLevels=T.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=T.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=T.preserveDrawingBuffer,this._antialias=T.antialias,this._trackResize=T.trackResize,this._bearingSnap=T.bearingSnap,this._refreshExpiredTiles=T.refreshExpiredTiles,this._fadeDuration=T.fadeDuration,this._crossSourceCollisions=T.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=T.collectResourceTiming,this._renderTaskQueue=new Mx,this._controls=[],this._mapId=s.a3(),this._locale=s.e({},lo,T.locale),this._clickTolerance=T.clickTolerance,this._overridePixelRatio=T.pixelRatio,this._maxCanvasSize=T.maxCanvasSize,this.transformCameraUpdate=T.transformCameraUpdate,this._imageQueueHandle=Z.addThrottleControl(()=>this.isMoving()),this._requestManager=new J(T.transformRequest),typeof T.container==\"string\"){if(this._container=document.getElementById(T.container),!this._container)throw new Error(`Container '${T.container}' not found.`)}else{if(!(T.container instanceof HTMLElement))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=T.container}if(T.maxBounds&&this.setMaxBounds(T.maxBounds),this._setupContainer(),this._setupPainter(),this.on(\"move\",()=>this._update(!1)),this.on(\"moveend\",()=>this._update(!1)),this.on(\"zoom\",()=>this._update(!0)),this.on(\"terrain\",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once(\"idle\",()=>{this._idleTriggered=!0}),typeof window<\"u\"){addEventListener(\"online\",this._onWindowOnline,!1);let l=!1,f=Ym(v=>{this._trackResize&&!this._removed&&this.resize(v)._update()},50);this._resizeObserver=new ResizeObserver(v=>{l?f(v):l=!0}),this._resizeObserver.observe(this._container)}this.handlers=new xu(this,T),this._hash=T.hash&&new $m(typeof T.hash==\"string\"&&T.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:T.center,zoom:T.zoom,bearing:T.bearing,pitch:T.pitch}),T.bounds&&(this.resize(),this.fitBounds(T.bounds,s.e({},T.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=T.localIdeographFontFamily,this._validateStyle=T.validateStyle,T.style&&this.setStyle(T.style,{localIdeographFontFamily:T.localIdeographFontFamily}),T.attributionControl&&this.addControl(new e0(typeof T.attributionControl==\"boolean\"?void 0:T.attributionControl)),T.maplibreLogo&&this.addControl(new cl,T.logoPosition),this.on(\"style.load\",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on(\"data\",l=>{this._update(l.dataType===\"style\"),this.fire(new s.k(`${l.dataType}data`,l))}),this.on(\"dataloading\",l=>{this.fire(new s.k(`${l.dataType}dataloading`,l))}),this.on(\"dataabort\",l=>{this.fire(new s.k(\"sourcedataabort\",l))})}_getMapId(){return this._mapId}addControl(T,l){if(l===void 0&&(l=T.getDefaultPosition?T.getDefaultPosition():\"top-right\"),!T||!T.onAdd)return this.fire(new s.j(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));let f=T.onAdd(this);this._controls.push(T);let v=this._controlPositions[l];return l.indexOf(\"bottom\")!==-1?v.insertBefore(f,v.firstChild):v.appendChild(f),this}removeControl(T){if(!T||!T.onRemove)return this.fire(new s.j(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));let l=this._controls.indexOf(T);return l>-1&&this._controls.splice(l,1),T.onRemove(this),this}hasControl(T){return this._controls.indexOf(T)>-1}calculateCameraOptionsFromTo(T,l,f,v){return v==null&&this.terrain&&(v=this.terrain.getElevationForLngLatZoom(f,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(T,l,f,v)}resize(T){var l;let f=this._containerDimensions(),v=f[0],b=f[1],M=this._getClampedPixelRatio(v,b);if(this._resizeCanvas(v,b,M),this.painter.resize(v,b,M),this.painter.overLimit()){let F=this.painter.context.gl;this._maxCanvasSize=[F.drawingBufferWidth,F.drawingBufferHeight];let U=this._getClampedPixelRatio(v,b);this._resizeCanvas(v,b,U),this.painter.resize(v,b,U)}this.transform.resize(v,b),(l=this._requestedCameraState)===null||l===void 0||l.resize(v,b);let O=!this._moving;return O&&(this.stop(),this.fire(new s.k(\"movestart\",T)).fire(new s.k(\"move\",T))),this.fire(new s.k(\"resize\",T)),O&&this.fire(new s.k(\"moveend\",T)),this}_getClampedPixelRatio(T,l){let{0:f,1:v}=this._maxCanvasSize,b=this.getPixelRatio(),M=T*b,O=l*b;return Math.min(M>f?f/M:1,O>v?v/O:1)*b}getPixelRatio(){var T;return(T=this._overridePixelRatio)!==null&&T!==void 0?T:devicePixelRatio}setPixelRatio(T){this._overridePixelRatio=T,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(T){return this.transform.setMaxBounds(an.convert(T)),this._update()}setMinZoom(T){if((T=T??-2)>=-2&&T<=this.transform.maxZoom)return this.transform.minZoom=T,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=T,this._update(),this.getZoom()>T&&this.setZoom(T),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(T){if((T=T??0)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(T>=0&&T<=this.transform.maxPitch)return this.transform.minPitch=T,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(T>=this.transform.minPitch)return this.transform.maxPitch=T,this._update(),this.getPitch()>T&&this.setPitch(T),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(T){return this.transform.renderWorldCopies=T,this._update()}project(T){return this.transform.locationPoint(s.M.convert(T),this.style&&this.terrain)}unproject(T){return this.transform.pointLocation(s.P.convert(T),this.terrain)}isMoving(){var T;return this._moving||((T=this.handlers)===null||T===void 0?void 0:T.isMoving())}isZooming(){var T;return this._zooming||((T=this.handlers)===null||T===void 0?void 0:T.isZooming())}isRotating(){var T;return this._rotating||((T=this.handlers)===null||T===void 0?void 0:T.isRotating())}_createDelegatedListener(T,l,f){if(T===\"mouseenter\"||T===\"mouseover\"){let v=!1;return{layer:l,listener:f,delegates:{mousemove:M=>{let O=this.getLayer(l)?this.queryRenderedFeatures(M.point,{layers:[l]}):[];O.length?v||(v=!0,f.call(this,new Ui(T,this,M.originalEvent,{features:O}))):v=!1},mouseout:()=>{v=!1}}}}if(T===\"mouseleave\"||T===\"mouseout\"){let v=!1;return{layer:l,listener:f,delegates:{mousemove:O=>{(this.getLayer(l)?this.queryRenderedFeatures(O.point,{layers:[l]}):[]).length?v=!0:v&&(v=!1,f.call(this,new Ui(T,this,O.originalEvent)))},mouseout:O=>{v&&(v=!1,f.call(this,new Ui(T,this,O.originalEvent)))}}}}{let v=b=>{let M=this.getLayer(l)?this.queryRenderedFeatures(b.point,{layers:[l]}):[];M.length&&(b.features=M,f.call(this,b),delete b.features)};return{layer:l,listener:f,delegates:{[T]:v}}}}on(T,l,f){if(f===void 0)return super.on(T,l);let v=this._createDelegatedListener(T,l,f);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[T]=this._delegatedListeners[T]||[],this._delegatedListeners[T].push(v);for(let b in v.delegates)this.on(b,v.delegates[b]);return this}once(T,l,f){if(f===void 0)return super.once(T,l);let v=this._createDelegatedListener(T,l,f);for(let b in v.delegates)this.once(b,v.delegates[b]);return this}off(T,l,f){return f===void 0?super.off(T,l):(this._delegatedListeners&&this._delegatedListeners[T]&&(v=>{let b=this._delegatedListeners[T];for(let M=0;Mthis._updateStyle(T,l));let f=this.style&&l.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!T)),T?(this.style=new so(this,l||{}),this.style.setEventedParent(this,{style:this.style}),typeof T==\"string\"?this.style.loadURL(T,l,f):this.style.loadJSON(T,l,f),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new so(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(T,l){if(typeof T==\"string\"){let f=this._requestManager.transformRequest(T,K.Style);s.h(f,new AbortController).then(v=>{this._updateDiff(v.data,l)}).catch(v=>{v&&this.fire(new s.j(v))})}else typeof T==\"object\"&&this._updateDiff(T,l)}_updateDiff(T,l){try{this.style.setState(T,l)&&this._update(!0)}catch(f){s.w(`Unable to perform style diff: ${f.message||f.error||f}. Rebuilding the style from scratch.`),this._updateStyle(T,l)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w(\"There is no style added to the map.\")}addSource(T,l){return this._lazyInitEmptyStyle(),this.style.addSource(T,l),this._update(!0)}isSourceLoaded(T){let l=this.style&&this.style.sourceCaches[T];if(l!==void 0)return l.loaded();this.fire(new s.j(new Error(`There is no source with ID '${T}'`)))}setTerrain(T){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),T){let l=this.style.sourceCaches[T.source];if(!l)throw new Error(`cannot load terrain, because there exists no source with ID: ${T.source}`);this.terrain===null&&l.reload();for(let f in this.style._layers){let v=this.style._layers[f];v.type===\"hillshade\"&&v.source===T.source&&s.w(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\")}this.terrain=new Dn(this.painter,l,T),this.painter.renderToTexture=new sA(this.painter,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=f=>{f.dataType===\"style\"?this.terrain.sourceCache.freeRtt():f.dataType===\"source\"&&f.tile&&(f.sourceId!==T.source||this._elevationFreeze||(this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(f.tile.tileID))},this.style.on(\"data\",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.minElevationForCurrentTile=0,this.transform.elevation=0;return this.fire(new s.k(\"terrain\",{terrain:T})),this}getTerrain(){var T,l;return(l=(T=this.terrain)===null||T===void 0?void 0:T.options)!==null&&l!==void 0?l:null}areTilesLoaded(){let T=this.style&&this.style.sourceCaches;for(let l in T){let f=T[l]._tiles;for(let v in f){let b=f[v];if(b.state!==\"loaded\"&&b.state!==\"errored\")return!1}}return!0}removeSource(T){return this.style.removeSource(T),this._update(!0)}getSource(T){return this.style.getSource(T)}addImage(T,l,f={}){let{pixelRatio:v=1,sdf:b=!1,stretchX:M,stretchY:O,content:F}=f;if(this._lazyInitEmptyStyle(),!(l instanceof HTMLImageElement||s.b(l))){if(l.width===void 0||l.height===void 0)return this.fire(new s.j(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));{let{width:U,height:W,data:$}=l,X=l;return this.style.addImage(T,{data:new s.R({width:U,height:W},new Uint8Array($)),pixelRatio:v,stretchX:M,stretchY:O,content:F,sdf:b,version:0,userImage:X}),X.onAdd&&X.onAdd(this,T),this}}{let{width:U,height:W,data:$}=_.getImageData(l);this.style.addImage(T,{data:new s.R({width:U,height:W},$),pixelRatio:v,stretchX:M,stretchY:O,content:F,sdf:b,version:0})}}updateImage(T,l){let f=this.style.getImage(T);if(!f)return this.fire(new s.j(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));let v=l instanceof HTMLImageElement||s.b(l)?_.getImageData(l):l,{width:b,height:M,data:O}=v;if(b===void 0||M===void 0)return this.fire(new s.j(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(b!==f.data.width||M!==f.data.height)return this.fire(new s.j(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));let F=!(l instanceof HTMLImageElement||s.b(l));return f.data.replace(O,F),this.style.updateImage(T,f),this}getImage(T){return this.style.getImage(T)}hasImage(T){return T?!!this.style.getImage(T):(this.fire(new s.j(new Error(\"Missing required image id\"))),!1)}removeImage(T){this.style.removeImage(T)}loadImage(T){return Z.getImage(this._requestManager.transformRequest(T,K.Image),new AbortController)}listImages(){return this.style.listImages()}addLayer(T,l){return this._lazyInitEmptyStyle(),this.style.addLayer(T,l),this._update(!0)}moveLayer(T,l){return this.style.moveLayer(T,l),this._update(!0)}removeLayer(T){return this.style.removeLayer(T),this._update(!0)}getLayer(T){return this.style.getLayer(T)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(T,l,f){return this.style.setLayerZoomRange(T,l,f),this._update(!0)}setFilter(T,l,f={}){return this.style.setFilter(T,l,f),this._update(!0)}getFilter(T){return this.style.getFilter(T)}setPaintProperty(T,l,f,v={}){return this.style.setPaintProperty(T,l,f,v),this._update(!0)}getPaintProperty(T,l){return this.style.getPaintProperty(T,l)}setLayoutProperty(T,l,f,v={}){return this.style.setLayoutProperty(T,l,f,v),this._update(!0)}getLayoutProperty(T,l){return this.style.getLayoutProperty(T,l)}setGlyphs(T,l={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(T,l),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(T,l,f={}){return this._lazyInitEmptyStyle(),this.style.addSprite(T,l,f,v=>{v||this._update(!0)}),this}removeSprite(T){return this._lazyInitEmptyStyle(),this.style.removeSprite(T),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(T,l={}){return this._lazyInitEmptyStyle(),this.style.setSprite(T,l,f=>{f||this._update(!0)}),this}setLight(T,l={}){return this._lazyInitEmptyStyle(),this.style.setLight(T,l),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(T,l){return this.style.setFeatureState(T,l),this._update()}removeFeatureState(T,l){return this.style.removeFeatureState(T,l),this._update()}getFeatureState(T){return this.style.getFeatureState(T)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let T=0,l=0;return this._container&&(T=this._container.clientWidth||400,l=this._container.clientHeight||300),[T,l]}_setupContainer(){let T=this._container;T.classList.add(\"maplibregl-map\");let l=this._canvasContainer=w.create(\"div\",\"maplibregl-canvas-container\",T);this._interactive&&l.classList.add(\"maplibregl-interactive\"),this._canvas=w.create(\"canvas\",\"maplibregl-canvas\",l),this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"tabindex\",\"0\"),this._canvas.setAttribute(\"aria-label\",\"Map\"),this._canvas.setAttribute(\"role\",\"region\");let f=this._containerDimensions(),v=this._getClampedPixelRatio(f[0],f[1]);this._resizeCanvas(f[0],f[1],v);let b=this._controlContainer=w.create(\"div\",\"maplibregl-control-container\",T),M=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(O=>{M[O]=w.create(\"div\",`maplibregl-ctrl-${O} `,b)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_resizeCanvas(T,l,f){this._canvas.width=Math.floor(f*T),this._canvas.height=Math.floor(f*l),this._canvas.style.width=`${T}px`,this._canvas.style.height=`${l}px`}_setupPainter(){let T={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1},l=null;this._canvas.addEventListener(\"webglcontextcreationerror\",v=>{l={requestedAttributes:T},v&&(l.statusMessage=v.statusMessage,l.type=v.type)},{once:!0});let f=this._canvas.getContext(\"webgl2\",T)||this._canvas.getContext(\"webgl\",T);if(!f){let v=\"Failed to initialize WebGL\";throw l?(l.message=v,new Error(JSON.stringify(l))):new Error(v)}this.painter=new i_(f,this.transform),I.testSupport(f)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(T){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||T,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(T){return this._update(),this._renderTaskQueue.add(T)}_cancelRenderFrame(T){this._renderTaskQueue.remove(T)}_render(T){let l=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(T),this._removed)return;let f=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let b=this.transform.zoom,M=_.now();this.style.zoomHistory.update(b,M);let O=new s.a8(b,{now:M,fadeDuration:l,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),F=O.crossFadingFactor();F===1&&F===this._crossFadingFactor||(f=!0,this._crossFadingFactor=F),this.style.update(O)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.minElevationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,l,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:l,showPadding:this.showPadding}),this.fire(new s.k(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.bb.mark(s.bc.load),this.fire(new s.k(\"load\"))),this.style&&(this.style.hasTransitions()||f)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let v=this._sourcesDirty||this._styleDirty||this._placementDirty;return v||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.k(\"idle\")),!this._loaded||this._fullyLoaded||v||(this._fullyLoaded=!0,s.bb.mark(s.bc.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var T;this._hash&&this._hash.remove();for(let f of this._controls)f.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<\"u\"&&removeEventListener(\"online\",this._onWindowOnline,!1),Z.removeThrottleControl(this._imageQueueHandle),(T=this._resizeObserver)===null||T===void 0||T.disconnect();let l=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");l&&l.loseContext(),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),w.remove(this._canvasContainer),w.remove(this._controlContainer),this._container.classList.remove(\"maplibregl-map\"),s.bb.clearMetrics(),this._removed=!0,this.fire(new s.k(\"remove\"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,_.frameAsync(this._frameRequest).then(T=>{s.bb.frame(T),this._frameRequest=null,this._render(T)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(T){this._showTileBoundaries!==T&&(this._showTileBoundaries=T,this._update())}get showPadding(){return!!this._showPadding}set showPadding(T){this._showPadding!==T&&(this._showPadding=T,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(T){this._showCollisionBoxes!==T&&(this._showCollisionBoxes=T,T?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(T){this._showOverdrawInspector!==T&&(this._showOverdrawInspector=T,this._update())}get repaint(){return!!this._repaint}set repaint(T){this._repaint!==T&&(this._repaint=T,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(T){this._vertices=T,this._update()}get version(){return qn}getCameraTargetElevation(){return this.transform.elevation}},n.MapMouseEvent=Ui,n.MapTouchEvent=mu,n.MapWheelEvent=gu,n.Marker=Dd,n.NavigationControl=class{constructor(T){this._updateZoomButtons=()=>{let l=this._map.getZoom(),f=l===this._map.getMaxZoom(),v=l===this._map.getMinZoom();this._zoomInButton.disabled=f,this._zoomOutButton.disabled=v,this._zoomInButton.setAttribute(\"aria-disabled\",f.toString()),this._zoomOutButton.setAttribute(\"aria-disabled\",v.toString())},this._rotateCompassArrow=()=>{let l=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=l},this._setButtonTitle=(l,f)=>{let v=this._map._getUIString(`NavigationControl.${f}`);l.title=v,l.setAttribute(\"aria-label\",v)},this.options=s.e({},n0,T),this._container=w.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",l=>l.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton(\"maplibregl-ctrl-zoom-in\",l=>this._map.zoomIn({},{originalEvent:l})),w.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"maplibregl-ctrl-zoom-out\",l=>this._map.zoomOut({},{originalEvent:l})),w.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(this._compass=this._createButton(\"maplibregl-ctrl-compass\",l=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:l}):this._map.resetNorth({},{originalEvent:l})}),this._compassIcon=w.create(\"span\",\"maplibregl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"))}onAdd(T){return this._map=T,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),this._map.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&this._map.on(\"pitch\",this._rotateCompassArrow),this._map.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new s0(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){w.remove(this._container),this.options.showZoom&&this._map.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(\"pitch\",this._rotateCompassArrow),this._map.off(\"rotate\",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(T,l){let f=w.create(\"button\",T,this._container);return f.type=\"button\",f.addEventListener(\"click\",l),f}},n.Popup=class extends s.E{constructor(T){super(),this.remove=()=>(this._content&&w.remove(this._content),this._container&&(w.remove(this._container),delete this._container),this._map&&(this._map.off(\"move\",this._update),this._map.off(\"move\",this._onClose),this._map.off(\"click\",this._onClose),this._map.off(\"remove\",this.remove),this._map.off(\"mousemove\",this._onMouseMove),this._map.off(\"mouseup\",this._onMouseUp),this._map.off(\"drag\",this._onDrag),this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\"),delete this._map),this.fire(new s.k(\"close\")),this),this._onMouseUp=l=>{this._update(l.point)},this._onMouseMove=l=>{this._update(l.point)},this._onDrag=l=>{this._update(l.point)},this._update=l=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=w.create(\"div\",\"maplibregl-popup\",this._map.getContainer()),this._tip=w.create(\"div\",\"maplibregl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className)for(let O of this.options.className.split(\" \"))this._container.classList.add(O);this._trackPointer&&this._container.classList.add(\"maplibregl-popup-track-pointer\")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Us(this._lngLat,this._pos,this._map.transform)),this._trackPointer&&!l)return;let f=this._pos=this._trackPointer&&l?l:this._map.project(this._lngLat),v=this.options.anchor,b=aA(this.options.offset);if(!v){let O=this._container.offsetWidth,F=this._container.offsetHeight,U;U=f.y+b.bottom.ythis._map.transform.height-F?[\"bottom\"]:[],f.xthis._map.transform.width-O/2&&U.push(\"right\"),v=U.length===0?\"bottom\":U.join(\"-\")}let M=f.add(b[v]).round();w.setTransform(this._container,`${hh[v]} translate(${M.x}px,${M.y}px)`),ul(this._container,v,\"popup\")},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(Dc),T)}addTo(T){return this._map&&this.remove(),this._map=T,this.options.closeOnClick&&this._map.on(\"click\",this._onClose),this.options.closeOnMove&&this._map.on(\"move\",this._onClose),this._map.on(\"remove\",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"mouseup\",this._onMouseUp),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new s.k(\"open\")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(T){return this._lngLat=s.M.convert(T),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(\"move\",this._update),this._map.off(\"mousemove\",this._onMouseMove),this._container&&this._container.classList.remove(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off(\"move\",this._update),this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"drag\",this._onDrag),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")),this}getElement(){return this._container}setText(T){return this.setDOMContent(document.createTextNode(T))}setHTML(T){let l=document.createDocumentFragment(),f=document.createElement(\"body\"),v;for(f.innerHTML=T;v=f.firstChild,v;)l.appendChild(v);return this.setDOMContent(l)}getMaxWidth(){var T;return(T=this._container)===null||T===void 0?void 0:T.style.maxWidth}setMaxWidth(T){return this.options.maxWidth=T,this._update(),this}setDOMContent(T){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=w.create(\"div\",\"maplibregl-popup-content\",this._container);return this._content.appendChild(T),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(T){this._container&&this._container.classList.add(T)}removeClassName(T){this._container&&this._container.classList.remove(T)}setOffset(T){return this.options.offset=T,this._update(),this}toggleClassName(T){if(this._container)return this._container.classList.toggle(T)}_createCloseButton(){this.options.closeButton&&(this._closeButton=w.create(\"button\",\"maplibregl-popup-close-button\",this._content),this._closeButton.type=\"button\",this._closeButton.setAttribute(\"aria-label\",\"Close popup\"),this._closeButton.innerHTML=\"×\",this._closeButton.addEventListener(\"click\",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let T=this._container.querySelector(Oc);T&&T.focus()}},n.RasterDEMTileSource=hu,n.RasterTileSource=vo,n.ScaleControl=class{constructor(T){this._onMove=()=>{dh(this._map,this._container,this.options)},this.setUnit=l=>{this.options.unit=l,dh(this._map,this._container,this.options)},this.options=s.e({},oA,T)}getDefaultPosition(){return\"bottom-left\"}onAdd(T){return this._map=T,this._container=w.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",T.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container}onRemove(){w.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0}},n.ScrollZoomHandler=Nl,n.Style=so,n.TerrainControl=class{constructor(T){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"),this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"),this._map.terrain?(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.Disable\")):(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.Enable\"))},this.options=T}onAdd(T){return this._map=T,this._container=w.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._terrainButton=w.create(\"button\",\"maplibregl-ctrl-terrain\",this._container),w.create(\"span\",\"maplibregl-ctrl-icon\",this._terrainButton).setAttribute(\"aria-hidden\",\"true\"),this._terrainButton.type=\"button\",this._terrainButton.addEventListener(\"click\",this._toggleTerrain),this._updateTerrainIcon(),this._map.on(\"terrain\",this._updateTerrainIcon),this._container}onRemove(){w.remove(this._container),this._map.off(\"terrain\",this._updateTerrainIcon),this._map=void 0}},n.TwoFingersTouchPitchHandler=yu,n.TwoFingersTouchRotateHandler=Cd,n.TwoFingersTouchZoomHandler=Ef,n.TwoFingersTouchZoomRotateHandler=ll,n.VectorTileSource=Jt,n.VideoSource=Wo,n.addSourceType=(T,l)=>s._(void 0,void 0,void 0,function*(){if(Tc(T))throw new Error(`A source type called \"${T}\" already exists.`);((f,v)=>{Ca[f]=v})(T,l)}),n.clearPrewarmedResources=function(){let T=Ia;T&&(T.isPreloaded()&&T.numActive()===1?(T.release(_o),Ia=null):console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"))},n.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},n.getRTLTextPluginStatus=function(){return Ae().getRTLTextPluginStatus()},n.getVersion=function(){return lA},n.getWorkerCount=function(){return oa.workerCount},n.getWorkerUrl=function(){return s.a.WORKER_URL},n.importScriptInWorkers=function(T){return Oi().broadcast(\"importScript\",T)},n.prewarm=function(){Ci().acquire(_o)},n.setMaxParallelImageRequests=function(T){s.a.MAX_PARALLEL_IMAGE_REQUESTS=T},n.setRTLTextPlugin=function(T,l){return Ae().setRTLTextPlugin(T,l)},n.setWorkerCount=function(T){oa.workerCount=T},n.setWorkerUrl=function(T){s.a.WORKER_URL=T}});var i=e;return i})});var q7=zr((i6t,UE)=>{(function(e,t,r,i){\"use strict\";var n=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],s=t.createElement(\"div\"),o=\"function\",c=Math.round,d=Math.abs,_=Date.now;function w(ut,dt,Ct){return setTimeout(K(ut,Ct),dt)}function I(ut,dt,Ct){return Array.isArray(ut)?(R(ut,Ct[dt],Ct),!0):!1}function R(ut,dt,Ct){var $t;if(ut)if(ut.forEach)ut.forEach(dt,Ct);else if(ut.length!==i)for($t=0;$t\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",ni=e.console&&(e.console.warn||e.console.log);return ni&&ni.call(e.console,$t,Ze),ut.apply(this,arguments)}}var j;typeof Object.assign!=\"function\"?j=function(dt){if(dt===i||dt===null)throw new TypeError(\"Cannot convert undefined or null to object\");for(var Ct=Object(dt),$t=1;$t-1}function oe(ut){return ut.trim().split(/\\s+/g)}function ae(ut,dt,Ct){if(ut.indexOf&&!Ct)return ut.indexOf(dt);for(var $t=0;$tzs[dt]}):$t=$t.sort()),$t}function lr(ut,dt){for(var Ct,$t,me=dt[0].toUpperCase()+dt.slice(1),Ze=0;Ze1&&!Ct.firstMultiple?Ct.firstMultiple=Ts(dt):me===1&&(Ct.firstMultiple=!1);var Ze=Ct.firstInput,ni=Ct.firstMultiple,rs=ni?ni.center:Ze.center,Hn=dt.center=Ae($t);dt.timeStamp=_(),dt.deltaTime=dt.timeStamp-Ze.timeStamp,dt.angle=ts(rs,Hn),dt.distance=La(rs,Hn),Tc(Ct,dt),dt.offsetDirection=Vn(dt.deltaX,dt.deltaY);var zs=Ho(dt.deltaTime,dt.deltaX,dt.deltaY);dt.overallVelocityX=zs.x,dt.overallVelocityY=zs.y,dt.overallVelocity=d(zs.x)>d(zs.y)?zs.x:zs.y,dt.scale=ni?Lr(ni.pointers,$t):1,dt.rotation=ni?be(ni.pointers,$t):0,dt.maxPointers=Ct.prevInput?dt.pointers.length>Ct.prevInput.maxPointers?dt.pointers.length:Ct.prevInput.maxPointers:dt.pointers.length,hf(Ct,dt);var Da=ut.element;Yt(dt.srcEvent.target,Da)&&(Da=dt.srcEvent.target),dt.target=Da}function Tc(ut,dt){var Ct=dt.center,$t=ut.offsetDelta||{},me=ut.prevDelta||{},Ze=ut.prevInput||{};(dt.eventType===Ci||Ze.eventType===Oi)&&(me=ut.prevDelta={x:Ze.deltaX||0,y:Ze.deltaY||0},$t=ut.offsetDelta={x:Ct.x,y:Ct.y}),dt.deltaX=me.x+(Ct.x-$t.x),dt.deltaY=me.y+(Ct.y-$t.y)}function hf(ut,dt){var Ct=ut.lastInterval||dt,$t=dt.timeStamp-Ct.timeStamp,me,Ze,ni,rs;if(dt.eventType!=ls&&($t>Uo||Ct.velocity===i)){var Hn=dt.deltaX-Ct.deltaX,zs=dt.deltaY-Ct.deltaY,Da=Ho($t,Hn,zs);Ze=Da.x,ni=Da.y,me=d(Da.x)>d(Da.y)?Da.x:Da.y,rs=Vn(Hn,zs),ut.lastInterval=dt}else me=Ct.velocity,Ze=Ct.velocityX,ni=Ct.velocityY,rs=Ct.direction;dt.velocity=me,dt.velocityX=Ze,dt.velocityY=ni,dt.direction=rs}function Ts(ut){for(var dt=[],Ct=0;Ct=d(dt)?ut<0?jo:Go:dt<0?an:aa}function La(ut,dt,Ct){Ct||(Ct=ti);var $t=dt[Ct[0]]-ut[Ct[0]],me=dt[Ct[1]]-ut[Ct[1]];return Math.sqrt($t*$t+me*me)}function ts(ut,dt,Ct){Ct||(Ct=ti);var $t=dt[Ct[0]]-ut[Ct[0]],me=dt[Ct[1]]-ut[Ct[1]];return Math.atan2(me,$t)*180/Math.PI}function be(ut,dt){return ts(dt[1],dt[0],In)+ts(ut[1],ut[0],In)}function Lr(ut,dt){return La(dt[0],dt[1],In)/La(ut[0],ut[1],In)}var wr={mousedown:Ci,mousemove:yo,mouseup:Oi},Cn=\"mousedown\",ka=\"mousemove mouseup\";function mr(){this.evEl=Cn,this.evWin=ka,this.pressed=!1,xn.apply(this,arguments)}Z(mr,xn,{handler:function(dt){var Ct=wr[dt.type];Ct&Ci&&dt.button===0&&(this.pressed=!0),Ct&yo&&dt.which!==1&&(Ct=Oi),this.pressed&&(Ct&Oi&&(this.pressed=!1),this.callback(this.manager,Ct,{pointers:[dt],changedPointers:[dt],pointerType:sl,srcEvent:dt}))}});var Mc={pointerdown:Ci,pointermove:yo,pointerup:Oi,pointercancel:ls,pointerout:ls},jn={2:_o,3:oa,4:sl,5:Ia},vt=\"pointerdown\",tt=\"pointermove pointerup pointercancel\";e.MSPointerEvent&&!e.PointerEvent&&(vt=\"MSPointerDown\",tt=\"MSPointerMove MSPointerUp MSPointerCancel\");function nt(){this.evEl=vt,this.evWin=tt,xn.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}Z(nt,xn,{handler:function(dt){var Ct=this.store,$t=!1,me=dt.type.toLowerCase().replace(\"ms\",\"\"),Ze=Mc[me],ni=jn[dt.pointerType]||dt.pointerType,rs=ni==_o,Hn=ae(Ct,dt.pointerId,\"pointerId\");Ze&Ci&&(dt.button===0||rs)?Hn<0&&(Ct.push(dt),Hn=Ct.length-1):Ze&(Oi|ls)&&($t=!0),!(Hn<0)&&(Ct[Hn]=dt,this.callback(this.manager,Ze,{pointers:Ct,changedPointers:[dt],pointerType:ni,srcEvent:dt}),$t&&Ct.splice(Hn,1))}});var ct={touchstart:Ci,touchmove:yo,touchend:Oi,touchcancel:ls},mt=\"touchstart\",Rt=\"touchstart touchmove touchend touchcancel\";function Dt(){this.evTarget=mt,this.evWin=Rt,this.started=!1,xn.apply(this,arguments)}Z(Dt,xn,{handler:function(dt){var Ct=ct[dt.type];if(Ct===Ci&&(this.started=!0),!!this.started){var $t=Ut.call(this,dt,Ct);Ct&(Oi|ls)&&$t[0].length-$t[1].length===0&&(this.started=!1),this.callback(this.manager,Ct,{pointers:$t[0],changedPointers:$t[1],pointerType:_o,srcEvent:dt})}}});function Ut(ut,dt){var Ct=Le(ut.touches),$t=Le(ut.changedTouches);return dt&(Oi|ls)&&(Ct=sr(Ct.concat($t),\"identifier\",!0)),[Ct,$t]}var ft={touchstart:Ci,touchmove:yo,touchend:Oi,touchcancel:ls},jt=\"touchstart touchmove touchend touchcancel\";function le(){this.evTarget=jt,this.targetIds={},xn.apply(this,arguments)}Z(le,xn,{handler:function(dt){var Ct=ft[dt.type],$t=ee.call(this,dt,Ct);$t&&this.callback(this.manager,Ct,{pointers:$t[0],changedPointers:$t[1],pointerType:_o,srcEvent:dt})}});function ee(ut,dt){var Ct=Le(ut.touches),$t=this.targetIds;if(dt&(Ci|yo)&&Ct.length===1)return $t[Ct[0].identifier]=!0,[Ct,Ct];var me,Ze,ni=Le(ut.changedTouches),rs=[],Hn=this.target;if(Ze=Ct.filter(function(zs){return Yt(zs.target,Hn)}),dt===Ci)for(me=0;me-1&&$t.splice(Ze,1)};setTimeout(me,re)}}function ii(ut){for(var dt=ut.srcEvent.clientX,Ct=ut.srcEvent.clientY,$t=0;$t-1&&this.requireFail.splice(dt,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(ut){return!!this.simultaneous[ut.id]},emit:function(ut){var dt=this,Ct=this.state;function $t(me){dt.manager.emit(me,ut)}Ct=Gn&&$t(dt.options.event+fu(Ct))},tryEmit:function(ut){if(this.canEmit())return this.emit(ut);this.state=kn},canEmit:function(){for(var ut=0;utdt.threshold&&me&dt.direction},attrTest:function(ut){return no.prototype.attrTest.call(this,ut)&&(this.state&xo||!(this.state&xo)&&this.directionTest(ut))},emit:function(ut){this.pX=ut.deltaX,this.pY=ut.deltaY;var dt=ff(ut.direction);dt&&(ut.additionalEvent=this.options.event+dt),this._super.emit.call(this,ut)}});function Hi(){no.apply(this,arguments)}Z(Hi,no,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[tn]},attrTest:function(ut){return this._super.attrTest.call(this,ut)&&(Math.abs(ut.scale-1)>this.options.threshold||this.state&xo)},emit:function(ut){if(ut.scale!==1){var dt=ut.scale<1?\"in\":\"out\";ut.additionalEvent=this.options.event+dt}this._super.emit.call(this,ut)}});function lh(){Wn.apply(this,arguments),this._timer=null,this._input=null}Z(lh,Wn,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Rr]},process:function(ut){var dt=this.options,Ct=ut.pointers.length===dt.pointers,$t=ut.distancedt.time;if(this._input=ut,!$t||!Ct||ut.eventType&(Oi|ls)&&!me)this.reset();else if(ut.eventType&Ci)this.reset(),this._timer=w(function(){this.state=wn,this.tryEmit()},dt.time,this);else if(ut.eventType&Oi)return wn;return kn},reset:function(){clearTimeout(this._timer)},emit:function(ut){this.state===wn&&(ut&&ut.eventType&Oi?this.manager.emit(this.options.event+\"up\",ut):(this._input.timeStamp=_(),this.manager.emit(this.options.event,this._input)))}});function so(){no.apply(this,arguments)}Z(so,no,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[tn]},attrTest:function(ut){return this._super.attrTest.call(this,ut)&&(Math.abs(ut.rotation)>this.options.threshold||this.state&xo)}});function ch(){no.apply(this,arguments)}Z(ch,no,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Jt|vo,pointers:1},getTouchAction:function(){return Ra.prototype.getTouchAction.call(this)},attrTest:function(ut){var dt=this.options.direction,Ct;return dt&(Jt|vo)?Ct=ut.overallVelocity:dt&Jt?Ct=ut.overallVelocityX:dt&vo&&(Ct=ut.overallVelocityY),this._super.attrTest.call(this,ut)&&dt&ut.offsetDirection&&ut.distance>this.options.threshold&&ut.maxPointers==this.options.pointers&&d(Ct)>this.options.velocity&&ut.eventType&Oi},emit:function(ut){var dt=ff(ut.offsetDirection);dt&&this.manager.emit(this.options.event+dt,ut),this.manager.emit(this.options.event,ut)}});function qo(){Wn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}Z(qo,Wn,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ji]},process:function(ut){var dt=this.options,Ct=ut.pointers.length===dt.pointers,$t=ut.distance{\"use strict\";HO.exports=y3;HO.exports.default=y3;function y3(e,t,r){r=r||2;var i=t&&t.length,n=i?t[0]*r:e.length,s=DH(e,0,n,r,!0),o=[];if(!s||s.next===s.prev)return o;var c,d,_,w,I,R,N;if(i&&(s=ddt(e,t,s,r)),e.length>80*r){c=_=e[0],d=w=e[1];for(var j=r;j_&&(_=I),R>w&&(w=R);N=Math.max(_-c,w-d),N=N!==0?32767/N:0}return k2(s,o,r,c,d,N,0),o}function DH(e,t,r,i,n){var s,o;if(n===WO(e,t,r,i)>0)for(s=t;s=t;s-=i)o=RH(s,e[s],e[s+1],o);return o&&v3(o,o.next)&&(D2(o),o=o.next),o}function Lg(e,t){if(!e)return e;t||(t=e);var r=e,i;do if(i=!1,!r.steiner&&(v3(r,r.next)||_s(r.prev,r,r.next)===0)){if(D2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function k2(e,t,r,i,n,s,o){if(e){!o&&s&&_dt(e,i,n,s);for(var c=e,d,_;e.prev!==e.next;){if(d=e.prev,_=e.next,s?udt(e,i,n,s):cdt(e)){t.push(d.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),D2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=hdt(Lg(e),t,r),k2(e,t,r,i,n,s,2)):o===2&&fdt(e,t,r,i,n,s):k2(Lg(e),t,r,i,n,s,1);break}}}}function cdt(e){var t=e.prev,r=e,i=e.next;if(_s(t,r,i)>=0)return!1;for(var n=t.x,s=r.x,o=i.x,c=t.y,d=r.y,_=i.y,w=ns?n>o?n:o:s>o?s:o,N=c>d?c>_?c:_:d>_?d:_,j=i.next;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=I&&j.y<=N&&zv(n,c,s,d,o,_,j.x,j.y)&&_s(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function udt(e,t,r,i){var n=e.prev,s=e,o=e.next;if(_s(n,s,o)>=0)return!1;for(var c=n.x,d=s.x,_=o.x,w=n.y,I=s.y,R=o.y,N=cd?c>_?c:_:d>_?d:_,it=w>I?w>R?w:R:I>R?I:R,Z=jO(N,j,t,r,i),K=jO(Y,it,t,r,i),J=e.prevZ,ht=e.nextZ;J&&J.z>=Z&&ht&&ht.z<=K;){if(J.x>=N&&J.x<=Y&&J.y>=j&&J.y<=it&&J!==n&&J!==o&&zv(c,w,d,I,_,R,J.x,J.y)&&_s(J.prev,J,J.next)>=0||(J=J.prevZ,ht.x>=N&&ht.x<=Y&&ht.y>=j&&ht.y<=it&&ht!==n&&ht!==o&&zv(c,w,d,I,_,R,ht.x,ht.y)&&_s(ht.prev,ht,ht.next)>=0))return!1;ht=ht.nextZ}for(;J&&J.z>=Z;){if(J.x>=N&&J.x<=Y&&J.y>=j&&J.y<=it&&J!==n&&J!==o&&zv(c,w,d,I,_,R,J.x,J.y)&&_s(J.prev,J,J.next)>=0)return!1;J=J.prevZ}for(;ht&&ht.z<=K;){if(ht.x>=N&&ht.x<=Y&&ht.y>=j&&ht.y<=it&&ht!==n&&ht!==o&&zv(c,w,d,I,_,R,ht.x,ht.y)&&_s(ht.prev,ht,ht.next)>=0)return!1;ht=ht.nextZ}return!0}function hdt(e,t,r){var i=e;do{var n=i.prev,s=i.next.next;!v3(n,s)&&OH(n,i,i.next,s)&&R2(n,s)&&R2(s,n)&&(t.push(n.i/r|0),t.push(i.i/r|0),t.push(s.i/r|0),D2(i),D2(i.next),i=e=s),i=i.next}while(i!==e);return Lg(i)}function fdt(e,t,r,i,n,s){var o=e;do{for(var c=o.next.next;c!==o.prev;){if(o.i!==c.i&&xdt(o,c)){var d=BH(o,c);o=Lg(o,o.next),d=Lg(d,d.next),k2(o,t,r,i,n,s,0),k2(d,t,r,i,n,s,0);return}c=c.next}o=o.next}while(o!==e)}function ddt(e,t,r,i){var n=[],s,o,c,d,_;for(s=0,o=t.length;s=r.next.y&&r.next.y!==r.y){var c=r.x+(n-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(c<=i&&c>s&&(s=c,o=r.x=r.x&&r.x>=_&&i!==r.x&&zv(no.x||r.x===o.x&&gdt(o,r)))&&(o=r,I=R)),r=r.next;while(r!==d);return o}function gdt(e,t){return _s(e.prev,e,t.prev)<0&&_s(t.next,e,e.next)<0}function _dt(e,t,r,i){var n=e;do n.z===0&&(n.z=jO(n.x,n.y,t,r,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,ydt(n)}function ydt(e){var t,r,i,n,s,o,c,d,_=1;do{for(r=e,e=null,s=null,o=0;r;){for(o++,i=r,c=0,t=0;t<_&&(c++,i=i.nextZ,!!i);t++);for(d=_;c>0||d>0&&i;)c!==0&&(d===0||!i||r.z<=i.z)?(n=r,r=r.nextZ,c--):(n=i,i=i.nextZ,d--),s?s.nextZ=n:e=n,n.prevZ=s,s=n;r=i}s.nextZ=null,_*=2}while(o>1);return e}function jO(e,t,r,i,n){return e=(e-r)*n|0,t=(t-i)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function vdt(e){var t=e,r=e;do(t.x=(e-o)*(s-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(s-c)>=(n-o)*(i-c)}function xdt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!bdt(e,t)&&(R2(e,t)&&R2(t,e)&&wdt(e,t)&&(_s(e.prev,e,t.prev)||_s(e,t.prev,t))||v3(e,t)&&_s(e.prev,e,e.next)>0&&_s(t.prev,t,t.next)>0)}function _s(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function v3(e,t){return e.x===t.x&&e.y===t.y}function OH(e,t,r,i){var n=_3(_s(e,t,r)),s=_3(_s(e,t,i)),o=_3(_s(r,i,e)),c=_3(_s(r,i,t));return!!(n!==s&&o!==c||n===0&&g3(e,r,t)||s===0&&g3(e,i,t)||o===0&&g3(r,e,i)||c===0&&g3(r,t,i))}function g3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function _3(e){return e>0?1:e<0?-1:0}function bdt(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&OH(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function R2(e,t){return _s(e.prev,e,e.next)<0?_s(e,t,e.next)>=0&&_s(e,e.prev,t)>=0:_s(e,t,e.prev)<0||_s(e,e.next,t)<0}function wdt(e,t){var r=e,i=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&n<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function BH(e,t){var r=new GO(e.i,e.x,e.y),i=new GO(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=n,n.prev=r,i.next=r,r.prev=i,s.next=i,i.prev=s,i}function RH(e,t,r,i){var n=new GO(e,t,r);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function D2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function GO(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}y3.deviation=function(e,t,r,i){var n=t&&t.length,s=n?t[0]*r:e.length,o=Math.abs(WO(e,0,s,r));if(n)for(var c=0,d=t.length;c0&&(i+=e[n-1].length,r.holes.push(i))}return r}});var FB=zr(hx=>{\"use strict\";Object.defineProperty(hx,\"__esModule\",{value:!0});hx.DefaultSerializer=hx.extendSerializer=void 0;function R_t(e,t){let r=e.deserialize.bind(e),i=e.serialize.bind(e);return{deserialize(n){return t.deserialize(n,r)},serialize(n){return t.serialize(n,i)}}}hx.extendSerializer=R_t;var T$={deserialize(e){return Object.assign(Error(e.message),{name:e.name,stack:e.stack})},serialize(e){return{__error_marker:\"$$error\",message:e.message,name:e.name,stack:e.stack}}},D_t=e=>e&&typeof e==\"object\"&&\"__error_marker\"in e&&e.__error_marker===\"$$error\";hx.DefaultSerializer={deserialize(e){return D_t(e)?T$.deserialize(e):e},serialize(e){return e instanceof Error?T$.serialize(e):e}}});var fx=zr(Im=>{\"use strict\";Object.defineProperty(Im,\"__esModule\",{value:!0});Im.serialize=Im.deserialize=Im.registerSerializer=void 0;var M$=FB(),_I=M$.DefaultSerializer;function O_t(e){_I=M$.extendSerializer(_I,e)}Im.registerSerializer=O_t;function B_t(e){return _I.deserialize(e)}Im.deserialize=B_t;function F_t(e){return _I.serialize(e)}Im.serialize=F_t});var P$=zr(dx=>{\"use strict\";Object.defineProperty(dx,\"__esModule\",{value:!0});dx.getBundleURL=dx.getBaseURL=void 0;var zB;function z_t(){return zB||(zB=N_t()),zB}dx.getBundleURL=z_t;function N_t(){try{throw new Error}catch(e){let t=(\"\"+e.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);if(t)return E$(t[0])}return\"/\"}function E$(e){return(\"\"+e).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/,\"$1\")+\"/\"}dx.getBaseURL=E$});var UB=zr(Cm=>{\"use strict\";Object.defineProperty(Cm,\"__esModule\",{value:!0});Cm.isWorkerRuntime=Cm.getWorkerImplementation=Cm.defaultPoolSize=void 0;var I$=P$();Cm.defaultPoolSize=typeof navigator<\"u\"&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:4;var C$=e=>/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.test(e);function L$(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function U_t(){if(typeof Worker>\"u\")return class{constructor(){throw Error(\"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.\")}};class e extends Worker{constructor(i,n){var s,o;typeof i==\"string\"&&n&&n._baseURL?i=new URL(i,n._baseURL):typeof i==\"string\"&&!C$(i)&&I$.getBundleURL().match(/^file:\\/\\//i)&&(i=new URL(i,I$.getBundleURL().replace(/\\/[^\\/]+$/,\"/\")),(!((s=n?.CORSWorkaround)!==null&&s!==void 0)||s)&&(i=L$(`importScripts(${JSON.stringify(i)});`))),typeof i==\"string\"&&C$(i)&&(!((o=n?.CORSWorkaround)!==null&&o!==void 0)||o)&&(i=L$(`importScripts(${JSON.stringify(i)});`)),super(i,n)}}class t extends e{constructor(i,n){let s=window.URL.createObjectURL(i);super(s,n)}static fromText(i,n){let s=new window.Blob([i],{type:\"text/javascript\"});return new t(s,n)}}return{blob:t,default:e}}var NB;function V_t(){return NB||(NB=U_t()),NB}Cm.getWorkerImplementation=V_t;function j_t(){let e=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!e)}Cm.isWorkerRuntime=j_t});var R$=zr((Noe,k$)=>{var px=1e3,Ax=px*60,mx=Ax*60,Wg=mx*24,G_t=Wg*7,W_t=Wg*365.25;k$.exports=function(e,t){t=t||{};var r=typeof e;if(r===\"string\"&&e.length>0)return H_t(e);if(r===\"number\"&&isFinite(e))return t.long?Z_t(e):q_t(e);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(e))};function H_t(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),i=(t[2]||\"ms\").toLowerCase();switch(i){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return r*W_t;case\"weeks\":case\"week\":case\"w\":return r*G_t;case\"days\":case\"day\":case\"d\":return r*Wg;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return r*mx;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return r*Ax;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return r*px;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return r;default:return}}}}function q_t(e){var t=Math.abs(e);return t>=Wg?Math.round(e/Wg)+\"d\":t>=mx?Math.round(e/mx)+\"h\":t>=Ax?Math.round(e/Ax)+\"m\":t>=px?Math.round(e/px)+\"s\":e+\"ms\"}function Z_t(e){var t=Math.abs(e);return t>=Wg?yI(e,t,Wg,\"day\"):t>=mx?yI(e,t,mx,\"hour\"):t>=Ax?yI(e,t,Ax,\"minute\"):t>=px?yI(e,t,px,\"second\"):e+\" ms\"}function yI(e,t,r,i){var n=t>=r*1.5;return Math.round(e/r)+\" \"+i+(n?\"s\":\"\")}});var O$=zr((Uoe,D$)=>{function Y_t(e){r.debug=r,r.default=r,r.coerce=d,r.disable=s,r.enable=n,r.enabled=o,r.humanize=R$(),r.destroy=_,Object.keys(e).forEach(w=>{r[w]=e[w]}),r.names=[],r.skips=[],r.formatters={};function t(w){let I=0;for(let R=0;R{if(Ot===\"%%\")return\"%\";ht++;let te=r.formatters[Yt];if(typeof te==\"function\"){let oe=it[ht];Ot=te.call(Z,oe),it.splice(ht,1),ht--}return Ot}),r.formatArgs.call(Z,it),(Z.log||r.log).apply(Z,it)}return Y.namespace=w,Y.useColors=r.useColors(),Y.color=r.selectColor(w),Y.extend=i,Y.destroy=r.destroy,Object.defineProperty(Y,\"enabled\",{enumerable:!0,configurable:!1,get:()=>R!==null?R:(N!==r.namespaces&&(N=r.namespaces,j=r.enabled(w)),j),set:it=>{R=it}}),typeof r.init==\"function\"&&r.init(Y),Y}function i(w,I){let R=r(this.namespace+(typeof I>\"u\"?\":\":I)+w);return R.log=this.log,R}function n(w){r.save(w),r.namespaces=w,r.names=[],r.skips=[];let I,R=(typeof w==\"string\"?w:\"\").split(/[\\s,]+/),N=R.length;for(I=0;I\"-\"+I)].join(\",\");return r.enable(\"\"),w}function o(w){if(w[w.length-1]===\"*\")return!0;let I,R;for(I=0,R=r.skips.length;I{cu.formatArgs=Q_t;cu.save=X_t;cu.load=K_t;cu.useColors=$_t;cu.storage=J_t();cu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})();cu.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function $_t(){return typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs)?!0:typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function Q_t(e){if(e[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+e[0]+(this.useColors?\"%c \":\" \")+\"+\"+vI.exports.humanize(this.diff),!this.useColors)return;let t=\"color: \"+this.color;e.splice(1,0,t,\"color: inherit\");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,n=>{n!==\"%%\"&&(r++,n===\"%c\"&&(i=r))}),e.splice(i,0,t)}cu.log=console.debug||console.log||(()=>{});function X_t(e){try{e?cu.storage.setItem(\"debug\",e):cu.storage.removeItem(\"debug\")}catch{}}function K_t(){let e;try{e=cu.storage.getItem(\"debug\")}catch{}return!e&&typeof process<\"u\"&&\"env\"in process&&(e=process.env.DEBUG),e}function J_t(){try{return localStorage}catch{}}vI.exports=O$()(cu);var{formatters:tyt}=vI.exports;tyt.j=function(e){try{return JSON.stringify(e)}catch(t){return\"[UnexpectedJSONParseError]: \"+t.message}}});var fS=zr(gx=>{\"use strict\";var eyt=gx&&gx.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(gx,\"__esModule\",{value:!0});gx.AsyncSerialScheduler=void 0;var VB=class{constructor(t){this._baseObserver=t,this._pendingPromises=new Set}complete(){Promise.all(this._pendingPromises).then(()=>this._baseObserver.complete()).catch(t=>this._baseObserver.error(t))}error(t){this._baseObserver.error(t)}schedule(t){let r=Promise.all(this._pendingPromises),i=[],n=o=>i.push(o),s=Promise.resolve().then(()=>eyt(this,void 0,void 0,function*(){yield r,yield t(n),this._pendingPromises.delete(s);for(let o of i)this._baseObserver.next(o)})).catch(o=>{this._pendingPromises.delete(s),this._baseObserver.error(o)});this._pendingPromises.add(s)}};gx.AsyncSerialScheduler=VB});var F$=zr(B$=>{\"use strict\";Object.defineProperty(B$,\"__esModule\",{value:!0})});var jB=zr(kl=>{\"use strict\";Object.defineProperty(kl,\"__esModule\",{value:!0});kl.registerObservableSymbol=kl.getSymbol=kl.hasSymbol=kl.hasSymbols=void 0;var ryt=()=>typeof Symbol==\"function\";kl.hasSymbols=ryt;var iyt=e=>kl.hasSymbols()&&!!Symbol[e];kl.hasSymbol=iyt;var nyt=e=>kl.hasSymbol(e)?Symbol[e]:\"@@\"+e;kl.getSymbol=nyt;function syt(){kl.hasSymbols()&&!kl.hasSymbol(\"observable\")&&(Symbol.observable=Symbol(\"observable\"))}kl.registerObservableSymbol=syt;kl.hasSymbol(\"asyncIterator\")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for(\"Symbol.asyncIterator\"))});var wd=zr(Bp=>{\"use strict\";Object.defineProperty(Bp,\"__esModule\",{value:!0});Bp.Observable=Bp.SubscriptionObserver=Bp.Subscription=void 0;F$();var pS=jB(),oyt=pS.getSymbol(\"iterator\"),WB=pS.getSymbol(\"observable\"),z$=pS.getSymbol(\"species\");function wI(e,t){let r=e[t];if(r!=null){if(typeof r!=\"function\")throw new TypeError(r+\" is not a function\");return r}}function dS(e){let t=e.constructor;return t!==void 0&&(t=t[z$],t===null&&(t=void 0)),t!==void 0?t:Hg}function ayt(e){return e instanceof Hg}function _x(e){_x.log?_x.log(e):setTimeout(()=>{throw e},0)}function bI(e){Promise.resolve().then(()=>{try{e()}catch(t){_x(t)}})}function N$(e){let t=e._cleanup;if(t!==void 0&&(e._cleanup=void 0,!!t))try{if(typeof t==\"function\")t();else{let r=wI(t,\"unsubscribe\");r&&r.call(t)}}catch(r){_x(r)}}function HB(e){e._observer=void 0,e._queue=void 0,e._state=\"closed\"}function lyt(e){let t=e._queue;if(t){e._queue=void 0,e._state=\"ready\";for(let r of t)if(U$(e,r.type,r.value),e._state===\"closed\")break}}function U$(e,t,r){e._state=\"running\";let i=e._observer;try{let n=i?wI(i,t):void 0;switch(t){case\"next\":n&&n.call(i,r);break;case\"error\":if(HB(e),n)n.call(i,r);else throw r;break;case\"complete\":HB(e),n&&n.call(i);break}}catch(n){_x(n)}e._state===\"closed\"?N$(e):e._state===\"running\"&&(e._state=\"ready\")}function GB(e,t,r){if(e._state!==\"closed\"){if(e._state===\"buffering\"){e._queue=e._queue||[],e._queue.push({type:t,value:r});return}if(e._state!==\"ready\"){e._state=\"buffering\",e._queue=[{type:t,value:r}],bI(()=>lyt(e));return}U$(e,t,r)}}var SI=class{constructor(t,r){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state=\"initializing\";let i=new TI(this);try{this._cleanup=r.call(void 0,i)}catch(n){i.error(n)}this._state===\"initializing\"&&(this._state=\"ready\")}get closed(){return this._state===\"closed\"}unsubscribe(){this._state!==\"closed\"&&(HB(this),N$(this))}};Bp.Subscription=SI;var TI=class{constructor(t){this._subscription=t}get closed(){return this._subscription._state===\"closed\"}next(t){GB(this._subscription,\"next\",t)}error(t){GB(this._subscription,\"error\",t)}complete(){GB(this._subscription,\"complete\")}};Bp.SubscriptionObserver=TI;var Hg=class e{constructor(t){if(!(this instanceof e))throw new TypeError(\"Observable cannot be called as a function\");if(typeof t!=\"function\")throw new TypeError(\"Observable initializer must be a function\");this._subscriber=t}subscribe(t,r,i){return(typeof t!=\"object\"||t===null)&&(t={next:t,error:r,complete:i}),new SI(t,this._subscriber)}pipe(t,...r){let i=this;for(let n of[t,...r])i=n(i);return i}tap(t,r,i){let n=typeof t!=\"object\"||t===null?{next:t,error:r,complete:i}:t;return new e(s=>this.subscribe({next(o){n.next&&n.next(o),s.next(o)},error(o){n.error&&n.error(o),s.error(o)},complete(){n.complete&&n.complete(),s.complete()},start(o){n.start&&n.start(o)}}))}forEach(t){return new Promise((r,i)=>{if(typeof t!=\"function\"){i(new TypeError(t+\" is not a function\"));return}function n(){s.unsubscribe(),r(void 0)}let s=this.subscribe({next(o){try{t(o,n)}catch(c){i(c),s.unsubscribe()}},error(o){i(o)},complete(){r(void 0)}})})}map(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=dS(this);return new r(i=>this.subscribe({next(n){let s=n;try{s=t(n)}catch(o){return i.error(o)}i.next(s)},error(n){i.error(n)},complete(){i.complete()}}))}filter(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=dS(this);return new r(i=>this.subscribe({next(n){try{if(!t(n))return}catch(s){return i.error(s)}i.next(n)},error(n){i.error(n)},complete(){i.complete()}}))}reduce(t,r){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let i=dS(this),n=arguments.length>1,s=!1,o=r;return new i(c=>this.subscribe({next(d){let _=!s;if(s=!0,!_||n)try{o=t(o,d)}catch(w){return c.error(w)}else o=d},error(d){c.error(d)},complete(){if(!s&&!n)return c.error(new TypeError(\"Cannot reduce an empty sequence\"));c.next(o),c.complete()}}))}concat(...t){let r=dS(this);return new r(i=>{let n,s=0;function o(c){n=c.subscribe({next(d){i.next(d)},error(d){i.error(d)},complete(){s===t.length?(n=void 0,i.complete()):o(r.from(t[s++]))}})}return o(this),()=>{n&&(n.unsubscribe(),n=void 0)}})}flatMap(t){if(typeof t!=\"function\")throw new TypeError(t+\" is not a function\");let r=dS(this);return new r(i=>{let n=[],s=this.subscribe({next(c){let d;if(t)try{d=t(c)}catch(w){return i.error(w)}else d=c;let _=r.from(d).subscribe({next(w){i.next(w)},error(w){i.error(w)},complete(){let w=n.indexOf(_);w>=0&&n.splice(w,1),o()}});n.push(_)},error(c){i.error(c)},complete(){o()}});function o(){s.closed&&n.length===0&&i.complete()}return()=>{n.forEach(c=>c.unsubscribe()),s.unsubscribe()}})}[(Symbol.observable,WB)](){return this}static from(t){let r=typeof this==\"function\"?this:e;if(t==null)throw new TypeError(t+\" is not an object\");let i=wI(t,WB);if(i){let n=i.call(t);if(Object(n)!==n)throw new TypeError(n+\" is not an object\");return ayt(n)&&n.constructor===r?n:new r(s=>n.subscribe(s))}if(pS.hasSymbol(\"iterator\")){let n=wI(t,oyt);if(n)return new r(s=>{bI(()=>{if(!s.closed){for(let o of n.call(t))if(s.next(o),s.closed)return;s.complete()}})})}if(Array.isArray(t))return new r(n=>{bI(()=>{if(!n.closed){for(let s of t)if(n.next(s),n.closed)return;n.complete()}})});throw new TypeError(t+\" is not observable\")}static of(...t){let r=typeof this==\"function\"?this:e;return new r(i=>{bI(()=>{if(!i.closed){for(let n of t)if(i.next(n),i.closed)return;i.complete()}})})}static get[z$](){return this}};Bp.Observable=Hg;pS.hasSymbols()&&Object.defineProperty(Hg,Symbol(\"extensions\"),{value:{symbol:WB,hostReportError:_x},configurable:!0});Bp.default=Hg});var Lm=zr(qB=>{\"use strict\";Object.defineProperty(qB,\"__esModule\",{value:!0});function cyt(e){typeof e==\"function\"?e():e&&typeof e.unsubscribe==\"function\"&&e.unsubscribe()}qB.default=cyt});var V$=zr(AS=>{\"use strict\";var uyt=AS&&AS.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(AS,\"__esModule\",{value:!0});var hyt=fS(),fyt=wd(),dyt=Lm();function pyt(e){return t=>new fyt.default(r=>{let i=new hyt.AsyncSerialScheduler(r),n=t.subscribe({complete(){i.complete()},error(s){i.error(s)},next(s){i.schedule(o=>uyt(this,void 0,void 0,function*(){(yield e(s))&&o(s)}))}});return()=>dyt.default(n)})}AS.default=pyt});var G$=zr(yx=>{\"use strict\";Object.defineProperty(yx,\"__esModule\",{value:!0});yx.isIterator=yx.isAsyncIterator=void 0;var j$=jB();function Ayt(e){return e&&j$.hasSymbol(\"asyncIterator\")&&e[Symbol.asyncIterator]}yx.isAsyncIterator=Ayt;function myt(e){return e&&j$.hasSymbol(\"iterator\")&&e[Symbol.iterator]}yx.isIterator=myt});var H$=zr(qg=>{\"use strict\";var gyt=qg&&qg.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})},_yt=qg&&qg.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==\"function\"?__values(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(s){r[s]=e[s]&&function(o){return new Promise(function(c,d){o=e[s](o),n(c,d,o.done,o.value)})}}function n(s,o,c,d){Promise.resolve(d).then(function(_){s({value:_,done:c})},o)}};Object.defineProperty(qg,\"__esModule\",{value:!0});var yyt=fS(),W$=G$(),vyt=wd(),xyt=Lm();function byt(e){return t=>new vyt.default(r=>{let i=new yyt.AsyncSerialScheduler(r),n=t.subscribe({complete(){i.complete()},error(s){i.error(s)},next(s){i.schedule(o=>gyt(this,void 0,void 0,function*(){var c,d;let _=yield e(s);if(W$.isIterator(_)||W$.isAsyncIterator(_))try{for(var w=_yt(_),I;I=yield w.next(),!I.done;){let R=I.value;o(R)}}catch(R){c={error:R}}finally{try{I&&!I.done&&(d=w.return)&&(yield d.call(w))}finally{if(c)throw c.error}}else _.map(R=>o(R))}))}});return()=>xyt.default(n)})}qg.default=byt});var q$=zr(ZB=>{\"use strict\";Object.defineProperty(ZB,\"__esModule\",{value:!0});var wyt=wd();function Syt(e){return new wyt.Observable(t=>{let r=0,i=setInterval(()=>{t.next(r++)},e);return()=>clearInterval(i)})}ZB.default=Syt});var Z$=zr(mS=>{\"use strict\";var Tyt=mS&&mS.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(mS,\"__esModule\",{value:!0});var Myt=fS(),Eyt=wd(),Pyt=Lm();function Iyt(e){return t=>new Eyt.default(r=>{let i=new Myt.AsyncSerialScheduler(r),n=t.subscribe({complete(){i.complete()},error(s){i.error(s)},next(s){i.schedule(o=>Tyt(this,void 0,void 0,function*(){let c=yield e(s);o(c)}))}});return()=>Pyt.default(n)})}mS.default=Iyt});var $$=zr(YB=>{\"use strict\";Object.defineProperty(YB,\"__esModule\",{value:!0});var Y$=wd(),Cyt=Lm();function Lyt(...e){return e.length===0?Y$.Observable.from([]):new Y$.Observable(t=>{let r=0,i=e.map(s=>s.subscribe({error(o){t.error(o),n()},next(o){t.next(o)},complete(){++r===e.length&&(t.complete(),n())}})),n=()=>{i.forEach(s=>Cyt.default(s))};return n})}YB.default=Lyt});var XB=zr(QB=>{\"use strict\";Object.defineProperty(QB,\"__esModule\",{value:!0});var kyt=wd(),$B=class extends kyt.default{constructor(){super(t=>(this._observers.add(t),()=>this._observers.delete(t))),this._observers=new Set}next(t){for(let r of this._observers)r.next(t)}error(t){for(let r of this._observers)r.error(t)}complete(){for(let t of this._observers)t.complete()}};QB.default=$B});var Q$=zr(KB=>{\"use strict\";Object.defineProperty(KB,\"__esModule\",{value:!0});var Ryt=wd(),Dyt=XB(),Oyt=Lm();function Byt(e){let t=new Dyt.default,r,i=0;return new Ryt.default(n=>{r||(r=e.subscribe(t));let s=t.subscribe(n);return i++,()=>{i--,s.unsubscribe(),i===0&&(Oyt.default(r),r=void 0)}})}KB.default=Byt});var X$=zr(gS=>{\"use strict\";var Fyt=gS&&gS.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})};Object.defineProperty(gS,\"__esModule\",{value:!0});var zyt=fS(),Nyt=wd(),Uyt=Lm();function Vyt(e,t){return r=>new Nyt.default(i=>{let n,s=0,o=new zyt.AsyncSerialScheduler(i),c=r.subscribe({complete(){o.complete()},error(d){o.error(d)},next(d){o.schedule(_=>Fyt(this,void 0,void 0,function*(){n=yield e(s===0?typeof t>\"u\"?d:t:n,d,s++),_(n)}))}});return()=>Uyt.default(c)})}gS.default=Vyt});var K$=zr(Bs=>{\"use strict\";Object.defineProperty(Bs,\"__esModule\",{value:!0});Bs.unsubscribe=Bs.Subject=Bs.scan=Bs.Observable=Bs.multicast=Bs.merge=Bs.map=Bs.interval=Bs.flatMap=Bs.filter=void 0;var jyt=V$();Object.defineProperty(Bs,\"filter\",{enumerable:!0,get:function(){return jyt.default}});var Gyt=H$();Object.defineProperty(Bs,\"flatMap\",{enumerable:!0,get:function(){return Gyt.default}});var Wyt=q$();Object.defineProperty(Bs,\"interval\",{enumerable:!0,get:function(){return Wyt.default}});var Hyt=Z$();Object.defineProperty(Bs,\"map\",{enumerable:!0,get:function(){return Hyt.default}});var qyt=$$();Object.defineProperty(Bs,\"merge\",{enumerable:!0,get:function(){return qyt.default}});var Zyt=Q$();Object.defineProperty(Bs,\"multicast\",{enumerable:!0,get:function(){return Zyt.default}});var Yyt=wd();Object.defineProperty(Bs,\"Observable\",{enumerable:!0,get:function(){return Yyt.default}});var $yt=X$();Object.defineProperty(Bs,\"scan\",{enumerable:!0,get:function(){return $yt.default}});var Qyt=XB();Object.defineProperty(Bs,\"Subject\",{enumerable:!0,get:function(){return Qyt.default}});var Xyt=Lm();Object.defineProperty(Bs,\"unsubscribe\",{enumerable:!0,get:function(){return Xyt.default}})});var _S=zr((rae,J$)=>{J$.exports=K$()});var tQ=zr(MI=>{\"use strict\";Object.defineProperty(MI,\"__esModule\",{value:!0});MI.allSettled=void 0;function Kyt(e){return Promise.all(e.map(t=>{let r=s=>({status:\"fulfilled\",value:s}),i=s=>({status:\"rejected\",reason:s}),n=Promise.resolve(t);try{return n.then(r,i)}catch(s){return Promise.reject(s)}}))}MI.allSettled=Kyt});var eQ=zr(yS=>{\"use strict\";Object.defineProperty(yS,\"__esModule\",{value:!0});yS.PoolEventType=void 0;var Jyt;(function(e){e.initialized=\"initialized\",e.taskCanceled=\"taskCanceled\",e.taskCompleted=\"taskCompleted\",e.taskFailed=\"taskFailed\",e.taskQueued=\"taskQueued\",e.taskQueueDrained=\"taskQueueDrained\",e.taskStart=\"taskStart\",e.terminated=\"terminated\"})(Jyt=yS.PoolEventType||(yS.PoolEventType={}))});var vS=zr(oh=>{\"use strict\";Object.defineProperty(oh,\"__esModule\",{value:!0});oh.$worker=oh.$transferable=oh.$terminate=oh.$events=oh.$errors=void 0;oh.$errors=Symbol(\"thread.errors\");oh.$events=Symbol(\"thread.events\");oh.$terminate=Symbol(\"thread.terminate\");oh.$transferable=Symbol(\"thread.transferable\");oh.$worker=Symbol(\"thread.worker\")});var t6=zr(EI=>{\"use strict\";Object.defineProperty(EI,\"__esModule\",{value:!0});EI.Thread=void 0;var JB=vS();function rQ(e){throw Error(e)}EI.Thread={errors(e){return e[JB.$errors]||rQ(\"Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},events(e){return e[JB.$events]||rQ(\"Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\")},terminate(e){return e[JB.$terminate]()}}});var oQ=zr(ah=>{\"use strict\";var Zg=ah&&ah.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})},tvt=ah&&ah.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ah,\"__esModule\",{value:!0});ah.Pool=ah.Thread=ah.PoolEventType=void 0;var evt=tvt(xI()),e6=_S(),iQ=tQ(),rvt=UB(),sa=eQ();Object.defineProperty(ah,\"PoolEventType\",{enumerable:!0,get:function(){return sa.PoolEventType}});var nQ=t6();Object.defineProperty(ah,\"Thread\",{enumerable:!0,get:function(){return nQ.Thread}});var ivt=1;function nvt(e){let t=[];for(let r=0;rsetTimeout(t,e))}function ovt(e,t){return e.reduce((r,i)=>[...r,...t(i)],[])}function avt(e){return e.replace(/\\W/g,\" \").trim().replace(/\\s+/g,\"-\")}function lvt(e,t){return nvt(t).map(()=>({init:e(),runningTasks:[]}))}var PI=class{constructor(t,r){this.eventSubject=new e6.Subject,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];let i=typeof r==\"number\"?{size:r}:r||{},{size:n=rvt.defaultPoolSize}=i;this.debug=evt.default(`threads:pool:${avt(i.name||String(ivt++))}`),this.options=i,this.workers=lvt(t,n),this.eventObservable=e6.multicast(e6.Observable.from(this.eventSubject)),Promise.all(this.workers.map(s=>s.init)).then(()=>this.eventSubject.next({type:sa.PoolEventType.initialized,size:this.workers.length}),s=>{this.debug(\"Error while initializing pool worker:\",s),this.eventSubject.error(s),this.initErrors.push(s)})}findIdlingWorker(){let{concurrency:t=1}=this.options;return this.workers.find(r=>r.runningTasks.length{t.runningTasks=t.runningTasks.filter(s=>s!==i)};yield svt(0);try{yield this.runPoolTask(t,r)}finally{n(),this.isClosing||this.scheduleWork()}});t.runningTasks.push(i)})}scheduleWork(){this.debug(\"Attempt de-queueing a task in order to run it...\");let t=this.findIdlingWorker();if(!t)return;let r=this.taskQueue.shift();if(!r){this.debug(\"Task queue is empty\"),this.eventSubject.next({type:sa.PoolEventType.taskQueueDrained});return}this.run(t,r)}taskCompletion(t){return new Promise((r,i)=>{let n=this.events().subscribe(s=>{s.type===sa.PoolEventType.taskCompleted&&s.taskID===t?(n.unsubscribe(),r(s.returnValue)):s.type===sa.PoolEventType.taskFailed&&s.taskID===t?(n.unsubscribe(),i(s.error)):s.type===sa.PoolEventType.terminated&&(n.unsubscribe(),i(Error(\"Pool has been terminated before task was run.\")))})})}settled(t=!1){return Zg(this,void 0,void 0,function*(){let r=()=>ovt(this.workers,s=>s.runningTasks),i=[],n=this.eventObservable.subscribe(s=>{s.type===sa.PoolEventType.taskFailed&&i.push(s.error)});return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&this.taskQueue.length===0?(yield iQ.allSettled(r()),i):(yield new Promise((s,o)=>{let c=this.eventObservable.subscribe({next(d){d.type===sa.PoolEventType.taskQueueDrained&&(c.unsubscribe(),s(void 0))},error:o})}),yield iQ.allSettled(r()),n.unsubscribe(),i)})}completed(t=!1){return Zg(this,void 0,void 0,function*(){let r=this.settled(t),i=new Promise((s,o)=>{let c=this.eventObservable.subscribe({next(d){d.type===sa.PoolEventType.taskQueueDrained?(c.unsubscribe(),s(r)):d.type===sa.PoolEventType.taskFailed&&(c.unsubscribe(),o(d.error))},error:o})}),n=yield Promise.race([r,i]);if(n.length>0)throw n[0]})}events(){return this.eventObservable}queue(t){let{maxQueuedJobs:r=1/0}=this.options;if(this.isClosing)throw Error(\"Cannot schedule pool tasks after terminate() has been called.\");if(this.initErrors.length>0)throw this.initErrors[0];let i=this.nextTaskID++,n=this.taskCompletion(i);n.catch(o=>{this.debug(`Task #${i} errored:`,o)});let s={id:i,run:t,cancel:()=>{this.taskQueue.indexOf(s)!==-1&&(this.taskQueue=this.taskQueue.filter(o=>o!==s),this.eventSubject.next({type:sa.PoolEventType.taskCanceled,taskID:s.id}))},then:n.then.bind(n)};if(this.taskQueue.length>=r)throw Error(`Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.`);return this.debug(`Queueing task #${s.id}...`),this.taskQueue.push(s),this.eventSubject.next({type:sa.PoolEventType.taskQueued,taskID:s.id}),this.scheduleWork(),s}terminate(t){return Zg(this,void 0,void 0,function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:sa.PoolEventType.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map(r=>Zg(this,void 0,void 0,function*(){return nQ.Thread.terminate(yield r.init)})))})}};PI.EventType=sa.PoolEventType;function sQ(e,t){return new PI(e,t)}sQ.EventType=sa.PoolEventType;ah.Pool=sQ});var aQ=zr(II=>{\"use strict\";Object.defineProperty(II,\"__esModule\",{value:!0});II.createPromiseWithResolver=void 0;var cvt=()=>{};function uvt(){let e=!1,t,r=cvt;return[new Promise(s=>{e?s(t):r=s}),s=>{e=!0,t=s,r(t)}]}II.createPromiseWithResolver=uvt});var lQ=zr(xS=>{\"use strict\";Object.defineProperty(xS,\"__esModule\",{value:!0});xS.WorkerEventType=void 0;var cae=vS(),hvt;(function(e){e.internalError=\"internalError\",e.message=\"message\",e.termination=\"termination\"})(hvt=xS.WorkerEventType||(xS.WorkerEventType={}))});var uQ=zr(CI=>{\"use strict\";Object.defineProperty(CI,\"__esModule\",{value:!0});CI.ObservablePromise=void 0;var fvt=_S(),dvt=()=>{},pvt=e=>e,cQ=e=>Promise.resolve().then(e);function Avt(e){throw e}function mvt(e){return e&&typeof e.then==\"function\"}var r6=class e extends fvt.Observable{constructor(t){super(r=>{let i=this,n=Object.assign(Object.assign({},r),{complete(){r.complete(),i.onCompletion()},error(s){r.error(s),i.onError(s)},next(s){r.next(s),i.onNext(s)}});try{return this.initHasRun=!0,t(n)}catch(s){n.error(s)}}),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state=\"pending\"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state=\"rejected\",this.rejection=t;for(let r of this.rejectionCallbacks)cQ(()=>r(t))}onCompletion(){this.state=\"fulfilled\";for(let t of this.fulfillmentCallbacks)cQ(()=>t(this.firstValue))}then(t,r){let i=t||pvt,n=r||Avt,s=!1;return new Promise((o,c)=>{let d=w=>{if(!s){s=!0;try{o(n(w))}catch(I){c(I)}}},_=w=>{try{o(i(w))}catch(I){d(I)}};if(this.initHasRun||this.subscribe({error:d}),this.state===\"fulfilled\")return o(i(this.firstValue));if(this.state===\"rejected\")return s=!0,o(n(this.rejection));this.fulfillmentCallbacks.push(_),this.rejectionCallbacks.push(d)})}catch(t){return this.then(void 0,t)}finally(t){let r=t||dvt;return this.then(i=>(r(),i),()=>r())}static from(t){return mvt(t)?new e(r=>{let i=s=>{r.next(s),r.complete()},n=s=>{r.error(s)};t.then(i,n)}):super.from(t)}};CI.ObservablePromise=r6});var bS=zr(vx=>{\"use strict\";Object.defineProperty(vx,\"__esModule\",{value:!0});vx.Transfer=vx.isTransferDescriptor=void 0;var hQ=vS();function gvt(e){return!(!e||typeof e!=\"object\")}function _vt(e){return e&&typeof e==\"object\"&&e[hQ.$transferable]}vx.isTransferDescriptor=_vt;function yvt(e,t){if(!t){if(!gvt(e))throw Error();t=[e]}return{[hQ.$transferable]:!0,send:e,transferables:t}}vx.Transfer=yvt});var i6=zr(km=>{\"use strict\";Object.defineProperty(km,\"__esModule\",{value:!0});km.WorkerMessageType=km.MasterMessageType=void 0;var vvt;(function(e){e.cancel=\"cancel\",e.run=\"run\"})(vvt=km.MasterMessageType||(km.MasterMessageType={}));var xvt;(function(e){e.error=\"error\",e.init=\"init\",e.result=\"result\",e.running=\"running\",e.uncaughtError=\"uncaughtError\"})(xvt=km.WorkerMessageType||(km.WorkerMessageType={}))});var mQ=zr(Rm=>{\"use strict\";var bvt=Rm&&Rm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Rm,\"__esModule\",{value:!0});Rm.createProxyModule=Rm.createProxyFunction=void 0;var wvt=bvt(xI()),dQ=_S(),wS=fx(),fQ=uQ(),Svt=bS(),SS=i6(),pQ=wvt.default(\"threads:master:messages\"),Tvt=1,Mvt=e=>Array.from(new Set(e)),Evt=e=>e&&e.type===SS.WorkerMessageType.error,Pvt=e=>e&&e.type===SS.WorkerMessageType.result,Ivt=e=>e&&e.type===SS.WorkerMessageType.running;function Cvt(e,t){return new dQ.Observable(r=>{let i,n=s=>{if(pQ(\"Message from worker:\",s.data),!(!s.data||s.data.uid!==t)){if(Ivt(s.data))i=s.data.resultType;else if(Pvt(s.data))i===\"promise\"?(typeof s.data.payload<\"u\"&&r.next(wS.deserialize(s.data.payload)),r.complete(),e.removeEventListener(\"message\",n)):(s.data.payload&&r.next(wS.deserialize(s.data.payload)),s.data.complete&&(r.complete(),e.removeEventListener(\"message\",n)));else if(Evt(s.data)){let o=wS.deserialize(s.data.error);r.error(o),e.removeEventListener(\"message\",n)}}};return e.addEventListener(\"message\",n),()=>{if(i===\"observable\"||!i){let s={type:SS.MasterMessageType.cancel,uid:t};e.postMessage(s)}e.removeEventListener(\"message\",n)}})}function Lvt(e){if(e.length===0)return{args:[],transferables:[]};let t=[],r=[];for(let i of e)Svt.isTransferDescriptor(i)?(t.push(wS.serialize(i.send)),r.push(...i.transferables)):t.push(wS.serialize(i));return{args:t,transferables:r.length===0?r:Mvt(r)}}function AQ(e,t){return(...r)=>{let i=Tvt++,{args:n,transferables:s}=Lvt(r),o={type:SS.MasterMessageType.run,uid:i,method:t,args:n};pQ(\"Sending command to run function to worker:\",o);try{e.postMessage(o,s)}catch(c){return fQ.ObservablePromise.from(Promise.reject(c))}return fQ.ObservablePromise.from(dQ.multicast(Cvt(e,i)))}}Rm.createProxyFunction=AQ;function kvt(e,t){let r={};for(let i of t)r[i]=AQ(e,i);return r}Rm.createProxyModule=kvt});var vQ=zr(Dm=>{\"use strict\";var n6=Dm&&Dm.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})},Rvt=Dm&&Dm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Dm,\"__esModule\",{value:!0});Dm.spawn=void 0;var s6=Rvt(xI()),Dvt=_S(),Ovt=fx(),Bvt=aQ(),LI=vS(),kI=lQ(),gQ=mQ(),Fvt=s6.default(\"threads:master:messages\"),zvt=s6.default(\"threads:master:spawn\"),yQ=s6.default(\"threads:master:thread-utils\"),Nvt=e=>e&&e.type===\"init\",Uvt=e=>e&&e.type===\"uncaughtError\",Vvt=typeof process<\"u\"&&process.env.THREADS_WORKER_INIT_TIMEOUT?Number.parseInt(process.env.THREADS_WORKER_INIT_TIMEOUT,10):1e4;function jvt(e,t,r){return n6(this,void 0,void 0,function*(){let i,n=new Promise((o,c)=>{i=setTimeout(()=>c(Error(r)),t)}),s=yield Promise.race([e,n]);return clearTimeout(i),s})}function Gvt(e){return new Promise((t,r)=>{let i=n=>{Fvt(\"Message from worker before finishing initialization:\",n.data),Nvt(n.data)?(e.removeEventListener(\"message\",i),t(n.data)):Uvt(n.data)&&(e.removeEventListener(\"message\",i),r(Ovt.deserialize(n.data.error)))};e.addEventListener(\"message\",i)})}function Wvt(e,t){return new Dvt.Observable(r=>{let i=s=>{let o={type:kI.WorkerEventType.message,data:s.data};r.next(o)},n=s=>{yQ(\"Unhandled promise rejection event in thread:\",s);let o={type:kI.WorkerEventType.internalError,error:Error(s.reason)};r.next(o)};e.addEventListener(\"message\",i),e.addEventListener(\"unhandledrejection\",n),t.then(()=>{let s={type:kI.WorkerEventType.termination};e.removeEventListener(\"message\",i),e.removeEventListener(\"unhandledrejection\",n),r.next(s),r.complete()})})}function Hvt(e){let[t,r]=Bvt.createPromiseWithResolver();return{terminate:()=>n6(this,void 0,void 0,function*(){yQ(\"Terminating worker\"),yield e.terminate(),r()}),termination:t}}function _Q(e,t,r,i){let n=r.filter(s=>s.type===kI.WorkerEventType.internalError).map(s=>s.error);return Object.assign(e,{[LI.$errors]:n,[LI.$events]:r,[LI.$terminate]:i,[LI.$worker]:t})}function qvt(e,t){return n6(this,void 0,void 0,function*(){zvt(\"Initializing new thread\");let r=t&&t.timeout?t.timeout:Vvt,n=(yield jvt(Gvt(e),r,`Timeout: Did not receive an init message from worker after ${r}ms. Make sure the worker calls expose().`)).exposed,{termination:s,terminate:o}=Hvt(e),c=Wvt(e,s);if(n.type===\"function\"){let d=gQ.createProxyFunction(e);return _Q(d,e,c,o)}else if(n.type===\"module\"){let d=gQ.createProxyModule(e,n.methods);return _Q(d,e,c,o)}else{let d=n.type;throw Error(`Worker init message states unexpected type of expose(): ${d}`)}})}Dm.spawn=qvt});var xQ=zr(bc=>{\"use strict\";Object.defineProperty(bc,\"__esModule\",{value:!0});bc.Worker=bc.BlobWorker=bc.isWorkerRuntime=bc.Thread=bc.spawn=bc.Pool=void 0;var o6=UB();Object.defineProperty(bc,\"isWorkerRuntime\",{enumerable:!0,get:function(){return o6.isWorkerRuntime}});var Zvt=oQ();Object.defineProperty(bc,\"Pool\",{enumerable:!0,get:function(){return Zvt.Pool}});var Yvt=vQ();Object.defineProperty(bc,\"spawn\",{enumerable:!0,get:function(){return Yvt.spawn}});var $vt=t6();Object.defineProperty(bc,\"Thread\",{enumerable:!0,get:function(){return $vt.Thread}});bc.BlobWorker=o6.getWorkerImplementation().blob;bc.Worker=o6.getWorkerImplementation().default});var wQ=zr((gae,bQ)=>{\"use strict\";bQ.exports=e=>e?typeof Symbol.observable==\"symbol\"&&typeof e[Symbol.observable]==\"function\"?e===e[Symbol.observable]():typeof e[\"@@observable\"]==\"function\"?e===e[\"@@observable\"]():!1:!1});var SQ=zr(a6=>{\"use strict\";Object.defineProperty(a6,\"__esModule\",{value:!0});var Qvt=function(){let t=typeof self<\"u\"&&typeof Window<\"u\"&&self instanceof Window;return!!(typeof self<\"u\"&&self.postMessage&&!t)},Xvt=function(t,r){self.postMessage(t,r)},Kvt=function(t){let r=n=>{t(n.data)},i=()=>{self.removeEventListener(\"message\",r)};return self.addEventListener(\"message\",r),i};a6.default={isWorkerRuntime:Qvt,postMessageToMaster:Xvt,subscribeToMasterMessages:Kvt}});var LQ=zr(wc=>{\"use strict\";var Jvt=wc&&wc.__awaiter||function(e,t,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function c(w){try{_(i.next(w))}catch(I){o(I)}}function d(w){try{_(i.throw(w))}catch(I){o(I)}}function _(w){w.done?s(w.value):n(w.value).then(c,d)}_((i=i.apply(e,t||[])).next())})},IQ=wc&&wc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wc,\"__esModule\",{value:!0});wc.expose=wc.isWorkerRuntime=wc.Transfer=wc.registerSerializer=void 0;var txt=IQ(wQ()),Om=fx(),ext=bS(),Bm=i6(),uu=IQ(SQ()),rxt=fx();Object.defineProperty(wc,\"registerSerializer\",{enumerable:!0,get:function(){return rxt.registerSerializer}});var ixt=bS();Object.defineProperty(wc,\"Transfer\",{enumerable:!0,get:function(){return ixt.Transfer}});wc.isWorkerRuntime=uu.default.isWorkerRuntime;var TQ=!1,TS=new Map,nxt=e=>e&&e.type===Bm.MasterMessageType.cancel,MQ=e=>e&&e.type===Bm.MasterMessageType.run,EQ=e=>txt.default(e)||sxt(e);function sxt(e){return e&&typeof e==\"object\"&&typeof e.subscribe==\"function\"}function CQ(e){return ext.isTransferDescriptor(e)?{payload:e.send,transferables:e.transferables}:{payload:e,transferables:void 0}}function oxt(){let e={type:Bm.WorkerMessageType.init,exposed:{type:\"function\"}};uu.default.postMessageToMaster(e)}function axt(e){let t={type:Bm.WorkerMessageType.init,exposed:{type:\"module\",methods:e}};uu.default.postMessageToMaster(t)}function l6(e,t){let{payload:r,transferables:i}=CQ(t),n={type:Bm.WorkerMessageType.error,uid:e,error:Om.serialize(r)};uu.default.postMessageToMaster(n,i)}function c6(e,t,r){let{payload:i,transferables:n}=CQ(r),s={type:Bm.WorkerMessageType.result,uid:e,complete:t?!0:void 0,payload:i};uu.default.postMessageToMaster(s,n)}function lxt(e,t){let r={type:Bm.WorkerMessageType.running,uid:e,resultType:t};uu.default.postMessageToMaster(r)}function RI(e){try{let t={type:Bm.WorkerMessageType.uncaughtError,error:Om.serialize(e)};uu.default.postMessageToMaster(t)}catch(t){console.error(`Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:`,t,`\nOriginal error:`,e)}}function PQ(e,t,r){return Jvt(this,void 0,void 0,function*(){let i;try{i=t(...r)}catch(s){return l6(e,s)}let n=EQ(i)?\"observable\":\"promise\";if(lxt(e,n),EQ(i)){let s=i.subscribe(o=>c6(e,!1,Om.serialize(o)),o=>{l6(e,Om.serialize(o)),TS.delete(e)},()=>{c6(e,!0),TS.delete(e)});TS.set(e,s)}else try{let s=yield i;c6(e,!0,Om.serialize(s))}catch(s){l6(e,Om.serialize(s))}})}function cxt(e){if(!uu.default.isWorkerRuntime())throw Error(\"expose() called in the master thread.\");if(TQ)throw Error(\"expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.\");if(TQ=!0,typeof e==\"function\")uu.default.subscribeToMasterMessages(t=>{MQ(t)&&!t.method&&PQ(t.uid,e,t.args.map(Om.deserialize))}),oxt();else if(typeof e==\"object\"&&e){uu.default.subscribeToMasterMessages(r=>{MQ(r)&&r.method&&PQ(r.uid,e[r.method],r.args.map(Om.deserialize))});let t=Object.keys(e).filter(r=>typeof e[r]==\"function\");axt(t)}else throw Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${e}`);uu.default.subscribeToMasterMessages(t=>{if(nxt(t)){let r=t.uid,i=TS.get(r);i&&(i.unsubscribe(),TS.delete(r))}})}wc.expose=cxt;typeof self<\"u\"&&typeof self.addEventListener==\"function\"&&uu.default.isWorkerRuntime()&&(self.addEventListener(\"error\",e=>{setTimeout(()=>RI(e.error||e),250)}),self.addEventListener(\"unhandledrejection\",e=>{let t=e.reason;t&&typeof t.message==\"string\"&&setTimeout(()=>RI(t),250)}));typeof process<\"u\"&&typeof process.on==\"function\"&&uu.default.isWorkerRuntime()&&(process.on(\"uncaughtException\",e=>{setTimeout(()=>RI(e),250)}),process.on(\"unhandledRejection\",e=>{e&&typeof e.message==\"string\"&&setTimeout(()=>RI(e),250)}))});var kQ=zr(Rl=>{\"use strict\";var uxt=Rl&&Rl.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),hxt=Rl&&Rl.__exportStar||function(e,t){for(var r in e)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r)&&uxt(t,e,r)};Object.defineProperty(Rl,\"__esModule\",{value:!0});Rl.Transfer=Rl.DefaultSerializer=Rl.expose=Rl.registerSerializer=void 0;var fxt=fx();Object.defineProperty(Rl,\"registerSerializer\",{enumerable:!0,get:function(){return fxt.registerSerializer}});hxt(xQ(),Rl);var dxt=LQ();Object.defineProperty(Rl,\"expose\",{enumerable:!0,get:function(){return dxt.expose}});var pxt=FB();Object.defineProperty(Rl,\"DefaultSerializer\",{enumerable:!0,get:function(){return pxt.DefaultSerializer}});var Axt=bS();Object.defineProperty(Rl,\"Transfer\",{enumerable:!0,get:function(){return Axt.Transfer}})});var jI=xi(Zi(),1),Yg=xi(Zi(),1);var Zl=xi(Zi(),1),m8=xi(A8(),1),g8=Zl.createContext(null);function Hk(){let e=Zl.useContext(g8);if(!e)throw new Error(\"Model not found\");return e}function M0(e){let t=Hk(),[r,i]=Zl.useState(t.get(e));return Zl.useEffect(()=>{let n=()=>i(t.get(e));return t.on(`change:${e}`,n),()=>t.off(`change:${e}`,n)},[t,e]),[r,n=>{t.set(e,n),t.save_changes()}]}function _8(e){return({model:t,el:r})=>{let i=m8.createRoot(r);return i.render(Zl.createElement(Zl.StrictMode,null,Zl.createElement(g8.Provider,{value:t},Zl.createElement(e)))),()=>i.unmount()}}var k8=xi(Zi());var Y_=xi(Zi()),qc=xi(Zi());var qk=xi(Zi()),vM=xi(Zi());var y8=qk.createContext(null);function v8(e,t){let r=Array.isArray(e)?e[0]:e?e.x:0,i=Array.isArray(e)?e[1]:e?e.y:0,n=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return r===n&&i===s}function Yl(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r{let n=null;\"interactive\"in i&&(n=Object.assign({},i),delete n.interactive);let s=t[i.ref];if(s){n=n||Object.assign({},i),delete n.ref;for(let o of Htt)o in s&&(n[o]=s[o])}return n||i});return{...e,layers:r}}var b8={version:8,sources:{},layers:[]},w8={mousedown:\"onMouseDown\",mouseup:\"onMouseUp\",mouseover:\"onMouseOver\",mousemove:\"onMouseMove\",click:\"onClick\",dblclick:\"onDblClick\",mouseenter:\"onMouseEnter\",mouseleave:\"onMouseLeave\",mouseout:\"onMouseOut\",contextmenu:\"onContextMenu\",touchstart:\"onTouchStart\",touchend:\"onTouchEnd\",touchmove:\"onTouchMove\",touchcancel:\"onTouchCancel\"},Xk={movestart:\"onMoveStart\",move:\"onMove\",moveend:\"onMoveEnd\",dragstart:\"onDragStart\",drag:\"onDrag\",dragend:\"onDragEnd\",zoomstart:\"onZoomStart\",zoom:\"onZoom\",zoomend:\"onZoomEnd\",rotatestart:\"onRotateStart\",rotate:\"onRotate\",rotateend:\"onRotateEnd\",pitchstart:\"onPitchStart\",pitch:\"onPitch\",pitchend:\"onPitchEnd\"},S8={wheel:\"onWheel\",boxzoomstart:\"onBoxZoomStart\",boxzoomend:\"onBoxZoomEnd\",boxzoomcancel:\"onBoxZoomCancel\",resize:\"onResize\",load:\"onLoad\",render:\"onRender\",idle:\"onIdle\",remove:\"onRemove\",data:\"onData\",styledata:\"onStyleData\",sourcedata:\"onSourceData\",error:\"onError\"},qtt=[\"minZoom\",\"maxZoom\",\"minPitch\",\"maxPitch\",\"maxBounds\",\"projection\",\"renderWorldCopies\"],Ztt=[\"scrollZoom\",\"boxZoom\",\"dragRotate\",\"dragPan\",\"keyboard\",\"doubleClickZoom\",\"touchZoomRotate\",\"touchPitch\"],E0=class e{constructor(t,r,i){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=n=>{let s=this.props[S8[n.type]];s?s(n):n.type===\"error\"&&console.error(n.error)},this._onPointerEvent=n=>{(n.type===\"mousemove\"||n.type===\"mouseout\")&&this._updateHover(n);let s=this.props[w8[n.type]];s&&(this.props.interactiveLayerIds&&n.type!==\"mouseover\"&&n.type!==\"mouseout\"&&(n.features=this._hoveredFeatures||this._queryRenderedFeatures(n.point)),s(n),delete n.features)},this._onCameraEvent=n=>{if(!this._internalUpdate){let s=this.props[Xk[n.type]];s&&s(n)}n.type in this._deferredEvents&&(this._deferredEvents[n.type]=!1)},this._MapClass=t,this.props=r,this._initialize(i)}get map(){return this._map}get transform(){return this._renderTransform}setProps(t){let r=this.props;this.props=t;let i=this._updateSettings(t,r);i&&this._createShadowTransform(this._map);let n=this._updateSize(t),s=this._updateViewState(t,!0);this._updateStyle(t,r),this._updateStyleComponents(t,r),this._updateHandlers(t,r),(i||n||s&&!this._map.isMoving())&&this.redraw()}static reuse(t,r){let i=e.savedMaps.pop();if(!i)return null;let n=i.map,s=n.getContainer();for(r.className=s.className;s.childNodes.length>0;)r.appendChild(s.childNodes[0]);n._container=r;let o=n._resizeObserver;o&&(o.disconnect(),o.observe(r)),i.setProps({...t,styleDiffing:!1}),n.resize();let{initialViewState:c}=t;return c&&(c.bounds?n.fitBounds(c.bounds,{...c.fitBoundsOptions,duration:0}):i._updateViewState(c,!1)),n.isStyleLoaded()?n.fire(\"load\"):n.once(\"styledata\",()=>n.fire(\"load\")),n._update(),i}_initialize(t){let{props:r}=this,{mapStyle:i=b8}=r,n={...r,...r.initialViewState,accessToken:r.mapboxAccessToken||Ytt()||null,container:t,style:Qk(i)},s=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[s.longitude||0,s.latitude||0],zoom:s.zoom||0,pitch:s.pitch||0,bearing:s.bearing||0}),r.gl){let w=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=w,r.gl)}let o=new this._MapClass(n);s.padding&&o.setPadding(s.padding),r.cursor&&(o.getCanvas().style.cursor=r.cursor),this._createShadowTransform(o);let c=o._render;o._render=w=>{this._inRender=!0,c.call(o,w),this._inRender=!1};let d=o._renderTaskQueue.run;o._renderTaskQueue.run=w=>{d.call(o._renderTaskQueue,w),this._onBeforeRepaint()},o.on(\"render\",()=>this._onAfterRepaint());let _=o.fire;o.fire=this._fireEvent.bind(this,_),o.on(\"resize\",()=>{this._renderTransform.resize(o.transform.width,o.transform.height)}),o.on(\"styledata\",()=>{this._updateStyleComponents(this.props,{}),Zk(o.transform,this._renderTransform)}),o.on(\"sourcedata\",()=>this._updateStyleComponents(this.props,{}));for(let w in w8)o.on(w,this._onPointerEvent);for(let w in Xk)o.on(w,this._onCameraEvent);for(let w in S8)o.on(w,this._onEvent);this._map=o}recycle(){let r=this.map.getContainer().querySelector(\"[mapboxgl-children]\");r?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let t=this._map;!this._inRender&&t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}_createShadowTransform(t){let r=x8(t.transform);t.painter.transform=r,this._renderTransform=r}_updateSize(t){let{viewState:r}=t;if(r){let i=this._map;if(r.width!==i.transform.width||r.height!==i.transform.height)return i.resize(),!0}return!1}_updateViewState(t,r){if(this._internalUpdate)return!1;let i=this._map,n=this._renderTransform,{zoom:s,pitch:o,bearing:c}=n,d=i.isMoving();d&&(n.cameraElevationReference=\"sea\");let _=$k(n,{...Yk(i.transform),...t});if(d&&(n.cameraElevationReference=\"ground\"),_&&r){let w=this._deferredEvents;w.move=!0,w.zoom||(w.zoom=s!==n.zoom),w.rotate||(w.rotate=c!==n.bearing),w.pitch||(w.pitch=o!==n.pitch)}return d||$k(i.transform,t),_}_updateSettings(t,r){let i=this._map,n=!1;for(let s of qtt)if(s in t&&!Yl(t[s],r[s])){n=!0;let o=i[`set${s[0].toUpperCase()}${s.slice(1)}`];o?.call(i,t[s])}return n}_updateStyle(t,r){if(t.cursor!==r.cursor&&(this._map.getCanvas().style.cursor=t.cursor||\"\"),t.mapStyle!==r.mapStyle){let{mapStyle:i=b8,styleDiffing:n=!0}=t,s={diff:n};return\"localIdeographFontFamily\"in t&&(s.localIdeographFontFamily=t.localIdeographFontFamily),this._map.setStyle(Qk(i),s),!0}return!1}_updateStyleComponents(t,r){let i=this._map,n=!1;return i.isStyleLoaded()&&(\"light\"in t&&i.setLight&&!Yl(t.light,r.light)&&(n=!0,i.setLight(t.light)),\"fog\"in t&&i.setFog&&!Yl(t.fog,r.fog)&&(n=!0,i.setFog(t.fog)),\"terrain\"in t&&i.setTerrain&&!Yl(t.terrain,r.terrain)&&(!t.terrain||i.getSource(t.terrain.source))&&(n=!0,i.setTerrain(t.terrain))),n}_updateHandlers(t,r){var i,n;let s=this._map,o=!1;for(let c of Ztt){let d=(i=t[c])!==null&&i!==void 0?i:!0,_=(n=r[c])!==null&&n!==void 0?n:!0;Yl(d,_)||(o=!0,d?s[c].enable(d):s[c].disable())}return o}_queryRenderedFeatures(t){let r=this._map,i=r.transform,{interactiveLayerIds:n=[]}=this.props;try{return r.transform=this._renderTransform,r.queryRenderedFeatures(t,{layers:n.filter(r.getLayer.bind(r))})}catch{return[]}finally{r.transform=i}}_updateHover(t){var r;let{props:i}=this;if(i.interactiveLayerIds&&(i.onMouseMove||i.onMouseEnter||i.onMouseLeave)){let s=t.type,o=((r=this._hoveredFeatures)===null||r===void 0?void 0:r.length)>0,c=this._queryRenderedFeatures(t.point),d=c.length>0;!d&&o&&(t.type=\"mouseleave\",this._onPointerEvent(t)),this._hoveredFeatures=c,d&&!o&&(t.type=\"mouseenter\",this._onPointerEvent(t)),t.type=s}else this._hoveredFeatures=null}_fireEvent(t,r,i){let n=this._map,s=n.transform,o=typeof r==\"string\"?r:r.type;return o===\"move\"&&this._updateViewState(this.props,!1),o in Xk&&(typeof r==\"object\"&&(r.viewState=Yk(s)),this._map.isMoving())?(n.transform=this._renderTransform,t.call(n,r,i),n.transform=s,n):(t.call(n,r,i),n)}_onBeforeRepaint(){let t=this._map;this._internalUpdate=!0;for(let i in this._deferredEvents)this._deferredEvents[i]&&t.fire(i);this._internalUpdate=!1;let r=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=()=>{Zk(this._renderTransform,r),t.transform=r}}};E0.savedMaps=[];function Ytt(){let e=null;if(typeof location<\"u\"){let t=/access_token=([^&\\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||process.env.MapboxAccessToken}catch{}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return e}var $tt=[\"setMaxBounds\",\"setMinZoom\",\"setMaxZoom\",\"setMinPitch\",\"setMaxPitch\",\"setRenderWorldCopies\",\"setProjection\",\"setStyle\",\"addSource\",\"removeSource\",\"addLayer\",\"removeLayer\",\"setLayerZoomRange\",\"setFilter\",\"setPaintProperty\",\"setLayoutProperty\",\"setLight\",\"setTerrain\",\"setFog\",\"remove\"];function Kk(e){if(!e)return null;let t=e.map,r={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:i=>{let n=t.transform;t.transform=e.transform;let s=t.project(i);return t.transform=n,s},unproject:i=>{let n=t.transform;t.transform=e.transform;let s=t.unproject(i);return t.transform=n,s},queryTerrainElevation:(i,n)=>{let s=t.transform;t.transform=e.transform;let o=t.queryTerrainElevation(i,n);return t.transform=s,o},queryRenderedFeatures:(i,n)=>{let s=t.transform;t.transform=e.transform;let o=t.queryRenderedFeatures(i,n);return t.transform=s,o}};for(let i of Qtt(t))!(i in r)&&!$tt.includes(i)&&(r[i]=t[i].bind(t));return r}function Qtt(e){let t=new Set,r=e;for(;r;){for(let i of Object.getOwnPropertyNames(r))i[0]!==\"_\"&&typeof e[i]==\"function\"&&i!==\"fire\"&&i!==\"setEventedParent\"&&t.add(i);r=Object.getPrototypeOf(r)}return Array.from(t)}var xM=xi(Zi()),Xtt=typeof document<\"u\"?xM.useLayoutEffect:xM.useEffect,T8=Xtt;var Ktt=[\"baseApiUrl\",\"maxParallelImageRequests\",\"workerClass\",\"workerCount\",\"workerUrl\"];function Jk(e,t){for(let i of Ktt)i in t&&(e[i]=t[i]);let{RTLTextPlugin:r=\"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js\"}=t;r&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()===\"unavailable\"&&e.setRTLTextPlugin(r,i=>{i&&console.error(i)},!0)}var Vf=Y_.createContext(null);function t4(e,t,r){let i=(0,qc.useContext)(y8),[n,s]=(0,qc.useState)(null),o=(0,qc.useRef)(),{current:c}=(0,qc.useRef)({mapLib:null,map:null});(0,qc.useEffect)(()=>{let w=e.mapLib,I=!0,R;return Promise.resolve(w||r).then(N=>{if(!I)return;if(!N)throw new Error(\"Invalid mapLib\");let j=\"Map\"in N?N:N.default;if(!j.Map)throw new Error(\"Invalid mapLib\");if(Jk(j,e),!j.supported||j.supported(e))e.reuseMaps&&(R=E0.reuse(e,o.current)),R||(R=new E0(j.Map,e,o.current)),c.map=Kk(R),c.mapLib=j,s(R),i?.onMapMount(c.map,e.id);else throw new Error(\"Map is not supported by this browser\")}).catch(N=>{let{onError:j}=e;j?j({type:\"error\",target:null,originalEvent:null,error:N}):console.error(N)}),()=>{I=!1,R&&(i?.onMapUnmount(e.id),e.reuseMaps?R.recycle():R.destroy())}},[]),T8(()=>{n&&n.setProps(e)}),(0,qc.useImperativeHandle)(t,()=>c.map,[n]);let d=(0,qc.useMemo)(()=>({position:\"relative\",width:\"100%\",height:\"100%\",...e.style}),[e.style]),_={height:\"100%\"};return Y_.createElement(\"div\",{id:e.id,ref:o,style:d},n&&Y_.createElement(Vf.Provider,{value:c},Y_.createElement(\"div\",{\"mapboxgl-children\":\"\",style:_},e.children)))}var M8=xi(Zi()),E8=xi(yM()),xl=xi(Zi());var Jtt=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function $l(e,t){if(!e||!t)return;let r=e.style;for(let i in t){let n=t[i];Number.isFinite(n)&&!Jtt.test(i)?r[i]=`${n}px`:r[i]=n}}function tet(e,t){let{map:r,mapLib:i}=(0,xl.useContext)(Vf),n=(0,xl.useRef)({props:e});n.current.props=e;let s=(0,xl.useMemo)(()=>{let Y=!1;M8.Children.forEach(e.children,K=>{K&&(Y=!0)});let it={...e,element:Y?document.createElement(\"div\"):null},Z=new i.Marker(it);return Z.setLngLat([e.longitude,e.latitude]),Z.getElement().addEventListener(\"click\",K=>{var J,ht;(ht=(J=n.current.props).onClick)===null||ht===void 0||ht.call(J,{type:\"click\",target:Z,originalEvent:K})}),Z.on(\"dragstart\",K=>{var J,ht;let Tt=K;Tt.lngLat=s.getLngLat(),(ht=(J=n.current.props).onDragStart)===null||ht===void 0||ht.call(J,Tt)}),Z.on(\"drag\",K=>{var J,ht;let Tt=K;Tt.lngLat=s.getLngLat(),(ht=(J=n.current.props).onDrag)===null||ht===void 0||ht.call(J,Tt)}),Z.on(\"dragend\",K=>{var J,ht;let Tt=K;Tt.lngLat=s.getLngLat(),(ht=(J=n.current.props).onDragEnd)===null||ht===void 0||ht.call(J,Tt)}),Z},[]);(0,xl.useEffect)(()=>(s.addTo(r.getMap()),()=>{s.remove()}),[]);let{longitude:o,latitude:c,offset:d,style:_,draggable:w=!1,popup:I=null,rotation:R=0,rotationAlignment:N=\"auto\",pitchAlignment:j=\"auto\"}=e;return(0,xl.useEffect)(()=>{$l(s.getElement(),_)},[_]),(0,xl.useImperativeHandle)(t,()=>s,[]),(s.getLngLat().lng!==o||s.getLngLat().lat!==c)&&s.setLngLat([o,c]),d&&!v8(s.getOffset(),d)&&s.setOffset(d),s.isDraggable()!==w&&s.setDraggable(w),s.getRotation()!==R&&s.setRotation(R),s.getRotationAlignment()!==N&&s.setRotationAlignment(N),s.getPitchAlignment()!==j&&s.setPitchAlignment(j),s.getPopup()!==I&&s.setPopup(I),(0,E8.createPortal)(e.children,s.getElement())}var eet=(0,xl.memo)((0,xl.forwardRef)(tet));var I8=xi(yM()),Qa=xi(Zi());function P8(e){return new Set(e?e.trim().split(/\\s+/):[])}function ret(e,t){let{map:r,mapLib:i}=(0,Qa.useContext)(Vf),n=(0,Qa.useMemo)(()=>document.createElement(\"div\"),[]),s=(0,Qa.useRef)({props:e});s.current.props=e;let o=(0,Qa.useMemo)(()=>{let c={...e},d=new i.Popup(c);return d.setLngLat([e.longitude,e.latitude]),d.once(\"open\",_=>{var w,I;(I=(w=s.current.props).onOpen)===null||I===void 0||I.call(w,_)}),d},[]);if((0,Qa.useEffect)(()=>{let c=d=>{var _,w;(w=(_=s.current.props).onClose)===null||w===void 0||w.call(_,d)};return o.on(\"close\",c),o.setDOMContent(n).addTo(r.getMap()),()=>{o.off(\"close\",c),o.isOpen()&&o.remove()}},[]),(0,Qa.useEffect)(()=>{$l(o.getElement(),e.style)},[e.style]),(0,Qa.useImperativeHandle)(t,()=>o,[]),o.isOpen()&&((o.getLngLat().lng!==e.longitude||o.getLngLat().lat!==e.latitude)&&o.setLngLat([e.longitude,e.latitude]),e.offset&&!Yl(o.options.offset,e.offset)&&o.setOffset(e.offset),(o.options.anchor!==e.anchor||o.options.maxWidth!==e.maxWidth)&&(o.options.anchor=e.anchor,o.setMaxWidth(e.maxWidth)),o.options.className!==e.className)){let c=P8(o.options.className),d=P8(e.className);for(let _ of c)d.has(_)||o.removeClassName(_);for(let _ of d)c.has(_)||o.addClassName(_);o.options.className=e.className}return(0,I8.createPortal)(e.children,n)}var iet=(0,Qa.memo)((0,Qa.forwardRef)(ret));var bM=xi(Zi());var $_=xi(Zi());function net(e,t,r,i){let n=(0,$_.useContext)(Vf),s=(0,$_.useMemo)(()=>e(n),[]);return(0,$_.useEffect)(()=>{let o=i||r||t,c=typeof t==\"function\"&&typeof r==\"function\"?t:null,d=typeof r==\"function\"?r:typeof t==\"function\"?t:null,{map:_}=n;return _.hasControl(s)||(_.addControl(s,o?.position),c&&c(n)),()=>{d&&d(n),_.hasControl(s)&&_.removeControl(s)}},[]),s}var Eh=net;function set(e){let t=Eh(({mapLib:r})=>new r.AttributionControl(e),{position:e.position});return(0,bM.useEffect)(()=>{$l(t._container,e.style)},[e.style]),null}var oet=(0,bM.memo)(set);var wM=xi(Zi());function aet(e){let t=Eh(({mapLib:r})=>new r.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)}),{position:e.position});return(0,wM.useEffect)(()=>{$l(t._controlContainer,e.style)},[e.style]),null}var cet=(0,wM.memo)(aet);var jf=xi(Zi());function uet(e,t){let r=(0,jf.useRef)({props:e}),i=Eh(({mapLib:n})=>{let s=new n.GeolocateControl(e),o=s._setupUI;return s._setupUI=c=>{s._container.hasChildNodes()||o(c)},s.on(\"geolocate\",c=>{var d,_;(_=(d=r.current.props).onGeolocate)===null||_===void 0||_.call(d,c)}),s.on(\"error\",c=>{var d,_;(_=(d=r.current.props).onError)===null||_===void 0||_.call(d,c)}),s.on(\"outofmaxbounds\",c=>{var d,_;(_=(d=r.current.props).onOutOfMaxBounds)===null||_===void 0||_.call(d,c)}),s.on(\"trackuserlocationstart\",c=>{var d,_;(_=(d=r.current.props).onTrackUserLocationStart)===null||_===void 0||_.call(d,c)}),s.on(\"trackuserlocationend\",c=>{var d,_;(_=(d=r.current.props).onTrackUserLocationEnd)===null||_===void 0||_.call(d,c)}),s},{position:e.position});return r.current.props=e,(0,jf.useImperativeHandle)(t,()=>i,[]),(0,jf.useEffect)(()=>{$l(i._container,e.style)},[e.style]),null}var het=(0,jf.memo)((0,jf.forwardRef)(uet));var SM=xi(Zi());function fet(e){let t=Eh(({mapLib:r})=>new r.NavigationControl(e),{position:e.position});return(0,SM.useEffect)(()=>{$l(t._container,e.style)},[e.style]),null}var det=(0,SM.memo)(fet);var Q_=xi(Zi());function pet(e){let t=Eh(({mapLib:s})=>new s.ScaleControl(e),{position:e.position}),r=(0,Q_.useRef)(e),i=r.current;r.current=e;let{style:n}=e;return e.maxWidth!==void 0&&e.maxWidth!==i.maxWidth&&(t.options.maxWidth=e.maxWidth),e.unit!==void 0&&e.unit!==i.unit&&t.setUnit(e.unit),(0,Q_.useEffect)(()=>{$l(t._container,n)},[n]),null}var Aet=(0,Q_.memo)(pet);var R1=xi(Zi());var get=xi(Zi()),D1=xi(Zi()),_et=xi(Zi());var yet=Promise.resolve().then(()=>xi(L8())),vet=k8.forwardRef(function(t,r){return t4(t,r,yet)});var R8=vet;var Lo=xi(Zi());function FA(e,t){if(!e)throw new Error(t||\"loader assertion failed.\")}var Gf={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},xet=Gf.self||Gf.window||Gf.global||{},bet=Gf.window||Gf.self||Gf.global||{},wet=Gf.global||Gf.self||Gf.window||{},Tet=Gf.document||{};var P0=!!(typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser);var D8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Met=D8&&parseFloat(D8[1])||0;var O8=\"3.4.14\";function Xa(e,t){if(!e)throw new Error(t||\"loaders.gl assertion failed.\")}var Wf={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document},Fbt=Wf.self||Wf.window||Wf.global||{},zbt=Wf.window||Wf.self||Wf.global||{},Nbt=Wf.global||Wf.self||Wf.window||{},Ubt=Wf.document||{};var I0=typeof process!=\"object\"||String(process)!==\"[object process]\"||process.browser;var F8=typeof window<\"u\"&&typeof window.orientation<\"u\",B8=typeof process<\"u\"&&process.version&&/v([0-9]*)/.exec(process.version),Vbt=B8&&parseFloat(B8[1])||0;function zA(e){\"@babel/helpers - typeof\";return zA=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},zA(e)}function i4(e,t){if(zA(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||\"default\");if(zA(i)!=\"object\")return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(t===\"string\"?String:Number)(e)}function n4(e){var t=i4(e,\"string\");return zA(t)==\"symbol\"?t:String(t)}function G(e,t,r){return t=n4(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var O1=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"workerThread\",void 0),G(this,\"isRunning\",!0),G(this,\"result\",void 0),G(this,\"_resolve\",()=>{}),G(this,\"_reject\",()=>{}),this.name=t,this.workerThread=r,this.result=new Promise((i,n)=>{this._resolve=i,this._reject=n})}postMessage(t,r){this.workerThread.postMessage({source:\"loaders.gl\",type:t,payload:r})}done(t){Xa(this.isRunning),this.isRunning=!1,this._resolve(t)}error(t){Xa(this.isRunning),this.isRunning=!1,this._reject(t)}};var X_=class{terminate(){}};var s4=new Map;function z8(e){Xa(e.source&&!e.url||!e.source&&e.url);let t=s4.get(e.source||e.url);return t||(e.url&&(t=Eet(e.url),s4.set(e.url,t)),e.source&&(t=N8(e.source),s4.set(e.source,t))),Xa(t),t}function Eet(e){if(!e.startsWith(\"http\"))return e;let t=Pet(e);return N8(t)}function N8(e){let t=new Blob([e],{type:\"application/javascript\"});return URL.createObjectURL(t)}function Pet(e){return`try {\n importScripts('`.concat(e,`');\n} catch (error) {\n console.error(error);\n throw error;\n}`)}function o4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=arguments.length>2?arguments[2]:void 0,i=r||new Set;if(e){if(U8(e))i.add(e);else if(U8(e.buffer))i.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e==\"object\")for(let n in e)o4(e[n],t,i)}}return r===void 0?Array.from(i):[]}function U8(e){return e?e instanceof ArrayBuffer||typeof MessagePort<\"u\"&&e instanceof MessagePort||typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap||typeof OffscreenCanvas<\"u\"&&e instanceof OffscreenCanvas:!1}var a4=()=>{},NA=class{static isSupported(){return typeof Worker<\"u\"&&I0||typeof X_<\"u\"&&!I0}constructor(t){G(this,\"name\",void 0),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"terminated\",!1),G(this,\"worker\",void 0),G(this,\"onMessage\",void 0),G(this,\"onError\",void 0),G(this,\"_loadableURL\",\"\");let{name:r,source:i,url:n}=t;Xa(i||n),this.name=r,this.source=i,this.url=n,this.onMessage=a4,this.onError=s=>console.log(s),this.worker=I0?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=a4,this.onError=a4,this.worker.terminate(),this.terminated=!0}get isRunning(){return!!this.onMessage}postMessage(t,r){r=r||o4(t),this.worker.postMessage(t,r)}_getErrorFromErrorEvent(t){let r=\"Failed to load \";return r+=\"worker \".concat(this.name,\" from \").concat(this.url,\". \"),t.message&&(r+=\"\".concat(t.message,\" in \")),t.lineno&&(r+=\":\".concat(t.lineno,\":\").concat(t.colno)),new Error(r)}_createBrowserWorker(){this._loadableURL=z8({source:this.source,url:this.url});let t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error(\"No data received\"))},t.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},t.onmessageerror=r=>console.error(r),t}_createNodeWorker(){let t;if(this.url){let i=this.url.includes(\":/\")||this.url.startsWith(\"/\")?this.url:\"./\".concat(this.url);t=new X_(i,{eval:!1})}else if(this.source)t=new X_(this.source,{eval:!0});else throw new Error(\"no worker\");return t.on(\"message\",r=>{this.onMessage(r)}),t.on(\"error\",r=>{this.onError(r)}),t.on(\"exit\",r=>{}),t}};var B1=class{static isSupported(){return NA.isSupported()}constructor(t){G(this,\"name\",\"unnamed\"),G(this,\"source\",void 0),G(this,\"url\",void 0),G(this,\"maxConcurrency\",1),G(this,\"maxMobileConcurrency\",1),G(this,\"onDebug\",()=>{}),G(this,\"reuseWorkers\",!0),G(this,\"props\",{}),G(this,\"jobQueue\",[]),G(this,\"idleQueue\",[]),G(this,\"count\",0),G(this,\"isDestroyed\",!1),this.source=t.source,this.url=t.url,this.setProps(t)}destroy(){this.idleQueue.forEach(t=>t.destroy()),this.isDestroyed=!0}setProps(t){this.props={...this.props,...t},t.name!==void 0&&(this.name=t.name),t.maxConcurrency!==void 0&&(this.maxConcurrency=t.maxConcurrency),t.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=t.maxMobileConcurrency),t.reuseWorkers!==void 0&&(this.reuseWorkers=t.reuseWorkers),t.onDebug!==void 0&&(this.onDebug=t.onDebug)}async startJob(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(s,o,c)=>s.done(c),i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(s,o)=>s.error(o),n=new Promise(s=>(this.jobQueue.push({name:t,onMessage:r,onError:i,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let t=this._getAvailableWorker();if(!t)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:\"Starting job\",name:r.name,workerThread:t,backlog:this.jobQueue.length});let i=new O1(r.name,t);t.onMessage=n=>r.onMessage(i,n.type,n.payload),t.onError=n=>r.onError(i,n),r.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(t)}}}returnWorkerToQueue(t){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(t.destroy(),this.count--):this.idleQueue.push(t),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}},UA=class e{static isSupported(){return NA.isSupported()}static getWorkerFarm(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e._workerFarm=e._workerFarm||new e({}),e._workerFarm.setProps(t),e._workerFarm}constructor(t){G(this,\"props\",void 0),G(this,\"workerPools\",new Map),this.props={...Iet},this.setProps(t),this.workerPools=new Map}destroy(){for(let t of this.workerPools.values())t.destroy();this.workerPools=new Map}setProps(t){this.props={...this.props,...t};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(t){let{name:r,source:i,url:n}=t,s=this.workerPools.get(r);return s||(s=new B1({name:r,source:i,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}};G(UA,\"_workerFarm\",void 0);var Cet=\"latest\";function l4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t[e.id]||{},i=\"\".concat(e.id,\"-worker.js\"),n=r.workerUrl;if(!n&&e.id===\"compression\"&&(n=t.workerUrl),t._workerType===\"test\"&&(n=\"modules/\".concat(e.module,\"/dist/\").concat(i)),!n){let s=e.version;s===\"latest\"&&(s=Cet);let o=s?\"@\".concat(s):\"\";n=\"https://unpkg.com/@loaders.gl/\".concat(e.module).concat(o,\"/dist/\").concat(i)}return Xa(n),n}function c4(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:O8;Xa(e,\"no worker provided\");let r=e.version;return!(!t||!r)}function u4(e,t){return!UA.isSupported()||!I0&&!(t!=null&&t._nodeWorkers)?!1:e.worker&&t?.worker}async function h4(e,t,r,i,n){let s=e.id,o=l4(e,r),d=UA.getWorkerFarm(r).getWorkerPool({name:s,url:o});r=JSON.parse(JSON.stringify(r)),i=JSON.parse(JSON.stringify(i||{}));let _=await d.startJob(\"process-on-worker\",Let.bind(null,n));return _.postMessage(\"process\",{input:t,options:r,context:i}),await(await _.result).result}async function Let(e,t,r,i){switch(r){case\"done\":t.done(i);break;case\"error\":t.error(new Error(i.error));break;case\"process\":let{id:n,input:s,options:o}=i;try{let c=await e(s,o);t.postMessage(\"done\",{id:n,result:c})}catch(c){let d=c instanceof Error?c.message:\"unknown error\";t.postMessage(\"error\",{id:n,error:d})}break;default:console.warn(\"parse-with-worker unknown message \".concat(r))}}function f4(e,t,r){if(r=r||e.byteLength,e.byteLengthc instanceof ArrayBuffer?new Uint8Array(c):c),n=i.reduce((c,d)=>c+d.byteLength,0),s=new Uint8Array(n),o=0;for(let c of i)s.set(c,o),o+=c.byteLength;return s.buffer}async function p4(e){let t=[];for await(let r of e)t.push(r);return d4(...t)}function F1(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var C0=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=F1(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(F1()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var K_=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:i}=t,n=this.stats[r];return n||(t instanceof C0?n=t:n=new C0(r,i),this.stats[r]=n),n}};var ket=\"Queued Requests\",Ret=\"Active Requests\",Det=\"Cancelled Requests\",Oet=\"Queued Requests Ever\",Bet=\"Active Requests Ever\",Fet={id:\"request-scheduler\",throttleRequests:!0,maxRequests:6},J_=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};G(this,\"props\",void 0),G(this,\"stats\",void 0),G(this,\"activeRequestCount\",0),G(this,\"requestQueue\",[]),G(this,\"requestMap\",new Map),G(this,\"deferredUpdate\",null),this.props={...Fet,...t},this.stats=new K_({id:this.props.id}),this.stats.get(ket),this.stats.get(Ret),this.stats.get(Det),this.stats.get(Oet),this.stats.get(Bet)}scheduleRequest(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:()=>0;if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let i={handle:t,priority:0,getPriority:r},n=new Promise(s=>(i.resolve=s,i));return this.requestQueue.push(i),this.requestMap.set(t,n),this._issueNewRequests(),n}_issueRequest(t){let{handle:r,resolve:i}=t,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,i?i({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let r=0;rr.priority-i.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var zet=\"\",V8={};function A4(e){for(let t in V8)if(e.startsWith(t)){let r=V8[t];e=e.replace(t,r)}return!e.startsWith(\"http://\")&&!e.startsWith(\"https://\")&&(e=\"\".concat(zet).concat(e)),e}function j8(e){return e&&typeof e==\"object\"&&e.isBuffer}function TM(e){if(j8(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e==\"string\"){let t=e;return new TextEncoder().encode(t).buffer}if(e&&typeof e==\"object\"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error(\"toArrayBuffer\")}var L0={};AA(L0,{dirname:()=>Uet,filename:()=>Net,join:()=>Vet,resolve:()=>jet});function G8(){var e;if(typeof process<\"u\"&&typeof process.cwd<\"u\")return process.cwd();let t=(e=window.location)===null||e===void 0?void 0:e.pathname;return t?.slice(0,t.lastIndexOf(\"/\")+1)||\"\"}function Net(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(t+1):\"\"}function Uet(e){let t=e?e.lastIndexOf(\"/\"):-1;return t>=0?e.substr(0,t):\"\"}function Vet(){for(var e=arguments.length,t=new Array(e),r=0;r(s&&(n=n.replace(new RegExp(\"^\".concat(i)),\"\")),s!==t.length-1&&(n=n.replace(new RegExp(\"\".concat(i,\"$\")),\"\")),n)),t.join(i)}function jet(){let e=[];for(let n=0;n=-1&&!r;n--){let s;n>=0?s=e[n]:(i===void 0&&(i=G8()),s=i),s.length!==0&&(t=\"\".concat(s,\"/\").concat(t),r=s.charCodeAt(0)===z1)}return t=Get(t,!r),r?\"/\".concat(t):t.length>0?t:\".\"}var z1=47,m4=46;function Get(e,t){let r=\"\",i=-1,n=0,s,o=!1;for(let c=0;c<=e.length;++c){if(c2){let d=r.length-1,_=d;for(;_>=0&&r.charCodeAt(_)!==z1;--_);if(_!==d){r=_===-1?\"\":r.slice(0,_),i=c,n=0,o=!1;continue}}else if(r.length===2||r.length===1){r=\"\",i=c,n=0,o=!1;continue}}t&&(r.length>0?r+=\"/..\":r=\"..\",o=!0)}else{let d=e.slice(i+1,c);r.length>0?r+=\"/\".concat(d):r=d,o=!1}i=c,n=0}else s===m4&&n!==-1?++n:n=-1}return r}var Wet=e=>typeof e==\"boolean\",N1=e=>typeof e==\"function\",k0=e=>e!==null&&typeof e==\"object\",g4=e=>k0(e)&&e.constructor==={}.constructor;var W8=e=>e&&typeof e[Symbol.iterator]==\"function\",H8=e=>e&&typeof e[Symbol.asyncIterator]==\"function\";var Ru=e=>typeof Response<\"u\"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var Du=e=>typeof Blob<\"u\"&&e instanceof Blob,q8=e=>e&&typeof e==\"object\"&&e.isBuffer;var Het=e=>typeof ReadableStream<\"u\"&&e instanceof ReadableStream||k0(e)&&N1(e.tee)&&N1(e.cancel)&&N1(e.getReader);var qet=e=>k0(e)&&N1(e.read)&&N1(e.pipe)&&Wet(e.readable),MM=e=>Het(e)||qet(e);var Zet=/^data:([-\\w.]+\\/[-\\w.+]+)(;|,)/,Yet=/^([-\\w.]+\\/[-\\w.+]+)/;function Z8(e){let t=Yet.exec(e);return t?t[1]:e}function _4(e){let t=Zet.exec(e);return t?t[1]:\"\"}var Y8=/\\?.*/;function $8(e){let t=e.match(Y8);return t&&t[0]}function ty(e){return e.replace(Y8,\"\")}function R0(e){return Ru(e)?e.url:Du(e)?e.name||\"\":typeof e==\"string\"?e:\"\"}function U1(e){if(Ru(e)){let t=e,r=t.headers.get(\"content-type\")||\"\",i=ty(t.url);return Z8(r)||_4(i)}return Du(e)?e.type||\"\":typeof e==\"string\"?_4(e):\"\"}function Q8(e){return Ru(e)?e.headers[\"content-length\"]||-1:Du(e)?e.size:typeof e==\"string\"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function EM(e){if(Ru(e))return e;let t={},r=Q8(e);r>=0&&(t[\"content-length\"]=String(r));let i=R0(e),n=U1(e);n&&(t[\"content-type\"]=n);let s=await Qet(e);s&&(t[\"x-first-bytes\"]=s),typeof e==\"string\"&&(e=new TextEncoder().encode(e));let o=new Response(e,{headers:t});return Object.defineProperty(o,\"url\",{value:i}),o}async function X8(e){if(!e.ok){let t=await $et(e);throw new Error(t)}}async function $et(e){let t=\"Failed to fetch resource \".concat(e.url,\" (\").concat(e.status,\"): \");try{let r=e.headers.get(\"Content-Type\"),i=e.statusText;r.includes(\"application/json\")&&(i+=\" \".concat(await e.text())),t+=i,t=t.length>60?\"\".concat(t.slice(0,60),\"...\"):t}catch{}return t}async function Qet(e){if(typeof e==\"string\")return\"data:,\".concat(e.slice(0,5));if(e instanceof Blob){let r=e.slice(0,5);return await new Promise(i=>{let n=new FileReader;n.onload=s=>{var o;return i(s==null||(o=s.target)===null||o===void 0?void 0:o.result)},n.readAsDataURL(r)})}if(e instanceof ArrayBuffer){let r=e.slice(0,5),i=Xet(r);return\"data:base64,\".concat(i)}return null}function Xet(e){let t=\"\",r=new Uint8Array(e);for(let i=0;i=0)}function Ph(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||v4()}var Ket=globalThis.self||globalThis.window||globalThis.global,ey=globalThis.window||globalThis.self||globalThis.global,Jet=globalThis.document||{},D0=globalThis.process||{},trt=globalThis.console,k2t=globalThis.navigator||{};var PM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",O2t=Ph();function ert(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var IM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=ert(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function K8(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function J8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function CM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,n=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let s=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(s/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(n,\");\"),\"background-size:\".concat(s,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var LM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(LM||(LM={}));var rrt=10;function tU(e){return typeof e!=\"string\"?e:(e=e.toUpperCase(),LM[e]||LM.WHITE)}function eU(e,t,r){if(!Ph&&typeof e==\"string\"){if(t){let i=tU(t);e=\"\\x1B[\".concat(i,\"m\").concat(e,\"\\x1B[39m\")}if(r){let i=tU(r);e=\"\\x1B[\".concat(i+rrt,\"m\").concat(e,\"\\x1B[49m\")}}return e}function rU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r),n=e;for(let s of i){let o=n[s];typeof o==\"function\"&&(t.find(c=>s===c)||(n[s]=o.bind(e)))}}function ry(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function O0(){let e;if(Ph()&&ey.performance){var t,r;e=ey===null||ey===void 0||(t=ey.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in D0){var i;let n=D0===null||D0===void 0||(i=D0.hrtime)===null||i===void 0?void 0:i.call(D0);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}var iy={debug:Ph()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},irt={enabled:!0,level:0};function Ou(){}var iU={},nU={once:!0},Hf=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};this.id=void 0,this.VERSION=PM,this._startTs=O0(),this._deltaTs=O0(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new IM(\"__probe-\".concat(this.id,\"__\"),irt),this.timeStamp(\"\".concat(this.id,\" started\")),rU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((O0()-this._startTs).toPrecision(10))}getDelta(){return Number((O0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){ry(t,r)}warn(t){return this._getLogFunction(0,t,iy.warn,arguments,nU)}error(t){return this._getLogFunction(0,t,iy.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,iy.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,iy.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,iy.debug||iy.info,arguments,nU)}table(t,r,i){return r?this._getLogFunction(t,r,console.table||Ou,i&&[i],{tag:art(r)}):Ou}image(t){let{logLevel:r,priority:i,image:n,message:s=\"\",scale:o=1}=t;return this._shouldLog(r||i)?Ph()?ort({image:n,message:s,scale:o}):srt({image:n,message:s,scale:o}):Ou}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||Ou)}group(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=sU({logLevel:t,message:r,opts:i}),{collapsed:s}=i;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Ou)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=oU(t)}_getLogFunction(t,r,i,n,s){if(this._shouldLog(t)){s=sU({logLevel:t,message:r,args:n,opts:s}),i=i||s.method,ry(i),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=O0();let o=s.tag||s.message;if(s.once&&o)if(!iU[o])iU[o]=O0();else return Ou;return r=nrt(this.id,s.message,s),i.bind(console,r,...s.args)}return Ou}};Hf.VERSION=PM;function oU(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return ry(Number.isFinite(t)&&t>=0),t}function sU(e){let{logLevel:t,message:r}=e;e.logLevel=oU(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let n=typeof e.message;return ry(n===\"string\"||n===\"object\"),Object.assign(e,{args:i},e.opts)}function nrt(e,t,r){if(typeof t==\"string\"){let i=r.time?J8(K8(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=eU(t,r.color,r.background)}return t}function srt(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Ou}function ort(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let s=new Image;return s.onload=()=>{let o=CM(s,r,i);console.log(...o)},s.src=t,Ou}let n=t.nodeName||\"\";if(n.toLowerCase()===\"img\")return console.log(...CM(t,r,i)),Ou;if(n.toLowerCase()===\"canvas\"){let s=new Image;return s.onload=()=>console.log(...CM(s,r,i)),s.src=t.toDataURL(),Ou}return Ou}function art(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var oSt=new Hf({id:\"@probe.gl/log\"});var x4=new Hf({id:\"loaders.gl\"}),kM=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},RM=class{constructor(){G(this,\"console\",void 0),this.console=console}log(){for(var t=arguments.length,r=new Array(t),i=0;i{let e=w4();return e.globalOptions=e.globalOptions||{...b4},e.globalOptions};function uU(e,t,r,i){return r=r||[],r=Array.isArray(r)?r:[r],lrt(e,r),urt(t,e,i)}function lrt(e,t){lU(e,null,b4,aU,t);for(let r of t){let i=e&&e[r.id]||{},n=r.options&&r.options[r.id]||{},s=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};lU(i,r.id,n,s,t)}}function lU(e,t,r,i,n){let s=t||\"Top level\",o=t?\"\".concat(t,\".\"):\"\";for(let c in e){let d=!t&&k0(e[c]),_=c===\"baseUri\"&&!t,w=c===\"workerUrl\"&&t;if(!(c in r)&&!_&&!w){if(c in i)x4.warn(\"\".concat(s,\" loader option '\").concat(o).concat(c,\"' no longer supported, use '\").concat(i[c],\"'\"))();else if(!d){let I=crt(c,n);x4.warn(\"\".concat(s,\" loader option '\").concat(o).concat(c,\"' not recognized. \").concat(I))()}}}}function crt(e,t){let r=e.toLowerCase(),i=\"\";for(let n of t)for(let s in n.options){if(e===s)return\"Did you mean '\".concat(n.id,\".\").concat(s,\"'?\");let o=s.toLowerCase();(r.startsWith(o)||o.startsWith(r))&&(i=i||\"Did you mean '\".concat(n.id,\".\").concat(s,\"'?\"))}return i}function urt(e,t,r){let n={...e.options||{}};return hrt(n,r),n.log===null&&(n.log=new kM),cU(n,S4()),cU(n,t),n}function cU(e,t){for(let r in t)if(r in t){let i=t[r];g4(i)&&g4(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function hrt(e,t){t&&!(\"baseUri\"in e)&&(e.baseUri=t)}function V1(e){var t;return e?(Array.isArray(e)&&(e=e[0]),Array.isArray((t=e)===null||t===void 0?void 0:t.extensions)):!1}function j1(e){var t,r;FA(e,\"null loader\"),FA(V1(e),\"invalid loader\");let i;return Array.isArray(e)&&(i=e[1],e=e[0],e={...e,options:{...e.options,...i}}),((t=e)!==null&&t!==void 0&&t.parseTextSync||(r=e)!==null&&r!==void 0&&r.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var hU=()=>{let e=w4();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function T4(e){let t=hU();e=Array.isArray(e)?e:[e];for(let r of e){let i=j1(r);t.find(n=>i===n)||t.unshift(i)}}function fU(){return hU()}var dU=new Hf({id:\"loaders.gl\"});var frt=/\\.([^.]+)$/;async function mU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!gU(e))return null;let n=pU(e,t,{...r,nothrow:!0},i);if(n)return n;if(Du(e)&&(e=await e.slice(0,10).arrayBuffer(),n=pU(e,t,r,i)),!n&&!(r!=null&&r.nothrow))throw new Error(_U(e));return n}function pU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(!gU(e))return null;if(t&&!Array.isArray(t))return j1(t);let n=[];t&&(n=n.concat(t)),r!=null&&r.ignoreRegisteredLoaders||n.push(...fU()),prt(n);let s=drt(e,n,r,i);if(!s&&!(r!=null&&r.nothrow))throw new Error(_U(e));return s}function drt(e,t,r,i){let n=R0(e),s=U1(e),o=ty(n)||i?.url,c=null,d=\"\";if(r!=null&&r.mimeType&&(c=M4(t,r?.mimeType),d=\"match forced by supplied MIME type \".concat(r?.mimeType)),c=c||Art(t,o),d=d||(c?\"matched url \".concat(o):\"\"),c=c||M4(t,s),d=d||(c?\"matched MIME type \".concat(s):\"\"),c=c||grt(t,e),d=d||(c?\"matched initial data \".concat(yU(e)):\"\"),c=c||M4(t,r?.fallbackMimeType),d=d||(c?\"matched fallback MIME type \".concat(s):\"\"),d){var _;dU.log(1,\"selectLoader selected \".concat((_=c)===null||_===void 0?void 0:_.name,\": \").concat(d,\".\"))}return c}function gU(e){return!(e instanceof Response&&e.status===204)}function _U(e){let t=R0(e),r=U1(e),i=\"No valid loader found (\";i+=t?\"\".concat(L0.filename(t),\", \"):\"no url provided, \",i+=\"MIME type: \".concat(r?'\"'.concat(r,'\"'):\"not provided\",\", \");let n=e?yU(e):\"\";return i+=n?' first bytes: \"'.concat(n,'\"'):\"first bytes: not available\",i+=\")\",i}function prt(e){for(let t of e)j1(t)}function Art(e,t){let r=t&&frt.exec(t),i=r&&r[1];return i?mrt(e,i):null}function mrt(e,t){t=t.toLowerCase();for(let r of e)for(let i of r.extensions)if(i.toLowerCase()===t)return r;return null}function M4(e,t){for(let r of e)if(r.mimeTypes&&r.mimeTypes.includes(t)||t===\"application/x.\".concat(r.id))return r;return null}function grt(e,t){if(!t)return null;for(let r of e)if(typeof t==\"string\"){if(_rt(t,r))return r}else if(ArrayBuffer.isView(t)){if(AU(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&AU(t,0,r))return r;return null}function _rt(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(i=>e.startsWith(i))}function AU(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(n=>yrt(e,t,r,n))}function yrt(e,t,r,i){if(i instanceof ArrayBuffer)return f4(i,e,i.byteLength);switch(typeof i){case\"function\":return i(e,r);case\"string\":let n=E4(e,t,i.length);return i===n;default:return!1}}function yU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5;return typeof e==\"string\"?e.slice(0,t):ArrayBuffer.isView(e)?E4(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?E4(e,0,t):\"\"}function E4(e,t,r){if(e.byteLength1&&arguments[1]!==void 0?arguments[1]:{};return function*(){let{chunkSize:r=262144}=t,i=0;for(;iy4(n,i):t!=null&&t.fetch?t?.fetch:y4}function MU(e,t,r){if(r)return r;let i={fetch:DM(t,e),...e};if(i.url){let n=ty(i.url);i.baseUrl=n,i.queryString=$8(i.url),i.filename=L0.filename(n),i.baseUrl=L0.dirname(n)}return Array.isArray(i.loaders)||(i.loaders=null),i}function EU(e,t){if(!t&&e&&!Array.isArray(e))return e;let r;if(e&&(r=Array.isArray(e)?e:[e]),t&&t.loaders){let i=Array.isArray(t.loaders)?t.loaders:[t.loaders];r=r?[...r,...i]:i}return r&&r.length?r:null}async function OM(e,t,r,i){Xa(!i||typeof i==\"object\"),t&&!Array.isArray(t)&&!V1(t)&&(i=void 0,r=t,t=void 0),e=await e,r=r||{};let n=R0(e),o=EU(t,i),c=await mU(e,o,r);return c?(r=uU(r,c,o,n),i=MU({url:n,parse:OM,loaders:o},r,i||null),await wrt(c,e,r,i)):null}async function wrt(e,t,r,i){if(c4(e),Ru(t)){let n=t,{ok:s,redirected:o,status:c,statusText:d,type:_,url:w}=n,I=Object.fromEntries(n.headers.entries());i.response={headers:I,ok:s,redirected:o,status:c,statusText:d,type:_,url:w}}if(t=await TU(t,e,r),e.parseTextSync&&typeof t==\"string\")return r.dataType=\"text\",e.parseTextSync(t,r,i,e);if(u4(e,r))return await h4(e,t,r,i,OM);if(e.parseText&&typeof t==\"string\")return await e.parseText(t,r,i,e);if(e.parse)return await e.parse(t,r,i,e);throw Xa(!e.parseSync),new Error(\"\".concat(e.id,\" loader - no parser found and worker is disabled\"))}async function VA(e,t,r,i){!Array.isArray(t)&&!V1(t)&&(i=void 0,r=t,t=void 0);let n=DM(r),s=e;return typeof e==\"string\"&&(s=await n(e)),Du(e)&&(s=await n(e)),await OM(s,t,r)}var PU=\"3.4.14\";var{_parseImageNode:Srt}=globalThis,I4=typeof Image<\"u\",C4=typeof ImageBitmap<\"u\",Trt=!!Srt,L4=P0?!0:Trt;function IU(e){switch(e){case\"auto\":return C4||I4||L4;case\"imagebitmap\":return C4;case\"image\":return I4;case\"data\":return L4;default:throw new Error(\"@loaders.gl/images: image \".concat(e,\" not supported in this environment\"))}}function CU(){if(C4)return\"imagebitmap\";if(I4)return\"image\";if(L4)return\"data\";throw new Error(\"Install '@loaders.gl/polyfills' to parse images under Node.js\")}function Mrt(e){let t=Ert(e);if(!t)throw new Error(\"Not an image\");return t}function LU(e){switch(Mrt(e)){case\"data\":return e;case\"image\":case\"imagebitmap\":let t=document.createElement(\"canvas\"),r=t.getContext(\"2d\");if(!r)throw new Error(\"getImageData\");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error(\"getImageData\")}}function Ert(e){return typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap?\"imagebitmap\":typeof Image<\"u\"&&e instanceof Image?\"image\":e&&typeof e==\"object\"&&e.data&&e.width&&e.height?\"data\":null}var Prt=/^data:image\\/svg\\+xml/,Irt=/\\.svg((\\?|#).*)?$/;function BM(e){return e&&(Prt.test(e)||Irt.test(e))}function kU(e,t){if(BM(t)){let i=new TextDecoder().decode(e);try{typeof unescape==\"function\"&&typeof encodeURIComponent==\"function\"&&(i=unescape(encodeURIComponent(i)))}catch(s){throw new Error(s.message)}return\"data:image/svg+xml;base64,\".concat(btoa(i))}return k4(e,t)}function k4(e,t){if(BM(t))throw new Error(\"SVG cannot be parsed directly to imagebitmap\");return new Blob([new Uint8Array(e)])}async function FM(e,t,r){let i=kU(e,r),n=self.URL||self.webkitURL,s=typeof i!=\"string\"&&n.createObjectURL(i);try{return await Crt(s||i,t)}finally{s&&n.revokeObjectURL(s)}}async function Crt(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,n)=>{try{r.onload=()=>i(r),r.onerror=s=>n(new Error(\"Could not load image \".concat(e,\": \").concat(s)))}catch(s){n(s)}})}var Lrt={},RU=!0;async function DU(e,t,r){let i;BM(r)?i=await FM(e,t,r):i=k4(e,r);let n=t&&t.imagebitmap;return await krt(i,n)}async function krt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Rrt(t)||!RU)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),RU=!1}return await createImageBitmap(e)}function Rrt(e){for(let t in e||Lrt)return!1;return!0}function OU(e){return!Frt(e,\"ftyp\",4)||!(e[8]&96)?null:Drt(e)}function Drt(e){switch(Ort(e,8,12).replace(\"\\0\",\" \").trim()){case\"avif\":case\"avis\":return{extension:\"avif\",mimeType:\"image/avif\"};default:return null}}function Ort(e,t,r){return String.fromCharCode(...e.slice(t,r))}function Brt(e){return[...e].map(t=>t.charCodeAt(0))}function Frt(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Brt(t);for(let n=0;n=24&&t.getUint32(0,qf)===2303741511?{mimeType:\"image/png\",width:t.getUint32(16,qf),height:t.getUint32(20,qf)}:null}function Urt(e){let t=W1(e);return t.byteLength>=10&&t.getUint32(0,qf)===1195984440?{mimeType:\"image/gif\",width:t.getUint16(6,G1),height:t.getUint16(8,G1)}:null}function Vrt(e){let t=W1(e);return t.byteLength>=14&&t.getUint16(0,qf)===16973&&t.getUint32(2,G1)===t.byteLength?{mimeType:\"image/bmp\",width:t.getUint32(18,G1),height:t.getUint32(22,G1)}:null}function jrt(e){let t=W1(e);if(!(t.byteLength>=3&&t.getUint16(0,qf)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:n}=Grt(),s=2;for(;s+9!!zM(new DataView(e))],options:Zrt};function H1(e){if(typeof window<\"u\"&&typeof window.process==\"object\"&&window.process.type===\"renderer\"||typeof process<\"u\"&&typeof process.versions==\"object\"&&process.versions.electron)return!0;let t=typeof navigator==\"object\"&&typeof navigator.userAgent==\"string\"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf(\"Electron\")>=0)}function Po(){return!(typeof process==\"object\"&&String(process)===\"[object process]\"&&!process.browser)||H1()}var jA={self:typeof self<\"u\"&&self,window:typeof window<\"u\"&&window,global:typeof global<\"u\"&&global,document:typeof document<\"u\"&&document,process:typeof process==\"object\"&&process};var Yrt=jA.self||jA.window||jA.global,ny=jA.window||jA.self||jA.global,$rt=jA.document||{},B0=jA.process||{};var NM=typeof __VERSION__<\"u\"?__VERSION__:\"untranspiled source\",iMt=Po();var D4=globalThis;function sy(e){if(!e&&!Po())return\"Node\";if(H1(e))return\"Electron\";let r=e||(typeof navigator<\"u\"?navigator:{}).userAgent||\"\";if(r.indexOf(\"Edge\")>-1)return\"Edge\";let i=r.indexOf(\"MSIE \")!==-1,n=r.indexOf(\"Trident/\")!==-1;return i||n?\"IE\":D4.chrome?\"Chrome\":D4.safari?\"Safari\":D4.mozInnerScreenX?\"Firefox\":\"Unknown\"}function Qrt(e){try{let t=window[e],r=\"__storage_test__\";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var UM=class{constructor(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"sessionStorage\";G(this,\"storage\",void 0),G(this,\"id\",void 0),G(this,\"config\",void 0),this.storage=Qrt(i),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function zU(e){let t;return e<10?t=\"\".concat(e.toFixed(2),\"ms\"):e<100?t=\"\".concat(e.toFixed(1),\"ms\"):e<1e3?t=\"\".concat(e.toFixed(0),\"ms\"):t=\"\".concat((e/1e3).toFixed(2),\"s\"),t}function NU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return\"\".concat(\" \".repeat(r)).concat(e)}function VM(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,n=e.src.replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\");e.width>i&&(r=Math.min(r,i/e.width));let s=e.width*r,o=e.height*r,c=[\"font-size:1px;\",\"padding:\".concat(Math.floor(o/2),\"px \").concat(Math.floor(s/2),\"px;\"),\"line-height:\".concat(o,\"px;\"),\"background:url(\".concat(n,\");\"),\"background-size:\".concat(s,\"px \").concat(o,\"px;\"),\"color:transparent;\"].join(\"\");return[\"\".concat(t,\" %c+\"),c]}var jM;(function(e){e[e.BLACK=30]=\"BLACK\",e[e.RED=31]=\"RED\",e[e.GREEN=32]=\"GREEN\",e[e.YELLOW=33]=\"YELLOW\",e[e.BLUE=34]=\"BLUE\",e[e.MAGENTA=35]=\"MAGENTA\",e[e.CYAN=36]=\"CYAN\",e[e.WHITE=37]=\"WHITE\",e[e.BRIGHT_BLACK=90]=\"BRIGHT_BLACK\",e[e.BRIGHT_RED=91]=\"BRIGHT_RED\",e[e.BRIGHT_GREEN=92]=\"BRIGHT_GREEN\",e[e.BRIGHT_YELLOW=93]=\"BRIGHT_YELLOW\",e[e.BRIGHT_BLUE=94]=\"BRIGHT_BLUE\",e[e.BRIGHT_MAGENTA=95]=\"BRIGHT_MAGENTA\",e[e.BRIGHT_CYAN=96]=\"BRIGHT_CYAN\",e[e.BRIGHT_WHITE=97]=\"BRIGHT_WHITE\"})(jM||(jM={}));function UU(e){return typeof e==\"string\"?jM[e.toUpperCase()]||jM.WHITE:e}function VU(e,t,r){return!Po&&typeof e==\"string\"&&(t&&(t=UU(t),e=\"\\x1B[\".concat(t,\"m\").concat(e,\"\\x1B[39m\")),r&&(t=UU(r),e=\"\\x1B[\".concat(r+10,\"m\").concat(e,\"\\x1B[49m\"))),e}function jU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[\"constructor\"],r=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(r);for(let n of i)typeof e[n]==\"function\"&&(t.find(s=>n===s)||(e[n]=e[n].bind(e)))}function oy(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function F0(){let e;if(Po&&\"performance\"in ny){var t,r;e=ny===null||ny===void 0||(t=ny.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if(\"hrtime\"in B0){var i;let n=B0===null||B0===void 0||(i=B0.hrtime)===null||i===void 0?void 0:i.call(B0);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}var ay={debug:Po&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Xrt={enabled:!0,level:0};function Bu(){}var GU={},WU={once:!0},Zf=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:\"\"};G(this,\"id\",void 0),G(this,\"VERSION\",NM),G(this,\"_startTs\",F0()),G(this,\"_deltaTs\",F0()),G(this,\"_storage\",void 0),G(this,\"userData\",{}),G(this,\"LOG_THROTTLE_TIMEOUT\",0),this.id=t,this.userData={},this._storage=new UM(\"__probe-\".concat(this.id,\"__\"),Xrt),this.timeStamp(\"\".concat(this.id,\" started\")),jU(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F0()-this._startTs).toPrecision(10))}getDelta(){return Number((F0()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){oy(t,r)}warn(t){return this._getLogFunction(0,t,ay.warn,arguments,WU)}error(t){return this._getLogFunction(0,t,ay.error,arguments)}deprecated(t,r){return this.warn(\"`\".concat(t,\"` is deprecated and will be removed in a later version. Use `\").concat(r,\"` instead\"))}removed(t,r){return this.error(\"`\".concat(t,\"` has been removed. Use `\").concat(r,\"` instead\"))}probe(t,r){return this._getLogFunction(t,r,ay.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,ay.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){for(var i=arguments.length,n=new Array(i>2?i-2:0),s=2;s2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=HU({logLevel:t,message:r,opts:i}),{collapsed:s}=i;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},i,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,\"\",console.groupEnd||Bu)}withGroup(t,r,i){this.group(t,r)();try{i()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=qU(t)}_getLogFunction(t,r,i,n,s){if(this._shouldLog(t)){s=HU({logLevel:t,message:r,args:n,opts:s}),i=i||s.method,oy(i),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=F0();let o=s.tag||s.message;if(s.once)if(!GU[o])GU[o]=F0();else return Bu;return r=Krt(this.id,s.message,s),i.bind(console,r,...s.args)}return Bu}};G(Zf,\"VERSION\",NM);function qU(e){if(!e)return 0;let t;switch(typeof e){case\"number\":t=e;break;case\"object\":t=e.logLevel||e.priority||0;break;default:return 0}return oy(Number.isFinite(t)&&t>=0),t}function HU(e){let{logLevel:t,message:r}=e;e.logLevel=qU(t);let i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==r;);switch(typeof t){case\"string\":case\"function\":r!==void 0&&i.unshift(r),e.message=t;break;case\"object\":Object.assign(e,t);break;default:}typeof e.message==\"function\"&&(e.message=e.message());let n=typeof e.message;return oy(n===\"string\"||n===\"object\"),Object.assign(e,{args:i},e.opts)}function Krt(e,t,r){if(typeof t==\"string\"){let i=r.time?NU(zU(r.total)):\"\";t=r.time?\"\".concat(e,\": \").concat(i,\" \").concat(t):\"\".concat(e,\": \").concat(t),t=VU(t,r.color,r.background)}return t}function Jrt(e){let{image:t,message:r=\"\",scale:i=1}=e;return console.warn(\"removed\"),Bu}function tit(e){let{image:t,message:r=\"\",scale:i=1}=e;if(typeof t==\"string\"){let s=new Image;return s.onload=()=>{let o=VM(s,r,i);console.log(...o)},s.src=t,Bu}let n=t.nodeName||\"\";if(n.toLowerCase()===\"img\")return console.log(...VM(t,r,i)),Bu;if(n.toLowerCase()===\"canvas\"){let s=new Image;return s.onload=()=>console.log(...VM(s,r,i)),s.src=t.toDataURL(),Bu}return Bu}function eit(e){for(let t in e)for(let r in e[t])return r||\"untitled\";return\"empty\"}var BMt=new Zf({id:\"@probe.gl/log\"});var er=new Zf({id:\"deck\"});var O4={};function ZU(e){O4=e}function Rs(e,t,r,i){er.level>0&&O4[e]&&O4[e].call(null,t,r,i)}function rit(e){let t=e[0],r=e[e.length-1];return t===\"{\"&&r===\"}\"||t===\"[\"&&r===\"]\"}var YU={id:\"JSON\",name:\"JSON\",module:\"\",version:\"\",options:{},extensions:[\"json\",\"geojson\"],mimeTypes:[\"application/json\",\"application/geo+json\"],testText:rit,parseTextSync:JSON.parse};function iit(){let e=\"8.9.33\",t=globalThis.deck&&globalThis.deck.VERSION;if(t&&t!==e)throw new Error(\"deck.gl - multiple versions detected: \".concat(t,\" vs \").concat(e));return t||(er.log(1,\"deck.gl \".concat(e))(),globalThis.deck={...globalThis.deck,VERSION:e,version:e,log:er,_registerLoggers:ZU},T4([YU,[R4,{imagebitmap:{premultiplyAlpha:\"none\"}}]])),e}var $U=iit();var Wr={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(Wr,\"IDENTITY\",{get:()=>(er.deprecated(\"COORDINATE_SYSTEM.IDENTITY\",\"COORDINATE_SYSTEM.CARTESIAN\")(),0)});var Ka={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},ta={common:0,meters:1,pixels:2},B4={click:{handler:\"onClick\"},panstart:{handler:\"onDragStart\"},panmove:{handler:\"onDrag\"},panend:{handler:\"onDragEnd\"}};var je=new Zf({id:\"luma.gl\"});function Qs(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}var nit=\"Invalid WebGLRenderingContext\";var sit=\"Requires WebGL2\";function Qd(e){return typeof WebGLRenderingContext<\"u\"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&Number.isFinite(e._version))}function hr(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function F4(e){return hr(e)?e:null}function Xd(e){return Qs(Qd(e),nit),e}function Qn(e){return Qs(hr(e),sit),e}var q1={};function oit(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function ait(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function lit(e,t){q1[e]=!0,t!==void 0&&oit(t)}function cit(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(q1[i]=!0);while(i!==0);for(i in q1)if(q1[i])return delete q1[i],parseInt(i,10);return 0}}var Z1=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i{ait(\"OESVertexArrayObject emulation library context restored\"),r.reset_()},!0),this.reset_()};z0.prototype.VERTEX_ARRAY_BINDING_OES=34229;z0.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;ihr(e)?void 0:0,yit={3074:e=>hr(e)?void 0:36064,[dit]:e=>hr(e)?void 0:pit,35977:Nn,32937:Nn,[Ait]:(e,t)=>{let r=hr(e)?e.getExtension(hit):e.getExtension(uit);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[git]:(e,t)=>{let r=e.getExtension(JU);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[_it]:(e,t)=>{let r=e.getExtension(JU);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[mit]:(e,t)=>{let r=e.luma.extensions[fit];return r?t(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},32883:Nn,35071:Nn,37447:Nn,36063:(e,t)=>{if(!hr(e)){let r=e.getExtension(KU);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},35379:Nn,35374:Nn,35377:Nn,34852:e=>{if(!hr(e)){let t=e.getExtension(KU);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},36203:e=>e.getExtension(XU)?2147483647:65535,33001:e=>e.getExtension(XU)?16777216:65535,33e3:e=>16777216,37157:Nn,35373:Nn,35657:Nn,36183:Nn,37137:Nn,34045:Nn,35978:Nn,35979:Nn,35968:Nn,35376:Nn,35375:Nn,35659:Nn,37154:Nn,35371:Nn,35658:Nn,35076:Nn,35077:Nn,35380:Nn};function tV(e,t,r){let i=yit[r],n=typeof i==\"function\"?i(e,t,r):i;return n!==void 0?n:t(r)}var vit=\"OES_vertex_array_object\",eV=\"ANGLE_instanced_arrays\",xit=\"WEBGL_draw_buffers\",bit=\"EXT_disjoint_timer_query\",wit=\"EXT_texture_filter_anisotropic\",Sit=\"VertexArray requires WebGL2 or OES_vertex_array_object extension\";function Tit(e,t){return{webgl2:hr(e),ext:e.getExtension(t)}}var z4={[vit]:{meta:{suffix:\"OES\"},createVertexArray:()=>{Qs(!1,Sit)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[eV]:{meta:{suffix:\"ANGLE\"},vertexAttribDivisor(e,t){Qs(t===0,\"WebGL instanced rendering not supported\")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[xit]:{meta:{suffix:\"WEBGL\"},drawBuffers:()=>{Qs(!1)}},[bit]:{meta:{suffix:\"EXT\"},createQuery:()=>{Qs(!1)},deleteQuery:()=>{Qs(!1)},beginQuery:()=>{Qs(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:()=>{}}},GM={readBuffer:(e,t,r)=>{hr(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:n,ext:s}=Tit(e,eV),o;switch(i){case 35069:o=n?void 0:!1;break;case 35070:o=!n&&!s?0:void 0;break;default:}return o!==void 0?o:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!hr(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,n)=>{if(!hr(e))switch(n){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,n)},getTexParameter(e,t,r,i){switch(i){case 34046:let{extensions:n}=e.luma,s=n[wit];i=s&&s.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:tV,hint(e,t,r,i){return t(r,i)}};function rV(e){e.luma=e.luma||{};let{luma:t}=e;return t.polyfilled||(QU(e),Mit(e),Pit(e,z4),Eit(e,{target:t,target2:e}),t.polyfilled=!0),e}globalThis.polyfillContext=rV;function Mit(e){e.luma.extensions={};let t=e.getSupportedExtensions()||[];for(let r of t)e.luma[r]=e.getExtension(r)}function Eit(e,t){let{target:r,target2:i}=t;Object.keys(GM).forEach(n=>{if(typeof GM[n]==\"function\"){let s=e[n]?e[n].bind(e):()=>{},o=GM[n].bind(null,e,s);r[n]=o,i[n]=o}})}function Pit(e,t){for(let r of Object.getOwnPropertyNames(t))r!==\"overrides\"&&Iit(e,{extension:r,target:e.luma,target2:e})}function Iit(e,t){let{extension:r,target:i,target2:n}=t,s=z4[r];Qs(s);let{meta:o={}}=s,{suffix:c=\"\"}=o,d=e.getExtension(r);for(let _ of Object.keys(s)){let w=\"\".concat(_).concat(c),I=null;_===\"meta\"||typeof e[_]==\"function\"||(d&&typeof d[w]==\"function\"?I=function(){return d[w](...arguments)}:typeof s[_]==\"function\"&&(I=s[_].bind(i))),I&&(i[_]=I,n[_]=I)}}var $1={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,36006:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],3333:4,3317:4,37440:!1,37441:!1,37443:37444,35723:4352,36010:null,35977:!1,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},GA=(e,t,r)=>t?e.enable(r):e.disable(r),iV=(e,t,r)=>e.hint(r,t),Zc=(e,t,r)=>e.pixelStorei(r,t),Cit=(e,t)=>{let r=hr(e)?36009:36160;return e.bindFramebuffer(r,t)},Lit=(e,t)=>e.bindFramebuffer(36008,t);function Y1(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var nV={3042:GA,32773:(e,t)=>e.blendColor(...t),32777:\"blendEquation\",34877:\"blendEquation\",32969:\"blendFunc\",32968:\"blendFunc\",32971:\"blendFunc\",32970:\"blendFunc\",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:GA,2885:(e,t)=>e.cullFace(t),2929:GA,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:GA,35723:iV,36006:Cit,2886:(e,t)=>e.frontFace(t),33170:iV,2849:(e,t)=>e.lineWidth(t),32823:GA,32824:\"polygonOffset\",10752:\"polygonOffset\",35977:GA,32938:\"sampleCoverage\",32939:\"sampleCoverage\",3089:GA,3088:(e,t)=>e.scissor(...t),2960:GA,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),2962:\"stencilFuncFront\",2967:\"stencilFuncFront\",2963:\"stencilFuncFront\",34816:\"stencilFuncBack\",36003:\"stencilFuncBack\",36004:\"stencilFuncBack\",2964:\"stencilOpFront\",2965:\"stencilOpFront\",2966:\"stencilOpFront\",34817:\"stencilOpBack\",34818:\"stencilOpBack\",34819:\"stencilOpBack\",2978:(e,t)=>e.viewport(...t),3333:Zc,3317:Zc,37440:Zc,37441:Zc,37443:Zc,3330:Zc,3332:Zc,3331:Zc,36010:Lit,3314:Zc,32878:Zc,3316:Zc,3315:Zc,32877:Zc,framebuffer:(e,t)=>{let r=t&&\"handle\"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{t=Y1(t)?t:[t,t],e.blendEquationSeparate(...t)},blendFunc:(e,t)=>{t=Y1(t)&&t.length===2?[...t,...t]:t,e.blendFuncSeparate(...t)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Y1(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Y1(t)&&t.length===3?[...t,...t]:t;let[r,i,n,s,o,c]=t;e.stencilFuncSeparate(1028,r,i,n),e.stencilFuncSeparate(1029,s,o,c)},stencilOp:(e,t)=>{t=Y1(t)&&t.length===3?[...t,...t]:t;let[r,i,n,s,o,c]=t;e.stencilOpSeparate(1028,r,i,n),e.stencilOpSeparate(1029,s,o,c)},viewport:(e,t)=>e.viewport(...t)};function Ds(e,t,r){return t[e]!==void 0?t[e]:r[e]}var sV={blendEquation:(e,t,r)=>e.blendEquationSeparate(Ds(32777,t,r),Ds(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(Ds(32969,t,r),Ds(32968,t,r),Ds(32971,t,r),Ds(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(Ds(32824,t,r),Ds(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(Ds(32938,t,r),Ds(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,Ds(2962,t,r),Ds(2967,t,r),Ds(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,Ds(34816,t,r),Ds(36003,t,r),Ds(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,Ds(2964,t,r),Ds(2965,t,r),Ds(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,Ds(34817,t,r),Ds(34818,t,r),Ds(34819,t,r))},N4={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({36006:r,36010:r});case 36009:return e({36006:r});case 36008:return e({36010:r});default:return null}},blendColor:(e,t,r,i,n)=>e({32773:new Float32Array([t,r,i,n])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,r)=>e({32777:t,34877:r}),blendFunc:(e,t,r)=>e({32969:t,32968:r,32971:t,32970:r}),blendFuncSeparate:(e,t,r,i,n)=>e({32969:t,32968:r,32971:i,32970:n}),clearColor:(e,t,r,i,n)=>e({3106:new Float32Array([t,r,i,n])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,r,i,n)=>e({3107:[t,r,i,n]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,r)=>e({2928:new Float32Array([t,r])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,r)=>e({32824:t,10752:r}),sampleCoverage:(e,t,r)=>e({32938:t,32939:r}),scissor:(e,t,r,i,n)=>e({3088:new Int32Array([t,r,i,n])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({2962:t,2967:r,2963:i,34816:t,36003:r,36004:i}),stencilFuncSeparate:(e,t,r,i,n)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:n}),stencilOp:(e,t,r,i)=>e({2964:t,2965:r,2966:i,34817:t,34818:r,34819:i}),stencilOpSeparate:(e,t,r,i,n)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:n}),viewport:(e,t,r,i,n)=>e({2978:[t,r,i,n]})},Yf=(e,t)=>e.isEnabled(t),U4={3042:Yf,2884:Yf,2929:Yf,3024:Yf,32823:Yf,32926:Yf,32928:Yf,3089:Yf,2960:Yf,35977:Yf};function V4(e){for(let t in e)return!1;return!0}function oV(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let n=0;n{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=r?ly(t):Object.assign({},$1),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){Qs(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];bl(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(let s in t){Qs(s!==void 0);let o=t[s],c=this.cache[s];oV(o,c)||(r=!0,i=c,n&&!(s in n)&&(n[s]=c),this.cache[s]=o)}return{valueChanged:r,oldValue:i}}};function WM(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{enable:r=!0,copyState:i}=t;if(Qs(i!==void 0),!e.state){let{polyfillContext:n}=globalThis;n&&n(e),e.state=new j4(e,{copyState:i}),Rit(e);for(let s in N4){let o=N4[s];kit(e,s,o)}aV(e,\"getParameter\"),aV(e,\"isEnabled\")}return e.state.enable=r,e}function G4(e){e.state||WM(e,{copyState:!1}),e.state.push()}function HM(e){Qs(e.state),e.state.pop()}function bl(e,t){if(Qs(Qd(e),\"setParameters requires a WebGL context\"),V4(t))return;let r={};for(let n in t){let s=Number(n),o=nV[n];o&&(typeof o==\"string\"?r[o]=!0:o(e,t[n],s))}let i=e.state&&e.state.cache;if(i)for(let n in r){let s=sV[n];s(e,t,i)}}function ly(e,t){if(t=t||$1,typeof t==\"number\"){let n=t,s=U4[n];return s?s(e,n):e.getParameter(n)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let n of r){let s=U4[n];i[n]=s?s(e,Number(n)):e.getParameter(Number(n))}return i}function qM(e){bl(e,$1)}function An(e,t,r){if(V4(t))return r(e);let{nocatch:i=!0}=t;G4(e),bl(e,t);let n;if(i)n=r(e),HM(e);else try{n=r(e)}finally{HM(e)}return n}function wl(e){let{luma:t}=e;if(e.canvas&&t){let r=t.canvasSizeInfo,i=\"clientWidth\"in r?r.clientWidth:e.canvas.clientWidth;return i?e.drawingBufferWidth/i:1}return 1}function cy(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=wl(e),n=e.drawingBufferWidth,s=e.drawingBufferHeight;return Dit(t,i,n,s,r)}function uV(e){let t=typeof window>\"u\"?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}function Dit(e,t,r,i,n){let s=lV(e[0],t,r),o=cV(e[1],t,i,n),c=lV(e[0]+1,t,r),d=c===r-1?c:c-1;c=cV(e[1]+1,t,i,n);let _;return n?(c=c===0?c:c+1,_=o,o=c):_=c===i-1?c:c-1,{x:s,y:o,width:Math.max(d-s+1,1),height:Math.max(_-o+1,1)}}function lV(e,t,r){return Math.min(Math.round(e*t),r-1)}function cV(e,t,r,i){return i?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}var W4=Po(),Oit=W4&&typeof document<\"u\",hV={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function uy(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qs(W4,`createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),e=Object.assign({},hV,e);let{width:t,height:r}=e;function i(c){if(e.throwOnError)throw new Error(c);return console.error(c),null}e.onError=i;let n,{canvas:s}=e,o=Fit({canvas:s,width:t,height:r,onError:i});return n=Bit(o,e),n?(n=N0(n,e),zit(n),n):null}function N0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||Nit(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{},t=Object.assign({},hV,t);let{manageState:r,debug:i}=t;return r&&WM(e,{copyState:!1,log:function(){for(var n=arguments.length,s=new Array(n),o=0;o1&&arguments[1]!==void 0?arguments[1]:{};if(e.canvas){let i=uV(t.useDevicePixels);Uit(e,i,t);return}let r=e.getExtension(\"STACKGL_resize_drawingbuffer\");r&&\"width\"in t&&\"height\"in t&&r.resize(t.width,t.height)}function Bit(e,t){let{onError:r}=t,i=null,n=d=>i=d.statusMessage||i;e.addEventListener(\"webglcontextcreationerror\",n,!1);let{webgl1:s=!0,webgl2:o=!0}=t,c=null;return o&&(c=c||e.getContext(\"webgl2\",t),c=c||e.getContext(\"experimental-webgl2\",t)),s&&(c=c||e.getContext(\"webgl\",t),c=c||e.getContext(\"experimental-webgl\",t)),e.removeEventListener(\"webglcontextcreationerror\",n,!1),c?(t.onContextLost&&e.addEventListener(\"webglcontextlost\",t.onContextLost,!1),t.onContextRestored&&e.addEventListener(\"webglcontextrestored\",t.onContextRestored,!1),c):r(\"Failed to create \".concat(o&&!s?\"WebGL2\":\"WebGL\",\" context: \").concat(i||\"Unknown error\"))}function Fit(e){let{canvas:t,width:r=800,height:i=600,onError:n}=e,s;return typeof t==\"string\"?(Oit&&document.readyState===\"complete\"||n(\"createGLContext called on canvas '\".concat(t,\"' before page was loaded\")),s=document.getElementById(t)):t?s=t:(s=document.createElement(\"canvas\"),s.id=\"lumagl-canvas\",s.style.width=Number.isFinite(r)?\"\".concat(r,\"px\"):\"100%\",s.style.height=Number.isFinite(i)?\"\".concat(i,\"px\"):\"100%\",document.body.insertBefore(s,document.body.firstChild)),s}function zit(e){let t=hr(e)?\"WebGL2\":\"WebGL1\",r=fV(e),i=r?\"(\".concat(r.vendor,\",\").concat(r.renderer,\")\"):\"\",n=e.debug?\" debug\":\"\";je.info(1,\"\".concat(t).concat(n,\" context \").concat(i))()}function Nit(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?2:1}function Uit(e,t,r){let i=\"width\"in r?r.width:e.canvas.clientWidth,n=\"height\"in r?r.height:e.canvas.clientHeight;(!i||!n)&&(je.log(1,\"Canvas clientWidth/clientHeight is 0\")(),t=1,i=e.canvas.width||1,n=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};let s=e.luma.canvasSizeInfo;if(s.clientWidth!==i||s.clientHeight!==n||s.devicePixelRatio!==t){let o=t,c=Math.floor(i*o),d=Math.floor(n*o);e.canvas.width=c,e.canvas.height=d,(e.drawingBufferWidth!==c||e.drawingBufferHeight!==d)&&(je.warn(\"Device pixel ratio clamped\")(),o=Math.min(e.drawingBufferWidth/i,e.drawingBufferHeight/n),e.canvas.width=Math.floor(i*o),e.canvas.height=Math.floor(n*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:i,clientHeight:n,devicePixelRatio:t})}}function Q1(){let e;if(typeof window<\"u\"&&window.performance)e=window.performance.now();else if(typeof process<\"u\"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var U0=class{constructor(t,r){G(this,\"name\",void 0),G(this,\"type\",void 0),G(this,\"sampleSize\",1),G(this,\"time\",void 0),G(this,\"count\",void 0),G(this,\"samples\",void 0),G(this,\"lastTiming\",void 0),G(this,\"lastSampleTime\",void 0),G(this,\"lastSampleCount\",void 0),G(this,\"_count\",0),G(this,\"_time\",0),G(this,\"_samples\",0),G(this,\"_startTime\",0),G(this,\"_timerPending\",!1),this.name=t,this.type=r,this.reset()}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Q1(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Q1()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var $f=class{constructor(t){G(this,\"id\",void 0),G(this,\"stats\",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"count\";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t in this.stats)this.stats[t].reset();return this}forEach(t){for(let r in this.stats)t(this.stats[r])}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){if(!t||!t.name)return null;let{name:r,type:i}=t;return this.stats[r]||(t instanceof U0?this.stats[r]=t:this.stats[r]=new U0(r,i)),this.stats[r]}};var X1=\"8.5.21\",Vit=\"set luma.log.level=1 (or higher) to trace rendering\",q4=class{constructor(){this.stats=new Map}get(t){return this.stats.has(t)||this.stats.set(t,new $f({id:t})),this.stats.get(t)}},Fu=new q4;if(globalThis.luma&&globalThis.luma.VERSION!==X1)throw new Error(\"luma.gl - multiple VERSIONs detected: \".concat(globalThis.luma.VERSION,\" vs \").concat(X1));globalThis.luma||(Po()&&je.log(1,\"luma.gl \".concat(X1,\" - \").concat(Vit))(),globalThis.luma=globalThis.luma||{VERSION:X1,version:X1,log:je,stats:Fu,globals:{modules:{},nodeIO:{}}});var nPt=globalThis.luma;function Z4(e){return typeof window<\"u\"&&window.requestAnimationFrame?window.requestAnimationFrame(e):setTimeout(e,1e3/60)}function Y4(e){return typeof window<\"u\"&&window.cancelAnimationFrame?window.cancelAnimationFrame(e):clearTimeout(e)}function _e(e,t){if(!e)throw new Error(t||\"luma.gl: assertion failed.\")}function ZM(e,t){if(typeof t!=\"string\")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\\./,\"\");let i=e[t];return _e(i!==void 0,\"Accessing undefined constant GL.\".concat(t)),i}function zu(e,t){t=Number(t);for(let r in e)if(e[r]===t)return\"GL.\".concat(r);return String(t)}var $4={};function ea(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"id\";$4[e]=$4[e]||1;let t=$4[e]++;return\"\".concat(e,\"-\").concat(t)}function Q4(e){return _e(typeof e==\"number\",\"Input must be a number\"),e&&(e&e-1)===0}function Qf(e){let t=!0;for(let r in e){t=!1;break}return t}function YM(e,t,r,i){let n=\"See luma.gl \".concat(r,\" Upgrade Guide at https://luma.gl/docs/upgrade-guide\"),s=Object.getPrototypeOf(e);i.forEach(o=>{s.methodName||(s[o]=()=>{throw je.removed(\"Calling removed method \".concat(t,\".\").concat(o,\": \"),n)(),new Error(o)})})}var hy=\"Resource subclass must define virtual methods\",Xs=class{get[Symbol.toStringTag](){return\"Resource\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Xd(t);let{id:i,userData:n={}}=r;this.gl=t,this.gl2=t,this.id=i||ea(this[Symbol.toStringTag]),this.userData=n,this._bound=!1,this._handle=r.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}toString(){return\"\".concat(this[Symbol.toStringTag]||this.constructor.name,\"(\").concat(this.id,\")\")}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.delete()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!=\"function\")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=ZM(this.gl,t),_e(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let s=hr(this.gl);if(!((!(\"webgl2\"in n)||s)&&(!(\"extension\"in n)||this.gl.getExtension(n.extension)))){let c=n.webgl1,d=\"webgl2\"in n?n.webgl2:n.webgl1;return s?d:c}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,n=this.constructor.PARAMETERS||{},s=hr(this.gl),o={},c=r||Object.keys(n);for(let d of c){let _=n[d];if(_&&(!(\"webgl2\"in _)||s)&&(!(\"extension\"in _)||this.gl.getExtension(_.extension))){let I=i?zu(this.gl,d):d;o[I]=this.getParameter(d,t),i&&_.type===\"GLenum\"&&(o[I]=zu(this.gl,o[I]))}}return o}setParameter(t,r){t=ZM(this.gl,t),_e(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let s=hr(this.gl);if(!((!(\"webgl2\"in n)||s)&&(!(\"extension\"in n)||this.gl.getExtension(n.extension))))throw new Error(\"Parameter not available on this platform\");n.type===\"GLenum\"&&(r=ZM(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return YM(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(hy)}_deleteHandle(){throw new Error(hy)}_bindHandle(t){throw new Error(hy)}_getOptsFromHandle(){throw new Error(hy)}_getParameter(t,r){throw new Error(hy)}_setParameter(t,r){throw new Error(hy)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_addStats(){let t=this[Symbol.toStringTag],r=Fu.get(\"Resource Counts\");r.get(\"Resources Created\").incrementCount(),r.get(\"\".concat(t,\"s Created\")).incrementCount(),r.get(\"\".concat(t,\"s Active\")).incrementCount()}_removeStats(){let t=this[Symbol.toStringTag];Fu.get(\"Resource Counts\").get(\"\".concat(t,\"s Active\")).decrementCount()}_trackAllocatedMemory(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._trackAllocatedMemoryForContext(t,r),this._trackAllocatedMemoryForContext(t,r,this.gl.canvas&&this.gl.canvas.id),this.byteLength=t}_trackAllocatedMemoryForContext(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"\",n=Fu.get(\"Memory Usage\".concat(i));n.get(\"GPU Memory\").addCount(t),n.get(\"\".concat(r,\" Memory\")).addCount(t)}_trackDeallocatedMemory(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._trackDeallocatedMemoryForContext(t),this._trackDeallocatedMemoryForContext(t,this.gl.canvas&&this.gl.canvas.id),this.byteLength=0}_trackDeallocatedMemoryForContext(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\",i=Fu.get(\"Memory Usage\".concat(r));i.get(\"GPU Memory\").subtractCount(this.byteLength),i.get(\"\".concat(t,\" Memory\")).subtractCount(this.byteLength)}};var jit=\"Failed to deduce GL constant from typed array\";function K1(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(jit)}}function WA(e){let{clamped:t=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return t?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error(\"Failed to deduce typed array type from GL constant\")}}function dV(e){let{data:t,width:r,height:i,bytesPerPixel:n=4,temp:s}=e,o=r*n;s=s||new Uint8Array(o);for(let c=0;cthis._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return e.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return e.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=J1(\"Accessor\",t,Wit),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index==\"boolean\"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this}};var AV=10,mV={offset:\"accessor.offset\",stride:\"accessor.stride\",type:\"accessor.type\",size:\"accessor.size\",divisor:\"accessor.divisor\",normalized:\"accessor.normalized\",integer:\"accessor.integer\",instanced:\"accessor.divisor\",isInstanced:\"accessor.divisor\"},Hit={removedProps:{},replacedProps:{bytes:\"byteLength\"},deprecatedProps:mV},qit={removedProps:mV},Nr=class extends Xs{get[Symbol.toStringTag](){return\"Buffer\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Buffer\",\"v6.0\",[\"layout\",\"setLayout\",\"getIndexedParameter\"]),this.target=r.target||(this.gl.webgl2?36662:34962),this.initialize(r),Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Sl.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Sl.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=J1(\"Buffer\",t,Hit),this.usage=t.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.offset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=J1(\"Buffer\",t,qit),\"accessor\"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new Sl(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:r,offset:i=0,srcOffset:n=0}=t,s=t.byteLength||t.length;_e(r);let o=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(o,this.handle),n!==0||s!==void 0?(Qn(this.gl),this.gl.bufferSubData(this.target,i,r,n,s)):this.gl.bufferSubData(o,i,r),this.gl.bindBuffer(o,null),this.debugData=null,this._inferType(r),this}copyData(t){let{sourceBuffer:r,readOffset:i=0,writeOffset:n=0,size:s}=t,{gl:o}=this;return Qn(o),o.bindBuffer(36662,r.handle),o.bindBuffer(36663,this.handle),o.copyBufferSubData(36662,36663,i,n,s),o.bindBuffer(36662,null),o.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:t=null,srcByteOffset:r=0,dstOffset:i=0,length:n=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qn(this.gl);let s=WA(this.accessor.type||5126,{clamped:!1}),o=this._getAvailableElementCount(r),c=i,d,_;t?(_=t.length,d=_-c):(d=Math.min(o,n||o),_=c+d);let w=Math.min(o,d);return n=n||w,_e(n<=w),t=t||new s(_),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,r,t,i,n),this.gl.bindBuffer(36662,null),t}bind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index,offset:i=0,size:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?n!==void 0?this.gl.bindBufferRange(t,r,this.handle,i,n):(_e(i===0),this.gl.bindBufferBase(t,r,this.handle)):this.gl.bindBuffer(t,this.handle),this}unbind(){let{target:t=this.target,index:r=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t===35345||t===35982?this.gl.bindBufferBase(t,r,null):this.gl.bindBuffer(t,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(AV,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;_e(ArrayBuffer.isView(t)),this._trackDeallocatedMemory();let n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.usage),this.gl.bufferSubData(n,r,t),this.gl.bindBuffer(n,null),this.debugData=t.slice(0,AV),this.bytesUsed=i,this._trackAllocatedMemory(i);let s=K1(t);return _e(s),this.setAccessor(new Sl(this.accessor,{type:s})),this}_setByteLength(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;_e(t>=0),this._trackDeallocatedMemory();let i=t;t===0&&(i=new Float32Array(0));let n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,r),this.gl.bindBuffer(n,null),this.usage=r,this.debugData=null,this.bytesUsed=t,this._trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount(t){let r=WA(this.accessor.type||5126,{clamped:!1}),i=t/r.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(t){this.accessor.type||this.setAccessor(new Sl(this.accessor,{type:K1(t)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter(t){this.gl.bindBuffer(this.target,this.handle);let r=this.gl.getBufferParameter(this.target,t);return this.gl.bindBuffer(this.target,null),r}get type(){return je.deprecated(\"Buffer.type\",\"Buffer.accessor.type\")(),this.accessor.type}get bytes(){return je.deprecated(\"Buffer.bytes\",\"Buffer.byteLength\")(),this.byteLength}setByteLength(t){return je.deprecated(\"setByteLength\",\"reallocate\")(),this.reallocate(t)}updateAccessor(t){return je.deprecated(\"updateAccessor(...)\",\"setAccessor(new Accessor(buffer.accessor, ...)\")(),this.accessor=new Sl(this.accessor,t),this}};var $M={6407:{dataFormat:6407,types:[5121,33635]},6408:{dataFormat:6408,types:[5121,32819,32820]},6406:{dataFormat:6406,types:[5121]},6409:{dataFormat:6409,types:[5121]},6410:{dataFormat:6410,types:[5121]},33326:{dataFormat:6403,types:[5126],gl2:!0},33328:{dataFormat:33319,types:[5126],gl2:!0},34837:{dataFormat:6407,types:[5126],gl2:!0},34836:{dataFormat:6408,types:[5126],gl2:!0}},QM={6403:1,36244:1,33319:2,33320:2,6407:3,36248:3,6408:4,36249:4,6402:1,34041:1,6406:1,6409:1,6410:2},XM={5126:4,5125:4,5124:4,5123:2,5122:2,5131:2,5120:1,5121:1};function gV(e,t){let r=$M[t];if(!r)return!1;if(r.gl1===void 0&&r.gl2===void 0)return!0;let i=hr(e)&&r.gl2||r.gl1;return typeof i==\"string\"?e.getExtension(i):i}function _V(e,t){let r=$M[t];switch(r&&r.types[0]){case 5126:return e.getExtension(\"OES_texture_float_linear\");case 5131:return e.getExtension(\"OES_texture_half_float_linear\");default:return!0}}var Zit=[9729,9728],yV=globalThis.WebGLBuffer||function(){},Ja=class extends Xs{get[Symbol.toStringTag](){return\"Texture\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{format:i,linearFiltering:n}=r,s=!0;return i&&(s=s&&gV(t,i),s=s&&(!n||_V(t,i))),s}constructor(t,r){let{id:i=ea(\"texture\"),handle:n,target:s}=r;super(t,{id:i,handle:n}),this.target=s,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return\"Texture(\".concat(this.id,\",\").concat(this.width,\"x\").concat(this.height,\")\")}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.data;if(r instanceof Promise)return r.then(K=>this.initialize(Object.assign({},t,{pixels:K,data:K}))),this;let i=typeof HTMLVideoElement<\"u\"&&r instanceof HTMLVideoElement;if(i&&r.readyStatethis.initialize(t)),this;let{pixels:n=null,format:s=6408,border:o=0,recreate:c=!1,parameters:d={},pixelStore:_={},textureUnit:w=void 0}=t;r||(r=n);let{width:I,height:R,dataFormat:N,type:j,compressed:Y=!1,mipmaps:it=!0}=t,{depth:Z=0}=t;return{width:I,height:R,compressed:Y,dataFormat:N,type:j}=this._deduceParameters({format:s,type:j,dataFormat:N,compressed:Y,data:r,width:I,height:R}),this.width=I,this.height=R,this.depth=Z,this.format=s,this.type=j,this.dataFormat=N,this.border=o,this.textureUnit=w,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),it&&this._isNPOT()&&(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),it=!1,this._updateForNPOT(d)),this.mipmaps=it,this.setImageData({data:r,width:I,height:R,depth:Z,format:s,type:j,dataFormat:N,border:o,mipmaps:it,parameters:_,compressed:Y}),it&&this.generateMipmap(),this.setParameters(d),c&&(this.data=r),i&&(this._video={video:r,parameters:d,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(je.warn(\"texture: \".concat(this,\" is Non-Power-Of-Two, disabling mipmaping\"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),An(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){this._trackDeallocatedMemory(\"Texture\");let{target:r=this.target,pixels:i=null,level:n=0,format:s=this.format,border:o=this.border,offset:c=0,parameters:d={}}=t,{data:_=null,type:w=this.type,width:I=this.width,height:R=this.height,dataFormat:N=this.dataFormat,compressed:j=!1}=t;_||(_=i),{type:w,dataFormat:N,compressed:j,width:I,height:R}=this._deduceParameters({format:s,type:w,dataFormat:N,compressed:j,data:_,width:I,height:R});let{gl:Y}=this;Y.bindTexture(this.target,this.handle);let it=null;({data:_,dataType:it}=this._getDataType({data:_,compressed:j}));let Z,K=0;if(An(this.gl,d,()=>{switch(it){case\"null\":Y.texImage2D(r,n,s,I,R,o,N,w,_);break;case\"typed-array\":Y.texImage2D(r,n,s,I,R,o,N,w,_,c);break;case\"buffer\":Z=Qn(Y),Z.bindBuffer(35052,_.handle||_),Z.texImage2D(r,n,s,I,R,o,N,w,c),Z.bindBuffer(35052,null);break;case\"browser-object\":hr(Y)?Y.texImage2D(r,n,s,I,R,o,N,w,_):Y.texImage2D(r,n,s,N,w,_);break;case\"compressed\":for(let[J,ht]of _.entries())Y.compressedTexImage2D(r,J,ht.format,ht.width,ht.height,o,ht.data),K+=ht.levelSize;break;default:_e(!1,\"Unknown image data type\")}}),it===\"compressed\")this._trackAllocatedMemory(K,\"Texture\");else if(_&&_.byteLength)this._trackAllocatedMemory(_.byteLength,\"Texture\");else{let J=QM[this.dataFormat]||4,ht=XM[this.type]||1;this._trackAllocatedMemory(this.width*this.height*J*ht,\"Texture\")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:n=null,x:s=0,y:o=0,width:c=this.width,height:d=this.height,level:_=0,format:w=this.format,type:I=this.type,dataFormat:R=this.dataFormat,compressed:N=!1,offset:j=0,border:Y=this.border,parameters:it={}}=t;if({type:I,dataFormat:R,compressed:N,width:c,height:d}=this._deduceParameters({format:w,type:I,dataFormat:R,compressed:N,data:n,width:c,height:d}),_e(this.depth===0,\"texSubImage not supported for 3D textures\"),n||(n=i),n&&n.data){let Z=n;n=Z.data,c=Z.shape[0],d=Z.shape[1]}n instanceof Nr&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),An(this.gl,it,()=>{if(N)this.gl.compressedTexSubImage2D(r,_,s,o,c,d,w,n);else if(n===null)this.gl.texSubImage2D(r,_,s,o,c,d,R,I,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(r,_,s,o,c,d,R,I,n,j);else if(n instanceof yV){let Z=Qn(this.gl);Z.bindBuffer(35052,n),Z.texSubImage2D(r,_,s,o,c,d,R,I,j),Z.bindBuffer(35052,null)}else hr(this.gl)?Qn(this.gl).texSubImage2D(r,_,s,o,c,d,R,I,n):this.gl.texSubImage2D(r,_,s,o,R,I,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:\"compressed\"}:r===null?{data:r,dataType:\"null\"}:ArrayBuffer.isView(r)?{data:r,dataType:\"typed-array\"}:r instanceof Nr?{data:r.handle,dataType:\"buffer\"}:r instanceof yV?{data:r,dataType:\"buffer\"}:{data:r,dataType:\"browser-object\"}}_deduceParameters(t){let{format:r,data:i}=t,{width:n,height:s,dataFormat:o,type:c,compressed:d}=t,_=$M[r];return o=o||_&&_.dataFormat,c=c||_&&_.types[0],d=d||_&&_.compressed,{width:n,height:s}=this._deduceImageSize(i,n,s),{dataFormat:o,type:c,compressed:d,width:n,height:s,format:r,data:i}}_deduceImageSize(t,r,i){let n;return typeof ImageData<\"u\"&&t instanceof ImageData?n={width:t.width,height:t.height}:typeof HTMLImageElement<\"u\"&&t instanceof HTMLImageElement?n={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<\"u\"&&t instanceof HTMLCanvasElement?n={width:t.width,height:t.height}:typeof ImageBitmap<\"u\"&&t instanceof ImageBitmap?n={width:t.width,height:t.height}:typeof HTMLVideoElement<\"u\"&&t instanceof HTMLVideoElement?n={width:t.videoWidth,height:t.videoHeight}:t?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},_e(n,\"Could not deduced texture size\"),_e(r===void 0||n.width===r,\"Deduced texture width does not match supplied width\"),_e(i===void 0||n.height===i,\"Deduced texture height does not match supplied height\"),n}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory(\"Texture\")}_getParameter(t){switch(t){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);let r=this.gl.getTexParameter(this.target,t);return this.gl.bindTexture(this.target,null),r}}_setParameter(t,r){switch(this.gl.bindTexture(this.target,this.handle),r=this._getNPOTParam(t,r),t){case 33082:case 33083:this.gl.texParameterf(this.handle,t,r);break;case 4096:case 4097:_e(!1);break;default:this.gl.texParameteri(this.target,t,r);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return hr(this.gl)||!this.width||!this.height?!1:!Q4(this.width)||!Q4(this.height)}_updateForNPOT(t){t[this.gl.TEXTURE_MIN_FILTER]===void 0&&(t[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),t[this.gl.TEXTURE_WRAP_S]===void 0&&(t[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),t[this.gl.TEXTURE_WRAP_T]===void 0&&(t[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam(t,r){if(this._isNPOT())switch(t){case 10241:Zit.indexOf(r)===-1&&(r=9729);break;case 10242:case 10243:r!==33071&&(r=33071);break;default:break}return r}};var Yit=\"\";function vV(e,t){return _e(typeof e==\"string\"),e=Yit+e,new Promise((r,i)=>{try{let n=new Image;n.onload=()=>r(n),n.onerror=()=>i(new Error(\"Could not load image \".concat(e,\".\"))),n.crossOrigin=t&&t.crossOrigin||\"anonymous\",n.src=e}catch(n){i(n)}})}var ci=class extends Ja{get[Symbol.toStringTag](){return\"Texture2D\"}static isSupported(t,r){return Ja.isSupported(t,r)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Xd(t),(r instanceof Promise||typeof r==\"string\")&&(r={data:r}),typeof r.data==\"string\"&&(r=Object.assign({},r,{data:vV(r.data)})),super(t,Object.assign({},r,{target:3553})),this.initialize(r),Object.seal(this)}};var X4=[34069,34070,34071,34072,34073,34074],V0=class extends Ja{get[Symbol.toStringTag](){return\"TextureCube\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Xd(t),super(t,Object.assign({},r,{target:34067})),this.initialize(r),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{mipmaps:r=!0,parameters:i={}}=t;return this.opts=t,this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setParameters(i)}),this}subImage(t){let{face:r,data:i,x:n=0,y:s=0,mipmapLevel:o=0}=t;return this._subImage({target:r,data:i,x:n,y:s,mipmapLevel:o})}async setCubeMapImageData(t){let{width:r,height:i,pixels:n,data:s,border:o=0,format:c=6408,type:d=5121}=t,{gl:_}=this,w=n||s,I=await Promise.all(X4.map(R=>{let N=w[R];return Promise.all(Array.isArray(N)?N:[N])}));this.bind(),X4.forEach((R,N)=>{I[N].length>1&&this.opts.mipmaps!==!1&&je.warn(\"\".concat(this.id,\" has mipmap and multiple LODs.\"))(),I[N].forEach((j,Y)=>{r&&i?_.texImage2D(R,Y,c,r,i,o,c,d,j):_.texImage2D(R,Y,c,c,d,j)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:n,pixels:s,data:o,border:c=0,format:d=6408,type:_=5121}=t,{gl:w}=this,I=s||o;return this.bind(),I instanceof Promise?I.then(R=>this.setImageDataForFace(Object.assign({},t,{face:r,data:R,pixels:R}))):this.width||this.height?w.texImage2D(r,0,d,i,n,c,d,_,I):w.texImage2D(r,0,d,d,_,I),this}};V0.FACES=X4;var fy=class extends Ja{get[Symbol.toStringTag](){return\"Texture3D\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Qn(t),r=Object.assign({depth:1},r,{target:32879,unpackFlipY:!1}),super(t,r),this.initialize(r),Object.seal(this)}setImageData(t){let{level:r=0,dataFormat:i=6408,width:n,height:s,depth:o=1,border:c=0,format:d,type:_=5121,offset:w=0,data:I,parameters:R={}}=t;if(this._trackDeallocatedMemory(\"Texture\"),this.gl.bindTexture(this.target,this.handle),An(this.gl,R,()=>{ArrayBuffer.isView(I)&&this.gl.texImage3D(this.target,r,i,n,s,o,c,d,_,I),I instanceof Nr&&(this.gl.bindBuffer(35052,I.handle),this.gl.texImage3D(this.target,r,i,n,s,o,c,d,_,w))}),I&&I.byteLength)this._trackAllocatedMemory(I.byteLength,\"Texture\");else{let N=QM[this.dataFormat]||4,j=XM[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*N*j,\"Texture\")}return this.loaded=!0,this}};var j0=\"EXT_color_buffer_float\",K4={33189:{bpp:2},33190:{gl2:!0,bpp:3},36012:{gl2:!0,bpp:4},36168:{bpp:1},34041:{bpp:4},35056:{gl2:!0,bpp:4},36013:{gl2:!0,bpp:5},32854:{bpp:2},36194:{bpp:2},32855:{bpp:2},33321:{gl2:!0,bpp:1},33330:{gl2:!0,bpp:1},33329:{gl2:!0,bpp:1},33332:{gl2:!0,bpp:2},33331:{gl2:!0,bpp:2},33334:{gl2:!0,bpp:4},33333:{gl2:!0,bpp:4},33323:{gl2:!0,bpp:2},33336:{gl2:!0,bpp:2},33335:{gl2:!0,bpp:2},33338:{gl2:!0,bpp:4},33337:{gl2:!0,bpp:4},33340:{gl2:!0,bpp:8},33339:{gl2:!0,bpp:8},32849:{gl2:!0,bpp:3},32856:{gl2:!0,bpp:4},32857:{gl2:!0,bpp:4},36220:{gl2:!0,bpp:4},36238:{gl2:!0,bpp:4},36975:{gl2:!0,bpp:4},36214:{gl2:!0,bpp:8},36232:{gl2:!0,bpp:8},36226:{gl2:!0,bpp:16},36208:{gl2:!0,bpp:16},33325:{gl2:j0,bpp:2},33327:{gl2:j0,bpp:4},34842:{gl2:j0,bpp:8},33326:{gl2:j0,bpp:4},33328:{gl2:j0,bpp:8},34836:{gl2:j0,bpp:16},35898:{gl2:j0,bpp:4}};function $it(e,t,r){let i=r[t];if(!i)return!1;let n=hr(e)&&i.gl2||i.gl1;return typeof n==\"string\"?e.getExtension(n):n}var tl=class extends Xs{get[Symbol.toStringTag](){return\"Renderbuffer\"}static isSupported(t){let{format:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!r||$it(t,r,K4)}static getSamplesForFormat(t,r){let{format:i}=r;return t.getInternalformatParameter(36161,i,32937)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.initialize(r),Object.seal(this)}initialize(t){let{format:r,width:i=1,height:n=1,samples:s=0}=t;return _e(r,\"Needs format\"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),s!==0&&hr(this.gl)?this.gl.renderbufferStorageMultisample(36161,s,r,i,n):this.gl.renderbufferStorage(36161,r,i,n),this.format=r,this.width=i,this.height=n,this.samples=s,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*K4[this.format].bpp),this}resize(t){let{width:r,height:i}=t;return r!==this.width||i!==this.height?this.initialize({width:r,height:i,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}_syncHandle(t){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter(t){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,t)}};var Qit=256,Xit=1024,Kit=16384,xV=6144,bV=6145,wV=6146,SV=34041,TV=\"clear: bad arguments\";function Xf(e){let{framebuffer:t=null,color:r=null,depth:i=null,stencil:n=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s={};t&&(s.framebuffer=t);let o=0;r&&(o|=Kit,r!==!0&&(s.clearColor=r)),i&&(o|=Qit,i!==!0&&(s.clearDepth=i)),n&&(o|=Xit,i!==!0&&(s.clearStencil=i)),_e(o!==0,TV),An(e,s,()=>{e.clear(o)})}function J4(e){let{framebuffer:t=null,buffer:r=xV,drawBuffer:i=0,value:n=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Qn(e),An(e,{framebuffer:t},()=>{switch(r){case xV:switch(n.constructor){case Int32Array:e.clearBufferiv(r,i,n);break;case Uint32Array:e.clearBufferuiv(r,i,n);break;case Float32Array:default:e.clearBufferfv(r,i,n)}break;case bV:e.clearBufferfv(bV,0,[n]);break;case wV:e.clearBufferiv(wV,0,[n]);break;case SV:let[s,o]=n;e.clearBufferfi(SV,0,s,o);break;default:_e(!1,TV)}})}function MV(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return _e(!1),0}}function Ih(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{sourceX:r=0,sourceY:i=0,sourceFormat:n=6408}=t,{sourceAttachment:s=36064,target:o=null,sourceWidth:c,sourceHeight:d,sourceType:_}=t,{framebuffer:w,deleteFramebuffer:I}=EV(e);_e(w);let{gl:R,handle:N,attachments:j}=w;c=c||w.width,d=d||w.height,s===36064&&N===null&&(s=1028),_e(j[s]),_=_||j[s].type,o=Jit(o,_,n,c,d),_=_||K1(o);let Y=R.bindFramebuffer(36160,N);return R.readPixels(r,i,c,d,n,_,o),R.bindFramebuffer(36160,Y||null),I&&w.delete(),o}function KM(e){let{sourceAttachment:t=36064,targetMaxHeight:r=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=Ih(e,{sourceAttachment:t}),{width:n,height:s}=e;for(;s>r;)({data:i,width:n,height:s}=pV({data:i,width:n,height:s}));dV({data:i,width:n,height:s});let o=document.createElement(\"canvas\");o.width=n,o.height=s;let c=o.getContext(\"2d\"),d=c.createImageData(n,s);return d.data.set(i),c.putImageData(d,0,0),o.toDataURL()}function JM(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{sourceX:i=0,sourceY:n=0,targetMipmaplevel:s=0,targetInternalFormat:o=6408}=r,{targetX:c,targetY:d,targetZ:_,width:w,height:I}=r,{framebuffer:R,deleteFramebuffer:N}=EV(e);_e(R);let{gl:j,handle:Y}=R,it=typeof c<\"u\"||typeof d<\"u\"||typeof _<\"u\";c=c||0,d=d||0,_=_||0;let Z=j.bindFramebuffer(36160,Y);_e(t);let K=null;if(t instanceof Ja&&(K=t,w=Number.isFinite(w)?w:K.width,I=Number.isFinite(I)?I:K.height,K.bind(0),t=K.target),!it)j.copyTexImage2D(t,s,o,i,n,w,I,0);else switch(t){case 3553:case 34067:j.copyTexSubImage2D(t,s,c,d,i,n,w,I);break;case 35866:case 32879:Qn(j).copyTexSubImage3D(t,s,c,d,_,i,n,w,I);break;default:}return K&&K.unbind(),j.bindFramebuffer(36160,Z||null),N&&R.delete(),K}function EV(e){return e instanceof di?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:PV(e),deleteFramebuffer:!0}}function Jit(e,t,r,i,n){if(e)return e;t=t||5121;let s=WA(t,{clamped:!1}),o=MV(r);return new s(i*n*o)}var gi={WEBGL2:\"WEBGL2\",VERTEX_ARRAY_OBJECT:\"VERTEX_ARRAY_OBJECT\",TIMER_QUERY:\"TIMER_QUERY\",INSTANCED_RENDERING:\"INSTANCED_RENDERING\",MULTIPLE_RENDER_TARGETS:\"MULTIPLE_RENDER_TARGETS\",ELEMENT_INDEX_UINT32:\"ELEMENT_INDEX_UINT32\",BLEND_EQUATION_MINMAX:\"BLEND_EQUATION_MINMAX\",FLOAT_BLEND:\"FLOAT_BLEND\",COLOR_ENCODING_SRGB:\"COLOR_ENCODING_SRGB\",TEXTURE_DEPTH:\"TEXTURE_DEPTH\",TEXTURE_FLOAT:\"TEXTURE_FLOAT\",TEXTURE_HALF_FLOAT:\"TEXTURE_HALF_FLOAT\",TEXTURE_FILTER_LINEAR_FLOAT:\"TEXTURE_FILTER_LINEAR_FLOAT\",TEXTURE_FILTER_LINEAR_HALF_FLOAT:\"TEXTURE_FILTER_LINEAR_HALF_FLOAT\",TEXTURE_FILTER_ANISOTROPIC:\"TEXTURE_FILTER_ANISOTROPIC\",COLOR_ATTACHMENT_RGBA32F:\"COLOR_ATTACHMENT_RGBA32F\",COLOR_ATTACHMENT_FLOAT:\"COLOR_ATTACHMENT_FLOAT\",COLOR_ATTACHMENT_HALF_FLOAT:\"COLOR_ATTACHMENT_HALF_FLOAT\",GLSL_FRAG_DATA:\"GLSL_FRAG_DATA\",GLSL_FRAG_DEPTH:\"GLSL_FRAG_DEPTH\",GLSL_DERIVATIVES:\"GLSL_DERIVATIVES\",GLSL_TEXTURE_LOD:\"GLSL_TEXTURE_LOD\"};function tnt(e){let t=new ci(e,{format:6408,type:5126,dataFormat:6408}),r=new di(e,{id:\"test-framebuffer\",check:!1,attachments:{36064:t}}),i=r.getStatus();return t.delete(),r.delete(),i===36053}var tR={[gi.WEBGL2]:[!1,!0],[gi.VERTEX_ARRAY_OBJECT]:[\"OES_vertex_array_object\",!0],[gi.TIMER_QUERY]:[\"EXT_disjoint_timer_query\",\"EXT_disjoint_timer_query_webgl2\"],[gi.INSTANCED_RENDERING]:[\"ANGLE_instanced_arrays\",!0],[gi.MULTIPLE_RENDER_TARGETS]:[\"WEBGL_draw_buffers\",!0],[gi.ELEMENT_INDEX_UINT32]:[\"OES_element_index_uint\",!0],[gi.BLEND_EQUATION_MINMAX]:[\"EXT_blend_minmax\",!0],[gi.FLOAT_BLEND]:[\"EXT_float_blend\"],[gi.COLOR_ENCODING_SRGB]:[\"EXT_sRGB\",!0],[gi.TEXTURE_DEPTH]:[\"WEBGL_depth_texture\",!0],[gi.TEXTURE_FLOAT]:[\"OES_texture_float\",!0],[gi.TEXTURE_HALF_FLOAT]:[\"OES_texture_half_float\",!0],[gi.TEXTURE_FILTER_LINEAR_FLOAT]:[\"OES_texture_float_linear\"],[gi.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:[\"OES_texture_half_float_linear\"],[gi.TEXTURE_FILTER_ANISOTROPIC]:[\"EXT_texture_filter_anisotropic\"],[gi.COLOR_ATTACHMENT_RGBA32F]:[tnt,\"EXT_color_buffer_float\"],[gi.COLOR_ATTACHMENT_FLOAT]:[!1,\"EXT_color_buffer_float\"],[gi.COLOR_ATTACHMENT_HALF_FLOAT]:[\"EXT_color_buffer_half_float\"],[gi.GLSL_FRAG_DATA]:[\"WEBGL_draw_buffers\",!0],[gi.GLSL_FRAG_DEPTH]:[\"EXT_frag_depth\",!0],[gi.GLSL_DERIVATIVES]:[\"OES_standard_derivatives\",!0],[gi.GLSL_TEXTURE_LOD]:[\"EXT_shader_texture_lod\",!0]};var ent=2;function G0(e,t){return Ch(e,t)}function Ch(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>IV(e,r))}function tE(e){e.luma=e.luma||{},e.luma.caps=e.luma.caps||{};for(let t in tR)e.luma.caps[t]===void 0&&(e.luma.caps[t]=IV(e,t));return e.luma.caps}function IV(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},e.luma.caps[t]===void 0&&(e.luma.caps[t]=rnt(e,t)),e.luma.caps[t]||je.log(ent,\"Feature: \".concat(t,\" not supported\"))(),e.luma.caps[t]}function rnt(e,t){let r=tR[t];_e(r,t);let i,n=hr(e)&&r[1]||r[0];if(typeof n==\"function\")i=n(e);else if(Array.isArray(n)){i=!0;for(let s of n)i=i&&!!e.getExtension(s)}else typeof n==\"string\"?i=!!e.getExtension(n):typeof n==\"boolean\"?i=n:_e(!1);return i}var CV=\"Multiple render targets not supported\",di=class e extends Xs{get[Symbol.toStringTag](){return\"Framebuffer\"}static isSupported(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{colorBufferFloat:i,colorBufferHalfFloat:n}=r,s=!0;return i&&(s=!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"WEBGL_color_buffer_float\")||t.getExtension(\"OES_texture_float\"))),n&&(s=s&&!!(t.getExtension(\"EXT_color_buffer_float\")||t.getExtension(\"EXT_color_buffer_half_float\"))),s}static getDefaultFramebuffer(t){return t.luma=t.luma||{},t.luma.defaultFramebuffer=t.luma.defaultFramebuffer||new e(t,{id:\"default-framebuffer\",handle:null,attachments:{}}),t.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){let t=Qn(this.gl);return t.getParameter(t.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){let t=Qn(this.gl);return t.getParameter(t.MAX_DRAW_BUFFERS)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(r),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize(t){let{width:r=1,height:i=1,attachments:n=null,color:s=!0,depth:o=!0,stencil:c=!1,check:d=!0,readBuffer:_=void 0,drawBuffers:w=void 0}=t;if(_e(r>=0&&i>=0,\"Width and height need to be integers\"),this.width=r,this.height=i,n)for(let I in n){let R=n[I];(Array.isArray(R)?R[0]:R).resize({width:r,height:i})}else n=this._createDefaultAttachments(s,o,c,r,i);this.update({clearAttachments:!0,attachments:n,readBuffer:_,drawBuffers:w}),n&&d&&this.checkStatus()}delete(){for(let t of this.ownResources)t.delete();return super.delete(),this}update(t){let{attachments:r={},readBuffer:i,drawBuffers:n,clearAttachments:s=!1,resizeAttachments:o=!0}=t;this.attach(r,{clearAttachments:s,resizeAttachments:o});let{gl:c}=this,d=c.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),n&&this._setDrawBuffers(n),c.bindFramebuffer(36160,d||null),this}resize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:r,height:i}=t;if(this.handle===null)return _e(r===void 0&&i===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;r===void 0&&(r=this.gl.drawingBufferWidth),i===void 0&&(i=this.gl.drawingBufferHeight),r!==this.width&&i!==this.height&&je.log(2,\"Resizing framebuffer \".concat(this.id,\" to \").concat(r,\"x\").concat(i))();for(let n in this.attachments)this.attachments[n].resize({width:r,height:i});return this.width=r,this.height=i,this}attach(t){let{clearAttachments:r=!1,resizeAttachments:i=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={};r&&Object.keys(this.attachments).forEach(o=>{n[o]=null}),Object.assign(n,t);let s=this.gl.bindFramebuffer(36160,this.handle);for(let o in n){_e(o!==void 0,\"Misspelled framebuffer binding point?\");let c=Number(o),d=n[c],_=d;if(!_)this._unattach(c);else if(_ instanceof tl)this._attachRenderbuffer({attachment:c,renderbuffer:_});else if(Array.isArray(d)){let[w,I=0,R=0]=d;_=w,this._attachTexture({attachment:c,texture:w,layer:I,level:R})}else this._attachTexture({attachment:c,texture:_,layer:0,level:0});i&&_&&_.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,s||null),Object.assign(this.attachments,t),Object.keys(this.attachments).filter(o=>!this.attachments[o]).forEach(o=>{delete this.attachments[o]})}checkStatus(){let{gl:t}=this,r=this.getStatus();if(r!==36053)throw new Error(nnt(r));return this}getStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);return t.bindFramebuffer(36160,r||null),i}clear(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:r,depth:i,stencil:n,drawBuffers:s=[]}=t,o=this.gl.bindFramebuffer(36160,this.handle);return(r||i||n)&&Xf(this.gl,{color:r,depth:i,stencil:n}),s.forEach((c,d)=>{J4(this.gl,{drawBuffer:d,value:c})}),this.gl.bindFramebuffer(36160,o||null),this}readPixels(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)\")(),null}readPixelsToBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)\")(),null}copyToDataUrl(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)\")(),null}copyToImage(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)\")(),null}copyToTexture(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})\")(),null}blit(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.error(\"Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)\")(),null}invalidate(t){let{attachments:r=[],x:i=0,y:n=0,width:s,height:o}=t,c=Qn(this.gl),d=c.bindFramebuffer(36008,this.handle);return i===0&&n===0&&s===void 0&&o===void 0?c.invalidateFramebuffer(36008,r):c.invalidateFramebuffer(36008,r,i,n,s,o),c.bindFramebuffer(36008,d),this}getAttachmentParameter(t,r,i){let n=this._getAttachmentParameterFallback(r);return n===null&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,t,r),this.gl.bindFramebuffer(36160,null)),i&&n>1e3&&(n=zu(this.gl,n)),n}getAttachmentParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],n={};for(let s of i){let o=r?zu(this.gl,s):s;n[o]=this.getAttachmentParameter(t,s,r)}return n}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,r=Object.keys(this.attachments),i={};for(let n of r){let s=Number(n),o=t?zu(this.gl,s):s;i[o]=this.getAttachmentParameters(s,t)}return i}show(){return typeof window<\"u\"&&window.open(KM(this),\"luma-debug-texture\"),this}log(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";if(t>je.level||typeof window>\"u\")return this;r=r||\"Framebuffer \".concat(this.id);let i=KM(this,{targetMaxHeight:100});return je.image({logLevel:t,message:r,image:i},r)(),this}bind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,this.handle),this}unbind(){let{target:t=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(t,null),this}_createDefaultAttachments(t,r,i,n,s){let o=null;return t&&(o=o||{},o[36064]=new ci(this.gl,{id:\"\".concat(this.id,\"-color0\"),pixels:null,format:6408,type:5121,width:n,height:s,mipmaps:!1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.ownResources.push(o[36064])),r&&i?(o=o||{},o[33306]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth-stencil\"),format:35056,width:n,height:111}),this.ownResources.push(o[33306])):r?(o=o||{},o[36096]=new tl(this.gl,{id:\"\".concat(this.id,\"-depth\"),format:33189,width:n,height:s}),this.ownResources.push(o[36096])):i&&_e(!1),o}_unattach(t){let r=this.attachments[t];r&&(r instanceof tl?this.gl.framebufferRenderbuffer(36160,t,36161,null):this.gl.framebufferTexture2D(36160,t,3553,null,0),delete this.attachments[t])}_attachRenderbuffer(t){let{attachment:r=36064,renderbuffer:i}=t,{gl:n}=this;n.framebufferRenderbuffer(36160,r,36161,i.handle),this.attachments[r]=i}_attachTexture(t){let{attachment:r=36064,texture:i,layer:n,level:s}=t,{gl:o}=this;switch(o.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:Qn(o).framebufferTextureLayer(36160,r,i.target,s,n);break;case 34067:let d=int(n);o.framebufferTexture2D(36160,r,d,i.handle,s);break;case 3553:o.framebufferTexture2D(36160,r,3553,i.handle,s);break;default:_e(!1,\"Illegal texture type\")}o.bindTexture(i.target,null),this.attachments[r]=i}_setReadBuffer(t){let r=F4(this.gl);r?r.readBuffer(t):_e(t===36064||t===1029,CV),this.readBuffer=t}_setDrawBuffers(t){let{gl:r}=this,i=Qn(r);if(i)i.drawBuffers(t);else{let n=r.getExtension(\"WEBGL_draw_buffers\");n?n.drawBuffersWEBGL(t):_e(t.length===1&&(t[0]===36064||t[0]===1029),CV)}this.drawBuffers=t}_getAttachmentParameterFallback(t){let r=tE(this.gl);switch(t){case 36052:return r.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return r.WEBGL2?null:8;case 33297:return r.WEBGL2?null:5125;case 33296:return!r.WEBGL2&&!r.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle(t){return this.gl.bindFramebuffer(36160,t)}};function int(e){return e<34069?e+34069:e}function nnt(e){return(di.STATUS||{})[e]||\"Framebuffer error \".concat(e)}var snt=[36049,36048,33296,33298,33299,33300,33301,33302,33303];di.ATTACHMENT_PARAMETERS=snt;function eE(e,t){_e(e instanceof ci||e instanceof V0||e instanceof fy);let r=e.constructor,{gl:i,width:n,height:s,format:o,type:c,dataFormat:d,border:_,mipmaps:w}=e,I=Object.assign({width:n,height:s,format:o,type:c,dataFormat:d,border:_,mipmaps:w},t);return new r(i,I)}function PV(e,t){let{gl:r,width:i,height:n,id:s}=e;return new di(r,Object.assign({},t,{id:\"framebuffer-for-\".concat(s),width:i,height:n,attachments:{36064:e}}))}function HA(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unnamed\",r=/#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/,i=e.match(r);return i?i[1]:t}function eR(e){switch(e){case 35632:return\"fragment\";case 35633:return\"vertex\";default:return\"unknown type\"}}function rR(e,t,r,i){let n=e.split(/\\r?\\n/),s={},o={},c=i||HA(t)||\"(unnamed)\",d=\"\".concat(eR(r),\" shader \").concat(c);for(let w=0;w1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\": \",i=e.split(/\\r?\\n/),n=String(i.length+t-1).length;return i.map((s,o)=>{let c=String(o+t),d=c.length;return kV(c,n-d)+r+s})}function kV(e,t){let r=\"\";for(let i=0;i=2&&r[0]===\"#version\"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}return t}var ant=\"Shader: GLSL source code must be a JavaScript string\",rE=class e extends Xs{get[Symbol.toStringTag](){return\"Shader\"}static getTypeName(t){switch(t){case 35633:return\"vertex-shader\";case 35632:return\"fragment-shader\";default:return _e(!1),\"unknown\"}}constructor(t,r){Xd(t),_e(typeof r.source==\"string\",ant);let i=HA(r.source,null)||r.id||ea(\"unnamed \".concat(e.getTypeName(r.shaderType)));super(t,{id:i}),this.shaderType=r.shaderType,this.source=r.source,this.initialize(r)}initialize(t){let{source:r}=t,i=HA(r,null);i&&(this.id=ea(i)),this._compile(r)}getParameter(t){return this.gl.getShaderParameter(this.handle,t)}toString(){return\"\".concat(e.getTypeName(this.shaderType),\":\").concat(this.id)}getName(){return HA(this.source)||\"unnamed-shader\"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){let t=this.gl.getExtension(\"WEBGL_debug_shaders\");return t?t.getTranslatedShaderSource(this.handle):\"No translated source available. WEBGL_debug_shaders not implemented\"}_compile(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if(t.startsWith(\"#version \")||(t=`#version 100\n`.concat(t)),this.source=t,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){let i=this.gl.getShaderInfoLog(this.handle),{shaderName:n,errors:s,warnings:o}=rR(i,this.source,this.shaderType,this.id);throw je.error(\"GLSL compilation errors in \".concat(n,`\n`).concat(s))(),je.warn(\"GLSL compilation warnings in \".concat(n,`\n`).concat(o))(),new Error(\"GLSL compilation errors in \".concat(n))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}},W0=class extends rE{get[Symbol.toStringTag](){return\"VertexShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}},H0=class extends rE{get[Symbol.toStringTag](){return\"FragmentShader\"}constructor(t,r){typeof r==\"string\"&&(r={source:r}),super(t,Object.assign({},r,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}};var lnt={5126:Xn.bind(null,\"uniform1fv\",Yc,1,el),35664:Xn.bind(null,\"uniform2fv\",Yc,2,el),35665:Xn.bind(null,\"uniform3fv\",Yc,3,el),35666:Xn.bind(null,\"uniform4fv\",Yc,4,el),5124:Xn.bind(null,\"uniform1iv\",qA,1,el),35667:Xn.bind(null,\"uniform2iv\",qA,2,el),35668:Xn.bind(null,\"uniform3iv\",qA,3,el),35669:Xn.bind(null,\"uniform4iv\",qA,4,el),35670:Xn.bind(null,\"uniform1iv\",qA,1,el),35671:Xn.bind(null,\"uniform2iv\",qA,2,el),35672:Xn.bind(null,\"uniform3iv\",qA,3,el),35673:Xn.bind(null,\"uniform4iv\",qA,4,el),35674:Xn.bind(null,\"uniformMatrix2fv\",Yc,4,Kd),35675:Xn.bind(null,\"uniformMatrix3fv\",Yc,9,Kd),35676:Xn.bind(null,\"uniformMatrix4fv\",Yc,16,Kd),35678:va,35680:va,5125:Xn.bind(null,\"uniform1uiv\",iE,1,el),36294:Xn.bind(null,\"uniform2uiv\",iE,2,el),36295:Xn.bind(null,\"uniform3uiv\",iE,3,el),36296:Xn.bind(null,\"uniform4uiv\",iE,4,el),35685:Xn.bind(null,\"uniformMatrix2x3fv\",Yc,6,Kd),35686:Xn.bind(null,\"uniformMatrix2x4fv\",Yc,8,Kd),35687:Xn.bind(null,\"uniformMatrix3x2fv\",Yc,6,Kd),35688:Xn.bind(null,\"uniformMatrix3x4fv\",Yc,12,Kd),35689:Xn.bind(null,\"uniformMatrix4x2fv\",Yc,8,Kd),35690:Xn.bind(null,\"uniformMatrix4x3fv\",Yc,12,Kd),35678:va,35680:va,35679:va,35682:va,36289:va,36292:va,36293:va,36298:va,36299:va,36300:va,36303:va,36306:va,36307:va,36308:va,36311:va},cnt={},unt={},hnt={},RV=[0];function iR(e,t,r,i){t===1&&typeof e==\"boolean\"&&(e=e?1:0),Number.isFinite(e)&&(RV[0]=e,e=RV);let n=e.length;if(n%t&&je.warn(\"Uniform size should be multiples of \".concat(t),e)(),e instanceof r)return e;let s=i[n];s||(s=new r(n),i[n]=s);for(let o=0;o{let n=e!==i;return n&&(t.uniform1i(r,i),e=i),n}}function Xn(e,t,r,i){let n=null,s=null;return(o,c,d)=>{let _=t(d,r),w=_.length,I=!1;if(n===null)n=new Float32Array(w),s=w,I=!0;else{_e(s===w,\"Uniform length cannot change.\");for(let R=0;R=0&&this._addAttribute(d,s,o,c)}this.attributeInfos.sort((n,s)=>n.location-s.location)}_readVaryingsFromProgram(t){let{gl:r}=t;if(!hr(r))return;let i=r.getProgramParameter(t.handle,35971);for(let n=0;nn.location-s.location)}_addAttribute(t,r,i,n){let{type:s,components:o}=oR(i),c={type:s,size:n*o};this._inferProperties(t,r,c);let d={location:t,name:r,accessor:new Sl(c)};this.attributeInfos.push(d),this.attributeInfosByLocation[t]=d,this.attributeInfosByName[d.name]=d}_inferProperties(t,r,i){/instance/i.test(r)&&(i.divisor=1)}_addVarying(t,r,i,n){let{type:s,components:o}=oR(i),c=new Sl({type:s,size:n*o}),d={location:t,name:r,accessor:c};this.varyingInfos.push(d),this.varyingInfosByName[d.name]=d}};var NV=4,Wnt=35981,Hnt=[\"setVertexArray\",\"setAttributes\",\"setBuffers\",\"unsetBuffers\",\"use\",\"getUniformCount\",\"getUniformInfo\",\"getUniformLocation\",\"getUniformValue\",\"getVarying\",\"getFragDataLocation\",\"getAttachedShaders\",\"getAttributeCount\",\"getAttributeLocation\",\"getAttributeInfo\"],Jd=class extends Xs{get[Symbol.toStringTag](){return\"Program\"}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.stubRemovedMethods(\"Program\",\"v6.0\",Hnt),this._isCached=!1,this.initialize(r),Object.seal(this),this._setId(r.id)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{hash:r,vs:i,fs:n,varyings:s,bufferMode:o=Wnt}=t;return this.hash=r||\"\",this.vs=typeof i==\"string\"?new W0(this.gl,{id:\"\".concat(t.id,\"-vs\"),source:i}):i,this.fs=typeof n==\"string\"?new H0(this.gl,{id:\"\".concat(t.id,\"-fs\"),source:n}):n,_e(this.vs instanceof W0),_e(this.fs instanceof H0),this.uniforms={},this._textureUniforms={},s&&s.length>0&&(Qn(this.gl),this.varyings=s,this.gl2.transformFeedbackVaryings(this.handle,s,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new rb(this),this.setProps(t)}delete(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete(t)}setProps(t){return\"uniforms\"in t&&this.setUniforms(t.uniforms),this}draw(t){let{logPriority:r,drawMode:i=4,vertexCount:n,offset:s=0,start:o,end:c,isIndexed:d=!1,indexType:_=5123,instanceCount:w=0,isInstanced:I=w>0,vertexArray:R=null,transformFeedback:N,framebuffer:j,parameters:Y={},uniforms:it,samplers:Z}=t;if((it||Z)&&(je.deprecated(\"Program.draw({uniforms})\",\"Program.setUniforms(uniforms)\")(),this.setUniforms(it||{})),je.priority>=r){let K=j?j.id:\"default\",J=\"mode=\".concat(zu(this.gl,i),\" verts=\").concat(n,\" \")+\"instances=\".concat(w,\" indexType=\").concat(zu(this.gl,_),\" \")+\"isInstanced=\".concat(I,\" isIndexed=\").concat(d,\" \")+\"Framebuffer=\".concat(K);je.log(r,J)()}return _e(R),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||n===0||I&&w===0?!1:(R.bindForDraw(n,w,()=>{if(j!==void 0&&(Y=Object.assign({},Y,{framebuffer:j})),N){let K=zV(i);N.begin(K)}this._bindTextures(),An(this.gl,Y,()=>{d&&I?this.gl2.drawElementsInstanced(i,n,_,s,w):d&&hr(this.gl)&&!isNaN(o)&&!isNaN(c)?this.gl2.drawRangeElements(i,o,c,n,_,s):d?this.gl.drawElements(i,n,_,s):I?this.gl2.drawArraysInstanced(i,s,n,w):this.gl.drawArrays(i,s,n)}),N&&N.end()}),!0)}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};je.priority>=2&&OV(t,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(let r in t){let i=t[r],n=this._uniformSetters[r];if(n){let s=i,o=!1;if(s instanceof di&&(s=s.texture),s instanceof Ja)if(o=this.uniforms[r]!==i,o){n.textureIndex===void 0&&(n.textureIndex=this._textureIndexCounter++);let c=s,{textureIndex:d}=n;c.bind(d),s=d,this._textureUniforms[r]=c}else s=n.textureIndex;else this._textureUniforms[r]&&delete this._textureUniforms[r];(n(s)||o)&&BV(this.uniforms,r,i)}}return this}_areTexturesRenderable(){let t=!0;for(let r in this._textureUniforms){let i=this._textureUniforms[r];i.update(),t=t&&i.loaded}return t}_bindTextures(){for(let t in this._textureUniforms){let r=this._uniformSetters[t].textureIndex;this._textureUniforms[t].bind(r)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle(t){let r=this.gl.getAttachedShaders(t),i={};for(let n of r)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:i.vs=new W0({handle:n});break;case 35632:i.fs=new H0({handle:n});break;default:}return i}_getParameter(t){return this.gl.getProgramParameter(this.handle,t)}_setId(t){if(!t){let r=this._getName();this.id=ea(r)}}_getName(){let t=this.vs.getName()||this.fs.getName();return t=t.replace(/shader/i,\"\"),t=t?\"\".concat(t,\"-program\"):\"program\",t}_compileAndLink(){let{gl:t}=this;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),je.time(NV,\"linkProgram for \".concat(this._getName()))(),t.linkProgram(this.handle),je.timeEnd(NV,\"linkProgram for \".concat(this._getName()))(),t.debug||je.level>0){if(!t.getProgramParameter(this.handle,35714))throw new Error(\"Error linking: \".concat(t.getProgramInfoLog(this.handle)));if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(\"Error validating: \".concat(t.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){let{gl:t}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let r=0;r1)for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:[],i=hr(t),n=Ch(t,gi.TIMER_QUERY),s=i||n;for(let o of r)switch(o){case\"queries\":s=s&&i;break;case\"timers\":s=s&&n;break;default:_e(!1)}return s}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(Ynt)}beginOcclusionQuery(){let{conservative:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin(t?Knt:Xnt)}beginTransformFeedbackQuery(){return this.begin(Qnt)}begin(t){return this._queryPending?this:(this.target=t,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.gl2.getQueryParameter(this.handle,Znt);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.gl2.getParameter($nt)}getResult(){return this.gl2.getQueryParameter(this.handle,qnt)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,n)=>{let s=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(n(\"Timed out\"),this._pollingPromise=null):requestAnimationFrame(s)};requestAnimationFrame(s)}),this._pollingPromise}_createHandle(){return e.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}};var tp=class extends Xs{get[Symbol.toStringTag](){return\"TransformFeedback\"}static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Qn(t),super(t,r),this.initialize(r),this.stubRemovedMethods(\"TransformFeedback\",\"v6.0\",[\"pause\",\"resume\"]),Object.seal(this)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,Qf(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps(t),this}setProps(t){\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"bindOnUse\"in t&&(t=t.bindOnUse),\"buffers\"in t&&this.setBuffers(t.buffers)}setBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])}),this}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:n,byteSize:s,byteOffset:o}=this._getBufferParams(r);return i<0?(this.unused[t]=n,je.warn(\"\".concat(this.id,\" unused varying buffer \").concat(t))(),this):(this.buffers[i]=r,this.bindOnUse||this._bindBuffer(i,n,o,s),this)}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(t),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams(t){let r,i,n;return t instanceof Nr?n=t:(n=t.buffer,i=t.byteSize,r=t.byteOffset),(r!==void 0||i!==void 0)&&(r=r||0,i=i||n.byteLength-r),{buffer:n,byteOffset:r,byteSize:i}}_getVaryingInfo(t){return this.configuration&&this.configuration.getVaryingInfo(t)}_getVaryingIndex(t){if(this.configuration)return this.configuration.getVaryingInfo(t).location;let r=Number(t);return Number.isFinite(r)?r:-1}_bindBuffers(){if(this.bindOnUse)for(let t in this.buffers){let{buffer:r,byteSize:i,byteOffset:n}=this._getBufferParams(this.buffers[t]);this._bindBuffer(t,r,n,i)}}_unbindBuffers(){if(this.bindOnUse)for(let t in this.buffers)this._bindBuffer(t,null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,s=r&&r.handle;return!s||n===void 0?this.gl.bindBufferBase(35982,t,s):this.gl.bindBufferRange(35982,t,s,i,n),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle(t){this.gl.bindTransformFeedback(36386,this.handle)}};var aE=null;function Jnt(e){return(!aE||aE.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?hr(t)||sy()===\"Chrome\":!0}static getDefaultArray(t){return t.luma=t.luma||{},t.luma.defaultVertexArray||(t.luma.defaultVertexArray=new e(t,{handle:null,isDefaultArray:!0})),t.luma.defaultVertexArray}static getMaxAttributes(t){return e.MAX_ATTRIBUTES=e.MAX_ATTRIBUTES||t.getParameter(34921),e.MAX_ATTRIBUTES}static setConstant(t,r,i){switch(i.constructor){case Float32Array:e._setConstantFloatArray(t,r,i);break;case Int32Array:e._setConstantIntArray(t,r,i);break;case Uint32Array:e._setConstantUintArray(t,r,i);break;default:_e(!1)}}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;super(t,Object.assign({},r,{id:i})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=r.isDefaultArray||!1,this.gl2=t,this.initialize(r),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return e.getMaxAttributes(this.gl)}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps(t)}setProps(t){return this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return _e(!t||t.target===34963,tst),this.bind(()=>{this.gl.bindBuffer(34963,t?t.handle:null)}),this}setBuffer(t,r,i){if(r.target===34963)return this.setElementBuffer(r,i);let{size:n,type:s,stride:o,offset:c,normalized:d,integer:_,divisor:w}=i,{gl:I,gl2:R}=this;return t=Number(t),this.bind(()=>{I.bindBuffer(34962,r.handle),_?(_e(hr(I)),R.vertexAttribIPointer(t,n,s,o,c)):I.vertexAttribPointer(t,n,s,d,o,c),I.enableVertexAttribArray(t),R.vertexAttribDivisor(t,w||0)}),this}enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!r&&t===0&&!e.isSupported(this.gl,{constantAttributeZero:!0})||(t=Number(t),this.bind(()=>r?this.gl.enableVertexAttribArray(t):this.gl.disableVertexAttribArray(t))),this}getConstantBuffer(t,r){let i=this._normalizeConstantArrayValue(r),n=i.byteLength*t,s=i.length*t,o=!this.buffer;if(this.buffer=this.buffer||new Nr(this.gl,n),o=o||this.buffer.reallocate(n),o=o||!this._compareConstantArrayValues(i,this.bufferValue),o){let c=UV(r.constructor,s);VV({target:c,source:i,start:0,count:s}),this.buffer.subData(c),this.bufferValue=r}return this.buffer}_normalizeConstantArrayValue(t){return Array.isArray(t)?new Float32Array(t):t}_compareConstantArrayValues(t,r){if(!t||!r||t.length!==r.length||t.constructor!==r.constructor)return!1;for(let i=0;i{switch(t){case 34373:return this.gl.getVertexAttribOffset(i,t);default:return this.gl.getVertexAttrib(i,t)}})}};var est=\"VertexArray: attributes must be Buffers or constants (i.e. typed array)\",rst=/^(.+)__LOCATION_([0-9]+)$/,ist=[\"setBuffers\",\"setGeneric\",\"clearBindings\",\"setLocations\",\"setGenericValues\",\"setDivisor\",\"enable\",\"disable\"],py=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.id||r.program&&r.program.id;this.id=i,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new Z0(t),YM(this,\"VertexArray\",\"v6.0\",ist),this.initialize(r),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(t)}reset(){this.elements=null,this.elementsAccessor=null;let{MAX_ATTRIBUTES:t}=this.vertexArrayObject;return this.values=new Array(t).fill(null),this.accessors=new Array(t).fill(null),this.unused={},this.drawParams=null,this}setProps(t){return\"program\"in t&&(this.configuration=t.program&&t.program.configuration),\"configuration\"in t&&(this.configuration=t.configuration),\"attributes\"in t&&this.setAttributes(t.attributes),\"elements\"in t&&this.setElementBuffer(t.elements),\"bindOnUse\"in t&&(t=t.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes(t){return Object.assign(this.attributes,t),this.vertexArrayObject.bind(()=>{for(let r in t){let i=t[r];this._setAttribute(r,i)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=t,this.elementsAccessor=r,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(t,r),this}setBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(r.target===34963)return this.setElementBuffer(r,i);let{location:n,accessor:s}=this._resolveLocationAndAccessor(t,r,r.accessor,i);return n>=0&&(this.values[n]=r,this.accessors[n]=s,this.clearDrawParams(),this.vertexArrayObject.setBuffer(n,r,s)),this}setConstant(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{location:n,accessor:s}=this._resolveLocationAndAccessor(t,r,Object.assign({size:r.length},i));return n>=0&&(r=this.vertexArrayObject._normalizeConstantArrayValue(r),this.values[n]=r,this.accessors[n]=s,this.clearDrawParams(),this.vertexArrayObject.enable(n,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new Nr(this.gl,{accessor:{size:4}});for(let t=0;t{this.elements&&this.setElementBuffer(this.elements);for(let t=0;t{this._setConstantAttributes(t,r),n=i()}),n}_resolveLocationAndAccessor(t,r,i,n){let s={location:-1,accessor:null},{location:o,name:c}=this._getAttributeIndex(t);if(!Number.isFinite(o)||o<0)return this.unused[t]=r,je.once(3,()=>\"unused value \".concat(t,\" in \").concat(this.id))(),s;let d=this._getAttributeInfo(c||o);if(!d)return s;let _=this.accessors[o]||{},w=Sl.resolve(d.accessor,_,i,n),{size:I,type:R}=w;return _e(Number.isFinite(I)&&Number.isFinite(R)),{location:o,accessor:w}}_getAttributeInfo(t){return this.configuration&&this.configuration.getAttributeInfo(t)}_getAttributeIndex(t){let r=Number(t);if(Number.isFinite(r))return{location:r};let i=rst.exec(t),n=i?i[1]:t,s=i?Number(i[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+s,name:n}:{location:-1}}_setAttribute(t,r){if(r instanceof Nr)this.setBuffer(t,r);else if(Array.isArray(r)&&r.length&&r[0]instanceof Nr){let i=r[0],n=r[1];this.setBuffer(t,i,n)}else if(ArrayBuffer.isView(r)||Array.isArray(r)){let i=r;this.setConstant(t,i)}else if(r.buffer instanceof Nr){let i=r;this.setBuffer(t,i.buffer,i)}else throw new Error(est)}_setConstantAttributes(t,r){let i=Math.max(t|0,r|0),n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,i);for(let s=1;s0;if(t.isInstanced=t.isInstanced||o,i instanceof Nr){let c=i;if(o){let d=c.getVertexCount(n);t.instanceCount=Math.min(t.instanceCount,d)}else{let d=c.getVertexCount(n);t.vertexCount=Math.min(t.vertexCount,d)}}}setElements(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return je.deprecated(\"setElements\",\"setElementBuffer\")(),this.setElementBuffer(t,r)}};function nst(e,t){let{maxElts:r=16,size:i=1}=t,n=\"[\";for(let o=0;o0&&(n+=\",\".concat(o%i===0?\" \":\"\")),n+=Y0(e[o],t);let s=e.length>r?\"...\":\"]\";return\"\".concat(n).concat(s)}function Y0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=1e-16,{isInteger:i=!1}=t;if(Array.isArray(e)||ArrayBuffer.isView(e))return nst(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)100&&Math.abs(e)<1e4)return e.toFixed(0);let n=e.toPrecision(2);return n.indexOf(\".0\")===n.length-2?n.slice(0,-1):n}function lE(e){let{header:t=\"Uniforms\",program:r,uniforms:i,undefinedOnly:n=!1}=e;_e(r);let s=\".*_.*\",o=\".*Matrix\",c=r._uniformSetters,d={},_=Object.keys(c).sort(),w=0;for(let N of _)!N.match(s)&&!N.match(o)&&aR({table:d,header:t,uniforms:i,uniformName:N,undefinedOnly:n})&&w++;for(let N of _)N.match(o)&&aR({table:d,header:t,uniforms:i,uniformName:N,undefinedOnly:n})&&w++;for(let N of _)d[N]||aR({table:d,header:t,uniforms:i,uniformName:N,undefinedOnly:n})&&w++;let I=0,R={};if(!n)for(let N in i){let j=i[N];d[N]||(I++,R[N]={Type:\"NOT USED: \".concat(j),[t]:Y0(j)})}return{table:d,count:w,unusedTable:R,unusedCount:I}}function aR(e){let{table:t,header:r,uniforms:i,uniformName:n,undefinedOnly:s}=e,o=i[n],c=sst(o);return!s||!c?(t[n]={[r]:c?Y0(o):\"N/A\",\"Uniform Type\":c?o:\"NOT PROVIDED\"},!0):!1}function sst(e){return e!=null}function lR(e){let{vertexArray:t,header:r=\"Attributes\"}=e;if(!t.configuration)return{};let i={};t.elements&&(i.ELEMENT_ARRAY_BUFFER=jV(t,t.elements,null,r));let n=t.values;for(let s in n){let o=t._getAttributeInfo(s);if(o){let c=\"\".concat(s,\": \").concat(o.name),d=t.accessors[o.location];d&&(c=\"\".concat(s,\": \").concat(ost(o.name,d))),i[c]=jV(t,n[s],d,r)}}return i}function jV(e,t,r,i){let{gl:n}=e;if(!t)return{[i]:\"null\",\"Format \":\"N/A\"};let s=\"NOT PROVIDED\",o=1,c=0,d=0,_,w,I;if(r&&(s=r.type,o=r.size,s=String(s).replace(\"Array\",\"\"),_=s.indexOf(\"nt\")!==-1),t instanceof Nr){let R=t,{data:N,changed:j}=R.getDebugData();w=j?\"*\":\"\",I=N,d=R.byteLength,c=d/N.BYTES_PER_ELEMENT/o;let Y;if(r){let it=r.divisor>0;Y=\"\".concat(it?\"I \":\"P \",\" \").concat(c,\" (x\").concat(o,\"=\").concat(d,\" bytes \").concat(zu(n,s),\")\")}else _=!0,Y=\"\".concat(d,\" bytes\");return{[i]:\"\".concat(w).concat(Y0(I,{size:o,isInteger:_})),\"Format \":Y}}return I=t,o=t.length,s=String(t.constructor.name).replace(\"Array\",\"\"),_=s.indexOf(\"nt\")!==-1,{[i]:\"\".concat(Y0(I,{size:o,isInteger:_}),\" (constant)\"),\"Format \":\"\".concat(o,\"x\").concat(s,\" (constant)\")}}function ost(e,t){let{type:r,size:i}=t,n=oE(r,i);return n?\"\".concat(e,\" (\").concat(n.name,\")\"):e}function cR(e){let t={},r=\"Accessors for \".concat(e.id);for(let i of e.attributeInfos)if(i){let n=GV(i);t[\"in \".concat(n)]={[r]:JSON.stringify(i.accessor)}}for(let i of e.varyingInfos)if(i){let n=GV(i);t[\"out \".concat(n)]={[r]:JSON.stringify(i.accessor)}}return t}function GV(e){let{type:t,size:r}=e.accessor,i=oE(t,r);return i?\"\".concat(i.name,\" \").concat(e.name):e.name}var WV=Po()&&typeof document<\"u\",lst=0,$0=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{onCreateContext:r=it=>uy(it),onAddHTML:i=null,onInitialize:n=()=>{},onRender:s=()=>{},onFinalize:o=()=>{},onError:c,gl:d=null,glOptions:_={},debug:w=!1,createFramebuffer:I=!1,autoResizeViewport:R=!0,autoResizeDrawingBuffer:N=!0,stats:j=Fu.get(\"animation-loop-\".concat(lst++))}=t,{useDevicePixels:Y=!0}=t;\"useDevicePixelRatio\"in t&&(je.deprecated(\"useDevicePixelRatio\",\"useDevicePixels\")(),Y=t.useDevicePixelRatio),this.props={onCreateContext:r,onAddHTML:i,onInitialize:n,onRender:s,onFinalize:o,onError:c,gl:d,glOptions:_,debug:w,createFramebuffer:I},this.gl=d,this.needsRedraw=null,this.timeline=null,this.stats=j,this.cpuTime=this.stats.get(\"CPU Time\"),this.gpuTime=this.stats.get(\"GPU Time\"),this.frameRate=this.stats.get(\"Frame Rate\"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:R,autoResizeDrawingBuffer:N,useDevicePixels:Y}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw(t){return _e(typeof t==\"string\"),this.needsRedraw=this.needsRedraw||t,this}setProps(t){return\"autoResizeViewport\"in t&&(this.autoResizeViewport=t.autoResizeViewport),\"autoResizeDrawingBuffer\"in t&&(this.autoResizeDrawingBuffer=t.autoResizeDrawingBuffer),\"useDevicePixels\"in t&&(this.useDevicePixels=t.useDevicePixels),this}start(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;let r=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext(t),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=q0.isSupported(this.gl,[\"timers\"])?new q0(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(i=>{this._running&&(this._addCallbackData(i||{}),i!==!1&&this._startLoop())});return this.props.onError&&r.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline(t){return this.timeline=t,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw(\"waitForRender\"),this._nextFramePromise||(this._nextFramePromise=new Promise(t=>{this._resolveNextFrame=t})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw(\"toDataURL\"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,i=document.getElementById(t);return i?Number(i.value):r}setViewParameters(){return je.removed(\"AnimationLoop.setViewParameters\",\"AnimationLoop.setProps\")(),this}_startLoop(){let t=()=>{this._running&&(this.redraw(),this._animationFrameId=this._requestAnimationFrame(t))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame(t)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=WV?new Promise((t,r)=>{if(WV&&document.readyState===\"complete\"){t(document);return}window.addEventListener(\"load\",()=>{t(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay(t){this.display&&(this.display.delete(),this.display.animationLoop=null),t&&(t.animationLoop=this),this.display=t}_cancelAnimationFrame(t){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(t):Y4(t)}_requestAnimationFrame(t){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(t):Z4(t)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){let{width:t,height:r,aspect:i}=this._getSizeAndAspect();(t!==this.animationProps.width||r!==this.animationProps.height)&&this.setNeedsRedraw(\"drawing buffer resized\"),i!==this.animationProps.aspect&&this.setNeedsRedraw(\"drawing buffer aspect changed\"),this.animationProps.width=t,this.animationProps.height=r,this.animationProps.aspect=i,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData(t){typeof t==\"object\"&&t!==null&&(this.animationProps=Object.assign({},this.animationProps,t))}_createWebGLContext(t){if(this.offScreen=t.canvas&&typeof OffscreenCanvas<\"u\"&&t.canvas instanceof OffscreenCanvas,t=Object.assign({},t,this.props.glOptions),this.gl=this.props.gl?N0(this.props.gl,t):this.onCreateContext(t),!Qd(this.gl))throw new Error(\"AnimationLoop.onCreateContext - illegal context returned\");qM(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){let t=document.createElement(\"div\");document.body.appendChild(t),t.style.position=\"relative\";let r=document.createElement(\"div\");r.style.position=\"absolute\",r.style.left=\"10px\",r.style.bottom=\"10px\",r.style.width=\"300px\",r.style.background=\"white\",t.appendChild(this.gl.canvas),t.appendChild(r);let i=this.props.onAddHTML(r);i&&(r.innerHTML=i)}}_getSizeAndAspect(){let t=this.gl.drawingBufferWidth,r=this.gl.drawingBufferHeight,i=1,{canvas:n}=this.gl;return n&&n.clientHeight?i=n.clientWidth/n.clientHeight:t>0&&r>0&&(i=t/r),{width:t,height:r,aspect:i}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&H4(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new di(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get(\"GPU Time\").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){let{canvas:t}=this.gl;t&&(t.addEventListener(\"mousemove\",this._onMousemove),t.addEventListener(\"mouseleave\",this._onMouseleave))}_onMousemove(t){this.animationProps._mousePosition=[t.offsetX,t.offsetY]}_onMouseleave(t){this.animationProps._mousePosition=null}};var Q0=\"vs\",ib=\"fs\";function Ks(e,t){if(!e)throw new Error(t||\"shadertools: assertion failed.\")}var uR={number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},array:{validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function qV(e){let t={};for(let r in e){let i=e[r],n=cst(i);t[r]=n}return t}function cst(e){let t=HV(e);return t===\"object\"?e?\"type\"in e?Object.assign({},e,uR[e.type]):\"value\"in e?(t=HV(e.value),Object.assign({type:t},e,uR[t])):{type:\"object\",value:e}:{type:\"object\",value:null}:Object.assign({type:t,value:e},uR[t])}function HV(e){return Array.isArray(e)||ArrayBuffer.isView(e)?\"array\":typeof e}var ust=\"vs\",hst=\"fs\",Ay=class{constructor(t){let{name:r,vs:i,fs:n,dependencies:s=[],uniforms:o,getUniforms:c,deprecations:d=[],defines:_={},inject:w={},vertexShader:I,fragmentShader:R}=t;Ks(typeof r==\"string\"),this.name=r,this.vs=i||I,this.fs=n||R,this.getModuleUniforms=c,this.dependencies=s,this.deprecations=this._parseDeprecationDefinitions(d),this.defines=_,this.injections=fst(w),o&&(this.uniforms=qV(o))}getModuleSource(t){let r;switch(t){case ust:r=this.vs||\"\";break;case hst:r=this.fs||\"\";break;default:Ks(!1)}return\"#define MODULE_\".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,\"_\"),`\n`).concat(r,\"// END MODULE_\").concat(this.name,`\n\n`)}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):this.uniforms?this._defaultGetUniforms(t):{}}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{i.regex.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case\"function\":r.regex=new RegExp(\"\\\\b\".concat(r.old,\"\\\\(\"));break;default:r.regex=new RegExp(\"\".concat(r.type,\" \").concat(r.old,\";\"))}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let n in i){let s=i[n];n in t&&!s.private?(s.validate&&Ks(s.validate(t[n],s),\"\".concat(this.name,\": invalid \").concat(n)),r[n]=t[n]):r[n]=s.value}return r}};function fst(e){let t={vs:{},fs:{}};for(let r in e){let i=e[r],n=r.slice(0,2);typeof i==\"string\"&&(i={order:0,injection:i}),t[n][r]=i}return t}function ZV(e){return dst($V(e))}function dst(e){let t={},r={};return YV({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,n)=>r[n]-r[i]).map(i=>t[i])}function YV(e){let{modules:t,level:r,moduleMap:i,moduleDepth:n}=e;if(r>=5)throw new Error(\"Possible loop in shader dependency graph\");for(let s of t)i[s.name]=s,(n[s.name]===void 0||n[s.name](r instanceof Ay||(Ks(typeof r!=\"string\",\"Shader module use by name is deprecated. Import shader module '\".concat(r,\"' and use it directly.\")),Ks(r.name,\"shader module has no name\"),r=new Ay(r),r.dependencies=$V(r.dependencies)),r))}function hR(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<\"u\"?window.navigator||{}:{},r=e.userAgent||t.userAgent||\"\",i=r.indexOf(\"MSIE \")!==-1,n=r.indexOf(\"Trident/\")!==-1;return i||n}var pst=7936,Ast=7937,mst=7938,gst=35724,dR={GLSL_FRAG_DATA:[\"WEBGL_draw_buffers\",!0],GLSL_FRAG_DEPTH:[\"EXT_frag_depth\",!0],GLSL_DERIVATIVES:[\"OES_standard_derivatives\",!0],GLSL_TEXTURE_LOD:[\"EXT_shader_texture_lod\",!0]},ZA={};Object.keys(dR).forEach(e=>{ZA[e]=e});function _st(e){return typeof WebGL2RenderingContext<\"u\"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}function QV(e){let t=e.getExtension(\"WEBGL_debug_renderer_info\"),r=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||pst),i=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||Ast);return{gpuVendor:yst(r,i),vendor:r,renderer:i,version:e.getParameter(mst),shadingLanguageVersion:e.getParameter(gst)}}function yst(e,t){return e.match(/NVIDIA/i)||t.match(/NVIDIA/i)?\"NVIDIA\":e.match(/INTEL/i)||t.match(/INTEL/i)?\"INTEL\":e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i)?\"AMD\":\"UNKNOWN GPU\"}var fR={};function pR(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=dR[t];if(Ks(i,t),!hR(r))return!0;if(t in fR)return fR[t];let n=i[0],s=r.behavior||\"enable\",o=\"#extension GL_\".concat(n,\" : \").concat(s,`\nvoid main(void) {}`),c=e.createShader(35633);e.shaderSource(c,o),e.compileShader(c);let d=e.getShaderParameter(c,35713);return e.deleteShader(c),fR[t]=d,d}function vst(e,t){let r=dR[t];Ks(r,t);let i=_st(e)&&r[1]||r[0],n=typeof i==\"string\"?!!e.getExtension(i):i;return Ks(n===!1||n===!0),n}function nb(e,t){return t=Array.isArray(t)?t:[t],t.every(r=>vst(e,r))}function XV(e){switch(QV(e).gpuVendor.toLowerCase()){case\"nvidia\":return`#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n`;case\"intel\":return`#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`;case\"amd\":return`#define AMD_GPU\n`;default:return`#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n`}}function KV(e,t,r){let i=`#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n`;return nb(e,ZA.GLSL_FRAG_DEPTH)&&(i+=`\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n`),nb(e,ZA.GLSL_DERIVATIVES)&&pR(e,ZA.GLSL_DERIVATIVES)&&(i+=`\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n`),nb(e,ZA.GLSL_FRAG_DATA)&&pR(e,ZA.GLSL_FRAG_DATA,{behavior:\"require\"})&&(i+=`\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n`),nb(e,ZA.GLSL_TEXTURE_LOD)&&(i+=`// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n`),i}var JV=`#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n`,tj=`#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n`;var xst={[Q0]:JV,[ib]:tj},sb=\"__LUMA_INJECT_DECLARATIONS__\",ej=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/,rj=/}\\n?[^{}]*$/,AR=[];function cE(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,n=t===Q0;for(let s in r){let o=r[s];o.sort((d,_)=>d.order-_.order),AR.length=o.length;for(let d=0,_=o.length;d<_;++d)AR[d]=o[d].injection;let c=\"\".concat(AR.join(`\n`),`\n`);switch(s){case\"vs:#decl\":n&&(e=e.replace(sb,c));break;case\"vs:#main-start\":n&&(e=e.replace(ej,d=>d+c));break;case\"vs:#main-end\":n&&(e=e.replace(rj,d=>c+d));break;case\"fs:#decl\":n||(e=e.replace(sb,c));break;case\"fs:#main-start\":n||(e=e.replace(ej,d=>d+c));break;case\"fs:#main-end\":n||(e=e.replace(rj,d=>c+d));break;default:e=e.replace(s,d=>d+c)}}return e=e.replace(sb,\"\"),i&&(e=e.replace(/\\}\\s*$/,s=>s+xst[t])),e}function my(e){let t={};return Ks(Array.isArray(e)&&e.length>1),e.forEach(r=>{for(let i in r)t[i]=t[i]?\"\".concat(t[i],`\n`).concat(r[i]):r[i]}),t}function gy(e){return new RegExp(\"\\\\b\".concat(e,\"[ \\\\t]+(\\\\w+[ \\\\t]+\\\\w+(\\\\[\\\\w+\\\\])?;)\"),\"g\")}var ij=[[/^(#version[ \\t]+(100|300[ \\t]+es))?[ \\t]*\\n/,`#version 300 es\n`],[/\\btexture(2D|2DProj|Cube)Lod(EXT)?\\(/g,\"textureLod(\"],[/\\btexture(2D|2DProj|Cube)(EXT)?\\(/g,\"texture(\"]],bst=[...ij,[gy(\"attribute\"),\"in $1\"],[gy(\"varying\"),\"out $1\"]],wst=[...ij,[gy(\"varying\"),\"in $1\"]],nj=[[/^#version[ \\t]+300[ \\t]+es/,\"#version 100\"],[/\\btexture(2D|2DProj|Cube)Lod\\(/g,\"texture$1LodEXT(\"],[/\\btexture\\(/g,\"texture2D(\"],[/\\btextureLod\\(/g,\"texture2DLodEXT(\"]],Sst=[...nj,[gy(\"in\"),\"attribute $1\"],[gy(\"out\"),\"varying $1\"]],Tst=[...nj,[gy(\"in\"),\"varying $1\"]],mR=\"gl_FragColor\",gR=/\\bout[ \\t]+vec4[ \\t]+(\\w+)[ \\t]*;\\n?/,Mst=/void\\s+main\\s*\\([^)]*\\)\\s*\\{\\n?/;function _R(e,t,r){switch(t){case 300:return r?uE(e,bst):Est(e);case 100:return r?uE(e,Sst):Pst(e);default:throw new Error(\"unknown GLSL version \".concat(t))}}function uE(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function Est(e){e=uE(e,wst);let t=e.match(gR);if(t){let r=t[1];e=e.replace(new RegExp(\"\\\\b\".concat(mR,\"\\\\b\"),\"g\"),r)}else{let r=\"fragmentColor\";e=e.replace(Mst,i=>\"out vec4 \".concat(r,`;\n`).concat(i)).replace(new RegExp(\"\\\\b\".concat(mR,\"\\\\b\"),\"g\"),r)}return e}function Pst(e){e=uE(e,Tst);let t=e.match(gR);if(t){let r=t[1];e=e.replace(gR,\"\").replace(new RegExp(\"\\\\b\".concat(r,\"\\\\b\"),\"g\"),mR)}return e}var Ist=`\n\n`.concat(sb,`\n\n`),oj={[Q0]:\"vertex\",[ib]:\"fragment\"},Cst=`precision highp float;\n\n`;function yR(e,t){let{vs:r,fs:i}=t,n=ZV(t.modules||[]);return{gl:e,vs:sj(e,Object.assign({},t,{source:r,type:Q0,modules:n})),fs:sj(e,Object.assign({},t,{source:i,type:ib,modules:n})),getUniforms:Lst(n)}}function sj(e,t){let{id:r,source:i,type:n,modules:s,defines:o={},hookFunctions:c=[],inject:d={},transpileToGLSL100:_=!1,prologue:w=!0,log:I}=t;Ks(typeof i==\"string\",\"shader source must be a string\");let R=n===Q0,N=i.split(`\n`),j=100,Y=\"\",it=i;N[0].indexOf(\"#version \")===0?(j=300,Y=N[0],it=N.slice(1).join(`\n`)):Y=\"#version \".concat(j);let Z={};s.forEach(Yt=>{Object.assign(Z,Yt.getDefines())}),Object.assign(Z,o);let K=w?\"\".concat(Y,`\n`).concat(Rst({id:r,source:i,type:n}),`\n`).concat(kst({type:n}),`\n`).concat(XV(e),`\n`).concat(KV(e,j,!R),`\n`).concat(Dst(Z),`\n`).concat(R?\"\":Cst,`\n`):\"\".concat(Y,`\n`),J=Bst(c),ht={},Tt={},Ot={};for(let Yt in d){let te=typeof d[Yt]==\"string\"?{injection:d[Yt],order:0}:d[Yt],oe=Yt.match(/^(v|f)s:(#)?([\\w-]+)$/);if(oe){let ae=oe[2],Le=oe[3];ae?Le===\"decl\"?Tt[Yt]=[te]:Ot[Yt]=[te]:ht[Yt]=[te]}else Ot[Yt]=[te]}for(let Yt of s){I&&Yt.checkDeprecations(it,I);let te=Yt.getModuleSource(n,j);K+=te;let oe=Yt.injections[n];for(let ae in oe){let Le=ae.match(/^(v|f)s:#([\\w-]+)$/);if(Le){let lr=Le[2]===\"decl\"?Tt:Ot;lr[ae]=lr[ae]||[],lr[ae].push(oe[ae])}else ht[ae]=ht[ae]||[],ht[ae].push(oe[ae])}}return K+=Ist,K=cE(K,n,Tt),K+=Ost(J[n],ht),K+=it,K=cE(K,n,Ot),K=_R(K,_?100:j,R),K}function Lst(e){return function(r){let i={};for(let n of e){let s=n.getUniforms(r,i);Object.assign(i,s)}return i}}function kst(e){let{type:t}=e;return`\n#define SHADER_TYPE_`.concat(oj[t].toUpperCase(),`\n`)}function Rst(e){let{id:t,source:r,type:i}=e;return t&&typeof t==\"string\"&&r.indexOf(\"SHADER_NAME\")===-1?`\n#define SHADER_NAME `.concat(t,\"_\").concat(oj[i],`\n\n`):\"\"}function Dst(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r=\"\";for(let i in e){t===0&&(r+=`\n// APPLICATION DEFINES\n`),t++;let n=e[i];(n||Number.isFinite(n))&&(r+=\"#define \".concat(i.toUpperCase(),\" \").concat(e[i],`\n`))}return t===0&&(r+=`\n`),r}function Ost(e,t){let r=\"\";for(let i in e){let n=e[i];if(r+=\"void \".concat(n.signature,` {\n`),n.header&&(r+=\" \".concat(n.header)),t[i]){let s=t[i];s.sort((o,c)=>o.order-c.order);for(let o of s)r+=\" \".concat(o.injection,`\n`)}n.footer&&(r+=\" \".concat(n.footer)),r+=`}\n`}return r}function Bst(e){let t={vs:{},fs:{}};return e.forEach(r=>{let i;typeof r!=\"string\"?(i=r,r=i.hook):i={},r=r.trim();let[n,s]=r.split(\":\"),o=r.replace(/\\(.+/,\"\");t[n][o]=Object.assign(i,{signature:s})}),t}var Fst=\"void main() {gl_FragColor = vec4(0);}\",aj=`out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}`,zst=`#version 300 es\n`.concat(aj);function hE(e,t){t=Array.isArray(t)?t:[t];let r=e.replace(/^\\s+/,\"\").split(/\\s+/),[i,n,s]=r;if(!t.includes(i)||!n||!s)return null;let o=s.split(\";\")[0];return{qualifier:i,type:n,name:o}}function ob(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{version:t=100,input:r,inputType:i,output:n}=e;if(!r)return t===300?zst:t>300?\"#version \".concat(t,`\n`).concat(aj):Fst;let s=lj(r,i);return t>=300?\"#version \".concat(t,\" \").concat(t===300?\"es\":\"\",`\nin `).concat(i,\" \").concat(r,`;\nout vec4 `).concat(n,`;\nvoid main() {\n `).concat(n,\" = \").concat(s,`;\n}`):\"varying \".concat(i,\" \").concat(r,`;\nvoid main() {\n gl_FragColor = `).concat(s,`;\n}`)}function vR(e){switch(e){case\"float\":return\"x\";case\"vec2\":return\"xy\";case\"vec3\":return\"xyz\";case\"vec4\":return\"xyzw\";default:return Ks(!1),null}}function xR(e){switch(e){case\"float\":return 1;case\"vec2\":return 2;case\"vec3\":return 3;case\"vec4\":return 4;default:return Ks(!1),null}}function lj(e,t){switch(t){case\"float\":return\"vec4(\".concat(e,\", 0.0, 0.0, 1.0)\");case\"vec2\":return\"vec4(\".concat(e,\", 0.0, 1.0)\");case\"vec3\":return\"vec4(\".concat(e,\", 1.0)\");case\"vec4\":return e;default:return Ks(!1),null}}var Nst=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\nconst float TWO_PI = 6.2831854820251465;\nconst float PI_2 = 1.5707963705062866;\nconst float PI_16 = 0.1963495463132858;\n\nconst float SIN_TABLE_0 = 0.19509032368659973;\nconst float SIN_TABLE_1 = 0.3826834261417389;\nconst float SIN_TABLE_2 = 0.5555702447891235;\nconst float SIN_TABLE_3 = 0.7071067690849304;\n\nconst float COS_TABLE_0 = 0.9807852506637573;\nconst float COS_TABLE_1 = 0.9238795042037964;\nconst float COS_TABLE_2 = 0.8314695954322815;\nconst float COS_TABLE_3 = 0.7071067690849304;\n\nconst float INVERSE_FACTORIAL_3 = 1.666666716337204e-01;\nconst float INVERSE_FACTORIAL_5 = 8.333333767950535e-03;\nconst float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04;\nconst float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06;\n\nfloat sin_taylor_fp32(float a) {\n float r, s, t, x;\n\n if (a == 0.0) {\n return 0.0;\n }\n\n x = -a * a;\n s = a;\n r = a;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_3;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_5;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_7;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_9;\n s = s + t;\n\n return s;\n}\n\nvoid sincos_taylor_fp32(float a, out float sin_t, out float cos_t) {\n if (a == 0.0) {\n sin_t = 0.0;\n cos_t = 1.0;\n }\n sin_t = sin_taylor_fp32(a);\n cos_t = sqrt(1.0 - sin_t * sin_t);\n}\n\nfloat tan_taylor_fp32(float a) {\n float sin_a;\n float cos_a;\n\n if (a == 0.0) {\n return 0.0;\n }\n float z = floor(a / TWO_PI);\n float r = a - TWO_PI * z;\n\n float t;\n float q = floor(r / PI_2 + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return 1.0 / 0.0;\n }\n\n t = r - PI_2 * q;\n\n q = floor(t / PI_16 + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return 1.0 / 0.0;\n } else {\n t = t - PI_16 * q;\n }\n\n float u = 0.0;\n float v = 0.0;\n\n float sin_t, cos_t;\n float s, c;\n sincos_taylor_fp32(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0;\n v = SIN_TABLE_0;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1;\n v = SIN_TABLE_1;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2;\n v = SIN_TABLE_2;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3;\n v = SIN_TABLE_3;\n }\n if (k > 0) {\n s = u * sin_t + v * cos_t;\n c = u * cos_t - v * sin_t;\n } else {\n s = u * sin_t - v * cos_t;\n c = u * cos_t + v * sin_t;\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return sin_a / cos_a;\n}\n#endif\n\nfloat tan_fp32(float a) {\n#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\n return tan_taylor_fp32(a);\n#else\n return tan(a);\n#endif\n}\n`,fE={name:\"fp32\",vs:Nst,fs:null};function Lh(e,t){if(!e)throw new Error(\"math.gl assertion \".concat(t))}var ILt=1/Math.PI*180,CLt=1/180*Math.PI,Js={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function bR(e,{precision:t=Js.precision}={}){return e=Ust(e),\"\".concat(parseFloat(e.toPrecision(t)))}function kh(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Tl(e,t,r){return jst(e,i=>Math.max(t,Math.min(r,i)))}function Ql(e,t,r){return kh(e)?e.map((i,n)=>Ql(i,t[n],r)):r*t+(1-r)*e}function Co(e,t,r){let i=Js.EPSILON;r&&(Js.EPSILON=r);try{if(e===t)return!0;if(kh(e)&&kh(t)){if(e.length!==t.length)return!1;for(let n=0;n0?\", \":\"\")+bR(this[i],t);return\"\".concat(t.printTypes?this.constructor.name:\"\",\"[\").concat(r,\"]\")}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r=0&&t=0&&t0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function MR(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function xy(e,t,r){var i=t[0],n=t[1],s=t[2],o=r[0],c=r[1],d=r[2];return e[0]=n*d-s*c,e[1]=s*o-i*d,e[2]=i*c-n*o,e}function mj(e,t,r,i){var n=t[0],s=t[1],o=t[2];return e[0]=n+i*(r[0]-n),e[1]=s+i*(r[1]-s),e[2]=o+i*(r[2]-o),e}function by(e,t,r){var i=t[0],n=t[1],s=t[2],o=r[3]*i+r[7]*n+r[11]*s+r[15];return o=o||1,e[0]=(r[0]*i+r[4]*n+r[8]*s+r[12])/o,e[1]=(r[1]*i+r[5]*n+r[9]*s+r[13])/o,e[2]=(r[2]*i+r[6]*n+r[10]*s+r[14])/o,e}function gE(e,t,r){var i=t[0],n=t[1],s=t[2];return e[0]=i*r[0]+n*r[3]+s*r[6],e[1]=i*r[1]+n*r[4]+s*r[7],e[2]=i*r[2]+n*r[5]+s*r[8],e}function _E(e,t,r){var i=r[0],n=r[1],s=r[2],o=r[3],c=t[0],d=t[1],_=t[2],w=n*_-s*d,I=s*c-i*_,R=i*d-n*c,N=n*R-s*I,j=s*w-i*R,Y=i*I-n*w,it=o*2;return w*=it,I*=it,R*=it,N*=2,j*=2,Y*=2,e[0]=c+w+N,e[1]=d+I+j,e[2]=_+R+Y,e}function gj(e,t,r,i){var n=[],s=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],s[0]=n[0],s[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),s[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function _j(e,t,r,i){var n=[],s=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],s[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),s[1]=n[1],s[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function yj(e,t,r,i){var n=[],s=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],s[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),s[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),s[2]=n[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function vj(e,t){var r=e[0],i=e[1],n=e[2],s=t[0],o=t[1],c=t[2],d=Math.sqrt(r*r+i*i+n*n),_=Math.sqrt(s*s+o*o+c*c),w=d*_,I=w&&MR(e,t)/w;return Math.acos(Math.min(Math.max(I,-1),1))}var yE=Zst;var vE=qst,xE=Yst,GLt=function(){var e=SR();return function(t,r,i,n,s,o){var c,d;for(r||(r=3),i||(i=0),n?d=Math.min(n*r+i,t.length):d=t.length,c=i;c0?this.copy([t,...r]):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this.check()}identity(){return this.copy($st)}fromObject(t){return this.check()}fromQuaternion(t){return Ej(this,t),this.check()}set(t,r,i,n,s,o,c,d,_){return this[0]=t,this[1]=r,this[2]=i,this[3]=n,this[4]=s,this[5]=o,this[6]=c,this[7]=d,this[8]=_,this.check()}setRowMajor(t,r,i,n,s,o,c,d,_){return this[0]=t,this[1]=n,this[2]=c,this[3]=r,this[4]=s,this[5]=d,this[6]=i,this[7]=o,this[8]=_,this.check()}determinant(){return Sj(this)}transpose(){return bj(this,this),this.check()}invert(){return wj(this,this),this.check()}multiplyLeft(t){return PR(this,t,this),this.check()}multiplyRight(t){return PR(this,this,t),this.check()}rotate(t){return Mj(this,this,t),this.check()}scale(t){return Array.isArray(t)?IR(this,this,t):IR(this,this,[t,t]),this.check()}translate(t){return Tj(this,this,t),this.check()}transform(t,r){let i;switch(t.length){case 2:i=cj(r||[-0,-0],t,this);break;case 3:i=gE(r||[-0,-0,-0],t,this);break;case 4:i=mE(r||[-0,-0,-0,-0],t,this);break;default:throw new Error(\"Illegal vector\")}return YA(i,t.length),i}transformVector(t,r){return this.transform(t,r)}transformVector2(t,r){return this.transform(t,r)}transformVector3(t,r){return this.transform(t,r)}},SE,TE;function Qst(){return SE||(SE=new ss([0,0,0,0,0,0,0,0,0]),Object.freeze(SE)),SE}function Xst(){return TE||(TE=new ss,Object.freeze(TE)),TE}function Kst(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ij(e,t){if(e===t){var r=t[1],i=t[2],n=t[3],s=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=i,e[9]=s,e[11]=t[14],e[12]=n,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function lb(e,t){var r=t[0],i=t[1],n=t[2],s=t[3],o=t[4],c=t[5],d=t[6],_=t[7],w=t[8],I=t[9],R=t[10],N=t[11],j=t[12],Y=t[13],it=t[14],Z=t[15],K=r*c-i*o,J=r*d-n*o,ht=r*_-s*o,Tt=i*d-n*c,Ot=i*_-s*c,Yt=n*_-s*d,te=w*Y-I*j,oe=w*it-R*j,ae=w*Z-N*j,Le=I*it-R*Y,sr=I*Z-N*Y,lr=R*Z-N*it,Cr=K*lr-J*sr+ht*Le+Tt*ae-Ot*oe+Yt*te;return Cr?(Cr=1/Cr,e[0]=(c*lr-d*sr+_*Le)*Cr,e[1]=(n*sr-i*lr-s*Le)*Cr,e[2]=(Y*Yt-it*Ot+Z*Tt)*Cr,e[3]=(R*Ot-I*Yt-N*Tt)*Cr,e[4]=(d*ae-o*lr-_*oe)*Cr,e[5]=(r*lr-n*ae+s*oe)*Cr,e[6]=(it*ht-j*Yt-Z*J)*Cr,e[7]=(w*Yt-R*ht+N*J)*Cr,e[8]=(o*sr-c*ae+_*te)*Cr,e[9]=(i*ae-r*sr-s*te)*Cr,e[10]=(j*Ot-Y*ht+Z*K)*Cr,e[11]=(I*ht-w*Ot-N*K)*Cr,e[12]=(c*oe-o*Le-d*te)*Cr,e[13]=(r*Le-i*oe+n*te)*Cr,e[14]=(Y*J-j*Tt-it*K)*Cr,e[15]=(w*Tt-I*J+R*K)*Cr,e):null}function Cj(e){var t=e[0],r=e[1],i=e[2],n=e[3],s=e[4],o=e[5],c=e[6],d=e[7],_=e[8],w=e[9],I=e[10],R=e[11],N=e[12],j=e[13],Y=e[14],it=e[15],Z=t*o-r*s,K=t*c-i*s,J=t*d-n*s,ht=r*c-i*o,Tt=r*d-n*o,Ot=i*d-n*c,Yt=_*j-w*N,te=_*Y-I*N,oe=_*it-R*N,ae=w*Y-I*j,Le=w*it-R*j,sr=I*it-R*Y;return Z*sr-K*Le+J*ae+ht*oe-Tt*te+Ot*Yt}function Kf(e,t,r){var i=t[0],n=t[1],s=t[2],o=t[3],c=t[4],d=t[5],_=t[6],w=t[7],I=t[8],R=t[9],N=t[10],j=t[11],Y=t[12],it=t[13],Z=t[14],K=t[15],J=r[0],ht=r[1],Tt=r[2],Ot=r[3];return e[0]=J*i+ht*c+Tt*I+Ot*Y,e[1]=J*n+ht*d+Tt*R+Ot*it,e[2]=J*s+ht*_+Tt*N+Ot*Z,e[3]=J*o+ht*w+Tt*j+Ot*K,J=r[4],ht=r[5],Tt=r[6],Ot=r[7],e[4]=J*i+ht*c+Tt*I+Ot*Y,e[5]=J*n+ht*d+Tt*R+Ot*it,e[6]=J*s+ht*_+Tt*N+Ot*Z,e[7]=J*o+ht*w+Tt*j+Ot*K,J=r[8],ht=r[9],Tt=r[10],Ot=r[11],e[8]=J*i+ht*c+Tt*I+Ot*Y,e[9]=J*n+ht*d+Tt*R+Ot*it,e[10]=J*s+ht*_+Tt*N+Ot*Z,e[11]=J*o+ht*w+Tt*j+Ot*K,J=r[12],ht=r[13],Tt=r[14],Ot=r[15],e[12]=J*i+ht*c+Tt*I+Ot*Y,e[13]=J*n+ht*d+Tt*R+Ot*it,e[14]=J*s+ht*_+Tt*N+Ot*Z,e[15]=J*o+ht*w+Tt*j+Ot*K,e}function J0(e,t,r){var i=r[0],n=r[1],s=r[2],o,c,d,_,w,I,R,N,j,Y,it,Z;return t===e?(e[12]=t[0]*i+t[4]*n+t[8]*s+t[12],e[13]=t[1]*i+t[5]*n+t[9]*s+t[13],e[14]=t[2]*i+t[6]*n+t[10]*s+t[14],e[15]=t[3]*i+t[7]*n+t[11]*s+t[15]):(o=t[0],c=t[1],d=t[2],_=t[3],w=t[4],I=t[5],R=t[6],N=t[7],j=t[8],Y=t[9],it=t[10],Z=t[11],e[0]=o,e[1]=c,e[2]=d,e[3]=_,e[4]=w,e[5]=I,e[6]=R,e[7]=N,e[8]=j,e[9]=Y,e[10]=it,e[11]=Z,e[12]=o*i+w*n+j*s+t[12],e[13]=c*i+I*n+Y*s+t[13],e[14]=d*i+R*n+it*s+t[14],e[15]=_*i+N*n+Z*s+t[15]),e}function wy(e,t,r){var i=r[0],n=r[1],s=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*s,e[9]=t[9]*s,e[10]=t[10]*s,e[11]=t[11]*s,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Lj(e,t,r,i){var n=i[0],s=i[1],o=i[2],c=Math.hypot(n,s,o),d,_,w,I,R,N,j,Y,it,Z,K,J,ht,Tt,Ot,Yt,te,oe,ae,Le,sr,lr,Cr,un;return c0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=i*o,e[2]=n*o,e[3]=s*o,e}function jj(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Gj(e,t,r,i){var n=t[0],s=t[1],o=t[2],c=t[3];return e[0]=n+i*(r[0]-n),e[1]=s+i*(r[1]-s),e[2]=o+i*(r[2]-o),e[3]=c+i*(r[3]-c),e}function Dh(e,t,r){var i=t[0],n=t[1],s=t[2],o=t[3];return e[0]=r[0]*i+r[4]*n+r[8]*s+r[12]*o,e[1]=r[1]*i+r[5]*n+r[9]*s+r[13]*o,e[2]=r[2]*i+r[6]*n+r[10]*s+r[14]*o,e[3]=r[3]*i+r[7]*n+r[11]*s+r[15]*o,e}function Wj(e,t,r){var i=t[0],n=t[1],s=t[2],o=r[0],c=r[1],d=r[2],_=r[3],w=_*i+c*s-d*n,I=_*n+d*i-o*s,R=_*s+o*n-c*i,N=-o*i-c*n-d*s;return e[0]=w*_+N*-o+I*-d-R*-c,e[1]=I*_+N*-c+R*-o-w*-d,e[2]=R*_+N*-d+w*-c-I*-o,e[3]=t[3],e}var lkt=function(){var e=eot();return function(t,r,i,n,s,o){var c,d;for(r||(r=4),i||(i=0),n?d=Math.min(n*r+i,t.length):d=t.length,c=i;cMath.PI*2)throw Error(\"expected radians\")}function aot(e,t,r,i,n,s){let o=2*s/(r-t),c=2*s/(n-i),d=(r+t)/(r-t),_=(n+i)/(n-i),w=-1,I=-1,R=-2*s;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=d,e[9]=_,e[10]=w,e[11]=I,e[12]=0,e[13]=0,e[14]=R,e[15]=0,e}function qj(){var e=new xa(4);return xa!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Zj(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function OR(e,t,r){r=r*.5;var i=Math.sin(r);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(r),e}function BR(e,t,r){var i=t[0],n=t[1],s=t[2],o=t[3],c=r[0],d=r[1],_=r[2],w=r[3];return e[0]=i*w+o*c+n*_-s*d,e[1]=n*w+o*d+s*c-i*_,e[2]=s*w+o*_+i*d-n*c,e[3]=o*w-i*c-n*d-s*_,e}function Yj(e,t,r){r*=.5;var i=t[0],n=t[1],s=t[2],o=t[3],c=Math.sin(r),d=Math.cos(r);return e[0]=i*d+o*c,e[1]=n*d+s*c,e[2]=s*d-n*c,e[3]=o*d-i*c,e}function $j(e,t,r){r*=.5;var i=t[0],n=t[1],s=t[2],o=t[3],c=Math.sin(r),d=Math.cos(r);return e[0]=i*d-s*c,e[1]=n*d+o*c,e[2]=s*d+i*c,e[3]=o*d-n*c,e}function Qj(e,t,r){r*=.5;var i=t[0],n=t[1],s=t[2],o=t[3],c=Math.sin(r),d=Math.cos(r);return e[0]=i*d+n*c,e[1]=n*d-i*c,e[2]=s*d+o*c,e[3]=o*d-s*c,e}function Xj(e,t){var r=t[0],i=t[1],n=t[2];return e[0]=r,e[1]=i,e[2]=n,e[3]=Math.sqrt(Math.abs(1-r*r-i*i-n*n)),e}function ub(e,t,r,i){var n=t[0],s=t[1],o=t[2],c=t[3],d=r[0],_=r[1],w=r[2],I=r[3],R,N,j,Y,it;return N=n*d+s*_+o*w+c*I,N<0&&(N=-N,d=-d,_=-_,w=-w,I=-I),1-N>Rh?(R=Math.acos(N),j=Math.sin(R),Y=Math.sin((1-i)*R)/j,it=Math.sin(i*R)/j):(Y=1-i,it=i),e[0]=Y*n+it*d,e[1]=Y*s+it*_,e[2]=Y*o+it*w,e[3]=Y*c+it*I,e}function Kj(e,t){var r=t[0],i=t[1],n=t[2],s=t[3],o=r*r+i*i+n*n+s*s,c=o?1/o:0;return e[0]=-r*c,e[1]=-i*c,e[2]=-n*c,e[3]=s*c,e}function Jj(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function FR(e,t){var r=t[0]+t[4]+t[8],i;if(r>0)i=Math.sqrt(r+1),e[3]=.5*i,i=.5/i,e[0]=(t[5]-t[7])*i,e[1]=(t[6]-t[2])*i,e[2]=(t[1]-t[3])*i;else{var n=0;t[4]>t[0]&&(n=1),t[8]>t[n*3+n]&&(n=2);var s=(n+1)%3,o=(n+2)%3;i=Math.sqrt(t[n*3+n]-t[s*3+s]-t[o*3+o]+1),e[n]=.5*i,i=.5/i,e[3]=(t[s*3+o]-t[o*3+s])*i,e[s]=(t[s*3+n]+t[n*3+s])*i,e[o]=(t[o*3+n]+t[n*3+o])*i}return e}var t7=zj;var e7=Sy,r7=jj,i7=Gj,n7=Nj;var s7=Uj;var o7=Vj;var a7=function(){var e=SR(),t=TR(1,0,0),r=TR(0,1,0);return function(i,n,s){var o=MR(n,s);return o<-.999999?(xy(e,t,n),vE(e)<1e-6&&xy(e,r,n),Aj(e,e),OR(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(xy(e,n,s),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,o7(i,i))}}(),ykt=function(){var e=qj(),t=qj();return function(r,i,n,s,o,c){return ub(e,i,o,c),ub(t,n,s,c),ub(r,e,t,2*c*(1-c)),r}}(),vkt=function(){var e=xj();return function(t,r,i,n){return e[0]=i[0],e[3]=i[1],e[6]=i[2],e[1]=n[0],e[4]=n[1],e[7]=n[2],e[2]=-r[0],e[5]=-r[1],e[8]=-r[2],o7(t,FR(t,e))}}();var cot=[0,0,0,1],tg=class extends ep{constructor(t=0,r=0,i=0,n=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,r,i,n)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,r,i,n){return this[0]=t,this[1]=r,this[2]=i,this[3]=n,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return FR(this,t),this.check()}fromAxisRotation(t,r){return OR(this,t,r),this.check()}identity(){return Zj(this),this.check()}setAxisAngle(t,r){return this.fromAxisRotation(t,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=ji(t)}get y(){return this[1]}set y(t){this[1]=ji(t)}get z(){return this[2]}set z(t){this[2]=ji(t)}get w(){return this[3]}set w(t){this[3]=ji(t)}len(){return n7(this)}lengthSquared(){return s7(this)}dot(t){return r7(this,t)}rotationTo(t,r){return a7(this,t,r),this.check()}add(t){return t7(this,this,t),this.check()}calculateW(){return Xj(this,this),this.check()}conjugate(){return Jj(this,this),this.check()}invert(){return Kj(this,this),this.check()}lerp(t,r,i){return i===void 0?this.lerp(this,t,r):(i7(this,t,r,i),this.check())}multiplyRight(t){return BR(this,this,t),this.check()}multiplyLeft(t){return BR(this,t,this),this.check()}normalize(){let t=this.len(),r=t>0?1/t:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,t===0&&(this[3]=1),this.check()}rotateX(t){return Yj(this,this,t),this.check()}rotateY(t){return $j(this,this,t),this.check()}rotateZ(t){return Qj(this,this,t),this.check()}scale(t){return e7(this,this,t),this.check()}slerp(t,r,i){let n,s,o;switch(arguments.length){case 1:({start:n=cot,target:s,ratio:o}=t);break;case 2:n=this,s=t,o=r;break;default:n=t,s=r,o=i}return ub(this,n,s,o),this.check()}transformVector4(t,r=new ab){return Wj(r,t,this),YA(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,r){return this.setAxisAngle(t,r)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var CE={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2};var zR=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\n\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nuniform AmbientLight lighting_uAmbientLight;\nuniform PointLight lighting_uPointLight[MAX_LIGHTS];\nuniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];\nuniform int lighting_uPointLightCount;\nuniform int lighting_uDirectionalLightCount;\n\nuniform bool lighting_uEnabled;\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\n#endif\n`;var uot={lightSources:{}};function NR(){let{color:e=[0,0,0],intensity:t=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.map(r=>r*t/255)}function hot(e){let{ambientLight:t,pointLights:r=[],directionalLights:i=[]}=e,n={};return t?n[\"lighting_uAmbientLight.color\"]=NR(t):n[\"lighting_uAmbientLight.color\"]=[0,0,0],r.forEach((s,o)=>{n[\"lighting_uPointLight[\".concat(o,\"].color\")]=NR(s),n[\"lighting_uPointLight[\".concat(o,\"].position\")]=s.position,n[\"lighting_uPointLight[\".concat(o,\"].attenuation\")]=s.attenuation||[1,0,0]}),n.lighting_uPointLightCount=r.length,i.forEach((s,o)=>{n[\"lighting_uDirectionalLight[\".concat(o,\"].color\")]=NR(s),n[\"lighting_uDirectionalLight[\".concat(o,\"].direction\")]=s.direction}),n.lighting_uDirectionalLightCount=i.length,n}function l7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:uot;if(\"lightSources\"in e){let{ambientLight:t,pointLights:r,directionalLights:i}=e.lightSources||{};return t||r&&r.length>0||i&&i.length>0?Object.assign({},hot({ambientLight:t,pointLights:r,directionalLights:i}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if(\"lights\"in e){let t={pointLights:[],directionalLights:[]};for(let r of e.lights||[])switch(r.type){case\"ambient\":t.ambientLight=r;break;case\"directional\":t.directionalLights.push(r);break;case\"point\":t.pointLights.push(r);break;default:}return l7({lightSources:t})}return{}}var UR={name:\"lights\",vs:zR,fs:zR,getUniforms:l7,defines:{MAX_LIGHTS:3}};var fot=new Uint8Array([0,255,255,255]),dot={pickingSelectedColor:null,pickingHighlightColor:fot,pickingActive:!1,pickingAttribute:!1};function pot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:dot,t={};if(e.pickingSelectedColor!==void 0)if(!e.pickingSelectedColor)t.picking_uSelectedColorValid=0;else{let r=e.pickingSelectedColor.slice(0,3);t.picking_uSelectedColorValid=1,t.picking_uSelectedColor=r}if(e.pickingHighlightColor){let r=Array.from(e.pickingHighlightColor,i=>i/255);Number.isFinite(r[3])||(r[3]=1),t.picking_uHighlightColor=r}return e.pickingActive!==void 0&&(t.picking_uActive=!!e.pickingActive,t.picking_uAttribute=!!e.pickingAttribute),t}var Aot=`uniform bool picking_uActive;\nuniform bool picking_uAttribute;\nuniform vec3 picking_uSelectedColor;\nuniform bool picking_uSelectedColorValid;\n\nout vec4 picking_vRGBcolor_Avalid;\n\nconst float COLOR_SCALE = 1. / 255.;\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.001;\n}\n\nbool isVertexPicked(vec3 vertexColor) {\n return\n picking_uSelectedColorValid &&\n !picking_isColorValid(abs(vertexColor - picking_uSelectedColor));\n}\n\nvoid picking_setPickingColor(vec3 pickingColor) {\n if (picking_uActive) {\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = pickingColor * COLOR_SCALE;\n }\n } else {\n picking_vRGBcolor_Avalid.a = float(isVertexPicked(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\nvoid picking_setPickingAttribute(vec2 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\nvoid picking_setPickingAttribute(vec3 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n`,mot=`uniform bool picking_uActive;\nuniform vec3 picking_uSelectedColor;\nuniform vec4 picking_uHighlightColor;\n\nin vec4 picking_vRGBcolor_Avalid;\nvec4 picking_filterHighlightColor(vec4 color) {\n if (picking_uActive) {\n return color;\n }\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n float highLightAlpha = picking_uHighlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking_uHighlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\nvec4 picking_filterPickingColor(vec4 color) {\n if (picking_uActive) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\nvec4 picking_filterColor(vec4 color) {\n vec4 highightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highightColor);\n}\n\n`,LE={name:\"picking\",vs:Aot,fs:mot,getUniforms:pot};var VR=`\nuniform float lighting_uAmbient;\nuniform float lighting_uDiffuse;\nuniform float lighting_uShininess;\nuniform vec3 lighting_uSpecularColor;\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) {\n vec3 halfway_direction = normalize(light_direction + view_direction);\n float lambertian = dot(light_direction, normal_worldspace);\n float specular = 0.0;\n if (lambertian > 0.0) {\n float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, lighting_uShininess);\n }\n lambertian = max(lambertian, 0.0);\n return (lambertian * lighting_uDiffuse * surfaceColor + specular * lighting_uSpecularColor) * color;\n}\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = surfaceColor;\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n lightColor = lighting_uAmbient * surfaceColor * lighting_uAmbientLight.color;\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n\nvec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = vec3(0, 0, 0);\n vec3 surfaceColor = vec3(0, 0, 0);\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n`;var got={};function _ot(e){let{ambient:t=.35,diffuse:r=.6,shininess:i=32,specularColor:n=[30,30,30]}=e;return{lighting_uAmbient:t,lighting_uDiffuse:r,lighting_uShininess:i,lighting_uSpecularColor:n.map(s=>s/255)}}function c7(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:got;if(!(\"material\"in e))return{};let{material:t}=e;return t?_ot(t):{lighting_uEnabled:!1}}var QA={name:\"gouraud-lighting\",dependencies:[UR],vs:VR,defines:{LIGHTING_VERTEX:1},getUniforms:c7},My={name:\"phong-lighting\",dependencies:[UR],fs:VR,defines:{LIGHTING_FRAGMENT:1},getUniforms:c7};var yot=`attribute float transform_elementID;\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n`,jR={name:\"transform\",vs:yot,fs:null};var Oh=class e{static getDefaultProgramManager(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}constructor(t){this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule(t){this._defaultModules.find(r=>r.name===t.name)||this._defaultModules.push(t),this.stateHash++}removeDefaultModule(t){let r=typeof t==\"string\"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r),this.stateHash++}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t),this.stateHash++}get(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{vs:r=\"\",fs:i=\"\",defines:n={},inject:s={},varyings:o=[],bufferMode:c=35981,transpileToGLSL100:d=!1}=t,_=this._getModuleList(t.modules),w=this._getHash(r),I=this._getHash(i),R=_.map(J=>this._getHash(J.name)).sort(),N=o.map(J=>this._getHash(J)),j=Object.keys(n).sort(),Y=Object.keys(s).sort(),it=[],Z=[];for(let J of j)it.push(this._getHash(J)),it.push(this._getHash(n[J]));for(let J of Y)Z.push(this._getHash(J)),Z.push(this._getHash(s[J]));let K=\"\".concat(w,\"/\").concat(I,\"D\").concat(it.join(\"/\"),\"M\").concat(R.join(\"/\"),\"I\").concat(Z.join(\"/\"),\"V\").concat(N.join(\"/\"),\"H\").concat(this.stateHash,\"B\").concat(c).concat(d?\"T\":\"\");if(!this._programCache[K]){let J=yR(this.gl,{vs:r,fs:i,modules:_,inject:s,defines:n,hookFunctions:this._hookFunctions,transpileToGLSL100:d});this._programCache[K]=new Jd(this.gl,{hash:K,vs:J.vs,fs:J.fs,varyings:o,bufferMode:c}),this._getUniforms[K]=J.getUniforms||(ht=>{}),this._useCounts[K]=0}return this._useCounts[K]++,this._programCache[K]}getUniforms(t){return this._getUniforms[t.hash]||null}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._programCache[r].delete(),delete this._programCache[r],delete this._getUniforms[r],delete this._useCounts[r])}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},n=0;for(let s=0,o=this._defaultModules.length;s{},Tot={},gn=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{id:i=ea(\"model\")}=r;_e(Qd(t)),this.id=i,this.gl=t,this.id=r.id||ea(\"Model\"),this.lastLogTime=0,this.animated=!1,this.initialize(r)}initialize(t){this.props={},this.programManager=t.programManager||Oh.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;let{program:r=null,vs:i,fs:n,modules:s,defines:o,inject:c,varyings:d,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:n,modules:s,defines:o,inject:c,varyings:d,bufferMode:_,transpileToGLSL100:w},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(t.moduleSettings))),this.drawMode=t.drawMode!==void 0?t.drawMode:4,this.vertexCount=t.vertexCount||0,this.geometryBuffers={},this.isInstanced=t.isInstanced||t.instanced||t.instanceCount>0,this._setModelProps(t),this.geometry={},_e(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),Sot)}setProps(t){this._setModelProps(t)}delete(){for(let t in this._attributes)this._attributes[t]!==this.attributes[t]&&this._attributes[t].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram(t){let{program:r,vs:i,fs:n,modules:s,defines:o,inject:c,varyings:d,bufferMode:_,transpileToGLSL100:w}=t;this.programProps={program:r,vs:i,fs:n,modules:s,defines:o,inject:c,varyings:d,bufferMode:_,transpileToGLSL100:w},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode(t){return this.drawMode=t,this}setVertexCount(t){return _e(Number.isFinite(t)),this.vertexCount=t,this}setInstanceCount(t){return _e(Number.isFinite(t)),this.instanceCount=t,this}setGeometry(t){return this.drawMode=t.drawMode,this.vertexCount=t.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=u7(this.gl,t),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Qf(t))return this;let r={};for(let i in t){let n=t[i];r[i]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(r),this}setUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,t),this}getModuleUniforms(t){this._checkProgram();let r=this.programManager.getUniforms(this.program);return r?r(t):{}}updateModuleSettings(t){let r=this.getModuleUniforms(t||{});return this.setUniforms(r)}clear(t){return Xf(this.program.gl,t),this}draw(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();let{moduleSettings:r=null,framebuffer:i,uniforms:n={},attributes:s={},transformFeedback:o=this.transformFeedback,parameters:c={},vertexArray:d=this.vertexArray}=t;this.setAttributes(s),this.updateModuleSettings(r),this.setUniforms(n);let _;je.priority>=Ey&&(_=this._logDrawCallStart(Ey));let w=this.vertexArray.getDrawParams(),{isIndexed:I=w.isIndexed,indexType:R=w.indexType,indexOffset:N=w.indexOffset,vertexArrayInstanced:j=w.isInstanced}=this.props;j&&!this.isInstanced&&je.warn(\"Found instanced attributes on non-instanced model\",this.id)();let{isInstanced:Y,instanceCount:it}=this,{onBeforeRender:Z=h7,onAfterRender:K=h7}=this.props;Z(),this.program.setUniforms(this.uniforms);let J=this.program.draw(Object.assign(Tot,t,{logPriority:_,uniforms:null,framebuffer:i,parameters:c,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:d,transformFeedback:o,isIndexed:I,indexType:R,isInstanced:Y,instanceCount:it,offset:I?N:0}));return K(),je.priority>=Ey&&this._logDrawCallEnd(_,d,i),J}transform(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{discard:r=!0,feedbackBuffers:i,unbindModels:n=[]}=t,{parameters:s}=t;i&&this._setFeedbackBuffers(i),r&&(s=Object.assign({},s,{35977:r})),n.forEach(o=>o.vertexArray.unbindBuffers());try{this.draw(Object.assign({},t,{parameters:s}))}finally{n.forEach(o=>o.vertexArray.bindBuffers())}return this}render(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return je.warn(\"Model.render() is deprecated. Use Model.setUniforms() and Model.draw()\")(),this.setUniforms(t).draw()}_setModelProps(t){Object.assign(this.props,t),\"uniforms\"in t&&this.setUniforms(t.uniforms),\"pickable\"in t&&(this.pickable=t.pickable),\"instanceCount\"in t&&(this.instanceCount=t.instanceCount),\"geometry\"in t&&this.setGeometry(t.geometry),\"attributes\"in t&&this.setAttributes(t.attributes),\"_feedbackBuffers\"in t&&this._setFeedbackBuffers(t._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:r}=this.programProps;if(r)this._managedProgram=!1;else{let{vs:i,fs:n,modules:s,inject:o,defines:c,varyings:d,bufferMode:_,transpileToGLSL100:w}=this.programProps;r=this.programManager.get({vs:i,fs:n,modules:s,inject:o,defines:c,varyings:d,bufferMode:_,transpileToGLSL100:w}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}_e(r instanceof Jd,\"Model needs a program\"),this._programDirty=!1,r!==this.program&&(this.program=r,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new py(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(let t in this.geometryBuffers){let r=this.geometryBuffers[t][0]||this.geometryBuffers[t];r instanceof Nr&&r.delete()}}_setAnimationProps(t){this.animated&&_e(t,\"Model.draw(): animated uniforms but no animationProps\")}_setFeedbackBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Qf(t))return this;let{gl:r}=this.program;return this.transformFeedback=this.transformFeedback||new tp(r,{program:this.program}),this.transformFeedback.setBuffers(t),this}_logDrawCallStart(t){let r=t>3?0:wot;if(!(Date.now()-this.lastLogTime>> DRAWING MODEL \".concat(this.id),{collapsed:je.level<=2})(),t}_logDrawCallEnd(t,r,i,n){if(t===void 0)return;let s=lR({vertexArray:r,header:\"\".concat(this.id,\" attributes\"),attributes:this._attributes}),{table:o,unusedTable:c,unusedCount:d}=lE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i)}),{table:_,count:w}=lE({header:\"\".concat(this.id,\" uniforms\"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i),undefinedOnly:!0});w>0&&je.log(\"MISSING UNIFORMS\",Object.keys(_))(),d>0&&je.log(\"UNUSED UNIFORMS\",Object.keys(c))();let I=cR(this.vertexArray.configuration);je.table(t,s)(),je.table(t,o)(),je.table(t+1,I)(),n&&n.log({logLevel:Ey,message:\"Rendered to \".concat(n.id)}),je.groupEnd(Ey)()}};var hb=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}setupResources(t){for(let r of this.bindings)this._setupTransformFeedback(r,t)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyings:r}=this;return r.length>0&&(t=Object.assign({},t,{varyings:r})),t}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this.bindings[this.currentIndex],{sourceBuffers:i,transformFeedback:n}=r;return{attributes:Object.assign({},i,t.attributes),transformFeedback:n}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t)}getBuffer(t){let{feedbackBuffers:r}=this.bindings[this.currentIndex],i=t?r[t]:null;return i?i instanceof Nr?i:i.buffer:null}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{varyingName:r}=t,i=this.getBuffer(r);return i?i.getData():null}delete(){for(let t in this.resources)this.resources[t].delete()}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(t),this.varyings=t.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&_e(hr(this.gl))}_getFeedbackBuffers(t){let{sourceBuffers:r={}}=t,i={};if(this.bindings[this.currentIndex]&&Object.assign(i,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(let n in this.feedbackMap){let s=this.feedbackMap[n];n in r&&(i[s]=n)}Object.assign(i,t.feedbackBuffers);for(let n in i){let s=i[n];if(typeof s==\"string\"){let o=r[s],{byteLength:c,usage:d,accessor:_}=o;i[n]=this._createNewBuffer(n,{byteLength:c,usage:d,accessor:_})}}return i}_setupBuffers(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r=null}=t;Object.assign(this.feedbackMap,t.feedbackMap);let i=this._getFeedbackBuffers(t);this._updateBindings({sourceBuffers:r,feedbackBuffers:i})}_setupTransformFeedback(t,r){let{model:i}=r,{program:n}=i;t.transformFeedback=new tp(this.gl,{program:n,buffers:t.feedbackBuffers})}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this.feedbackMap){let{sourceBuffers:r,feedbackBuffers:i}=this._swapBuffers(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceBuffers:r,feedbackBuffers:i})}}_updateBinding(t,r){return t?(Object.assign(t.sourceBuffers,r.sourceBuffers),Object.assign(t.feedbackBuffers,r.feedbackBuffers),t.transformFeedback&&t.transformFeedback.setBuffers(t.feedbackBuffers),t):{sourceBuffers:Object.assign({},r.sourceBuffers),feedbackBuffers:Object.assign({},r.feedbackBuffers)}}_swapBuffers(t){if(!this.feedbackMap)return null;let r=Object.assign({},t.sourceBuffers),i=Object.assign({},t.feedbackBuffers);for(let n in this.feedbackMap){let s=this.feedbackMap[n];r[n]=t.feedbackBuffers[s],i[s]=t.sourceBuffers[n],_e(i[s]instanceof Nr)}return{sourceBuffers:r,feedbackBuffers:i}}_createNewBuffer(t,r){let i=new Nr(this.gl,r);return this.resources[t]&&this.resources[t].delete(),this.resources[t]=i,i}_getNextIndex(){return(this.currentIndex+1)%2}};var Mot=\"transform_uSampler_\",kE=\"transform_uSize_\",f7=\"transform_position\";function d7(e){let{vs:t,sourceTextureMap:r,targetTextureVarying:i,targetTexture:n}=e,o=Object.keys(r).length,c=null,d={},_=t,w={};if(o>0||i){let I=_.split(`\n`),R=I.slice();if(I.forEach((N,j,Y)=>{if(o>0){let it=Cot(N,r);if(it){let{updatedLine:Z,inject:K}=it;R[j]=Z,w=my([w,K]),Object.assign(d,it.samplerTextureMap),o--}}i&&!c&&(c=Iot(N,i))}),i){_e(n);let N=\"\".concat(kE).concat(i),j=\"uniform vec2 \".concat(N,`;\n`),Y=\" vec2 \".concat(f7,\" = transform_getPos(\").concat(N,`);\n gl_Position = vec4(`).concat(f7,`, 0, 1.);\n`);w=my([w,{\"vs:#decl\":j,\"vs:#main-start\":Y}])}_=R.join(`\n`)}return{vs:_,targetTextureType:c,inject:w,samplerTextureMap:d}}function p7(e){let{sourceTextureMap:t,targetTextureVarying:r,targetTexture:i}=e,n={},s,o;r&&({width:s,height:o}=i,n[\"\".concat(kE).concat(r)]=[s,o]);for(let c in t)({width:s,height:o}=t[c]),n[\"\".concat(kE).concat(c)]=[s,o];return n}function Eot(e){return hE(e,[\"attribute\",\"in\"])}function Pot(e){let t=\"\".concat(Mot).concat(e),r=\"\".concat(kE).concat(e),i=\" uniform sampler2D \".concat(t,`;\n uniform vec2 `).concat(r,\";\");return{samplerName:t,sizeName:r,uniformDeclerations:i}}function Iot(e,t){let r=hE(e,[\"varying\",\"out\"]);return r&&r.name===t?r.type:null}function Cot(e,t){let r={},i=Eot(e);if(!i)return null;let{type:n,name:s}=i;if(s&&t[s]){let o=\"// \".concat(e,\" => Replaced by Transform with a sampler\"),{samplerName:c,sizeName:d,uniformDeclerations:_}=Pot(s),w=vR(n),I=\" \".concat(n,\" \").concat(s,\" = transform_getInput(\").concat(c,\", \").concat(d,\").\").concat(w,`;\n`);return r[c]=s,{updatedLine:o,inject:{\"vs:#decl\":_,\"vs:#main-start\":I},samplerTextureMap:r}}return null}var Lot={10241:9728,10240:9728,10242:33071,10243:33071},kot=\"transform_output\",fb=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}updateModelProps(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._processVertexShader(t);return Object.assign({},t,r)}getDrawOptions(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,sourceTextures:i,framebuffer:n,targetTexture:s}=this.bindings[this.currentIndex],o=Object.assign({},r,t.attributes),c=Object.assign({},t.uniforms),d=Object.assign({},t.parameters),_=t.discard;if(this.hasSourceTextures||this.hasTargetTexture){o.transform_elementID=this.elementIDBuffer;for(let I in this.samplerTextureMap){let R=this.samplerTextureMap[I];c[I]=i[R]}this._setSourceTextureParameters();let w=p7({sourceTextureMap:i,targetTextureVarying:this.targetTextureVarying,targetTexture:s});Object.assign(c,w)}return this.hasTargetTexture&&(_=!1,d.viewport=[0,0,n.width,n.height]),{attributes:o,framebuffer:n,uniforms:c,discard:_,parameters:d}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures(t)}getTargetTexture(){let{targetTexture:t}=this.bindings[this.currentIndex];return t}getData(){let{packed:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{framebuffer:r}=this.bindings[this.currentIndex],i=Ih(r);if(!t)return i;let n=i.constructor,s=xR(this.targetTextureType),o=new n(i.length*s/4),c=0;for(let d=0;d0&&arguments[0]!==void 0?arguments[0]:{},{_targetTextureVarying:r,_swapTexture:i}=t;this._swapTexture=i,this.targetTextureVarying=r,this.hasTargetTexture=r,this._setupTextures(t)}_createTargetTexture(t){let{sourceTextures:r,textureOrReference:i}=t;if(i instanceof ci)return i;let n=r[i];return n?(this._targetRefTexName=i,this._createNewTexture(n)):null}_setupTextures(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceBuffers:r,_sourceTextures:i={},_targetTexture:n}=t,s=this._createTargetTexture({sourceTextures:i,textureOrReference:n});this.hasSourceTextures=this.hasSourceTextures||i&&Object.keys(i).length>0,this._updateBindings({sourceBuffers:r,sourceTextures:i,targetTexture:s}),\"elementCount\"in t&&this._updateElementIDBuffer(t.elementCount)}_updateElementIDBuffer(t){if(typeof t!=\"number\"||this.elementCount>=t)return;let r=new Float32Array(t);r.forEach((i,n,s)=>{s[n]=n}),this.elementIDBuffer?this.elementIDBuffer.setData({data:r}):this.elementIDBuffer=new Nr(this.gl,{data:r,accessor:{size:1}}),this.elementCount=t}_updateBindings(t){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],t),this._swapTexture){let{sourceTextures:r,targetTexture:i}=this._swapTextures(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceTextures:r,targetTexture:i})}}_updateBinding(t,r){let{sourceBuffers:i,sourceTextures:n,targetTexture:s}=r;if(t||(t={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(t.sourceTextures,n),Object.assign(t.sourceBuffers,i),s){t.targetTexture=s;let{width:o,height:c}=s,{framebuffer:d}=t;d?(d.update({attachments:{36064:s},resizeAttachments:!1}),d.resize({width:o,height:c})):t.framebuffer=new di(this.gl,{id:\"transform-framebuffer\",width:o,height:c,attachments:{36064:s}})}return t}_setSourceTextureParameters(){let t=this.currentIndex,{sourceTextures:r}=this.bindings[t];for(let i in r)r[i].setParameters(Lot)}_swapTextures(t){if(!this._swapTexture)return null;let r=Object.assign({},t.sourceTextures);r[this._swapTexture]=t.targetTexture;let i=t.sourceTextures[this._swapTexture];return{sourceTextures:r,targetTexture:i}}_createNewTexture(t){let r=eE(t,{parameters:{10241:9728,10240:9728,10242:33071,10243:33071},pixelStore:{37440:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=r,r}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{sourceTextures:r,targetTexture:i}=this.bindings[this.currentIndex],{vs:n,uniforms:s,targetTextureType:o,inject:c,samplerTextureMap:d}=d7({vs:t.vs,sourceTextureMap:r,targetTextureVarying:this.targetTextureVarying,targetTexture:i}),_=my([t.inject||{},c]);this.targetTextureType=o,this.samplerTextureMap=d;let w=t._fs||ob({version:dy(n),input:this.targetTextureVarying,inputType:o,output:kot}),I=this.hasSourceTextures||this.targetTextureVarying?[jR].concat(t.modules||[]):t.modules;return{vs:n,fs:w,modules:I,uniforms:s,inject:_}}};var Xl=class{static isSupported(t){return hr(t)}constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(r),Object.seal(this)}delete(){let{model:t,bufferTransform:r,textureTransform:i}=this;t&&t.delete(),r&&r.delete(),i&&i.delete()}run(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{clearRenderTarget:r=!0}=t,i=this._updateDrawOptions(t);r&&i.framebuffer&&i.framebuffer.clear({color:!0}),this.model.transform(i)}swap(){let t=!1,r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)t=t||i.swap();_e(t,\"Nothing to swap\")}getBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(t)}getData(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r){let n=i.getData(t);if(n)return n}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};\"elementCount\"in t&&this.model.setVertexCount(t.elementCount);let r=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let i of r)i.update(t)}_initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{gl:r}=this;this._buildResourceTransforms(r,t),t=this._updateModelProps(t),this.model=new gn(r,Object.assign({},t,{fs:t.fs||ob({version:dy(t.vs)}),id:t.id||\"transform-model\",drawMode:t.drawMode||0,vertexCount:t.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let n of i)r=n.updateModelProps(r);return r}_buildResourceTransforms(t,r){Rot(r)&&(this.bufferTransform=new hb(t,r)),Dot(r)&&(this.textureTransform=new fb(t,r)),_e(this.bufferTransform||this.textureTransform,\"must provide source/feedback buffers or source/target textures\")}_updateDrawOptions(t){let r=Object.assign({},t),i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(let n of i)r=Object.assign(r,n.getDrawOptions(r));return r}};function Rot(e){return!!(!Qf(e.feedbackBuffers)||!Qf(e.feedbackMap)||e.varyings&&e.varyings.length>0)}function Dot(e){return!!(!Qf(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)}var A7={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},As=class{static get DRAW_MODE(){return A7}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{id:r=ea(\"geometry\"),drawMode:i=A7.TRIANGLES,attributes:n={},indices:s=null,vertexCount:o=null}=t;this.id=r,this.drawMode=i|0,this.attributes={},this.userData={},this._setAttributes(n,s),this.vertexCount=o||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(t){return\"Geometry \".concat(this.id,\" attribute \").concat(t)}_setAttributes(t,r){r&&(this.indices=ArrayBuffer.isView(r)?{value:r,size:1}:r);for(let i in t){let n=t[i];n=ArrayBuffer.isView(n)?{value:n}:n,_e(ArrayBuffer.isView(n.value),\"\".concat(this._print(i),\": must be typed array or object with value as typed array\")),(i===\"POSITION\"||i===\"positions\")&&!n.size&&(n.size=3),i===\"indices\"?(_e(!this.indices),this.indices=n):this.attributes[i]=n}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount(t,r){if(r)return r.value.length;let i=1/0;for(let n in t){let s=t[n],{value:o,size:c,constant:d}=s;!d&&o&&c>=1&&(i=Math.min(i,o.length/c))}return _e(Number.isFinite(i)),i}};var Oot=1,Bot=1,XA=class{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel(t){let{delay:r=0,duration:i=Number.POSITIVE_INFINITY,rate:n=1,repeat:s=1}=t,o=Oot++,c={time:0,delay:r,duration:i,rate:n,repeat:s};return this._setChannelTime(c,this.time),this.channels.set(o,c),o}removeChannel(t){this.channels.delete(t);for(let[r,i]of this.animations)i.channel===t&&this.detachAnimation(r)}isFinished(t){let r=this.channels.get(t);return r===void 0?!1:this.time>=r.delay+r.duration*r.repeat}getTime(t){if(t===void 0)return this.time;let r=this.channels.get(t);return r===void 0?-1:r.time}setTime(t){this.time=Math.max(0,t);let r=this.channels.values();for(let n of r)this._setChannelTime(n,this.time);let i=this.animations.values();for(let n of i){let{animation:s,channel:o}=n;s.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(t,r){let i=Bot++;return this.animations.set(i,{animation:t,channel:r}),t.setTime(this.getTime(r)),i}detachAnimation(t){this.animations.delete(t)}update(t){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=t),this.setTime(this.time+(t-this.lastEngineTime)),this.lastEngineTime=t)}_setChannelTime(t,r){let i=r-t.delay,n=t.duration*t.repeat;i>=n?t.time=t.duration*t.rate:(t.time=Math.max(0,i)%t.duration,t.time*=t.rate)}};var Fot=[255,255,255],zot=1,Not=0,RE=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"ambient\");let{color:r=Fot}=t,{intensity:i=zot}=t;this.id=t.id||\"ambient-\".concat(Not++),this.color=r,this.intensity=i}};var Uot=[255,255,255],Vot=1,jot=[0,0,-1],Got=0,db=class{constructor(t={}){G(this,\"id\",void 0),G(this,\"color\",void 0),G(this,\"intensity\",void 0),G(this,\"type\",\"directional\"),G(this,\"direction\",void 0),G(this,\"shadow\",void 0);let{color:r=Uot}=t,{intensity:i=Vot}=t,{direction:n=jot}=t,{_shadow:s=!1}=t;this.id=t.id||\"directional-\".concat(Got++),this.color=r,this.intensity=i,this.type=\"directional\",this.direction=new ze(n).normalize().toArray(),this.shadow=s}getProjectedLight(t){return this}};var pb=class{constructor(t,r={id:\"pass\"}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"props\",void 0);let{id:i}=r;this.id=i,this.gl=t,this.props={...r}}setProps(t){Object.assign(this.props,t)}render(t){}cleanup(){}};var Kl=class extends pb{constructor(...t){super(...t),G(this,\"_lastRenderIndex\",-1)}render(t){let r=this.gl;return bl(r,{framebuffer:t.target}),this._drawLayers(t)}_drawLayers(t){let{target:r,moduleParameters:i,viewports:n,views:s,onViewportActive:o,clearStack:c=!0,clearCanvas:d=!0}=t;t.pass=t.pass||\"unknown\";let _=this.gl;d&&Hot(_,r),c&&(this._lastRenderIndex=-1);let w=[];for(let I of n){let R=s&&s[I.id];o?.(I);let N=this._getDrawLayerParams(I,t),j=I.subViewports||[I];for(let Y of j){let it=this._drawLayersInViewport(_,{target:r,moduleParameters:i,viewport:Y,view:R,pass:t.pass,layers:t.layers},N);w.push(it)}}return w}_getDrawLayerParams(t,{layers:r,pass:i,isPicking:n=!1,layerFilter:s,cullRect:o,effects:c,moduleParameters:d},_=!1){let w=[],I=m7(this._lastRenderIndex+1),R={layer:r[0],viewport:t,isPicking:n,renderPass:i,cullRect:o},N={};for(let j=0;jXf(t,I))}let w={totalCount:r.length,visibleCount:0,compositeCount:0,pickableCount:0};bl(t,{viewport:_});for(let I=0;I{let o=n.props._offset,c=n.id,d=n.parent&&n.parent.id,_;if(d&&!(d in t)&&i(n.parent,!1),d in r){let w=r[d]=r[d]||m7(t[d],t);_=w(n,s),r[c]=w}else Number.isFinite(o)?(_=o+(t[d]||0),r[c]=null):_=e;return s&&_>=e&&(e=_+1),t[c]=_,_};return i}function Wot(e,{moduleParameters:t,target:r,viewport:i}){let n=r&&r.id!==\"default-framebuffer\",s=t&&t.devicePixelRatio||wl(e),o=n?r.height:e.drawingBufferHeight,c=i;return[c.x*s,o-(c.y+c.height)*s,c.width*s,c.height*s]}function Hot(e,t){let r=t?t.width:e.drawingBufferWidth,i=t?t.height:e.drawingBufferHeight;bl(e,{viewport:[0,0,r,i]}),e.clear(16640)}var Ab=class extends Kl{constructor(t,r){super(t,r),G(this,\"shadowMap\",void 0),G(this,\"depthBuffer\",void 0),G(this,\"fbo\",void 0),this.shadowMap=new ci(t,{width:1,height:1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.depthBuffer=new tl(t,{format:33189,width:1,height:1}),this.fbo=new di(t,{id:\"shadowmap\",width:1,height:1,attachments:{36064:this.shadowMap,36096:this.depthBuffer}})}render(t){let r=this.fbo;An(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{let i=t.viewports[0],n=wl(this.gl),s=i.width*n,o=i.height*n;(s!==r.width||o!==r.height)&&r.resize({width:s,height:o}),super.render({...t,target:r,pass:\"shadow\"})})}shouldDrawLayer(t){return t.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}};var g7=\"#define SMOOTH_EDGE_RADIUS 0.5\",qot=`\n`.concat(g7,`\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n`),Zot=`\n`.concat(g7,`\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n`),_7={name:\"geometry\",vs:qot,fs:Zot};var Yot=Object.keys(Wr).map(e=>\"const int COORDINATE_SYSTEM_\".concat(e,\" = \").concat(Wr[e],\";\")).join(\"\"),$ot=Object.keys(Ka).map(e=>\"const int PROJECTION_MODE_\".concat(e,\" = \").concat(Ka[e],\";\")).join(\"\"),Qot=Object.keys(ta).map(e=>\"const int UNIT_\".concat(e.toUpperCase(),\" = \").concat(ta[e],\";\")).join(\"\"),y7=\"\".concat(Yot,`\n`).concat($ot,`\n`).concat(Qot,`\n\nuniform int project_uCoordinateSystem;\nuniform int project_uProjectionMode;\nuniform float project_uScale;\nuniform bool project_uWrapLongitude;\nuniform vec3 project_uCommonUnitsPerMeter;\nuniform vec3 project_uCommonUnitsPerWorldUnit;\nuniform vec3 project_uCommonUnitsPerWorldUnit2;\nuniform vec4 project_uCenter;\nuniform mat4 project_uModelMatrix;\nuniform mat4 project_uViewProjectionMatrix;\nuniform vec2 project_uViewportSize;\nuniform float project_uDevicePixelRatio;\nuniform float project_uFocalDistance;\nuniform vec3 project_uCameraPosition;\nuniform vec3 project_uCoordinateOrigin;\nuniform vec3 project_uCommonOrigin;\nuniform bool project_uPseudoMeters;\n\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0;\nconst float GLOBE_RADIUS = 256.0;\nfloat project_size_at_latitude(float lat) {\n float y = clamp(lat, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n}\n\nfloat project_size() {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project_uPseudoMeters == false) {\n \n if (geometry.position.w == 0.0) {\n return project_size_at_latitude(geometry.worldPosition.y);\n }\n \n float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n float y2 = y * y;\n float y4 = y2 * y2;\n float y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n\nfloat project_size_at_latitude(float meters, float lat) {\n return meters * project_uCommonUnitsPerMeter.z * project_size_at_latitude(lat);\n}\nfloat project_size(float meters) {\n return meters * project_uCommonUnitsPerMeter.z * project_size();\n}\n\nvec2 project_size(vec2 meters) {\n return meters * project_uCommonUnitsPerMeter.xy * project_size();\n}\n\nvec3 project_size(vec3 meters) {\n return meters * project_uCommonUnitsPerMeter * project_size();\n}\n\nvec4 project_size(vec4 meters) {\n return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w);\n}\nmat3 project_get_orientation_matrix(vec3 up) {\n vec3 uz = normalize(up);\n vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\n vec3 uy = cross(uz, ux);\n return mat3(ux, uy, uz);\n}\n\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n transform = project_get_orientation_matrix(commonPosition);\n return true;\n }\n return false;\n}\nvec3 project_normal(vec3 vector) {\n vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0);\n vec3 n = normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter);\n mat3 rotation;\n if (project_needs_rotation(geometry.position.xyz, rotation)) {\n n = rotation * n;\n }\n return n;\n}\n\nvec4 project_offset_(vec4 offset) {\n float dy = offset.y;\n vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy;\n return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\nvec2 project_mercator_(vec2 lnglat) {\n float x = lnglat.x;\n if (project_uWrapLongitude) {\n x = mod(x + 180., 360.0) - 180.;\n }\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec3 project_globe_(vec3 lnglatz) {\n float lambda = radians(lnglatz.x);\n float phi = radians(lnglatz.y);\n float cosPhi = cos(phi);\n float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\nvec4 project_position(vec4 position, vec3 position64Low) {\n vec4 position_world = project_uModelMatrix * position;\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_mercator_(position_world.xy),\n project_size_at_latitude(position_world.z, position_world.y),\n position_world.w\n );\n }\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world.xyz += project_uCoordinateOrigin;\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) {\n return vec4(\n project_mercator_(position_world.xy) - project_uCommonOrigin.xy,\n project_size(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_IDENTITY ||\n (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world.xyz -= project_uCoordinateOrigin;\n }\n return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0));\n}\n\nvec4 project_position(vec4 position) {\n return project_position(position, ZERO_64_LOW);\n}\n\nvec3 project_position(vec3 position, vec3 position64Low) {\n vec4 projected_position = project_position(vec4(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nvec3 project_position(vec3 position) {\n vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nvec2 project_position(vec2 position) {\n vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\n return viewProjectionMatrix * position + center;\n}\nvec4 project_common_position_to_clipspace(vec4 position) {\n return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter);\n}\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\n vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0;\n return offset * project_uFocalDistance;\n}\n\nfloat project_size_to_pixel(float meters) {\n return project_size(meters) * project_uScale;\n}\nfloat project_size_to_pixel(float size, int unit) {\n if (unit == UNIT_METERS) return project_size_to_pixel(size);\n if (unit == UNIT_COMMON) return size * project_uScale;\n return size;\n}\nfloat project_pixel_size(float pixels) {\n return pixels / project_uScale;\n}\nvec2 project_pixel_size(vec2 pixels) {\n return pixels / project_uScale;\n}\n`);function Xot(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{for(let n in i)if(!Xot(i[n],t[n])){r=e(i),t=i;break}return r}}var v7=[0,0,0,0],Kot=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],x7=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],Jot=[0,0,0],b7=[0,0,0],tat=Jf(rat);function GR(e,t,r=b7){r.length<3&&(r=[r[0],r[1],0]);let i=r,n,s=!0;switch(t===Wr.LNGLAT_OFFSETS||t===Wr.METER_OFFSETS?n=r:n=e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case Ka.WEB_MERCATOR:(t===Wr.LNGLAT||t===Wr.CARTESIAN)&&(n=[0,0,0],s=!1);break;case Ka.WEB_MERCATOR_AUTO_OFFSET:t===Wr.LNGLAT?i=n:t===Wr.CARTESIAN&&(i=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],n=e.unprojectPosition(i),i[0]-=r[0],i[1]-=r[1],i[2]-=r[2]);break;case Ka.IDENTITY:i=e.position.map(Math.fround),i[2]=i[2]||0;break;case Ka.GLOBE:s=!1,n=null;break;default:s=!1}return{geospatialOrigin:n,shaderCoordinateOrigin:i,offsetMode:s}}function eat(e,t,r){let{viewMatrixUncentered:i,projectionMatrix:n}=e,{viewMatrix:s,viewProjectionMatrix:o}=e,c=v7,d=v7,_=e.cameraPosition,{geospatialOrigin:w,shaderCoordinateOrigin:I,offsetMode:R}=GR(e,t,r);return R&&(d=e.projectPosition(w||I),_=[_[0]-d[0],_[1]-d[1],_[2]-d[2]],d[3]=1,c=Dh([],d,o),s=i||s,o=Kf([],n,s),o=Kf([],o,Kot)),{viewMatrix:s,viewProjectionMatrix:o,projectionCenter:c,originCommon:d,cameraPosCommon:_,shaderCoordinateOrigin:I,geospatialOrigin:w}}function w7({viewport:e,devicePixelRatio:t=1,modelMatrix:r=null,coordinateSystem:i=Wr.DEFAULT,coordinateOrigin:n=b7,autoWrapLongitude:s=!1}){i===Wr.DEFAULT&&(i=e.isGeospatial?Wr.LNGLAT:Wr.CARTESIAN);let o=tat({viewport:e,devicePixelRatio:t,coordinateSystem:i,coordinateOrigin:n});return o.project_uWrapLongitude=s,o.project_uModelMatrix=r||x7,o}function rat({viewport:e,devicePixelRatio:t,coordinateSystem:r,coordinateOrigin:i}){let{projectionCenter:n,viewProjectionMatrix:s,originCommon:o,cameraPosCommon:c,shaderCoordinateOrigin:d,geospatialOrigin:_}=eat(e,r,i),w=e.getDistanceScales(),I=[e.width*t,e.height*t],R=Dh([],[0,0,-e.focalDistance,1],e.projectionMatrix)[3]||1,N={project_uCoordinateSystem:r,project_uProjectionMode:e.projectionMode,project_uCoordinateOrigin:d,project_uCommonOrigin:o.slice(0,3),project_uCenter:n,project_uPseudoMeters:!!e._pseudoMeters,project_uViewportSize:I,project_uDevicePixelRatio:t,project_uFocalDistance:R,project_uCommonUnitsPerMeter:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit:w.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:Jot,project_uScale:e.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:s,project_uModelMatrix:x7,project_uCameraPosition:c};if(_){let j=e.getDistanceScales(_);switch(r){case Wr.METER_OFFSETS:N.project_uCommonUnitsPerWorldUnit=j.unitsPerMeter,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerMeter2;break;case Wr.LNGLAT:case Wr.LNGLAT_OFFSETS:e._pseudoMeters||(N.project_uCommonUnitsPerMeter=j.unitsPerMeter),N.project_uCommonUnitsPerWorldUnit=j.unitsPerDegree,N.project_uCommonUnitsPerWorldUnit2=j.unitsPerDegree2;break;case Wr.CARTESIAN:N.project_uCommonUnitsPerWorldUnit=[1,1,j.unitsPerMeter[2]],N.project_uCommonUnitsPerWorldUnit2=[0,0,j.unitsPerMeter2[2]];break;default:break}}return N}var iat={};function nat(e=iat){return\"viewport\"in e?w7(e):{}}var Bh={name:\"project\",dependencies:[fE,_7],vs:y7,getUniforms:nat};function WR(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function KA(e,t){let r=Dh([],t,e);return Sy(r,r,1/r[3]),r}function HR(e,t){let r=e%t;return r<0?t+r:r}function mb(e,t,r){return er?r:e}function sat(e){return Math.log(e)*Math.LOG2E}var Py=Math.log2||sat;function Nu(e,t){if(!e)throw new Error(t||\"@math.gl/web-mercator: assertion failed.\")}var Fh=Math.PI,S7=Fh/4,Uu=Fh/180,qR=180/Fh,Iy=512,DE=4003e4,Cy=85.051129,T7=1.5;function ZR(e){return Py(e)}function Ml(e){let[t,r]=e;Nu(Number.isFinite(t)),Nu(Number.isFinite(r)&&r>=-90&&r<=90,\"invalid latitude\");let i=t*Uu,n=r*Uu,s=Iy*(i+Fh)/(2*Fh),o=Iy*(Fh+Math.log(Math.tan(S7+n*.5)))/(2*Fh);return[s,o]}function $c(e){let[t,r]=e,i=t/Iy*(2*Fh)-Fh,n=2*(Math.atan(Math.exp(r/Iy*(2*Fh)-Fh))-S7);return[i*qR,n*qR]}function YR(e){let{latitude:t}=e;Nu(Number.isFinite(t));let r=Math.cos(t*Uu);return ZR(DE*r)-9}function gb(e){let t=Math.cos(e*Uu);return Iy/DE/t}function Ly(e){let{latitude:t,longitude:r,highPrecision:i=!1}=e;Nu(Number.isFinite(t)&&Number.isFinite(r));let n=Iy,s=Math.cos(t*Uu),o=n/360,c=o/s,d=n/DE/s,_={unitsPerMeter:[d,d,d],metersPerUnit:[1/d,1/d,1/d],unitsPerDegree:[o,c,d],degreesPerUnit:[1/o,1/c,1/d]};if(i){let w=Uu*Math.tan(t*Uu)/s,I=o*w/2,R=n/DE*w,N=R/c*d;_.unitsPerDegree2=[0,I,R],_.unitsPerMeter2=[N,0,N]}return _}function _b(e,t){let[r,i,n]=e,[s,o,c]=t,{unitsPerMeter:d,unitsPerMeter2:_}=Ly({longitude:r,latitude:i,highPrecision:!0}),w=Ml(e);w[0]+=s*(d[0]+_[0]*o),w[1]+=o*(d[1]+_[1]*o);let I=$c(w),R=(n||0)+(c||0);return Number.isFinite(n)||Number.isFinite(c)?[I[0],I[1],R]:I}function OE(e){let{height:t,pitch:r,bearing:i,altitude:n,scale:s,center:o}=e,c=WR();J0(c,c,[0,0,-n]),ME(c,c,-r*Uu),EE(c,c,i*Uu);let d=s/t;return wy(c,c,[d,d,d]),o&&J0(c,c,pj([],o)),c}function $R(e){let{width:t,height:r,altitude:i,pitch:n=0,offset:s,center:o,scale:c,nearZMultiplier:d=1,farZMultiplier:_=1}=e,{fovy:w=eg(T7)}=e;i!==void 0&&(w=eg(i));let I=w*Uu,R=n*Uu,N=yb(w),j=N;o&&(j+=o[2]*c/Math.cos(R)/r);let Y=I*(.5+(s?s[1]:0)/r),it=Math.sin(Y)*j/Math.sin(mb(Math.PI/2-R-Y,.01,Math.PI-.01)),Z=Math.sin(R)*it+j,K=j*10,J=Math.min(Z*_,K);return{fov:I,aspect:t/r,focalDistance:N,near:d,far:J}}function eg(e){return 2*Math.atan(.5/e)*qR}function yb(e){return .5/Math.tan(.5*e*Uu)}function ky(e,t){let[r,i,n=0]=e;return Nu(Number.isFinite(r)&&Number.isFinite(i)&&Number.isFinite(n)),KA(t,[r,i,n,1])}function td(e,t,r=0){let[i,n,s]=e;if(Nu(Number.isFinite(i)&&Number.isFinite(n),\"invalid pixel coordinate\"),Number.isFinite(s))return KA(t,[i,n,s,1]);let o=KA(t,[i,n,0,1]),c=KA(t,[i,n,1,1]),d=o[2],_=c[2],w=d===_?0:((r||0)-d)/(_-d);return pE([],o,c,w)}function vb(e){let{width:t,height:r,bounds:i,minExtent:n=0,maxZoom:s=24,offset:o=[0,0]}=e,[[c,d],[_,w]]=i,I=oat(e.padding),R=Ml([c,mb(w,-Cy,Cy)]),N=Ml([_,mb(d,-Cy,Cy)]),j=[Math.max(Math.abs(N[0]-R[0]),n),Math.max(Math.abs(N[1]-R[1]),n)],Y=[t-I.left-I.right-Math.abs(o[0])*2,r-I.top-I.bottom-Math.abs(o[1])*2];Nu(Y[0]>0&&Y[1]>0);let it=Y[0]/j[0],Z=Y[1]/j[1],K=(I.right-I.left)/2/it,J=(I.top-I.bottom)/2/Z,ht=[(N[0]+R[0])/2+K,(N[1]+R[1])/2+J],Tt=$c(ht),Ot=Math.min(s,Py(Math.abs(Math.min(it,Z))));return Nu(Number.isFinite(Ot)),{longitude:Tt[0],latitude:Tt[1],zoom:Ot}}function oat(e=0){return typeof e==\"number\"?{top:e,bottom:e,left:e,right:e}:(Nu(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var M7=Math.PI/180;function xb(e,t=0){let{width:r,height:i,unproject:n}=e,s={targetZ:t},o=n([0,i],s),c=n([r,i],s),d,_,w=e.fovy?.5*e.fovy*M7:Math.atan(.5/e.altitude),I=(90-e.pitch)*M7;return w>I-.01?(d=E7(e,0,t),_=E7(e,r,t)):(d=n([0,0],s),_=n([r,0],s)),[o,c,_,d]}function E7(e,t,r){let{pixelUnprojectionMatrix:i}=e,n=KA(i,[t,0,1,1]),s=KA(i,[t,e.height,1,1]),c=(r*e.distanceScales.unitsPerMeter[2]-n[2])/(s[2]-n[2]),d=pE([],n,s,c),_=$c(d);return _.push(r),_}var I7=512;function BE(e){let{width:t,height:r,pitch:i=0}=e,{longitude:n,latitude:s,zoom:o,bearing:c=0}=e;(n<-180||n>180)&&(n=HR(n+180,360)-180),(c<-180||c>180)&&(c=HR(c+180,360)-180);let d=Py(r/I7);if(o<=d)o=d,s=0;else{let _=r/2/Math.pow(2,o),w=$c([0,_])[1];if(sI&&(s=I)}}return{width:t,height:r,longitude:n,latitude:s,zoom:o,pitch:i,bearing:c}}var cat=`\nconst int max_lights = 2;\nuniform mat4 shadow_uViewProjectionMatrices[max_lights];\nuniform vec4 shadow_uProjectCenters[max_lights];\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform int shadow_uLightId;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n if (shadow_uDrawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[shadow_uLightId], shadow_uProjectCenters[shadow_uLightId]);\n }\n if (shadow_uUseShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow_uLightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[i], shadow_uProjectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n`,uat=`\nconst int max_lights = 2;\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\nuniform vec4 shadow_uColor;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture2D(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow_uDrawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow_uUseShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow_uLightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow_uColor.a / shadow_uLightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow_uColor.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n`,hat=Jf(mat),fat=Jf(gat),dat=[0,0,0,1],pat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function Aat(e,t){let[r,i,n]=e,s=td([r,i,n],t);return Number.isFinite(n)?s:[s[0],s[1],0]}function mat({viewport:e,center:t}){return new mn(e.viewProjectionMatrix).invert().transform(t)}function gat({viewport:e,shadowMatrices:t}){let r=[],i=e.pixelUnprojectionMatrix,n=e.isGeospatial?void 0:1,s=[[0,0,n],[e.width,0,n],[0,e.height,n],[e.width,e.height,n],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(o=>Aat(o,i));for(let o of t){let c=o.clone().translate(new ze(e.center).negate()),d=s.map(w=>c.transform(w)),_=new mn().ortho({left:Math.min(...d.map(w=>w[0])),right:Math.max(...d.map(w=>w[0])),bottom:Math.min(...d.map(w=>w[1])),top:Math.max(...d.map(w=>w[1])),near:Math.min(...d.map(w=>-w[2])),far:Math.max(...d.map(w=>-w[2]))});r.push(_.multiplyRight(o))}return r}function _at(e,t){let{shadowEnabled:r=!0}=e;if(!r||!e.shadowMatrices||!e.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};let i={shadow_uDrawShadowMap:!!e.drawToShadowMap,shadow_uUseShadowMap:e.shadowMaps?e.shadowMaps.length>0:!1,shadow_uColor:e.shadowColor||dat,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},n=hat({viewport:e.viewport,center:t.project_uCenter}),s=[],o=fat({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice();for(let c=0;c0?i[\"shadow_uShadowMap\".concat(c)]=e.shadowMaps[c]:i[\"shadow_uShadowMap\".concat(c)]=e.dummyShadowMap;return i}var bb={name:\"shadow\",dependencies:[Bh],vs:cat,fs:uat,inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n position = shadow_setVertexPosition(geometry.position);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n color = shadow_filterShadowColor(color);\n `},getUniforms:(e={},t={})=>\"viewport\"in e&&(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0)?_at(e,t):{}};var yat={color:[255,255,255],intensity:1},C7=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],vat=[0,0,0,200/255],Ry=class{constructor(t={}){G(this,\"id\",\"lighting-effect\"),G(this,\"props\",void 0),G(this,\"shadowColor\",vat),G(this,\"shadow\",void 0),G(this,\"ambientLight\",void 0),G(this,\"directionalLights\",void 0),G(this,\"pointLights\",void 0),G(this,\"shadowPasses\",[]),G(this,\"shadowMaps\",[]),G(this,\"dummyShadowMap\",null),G(this,\"programManager\",void 0),G(this,\"shadowMatrices\",void 0),this.setProps(t)}setProps(t){this.ambientLight=null,this.directionalLights=[],this.pointLights=[];for(let r in t){let i=t[r];switch(i.type){case\"ambient\":this.ambientLight=i;break;case\"directional\":this.directionalLights.push(i);break;case\"point\":this.pointLights.push(i);break;default:}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(r=>r.shadow),this.props=t}preRender(t,{layers:r,layerFilter:i,viewports:n,onViewportActive:s,views:o}){if(this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses(t),this.programManager||(this.programManager=Oh.getDefaultProgramManager(t),bb&&this.programManager.addDefaultModule(bb)),this.dummyShadowMap||(this.dummyShadowMap=new ci(t,{width:1,height:1}));for(let c=0;ci.getProjectedLight({layer:t})),pointLights:this.pointLights.map(i=>i.getProjectedLight({layer:t}))},r}cleanup(){for(let t of this.shadowPasses)t.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(bb),this.programManager=null)}_calculateMatrices(){let t=[];for(let r of this.directionalLights){let i=new mn().lookAt({eye:new ze(r.direction).negate()});t.push(i)}return t}_createShadowPasses(t){for(let r=0;rn&&(s=n);let o=this._pool,c=t.BYTES_PER_ELEMENT*s,d=o.findIndex(_=>_.byteLength>=c);if(d>=0){let _=new t(o.splice(d,1)[0],0,s);return i&&_.fill(0),_}return new t(s)}_release(t){if(!ArrayBuffer.isView(t))return;let r=this._pool,{buffer:i}=t,{byteLength:n}=i,s=r.findIndex(o=>o.byteLength>=n);s<0?r.push(i):(s>0||r.lengththis.opts.poolSize&&r.shift()}},zh=new QR;function Oy(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function k7(e){return[e[12],e[13],e[14]]}function R7(e){return{left:Dy(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:Dy(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:Dy(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:Dy(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:Dy(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:Dy(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}var L7=new ze;function Dy(e,t,r,i){L7.set(e,t,r);let n=L7.len();return{distance:i/n,normal:new ze(-e/n,-t/n,-r/n)}}function xat(e){return e-Math.fround(e)}var wb;function FE(e,t){let{size:r=1,startIndex:i=0}=t,n=t.endIndex!==void 0?t.endIndex:e.length,s=(n-i)/r;wb=zh.allocate(wb,s,{type:Float32Array,size:r*2});let o=i,c=0;for(;osuper.render({target:o,layers:t,layerFilter:r,views:i,viewports:n,onViewportActive:s,cullRect:I,effects:R?.filter(ht=>ht.useInPicking),pass:N,isPicking:!0,moduleParameters:Y}));return this._colorEncoderState=null,{decodePickingColor:Z&&Pat.bind(null,Z),stats:K}}shouldDrawLayer(t){let{pickable:r,operation:i}=t.props;return r&&i.includes(\"draw\")||i.includes(\"terrain\")||i.includes(\"mask\")}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters(t,r,i){let n={...t.props.parameters},{pickable:s,operation:o}=t.props;return this._colorEncoderState?s&&o.includes(\"draw\")&&(Object.assign(n,z7),n.blend=!0,n.blendColor=Eat(this._colorEncoderState,t,i)):n.blend=!1,o.includes(\"terrain\")&&(n.blend=!1),n}_resetColorEncoder(t){return this._colorEncoderState=t?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function Eat(e,t,r){let{byLayer:i,byAlpha:n}=e,s,o=i.get(t);return o?(o.viewports.push(r),s=o.a):(s=i.size+1,s<=255?(o={a:s,layer:t,viewports:[r]},i.set(t,o),n[s]=o):(er.warn(\"Too many pickable layers, only picking the first 255\")(),s=0)),[0,0,0,s/255]}function Pat(e,t){let r=e.byAlpha[t[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(t)}}var JA={NO_STATE:\"Awaiting state\",MATCHED:\"Matched. State transferred from previous layer\",INITIALIZED:\"Initialized\",AWAITING_GC:\"Discarded. Awaiting garbage collection\",AWAITING_FINALIZATION:\"No longer matched. Awaiting garbage collection\",FINALIZED:\"Finalized! Awaiting garbage collection\"},By=Symbol.for(\"component\"),Vu=Symbol.for(\"propTypes\"),zE=Symbol.for(\"deprecatedProps\"),rp=Symbol.for(\"asyncPropDefaults\"),ed=Symbol.for(\"asyncPropOriginal\"),Nh=Symbol.for(\"asyncPropResolved\");function ip(e,t=()=>!0){return Array.isArray(e)?N7(e,t,[]):t(e)?[e]:[]}function N7(e,t,r){let i=-1;for(;++i0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(t,r){if(t===this._data&&!r)return;this._data=t;let i=++this._loadCount,n=t;typeof t==\"string\"&&(n=VA(t)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(s=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=s)}).catch(s=>{this._loadCount===i&&(this.isLoaded=!0,this._error=s||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=t);for(let s of this._subscribers)s.onChange(this.getData())}};var Tb=class{constructor({gl:t,protocol:r}){G(this,\"protocol\",void 0),G(this,\"_context\",void 0),G(this,\"_resources\",void 0),G(this,\"_consumers\",void 0),G(this,\"_pruneRequest\",void 0),this.protocol=r||\"resource://\",this._context={gl:t,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(t){return t.startsWith(this.protocol)?!0:t in this._resources}add({resourceId:t,data:r,forceUpdate:i=!1,persistent:n=!0}){let s=this._resources[t];s?s.setData(r,i):(s=new Sb(t,r,this._context),this._resources[t]=s),s.persistent=n}remove(t){let r=this._resources[t];r&&(r.delete(),delete this._resources[t])}unsubscribe({consumerId:t}){let r=this._consumers[t];if(r){for(let i in r){let n=r[i],s=this._resources[n.resourceId];s&&s.unsubscribe(n)}delete this._consumers[t],this.prune()}}subscribe({resourceId:t,onChange:r,consumerId:i,requestId:n=\"default\"}){let{_resources:s,protocol:o}=this;t.startsWith(o)&&(t=t.replace(o,\"\"),s[t]||this.add({resourceId:t,data:null,persistent:!1}));let c=s[t];if(this._track(i,n,c,r),c)return c.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let t in this._resources)this._resources[t].delete()}_track(t,r,i,n){let s=this._consumers,o=s[t]=s[t]||{},c=o[r]||{},d=c.resourceId&&this._resources[c.resourceId];d&&(d.unsubscribe(c),this.prune()),i&&(o[r]=c,c.onChange=n,c.resourceId=i.id,i.subscribe(c))}_prune(){this._pruneRequest=null;for(let t of Object.keys(this._resources)){let r=this._resources[t];!r.persistent&&!r.inUse()&&(r.delete(),delete this._resources[t])}}};var Iat=`\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n mat3 rotation;\n if (project_needs_rotation(projectedPosition, rotation)) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n`,uo={name:\"project32\",dependencies:[Bh],vs:Iat};var ra={inject:{\"vs:DECKGL_FILTER_GL_POSITION\":`\n // for picking depth values\n picking_setPickingAttribute(position.z / position.w);\n `,\"vs:DECKGL_FILTER_COLOR\":`\n picking_setPickingColor(geometry.pickingColor);\n `,\"fs:#decl\":`\nuniform bool picking_uAttribute;\n `,\"fs:DECKGL_FILTER_COLOR\":{order:99,injection:`\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n `}},...LE};var Cat=[Bh],Lat=[\"vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)\",\"vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)\",\"fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)\"];function U7(e){let t=Oh.getDefaultProgramManager(e);for(let r of Cat)t.addDefaultModule(r);for(let r of Lat)t.addShaderHook(r);return t}var kat=\"layerManager.setLayers\",Rat=\"layerManager.activateViewport\",Mb=class{constructor(t,{deck:r,stats:i,viewport:n,timeline:s}={}){G(this,\"layers\",void 0),G(this,\"context\",void 0),G(this,\"resourceManager\",void 0),G(this,\"_lastRenderedLayers\",[]),G(this,\"_needsRedraw\",!1),G(this,\"_needsUpdate\",!1),G(this,\"_nextLayers\",null),G(this,\"_debug\",!1),G(this,\"activateViewport\",o=>{Rs(Rat,this,o),o&&(this.context.viewport=o)}),this.layers=[],this.resourceManager=new Tb({gl:t,protocol:\"deck://\"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:t,deck:r,programManager:t&&U7(t),stats:i||new $f({id:\"deck.gl\"}),viewport:n||new Jl({id:\"DEFAULT-INITIAL-VIEWPORT\"}),timeline:s||new XA,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(let t of this.layers)this._finalizeLayer(t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);for(let i of this.layers){let n=i.getNeedsRedraw(t);r=r||n}return r}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?\"layers changed\":this._needsUpdate}setNeedsRedraw(t){this._needsRedraw=this._needsRedraw||t}setNeedsUpdate(t){this._needsUpdate=this._needsUpdate||t}getLayers({layerIds:t}={}){return t?this.layers.filter(r=>t.find(i=>r.id.indexOf(i)===0)):this.layers}setProps(t){\"debug\"in t&&(this._debug=t.debug),\"userData\"in t&&(this.context.userData=t.userData),\"layers\"in t&&(this._nextLayers=t.layers),\"onError\"in t&&(this.context.onError=t.onError)}setLayers(t,r){Rs(kat,this,r,t),this._lastRenderedLayers=t;let i=ip(t,Boolean);for(let n of i)n.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){let t=this.needsUpdate();t&&(this.setNeedsRedraw(\"updating layers: \".concat(t)),this.setLayers(this._nextLayers||this._lastRenderedLayers,t)),this._nextLayers=null}_handleError(t,r,i){i.raiseError(r,\"\".concat(t,\" of \").concat(i))}_updateLayers(t,r){let i={};for(let o of t)i[o.id]?er.warn(\"Multiple old layers with same id \".concat(o.id))():i[o.id]=o;let n=[];this._updateSublayersRecursively(r,i,n),this._finalizeOldLayers(i);let s=!1;for(let o of n)if(o.hasUniformTransition()){s=\"Uniform transition in \".concat(o);break}this._needsUpdate=s,this.layers=n}_updateSublayersRecursively(t,r,i){for(let n of t){n.context=this.context;let s=r[n.id];s===null&&er.warn(\"Multiple new layers with same id \".concat(n.id))(),r[n.id]=null;let o=null;try{this._debug&&s!==n&&n.validateProps(),s?(this._transferLayerState(s,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),o=n.isComposite?n.getSubLayers():null}catch(c){this._handleError(\"matching\",c,n)}o&&this._updateSublayersRecursively(o,r,i)}}_finalizeOldLayers(t){for(let r in t){let i=t[r];i&&this._finalizeLayer(i)}}_initializeLayer(t){try{t._initialize(),t.lifecycle=JA.INITIALIZED}catch(r){this._handleError(\"initialization\",r,t)}}_transferLayerState(t,r){r._transferState(t),r.lifecycle=JA.MATCHED,r!==t&&(t.lifecycle=JA.AWAITING_GC)}_updateLayer(t){try{t._update()}catch(r){this._handleError(\"update\",r,t)}}_finalizeLayer(t){this._needsRedraw=this._needsRedraw||\"finalized \".concat(t),t.lifecycle=JA.AWAITING_FINALIZATION;try{t._finalize(),t.lifecycle=JA.FINALIZED}catch(r){this._handleError(\"finalization\",r,t)}}};function ho(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let i=0;ir.containsPixel(t)):this._viewports}getViews(){let t={};return this.views.forEach(r=>{t[r.id]=r}),t}getView(t){return this.views.find(r=>r.id===t)}getViewState(t){let r=typeof t==\"string\"?this.getView(t):t,i=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(i):i}getViewport(t){return this._viewportMap[t]}unproject(t,r){let i=this.getViewports(),n={x:t[0],y:t[1]};for(let s=i.length-1;s>=0;--s){let o=i[s];if(o.containsPixel(n)){let c=t.slice();return c[0]-=o.x,c[1]-=o.y,o.unproject(c,r)}}return null}setProps(t){t.views&&this._setViews(t.views),t.viewState&&this._setViewState(t.viewState),(\"width\"in t||\"height\"in t)&&this._setSize(t.width,t.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(t,r){(t!==this.width||r!==this.height)&&(this.width=t,this.height=r,this.setNeedsUpdate(\"Size changed\"))}_setViews(t){t=ip(t,Boolean),this._diffViews(t,this.views)&&this.setNeedsUpdate(\"views changed\"),this.views=t}_setViewState(t){t?(!ho(t,this.viewState,3)&&this.setNeedsUpdate(\"viewState changed\"),this.viewState=t):er.warn(\"missing `viewState` or `initialViewState`\")()}_onViewStateChange(t,r){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...r,viewId:t})}_createController(t,r){let i=r.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,r.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:s=>{var o;return(o=this.getView(t.id))===null||o===void 0?void 0:o.makeViewport({viewState:s,width:this.width,height:this.height})}})}_updateController(t,r,i,n){let s=t.controller;if(s&&i){let o={...r,...s,id:t.id,x:i.x,y:i.y,width:i.width,height:i.height};return(!n||n.constructor!==s.type)&&(n=this._createController(t,o)),n&&n.setProps(o),n}return null}_rebuildViewports(){let{views:t}=this,r=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let n=t.length;n--;){let s=t[n],o=this.getViewState(s),c=s.makeViewport({viewState:o,width:this.width,height:this.height}),d=r[s.id],_=!!s.controller;_&&!d&&(i=!0),(i||!_)&&d&&(d.finalize(),d=null),this.controllers[s.id]=this._updateController(s,o,c,d),c&&this._viewports.unshift(c)}for(let n in r){let s=r[n];s&&!this.controllers[n]&&s.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(t=>{t.id&&(this._viewportMap[t.id]=this._viewportMap[t.id]||t)})}_diffViews(t,r){return t.length!==r.length?!0:t.some((i,n)=>!t[n].equals(r[n]))}};var Dat=/([0-9]+\\.?[0-9]*)(%|px)/;function np(e){switch(typeof e){case\"number\":return{position:e,relative:!1};case\"string\":let t=Dat.exec(e);if(t&&t.length>=3){let r=t[2]===\"%\",i=parseFloat(t[1]);return{position:r?i/100:i,relative:r}}default:throw new Error(\"Could not parse position string \".concat(e))}}function sp(e,t){return e.relative?Math.round(e.position*t):e.position}function vr(e,t){if(!e)throw new Error(t||\"deck.gl: assertion failed.\")}var Qc=class{constructor(t){G(this,\"id\",void 0),G(this,\"viewportInstance\",void 0),G(this,\"_x\",void 0),G(this,\"_y\",void 0),G(this,\"_width\",void 0),G(this,\"_height\",void 0),G(this,\"_padding\",void 0),G(this,\"props\",void 0);let{id:r,x:i=0,y:n=0,width:s=\"100%\",height:o=\"100%\",padding:c=null,viewportInstance:d}=t||{};vr(!d||d instanceof Jl),this.viewportInstance=d,this.id=r||this.constructor.displayName||\"view\",this.props={...t,id:this.id},this._x=np(i),this._y=np(n),this._width=np(s),this._height=np(o),this._padding=c&&{left:np(c.left||0),right:np(c.right||0),top:np(c.top||0),bottom:np(c.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(t){return this===t?!0:this.viewportInstance?t.viewportInstance?this.viewportInstance.equals(t.viewportInstance):!1:this.ViewportType===t.ViewportType&&ho(this.props,t.props,2)}makeViewport({width:t,height:r,viewState:i}){if(this.viewportInstance)return this.viewportInstance;i=this.filterViewState(i);let n=this.getDimensions({width:t,height:r});return!n.height||!n.width?null:new this.ViewportType({...i,...this.props,...n})}getViewStateId(){let{viewState:t}=this.props;return typeof t==\"string\"?t:t?.id||this.id}filterViewState(t){if(this.props.viewState&&typeof this.props.viewState==\"object\"){if(!this.props.viewState.id)return this.props.viewState;let r={...t};for(let i in this.props.viewState)i!==\"id\"&&(r[i]=this.props.viewState[i]);return r}return t}getDimensions({width:t,height:r}){let i={x:sp(this._x,t),y:sp(this._y,r),width:sp(this._width,t),height:sp(this._height,r)};return this._padding&&(i.padding={left:sp(this._padding.left,t),top:sp(this._padding.top,r),right:sp(this._padding.right,t),bottom:sp(this._padding.bottom,r)}),i}get controller(){let t=this.props.controller;return t?t===!0?{type:this.ControllerType}:typeof t==\"function\"?{type:t}:{type:this.ControllerType,...t}:null}};var Xc=class{constructor(t){G(this,\"_inProgress\",void 0),G(this,\"_handle\",void 0),G(this,\"_timeline\",void 0),G(this,\"time\",void 0),G(this,\"settings\",void 0),this._inProgress=!1,this._handle=null,this._timeline=t,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start(t){var r,i;this.cancel(),this.settings=t,this._inProgress=!0,(r=(i=this.settings).onStart)===null||r===void 0||r.call(i,this)}end(){if(this._inProgress){var t,r;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,(t=(r=this.settings).onEnd)===null||t===void 0||t.call(r,this)}}cancel(){if(this._inProgress){var t,r;(t=(r=this.settings).onInterrupt)===null||t===void 0||t.call(r,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var t,r;if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:i,settings:n}=this;this._handle=i.addChannel({delay:i.getTime(),duration:n.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),(t=(r=this.settings).onUpdate)===null||t===void 0||t.call(r,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var V7=()=>{},tD={BREAK:1,SNAP_TO_END:2,IGNORE:3},Oat=e=>e,Bat=tD.BREAK,Pb=class{constructor(t){G(this,\"getControllerState\",void 0),G(this,\"props\",void 0),G(this,\"propsInTransition\",void 0),G(this,\"transition\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"_onTransitionUpdate\",r=>{let{time:i,settings:{interpolator:n,startProps:s,endProps:o,duration:c,easing:d}}=r,_=d(i/c),w=n.interpolateProps(s,o,_);this.propsInTransition=this.getControllerState({...this.props,...w}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=t.getControllerState,this.propsInTransition=null,this.transition=new Xc(t.timeline),this.onViewStateChange=t.onViewStateChange||V7,this.onStateChange=t.onStateChange||V7}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(t){let r=!1,i=this.props;if(this.props=t,!i||this._shouldIgnoreViewportChange(i,t))return!1;if(this._isTransitionEnabled(t)){let n=i;if(this.transition.inProgress){let{interruption:s,endProps:o}=this.transition.settings;n={...i,...s===tD.SNAP_TO_END?o:this.propsInTransition||i}}this._triggerTransition(n,t),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(t){let{transitionDuration:r,transitionInterpolator:i}=t;return(r>0||r===\"auto\")&&!!i}_isUpdateDueToCurrentTransition(t){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(t,this.propsInTransition):!1}_shouldIgnoreViewportChange(t,r){return this.transition.inProgress?this.transition.settings.interruption===tD.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(t,r):!0}_triggerTransition(t,r){let i=this.getControllerState(t),n=this.getControllerState(r).shortestPathFrom(i),s=r.transitionInterpolator,o=s.getDuration?s.getDuration(t,r):r.transitionDuration;if(o===0)return;let c=s.initializeProps(t,n);this.propsInTransition={};let d={duration:o,easing:r.transitionEasing||Oat,interpolator:s,interruption:r.transitionInterruption||Bat,startProps:c.start,endProps:c.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(d),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(t){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),t?.(r)}}};var Ib=class{constructor(t){G(this,\"_propsToCompare\",void 0),G(this,\"_propsToExtract\",void 0),G(this,\"_requiredProps\",void 0);let{compare:r,extract:i,required:n}=t;this._propsToCompare=r,this._propsToExtract=i||r,this._requiredProps=n}arePropsEqual(t,r){for(let i of this._propsToCompare)if(!(i in t)||!(i in r)||!Co(t[i],r[i]))return!1;return!0}initializeProps(t,r){let i={},n={};for(let s of this._propsToExtract)(s in t||s in r)&&(i[s]=t[s],n[s]=r[s]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(t,r){return r.transitionDuration}_checkRequiredProps(t){this._requiredProps&&this._requiredProps.forEach(r=>{let i=t[r];vr(Number.isFinite(i)||Array.isArray(i),\"\".concat(r,\" is required for transition\"))})}};var Fat=[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\"],zat=[\"longitude\",\"latitude\",\"zoom\"],ig=class extends Ib{constructor(t={}){let r=Array.isArray(t)?t:t.transitionProps,i=Array.isArray(t)?{}:t;i.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:Fat,required:zat},super(i.transitionProps),G(this,\"opts\",void 0),this.opts=i}initializeProps(t,r){let i=super.initializeProps(t,r),{makeViewport:n,around:s}=this.opts;if(n&&s){let o=n(t),c=n(r),d=o.unproject(s);i.start.around=s,Object.assign(i.end,{around:c.project(d),aroundPosition:d,width:r.width,height:r.height})}return i}interpolateProps(t,r,i){let n={};for(let s of this._propsToExtract)n[s]=Ql(t[s]||0,r[s]||0,i);if(r.aroundPosition&&this.opts.makeViewport){let s=this.opts.makeViewport({...r,...n});Object.assign(n,s.panByPosition(r.aroundPosition,Ql(t.around,r.around,i)))}return n}};var tm={transitionDuration:0},Nat=300,NE=e=>1-(1-e)*(1-e),Fy={WHEEL:[\"wheel\"],PAN:[\"panstart\",\"panmove\",\"panend\"],PINCH:[\"pinchstart\",\"pinchmove\",\"pinchend\"],TRIPLE_PAN:[\"tripanstart\",\"tripanmove\",\"tripanend\"],DOUBLE_TAP:[\"doubletap\"],KEYBOARD:[\"keydown\"]},ng={},Cb=class{constructor(t){G(this,\"props\",void 0),G(this,\"state\",{}),G(this,\"transitionManager\",void 0),G(this,\"eventManager\",void 0),G(this,\"onViewStateChange\",void 0),G(this,\"onStateChange\",void 0),G(this,\"makeViewport\",void 0),G(this,\"_controllerState\",void 0),G(this,\"_events\",{}),G(this,\"_interactionState\",{isDragging:!1}),G(this,\"_customEvents\",[]),G(this,\"_eventStartBlocked\",null),G(this,\"_panMove\",!1),G(this,\"invertPan\",!1),G(this,\"dragMode\",\"rotate\"),G(this,\"inertia\",0),G(this,\"scrollZoom\",!0),G(this,\"dragPan\",!0),G(this,\"dragRotate\",!0),G(this,\"doubleClickZoom\",!0),G(this,\"touchZoom\",!0),G(this,\"touchRotate\",!1),G(this,\"keyboard\",!0),this.transitionManager=new Pb({...t,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=t.eventManager,this.onViewStateChange=t.onViewStateChange||(()=>{}),this.onStateChange=t.onStateChange||(()=>{}),this.makeViewport=t.makeViewport}set events(t){this.toggleEvents(this._customEvents,!1),this.toggleEvents(t,!0),this._customEvents=t,this.props&&this.setProps(this.props)}finalize(){for(let r in this._events)if(this._events[r]){var t;(t=this.eventManager)===null||t===void 0||t.off(r,this.handleEvent)}this.transitionManager.finalize()}handleEvent(t){this._controllerState=void 0;let r=this._eventStartBlocked;switch(t.type){case\"panstart\":return r?!1:this._onPanStart(t);case\"panmove\":return this._onPan(t);case\"panend\":return this._onPanEnd(t);case\"pinchstart\":return r?!1:this._onPinchStart(t);case\"pinchmove\":return this._onPinch(t);case\"pinchend\":return this._onPinchEnd(t);case\"tripanstart\":return r?!1:this._onTriplePanStart(t);case\"tripanmove\":return this._onTriplePan(t);case\"tripanend\":return this._onTriplePanEnd(t);case\"doubletap\":return this._onDoubleTap(t);case\"wheel\":return this._onWheel(t);case\"keydown\":return this._onKeyDown(t);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(t){let{x:r,y:i}=this.props,{offsetCenter:n}=t;return[n.x-r,n.y-i]}isPointInBounds(t,r){let{width:i,height:n}=this.props;if(r&&r.handled)return!1;let s=t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=n;return s&&r&&r.stopPropagation(),s}isFunctionKeyPressed(t){let{srcEvent:r}=t;return!!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(t){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},t);this._eventStartBlocked=r}setProps(t){t.dragMode&&(this.dragMode=t.dragMode),this.props=t,\"transitionInterpolator\"in t||(t.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(t);let{inertia:r}=t;this.inertia=Number.isFinite(r)?r:r===!0?Nat:0;let{scrollZoom:i=!0,dragPan:n=!0,dragRotate:s=!0,doubleClickZoom:o=!0,touchZoom:c=!0,touchRotate:d=!1,keyboard:_=!0}=t,w=!!this.onViewStateChange;this.toggleEvents(Fy.WHEEL,w&&i),this.toggleEvents(Fy.PAN,w),this.toggleEvents(Fy.PINCH,w&&(c||d)),this.toggleEvents(Fy.TRIPLE_PAN,w&&d),this.toggleEvents(Fy.DOUBLE_TAP,w&&o),this.toggleEvents(Fy.KEYBOARD,w&&_),this.scrollZoom=i,this.dragPan=n,this.dragRotate=s,this.doubleClickZoom=o,this.touchZoom=c,this.touchRotate=d,this.keyboard=_}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(t,r){this.eventManager&&t.forEach(i=>{this._events[i]!==r&&(this._events[i]=r,r?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(t,r=null,i={}){let n={...t.getViewportProps(),...r},s=this.controllerState!==t;if(this.state=t.getState(),this._setInteractionState(i),s){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,interactionState:this._interactionState,oldViewState:o})}}_onTransition(t){this.onViewStateChange({...t,interactionState:this._interactionState})}_setInteractionState(t){Object.assign(this._interactionState,t),this.onStateChange(this._interactionState)}_onPanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t)||t.rightButton||!1;(this.invertPan||this.dragMode===\"pan\")&&(i=!i);let n=this.controllerState[i?\"panStart\":\"rotateStart\"]({pos:r});return this._panMove=i,this.updateViewport(n,tm,{isDragging:!0}),!0}_onPan(t){return this.isDragging()?this._panMove?this._onPanMove(t):this._onPanRotate(t):!1}_onPanEnd(t){return this.isDragging()?this._panMove?this._onPanMoveEnd(t):this._onPanRotateEnd(t):!1}_onPanMove(t){if(!this.dragPan)return!1;let r=this.getCenter(t),i=this.controllerState.pan({pos:r});return this.updateViewport(i,tm,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(t){let{inertia:r}=this;if(this.dragPan&&r&&t.velocity){let i=this.getCenter(t),n=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],s=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:NE},{isDragging:!1,isPanning:!0})}else{let i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(t){if(!this.dragRotate)return!1;let r=this.getCenter(t),i=this.controllerState.rotate({pos:r});return this.updateViewport(i,tm,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(t){let{inertia:r}=this;if(this.dragRotate&&r&&t.velocity){let i=this.getCenter(t),n=[i[0]+t.velocityX*r/2,i[1]+t.velocityY*r/2],s=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:NE},{isDragging:!1,isRotating:!0})}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(t){if(!this.scrollZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;t.srcEvent.preventDefault();let{speed:i=.01,smooth:n=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=t,o=2/(1+Math.exp(-Math.abs(s*i)));s<0&&o!==0&&(o=1/o);let c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,{...this._getTransitionProps({around:r}),transitionDuration:n?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.rotateStart({pos:r});return this.updateViewport(i,tm,{isDragging:!0}),!0}_onTriplePan(t){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(t);r[0]-=t.deltaX;let i=this.controllerState.rotate({pos:r});return this.updateViewport(i,tm,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&t.velocityY){let i=this.getCenter(t),n=[i[0],i[1]+=t.velocityY*r/2],s=this.controllerState.rotate({pos:n});this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:NE},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return ng._startPinchRotation=t.rotation,ng._lastPinchEvent=t,this.updateViewport(i,tm,{isDragging:!0}),!0}_onPinch(t){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:i}=t,n=this.getCenter(t);r=r.zoom({pos:n,scale:i})}if(this.touchRotate){let{rotation:i}=t;r=r.rotate({deltaAngleX:ng._startPinchRotation-i})}return this.updateViewport(r,tm,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),ng._lastPinchEvent=t,!0}_onPinchEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:i}=ng;if(this.touchZoom&&r&&i&&t.scale!==i.scale){let n=this.getCenter(t),s=this.controllerState.rotateEnd(),o=Math.log2(t.scale),c=(o-Math.log2(i.scale))/(t.deltaTime-i.deltaTime),d=Math.pow(2,o+c*r/2);s=s.zoom({pos:n,scale:d}).zoomEnd(),this.updateViewport(s,{...this._getTransitionProps({around:n}),transitionDuration:r,transitionEasing:NE},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let n=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return ng._startPinchRotation=null,ng._lastPinchEvent=null,!0}_onDoubleTap(t){if(!this.doubleClickZoom)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let i=this.isFunctionKeyPressed(t),n=this.controllerState.zoom({pos:r,scale:i?.5:2});return this.updateViewport(n,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(t){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(t),{zoomSpeed:i,moveSpeed:n,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:c}=this,d,_={};switch(t.srcEvent.code){case\"Minus\":d=r?c.zoomOut(i).zoomOut(i):c.zoomOut(i),_.isZooming=!0;break;case\"Equal\":d=r?c.zoomIn(i).zoomIn(i):c.zoomIn(i),_.isZooming=!0;break;case\"ArrowLeft\":r?(d=c.rotateLeft(s),_.isRotating=!0):(d=c.moveLeft(n),_.isPanning=!0);break;case\"ArrowRight\":r?(d=c.rotateRight(s),_.isRotating=!0):(d=c.moveRight(n),_.isPanning=!0);break;case\"ArrowUp\":r?(d=c.rotateUp(o),_.isRotating=!0):(d=c.moveUp(n),_.isPanning=!0);break;case\"ArrowDown\":r?(d=c.rotateDown(o),_.isRotating=!0):(d=c.moveDown(n),_.isPanning=!0);break;default:return!1}return this.updateViewport(d,this._getTransitionProps(),_),!0}_getTransitionProps(t){let{transition:r}=this;return!r||!r.transitionInterpolator?tm:t?{...r,transitionInterpolator:new ig({...t,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Lb=class{constructor(t,r){G(this,\"_viewportProps\",void 0),G(this,\"_state\",void 0),this._viewportProps=this.applyConstraints(t),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var j7=5,Uat=1.2,eD=class extends Lb{constructor(t){let{width:r,height:i,latitude:n,longitude:s,zoom:o,bearing:c=0,pitch:d=0,altitude:_=1.5,position:w=[0,0,0],maxZoom:I=20,minZoom:R=0,maxPitch:N=60,minPitch:j=0,startPanLngLat:Y,startZoomLngLat:it,startRotatePos:Z,startBearing:K,startPitch:J,startZoom:ht,normalize:Tt=!0}=t;vr(Number.isFinite(s)),vr(Number.isFinite(n)),vr(Number.isFinite(o)),super({width:r,height:i,latitude:n,longitude:s,zoom:o,bearing:c,pitch:d,altitude:_,maxZoom:I,minZoom:R,maxPitch:N,minPitch:j,normalize:Tt,position:w},{startPanLngLat:Y,startZoomLngLat:it,startRotatePos:Z,startBearing:K,startPitch:J,startZoom:ht}),G(this,\"makeViewport\",void 0),this.makeViewport=t.makeViewport}panStart({pos:t}){return this._getUpdatedState({startPanLngLat:this._unproject(t)})}pan({pos:t,startPos:r}){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let s=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(s)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:t}){return this._getUpdatedState({startRotatePos:t,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:r=0,deltaAngleY:i=0}){let{startRotatePos:n,startBearing:s,startPitch:o}=this.getState();if(!n||s===void 0||o===void 0)return this;let c;return t?c=this._getNewRotation(t,n,o,s):c={bearing:s+r,pitch:o+i},this._getUpdatedState(c)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:t}){return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom({pos:t,startPos:r,scale:i}){let{startZoom:n,startZoomLngLat:s}=this.getState();if(s||(n=this.getViewportProps().zoom,s=this._unproject(r)||this._unproject(t)),!s)return this;let{maxZoom:o,minZoom:c}=this.getViewportProps(),d=n+Math.log2(i);d=Tl(d,c,o);let _=this.makeViewport({...this.getViewportProps(),zoom:d});return this._getUpdatedState({zoom:d,..._.panByPosition(s,t)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(t=2){return this._zoomFromCenter(t)}zoomOut(t=2){return this._zoomFromCenter(1/t)}moveLeft(t=100){return this._panFromCenter([t,0])}moveRight(t=100){return this._panFromCenter([-t,0])}moveUp(t=100){return this._panFromCenter([0,t])}moveDown(t=100){return this._panFromCenter([0,-t])}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}shortestPathFrom(t){let r=t.getViewportProps(),i={...this.getViewportProps()},{bearing:n,longitude:s}=i;return Math.abs(n-r.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(s-r.longitude)>180&&(i.longitude=s<0?s+360:s-360),i}applyConstraints(t){let{maxZoom:r,minZoom:i,zoom:n}=t;t.zoom=Tl(n,i,r);let{maxPitch:s,minPitch:o,pitch:c}=t;t.pitch=Tl(c,o,s);let{normalize:d=!0}=t;return d&&Object.assign(t,BE(t)),t}_zoomFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.zoom({pos:[r/2,i/2],scale:t})}_panFromCenter(t){let{width:r,height:i}=this.getViewportProps();return this.pan({startPos:[r/2,i/2],pos:[r/2+t[0],i/2+t[1]]})}_getUpdatedState(t){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t})}_unproject(t){let r=this.makeViewport(this.getViewportProps());return t&&r.unproject(t)}_getNewRotation(t,r,i,n){let s=t[0]-r[0],o=t[1]-r[1],c=t[1],d=r[1],{width:_,height:w}=this.getViewportProps(),I=s/_,R=0;o>0?Math.abs(w-d)>j7&&(R=o/(d-w)*Uat):o<0&&d>j7&&(R=1-c/d),R=Tl(R,-1,1);let{minPitch:N,maxPitch:j}=this.getViewportProps(),Y=n+180*I,it=i;return R>0?it=i+R*(j-i):R<0&&(it=i-R*(N-i)),{pitch:it,bearing:Y}}},kb=class extends Cb{constructor(...t){super(...t),G(this,\"ControllerState\",eD),G(this,\"transition\",{transitionDuration:300,transitionInterpolator:new ig({transitionProps:{compare:[\"longitude\",\"latitude\",\"zoom\",\"bearing\",\"pitch\",\"position\"],required:[\"longitude\",\"latitude\",\"zoom\"]}})}),G(this,\"dragMode\",\"pan\")}setProps(t){t.position=t.position||[0,0,0];let r=this.props;super.setProps(t),(!r||r.height!==t.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...t,...this.state}))}};var zy=class extends Qc{get ViewportType(){return tc}get ControllerType(){return kb}};G(zy,\"displayName\",\"MapView\");var Vat=new Ry;function jat(e,t){var r,i;let n=(r=e.order)!==null&&r!==void 0?r:1/0,s=(i=t.order)!==null&&i!==void 0?i:1/0;return n-s}var Rb=class{constructor(){G(this,\"effects\",void 0),G(this,\"_resolvedEffects\",[]),G(this,\"_defaultEffects\",[]),G(this,\"_needsRedraw\",void 0),this.effects=[],this._needsRedraw=\"Initial render\",this._setEffects([])}addDefaultEffect(t){let r=this._defaultEffects;if(!r.find(i=>i.id===t.id)){let i=r.findIndex(n=>jat(n,t)>0);i<0?r.push(t):r.splice(i,0,t),this._setEffects(this.effects)}}setProps(t){\"effects\"in t&&(ho(t.effects,this.effects,1)||this._setEffects(t.effects))}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}getEffects(){return this._resolvedEffects}_setEffects(t){let r={};for(let n of this.effects)r[n.id]=n;let i=[];for(let n of t){let s=r[n.id];s&&s!==n?s.setProps?(s.setProps(n.props),i.push(s)):(s.cleanup(),i.push(n)):i.push(n),delete r[n.id]}for(let n in r)r[n].cleanup();this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),t.some(n=>n instanceof Ry)||this._resolvedEffects.push(Vat),this._needsRedraw=\"effects changed\"}finalize(){for(let t of this._resolvedEffects)t.cleanup();this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}};var Db=class extends Kl{shouldDrawLayer(t){let{operation:r}=t.props;return r.includes(\"draw\")||r.includes(\"terrain\")}};var Gat=\"deckRenderer.renderLayers\",Ob=class{constructor(t){G(this,\"gl\",void 0),G(this,\"layerFilter\",void 0),G(this,\"drawPickingColors\",void 0),G(this,\"drawLayersPass\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"renderCount\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"renderBuffers\",void 0),G(this,\"lastPostProcessEffect\",void 0),this.gl=t,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new Db(t),this.pickLayersPass=new rg(t),this.renderCount=0,this._needsRedraw=\"Initial render\",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(t){this.layerFilter!==t.layerFilter&&(this.layerFilter=t.layerFilter,this._needsRedraw=\"layerFilter changed\"),this.drawPickingColors!==t.drawPickingColors&&(this.drawPickingColors=t.drawPickingColors,this._needsRedraw=\"drawPickingColors changed\")}renderLayers(t){if(!t.viewports.length)return;let r=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,i={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...t,target:t.target||di.getDefaultFramebuffer(this.gl)};i.effects&&this._preRender(i.effects,i);let n=this.lastPostProcessEffect?this.renderBuffers[0]:i.target,s=r.render({...i,target:n});i.effects&&this._postRender(i.effects,i),this.renderCount++,Rs(Gat,this,s,t)}needsRedraw(t={clearRedrawFlags:!1}){let r=this._needsRedraw;return t.clearRedrawFlags&&(this._needsRedraw=!1),r}finalize(){let{renderBuffers:t}=this;for(let r of t)r.delete();t.length=0}_preRender(t,r){this.lastPostProcessEffect=null,r.preRenderStats=r.preRenderStats||{};for(let i of t)r.preRenderStats[i.id]=i.preRender(this.gl,r),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:t}=this;t.length===0&&t.push(new di(this.gl),new di(this.gl));for(let r of t)r.resize()}_postRender(t,r){let{renderBuffers:i}=this,n={...r,inputBuffer:i[0],swapBuffer:i[1],target:null};for(let s of t)if(s.postRender){if(s.id===this.lastPostProcessEffect){n.target=r.target,s.postRender(this.gl,n);break}let o=s.postRender(this.gl,n);n.inputBuffer=o,n.swapBuffer=o===i[0]?i[1]:i[0]}}};var Wat={pickedColor:null,pickedObjectIndex:-1};function G7({pickedColors:e,decodePickingColor:t,deviceX:r,deviceY:i,deviceRadius:n,deviceRect:s}){let{x:o,y:c,width:d,height:_}=s,w=n*n,I=-1,R=0;for(let N=0;N<_;N++){let j=N+c-i,Y=j*j;if(Y>w)R+=4*d;else for(let it=0;it=0){let K=it+o-r,J=K*K+Y;J<=w&&(w=J,I=R)}R+=4}}if(I>=0){let N=e.slice(I,I+4),j=t(N);if(j){let Y=Math.floor(I/4/d),it=I/4-Y*d;return{...j,pickedColor:N,pickedX:o+it,pickedY:c+Y}}er.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}return Wat}function W7({pickedColors:e,decodePickingColor:t}){let r=new Map;if(e){for(let i=0;i=0){let s=e.slice(i,i+4),o=s.join(\",\");if(!r.has(o)){let c=t(s);c?r.set(o,{...c,color:s}):er.error(\"Picked non-existent layer. Is picking buffer corrupt?\")()}}}return Array.from(r.values())}function rD({pickInfo:e,viewports:t,pixelRatio:r,x:i,y:n,z:s}){let o=t[0];t.length>1&&(o=Hat(e?.pickedViewports||t,{x:i,y:n}));let c;if(o){let d=[i-o.x,n-o.y];s!==void 0&&(d[2]=s),c=o.unproject(d)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:i,y:n,pixel:[i,n],coordinate:c,devicePixel:e&&\"pickedX\"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:r}}function H7(e){let{pickInfo:t,lastPickedInfo:r,mode:i,layers:n}=e,{pickedColor:s,pickedLayer:o,pickedObjectIndex:c}=t,d=o?[o]:[];if(i===\"hover\"){let I=r.index,R=r.layerId,N=o?o.props.id:null;if(N!==R||c!==I){if(N!==R){let j=n.find(Y=>Y.props.id===R);j&&d.unshift(j)}r.layerId=N,r.index=c,r.info=null}}let _=rD(e),w=new Map;return w.set(null,_),d.forEach(I=>{let R={..._};I===o&&(R.color=s,R.index=c,R.picked=!0),R=iD({layer:I,info:R,mode:i});let N=R.layer;I===o&&i===\"hover\"&&(r.info=R),w.set(N.id,R),i===\"hover\"&&N.updateAutoHighlight(R)}),w}function iD({layer:e,info:t,mode:r}){for(;e&&t;){let i=t.layer||null;t.sourceLayer=i,t.layer=e,t=e.getPickingInfo({info:t,mode:r,sourceLayer:i}),e=e.parent}return t}function Hat(e,t){for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.containsPixel(t))return i}return e[0]}var Bb=class{constructor(t){G(this,\"gl\",void 0),G(this,\"pickingFBO\",void 0),G(this,\"depthFBO\",void 0),G(this,\"pickLayersPass\",void 0),G(this,\"layerFilter\",void 0),G(this,\"lastPickedInfo\",void 0),G(this,\"_pickable\",!0),this.gl=t,this.pickLayersPass=new rg(t),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(t){\"layerFilter\"in t&&(this.layerFilter=t.layerFilter),\"_pickable\"in t&&(this._pickable=t._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject(t){return this._pickClosestObject(t)}pickObjects(t){return this._pickVisibleObjects(t)}getLastPickedObject({x:t,y:r,layers:i,viewports:n},s=this.lastPickedInfo.info){let o=s&&s.layer&&s.layer.id,c=s&&s.viewport&&s.viewport.id,d=o?i.find(R=>R.id===o):null,_=c&&n.find(R=>R.id===c)||n[0],w=_&&_.unproject([t-_.x,r-_.y]);return{...s,...{x:t,y:r,viewport:_,coordinate:w,layer:d}}}_resizeBuffer(){var t,r;let{gl:i}=this;if(!this.pickingFBO&&(this.pickingFBO=new di(i),di.isSupported(i,{colorBufferFloat:!0}))){let n=new di(i);n.attach({36064:new ci(i,{format:hr(i)?34836:6408,type:5126})}),this.depthFBO=n}(t=this.pickingFBO)===null||t===void 0||t.resize({width:i.canvas.width,height:i.canvas.height}),(r=this.depthFBO)===null||r===void 0||r.resize({width:i.canvas.width,height:i.canvas.height})}_getPickable(t){if(this._pickable===!1)return null;let r=t.filter(i=>this.pickLayersPass.shouldDrawLayer(i)&&!i.isComposite);return r.length?r:null}_pickClosestObject({layers:t,views:r,viewports:i,x:n,y:s,radius:o=0,depth:c=1,mode:d=\"query\",unproject3D:_,onViewportActive:w,effects:I}){let R=this._getPickable(t),N=wl(this.gl);if(!R)return{result:[],emptyInfo:rD({viewports:i,x:n,y:s,pixelRatio:N})};this._resizeBuffer();let j=cy(this.gl,[n,s],!0),Y=[j.x+Math.floor(j.width/2),j.y+Math.floor(j.height/2)],it=Math.round(o*N),{width:Z,height:K}=this.pickingFBO,J=this._getPickingRect({deviceX:Y[0],deviceY:Y[1],deviceRadius:it,deviceWidth:Z,deviceHeight:K}),ht={x:n-o,y:s-o,width:o*2+1,height:o*2+1},Tt,Ot=[],Yt=new Set;for(let te=0;te=_)break;let Le=Ot[ae],sr={color:Le.pickedColor,layer:null,index:Le.pickedObjectIndex,picked:!0,x:n,y:s,pixelRatio:N};sr=iD({layer:Le.pickedLayer,info:sr,mode:d});let lr=(oe=sr.object)!==null&&oe!==void 0?oe:\"\".concat(sr.layer.id,\"[\").concat(sr.index,\"]\");Yt.has(lr)||Yt.set(lr,sr)}return Array.from(Yt.values())}_drawAndSample({layers:t,views:r,viewports:i,onViewportActive:n,deviceRect:s,cullRect:o,effects:c,pass:d},_=!1){let w=_?this.depthFBO:this.pickingFBO,I={layers:t,layerFilter:this.layerFilter,views:r,viewports:i,onViewportActive:n,pickingFBO:w,deviceRect:s,cullRect:o,effects:c,pass:d,pickZ:_,preRenderStats:{}};for(let K of c)K.useInPicking&&(I.preRenderStats[K.id]=K.preRender(this.gl,I));let{decodePickingColor:R}=this.pickLayersPass.render(I),{x:N,y:j,width:Y,height:it}=s,Z=new(_?Float32Array:Uint8Array)(Y*it*4);return Ih(w,{sourceX:N,sourceY:j,sourceWidth:Y,sourceHeight:it,target:Z}),{pickedColors:Z,decodePickingColor:R}}_getPickingRect({deviceX:t,deviceY:r,deviceRadius:i,deviceWidth:n,deviceHeight:s}){let o=Math.max(0,t-i),c=Math.max(0,r-i),d=Math.min(n,t+i+1)-o,_=Math.min(s,r+i+1)-c;return d<=0||_<=0?null:{x:o,y:c,width:d,height:_}}};var qat={zIndex:\"1\",position:\"absolute\",pointerEvents:\"none\",color:\"#a0a7b4\",backgroundColor:\"#29323c\",padding:\"10px\",top:\"0\",left:\"0\",display:\"none\"},Fb=class{constructor(t){G(this,\"el\",null),G(this,\"isVisible\",!1);let r=t.parentElement;r&&(this.el=document.createElement(\"div\"),this.el.className=\"deck-tooltip\",Object.assign(this.el.style,qat),r.appendChild(this.el))}setTooltip(t,r,i){let n=this.el;if(n){if(typeof t==\"string\")n.innerText=t;else if(t)t.text&&(n.innerText=t.text),t.html&&(n.innerHTML=t.html),t.className&&(n.className=t.className);else{this.isVisible=!1,n.style.display=\"none\";return}this.isVisible=!0,n.style.display=\"block\",n.style.transform=\"translate(\".concat(r,\"px, \").concat(i,\"px)\"),t&&typeof t==\"object\"&&\"style\"in t&&Object.assign(n.style,t.style)}}remove(){this.el&&(this.el.remove(),this.el=null)}};var sg=xi(q7());var Zat={mousedown:1,mousemove:2,mouseup:4};function Yat(e,t){for(let r=0;r0&&i.type===\"pointerdown\"&&(Yat(n,s=>s.pointerId===i.pointerId)||n.push(i)),t.call(this,i)}}function Y7(e){e.prototype.handler=function(r){let i=Zat[r.type];i&1&&r.button>=0&&(this.pressed=!0),i&2&&r.which===0&&(i=4),this.pressed&&(i&4&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:\"mouse\",srcEvent:r}))}}Z7(sg.PointerEventInput);Y7(sg.MouseInput);var $7=sg.Manager,Uh=sg;var Vh=class{constructor(t,r,i){this.element=t,this.callback=r,this.options={enable:!0,...i}}};var Q7=Uh?[[Uh.Pan,{event:\"tripan\",pointers:3,threshold:0,enable:!1}],[Uh.Rotate,{enable:!1}],[Uh.Pinch,{enable:!1}],[Uh.Swipe,{enable:!1}],[Uh.Pan,{threshold:0,enable:!1}],[Uh.Press,{enable:!1}],[Uh.Tap,{event:\"doubletap\",taps:2,enable:!1}],[Uh.Tap,{event:\"anytap\",enable:!1}],[Uh.Tap,{enable:!1}]]:null,nD={tripan:[\"rotate\",\"pinch\",\"pan\"],rotate:[\"pinch\"],pinch:[\"pan\"],pan:[\"press\",\"doubletap\",\"anytap\",\"tap\"],doubletap:[\"anytap\"],anytap:[\"tap\"]},X7={doubletap:[\"tap\"]},K7={pointerdown:\"pointerdown\",pointermove:\"pointermove\",pointerup:\"pointerup\",touchstart:\"pointerdown\",touchmove:\"pointermove\",touchend:\"pointerup\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\"},Ny={KEY_EVENTS:[\"keydown\",\"keyup\"],MOUSE_EVENTS:[\"mousedown\",\"mousemove\",\"mouseup\",\"mouseover\",\"mouseout\",\"mouseleave\"],WHEEL_EVENTS:[\"wheel\",\"mousewheel\"]},J7={tap:\"tap\",anytap:\"anytap\",doubletap:\"doubletap\",press:\"press\",pinch:\"pinch\",pinchin:\"pinch\",pinchout:\"pinch\",pinchstart:\"pinch\",pinchmove:\"pinch\",pinchend:\"pinch\",pinchcancel:\"pinch\",rotate:\"rotate\",rotatestart:\"rotate\",rotatemove:\"rotate\",rotateend:\"rotate\",rotatecancel:\"rotate\",tripan:\"tripan\",tripanstart:\"tripan\",tripanmove:\"tripan\",tripanup:\"tripan\",tripandown:\"tripan\",tripanleft:\"tripan\",tripanright:\"tripan\",tripanend:\"tripan\",tripancancel:\"tripan\",pan:\"pan\",panstart:\"pan\",panmove:\"pan\",panup:\"pan\",pandown:\"pan\",panleft:\"pan\",panright:\"pan\",panend:\"pan\",pancancel:\"pan\",swipe:\"swipe\",swipeleft:\"swipe\",swiperight:\"swipe\",swipeup:\"swipe\",swipedown:\"swipe\"},sD={click:\"tap\",anyclick:\"anytap\",dblclick:\"doubletap\",mousedown:\"pointerdown\",mousemove:\"pointermove\",mouseup:\"pointerup\",mouseover:\"pointerover\",mouseout:\"pointerout\",mouseleave:\"pointerleave\"};var tG=typeof navigator<\"u\"&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\",og=typeof window<\"u\"?window:global;var VE=!1;try{let e={get passive(){return VE=!0,!0}};og.addEventListener(\"test\",null,e),og.removeEventListener(\"test\",null)}catch{VE=!1}var $at=tG.indexOf(\"firefox\")!==-1,{WHEEL_EVENTS:Qat}=Ny,eG=\"wheel\",rG=4.000244140625,Xat=40,Kat=.25,zb=class extends Vh{constructor(t,r,i){super(t,r,i),this.handleEvent=n=>{if(!this.options.enable)return;let s=n.deltaY;og.WheelEvent&&($at&&n.deltaMode===og.WheelEvent.DOM_DELTA_PIXEL&&(s/=og.devicePixelRatio),n.deltaMode===og.WheelEvent.DOM_DELTA_LINE&&(s*=Xat)),s!==0&&s%rG===0&&(s=Math.floor(s/rG)),n.shiftKey&&s&&(s=s*Kat),this.callback({type:eG,center:{x:n.clientX,y:n.clientY},delta:-s,srcEvent:n,pointerType:\"mouse\",target:n.target})},this.events=(this.options.events||[]).concat(Qat),this.events.forEach(n=>t.addEventListener(n,this.handleEvent,VE?{passive:!1}:!1))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===eG&&(this.options.enable=r)}};var{MOUSE_EVENTS:Jat}=Ny,iG=\"pointermove\",nG=\"pointerover\",sG=\"pointerout\",oG=\"pointerenter\",aG=\"pointerleave\",Nb=class extends Vh{constructor(t,r,i){super(t,r,i),this.handleEvent=s=>{this.handleOverEvent(s),this.handleOutEvent(s),this.handleEnterEvent(s),this.handleLeaveEvent(s),this.handleMoveEvent(s)},this.pressed=!1;let{enable:n}=this.options;this.enableMoveEvent=n,this.enableLeaveEvent=n,this.enableEnterEvent=n,this.enableOutEvent=n,this.enableOverEvent=n,this.events=(this.options.events||[]).concat(Jat),this.events.forEach(s=>t.addEventListener(s,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===iG&&(this.enableMoveEvent=r),t===nG&&(this.enableOverEvent=r),t===sG&&(this.enableOutEvent=r),t===oG&&(this.enableEnterEvent=r),t===aG&&(this.enableLeaveEvent=r)}handleOverEvent(t){this.enableOverEvent&&t.type===\"mouseover\"&&this._emit(nG,t)}handleOutEvent(t){this.enableOutEvent&&t.type===\"mouseout\"&&this._emit(sG,t)}handleEnterEvent(t){this.enableEnterEvent&&t.type===\"mouseenter\"&&this._emit(oG,t)}handleLeaveEvent(t){this.enableLeaveEvent&&t.type===\"mouseleave\"&&this._emit(aG,t)}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case\"mousedown\":t.button>=0&&(this.pressed=!0);break;case\"mousemove\":t.which===0&&(this.pressed=!1),this.pressed||this._emit(iG,t);break;case\"mouseup\":this.pressed=!1;break;default:}}_emit(t,r){this.callback({type:t,center:{x:r.clientX,y:r.clientY},srcEvent:r,pointerType:\"mouse\",target:r.target})}};var{KEY_EVENTS:tlt}=Ny,lG=\"keydown\",cG=\"keyup\",Ub=class extends Vh{constructor(t,r,i){super(t,r,i),this.handleEvent=n=>{let s=n.target||n.srcElement;s.tagName===\"INPUT\"&&s.type===\"text\"||s.tagName===\"TEXTAREA\"||(this.enableDownEvent&&n.type===\"keydown\"&&this.callback({type:lG,srcEvent:n,key:n.key,target:n.target}),this.enableUpEvent&&n.type===\"keyup\"&&this.callback({type:cG,srcEvent:n,key:n.key,target:n.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(tlt),t.tabIndex=this.options.tabIndex||0,t.style.outline=\"none\",this.events.forEach(n=>t.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,r){t===lG&&(this.enableDownEvent=r),t===cG&&(this.enableUpEvent=r)}};var uG=\"contextmenu\",Vb=class extends Vh{constructor(t,r,i){super(t,r,i),this.handleEvent=n=>{this.options.enable&&this.callback({type:uG,center:{x:n.clientX,y:n.clientY},srcEvent:n,pointerType:\"mouse\",target:n.target})},t.addEventListener(\"contextmenu\",this.handleEvent)}destroy(){this.element.removeEventListener(\"contextmenu\",this.handleEvent)}enableEventType(t,r){t===uG&&(this.options.enable=r)}};var elt={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},rlt=1,ilt=2,nlt=3,slt=0,olt=1,alt=2,llt=1,clt=2,ult=4;function hG(e){let t=elt[e.srcEvent.type];if(!t)return null;let{buttons:r,button:i,which:n}=e.srcEvent,s=!1,o=!1,c=!1;return t===4||t===2&&!Number.isFinite(r)?(s=n===rlt,o=n===ilt,c=n===nlt):t===2?(s=!!(r&llt),o=!!(r&ult),c=!!(r&clt)):t===1&&(s=i===slt,o=i===olt,c=i===alt),{leftButton:s,middleButton:o,rightButton:c}}function fG(e,t){let r=e.center;if(!r)return null;let i=t.getBoundingClientRect(),n=i.width/t.offsetWidth||1,s=i.height/t.offsetHeight||1,o={x:(r.x-i.left-t.clientLeft)/n,y:(r.y-i.top-t.clientTop)/s};return{center:r,offsetCenter:o}}var oD={srcElement:\"root\",priority:0},jb=class{constructor(t){this.handleEvent=r=>{if(this.isEmpty())return;let i=this._normalizeEvent(r),n=r.srcEvent.target;for(;n&&n!==i.rootElement;){if(this._emit(i,n),i.handled)return;n=n.parentNode}this._emit(i,\"root\")},this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(t,r,i,n=!1,s=!1){let{handlers:o,handlersByElement:c}=this,d=oD;typeof i==\"string\"||i&&i.addEventListener?d={...oD,srcElement:i}:i&&(d={...oD,...i});let _=c.get(d.srcElement);_||(_=[],c.set(d.srcElement,_));let w={type:t,handler:r,srcElement:d.srcElement,priority:d.priority};n&&(w.once=!0),s&&(w.passive=!0),o.push(w),this._active=this._active||!w.passive;let I=_.length-1;for(;I>=0&&!(_[I].priority>=w.priority);)I--;_.splice(I+1,0,w)}remove(t,r){let{handlers:i,handlersByElement:n}=this;for(let s=i.length-1;s>=0;s--){let o=i[s];if(o.type===t&&o.handler===r){i.splice(s,1);let c=n.get(o.srcElement);c.splice(c.indexOf(o),1),c.length===0&&n.delete(o.srcElement)}}this._active=i.some(s=>!s.passive)}_emit(t,r){let i=this.handlersByElement.get(r);if(i){let n=!1,s=()=>{t.handled=!0},o=()=>{t.handled=!0,n=!0},c=[];for(let d=0;d{t.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:r}}};var hlt={events:null,recognizers:null,recognizerOptions:{},Manager:$7,touchAction:\"none\",tabIndex:0},Uy=class{constructor(t=null,r){this._onBasicInput=n=>{let{srcEvent:s}=n,o=K7[s.type];o&&this.manager.emit(o,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={...hlt,...r},this.events=new Map,this.setElement(t);let{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(t){if(this.element&&this.destroy(),this.element=t,!t)return;let{options:r}=this,i=r.Manager;this.manager=new i(t,{touchAction:r.touchAction,recognizers:r.recognizers||Q7}).on(\"hammer.input\",this._onBasicInput),r.recognizers||Object.keys(nD).forEach(n=>{let s=this.manager.get(n);s&&nD[n].forEach(o=>{s.recognizeWith(o)})});for(let n in r.recognizerOptions){let s=this.manager.get(n);if(s){let o=r.recognizerOptions[n];delete o.enable,s.set(o)}}this.wheelInput=new zb(t,this._onOtherEvent,{enable:!1}),this.moveInput=new Nb(t,this._onOtherEvent,{enable:!1}),this.keyInput=new Ub(t,this._onOtherEvent,{enable:!1,tabIndex:r.tabIndex}),this.contextmenuInput=new Vb(t,this._onOtherEvent,{enable:!1});for(let[n,s]of this.events)s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(n,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,r,i){this._addEventHandler(t,r,i,!1)}once(t,r,i){this._addEventHandler(t,r,i,!0)}watch(t,r,i){this._addEventHandler(t,r,i,!1,!0)}off(t,r){this._removeEventHandler(t,r)}_toggleRecognizer(t,r){let{manager:i}=this;if(!i)return;let n=i.get(t);if(n&&n.options.enable!==r){n.set({enable:r});let s=X7[t];s&&!this.options.recognizers&&s.forEach(o=>{let c=i.get(o);r?(c.requireFailure(t),n.dropRequireFailure(o)):c.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,r),this.moveInput.enableEventType(t,r),this.keyInput.enableEventType(t,r),this.contextmenuInput.enableEventType(t,r)}_addEventHandler(t,r,i,n,s){if(typeof t!=\"string\"){i=r;for(let w in t)this._addEventHandler(w,t[w],i,n,s);return}let{manager:o,events:c}=this,d=sD[t]||t,_=c.get(d);_||(_=new jb(this),c.set(d,_),_.recognizerName=J7[d]||d,o&&o.on(d,_.handleEvent)),_.add(t,r,i,n,s),_.isEmpty()||this._toggleRecognizer(_.recognizerName,!0)}_removeEventHandler(t,r){if(typeof t!=\"string\"){for(let o in t)this._removeEventHandler(o,t[o]);return}let{events:i}=this,n=sD[t]||t,s=i.get(n);if(s&&(s.remove(t,r),s.isEmpty())){let{recognizerName:o}=s,c=!1;for(let d of i.values())if(d.recognizerName===o&&!d.isEmpty()){c=!0;break}c||this._toggleRecognizer(o,!1)}}};function ag(){}var flt=({isDragging:e})=>e?\"grabbing\":\"grab\",dG={id:\"\",width:\"100%\",height:\"100%\",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:\"none\",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:ag,onResize:ag,onViewStateChange:ag,onInteractionStateChange:ag,onBeforeRender:ag,onAfterRender:ag,onLoad:ag,onError:e=>er.error(e.message,e.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:flt,getTooltip:null,debug:!1,drawPickingColors:!1},op=class{constructor(t){G(this,\"props\",void 0),G(this,\"width\",0),G(this,\"height\",0),G(this,\"userData\",{}),G(this,\"canvas\",null),G(this,\"viewManager\",null),G(this,\"layerManager\",null),G(this,\"effectManager\",null),G(this,\"deckRenderer\",null),G(this,\"deckPicker\",null),G(this,\"eventManager\",null),G(this,\"tooltip\",null),G(this,\"metrics\",void 0),G(this,\"animationLoop\",void 0),G(this,\"stats\",void 0),G(this,\"viewState\",void 0),G(this,\"cursorState\",void 0),G(this,\"_needsRedraw\",void 0),G(this,\"_pickRequest\",void 0),G(this,\"_lastPointerDownInfo\",null),G(this,\"_metricsCounter\",void 0),G(this,\"_onPointerMove\",r=>{let{_pickRequest:i}=this;if(r.type===\"pointerleave\")i.x=-1,i.y=-1,i.radius=0;else{if(r.leftButton||r.rightButton)return;{let n=r.offsetCenter;if(!n)return;i.x=n.x,i.y=n.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=r}),G(this,\"_onEvent\",r=>{let i=B4[r.type],n=r.offsetCenter;if(!i||!n||!this.layerManager)return;let s=this.layerManager.getLayers(),o=this.deckPicker.getLastPickedObject({x:n.x,y:n.y,layers:s,viewports:this.getViewports(n)},this._lastPointerDownInfo),{layer:c}=o,d=c&&(c[i.handler]||c.props[i.handler]),_=this.props[i.handler],w=!1;d&&(w=d.call(c,o,r)),!w&&_&&_(o,r)}),G(this,\"_onPointerDown\",r=>{let i=r.offsetCenter,n=this._pick(\"pickObject\",\"pickObject Time\",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=n.result[0]||n.emptyInfo}),this.props={...dG,...t},t=this.props,this._needsRedraw=\"Initial render\",this._pickRequest={mode:\"hover\",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},t.viewState&&t.initialViewState&&er.warn(\"View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.\")(),sy()===\"IE\"&&er.warn(\"IE 11 is not supported\")(),this.viewState=t.initialViewState,t.gl||typeof document<\"u\"&&(this.canvas=this._createCanvas(t)),this.animationLoop=this._createAnimationLoop(t),this.stats=new $f({id:\"deck.gl\"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(t),t._typedArrayManagerProps&&zh.setOptions(t._typedArrayManagerProps),this.animationLoop.start()}finalize(){var t,r,i,n,s,o,c,d;if((t=this.animationLoop)===null||t===void 0||t.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,(r=this.layerManager)===null||r===void 0||r.finalize(),this.layerManager=null,(i=this.viewManager)===null||i===void 0||i.finalize(),this.viewManager=null,(n=this.effectManager)===null||n===void 0||n.finalize(),this.effectManager=null,(s=this.deckRenderer)===null||s===void 0||s.finalize(),this.deckRenderer=null,(o=this.deckPicker)===null||o===void 0||o.finalize(),this.deckPicker=null,(c=this.eventManager)===null||c===void 0||c.destroy(),this.eventManager=null,(d=this.tooltip)===null||d===void 0||d.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var _;(_=this.canvas.parentElement)===null||_===void 0||_.removeChild(this.canvas),this.canvas=null}}setProps(t){this.stats.get(\"setProps Time\").timeStart(),\"onLayerHover\"in t&&er.removed(\"onLayerHover\",\"onHover\")(),\"onLayerClick\"in t&&er.removed(\"onLayerClick\",\"onClick\")(),t.initialViewState&&!ho(this.props.initialViewState,t.initialViewState,3)&&(this.viewState=t.initialViewState),Object.assign(this.props,t),this._setCanvasSize(this.props);let r=Object.create(this.props);Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(r),this.layerManager&&(this.viewManager.setProps(r),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(r),this.effectManager.setProps(r),this.deckRenderer.setProps(r),this.deckPicker.setProps(r)),this.stats.get(\"setProps Time\").timeEnd()}needsRedraw(t={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return\"Deck._animate\";let r=this._needsRedraw;t.clearRedrawFlags&&(this._needsRedraw=!1);let i=this.viewManager.needsRedraw(t),n=this.layerManager.needsRedraw(t),s=this.effectManager.needsRedraw(t),o=this.deckRenderer.needsRedraw(t);return r=r||i||n||s||o,r}redraw(t){if(!this.layerManager)return;let r=this.needsRedraw({clearRedrawFlags:!0});r=t||r,r&&(this.stats.get(\"Redraw Count\").incrementCount(),this.props._customRender?this.props._customRender(r):this._drawLayers(r))}get isInitialized(){return this.viewManager!==null}getViews(){return vr(this.viewManager),this.viewManager.views}getViewports(t){return vr(this.viewManager),this.viewManager.getViewports(t)}getCanvas(){return this.canvas}pickObject(t){let r=this._pick(\"pickObject\",\"pickObject Time\",t).result;return r.length?r[0]:null}pickMultipleObjects(t){return t.depth=t.depth||10,this._pick(\"pickObject\",\"pickMultipleObjects Time\",t).result}pickObjects(t){return this._pick(\"pickObjects\",\"pickObjects Time\",t)}_addResources(t,r=!1){for(let i in t)this.layerManager.resourceManager.add({resourceId:i,data:t[i],forceUpdate:r})}_removeResources(t){for(let r of t)this.layerManager.resourceManager.remove(r)}_addDefaultEffect(t){this.effectManager.addDefaultEffect(t)}_pick(t,r,i){vr(this.deckPicker);let{stats:n}=this;n.get(\"Pick Count\").incrementCount(),n.get(r).timeStart();let s=this.deckPicker[t]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return n.get(r).timeEnd(),s}_createCanvas(t){let r=t.canvas;return typeof r==\"string\"&&(r=document.getElementById(r),vr(r)),r||(r=document.createElement(\"canvas\"),r.id=t.id||\"deckgl-overlay\",(t.parent||document.body).appendChild(r)),Object.assign(r.style,t.style),r}_setCanvasSize(t){if(!this.canvas)return;let{width:r,height:i}=t;if(r||r===0){let s=Number.isFinite(r)?\"\".concat(r,\"px\"):r;this.canvas.style.width=s}if(i||i===0){var n;let s=Number.isFinite(i)?\"\".concat(i,\"px\"):i;this.canvas.style.position=((n=t.style)===null||n===void 0?void 0:n.position)||\"absolute\",this.canvas.style.height=s}}_updateCanvasSize(){var t,r;let{canvas:i}=this;if(!i)return;let n=(t=i.clientWidth)!==null&&t!==void 0?t:i.width,s=(r=i.clientHeight)!==null&&r!==void 0?r:i.height;if(n!==this.width||s!==this.height){var o,c;this.width=n,this.height=s,(o=this.viewManager)===null||o===void 0||o.setProps({width:n,height:s}),(c=this.layerManager)===null||c===void 0||c.activateViewport(this.getViewports()[0]),this.props.onResize({width:n,height:s})}}_createAnimationLoop(t){let{width:r,height:i,gl:n,glOptions:s,debug:o,onError:c,onBeforeRender:d,onAfterRender:_,useDevicePixels:w}=t;return new $0({width:r,height:i,useDevicePixels:w,autoResizeDrawingBuffer:!n,autoResizeViewport:!1,gl:n,onCreateContext:I=>uy({...s,...I,canvas:this.canvas,debug:o,onContextLost:()=>this._onContextLost()}),onInitialize:I=>this._setGLContext(I.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:d,onAfterRender:_,onError:c})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let t=this.props.views||[new zy({id:\"default-view\"})];return t=Array.isArray(t)?t:[t],t.length&&this.props.controller&&(t[0].props.controller=this.props.controller),t}_onContextLost(){let{onError:t}=this.props;this.animationLoop&&t&&t(new Error(\"WebGL context is lost\"))}_pickAndCallback(){let{_pickRequest:t}=this;if(t.event){let{result:i,emptyInfo:n}=this._pick(\"pickObject\",\"pickObject Time\",t);this.cursorState.isHovering=i.length>0;let s=n,o=!1;for(let c of i){var r;s=c,o=((r=c.layer)===null||r===void 0?void 0:r.onHover(c,t.event))||o}if(!o&&this.props.onHover&&this.props.onHover(s,t.event),this.props.getTooltip&&this.tooltip){let c=this.props.getTooltip(s);this.tooltip.setTooltip(c,s.x,s.y)}t.event=null}}_updateCursor(){let t=this.props.parent||this.canvas;t&&(t.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext(t){if(this.layerManager)return;this.canvas||(this.canvas=t.canvas,N0(t,{enable:!0,copyState:!0})),this.tooltip=new Fb(this.canvas),bl(t,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(t);let r=new XA;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new Uy(this.props.parent||t.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let n in B4)this.eventManager.on(n,this._onEvent);this.viewManager=new Eb({timeline:r,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let i=this.viewManager.getViewports()[0];this.layerManager=new Mb(t,{deck:this,stats:this.stats,viewport:i,timeline:r}),this.effectManager=new Rb,this.deckRenderer=new Ob(t),this.deckPicker=new Bb(t),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(t,r){let{gl:i}=this.layerManager.context;bl(i,this.props.parameters),this.props.onBeforeRender({gl:i}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:\"screen\",effects:this.effectManager.getEffects(),...r}),this.props.onAfterRender({gl:i})}_onRenderFrame(t){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),er.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(t){let r=this.props.onViewStateChange(t)||t.viewState;this.viewState&&(this.viewState={...this.viewState,[t.viewId]:r},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(t){this.cursorState.isDragging=t.isDragging||!1,this.props.onInteractionStateChange(t)}_getFrameStats(){let{stats:t}=this;t.get(\"frameRate\").timeEnd(),t.get(\"frameRate\").timeStart();let r=this.animationLoop.stats;t.get(\"GPU Time\").addTime(r.get(\"GPU Time\").lastTiming),t.get(\"CPU Time\").addTime(r.get(\"CPU Time\").lastTiming)}_getMetrics(){let{metrics:t,stats:r}=this;t.fps=r.get(\"frameRate\").getHz(),t.setPropsTime=r.get(\"setProps Time\").time,t.updateAttributesTime=r.get(\"Update Attributes\").time,t.framesRedrawn=r.get(\"Redraw Count\").count,t.pickTime=r.get(\"pickObject Time\").time+r.get(\"pickMultipleObjects Time\").time+r.get(\"pickObjects Time\").time,t.pickCount=r.get(\"Pick Count\").count,t.gpuTime=r.get(\"GPU Time\").time,t.cpuTime=r.get(\"CPU Time\").time,t.gpuTimePerFrame=r.get(\"GPU Time\").getAverageTime(),t.cpuTimePerFrame=r.get(\"CPU Time\").getAverageTime();let i=Fu.get(\"Memory Usage\");t.bufferMemory=i.get(\"Buffer Memory\").count,t.textureMemory=i.get(\"Texture Memory\").count,t.renderbufferMemory=i.get(\"Renderbuffer Memory\").count,t.gpuMemory=i.get(\"GPU Memory\").count}};G(op,\"defaultProps\",dG);G(op,\"VERSION\",$U);var lg=class{constructor(t,r){G(this,\"opts\",void 0),G(this,\"source\",void 0),this.opts=r,this.source=t}get value(){return this.source.value}getValue(){let t=this.source.getBuffer(),r=this.getAccessor();if(t)return[t,r];let{value:i}=this.source,{size:n}=r,s=i;if(i&&i.length!==n){s=new Float32Array(n);let o=r.elementOffset||0;for(let c=0;c=s){let o=new Array(n).fill(1/0),c=new Array(n).fill(-1/0);for(let d=0;dc[_]&&(c[_]=w)}t=[o,c]}}return this.state.bounds=t,t}setData(t){let{state:r}=this,i;ArrayBuffer.isView(t)?i={value:t}:t instanceof Nr?i={buffer:t}:i=t;let n={...this.settings,...i};if(r.bufferAccessor=n,r.bounds=null,i.constant){let s=i.value;if(s=this._normalizeValue(s,[],0),this.settings.normalized&&(s=this.normalizeConstant(s)),!(!r.constant||!this._areValuesEqual(s,this.value)))return!1;r.externalBuffer=null,r.constant=!0,this.value=s}else if(i.buffer){let s=i.buffer;r.externalBuffer=s,r.constant=!1,this.value=i.value||null;let o=i.value instanceof Float64Array;n.type=i.type||s.accessor.type,n.bytesPerElement=s.accessor.BYTES_PER_ELEMENT*(o?2:1),n.stride=jE(n)}else if(i.value){this._checkExternalBuffer(i);let s=i.value;r.externalBuffer=null,r.constant=!1,this.value=s,n.bytesPerElement=s.BYTES_PER_ELEMENT,n.stride=jE(n);let{buffer:o,byteOffset:c}=this;this.doublePrecision&&s instanceof Float64Array&&(s=FE(s,n));let d=s.byteLength+c+n.stride*2;o.byteLength(r+128)/255*2-1);case 5122:return new Float32Array(t).map(r=>(r+32768)/65535*2-1);case 5121:return new Float32Array(t).map(r=>r/255);case 5123:return new Float32Array(t).map(r=>r/65535);default:return t}}_normalizeValue(t,r,i){let{defaultValue:n,size:s}=this.settings;if(Number.isFinite(t))return r[i]=t,r;if(!t){let o=s;for(;--o>=0;)r[i+o]=n[o];return r}switch(s){case 4:r[i+3]=Number.isFinite(t[3])?t[3]:n[3];case 3:r[i+2]=Number.isFinite(t[2])?t[2]:n[2];case 2:r[i+1]=Number.isFinite(t[1])?t[1]:n[1];case 1:r[i+0]=Number.isFinite(t[0])?t[0]:n[0];break;default:let o=s;for(;--o>=0;)r[i+o]=Number.isFinite(t[o])?t[o]:n[o]}return r}_areValuesEqual(t,r){if(!t||!r)return!1;let{size:i}=this;for(let n=0;n0&&(gG.length=e.length,i=gG):i=mG,(t>0||Number.isFinite(r))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(t,r),n.index=t-1),{iterable:i,objectInfo:n}}function GE(e){return e&&e[Symbol.asyncIterator]}function WE(e,t){let{size:r,stride:i,offset:n,startIndices:s,nested:o}=t,c=e.BYTES_PER_ELEMENT,d=i?i/c:r,_=n?n/c:0,w=Math.floor((e.length-_)/d);return(I,{index:R,target:N})=>{if(!s){let Z=R*d+_;for(let K=0;K=t[1]))return e;let r=[],i=e.length,n=0;for(let s=0;st[1]?r.push(o):t=[Math.min(o[0],t[0]),Math.max(o[1],t[1])]}return r.splice(n,0,t),r}function aD(e){let{source:t,target:r,start:i=0,size:n,getData:s}=e,o=e.end||r.length,c=t.length,d=o-i;if(c>d){r.set(t.subarray(0,d),i);return}if(r.set(t,i),!s)return;let _=c;for(;_i(w+c,I)),_=Math.min(n.length,s.length);for(let w=1;w<_;w++){let I=n[w]*r,R=s[w]*r;aD({source:e.subarray(o,I),target:t,start:c,end:R,size:r,getData:d}),o=I,c=R}return ce},spring:{stiffness:.05,damping:.5}};function HE(e,t){if(!e)return null;Number.isFinite(e)&&(e={type:\"interpolation\",duration:e});let r=e.type||\"interpolation\";return{...Alt[r],...t,...e,type:r}}function qE(e,t){let r=t.getBuffer();return r?[r,{divisor:0,size:t.size,normalized:t.settings.normalized}]:t.value}function ZE(e){switch(e){case 1:return\"float\";case 2:return\"vec2\";case 3:return\"vec3\";case 4:return\"vec4\";default:throw new Error('No defined attribute type for size \"'.concat(e,'\"'))}}function YE(e){e.push(e.shift())}function Hb(e,t){let{doublePrecision:r,settings:i,value:n,size:s}=e,o=r&&n instanceof Float64Array?2:1;return(i.noAlloc?n.length:t*s)*o}function $E({buffer:e,numInstances:t,attribute:r,fromLength:i,fromStartIndices:n,getData:s=o=>o}){let o=r.doublePrecision&&r.value instanceof Float64Array?2:1,c=r.size*o,d=r.byteOffset,_=r.startIndices,w=n&&_,I=Hb(r,t),R=r.isConstant;if(!w&&i>=I)return;let N=R?r.value:r.getBuffer().getData({srcByteOffset:d});if(r.settings.normalized&&!R){let Z=s;s=(K,J)=>r.normalizeConstant(Z(K,J))}let j=R?(Z,K)=>s(N,K):(Z,K)=>s(N.subarray(Z,Z+c),K),Y=e.getData({length:i}),it=new Float32Array(I);vG({source:Y,target:it,sourceStartIndices:n,targetStartIndices:_,size:c,getData:j}),e.byteLengtht[s])]:t[r];return HE(n,i)}setNeedsUpdate(t=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||t,this.setNeedsRedraw(t),r){let{startRow:i=0,endRow:n=1/0}=r;this.state.updateRanges=yG(this.state.updateRanges,[i,n])}else this.state.updateRanges=Wb}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=_G}setNeedsRedraw(t=this.id){this.state.needsRedraw=this.state.needsRedraw||t}allocate(t){let{state:r,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(t,r.updateRanges!==Wb),!0):!1}updateBuffer({numInstances:t,data:r,props:i,context:n}){if(!this.needsUpdate())return!1;let{state:{updateRanges:s},settings:{update:o,noAlloc:c}}=this,d=!0;if(o){for(let[_,w]of s)o.call(n,this,{data:r,startRow:_,endRow:w,props:i,numInstances:t});if(this.value)if(this.constant||this.buffer.byteLengthw?_.set(J,Y):(t._normalizeValue(J,Z.target,0),JR({target:_,source:Z.target,start:Y,count:ht}));Y+=ht*w}else t._normalizeValue(J,_,Y),Y+=w}}_validateAttributeUpdaters(){let{settings:t}=this;if(!(t.noAlloc||typeof t.update==\"function\"))throw new Error(\"Attribute \".concat(this.id,\" missing update or accessor\"))}_checkAttributeArray(){let{value:t}=this,r=Math.min(4,this.size);if(t&&t.length>=r){let i=!0;switch(r){case 4:i=i&&Number.isFinite(t[3]);case 3:i=i&&Number.isFinite(t[2]);case 2:i=i&&Number.isFinite(t[1]);case 1:i=i&&Number.isFinite(t[0]);break;default:i=!1}if(!i)throw new Error(\"Illegal attribute generated for \".concat(this.id))}}};var qb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"interpolation\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.transition=new Xc(i),this.attribute=r,this.attributeInTransition=new ap(t,r.settings),this.currentStartIndices=r.startIndices,this.currentLength=0,this.transform=glt(t,r);let n={byteLength:0,usage:35050};this.buffers=[new Nr(t,n),new Nr(t,n)]}get inProgress(){return this.transition.inProgress}start(t,r){if(t.duration<=0){this.transition.cancel();return}this.settings=t;let{gl:i,buffers:n,attribute:s}=this;YE(n);let o={numInstances:r,attribute:s,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of n)$E({buffer:c,...o});this.currentStartIndices=s.startIndices,this.currentLength=Hb(s,r),this.attributeInTransition.setData({buffer:n[1],value:s.value}),this.transition.start(t),this.transform.update({elementCount:Math.floor(this.currentLength/s.size),sourceBuffers:{aFrom:n[0],aTo:qE(i,s)},feedbackBuffers:{vCurrent:n[1]}})}update(){let t=this.transition.update();if(t){let{duration:r,easing:i}=this.settings,{time:n}=this.transition,s=n/r;i&&(s=i(s)),this.transform.run({uniforms:{time:s}})}return t}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0}},mlt=`\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nuniform float time;\nattribute ATTRIBUTE_TYPE aFrom;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, time);\n gl_Position = vec4(0.0);\n}\n`;function glt(e,t){let r=ZE(t.size);return new Xl(e,{vs:mlt,defines:{ATTRIBUTE_TYPE:r},varyings:[\"vCurrent\"]})}var Zb=class{constructor({gl:t,attribute:r,timeline:i}){G(this,\"gl\",void 0),G(this,\"type\",\"spring\"),G(this,\"attributeInTransition\",void 0),G(this,\"settings\",void 0),G(this,\"attribute\",void 0),G(this,\"transition\",void 0),G(this,\"currentStartIndices\",void 0),G(this,\"currentLength\",void 0),G(this,\"texture\",void 0),G(this,\"framebuffer\",void 0),G(this,\"transform\",void 0),G(this,\"buffers\",void 0),this.gl=t,this.type=\"spring\",this.transition=new Xc(i),this.attribute=r,this.attributeInTransition=new ap(t,{...r.settings,normalized:!1}),this.currentStartIndices=r.startIndices,this.currentLength=0,this.texture=ylt(t),this.framebuffer=vlt(t,this.texture),this.transform=_lt(t,r,this.framebuffer);let n={byteLength:0,usage:35050};this.buffers=[new Nr(t,n),new Nr(t,n),new Nr(t,n)]}get inProgress(){return this.transition.inProgress}start(t,r){let{gl:i,buffers:n,attribute:s}=this,o={numInstances:r,attribute:s,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:t.enter};for(let c of n)$E({buffer:c,...o});this.settings=t,this.currentStartIndices=s.startIndices,this.currentLength=Hb(s,r),this.attributeInTransition.setData({buffer:n[1],value:s.value}),this.transition.start({...t,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/s.size),sourceBuffers:{aTo:qE(i,s)}})}update(){let{buffers:t,transform:r,framebuffer:i,transition:n}=this;if(!n.update())return!1;let o=this.settings;return r.update({sourceBuffers:{aPrev:t[0],aCur:t[1]},feedbackBuffers:{vNext:t[2]}}),r.run({framebuffer:i,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:o.stiffness,damping:o.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),YE(t),this.attributeInTransition.setData({buffer:t[1],value:this.attribute.value}),Ih(i)[0]>0||n.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(let t of this.buffers)t.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}};function _lt(e,t,r){let i=ZE(t.size);return new Xl(e,{framebuffer:r,vs:`\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nuniform float stiffness;\nuniform float damping;\nattribute ATTRIBUTE_TYPE aPrev;\nattribute ATTRIBUTE_TYPE aCur;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vNext;\nvarying float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE spring = delta * stiffness;\n ATTRIBUTE_TYPE damper = velocity * -1.0 * damping;\n return spring + damper + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n`,fs:`\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nvarying float vIsTransitioningFlag;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n gl_FragColor = vec4(1.0);\n}`,defines:{ATTRIBUTE_TYPE:i},varyings:[\"vNext\"]})}function ylt(e){return new ci(e,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}function vlt(e,t){return new di(e,{id:\"spring-transition-is-transitioning-framebuffer\",width:1,height:1,attachments:{36064:t}})}var xlt={interpolation:qb,spring:Zb},Yb=class{constructor(t,{id:r,timeline:i}){G(this,\"id\",void 0),G(this,\"isSupported\",void 0),G(this,\"gl\",void 0),G(this,\"timeline\",void 0),G(this,\"transitions\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"numInstances\",void 0),this.id=r,this.gl=t,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=Xl.isSupported(t)}finalize(){for(let t in this.transitions)this._removeTransition(t)}update({attributes:t,transitions:r,numInstances:i}){this.numInstances=i||1;for(let n in t){let s=t[n],o=s.getTransitionSetting(r);o&&this._updateAttribute(n,s,o)}for(let n in this.transitions){let s=t[n];(!s||!s.getTransitionSetting(r))&&this._removeTransition(n)}}hasAttribute(t){let r=this.transitions[t];return r&&r.inProgress}getAttributes(){let t={};for(let r in this.transitions){let i=this.transitions[r];i.inProgress&&(t[r]=i.attributeInTransition)}return t}run(){if(!this.isSupported||this.numInstances===0)return!1;for(let r in this.transitions)this.transitions[r].update()&&(this.needsRedraw=!0);let t=this.needsRedraw;return this.needsRedraw=!1,t}_removeTransition(t){this.transitions[t].cancel(),delete this.transitions[t]}_updateAttribute(t,r,i){let n=this.transitions[t],s=!n||n.type!==i.type;if(s){if(!this.isSupported){er.warn(\"WebGL2 not supported by this browser. Transition for \".concat(t,\" is disabled.\"))();return}n&&this._removeTransition(t);let o=xlt[i.type];o?this.transitions[t]=new o({attribute:r,timeline:this.timeline,gl:this.gl}):(er.error(\"unsupported transition type '\".concat(i.type,\"'\"))(),s=!1)}(s||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[t].start(i,this.numInstances))}};var xG=\"attributeManager.invalidate\",blt=\"attributeManager.updateStart\",wlt=\"attributeManager.updateEnd\",Slt=\"attribute.updateStart\",Tlt=\"attribute.allocate\",Mlt=\"attribute.updateEnd\",rd=class{constructor(t,{id:r=\"attribute-manager\",stats:i,timeline:n}={}){G(this,\"id\",void 0),G(this,\"gl\",void 0),G(this,\"attributes\",void 0),G(this,\"updateTriggers\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"userData\",void 0),G(this,\"stats\",void 0),G(this,\"attributeTransitionManager\",void 0),G(this,\"mergeBoundsMemoized\",Jf(D7)),this.id=r,this.gl=t,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new Yb(t,{id:\"\".concat(r,\"-transitions\"),timeline:n}),Object.seal(this)}finalize(){for(let t in this.attributes)this.attributes[t].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(t={clearRedrawFlags:!1}){let r=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!t.clearRedrawFlags,r&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(t){this._add(t)}addInstanced(t){this._add(t,{instanced:1})}remove(t){for(let r of t)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(t,r){let i=this._invalidateTrigger(t,r);Rs(xG,this,t,i)}invalidateAll(t){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,t);Rs(xG,this,\"all\")}update({data:t,numInstances:r,startIndices:i=null,transitions:n,props:s={},buffers:o={},context:c={}}){let d=!1;Rs(blt,this),this.stats&&this.stats.get(\"Update Attributes\").timeStart();for(let _ in this.attributes){let w=this.attributes[_],I=w.settings.accessor;w.startIndices=i,w.numInstances=r,s[_]&&er.removed(\"props.\".concat(_),\"data.attributes.\".concat(_))(),w.setExternalBuffer(o[_])||w.setBinaryValue(typeof I==\"string\"?o[I]:void 0,t.startIndices)||typeof I==\"string\"&&!o[I]&&w.setConstantValue(s[I])||w.needsUpdate()&&(d=!0,this._updateAttribute({attribute:w,numInstances:r,data:t,props:s,context:c})),this.needsRedraw=this.needsRedraw||w.needsRedraw()}d&&Rs(wlt,this,r),this.stats&&this.stats.get(\"Update Attributes\").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:n})}updateTransition(){let{attributeTransitionManager:t}=this,r=t.run();return this.needsRedraw=this.needsRedraw||r,r}getAttributes(){return this.attributes}getBounds(t){let r=t.map(i=>{var n;return(n=this.attributes[i])===null||n===void 0?void 0:n.getBounds()});return this.mergeBoundsMemoized(r)}getChangedAttributes(t={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:i}=this,n={...i.getAttributes()};for(let s in r){let o=r[s];o.needsRedraw(t)&&!i.hasAttribute(s)&&(n[s]=o)}return n}getShaderAttributes(t,r={}){t||(t=this.getAttributes());let i={};for(let n in t)r[n]||Object.assign(i,t[n].getShaderAttributes());return i}_add(t,r={}){for(let i in t){let n=t[i];this.attributes[i]=this._createAttribute(i,n,r)}this._mapUpdateTriggersToAttributes()}_createAttribute(t,r,i){let n={...r,id:t,size:r.isIndexed&&1||r.size||1,divisor:i.instanced?1:r.divisor||0};return new ap(this.gl,n)}_mapUpdateTriggersToAttributes(){let t={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(n=>{t[n]||(t[n]=[]),t[n].push(r)});this.updateTriggers=t}_invalidateTrigger(t,r){let{attributes:i,updateTriggers:n}=this,s=n[t];return s&&s.forEach(o=>{let c=i[o];c&&c.setNeedsUpdate(c.id,r)}),s}_updateAttribute(t){let{attribute:r,numInstances:i}=t;if(Rs(Slt,r),r.constant){r.setConstantValue(r.value);return}r.allocate(i)&&Rs(Tlt,r,i),r.updateBuffer(t)&&(this.needsRedraw=!0,Rs(Mlt,r,i))}};var $b=class extends Xc{get value(){return this._value}_onUpdate(){let{time:t,settings:{fromValue:r,toValue:i,duration:n,easing:s}}=this,o=s(t/n);this._value=Ql(r,i,o)}};var bG=1e-5;function wG(e,t,r,i,n){let s=t-e,c=(r-t)*n,d=-s*i;return c+d+s+t}function Elt(e,t,r,i,n){if(Array.isArray(r)){let s=[];for(let o=0;o0}add(t,r,i,n){let{transitions:s}=this;if(s.has(t)){let d=s.get(t),{value:_=d.settings.fromValue}=d;r=_,this.remove(t)}if(n=HE(n),!n)return;let o=Plt[n.type];if(!o){er.error(\"unsupported transition type '\".concat(n.type,\"'\"))();return}let c=new o(this.timeline);c.start({...n,fromValue:r,toValue:i}),s.set(t,c)}remove(t){let{transitions:r}=this;r.has(t)&&(r.get(t).cancel(),r.delete(t))}update(){let t={};for(let[r,i]of this.transitions)i.update(),t[r]=i.value,i.inProgress||this.remove(r);return t}clear(){for(let t of this.transitions.keys())this.remove(t)}};function MG(e){let t=e[Vu];for(let r in t){let i=t[r],{validate:n}=i;if(n&&!n(e[r],i))throw new Error(\"Invalid prop \".concat(r,\": \").concat(e[r]))}}function EG(e,t){let r=Kb({newProps:e,oldProps:t,propTypes:e[Vu],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=Clt(e,t),n=!1;return i||(n=Llt(e,t)),{dataChanged:i,propsChanged:r,updateTriggersChanged:n,extensionsChanged:klt(e,t),transitionsChanged:Ilt(e,t)}}function Ilt(e,t){if(!e.transitions)return!1;let r={},i=e[Vu],n=!1;for(let s in e.transitions){let o=i[s],c=o&&o.type;(c===\"number\"||c===\"color\"||c===\"array\")&&lD(e[s],t[s],o)&&(r[s]=!0,n=!0)}return n?r:!1}function Kb({newProps:e,oldProps:t,ignoreProps:r={},propTypes:i={},triggerName:n=\"props\"}){if(t===e)return!1;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return\"\".concat(n,\" changed shallowly\");for(let s of Object.keys(e))if(!(s in r)){if(!(s in t))return\"\".concat(n,\".\").concat(s,\" added\");let o=lD(e[s],t[s],i[s]);if(o)return\"\".concat(n,\".\").concat(s,\" \").concat(o)}for(let s of Object.keys(t))if(!(s in r)){if(!(s in e))return\"\".concat(n,\".\").concat(s,\" dropped\");if(!Object.hasOwnProperty.call(e,s)){let o=lD(e[s],t[s],i[s]);if(o)return\"\".concat(n,\".\").concat(s,\" \").concat(o)}}return!1}function lD(e,t,r){let i=r&&r.equal;return i&&!i(e,t,r)||!i&&(i=e&&t&&e.equals,i&&!i.call(e,t))?\"changed deeply\":!i&&t!==e?\"changed shallowly\":null}function Clt(e,t){if(t===null)return\"oldProps is null, initial diff\";let r=!1,{dataComparator:i,_dataDiff:n}=e;return i?i(e.data,t.data)||(r=\"Data comparator detected a change\"):e.data!==t.data&&(r=\"A new data container was supplied\"),r&&n&&(r=n(e.data,t.data)||r),r}function Llt(e,t){if(t===null)return{all:!0};if(\"all\"in e.updateTriggers&&TG(e,t,\"all\"))return{all:!0};let r={},i=!1;for(let n in e.updateTriggers)n!==\"all\"&&TG(e,t,n)&&(r[n]=!0,i=!0);return i?r:!1}function klt(e,t){if(t===null)return!0;let r=t.extensions,{extensions:i}=e;if(i===r)return!1;if(!r||!i||i.length!==r.length)return!0;for(let n=0;ni.name===\"project64\"))){let i=r.modules.findIndex(n=>n.name===\"project32\");i>=0&&r.modules.splice(i,1)}if(\"inject\"in t)if(!e.inject)r.inject=t.inject;else{let i={...e.inject};for(let n in t.inject)i[n]=(i[n]||\"\")+t.inject[n];r.inject=i}return r}var Flt={10241:9987,10240:9729,10242:33071,10243:33071},cD={};function CG(e,t,r,i){if(r instanceof ci)return r;r.constructor&&r.constructor.name!==\"Object\"&&(r={data:r});let n=null;r.compressed&&(n={10241:r.data.length>1?9985:9729});let s=new ci(t,{...r,parameters:{...Flt,...n,...i}});return cD[s.id]=e,s}function LG(e,t){!t||!(t instanceof ci)||cD[t.id]===e&&(t.delete(),delete cD[t.id])}var zlt={boolean:{validate(e,t){return!0},equal(e,t,r){return!!e==!!t}},number:{validate(e,t){return Number.isFinite(e)&&(!(\"max\"in t)||e<=t.max)&&(!(\"min\"in t)||e>=t.min)}},color:{validate(e,t){return t.optional&&!e||uD(e)&&(e.length===3||e.length===4)},equal(e,t,r){return ho(e,t,1)}},accessor:{validate(e,t){let r=QE(e);return r===\"function\"||r===QE(t.value)},equal(e,t,r){return typeof t==\"function\"?!0:ho(e,t,1)}},array:{validate(e,t){return t.optional&&!e||uD(e)},equal(e,t,r){let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?ho(e,t,n):e===t}},object:{equal(e,t,r){if(r.ignore)return!0;let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?ho(e,t,n):e===t}},function:{validate(e,t){return t.optional&&!e||typeof e==\"function\"},equal(e,t,r){return!r.compare&&r.ignore!==!1||e===t}},data:{transform:(e,t,r)=>{let{dataTransform:i}=r.props;return i&&e?i(e):e}},image:{transform:(e,t,r)=>{let i=r.context;return!i||!i.gl?null:CG(r.id,i.gl,e,{...t.parameters,...r.props.textureParameters})},release:(e,t,r)=>{LG(r.id,e)}}};function kG(e){let t={},r={},i={};for(let[n,s]of Object.entries(e)){let o=s?.deprecatedFor;if(o)i[n]=Array.isArray(o)?o:[o];else{let c=Nlt(n,s);t[n]=c,r[n]=c.value}}return{propTypes:t,defaultProps:r,deprecatedProps:i}}function Nlt(e,t){switch(QE(t)){case\"object\":return Jb(e,t);case\"array\":return Jb(e,{type:\"array\",value:t,compare:!1});case\"boolean\":return Jb(e,{type:\"boolean\",value:t});case\"number\":return Jb(e,{type:\"number\",value:t});case\"function\":return Jb(e,{type:\"function\",value:t,compare:!0});default:return{name:e,type:\"unknown\",value:t}}}function Jb(e,t){return\"type\"in t?{name:e,...zlt[t.type],...t}:\"value\"in t?{name:e,type:QE(t.value),...t}:{name:e,type:\"object\",value:t}}function uD(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function QE(e){return uD(e)?\"array\":e===null?\"null\":typeof e}function RG(e,t){let r;for(let s=t.length-1;s>=0;s--){let o=t[s];\"extensions\"in o&&(r=o.extensions)}let i=hD(e.constructor,r),n=Object.create(i);n[By]=e,n[ed]={},n[Nh]={};for(let s=0;s{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(let t in this.asyncProps){let r=this.asyncProps[t];r&&r.type&&r.type.release&&r.type.release(r.resolvedValue,r.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||Ylt}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(t){return t in this.asyncProps}getAsyncProp(t){let r=this.asyncProps[t];return r&&r.resolvedValue}isAsyncPropLoading(t){if(t){let r=this.asyncProps[t];return!!(r&&r.pendingLoadCount>0&&r.pendingLoadCount!==r.resolvedLoadCount)}for(let r in this.asyncProps)if(this.isAsyncPropLoading(r))return!0;return!1}reloadAsyncProp(t,r){this._watchPromise(t,Promise.resolve(r))}setAsyncProps(t){this.component=t[By]||this.component;let r=t[Nh]||{},i=t[ed]||t,n=t[rp]||{};for(let s in r){let o=r[s];this._createAsyncPropData(s,n[s]),this._updateAsyncProp(s,o),r[s]=this.getAsyncProp(s)}for(let s in i){let o=i[s];this._createAsyncPropData(s,n[s]),this._updateAsyncProp(s,o)}}_fetch(t,r){return null}_onResolve(t,r){}_onError(t,r){}_updateAsyncProp(t,r){if(this._didAsyncInputValueChange(t,r)){if(typeof r==\"string\"&&(r=this._fetch(t,r)),r instanceof Promise){this._watchPromise(t,r);return}if(GE(r)){this._resolveAsyncIterable(t,r);return}this._setPropValue(t,r)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(let t in this.asyncProps)Object.defineProperty(this.oldAsyncProps,t,{enumerable:!0,value:this.oldProps[t]})}}_didAsyncInputValueChange(t,r){let i=this.asyncProps[t];return r===i.resolvedValue||r===i.lastValue?!1:(i.lastValue=r,!0)}_setPropValue(t,r){this._freezeAsyncOldProps();let i=this.asyncProps[t];i&&(r=this._postProcessValue(i,r),i.resolvedValue=r,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(t,r,i){let n=this.asyncProps[t];n&&i>=n.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),n.resolvedValue=r,n.resolvedLoadCount=i,this.onAsyncPropUpdated(t,r))}_watchPromise(t,r){let i=this.asyncProps[t];if(i){i.pendingLoadCount++;let n=i.pendingLoadCount;r.then(s=>{this.component&&(s=this._postProcessValue(i,s),this._setAsyncPropValue(t,s,n),this._onResolve(t,s))}).catch(s=>{this._onError(t,s)})}}async _resolveAsyncIterable(t,r){if(t!==\"data\"){this._setPropValue(t,r);return}let i=this.asyncProps[t];if(!i)return;i.pendingLoadCount++;let n=i.pendingLoadCount,s=[],o=0;for await(let c of r){if(!this.component)return;let{dataTransform:d}=this.component.props;d?s=d(c,s):s=s.concat(c),Object.defineProperty(s,\"__diff\",{enumerable:!1,value:[{startRow:o,endRow:s.length}]}),o=s.length,this._setAsyncPropValue(t,s,n)}this._onResolve(t,s)}_postProcessValue(t,r){let i=t.type;return i&&this.component&&(i.release&&i.release(t.resolvedValue,i,this.component),i.transform)?i.transform(r,i,this.component):r}_createAsyncPropData(t,r){if(!this.asyncProps[t]){let n=this.component&&this.component.props[Vu];this.asyncProps[t]={type:n&&n[t],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var ew=class extends tw{constructor({attributeManager:t,layer:r}){super(r),G(this,\"attributeManager\",void 0),G(this,\"needsRedraw\",void 0),G(this,\"needsUpdate\",void 0),G(this,\"subLayers\",void 0),G(this,\"usesPickingColorCache\",void 0),G(this,\"hasPickingBuffer\",void 0),G(this,\"changeFlags\",void 0),G(this,\"viewport\",void 0),G(this,\"uniformTransitions\",void 0),G(this,\"propsInTransition\",void 0),this.attributeManager=t,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(t,r){let i=this.layer,n=i?.props.fetch;return n?n(r,{propName:t,layer:i}):super._fetch(t,r)}_onResolve(t,r){let i=this.layer;if(i){let n=i.props.onDataLoad;t===\"data\"&&n&&n(r,{propName:t,layer:i})}}_onError(t,r){let i=this.layer;i&&i.raiseError(r,\"loading \".concat(t,\" of \").concat(this.layer))}};var $lt=\"layer.changeFlag\",Qlt=\"layer.initialize\",Xlt=\"layer.update\",Klt=\"layer.finalize\",Jlt=\"layer.matched\",OG=2**24-1,tct=Object.freeze([]),ect=Jf(({oldViewport:e,viewport:t})=>e.equals(t)),id=new Uint8ClampedArray(0),rct={data:{type:\"data\",value:tct,async:!0},dataComparator:{type:\"function\",value:null,optional:!0},_dataDiff:{type:\"function\",value:e=>e&&e.__diff,optional:!0},dataTransform:{type:\"function\",value:null,optional:!0},onDataLoad:{type:\"function\",value:null,optional:!0},onError:{type:\"function\",value:null,optional:!0},fetch:{type:\"function\",value:(e,{propName:t,layer:r,loaders:i,loadOptions:n,signal:s})=>{let{resourceManager:o}=r.context;if(n=n||r.getLoadOptions(),i=i||r.props.loaders,s){var c;n={...n,fetch:{...(c=n)===null||c===void 0?void 0:c.fetch,signal:s}}}let d=o.contains(e);return!d&&!n&&(o.add({resourceId:e,data:VA(e,i),persistent:!1}),d=!0),d?o.subscribe({resourceId:e,onChange:_=>{var w;return(w=r.internalState)===null||w===void 0?void 0:w.reloadAsyncProp(t,_)},consumerId:r.id,requestId:t}):VA(e,i,n)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:\"number\",min:0,max:1,value:1},operation:\"draw\",onHover:{type:\"function\",value:null,optional:!0},onClick:{type:\"function\",value:null,optional:!0},onDragStart:{type:\"function\",value:null,optional:!0},onDrag:{type:\"function\",value:null,optional:!0},onDragEnd:{type:\"function\",value:null,optional:!0},coordinateSystem:Wr.DEFAULT,coordinateOrigin:{type:\"array\",value:[0,0,0],compare:!0},modelMatrix:{type:\"array\",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:\"XYZ\",colorFormat:\"RGBA\",parameters:{type:\"object\",value:{},optional:!0,compare:2},loadOptions:{type:\"object\",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:\"array\",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:\"function\",value:({layerIndex:e})=>[0,-e*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:\"accessor\",value:[0,0,128,128]}},_n=class extends cg{constructor(...t){super(...t),G(this,\"internalState\",null),G(this,\"lifecycle\",JA.NO_STATE),G(this,\"context\",void 0),G(this,\"state\",void 0),G(this,\"parent\",null)}static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"layerName\")?this.layerName:\"\"}get root(){let t=this;for(;t.parent;)t=t.parent;return t}toString(){let t=this.constructor.layerName||this.constructor.name;return\"\".concat(t,\"({id: '\").concat(this.props.id,\"'})\")}project(t){vr(this.internalState);let r=this.internalState.viewport||this.context.viewport,i=KR(t,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,s,o]=ky(i,r.pixelProjectionMatrix);return t.length===2?[n,s]:[n,s,o]}unproject(t){return vr(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(t)}projectPosition(t,r){vr(this.internalState);let i=this.internalState.viewport||this.context.viewport;return F7(t,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}setState(t){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,t),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters(t){for(let r of this.getModels())r.updateModuleSettings(t)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){let{coordinateSystem:t}=this.props;return t===Wr.DEFAULT||t===Wr.LNGLAT||t===Wr.CARTESIAN}onHover(t,r){return this.props.onHover&&this.props.onHover(t,r)||!1}onClick(t,r){return this.props.onClick&&this.props.onClick(t,r)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(t,r=[]){return r[0]=t+1&255,r[1]=t+1>>8&255,r[2]=t+1>>8>>8&255,r}decodePickingColor(t){vr(t instanceof Uint8Array);let[r,i,n]=t;return r+i*256+n*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:PG(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"positions\",\"instancePositions\"])}getShaders(t){for(let r of this.props.extensions)t=IG(t,r.getShaders.call(this,r));return t}shouldUpdateState(t){return t.changeFlags.propsOrDataChanged}updateState(t){let r=this.getAttributeManager(),{dataChanged:i}=t.changeFlags;if(i&&r)if(Array.isArray(i))for(let n of i)r.invalidateAll(n);else r.invalidateAll();if(r){let{props:n}=t,s=this.internalState.hasPickingBuffer,o=Number.isInteger(n.highlightedObjectIndex)||n.pickable||n.extensions.some(c=>c.getNeedsPickingBuffer.call(this,c));if(s!==o){this.internalState.hasPickingBuffer=o;let{pickingColors:c,instancePickingColors:d}=r.attributes,_=c||d;_&&(o&&_.constant&&(_.constant=!1,r.invalidate(_.id)),!_.value&&!o&&(_.constant=!0,_.value=[0,0,0]))}}}finalizeState(t){for(let i of this.getModels())i.delete();let r=this.getAttributeManager();r&&r.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(t){for(let r of this.getModels())r.draw(t)}getPickingInfo({info:t,mode:r,sourceLayer:i}){let{index:n}=t;return n>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[n]),t}raiseError(t,r){var i,n;if(r&&(t=new Error(\"\".concat(r,\": \").concat(t.message),{cause:t})),!((i=(n=this.props).onError)!==null&&i!==void 0&&i.call(n,t))){var s,o;(s=this.context)===null||s===void 0||(o=s.onError)===null||o===void 0||o.call(s,t,this)}}getNeedsRedraw(t={clearRedrawFlags:!1}){return this._getNeedsRedraw(t)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var t;return((t=this.internalState)===null||t===void 0?void 0:t.uniformTransitions.active)||!1}activateViewport(t){if(!this.internalState)return;let r=this.internalState.viewport;this.internalState.viewport=t,(!r||!ect({oldViewport:r,viewport:t}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(t=\"all\"){let r=this.getAttributeManager();r&&(t===\"all\"?r.invalidateAll():r.invalidate(t))}updateAttributes(t){for(let r of this.getModels())this._setModelAttributes(r,t)}_updateAttributes(){let t=this.getAttributeManager();if(!t)return;let r=this.props,i=this.getNumInstances(),n=this.getStartIndices();t.update({data:r.data,numInstances:i,startIndices:n,props:r,transitions:r.transitions,buffers:r.data.attributes,context:this});let s=t.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(s)}_updateAttributeTransition(){let t=this.getAttributeManager();t&&t.updateTransition()}_updateUniformTransition(){let{uniformTransitions:t}=this.internalState;if(t.active){let r=t.update(),i=Object.create(this.props);for(let n in r)Object.defineProperty(i,n,{value:r[n]});return i}return this.props}calculateInstancePickingColors(t,{numInstances:r}){if(t.constant)return;let i=Math.floor(id.length/3);if(this.internalState.usesPickingColorCache=!0,iOG&&er.warn(\"Layer has too many data objects. Picking might not be able to distinguish all objects.\")(),id=zh.allocate(id,r,{size:3,copy:!0,maxCount:Math.max(r,OG)});let n=Math.floor(id.length/3),s=[];for(let o=i;o(er.deprecated(\"layer.state.attributeManager\",\"layer.getAttributeManager()\")(),t)}),this.internalState.uniformTransitions=new Xb(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(let r of this.props.extensions)r.initializeState.call(this,this.context,r);this.setChangeFlags({dataChanged:\"init\",propsChanged:\"init\",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(t){Rs(Jlt,this,this===t);let{state:r,internalState:i}=t;this!==t&&(this.internalState=i,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let t=this.needsUpdate();if(Rs(Xlt,this,t),!t)return;let r=this.props,i=this.context,n=this.internalState,s=i.viewport,o=this._updateUniformTransition();n.propsInTransition=o,i.viewport=n.viewport||s,this.props=o;try{let c=this._getUpdateParams(),d=this.getModels();if(i.gl)this.updateState(c);else try{this.updateState(c)}catch{}for(let w of this.props.extensions)w.updateState.call(this,c,w);let _=this.getModels()[0]!==d[0];this._postUpdate(c,_)}finally{i.viewport=s,this.props=r,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){Rs(Klt,this),this.finalizeState(this.context);for(let t of this.props.extensions)t.finalizeState.call(this,this.context,t)}_drawLayer({moduleParameters:t=null,uniforms:r={},parameters:i={}}){this._updateAttributeTransition();let n=this.props,s=this.context;this.props=this.internalState.propsInTransition||n;let o=this.props.opacity;r.opacity=Math.pow(o,1/2.2);try{t&&this.setModuleParameters(t);let{getPolygonOffset:c}=this.props,d=c&&c(r)||[0,0];bl(s.gl,{polygonOffset:d}),An(s.gl,i,()=>{let _={moduleParameters:t,uniforms:r,parameters:i,context:s};for(let w of this.props.extensions)w.draw.call(this,_,w);this.draw(_)})}finally{this.props=n}}getChangeFlags(){var t;return(t=this.internalState)===null||t===void 0?void 0:t.changeFlags}setChangeFlags(t){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let n in t)if(t[n]){let s=!1;switch(n){case\"dataChanged\":let o=t[n],c=r[n];o&&Array.isArray(c)&&(r.dataChanged=Array.isArray(o)?c.concat(o):o,s=!0);default:r[n]||(r[n]=t[n],s=!0)}s&&Rs($lt,this,n,t)}let i=!!(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=i,r.somethingChanged=i||r.viewportChanged||r.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(t,r){let i=EG(t,r);if(i.updateTriggersChanged)for(let s in i.updateTriggersChanged)i.updateTriggersChanged[s]&&this.invalidateAttribute(s);if(i.transitionsChanged)for(let s in i.transitionsChanged){var n;this.internalState.uniformTransitions.add(s,r[s],t[s],(n=t.transitions)===null||n===void 0?void 0:n[s])}return this.setChangeFlags(i)}validateProps(){MG(this.props)}updateAutoHighlight(t){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(t)}_updateAutoHighlight(t){let r={pickingSelectedColor:t.picked?t.color:null},{highlightColor:i}=this.props;t.picked&&typeof i==\"function\"&&(r.pickingHighlightColor=i(t)),this.setModuleParameters(r),this.setNeedsRedraw()}_getAttributeManager(){let t=this.context;return new rd(t.gl,{id:this.props.id,stats:t.stats,timeline:t.timeline})}_postUpdate(t,r){let{props:i,oldProps:n}=t;this.setNeedsRedraw(),this._updateAttributes();let{model:s}=this.state;s?.setInstanceCount(this.getNumInstances());let{autoHighlight:o,highlightedObjectIndex:c,highlightColor:d}=i;if(r||n.autoHighlight!==o||n.highlightedObjectIndex!==c||n.highlightColor!==d){let _={};o||(_.pickingSelectedColor=null),Array.isArray(d)&&(_.pickingHighlightColor=d),(r||c!==n.highlightedObjectIndex)&&(_.pickingSelectedColor=Number.isFinite(c)&&c>=0?this.encodePickingColor(c):null),this.setModuleParameters(_)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(t){if(!this.internalState)return!1;let r=!1;r=r||this.internalState.needsRedraw&&this.id;let i=this.getAttributeManager(),n=i?i.getNeedsRedraw(t):!1;if(r=r||n,r)for(let s of this.props.extensions)s.onNeedsRedraw.call(this,s);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!t.clearRedrawFlags,r}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}};G(_n,\"defaultProps\",rct);G(_n,\"layerName\",\"Layer\");var ict=\"compositeLayer.renderLayers\",Yi=class extends _n{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(t=>t.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(t){}setState(t){super.setState(t),this.setNeedsUpdate()}getPickingInfo({info:t}){let{object:r}=t;return r&&r.__source&&r.__source.parent&&r.__source.parent.id===this.id&&(t.object=r.__source.object,t.index=r.__source.index),t}filterSubLayer(t){return!0}shouldRenderSubLayer(t,r){return r&&r.length}getSubLayerClass(t,r){let{_subLayerProps:i}=this.props;return i&&i[t]&&i[t].type||r}getSubLayerRow(t,r,i){return t.__source={parent:this,object:r,index:i},t}getSubLayerAccessor(t){if(typeof t==\"function\"){let r={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(r.index=i.__source.index,t(i.__source.object,r)):t(i,n)}return t}getSubLayerProps(t={}){var r;let{opacity:i,pickable:n,visible:s,parameters:o,getPolygonOffset:c,highlightedObjectIndex:d,autoHighlight:_,highlightColor:w,coordinateSystem:I,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:it,fetch:Z,operation:K,_subLayerProps:J}=this.props,ht={id:\"\",updateTriggers:{},opacity:i,pickable:n,visible:s,parameters:o,getPolygonOffset:c,highlightedObjectIndex:d,autoHighlight:_,highlightColor:w,coordinateSystem:I,coordinateOrigin:R,wrapLongitude:N,positionFormat:j,modelMatrix:Y,extensions:it,fetch:Z,operation:K},Tt=J&&t.id&&J[t.id],Ot=Tt&&Tt.updateTriggers,Yt=t.id||\"sublayer\";if(Tt){let te=this.props[Vu],oe=t.type?t.type._propTypes:{};for(let ae in Tt){let Le=oe[ae]||te[ae];Le&&Le.type===\"accessor\"&&(Tt[ae]=this.getSubLayerAccessor(Tt[ae]))}}Object.assign(ht,t,Tt),ht.id=\"\".concat(this.props.id,\"-\").concat(Yt),ht.updateTriggers={all:(r=this.props.updateTriggers)===null||r===void 0?void 0:r.all,...t.updateTriggers,...Ot};for(let te of it){let oe=te.getSubLayerProps.call(this,te);oe&&Object.assign(ht,oe,{updateTriggers:Object.assign(ht.updateTriggers,oe.updateTriggers)})}return ht}_updateAutoHighlight(t){for(let r of this.getSubLayers())r.updateAutoHighlight(t)}_getAttributeManager(){return null}_postUpdate(t,r){let i=this.internalState.subLayers,n=!i||this.needsUpdate();if(n){let s=this.renderLayers();i=ip(s,Boolean),this.internalState.subLayers=i}Rs(ict,this,n,i);for(let s of i)s.parent=this}};G(Yi,\"layerName\",\"CompositeLayer\");var XE=Math.PI/180,BG=180/Math.PI,KE=6370972,Vy=256;function nct(){let e=Vy/KE,t=Math.PI/180*Vy;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[t,t,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/t,1/t,1/e]}}var jy=class extends Jl{constructor(t={}){let{latitude:r=0,longitude:i=0,zoom:n=0,nearZMultiplier:s=.1,farZMultiplier:o=2,resolution:c=10}=t,{height:d,altitude:_=1.5}=t;d=d||1,_=Math.max(.75,_);let w=new mn().lookAt({eye:[0,-_,0],up:[0,0,1]}),I=Math.pow(2,n);w.rotateX(r*XE),w.rotateZ(-i*XE),w.scale(I/d);let R=Math.atan(.5/_),N=Vy*2*I/d;super({...t,height:d,viewMatrix:w,longitude:i,latitude:r,zoom:n,distanceScales:nct(),fovyRadians:R*2,focalDistance:_,near:s,far:Math.min(2,1/N+1)*_*o}),G(this,\"longitude\",void 0),G(this,\"latitude\",void 0),G(this,\"resolution\",void 0),this.latitude=r,this.longitude=i,this.resolution=c}get projectionMode(){return Ka.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){let r={targetZ:t.z||0},i=this.unproject([0,this.height/2],r),n=this.unproject([this.width/2,0],r),s=this.unproject([this.width,this.height/2],r),o=this.unproject([this.width/2,this.height],r);return s[0]this.longitude&&(i[0]-=360),[Math.min(i[0],s[0],n[0],o[0]),Math.min(i[1],s[1],n[1],o[1]),Math.max(i[0],s[0],n[0],o[0]),Math.max(i[1],s[1],n[1],o[1])]}unproject(t,{topLeft:r=!0,targetZ:i}={}){let[n,s,o]=t,c=r?s:this.height-s,{pixelUnprojectionMatrix:d}=this,_;if(Number.isFinite(o))_=dD(d,[n,c,o,1]);else{let N=dD(d,[n,c,-1,1]),j=dD(d,[n,c,1,1]),Y=((i||0)/KE+1)*Vy,it=xE(yE([],N,j)),Z=xE(N),K=xE(j),ht=4*((4*Z*K-(it-Z-K)**2)/16)/it,Tt=Math.sqrt(Z-ht),Ot=Math.sqrt(Math.max(0,Y*Y-ht)),Yt=(Tt-Ot)/Math.sqrt(it);_=mj([],N,j,Yt)}let[w,I,R]=this.unprojectPosition(_);return Number.isFinite(o)?[w,I,R]:Number.isFinite(i)?[w,I,i]:[w,I]}projectPosition(t){let[r,i,n=0]=t,s=r*XE,o=i*XE,c=Math.cos(o),d=(n/KE+1)*Vy;return[Math.sin(s)*c*d,-Math.cos(s)*c*d,Math.sin(o)*d]}unprojectPosition(t){let[r,i,n]=t,s=vE(t),o=Math.asin(n/s),d=Math.atan2(r,-i)*BG,_=o*BG,w=(s/Vy-1)*KE;return[d,_,w]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition(t,r){let i=this.unproject(r);return{longitude:t[0]-i[0]+this.longitude,latitude:t[1]-i[1]+this.latitude}}};function dD(e,t){let r=Dh([],t,e);return Sy(r,r,1/r[3]),r}var sct=new mn().lookAt({eye:[0,0,1]});function oct({width:e,height:t,near:r,far:i,padding:n}){let s=-e/2,o=e/2,c=-t/2,d=t/2;if(n){let{left:_=0,right:w=0,top:I=0,bottom:R=0}=n,N=Tl((_+e-w)/2,0,e)-e/2,j=Tl((I+t-R)/2,0,t)-t/2;s-=N,o-=N,c+=j,d+=j}return new mn().ortho({left:s,right:o,bottom:c,top:d,near:r,far:i})}var Gy=class extends Jl{constructor(t){let{width:r,height:i,near:n=.1,far:s=1e3,zoom:o=0,target:c=[0,0,0],padding:d=null,flipY:_=!0}=t,w=Array.isArray(o)?o[0]:o,I=Array.isArray(o)?o[1]:o,R=Math.min(w,I),N=Math.pow(2,R),j;if(w!==I){let Y=Math.pow(2,w),it=Math.pow(2,I);j={unitsPerMeter:[Y/N,it/N,1],metersPerUnit:[N/Y,N/it,1]}}super({...t,longitude:void 0,position:c,viewMatrix:sct.clone().scale([N,N*(_?-1:1),N]),projectionMatrix:oct({width:r||1,height:i||1,padding:d,near:n,far:s}),zoom:R,distanceScales:j})}projectFlat([t,r]){let{unitsPerMeter:i}=this.distanceScales;return[t*i[0],r*i[1]]}unprojectFlat([t,r]){let{metersPerUnit:i}=this.distanceScales;return[t*i[0],r*i[1]]}panByPosition(t,r){let i=td(r,this.pixelUnprojectionMatrix),n=this.projectFlat(t),s=yy([],n,dE([],i)),o=yy([],this.center,s);return{target:this.unprojectFlat(o)}}};var ju=class{static get componentName(){return Object.prototype.hasOwnProperty.call(this,\"extensionName\")?this.extensionName:\"\"}constructor(t){G(this,\"opts\",void 0),t&&(this.opts=t)}equals(t){return this===t?!0:this.constructor===t.constructor&&ho(this.opts,t.opts,1)}getShaders(t){return null}getSubLayerProps(t){let{defaultProps:r}=t.constructor,i={updateTriggers:{}};for(let n in r)if(n in this.props){let s=r[n],o=this.props[n];i[n]=o,s&&s.type===\"accessor\"&&(i.updateTriggers[n]=this.props.updateTriggers[n],typeof o==\"function\"&&(i[n]=this.getSubLayerAccessor(o)))}return i}initializeState(t,r){}updateState(t,r){}onNeedsRedraw(t){}getNeedsPickingBuffer(t){return!1}draw(t,r){}finalizeState(t,r){}};G(ju,\"defaultProps\",{});G(ju,\"extensionName\",\"LayerExtension\");var em=class{constructor(t){G(this,\"opts\",void 0),G(this,\"typedArrayManager\",void 0),G(this,\"indexStarts\",[0]),G(this,\"vertexStarts\",[0]),G(this,\"vertexCount\",0),G(this,\"instanceCount\",0),G(this,\"attributes\",void 0),G(this,\"_attributeDefs\",void 0),G(this,\"data\",void 0),G(this,\"getGeometry\",void 0),G(this,\"geometryBuffer\",void 0),G(this,\"buffers\",void 0),G(this,\"positionSize\",void 0),G(this,\"normalize\",void 0);let{attributes:r={}}=t;this.typedArrayManager=zh,this.attributes={},this._attributeDefs=r,this.opts=t,this.updateGeometry(t)}updateGeometry(t){Object.assign(this.opts,t);let{data:r,buffers:i={},getGeometry:n,geometryBuffer:s,positionFormat:o,dataChanged:c,normalize:d=!0}=this.opts;if(this.data=r,this.getGeometry=n,this.positionSize=s&&s.size||(o===\"XY\"?2:3),this.buffers=i,this.normalize=d,s&&(vr(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(s),d||(i.positions=s)),this.geometryBuffer=i.positions,Array.isArray(c))for(let _ of c)this._rebuildGeometry(_);else this._rebuildGeometry()}updatePartialGeometry({startRow:t,endRow:r}){this._rebuildGeometry({startRow:t,endRow:r})}getGeometryFromBuffer(t){let r=t.value||t;return ArrayBuffer.isView(r)?WE(r,{size:this.positionSize,offset:t.offset,stride:t.stride,startIndices:this.data.startIndices}):null}_allocate(t,r){let{attributes:i,buffers:n,_attributeDefs:s,typedArrayManager:o}=this;for(let c in s)if(c in n)o.release(i[c]),i[c]=null;else{let d=s[c];d.copy=r,i[c]=o.allocate(i[c],t,d)}}_forEachGeometry(t,r,i){let{data:n,getGeometry:s}=this,{iterable:o,objectInfo:c}=Kc(n,r,i);for(let d of o){c.index++;let _=s?s(d,c):null;t(_,c.index)}}_rebuildGeometry(t){if(!this.data)return;let{indexStarts:r,vertexStarts:i,instanceCount:n}=this,{data:s,geometryBuffer:o}=this,{startRow:c=0,endRow:d=1/0}=t||{},_={};if(t||(r=[0],i=[0]),this.normalize||!o)this._forEachGeometry((I,R)=>{let N=I&&this.normalizeGeometry(I);_[R]=N,i[R+1]=i[R]+(N?this.getGeometrySize(N):0)},c,d),n=i[i.length-1];else if(i=s.startIndices,n=i[s.length]||0,ArrayBuffer.isView(o))n=n||o.length/this.positionSize;else if(o instanceof Nr){let I=o.accessor.stride||this.positionSize*4;n=n||o.byteLength/I}else if(o.buffer){let I=o.stride||this.positionSize*4;n=n||o.buffer.byteLength/I}else if(o.value){let I=o.value,R=o.stride/I.BYTES_PER_ELEMENT||this.positionSize;n=n||I.length/R}this._allocate(n,!!t),this.indexStarts=r,this.vertexStarts=i,this.instanceCount=n;let w={};this._forEachGeometry((I,R)=>{let N=_[R]||I;w.vertexStart=i[R],w.indexStart=r[R];let j=RtP(r,t));if(Hy(e)){if(cct(e))return t.style=lct,(0,pD.cloneElement)(e,t);if(uct(e))return(0,pD.cloneElement)(e,t)}return e}function Hy(e){return e&&typeof e==\"object\"&&\"type\"in e||!1}function cct(e){var t;return(t=e.props)===null||t===void 0?void 0:t.mapStyle}function uct(e){let t=e.type;return t&&t.deckGLViewProps}function AD(e){if(typeof e==\"function\")return(0,zG.createElement)(Qc,{},e);if(Array.isArray(e))return e.map(AD);if(Hy(e)){if(e.type===eP.Fragment)return AD(e.props.children);if(Wy(e.type,Qc))return e}return e}function mD({children:e,layers:t=[],views:r=null}){let i=[],n=[],s={};return eP.Children.forEach(AD(e),o=>{if(Hy(o)){let c=o.type;if(Wy(c,_n)){let d=hct(c,o.props);n.push(d)}else i.push(o);if(Wy(c,Qc)&&c!==Qc&&o.props.id){let d=new c(o.props);s[d.id]=d}}else o&&i.push(o)}),Object.keys(s).length>0&&(Array.isArray(r)?r.forEach(o=>{s[o.id]=o}):r&&(s[r.id]=r),r=Object.values(s)),t=n.length>0?[...n,...t]:t,{layers:t,children:i,views:r}}function hct(e,t){let r={},i=e.defaultProps||{};for(let n in t)i[n]!==t[n]&&(r[n]=t[n]);return new e(r)}var gD=xi(Zi());function _D({children:e,deck:t,ContextProvider:r}){let{viewManager:i}=t||{};if(!i||!i.views.length)return[];let n={},s=i.views[0].id;for(let o of e){let c=s,d=o;Hy(o)&&Wy(o.type,Qc)&&(c=o.props.id||s,d=o.props.children);let _=i.getViewport(c),w=i.getViewState(c);if(_){w.padding=_.padding;let{x:I,y:R,width:N,height:j}=_;d=tP(d,{x:I,y:R,width:N,height:j,viewport:_,viewState:w}),n[c]||(n[c]={viewport:_,children:[]}),n[c].children.push(d)}}return Object.keys(n).map(o=>{let{viewport:c,children:d}=n[o],{x:_,y:w,width:I,height:R}=c,N={position:\"absolute\",left:_,top:w,width:I,height:R},j=\"view-\".concat(o),Y=(0,gD.createElement)(\"div\",{key:j,id:j,style:N},...d);if(r){let it={viewport:c,container:t.canvas.offsetParent,eventManager:t.eventManager,onViewStateChange:Z=>{Z.viewId=o,t._onViewStateChange(Z)}};return(0,gD.createElement)(r,{key:j,value:it},Y)}return Y})}var fct={mixBlendMode:null};function yD({width:e,height:t,style:r}){let i={position:\"absolute\",zIndex:0,left:0,top:0,width:e,height:t},n={left:0,top:0};if(r)for(let s in r)s in fct?n[s]=r[s]:i[s]=r[s];return{containerStyle:i,canvasStyle:n}}function dct(e){return{get deck(){return e.deck},pickObject:t=>e.deck.pickObject(t),pickMultipleObjects:t=>e.deck.pickMultipleObjects(t),pickObjects:t=>e.deck.pickObjects(t)}}function NG(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}function pct(e,t,r){let i=new t({...r,_customRender:n=>{e.redrawReason=n;let s=i.getViewports();e.lastRenderedViewports!==s?e.forceUpdate():NG(e)}});return i}var UG=(0,Lo.forwardRef)((e,t)=>{let[r,i]=(0,Lo.useState)(0),s=(0,Lo.useRef)({control:null,version:r,forceUpdate:()=>i(Tt=>Tt+1)}).current,o=(0,Lo.useRef)(null),c=(0,Lo.useRef)(null),d=(0,Lo.useMemo)(()=>mD(e),[e.layers,e.views,e.children]),_=!0,w=Tt=>{var Ot;return _&&e.viewState?(s.viewStateUpdateRequested=Tt,null):(s.viewStateUpdateRequested=null,(Ot=e.onViewStateChange)===null||Ot===void 0?void 0:Ot.call(e,Tt))},I=Tt=>{if(_)s.interactionStateUpdateRequested=Tt;else{var Ot;s.interactionStateUpdateRequested=null,(Ot=e.onInteractionStateChange)===null||Ot===void 0||Ot.call(e,Tt)}},R=(0,Lo.useMemo)(()=>{let Tt={...e,style:null,width:\"100%\",height:\"100%\",parent:o.current,canvas:c.current,layers:d.layers,views:d.views,onViewStateChange:w,onInteractionStateChange:I};return delete Tt._customRender,s.deck&&s.deck.setProps(Tt),Tt},[e]);(0,Lo.useEffect)(()=>{let Tt=e.Deck||op;return s.deck=pct(s,Tt,{...R,parent:o.current,canvas:c.current}),()=>{var Ot;return(Ot=s.deck)===null||Ot===void 0?void 0:Ot.finalize()}},[]),FG(()=>{NG(s);let{viewStateUpdateRequested:Tt,interactionStateUpdateRequested:Ot}=s;Tt&&w(Tt),Ot&&I(Ot)}),(0,Lo.useImperativeHandle)(t,()=>dct(s),[]);let N=s.deck&&s.deck.isInitialized?s.deck.getViewports():void 0,{ContextProvider:j,width:Y,height:it,id:Z,style:K}=e,{containerStyle:J,canvasStyle:ht}=(0,Lo.useMemo)(()=>yD({width:Y,height:it,style:K}),[Y,it,K]);if(!s.viewStateUpdateRequested&&s.lastRenderedViewports===N||s.version!==r){s.lastRenderedViewports=N,s.version=r;let Tt=_D({children:d.children,deck:s.deck,ContextProvider:j}),Ot=(0,Lo.createElement)(\"canvas\",{key:\"canvas\",id:Z||\"deckgl-overlay\",ref:c,style:ht});s.control=(0,Lo.createElement)(\"div\",{id:\"\".concat(Z||\"deckgl\",\"-wrapper\"),ref:o,style:J},[Ot,Tt])}return _=!1,s.control});UG.defaultProps=op.defaultProps;var vD=UG;var Xt,jG=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error(\"TextDecoder not available\")}};typeof TextDecoder<\"u\"&&jG.decode();var rw=null;function qy(){return(rw===null||rw.byteLength===0)&&(rw=new Uint8Array(Xt.memory.buffer)),rw}function Gu(e,t){return e=e>>>0,jG.decode(qy().subarray(e,e+t))}var lp=new Array(128).fill(void 0);lp.push(void 0,null,!0,!1);var aw=lp.length;function Ar(e){aw===lp.length&&lp.push(lp.length+1);let t=aw;return aw=lp[t],lp[t]=e,t}function $e(e){return lp[e]}function Act(e){e<132||(lp[e]=aw,aw=e)}function Kn(e){let t=$e(e);return Act(e),t}var jh=0,rP=typeof TextEncoder<\"u\"?new TextEncoder(\"utf-8\"):{encode:()=>{throw Error(\"TextEncoder not available\")}},mct=typeof rP.encodeInto==\"function\"?function(e,t){return rP.encodeInto(e,t)}:function(e,t){let r=rP.encode(e);return t.set(r),{read:e.length,written:r.length}};function iw(e,t,r){if(r===void 0){let c=rP.encode(e),d=t(c.length,1)>>>0;return qy().subarray(d,d+c.length).set(c),jh=c.length,d}let i=e.length,n=t(i,1)>>>0,s=qy(),o=0;for(;o127)break;s[n+o]=c}if(o!==i){o!==0&&(e=e.slice(o)),n=r(n,i,i=o+e.length*3,1)>>>0;let c=qy().subarray(n+o,n+i),d=mct(e,c);o+=d.written}return jh=o,n}function xD(e){return e==null}var nw=null;function nr(){return(nw===null||nw.byteLength===0)&&(nw=new Int32Array(Xt.memory.buffer)),nw}function bD(e){let t=typeof e;if(t==\"number\"||t==\"boolean\"||e==null)return`${e}`;if(t==\"string\")return`\"${e}\"`;if(t==\"symbol\"){let n=e.description;return n==null?\"Symbol\":`Symbol(${n})`}if(t==\"function\"){let n=e.name;return typeof n==\"string\"&&n.length>0?`Function(${n})`:\"Function\"}if(Array.isArray(e)){let n=e.length,s=\"[\";n>0&&(s+=bD(e[0]));for(let o=1;o1)i=r[1];else return toString.call(e);if(i==\"Object\")try{return\"Object(\"+JSON.stringify(e)+\")\"}catch{return\"Object\"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:i}function gct(e,t,r,i){let n={a:e,b:t,cnt:1,dtor:r},s=(...o)=>{n.cnt++;let c=n.a;n.a=0;try{return i(c,n.b,...o)}finally{--n.cnt===0?Xt.__wbindgen_export_2.get(n.dtor)(c,n.b):n.a=c}};return s.original=n,s}function _ct(e,t,r){Xt._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h896648893be04d51(e,t,Ar(r))}function wD(e,t){let r=t(e.length*1,1)>>>0;return qy().set(e,r/1),jh=e.length,r}function GG(e){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16),s=wD(e,Xt.__wbindgen_malloc),o=jh;Xt.readParquet(n,s,o);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return kD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}function WG(e,t){return e=e>>>0,qy().subarray(e/1,e/1+t)}var sw=null;function VG(){return(sw===null||sw.byteLength===0)&&(sw=new BigInt64Array(Xt.memory.buffer)),sw}var ow=null;function yct(){return(ow===null||ow.byteLength===0)&&(ow=new BigUint64Array(Xt.memory.buffer)),ow}function vct(e,t){return e=e>>>0,yct().subarray(e/8,e/8+t)}function ko(e,t){try{return e.apply(this,t)}catch(r){Xt.__wbindgen_exn_store(Ar(r))}}function xct(e,t,r,i){Xt.wasm_bindgen__convert__closures__invoke2_mut__h02232cd008ae4dfe(e,t,Ar(r),Ar(i))}var cNt=Object.freeze({UNCOMPRESSED:0,0:\"UNCOMPRESSED\",SNAPPY:1,1:\"SNAPPY\",GZIP:2,2:\"GZIP\",BROTLI:3,3:\"BROTLI\",LZ4:4,4:\"LZ4\",ZSTD:5,5:\"ZSTD\",LZ4_RAW:6,6:\"LZ4_RAW\"}),uNt=Object.freeze({PLAIN:0,0:\"PLAIN\",PLAIN_DICTIONARY:1,1:\"PLAIN_DICTIONARY\",RLE:2,2:\"RLE\",BIT_PACKED:3,3:\"BIT_PACKED\",DELTA_BINARY_PACKED:4,4:\"DELTA_BINARY_PACKED\",DELTA_LENGTH_BYTE_ARRAY:5,5:\"DELTA_LENGTH_BYTE_ARRAY\",DELTA_BYTE_ARRAY:6,6:\"DELTA_BYTE_ARRAY\",RLE_DICTIONARY:7,7:\"RLE_DICTIONARY\",BYTE_STREAM_SPLIT:8,8:\"BYTE_STREAM_SPLIT\"}),hNt=Object.freeze({V1:0,0:\"V1\",V2:1,1:\"V2\"}),SD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_arrowschema_free(t)}copy(){let t=Xt.arrowschema_copy(this.__wbg_ptr);return e.__wrap(t)}},TD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_columnchunkmetadata_free(t)}filePath(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_filePath(i,this.__wbg_ptr);var t=nr()[i/4+0],r=nr()[i/4+1];let n;return t!==0&&(n=Gu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}fileOffset(){return Xt.columnchunkmetadata_fileOffset(this.__wbg_ptr)}pathInSchema(){let t,r;try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_pathInSchema(s,this.__wbg_ptr);var i=nr()[s/4+0],n=nr()[s/4+1];return t=i,r=n,Gu(i,n)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}statistics_exist(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_statistics_exist(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return t!==0}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMinValue(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMinValue(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return Kn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsMaxValue(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsMaxValue(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return Kn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}getStatisticsNullCount(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_getStatisticsNullCount(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return Kn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numValues(){return Xt.columnchunkmetadata_numValues(this.__wbg_ptr)}compressedSize(){return Xt.columnchunkmetadata_compressedSize(this.__wbg_ptr)}uncompressedSize(){return Xt.columnchunkmetadata_uncompressedSize(this.__wbg_ptr)}dataPageOffset(){return Xt.columnchunkmetadata_dataPageOffset(this.__wbg_ptr)}hasIndexPage(){return Xt.columnchunkmetadata_hasIndexPage(this.__wbg_ptr)!==0}indexPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_indexPageOffset(i,this.__wbg_ptr);var t=nr()[i/4+0],r=VG()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}dictionaryPageOffset(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_dictionaryPageOffset(i,this.__wbg_ptr);var t=nr()[i/4+0],r=VG()[i/8+1];return t===0?void 0:r}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numColumnEncodings(){return Xt.columnchunkmetadata_numColumnEncodings(this.__wbg_ptr)>>>0}byteRange(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.columnchunkmetadata_byteRange(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=vct(t,r).slice();return Xt.__wbindgen_free(t,r*8),i}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},MD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_datatype_free(t)}},iP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffirecordbatch_free(t)}arrayAddr(){return Xt.ffirecordbatch_arrayAddr(this.__wbg_ptr)}schemaAddr(){return Xt.ffirecordbatch_schemaAddr(this.__wbg_ptr)}},nP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_ffitable_free(t)}numBatches(){return Xt.ffitable_numBatches(this.__wbg_ptr)>>>0}schemaAddr(){return Xt.ffitable_schemaAddr(this.__wbg_ptr)}arrayAddr(t){return Xt.ffitable_arrayAddr(this.__wbg_ptr,t)}drop(){let t=this.__destroy_into_raw();Xt.ffitable_drop(t)}};var ED=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_filemetadata_free(t)}copy(){let t=Xt.filemetadata_copy(this.__wbg_ptr);return e.__wrap(t)}version(){return Xt.filemetadata_version(this.__wbg_ptr)}numRows(){return Xt.filemetadata_numRows(this.__wbg_ptr)>>>0}createdBy(){try{let i=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_createdBy(i,this.__wbg_ptr);var t=nr()[i/4+0],r=nr()[i/4+1];let n;return t!==0&&(n=Gu(t,r).slice(),Xt.__wbindgen_free(t,r*1)),n}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}numRowGroups(){return Xt.filemetadata_numRowGroups(this.__wbg_ptr)>>>0}rowGroup(t){let r=Xt.filemetadata_rowGroup(this.__wbg_ptr,t);return CD.__wrap(r)}schema(){let t=Xt.filemetadata_schema(this.__wbg_ptr);return LD.__wrap(t)}keyValueMetadata(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_keyValueMetadata(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return Kn(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}arrowSchema(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.filemetadata_arrowSchema(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return SD.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}};var PD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_intounderlyingsource_free(t)}pull(t){let r=Xt.intounderlyingsource_pull(this.__wbg_ptr,Ar(t));return Kn(r)}cancel(){let t=this.__destroy_into_raw();Xt.intounderlyingsource_cancel(t)}};var ID=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_queuingstrategy_free(t)}get highWaterMark(){return Xt.queuingstrategy_highWaterMark(this.__wbg_ptr)}};var sP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_recordbatch_free(t)}get numRows(){return Xt.recordbatch_numRows(this.__wbg_ptr)>>>0}get numColumns(){return Xt.recordbatch_numColumns(this.__wbg_ptr)>>>0}get schema(){let t=Xt.recordbatch_schema(this.__wbg_ptr);return oP.__wrap(t)}column(t){let r=Xt.recordbatch_column(this.__wbg_ptr,t);return r===0?void 0:aP.__wrap(r)}column_by_name(t){let r=iw(t,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),i=jh,n=Xt.recordbatch_column_by_name(this.__wbg_ptr,r,i);return n===0?void 0:aP.__wrap(n)}toFFI(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_toFFI(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return iP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let n=this.__destroy_into_raw(),s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoFFI(s,n);var t=nr()[s/4+0],r=nr()[s/4+1],i=nr()[s/4+2];if(i)throw Kn(r);return iP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.recordbatch_intoIPCStream(c,o);var t=nr()[c/4+0],r=nr()[c/4+1],i=nr()[c/4+2],n=nr()[c/4+3];if(n)throw Kn(i);var s=WG(t,r).slice();return Xt.__wbindgen_free(t,r*1),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},CD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_rowgroupmetadata_free(t)}numRows(){return Xt.rowgroupmetadata_numRows(this.__wbg_ptr)>>>0}numColumns(){return Xt.rowgroupmetadata_numColumns(this.__wbg_ptr)>>>0}column(t){let r=Xt.rowgroupmetadata_column(this.__wbg_ptr,t);return TD.__wrap(r)}totalByteSize(){return Xt.rowgroupmetadata_totalByteSize(this.__wbg_ptr)>>>0}compressedSize(){return Xt.rowgroupmetadata_compressedSize(this.__wbg_ptr)>>>0}},oP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schema_free(t)}},LD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_schemadescriptor_free(t)}name(){let t,r;try{let s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.schemadescriptor_name(s,this.__wbg_ptr);var i=nr()[s/4+0],n=nr()[s/4+1];return t=i,r=n,Gu(i,n)}finally{Xt.__wbindgen_add_to_stack_pointer(16),Xt.__wbindgen_free(t,r,1)}}numColumns(){return Xt.schemadescriptor_numColumns(this.__wbg_ptr)>>>0}numFields(){return Xt.schemadescriptor_numFields(this.__wbg_ptr)>>>0}},kD=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_table_free(t)}get schema(){let t=Xt.table_schema(this.__wbg_ptr);return oP.__wrap(t)}recordBatch(t){let r=Xt.table_recordBatch(this.__wbg_ptr,t);return r===0?void 0:sP.__wrap(r)}get numBatches(){return Xt.table_numBatches(this.__wbg_ptr)>>>0}toFFI(){try{let n=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_toFFI(n,this.__wbg_ptr);var t=nr()[n/4+0],r=nr()[n/4+1],i=nr()[n/4+2];if(i)throw Kn(r);return nP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoFFI(){try{let n=this.__destroy_into_raw(),s=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoFFI(s,n);var t=nr()[s/4+0],r=nr()[s/4+1],i=nr()[s/4+2];if(i)throw Kn(r);return nP.__wrap(t)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}intoIPCStream(){try{let o=this.__destroy_into_raw(),c=Xt.__wbindgen_add_to_stack_pointer(-16);Xt.table_intoIPCStream(c,o);var t=nr()[c/4+0],r=nr()[c/4+1],i=nr()[c/4+2],n=nr()[c/4+3];if(n)throw Kn(i);var s=WG(t,r).slice();return Xt.__wbindgen_free(t,r*1),s}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCFile(t){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16),o=wD(t,Xt.__wbindgen_malloc),c=jh;Xt.table_fromIPCFile(s,o,c);var r=nr()[s/4+0],i=nr()[s/4+1],n=nr()[s/4+2];if(n)throw Kn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}static fromIPCStream(t){try{let s=Xt.__wbindgen_add_to_stack_pointer(-16),o=wD(t,Xt.__wbindgen_malloc),c=jh;Xt.table_fromIPCStream(s,o,c);var r=nr()[s/4+0],i=nr()[s/4+1],n=nr()[s/4+2];if(n)throw Kn(i);return e.__wrap(r)}finally{Xt.__wbindgen_add_to_stack_pointer(16)}}},aP=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){let t=this.__destroy_into_raw();Xt.__wbg_vector_free(t)}data_type(){let t=Xt.vector_data_type(this.__wbg_ptr);return MD.__wrap(t)}};async function bct(e,t){if(typeof Response==\"function\"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==\"function\")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get(\"Content-Type\")!=\"application/wasm\")console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",i);else throw i}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function wct(){let e={};return e.wbg={},e.wbg.__wbg_filemetadata_new=function(t){let r=ED.__wrap(t);return Ar(r)},e.wbg.__wbindgen_error_new=function(t,r){let i=new Error(Gu(t,r));return Ar(i)},e.wbg.__wbindgen_object_drop_ref=function(t){Kn(t)},e.wbg.__wbindgen_string_new=function(t,r){let i=Gu(t,r);return Ar(i)},e.wbg.__wbindgen_bigint_from_i64=function(t){return Ar(t)},e.wbg.__wbindgen_number_new=function(t){return Ar(t)},e.wbg.__wbindgen_object_clone_ref=function(t){let r=$e(t);return Ar(r)},e.wbg.__wbg_fetch_b5d6bebed1e6c2d2=function(t){let r=fetch($e(t));return Ar(r)},e.wbg.__wbg_newwithsource_620c192b0682807b=function(t,r){let i=new ReadableStream(PD.__wrap(t),ID.__wrap(r));return Ar(i)},e.wbg.__wbg_close_e9110ca16e2567db=function(t){$e(t).close()},e.wbg.__wbg_enqueue_d71a1a518e21f5c3=function(t,r){$e(t).enqueue($e(r))},e.wbg.__wbg_byobRequest_08c18cee35def1f4=function(t){let r=$e(t).byobRequest;return xD(r)?0:Ar(r)},e.wbg.__wbg_close_da7e6fb9d9851e5a=function(t){$e(t).close()},e.wbg.__wbg_view_231340b0dd8a2484=function(t){let r=$e(t).view;return xD(r)?0:Ar(r)},e.wbg.__wbg_respond_8fadc5f5c9d95422=function(t,r){$e(t).respond(r>>>0)},e.wbg.__wbg_buffer_4e79326814bdd393=function(t){let r=$e(t).buffer;return Ar(r)},e.wbg.__wbg_byteOffset_b69b0a07afccce19=function(t){return $e(t).byteOffset},e.wbg.__wbg_byteLength_5299848ed3264181=function(t){return $e(t).byteLength},e.wbg.__wbindgen_string_get=function(t,r){let i=$e(r),n=typeof i==\"string\"?i:void 0;var s=xD(n)?0:iw(n,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),o=jh;nr()[t/4+1]=o,nr()[t/4+0]=s},e.wbg.__wbg_set_bd72c078edfa51ad=function(t,r,i){$e(t)[Kn(r)]=Kn(i)},e.wbg.__wbg_String_4370c5505c674d30=function(t,r){let i=String($e(r)),n=iw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),s=jh;nr()[t/4+1]=s,nr()[t/4+0]=n},e.wbg.__wbindgen_cb_drop=function(t){let r=Kn(t).original;return r.cnt--==1?(r.a=0,!0):!1},e.wbg.__wbg_recordbatch_new=function(t){let r=sP.__wrap(t);return Ar(r)},e.wbg.__wbg_randomFillSync_dc1e9a60c158336d=function(){return ko(function(t,r){$e(t).randomFillSync(Kn(r))},arguments)},e.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab=function(){return ko(function(t,r){$e(t).getRandomValues($e(r))},arguments)},e.wbg.__wbg_crypto_c48a774b022d20ac=function(t){let r=$e(t).crypto;return Ar(r)},e.wbg.__wbindgen_is_object=function(t){let r=$e(t);return typeof r==\"object\"&&r!==null},e.wbg.__wbg_process_298734cf255a885d=function(t){let r=$e(t).process;return Ar(r)},e.wbg.__wbg_versions_e2e78e134e3e5d01=function(t){let r=$e(t).versions;return Ar(r)},e.wbg.__wbg_node_1cd7a5d853dbea79=function(t){let r=$e(t).node;return Ar(r)},e.wbg.__wbindgen_is_string=function(t){return typeof $e(t)==\"string\"},e.wbg.__wbg_require_8f08ceecec0f4fee=function(){return ko(function(){let t=module.require;return Ar(t)},arguments)},e.wbg.__wbg_msCrypto_bcb970640f50a1e8=function(t){let r=$e(t).msCrypto;return Ar(r)},e.wbg.__wbg_signal_4bd18fb489af2d4c=function(t){let r=$e(t).signal;return Ar(r)},e.wbg.__wbg_new_55c9955722952374=function(){return ko(function(){let t=new AbortController;return Ar(t)},arguments)},e.wbg.__wbg_abort_654b796176d117aa=function(t){$e(t).abort()},e.wbg.__wbg_new_1eead62f64ca15ce=function(){return ko(function(){let t=new Headers;return Ar(t)},arguments)},e.wbg.__wbg_append_fda9e3432e3e88da=function(){return ko(function(t,r,i,n,s){$e(t).append(Gu(r,i),Gu(n,s))},arguments)},e.wbg.__wbg_fetch_8eaf01857a5bb21f=function(t,r){let i=$e(t).fetch($e(r));return Ar(i)},e.wbg.__wbg_instanceof_Response_fc4327dbfcdf5ced=function(t){let r;try{r=$e(t)instanceof Response}catch{r=!1}return r},e.wbg.__wbg_url_8503de97f69da463=function(t,r){let i=$e(r).url,n=iw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),s=jh;nr()[t/4+1]=s,nr()[t/4+0]=n},e.wbg.__wbg_status_ac85a3142a84caa2=function(t){return $e(t).status},e.wbg.__wbg_headers_b70de86b8e989bc0=function(t){let r=$e(t).headers;return Ar(r)},e.wbg.__wbg_arrayBuffer_288fb3538806e85c=function(){return ko(function(t){let r=$e(t).arrayBuffer();return Ar(r)},arguments)},e.wbg.__wbg_newwithstrandinit_cad5cd6038c7ff5d=function(){return ko(function(t,r,i){let n=new Request(Gu(t,r),$e(i));return Ar(n)},arguments)},e.wbg.__wbindgen_is_function=function(t){return typeof $e(t)==\"function\"},e.wbg.__wbg_newnoargs_581967eacc0e2604=function(t,r){let i=new Function(Gu(t,r));return Ar(i)},e.wbg.__wbg_new_56693dbed0c32988=function(){return Ar(new Map)},e.wbg.__wbg_next_526fc47e980da008=function(t){let r=$e(t).next;return Ar(r)},e.wbg.__wbg_next_ddb3312ca1c4e32a=function(){return ko(function(t){let r=$e(t).next();return Ar(r)},arguments)},e.wbg.__wbg_done_5c1f01fb660d73b5=function(t){return $e(t).done},e.wbg.__wbg_value_1695675138684bd5=function(t){let r=$e(t).value;return Ar(r)},e.wbg.__wbg_iterator_97f0c81209c6c35a=function(){return Ar(Symbol.iterator)},e.wbg.__wbg_get_97b561fb56f034b5=function(){return ko(function(t,r){let i=Reflect.get($e(t),$e(r));return Ar(i)},arguments)},e.wbg.__wbg_call_cb65541d95d71282=function(){return ko(function(t,r){let i=$e(t).call($e(r));return Ar(i)},arguments)},e.wbg.__wbg_new_b51585de1b234aff=function(){let t=new Object;return Ar(t)},e.wbg.__wbg_self_1ff1d729e9aae938=function(){return ko(function(){let t=self.self;return Ar(t)},arguments)},e.wbg.__wbg_window_5f4faef6c12b79ec=function(){return ko(function(){let t=window.window;return Ar(t)},arguments)},e.wbg.__wbg_globalThis_1d39714405582d3c=function(){return ko(function(){let t=globalThis.globalThis;return Ar(t)},arguments)},e.wbg.__wbg_global_651f05c6a0944d1c=function(){return ko(function(){let t=global.global;return Ar(t)},arguments)},e.wbg.__wbindgen_is_undefined=function(t){return $e(t)===void 0},e.wbg.__wbg_new_d258248ed531ff54=function(t,r){let i=new Error(Gu(t,r));return Ar(i)},e.wbg.__wbg_call_01734de55d61e11d=function(){return ko(function(t,r,i){let n=$e(t).call($e(r),$e(i));return Ar(n)},arguments)},e.wbg.__wbg_set_bedc3d02d0f05eb0=function(t,r,i){let n=$e(t).set($e(r),$e(i));return Ar(n)},e.wbg.__wbg_new_43f1b47c28813cbd=function(t,r){try{var i={a:t,b:r},n=(o,c)=>{let d=i.a;i.a=0;try{return xct(d,i.b,o,c)}finally{i.a=d}};let s=new Promise(n);return Ar(s)}finally{i.a=i.b=0}},e.wbg.__wbg_resolve_53698b95aaf7fcf8=function(t){let r=Promise.resolve($e(t));return Ar(r)},e.wbg.__wbg_then_f7e06ee3c11698eb=function(t,r){let i=$e(t).then($e(r));return Ar(i)},e.wbg.__wbg_then_b2267541e2a73865=function(t,r,i){let n=$e(t).then($e(r),$e(i));return Ar(n)},e.wbg.__wbg_buffer_085ec1f694018c4f=function(t){let r=$e(t).buffer;return Ar(r)},e.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(t,r,i){let n=new Uint8Array($e(t),r>>>0,i>>>0);return Ar(n)},e.wbg.__wbg_new_8125e318e6245eed=function(t){let r=new Uint8Array($e(t));return Ar(r)},e.wbg.__wbg_set_5cf90238115182c3=function(t,r,i){$e(t).set($e(r),i>>>0)},e.wbg.__wbg_length_72e2208bbc0efc61=function(t){return $e(t).length},e.wbg.__wbg_newwithlength_e5d69174d6984cd7=function(t){let r=new Uint8Array(t>>>0);return Ar(r)},e.wbg.__wbg_subarray_13db269f57aa838d=function(t,r,i){let n=$e(t).subarray(r>>>0,i>>>0);return Ar(n)},e.wbg.__wbg_stringify_e25465938f3f611f=function(){return ko(function(t){let r=JSON.stringify($e(t));return Ar(r)},arguments)},e.wbg.__wbg_has_c5fcd020291e56b8=function(){return ko(function(t,r){return Reflect.has($e(t),$e(r))},arguments)},e.wbg.__wbg_set_092e06b0f9d71865=function(){return ko(function(t,r,i){return Reflect.set($e(t),$e(r),$e(i))},arguments)},e.wbg.__wbindgen_debug_string=function(t,r){let i=bD($e(r)),n=iw(i,Xt.__wbindgen_malloc,Xt.__wbindgen_realloc),s=jh;nr()[t/4+1]=s,nr()[t/4+0]=n},e.wbg.__wbindgen_throw=function(t,r){throw new Error(Gu(t,r))},e.wbg.__wbindgen_memory=function(){let t=Xt.memory;return Ar(t)},e.wbg.__wbindgen_function_table=function(){let t=Xt.__wbindgen_export_2;return Ar(t)},e.wbg.__wbindgen_closure_wrapper1527=function(t,r,i){let n=gct(t,r,304,_ct);return Ar(n)},e}function Sct(e,t){return Xt=e.exports,HG.__wbindgen_wasm_module=t,sw=null,ow=null,nw=null,rw=null,Xt}async function HG(e){if(Xt!==void 0)return Xt;typeof e>\"u\"&&(e=new URL(\"arrow2_bg.wasm\",import.meta.url));let t=wct();(typeof e==\"string\"||typeof Request==\"function\"&&e instanceof Request||typeof URL==\"function\"&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:i}=await bct(await e,t);return Sct(r,i)}var qG=HG;function YG(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var n=0,i=Object.getOwnPropertySymbols(e);n=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function ri(e){return this instanceof ri?(this.v=e,this):new ri(e)}function Jc(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var i=r.apply(e,t||[]),n,s=[];return n={},o(\"next\"),o(\"throw\"),o(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function o(R){i[R]&&(n[R]=function(N){return new Promise(function(j,Y){s.push([R,N,j,Y])>1||c(R,N)})})}function c(R,N){try{d(i[R](N))}catch(j){I(s[0][3],j)}}function d(R){R.value instanceof ri?Promise.resolve(R.value.v).then(_,w):I(s[0][2],R)}function _(R){c(\"next\",R)}function w(R){c(\"throw\",R)}function I(R,N){R(N),s.shift(),s.length&&c(s[0][0],s[0][1])}}function Zy(e){var t,r;return t={},i(\"next\"),i(\"throw\",function(n){throw n}),i(\"return\"),t[Symbol.iterator]=function(){return this},t;function i(n,s){t[n]=e[n]?function(o){return(r=!r)?{value:ri(e[n](o)),done:!1}:s?s(o):o}:s}}function Gh(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof ZG==\"function\"?ZG(e):e[Symbol.iterator](),r={},i(\"next\"),i(\"throw\"),i(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function i(s){r[s]=e[s]&&function(o){return new Promise(function(c,d){o=e[s](o),n(c,d,o.done,o.value)})}}function n(s,o,c,d){Promise.resolve(d).then(function(_){s({value:_,done:c})},o)}}var zD={};AA(zD,{compareArrayLike:()=>FD,joinUint8Arrays:()=>eu,memcpy:()=>uw,rebaseValueOffsets:()=>AP,toArrayBufferView:()=>ui,toArrayBufferViewAsyncIterator:()=>Hh,toArrayBufferViewIterator:()=>sd,toBigInt64Array:()=>pP,toBigUint64Array:()=>Rct,toFloat32Array:()=>Dct,toFloat32ArrayAsyncIterator:()=>Qct,toFloat32ArrayIterator:()=>jct,toFloat64Array:()=>Oct,toFloat64ArrayAsyncIterator:()=>Xct,toFloat64ArrayIterator:()=>Gct,toInt16Array:()=>Cct,toInt16ArrayAsyncIterator:()=>qct,toInt16ArrayIterator:()=>zct,toInt32Array:()=>ug,toInt32ArrayAsyncIterator:()=>Zct,toInt32ArrayIterator:()=>Nct,toInt8Array:()=>Ict,toInt8ArrayAsyncIterator:()=>Hct,toInt8ArrayIterator:()=>Fct,toUint16Array:()=>Lct,toUint16ArrayAsyncIterator:()=>Yct,toUint16ArrayIterator:()=>Uct,toUint32Array:()=>kct,toUint32ArrayAsyncIterator:()=>$ct,toUint32ArrayIterator:()=>Vct,toUint8Array:()=>Br,toUint8ArrayAsyncIterator:()=>BD,toUint8ArrayIterator:()=>OD,toUint8ClampedArray:()=>Bct,toUint8ClampedArrayAsyncIterator:()=>Kct,toUint8ClampedArrayIterator:()=>Wct});var Tct=new TextDecoder(\"utf-8\"),lw=e=>Tct.decode(e),Mct=new TextEncoder,nd=e=>Mct.encode(e);var Ect=e=>typeof e==\"number\",$G=e=>typeof e==\"boolean\",Ro=e=>typeof e==\"function\",El=e=>e!=null&&Object(e)===e,tu=e=>El(e)&&Ro(e.then);var Wh=e=>El(e)&&Ro(e[Symbol.iterator]),Wu=e=>El(e)&&Ro(e[Symbol.asyncIterator]),lP=e=>El(e)&&El(e.schema);var cP=e=>El(e)&&\"done\"in e&&\"value\"in e;var uP=e=>El(e)&&Ro(e.stat)&&Ect(e.fd);var hP=e=>El(e)&&cw(e.body),fP=e=>\"_getDOMStream\"in e&&\"_getNodeStream\"in e,QG=e=>El(e)&&Ro(e.abort)&&Ro(e.getWriter)&&!fP(e),cw=e=>El(e)&&Ro(e.cancel)&&Ro(e.getReader)&&!fP(e),XG=e=>El(e)&&Ro(e.end)&&Ro(e.write)&&$G(e.writable)&&!fP(e),dP=e=>El(e)&&Ro(e.read)&&Ro(e.pipe)&&$G(e.readable)&&!fP(e),KG=e=>El(e)&&Ro(e.clear)&&Ro(e.bytes)&&Ro(e.position)&&Ro(e.setPosition)&&Ro(e.capacity)&&Ro(e.getBufferIdentifier)&&Ro(e.createLong);var DD=typeof SharedArrayBuffer<\"u\"?SharedArrayBuffer:ArrayBuffer;function Pct(e){let t=e[0]?[e[0]]:[],r,i,n,s;for(let o,c,d=0,_=0,w=e.length;++dw+I.byteLength,0),n,s,o,c=0,d=-1,_=Math.min(t||Number.POSITIVE_INFINITY,i);for(let w=r.length;++dui(Int8Array,e),Cct=e=>ui(Int16Array,e),ug=e=>ui(Int32Array,e),pP=e=>ui(BigInt64Array,e),Br=e=>ui(Uint8Array,e),Lct=e=>ui(Uint16Array,e),kct=e=>ui(Uint32Array,e),Rct=e=>ui(BigUint64Array,e),Dct=e=>ui(Float32Array,e),Oct=e=>ui(Float64Array,e),Bct=e=>ui(Uint8ClampedArray,e),RD=e=>(e.next(),e);function*sd(e,t){let r=function*(n){yield n},i=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DD?r(t):Wh(t)?t:r(t);return yield*RD(function*(n){let s=null;do s=n.next(yield ui(e,s));while(!s.done)}(i[Symbol.iterator]())),new e}var Fct=e=>sd(Int8Array,e),zct=e=>sd(Int16Array,e),Nct=e=>sd(Int32Array,e),OD=e=>sd(Uint8Array,e),Uct=e=>sd(Uint16Array,e),Vct=e=>sd(Uint32Array,e),jct=e=>sd(Float32Array,e),Gct=e=>sd(Float64Array,e),Wct=e=>sd(Uint8ClampedArray,e);function Hh(e,t){return Jc(this,arguments,function*(){if(tu(t))return yield ri(yield ri(yield*Zy(Gh(Hh(e,yield ri(t))))));let i=function(o){return Jc(this,arguments,function*(){yield yield ri(yield ri(o))})},n=function(o){return Jc(this,arguments,function*(){yield ri(yield*Zy(Gh(RD(function*(c){let d=null;do d=c.next(yield d?.value);while(!d.done)}(o[Symbol.iterator]())))))})},s=typeof t==\"string\"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DD?i(t):Wh(t)?n(t):Wu(t)?t:i(t);return yield ri(yield*Zy(Gh(RD(function(o){return Jc(this,arguments,function*(){let c=null;do c=yield ri(o.next(yield yield ri(ui(e,c))));while(!c.done)})}(s[Symbol.asyncIterator]()))))),yield ri(new e)})}var Hct=e=>Hh(Int8Array,e),qct=e=>Hh(Int16Array,e),Zct=e=>Hh(Int32Array,e),BD=e=>Hh(Uint8Array,e),Yct=e=>Hh(Uint16Array,e),$ct=e=>Hh(Uint32Array,e),Qct=e=>Hh(Float32Array,e),Xct=e=>Hh(Float64Array,e),Kct=e=>Hh(Uint8ClampedArray,e);function AP(e,t,r){if(e!==0){r=r.slice(0,t);for(let i=-1,n=r.length;++i0)do if(e[r]!==t[r])return!1;while(++r(e.next(),e);function*Jct(e){let t,r=!1,i=[],n,s,o,c=0;function d(){return s===\"peek\"?eu(i,o)[0]:([n,i,c]=eu(i,o),n)}({cmd:s,size:o}=(yield null)||{cmd:\"read\",size:0});let _=OD(e)[Symbol.iterator]();try{do if({done:t,value:n}=Number.isNaN(o-c)?_.next():_.next(o-c),!t&&n.byteLength>0&&(i.push(n),c+=n.byteLength),t||o<=c)do({cmd:s,size:o}=yield d());while(o0&&(n.push(s),d+=s.byteLength),r||c<=d)do({cmd:o,size:c}=yield yield ri(_()));while(c0&&(n.push(Br(s)),d+=s.byteLength),r||c<=d)do({cmd:o,size:c}=yield yield ri(_()));while(c{})}get closed(){return this.reader?this.reader.closed.catch(()=>{}):Promise.resolve()}releaseLock(){this.reader&&this.reader.releaseLock(),this.reader=null}cancel(t){return rr(this,void 0,void 0,function*(){let{reader:r,source:i}=this;r&&(yield r.cancel(t).catch(()=>{})),i&&i.locked&&this.releaseLock()})}read(t){return rr(this,void 0,void 0,function*(){if(t===0)return{done:this.reader==null,value:new Uint8Array(0)};let r=yield this.reader.read();return!r.done&&(r.value=Br(r)),r})}},ND=(e,t)=>{let r=n=>i([t,n]),i;return[t,r,new Promise(n=>(i=n)&&e.once(t,r))]};function rut(e){return Jc(this,arguments,function*(){let r=[],i=\"error\",n=!1,s=null,o,c,d=0,_=[],w;function I(){return o===\"peek\"?eu(_,c)[0]:([w,_,d]=eu(_,c),w)}if({cmd:o,size:c}=(yield yield ri(null))||{cmd:\"read\",size:0},e.isTTY)return yield yield ri(new Uint8Array(0)),yield ri(null);try{r[0]=ND(e,\"end\"),r[1]=ND(e,\"error\");do{if(r[2]=ND(e,\"readable\"),[i,s]=yield ri(Promise.race(r.map(N=>N[2]))),i===\"error\")break;if((n=i===\"end\")||(Number.isFinite(c-d)?(w=Br(e.read(c-d)),w.byteLength0&&(_.push(w),d+=w.byteLength)),n||c<=d)do({cmd:o,size:c}=yield yield ri(I()));while(c{for(let[Z,K]of N)e.off(Z,K);try{let Z=e.destroy;Z&&Z.call(e,j),j=void 0}catch(Z){j=Z||j}finally{j!=null?it(j):Y()}})}})}var $i;(function(e){e[e.V1=0]=\"V1\",e[e.V2=1]=\"V2\",e[e.V3=2]=\"V3\",e[e.V4=3]=\"V4\",e[e.V5=4]=\"V5\"})($i||($i={}));var yn;(function(e){e[e.Sparse=0]=\"Sparse\",e[e.Dense=1]=\"Dense\"})(yn||(yn={}));var Gi;(function(e){e[e.HALF=0]=\"HALF\",e[e.SINGLE=1]=\"SINGLE\",e[e.DOUBLE=2]=\"DOUBLE\"})(Gi||(Gi={}));var to;(function(e){e[e.DAY=0]=\"DAY\",e[e.MILLISECOND=1]=\"MILLISECOND\"})(to||(to={}));var dr;(function(e){e[e.SECOND=0]=\"SECOND\",e[e.MILLISECOND=1]=\"MILLISECOND\",e[e.MICROSECOND=2]=\"MICROSECOND\",e[e.NANOSECOND=3]=\"NANOSECOND\"})(dr||(dr={}));var Do;(function(e){e[e.YEAR_MONTH=0]=\"YEAR_MONTH\",e[e.DAY_TIME=1]=\"DAY_TIME\",e[e.MONTH_DAY_NANO=2]=\"MONTH_DAY_NANO\"})(Do||(Do={}));var od=new Int32Array(2),gP=new Float32Array(od.buffer),_P=new Float64Array(od.buffer),Yy=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var hw;(function(e){e[e.UTF8_BYTES=1]=\"UTF8_BYTES\",e[e.UTF16_STRING=2]=\"UTF16_STRING\"})(hw||(hw={}));var ru=class e{constructor(t){this.bytes_=t,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new e(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(t){this.position_=t}capacity(){return this.bytes_.length}readInt8(t){return this.readUint8(t)<<24>>24}readUint8(t){return this.bytes_[t]}readInt16(t){return this.readUint16(t)<<16>>16}readUint16(t){return this.bytes_[t]|this.bytes_[t+1]<<8}readInt32(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24}readUint32(t){return this.readInt32(t)>>>0}readInt64(t){return BigInt.asIntN(64,BigInt(this.readUint32(t))+(BigInt(this.readUint32(t+4))<>8}writeUint16(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8}writeInt32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeUint32(t,r){this.bytes_[t]=r,this.bytes_[t+1]=r>>8,this.bytes_[t+2]=r>>16,this.bytes_[t+3]=r>>24}writeInt64(t,r){this.writeInt32(t,Number(BigInt.asIntN(32,r))),this.writeInt32(t+4,Number(BigInt.asIntN(32,r>>BigInt(32))))}writeUint64(t,r){this.writeUint32(t,Number(BigInt.asUintN(32,r))),this.writeUint32(t+4,Number(BigInt.asUintN(32,r>>BigInt(32))))}writeFloat32(t,r){gP[0]=r,this.writeInt32(t,od[0])}writeFloat64(t,r){_P[0]=r,this.writeInt32(t,od[Yy?0:1]),this.writeInt32(t+4,od[Yy?1:0])}getBufferIdentifier(){if(this.bytes_.lengththis.minalign&&(this.minalign=t);let i=~(this.bb.capacity()-this.space+r)+1&t-1;for(;this.space=0&&this.vtable[r]==0;r--);let i=r+1;for(;r>=0;r--)this.addInt16(this.vtable[r]!=0?t-this.vtable[r]:0);let n=2;this.addInt16(t-this.object_start);let s=(i+n)*2;this.addInt16(s);let o=0,c=this.space;t:for(r=0;r=0;o--)this.writeInt8(s.charCodeAt(o))}this.prep(this.minalign,4+n),this.addOffset(t),n&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(t,r){this.finish(t,r,!0)}requiredField(t,r){let i=this.bb.capacity()-t,n=i-this.bb.readInt32(i);if(!(r=0;i--)t.addInt32(r[i]);return t.endVector()}static startTypeIdsVector(t,r){t.startVector(4,r,4)}static endUnion(t){return t.endObject()}static createUnion(t,r,i){return e.startUnion(t),e.addMode(t,r),e.addTypeIds(t,i),e.endUnion(t)}};var bw=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsUtf8(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUtf8(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static startUtf8(t){t.startObject(0)}static endUtf8(t){return t.endObject()}static createUtf8(t){return e.startUtf8(t),e.endUtf8(t)}};var vn;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.FloatingPoint=3]=\"FloatingPoint\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct_=13]=\"Struct_\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.LargeList=21]=\"LargeList\",e[e.RunEndEncoded=22]=\"RunEndEncoded\"})(vn||(vn={}));var rl=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsField(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsField(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}name(t){let r=this.bb.__offset(this.bb_pos,4);return r?this.bb.__string(this.bb_pos+r,t):null}nullable(){let t=this.bb.__offset(this.bb_pos,6);return t?!!this.bb.readInt8(this.bb_pos+t):!1}typeType(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint8(this.bb_pos+t):vn.NONE}type(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.__union(t,this.bb_pos+r):null}dictionary(t){let r=this.bb.__offset(this.bb_pos,12);return r?(t||new ad).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}children(t,r){let i=this.bb.__offset(this.bb_pos,14);return i?(r||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}childrenLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,16);return i?(r||new Oo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}static startField(t){t.startObject(7)}static addName(t,r){t.addFieldOffset(0,r,0)}static addNullable(t,r){t.addFieldInt8(1,+r,0)}static addTypeType(t,r){t.addFieldInt8(2,r,vn.NONE)}static addType(t,r){t.addFieldOffset(3,r,0)}static addDictionary(t,r){t.addFieldOffset(4,r,0)}static addChildren(t,r){t.addFieldOffset(5,r,0)}static createChildrenVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startChildrenVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(6,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endField(t){return t.endObject()}};var ec=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsSchema(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSchema(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}endianness(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):rm.Little}fields(t,r){let i=this.bb.__offset(this.bb_pos,6);return i?(r||new rl).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}fieldsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new Oo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}features(t){let r=this.bb.__offset(this.bb_pos,10);return r?this.bb.readInt64(this.bb.__vector(this.bb_pos+r)+t*8):BigInt(0)}featuresLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSchema(t){t.startObject(4)}static addEndianness(t,r){t.addFieldInt16(0,r,rm.Little)}static addFields(t,r){t.addFieldOffset(1,r,0)}static createFieldsVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startFieldsVector(t,r){t.startVector(4,r,4)}static addCustomMetadata(t,r){t.addFieldOffset(2,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static addFeatures(t,r){t.addFieldOffset(3,r,0)}static createFeaturesVector(t,r){t.startVector(8,r.length,8);for(let i=r.length-1;i>=0;i--)t.addInt64(r[i]);return t.endVector()}static startFeaturesVector(t,r){t.startVector(8,r,8)}static endSchema(t){return t.endObject()}static finishSchemaBuffer(t,r){t.finish(r)}static finishSizePrefixedSchemaBuffer(t,r){t.finish(r,void 0,!0)}static createSchema(t,r,i,n,s){return e.startSchema(t),e.addEndianness(t,r),e.addFields(t,i),e.addCustomMetadata(t,n),e.addFeatures(t,s),e.endSchema(t)}};var Ai;(function(e){e[e.NONE=0]=\"NONE\",e[e.Schema=1]=\"Schema\",e[e.DictionaryBatch=2]=\"DictionaryBatch\",e[e.RecordBatch=3]=\"RecordBatch\",e[e.Tensor=4]=\"Tensor\",e[e.SparseTensor=5]=\"SparseTensor\"})(Ai||(Ai={}));var Lt;(function(e){e[e.NONE=0]=\"NONE\",e[e.Null=1]=\"Null\",e[e.Int=2]=\"Int\",e[e.Float=3]=\"Float\",e[e.Binary=4]=\"Binary\",e[e.Utf8=5]=\"Utf8\",e[e.Bool=6]=\"Bool\",e[e.Decimal=7]=\"Decimal\",e[e.Date=8]=\"Date\",e[e.Time=9]=\"Time\",e[e.Timestamp=10]=\"Timestamp\",e[e.Interval=11]=\"Interval\",e[e.List=12]=\"List\",e[e.Struct=13]=\"Struct\",e[e.Union=14]=\"Union\",e[e.FixedSizeBinary=15]=\"FixedSizeBinary\",e[e.FixedSizeList=16]=\"FixedSizeList\",e[e.Map=17]=\"Map\",e[e.Duration=18]=\"Duration\",e[e.LargeBinary=19]=\"LargeBinary\",e[e.LargeUtf8=20]=\"LargeUtf8\",e[e.Dictionary=-1]=\"Dictionary\",e[e.Int8=-2]=\"Int8\",e[e.Int16=-3]=\"Int16\",e[e.Int32=-4]=\"Int32\",e[e.Int64=-5]=\"Int64\",e[e.Uint8=-6]=\"Uint8\",e[e.Uint16=-7]=\"Uint16\",e[e.Uint32=-8]=\"Uint32\",e[e.Uint64=-9]=\"Uint64\",e[e.Float16=-10]=\"Float16\",e[e.Float32=-11]=\"Float32\",e[e.Float64=-12]=\"Float64\",e[e.DateDay=-13]=\"DateDay\",e[e.DateMillisecond=-14]=\"DateMillisecond\",e[e.TimestampSecond=-15]=\"TimestampSecond\",e[e.TimestampMillisecond=-16]=\"TimestampMillisecond\",e[e.TimestampMicrosecond=-17]=\"TimestampMicrosecond\",e[e.TimestampNanosecond=-18]=\"TimestampNanosecond\",e[e.TimeSecond=-19]=\"TimeSecond\",e[e.TimeMillisecond=-20]=\"TimeMillisecond\",e[e.TimeMicrosecond=-21]=\"TimeMicrosecond\",e[e.TimeNanosecond=-22]=\"TimeNanosecond\",e[e.DenseUnion=-23]=\"DenseUnion\",e[e.SparseUnion=-24]=\"SparseUnion\",e[e.IntervalDayTime=-25]=\"IntervalDayTime\",e[e.IntervalYearMonth=-26]=\"IntervalYearMonth\",e[e.DurationSecond=-27]=\"DurationSecond\",e[e.DurationMillisecond=-28]=\"DurationMillisecond\",e[e.DurationMicrosecond=-29]=\"DurationMicrosecond\",e[e.DurationNanosecond=-30]=\"DurationNanosecond\"})(Lt||(Lt={}));var vi;(function(e){e[e.OFFSET=0]=\"OFFSET\",e[e.DATA=1]=\"DATA\",e[e.VALIDITY=2]=\"VALIDITY\",e[e.TYPE=3]=\"TYPE\"})(vi||(vi={}));var sO={};AA(sO,{clampIndex:()=>Gut,clampRange:()=>Ow,createElementComparator:()=>fm});var VD={};AA(VD,{valueToString:()=>$h});function $h(e){if(e===null)return\"null\";if(e===void 0)return\"undefined\";switch(typeof e){case\"number\":return`${e}`;case\"bigint\":return`${e}`;case\"string\":return`\"${e}\"`}return typeof e[Symbol.toPrimitive]==\"function\"?e[Symbol.toPrimitive](\"string\"):ArrayBuffer.isView(e)?e instanceof BigInt64Array||e instanceof BigUint64Array?`[${[...e].map(t=>$h(t))}]`:`[${e}]`:ArrayBuffer.isView(e)?`[${e}]`:JSON.stringify(e,(t,r)=>typeof r==\"bigint\"?`${r}`:r)}var GD={};AA(GD,{BN:()=>Sw,bigNumToBigInt:()=>e9,bigNumToString:()=>Jy,isArrowBigNumSymbol:()=>JG});var JG=Symbol.for(\"isArrowBigNum\");function Qh(e,...t){return t.length===0?Object.setPrototypeOf(ui(this.TypedArray,e),this.constructor.prototype):Object.setPrototypeOf(new this.TypedArray(e,...t),this.constructor.prototype)}Qh.prototype[JG]=!0;Qh.prototype.toJSON=function(){return`\"${Jy(this)}\"`};Qh.prototype.valueOf=function(){return t9(this)};Qh.prototype.toString=function(){return Jy(this)};Qh.prototype[Symbol.toPrimitive]=function(e=\"default\"){switch(e){case\"number\":return t9(this);case\"string\":return Jy(this);case\"default\":return e9(this)}return Jy(this)};function Xy(...e){return Qh.apply(this,e)}function Ky(...e){return Qh.apply(this,e)}function ww(...e){return Qh.apply(this,e)}Object.setPrototypeOf(Xy.prototype,Object.create(Int32Array.prototype));Object.setPrototypeOf(Ky.prototype,Object.create(Uint32Array.prototype));Object.setPrototypeOf(ww.prototype,Object.create(Uint32Array.prototype));Object.assign(Xy.prototype,Qh.prototype,{constructor:Xy,signed:!0,TypedArray:Int32Array,BigIntArray:BigInt64Array});Object.assign(Ky.prototype,Qh.prototype,{constructor:Ky,signed:!1,TypedArray:Uint32Array,BigIntArray:BigUint64Array});Object.assign(ww.prototype,Qh.prototype,{constructor:ww,signed:!0,TypedArray:Uint32Array,BigIntArray:BigUint64Array});function t9(e){let{buffer:t,byteOffset:r,length:i,signed:n}=e,s=new BigUint64Array(t,r,i),o=n&&s.at(-1)&BigInt(1)<{if(e.byteLength===8)return`${new e.BigIntArray(e.buffer,e.byteOffset,1)[0]}`;if(!e.signed)return jD(e);let t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(new Int16Array([t.at(-1)])[0]>=0)return jD(e);t=t.slice();let i=1;for(let s=0;se.byteLength===8?new e.BigIntArray(e.buffer,e.byteOffset,1)[0]:Jy(e);function jD(e){let t=\"\",r=new Uint32Array(2),i=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),n=new Uint32Array((i=new Uint16Array(i).reverse()).buffer),s=-1,o=i.length-1;do{for(r[0]=i[s=0];sNumber.MAX_SAFE_INTEGER))throw new TypeError(`${e} is not safe to convert to a number.`);return Number(e)}var r9,i9,n9,s9,o9,a9,l9,c9,u9,h9,f9,d9,p9,A9,m9,g9,_9,y9,v9,x9,b9,w9,Ne=class e{static isNull(t){return t?.typeId===Lt.Null}static isInt(t){return t?.typeId===Lt.Int}static isFloat(t){return t?.typeId===Lt.Float}static isBinary(t){return t?.typeId===Lt.Binary}static isLargeBinary(t){return t?.typeId===Lt.LargeBinary}static isUtf8(t){return t?.typeId===Lt.Utf8}static isLargeUtf8(t){return t?.typeId===Lt.LargeUtf8}static isBool(t){return t?.typeId===Lt.Bool}static isDecimal(t){return t?.typeId===Lt.Decimal}static isDate(t){return t?.typeId===Lt.Date}static isTime(t){return t?.typeId===Lt.Time}static isTimestamp(t){return t?.typeId===Lt.Timestamp}static isInterval(t){return t?.typeId===Lt.Interval}static isDuration(t){return t?.typeId===Lt.Duration}static isList(t){return t?.typeId===Lt.List}static isStruct(t){return t?.typeId===Lt.Struct}static isUnion(t){return t?.typeId===Lt.Union}static isFixedSizeBinary(t){return t?.typeId===Lt.FixedSizeBinary}static isFixedSizeList(t){return t?.typeId===Lt.FixedSizeList}static isMap(t){return t?.typeId===Lt.Map}static isDictionary(t){return t?.typeId===Lt.Dictionary}static isDenseUnion(t){return e.isUnion(t)&&t.mode===yn.Dense}static isSparseUnion(t){return e.isUnion(t)&&t.mode===yn.Sparse}constructor(t){this.typeId=t}};r9=Symbol.toStringTag;Ne[r9]=(e=>(e.children=null,e.ArrayType=Array,e.OffsetArrayType=Int32Array,e[Symbol.toStringTag]=\"DataType\"))(Ne.prototype);var ia=class extends Ne{constructor(){super(Lt.Null)}toString(){return\"Null\"}};i9=Symbol.toStringTag;ia[i9]=(e=>e[Symbol.toStringTag]=\"Null\")(ia.prototype);var os=class extends Ne{constructor(t,r){super(Lt.Int),this.isSigned=t,this.bitWidth=r}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?BigInt64Array:BigUint64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?\"I\":\"Ui\"}nt${this.bitWidth}`}};n9=Symbol.toStringTag;os[n9]=(e=>(e.isSigned=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Int\"))(os.prototype);var Tw=class extends os{constructor(){super(!0,8)}get ArrayType(){return Int8Array}},Mw=class extends os{constructor(){super(!0,16)}get ArrayType(){return Int16Array}},Xh=class extends os{constructor(){super(!0,32)}get ArrayType(){return Int32Array}},Ew=class extends os{constructor(){super(!0,64)}get ArrayType(){return BigInt64Array}},Pw=class extends os{constructor(){super(!1,8)}get ArrayType(){return Uint8Array}},Iw=class extends os{constructor(){super(!1,16)}get ArrayType(){return Uint16Array}},Cw=class extends os{constructor(){super(!1,32)}get ArrayType(){return Uint32Array}},Lw=class extends os{constructor(){super(!1,64)}get ArrayType(){return BigUint64Array}};Object.defineProperty(Tw.prototype,\"ArrayType\",{value:Int8Array});Object.defineProperty(Mw.prototype,\"ArrayType\",{value:Int16Array});Object.defineProperty(Xh.prototype,\"ArrayType\",{value:Int32Array});Object.defineProperty(Ew.prototype,\"ArrayType\",{value:BigInt64Array});Object.defineProperty(Pw.prototype,\"ArrayType\",{value:Uint8Array});Object.defineProperty(Iw.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Cw.prototype,\"ArrayType\",{value:Uint32Array});Object.defineProperty(Lw.prototype,\"ArrayType\",{value:BigUint64Array});var fo=class extends Ne{constructor(t){super(Lt.Float),this.precision=t}get ArrayType(){switch(this.precision){case Gi.HALF:return Uint16Array;case Gi.SINGLE:return Float32Array;case Gi.DOUBLE:return Float64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`Float${this.precision<<5||16}`}};s9=Symbol.toStringTag;fo[s9]=(e=>(e.precision=null,e[Symbol.toStringTag]=\"Float\"))(fo.prototype);var kw=class extends fo{constructor(){super(Gi.HALF)}},Rw=class extends fo{constructor(){super(Gi.SINGLE)}},tv=class extends fo{constructor(){super(Gi.DOUBLE)}};Object.defineProperty(kw.prototype,\"ArrayType\",{value:Uint16Array});Object.defineProperty(Rw.prototype,\"ArrayType\",{value:Float32Array});Object.defineProperty(tv.prototype,\"ArrayType\",{value:Float64Array});var qu=class extends Ne{constructor(){super(Lt.Binary)}toString(){return\"Binary\"}};o9=Symbol.toStringTag;qu[o9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Binary\"))(qu.prototype);var cd=class extends Ne{constructor(){super(Lt.LargeBinary)}toString(){return\"LargeBinary\"}};a9=Symbol.toStringTag;cd[a9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeBinary\"))(cd.prototype);var Zu=class extends Ne{constructor(){super(Lt.Utf8)}toString(){return\"Utf8\"}};l9=Symbol.toStringTag;Zu[l9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Utf8\"))(Zu.prototype);var ud=class extends Ne{constructor(){super(Lt.LargeUtf8)}toString(){return\"LargeUtf8\"}};c9=Symbol.toStringTag;ud[c9]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=\"LargeUtf8\"))(ud.prototype);var rc=class extends Ne{constructor(){super(Lt.Bool)}toString(){return\"Bool\"}};u9=Symbol.toStringTag;rc[u9]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"Bool\"))(rc.prototype);var Yu=class extends Ne{constructor(t,r,i=128){super(Lt.Decimal),this.scale=t,this.precision=r,this.bitWidth=i}toString(){return`Decimal[${this.precision}e${this.scale>0?\"+\":\"\"}${this.scale}]`}};h9=Symbol.toStringTag;Yu[h9]=(e=>(e.scale=null,e.precision=null,e.ArrayType=Uint32Array,e[Symbol.toStringTag]=\"Decimal\"))(Yu.prototype);var $u=class extends Ne{constructor(t){super(Lt.Date),this.unit=t}toString(){return`Date${(this.unit+1)*32}<${to[this.unit]}>`}};f9=Symbol.toStringTag;$u[f9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Date\"))($u.prototype);var ic=class extends Ne{constructor(t,r){super(Lt.Time),this.unit=t,this.bitWidth=r}toString(){return`Time${this.bitWidth}<${dr[this.unit]}>`}get ArrayType(){switch(this.bitWidth){case 32:return Int32Array;case 64:return BigInt64Array}throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}};d9=Symbol.toStringTag;ic[d9]=(e=>(e.unit=null,e.bitWidth=null,e[Symbol.toStringTag]=\"Time\"))(ic.prototype);var Qu=class extends Ne{constructor(t,r){super(Lt.Timestamp),this.unit=t,this.timezone=r}toString(){return`Timestamp<${dr[this.unit]}${this.timezone?`, ${this.timezone}`:\"\"}>`}};p9=Symbol.toStringTag;Qu[p9]=(e=>(e.unit=null,e.timezone=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Timestamp\"))(Qu.prototype);var Xu=class extends Ne{constructor(t){super(Lt.Interval),this.unit=t}toString(){return`Interval<${Do[this.unit]}>`}};A9=Symbol.toStringTag;Xu[A9]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=\"Interval\"))(Xu.prototype);var Ku=class extends Ne{constructor(t){super(Lt.Duration),this.unit=t}toString(){return`Duration<${dr[this.unit]}>`}};m9=Symbol.toStringTag;Ku[m9]=(e=>(e.unit=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=\"Duration\"))(Ku.prototype);var nc=class extends Ne{constructor(t){super(Lt.List),this.children=[t]}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}};g9=Symbol.toStringTag;nc[g9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"List\"))(nc.prototype);var sn=class extends Ne{constructor(t){super(Lt.Struct),this.children=t}toString(){return`Struct<{${this.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};_9=Symbol.toStringTag;sn[_9]=(e=>(e.children=null,e[Symbol.toStringTag]=\"Struct\"))(sn.prototype);var sc=class extends Ne{constructor(t,r,i){super(Lt.Union),this.mode=t,this.children=i,this.typeIds=r=Int32Array.from(r),this.typeIdToChildIndex=r.reduce((n,s,o)=>(n[s]=o)&&n||n,Object.create(null))}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(t=>`${t.type}`).join(\" | \")}>`}};y9=Symbol.toStringTag;sc[y9]=(e=>(e.mode=null,e.typeIds=null,e.children=null,e.typeIdToChildIndex=null,e.ArrayType=Int8Array,e[Symbol.toStringTag]=\"Union\"))(sc.prototype);var Ju=class extends Ne{constructor(t){super(Lt.FixedSizeBinary),this.byteWidth=t}toString(){return`FixedSizeBinary[${this.byteWidth}]`}};v9=Symbol.toStringTag;Ju[v9]=(e=>(e.byteWidth=null,e.ArrayType=Uint8Array,e[Symbol.toStringTag]=\"FixedSizeBinary\"))(Ju.prototype);var Pl=class extends Ne{constructor(t,r){super(Lt.FixedSizeList),this.listSize=t,this.children=[r]}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}};x9=Symbol.toStringTag;Pl[x9]=(e=>(e.children=null,e.listSize=null,e[Symbol.toStringTag]=\"FixedSizeList\"))(Pl.prototype);var oc=class extends Ne{constructor(t,r=!1){var i,n,s;if(super(Lt.Map),this.children=[t],this.keysSorted=r,t&&(t.name=\"entries\",!((i=t?.type)===null||i===void 0)&&i.children)){let o=(n=t?.type)===null||n===void 0?void 0:n.children[0];o&&(o.name=\"key\");let c=(s=t?.type)===null||s===void 0?void 0:s.children[1];c&&(c.name=\"value\")}}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}get childType(){return this.children[0].type}toString(){return`Map<{${this.children[0].type.children.map(t=>`${t.name}:${t.type}`).join(\", \")}}>`}};b9=Symbol.toStringTag;oc[b9]=(e=>(e.children=null,e.keysSorted=null,e[Symbol.toStringTag]=\"Map_\"))(oc.prototype);var iut=(e=>()=>++e)(-1),ac=class extends Ne{constructor(t,r,i,n){super(Lt.Dictionary),this.indices=r,this.dictionary=t,this.isOrdered=n||!1,this.id=i==null?iut():ms(i)}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}};w9=Symbol.toStringTag;ac[w9]=(e=>(e.id=null,e.indices=null,e.isOrdered=null,e.dictionary=null,e[Symbol.toStringTag]=\"Dictionary\"))(ac.prototype);function nu(e){let t=e;switch(e.typeId){case Lt.Decimal:return e.bitWidth/32;case Lt.Timestamp:return 2;case Lt.Date:return 1+t.unit;case Lt.Interval:return 1+t.unit;case Lt.FixedSizeList:return t.listSize;case Lt.FixedSizeBinary:return t.byteWidth;default:return 1}}var Tr=class{visitMany(t,...r){return t.map((i,n)=>this.visit(i,...r.map(s=>s[n])))}visit(...t){return this.getVisitFn(t[0],!1).apply(this,t)}getVisitFn(t,r=!0){return nut(this,t,r)}getVisitFnByTypeId(t,r=!0){return ev(this,t,r)}visitNull(t,...r){return null}visitBool(t,...r){return null}visitInt(t,...r){return null}visitFloat(t,...r){return null}visitUtf8(t,...r){return null}visitLargeUtf8(t,...r){return null}visitBinary(t,...r){return null}visitLargeBinary(t,...r){return null}visitFixedSizeBinary(t,...r){return null}visitDate(t,...r){return null}visitTimestamp(t,...r){return null}visitTime(t,...r){return null}visitDecimal(t,...r){return null}visitList(t,...r){return null}visitStruct(t,...r){return null}visitUnion(t,...r){return null}visitDictionary(t,...r){return null}visitInterval(t,...r){return null}visitDuration(t,...r){return null}visitFixedSizeList(t,...r){return null}visitMap(t,...r){return null}};function nut(e,t,r=!0){return typeof t==\"number\"?ev(e,t,r):typeof t==\"string\"&&t in Lt?ev(e,Lt[t],r):t&&t instanceof Ne?ev(e,S9(t),r):t?.type&&t.type instanceof Ne?ev(e,S9(t.type),r):ev(e,Lt.NONE,r)}function ev(e,t,r=!0){let i=null;switch(t){case Lt.Null:i=e.visitNull;break;case Lt.Bool:i=e.visitBool;break;case Lt.Int:i=e.visitInt;break;case Lt.Int8:i=e.visitInt8||e.visitInt;break;case Lt.Int16:i=e.visitInt16||e.visitInt;break;case Lt.Int32:i=e.visitInt32||e.visitInt;break;case Lt.Int64:i=e.visitInt64||e.visitInt;break;case Lt.Uint8:i=e.visitUint8||e.visitInt;break;case Lt.Uint16:i=e.visitUint16||e.visitInt;break;case Lt.Uint32:i=e.visitUint32||e.visitInt;break;case Lt.Uint64:i=e.visitUint64||e.visitInt;break;case Lt.Float:i=e.visitFloat;break;case Lt.Float16:i=e.visitFloat16||e.visitFloat;break;case Lt.Float32:i=e.visitFloat32||e.visitFloat;break;case Lt.Float64:i=e.visitFloat64||e.visitFloat;break;case Lt.Utf8:i=e.visitUtf8;break;case Lt.LargeUtf8:i=e.visitLargeUtf8;break;case Lt.Binary:i=e.visitBinary;break;case Lt.LargeBinary:i=e.visitLargeBinary;break;case Lt.FixedSizeBinary:i=e.visitFixedSizeBinary;break;case Lt.Date:i=e.visitDate;break;case Lt.DateDay:i=e.visitDateDay||e.visitDate;break;case Lt.DateMillisecond:i=e.visitDateMillisecond||e.visitDate;break;case Lt.Timestamp:i=e.visitTimestamp;break;case Lt.TimestampSecond:i=e.visitTimestampSecond||e.visitTimestamp;break;case Lt.TimestampMillisecond:i=e.visitTimestampMillisecond||e.visitTimestamp;break;case Lt.TimestampMicrosecond:i=e.visitTimestampMicrosecond||e.visitTimestamp;break;case Lt.TimestampNanosecond:i=e.visitTimestampNanosecond||e.visitTimestamp;break;case Lt.Time:i=e.visitTime;break;case Lt.TimeSecond:i=e.visitTimeSecond||e.visitTime;break;case Lt.TimeMillisecond:i=e.visitTimeMillisecond||e.visitTime;break;case Lt.TimeMicrosecond:i=e.visitTimeMicrosecond||e.visitTime;break;case Lt.TimeNanosecond:i=e.visitTimeNanosecond||e.visitTime;break;case Lt.Decimal:i=e.visitDecimal;break;case Lt.List:i=e.visitList;break;case Lt.Struct:i=e.visitStruct;break;case Lt.Union:i=e.visitUnion;break;case Lt.DenseUnion:i=e.visitDenseUnion||e.visitUnion;break;case Lt.SparseUnion:i=e.visitSparseUnion||e.visitUnion;break;case Lt.Dictionary:i=e.visitDictionary;break;case Lt.Interval:i=e.visitInterval;break;case Lt.IntervalDayTime:i=e.visitIntervalDayTime||e.visitInterval;break;case Lt.IntervalYearMonth:i=e.visitIntervalYearMonth||e.visitInterval;break;case Lt.Duration:i=e.visitDuration;break;case Lt.DurationSecond:i=e.visitDurationSecond||e.visitDuration;break;case Lt.DurationMillisecond:i=e.visitDurationMillisecond||e.visitDuration;break;case Lt.DurationMicrosecond:i=e.visitDurationMicrosecond||e.visitDuration;break;case Lt.DurationNanosecond:i=e.visitDurationNanosecond||e.visitDuration;break;case Lt.FixedSizeList:i=e.visitFixedSizeList;break;case Lt.Map:i=e.visitMap;break}if(typeof i==\"function\")return i;if(!r)return()=>null;throw new Error(`Unrecognized type '${Lt[t]}'`)}function S9(e){switch(e.typeId){case Lt.Null:return Lt.Null;case Lt.Int:{let{bitWidth:t,isSigned:r}=e;switch(t){case 8:return r?Lt.Int8:Lt.Uint8;case 16:return r?Lt.Int16:Lt.Uint16;case 32:return r?Lt.Int32:Lt.Uint32;case 64:return r?Lt.Int64:Lt.Uint64}return Lt.Int}case Lt.Float:switch(e.precision){case Gi.HALF:return Lt.Float16;case Gi.SINGLE:return Lt.Float32;case Gi.DOUBLE:return Lt.Float64}return Lt.Float;case Lt.Binary:return Lt.Binary;case Lt.LargeBinary:return Lt.LargeBinary;case Lt.Utf8:return Lt.Utf8;case Lt.LargeUtf8:return Lt.LargeUtf8;case Lt.Bool:return Lt.Bool;case Lt.Decimal:return Lt.Decimal;case Lt.Time:switch(e.unit){case dr.SECOND:return Lt.TimeSecond;case dr.MILLISECOND:return Lt.TimeMillisecond;case dr.MICROSECOND:return Lt.TimeMicrosecond;case dr.NANOSECOND:return Lt.TimeNanosecond}return Lt.Time;case Lt.Timestamp:switch(e.unit){case dr.SECOND:return Lt.TimestampSecond;case dr.MILLISECOND:return Lt.TimestampMillisecond;case dr.MICROSECOND:return Lt.TimestampMicrosecond;case dr.NANOSECOND:return Lt.TimestampNanosecond}return Lt.Timestamp;case Lt.Date:switch(e.unit){case to.DAY:return Lt.DateDay;case to.MILLISECOND:return Lt.DateMillisecond}return Lt.Date;case Lt.Interval:switch(e.unit){case Do.DAY_TIME:return Lt.IntervalDayTime;case Do.YEAR_MONTH:return Lt.IntervalYearMonth}return Lt.Interval;case Lt.Duration:switch(e.unit){case dr.SECOND:return Lt.DurationSecond;case dr.MILLISECOND:return Lt.DurationMillisecond;case dr.MICROSECOND:return Lt.DurationMicrosecond;case dr.NANOSECOND:return Lt.DurationNanosecond}return Lt.Duration;case Lt.Map:return Lt.Map;case Lt.List:return Lt.List;case Lt.Struct:return Lt.Struct;case Lt.Union:switch(e.mode){case yn.Dense:return Lt.DenseUnion;case yn.Sparse:return Lt.SparseUnion}return Lt.Union;case Lt.FixedSizeBinary:return Lt.FixedSizeBinary;case Lt.FixedSizeList:return Lt.FixedSizeList;case Lt.Dictionary:return Lt.Dictionary}throw new Error(`Unrecognized type '${Lt[e.typeId]}'`)}Tr.prototype.visitInt8=null;Tr.prototype.visitInt16=null;Tr.prototype.visitInt32=null;Tr.prototype.visitInt64=null;Tr.prototype.visitUint8=null;Tr.prototype.visitUint16=null;Tr.prototype.visitUint32=null;Tr.prototype.visitUint64=null;Tr.prototype.visitFloat16=null;Tr.prototype.visitFloat32=null;Tr.prototype.visitFloat64=null;Tr.prototype.visitDateDay=null;Tr.prototype.visitDateMillisecond=null;Tr.prototype.visitTimestampSecond=null;Tr.prototype.visitTimestampMillisecond=null;Tr.prototype.visitTimestampMicrosecond=null;Tr.prototype.visitTimestampNanosecond=null;Tr.prototype.visitTimeSecond=null;Tr.prototype.visitTimeMillisecond=null;Tr.prototype.visitTimeMicrosecond=null;Tr.prototype.visitTimeNanosecond=null;Tr.prototype.visitDenseUnion=null;Tr.prototype.visitSparseUnion=null;Tr.prototype.visitIntervalDayTime=null;Tr.prototype.visitIntervalYearMonth=null;Tr.prototype.visitDuration=null;Tr.prototype.visitDurationSecond=null;Tr.prototype.visitDurationMillisecond=null;Tr.prototype.visitDurationMicrosecond=null;Tr.prototype.visitDurationNanosecond=null;var WD={};AA(WD,{float64ToUint16:()=>Dw,uint16ToFloat64:()=>xP});var T9=new Float64Array(1),rv=new Uint32Array(T9.buffer);function xP(e){let t=(e&31744)>>10,r=(e&1023)/1024,i=Math.pow(-1,(e&32768)>>15);switch(t){case 31:return i*(r?Number.NaN:1/0);case 0:return i*(r?6103515625e-14*r:0)}return i*Math.pow(2,t-15)*(1+r)}function Dw(e){if(e!==e)return 32256;T9[0]=e;let t=(rv[1]&2147483648)>>16&65535,r=rv[1]&2146435072,i=0;return r>=1089470464?rv[0]>0?r=31744:(r=(r&2080374784)>>16,i=(rv[1]&1048575)>>10):r<=1056964608?(i=1048576+(rv[1]&1048575),i=1048576+(i<<(r>>20)-998)>>21,r=0):(r=r-1056964608>>10,i=(rv[1]&1048575)+512>>10),t|r|i&65535}var Or=class extends Tr{};function Gr(e){return(t,r,i)=>{if(t.setValid(r,i!=null))return e(t,r,i)}}var sut=(e,t,r)=>{e[t]=Math.trunc(r/864e5)},HD=(e,t,r)=>{e[t]=Math.trunc(r%4294967296),e[t+1]=Math.trunc(r/4294967296)},out=(e,t,r)=>{e[t]=Math.trunc(r*1e3%4294967296),e[t+1]=Math.trunc(r*1e3/4294967296)},aut=(e,t,r)=>{e[t]=Math.trunc(r*1e6%4294967296),e[t+1]=Math.trunc(r*1e6/4294967296)},M9=(e,t,r,i)=>{if(r+1{let n=e+r;i?t[n>>3]|=1<>3]&=~(1<{e[t]=r},qD=({values:e},t,r)=>{e[t]=r},E9=({values:e},t,r)=>{e[t]=Dw(r)},cut=(e,t,r)=>{switch(e.type.precision){case Gi.HALF:return E9(e,t,r);case Gi.SINGLE:case Gi.DOUBLE:return qD(e,t,r)}},bP=({values:e},t,r)=>{sut(e,t,r.valueOf())},wP=({values:e},t,r)=>{HD(e,t*2,r.valueOf())},ZD=({stride:e,values:t},r,i)=>{t.set(i.subarray(0,e),e*r)},P9=({values:e,valueOffsets:t},r,i)=>M9(e,t,r,i),I9=({values:e,valueOffsets:t},r,i)=>M9(e,t,r,nd(i)),YD=(e,t,r)=>{e.type.unit===to.DAY?bP(e,t,r):wP(e,t,r)},SP=({values:e},t,r)=>HD(e,t*2,r/1e3),TP=({values:e},t,r)=>HD(e,t*2,r),MP=({values:e},t,r)=>out(e,t*2,r),EP=({values:e},t,r)=>aut(e,t*2,r),$D=(e,t,r)=>{switch(e.type.unit){case dr.SECOND:return SP(e,t,r);case dr.MILLISECOND:return TP(e,t,r);case dr.MICROSECOND:return MP(e,t,r);case dr.NANOSECOND:return EP(e,t,r)}},PP=({values:e},t,r)=>{e[t]=r},IP=({values:e},t,r)=>{e[t]=r},CP=({values:e},t,r)=>{e[t]=r},LP=({values:e},t,r)=>{e[t]=r},QD=(e,t,r)=>{switch(e.type.unit){case dr.SECOND:return PP(e,t,r);case dr.MILLISECOND:return IP(e,t,r);case dr.MICROSECOND:return CP(e,t,r);case dr.NANOSECOND:return LP(e,t,r)}},XD=({values:e,stride:t},r,i)=>{e.set(i.subarray(0,t),t*r)},uut=(e,t,r)=>{let i=e.children[0],n=e.valueOffsets,s=wa.getVisitFn(i);if(Array.isArray(r))for(let o=-1,c=n[t],d=n[t+1];c{let i=e.children[0],{valueOffsets:n}=e,s=wa.getVisitFn(i),{[t]:o,[t+1]:c}=n,d=r instanceof Map?r.entries():Object.entries(r);for(let _ of d)if(s(i,o,_),++o>=c)break},fut=(e,t)=>(r,i,n,s)=>i&&r(i,e,t[s]),dut=(e,t)=>(r,i,n,s)=>i&&r(i,e,t.get(s)),put=(e,t)=>(r,i,n,s)=>i&&r(i,e,t.get(n.name)),Aut=(e,t)=>(r,i,n,s)=>i&&r(i,e,t[n.name]),mut=(e,t,r)=>{let i=e.type.children.map(s=>wa.getVisitFn(s.type)),n=r instanceof Map?put(t,r):r instanceof xr?dut(t,r):Array.isArray(r)?fut(t,r):Aut(t,r);e.type.children.forEach((s,o)=>n(i[o],e.children[o],s,o))},gut=(e,t,r)=>{e.type.mode===yn.Dense?C9(e,t,r):L9(e,t,r)},C9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],n=e.children[i];wa.visit(n,e.valueOffsets[t],r)},L9=(e,t,r)=>{let i=e.type.typeIdToChildIndex[e.typeIds[t]],n=e.children[i];wa.visit(n,t,r)},_ut=(e,t,r)=>{var i;(i=e.dictionary)===null||i===void 0||i.set(e.values[t],r)},KD=(e,t,r)=>{e.type.unit===Do.DAY_TIME?kP(e,t,r):RP(e,t,r)},kP=({values:e},t,r)=>{e.set(r.subarray(0,2),2*t)},RP=({values:e},t,r)=>{e[t]=r[0]*12+r[1]%12},DP=({values:e},t,r)=>{e[t]=r},OP=({values:e},t,r)=>{e[t]=r},BP=({values:e},t,r)=>{e[t]=r},FP=({values:e},t,r)=>{e[t]=r},JD=(e,t,r)=>{switch(e.type.unit){case dr.SECOND:return DP(e,t,r);case dr.MILLISECOND:return OP(e,t,r);case dr.MICROSECOND:return BP(e,t,r);case dr.NANOSECOND:return FP(e,t,r)}},yut=(e,t,r)=>{let{stride:i}=e,n=e.children[0],s=wa.getVisitFn(n);if(Array.isArray(r))for(let o=-1,c=t*i;++o`${$h(t)}: ${$h(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}[Symbol.iterator](){return new tO(this[Kh],this[iv])}},tO=class{constructor(t,r){this.childIndex=0,this.children=t.children,this.rowIndex=r,this.childFields=t.type.children,this.numChildren=this.childFields.length}[Symbol.iterator](){return this}next(){let t=this.childIndex;return tr.name)}has(t,r){return t[Kh].type.children.findIndex(i=>i.name===r)!==-1}getOwnPropertyDescriptor(t,r){if(t[Kh].type.children.findIndex(i=>i.name===r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[Kh].type.children.findIndex(n=>n.name===r);if(i!==-1){let n=po.visit(t[Kh].children[i],t[iv]);return Reflect.set(t,r,n),n}}set(t,r,i){let n=t[Kh].type.children.findIndex(s=>s.name===r);return n!==-1?(wa.visit(t[Kh].children[n],t[iv],i),Reflect.set(t,r,i)):Reflect.has(t,r)||typeof r==\"symbol\"?Reflect.set(t,r,i):!1}};var Mr=class extends Tr{};function Ur(e){return(t,r)=>t.getValid(r)?e(t,r):null}var vut=(e,t)=>864e5*e[t],rO=(e,t)=>4294967296*e[t+1]+(e[t]>>>0),xut=(e,t)=>4294967296*(e[t+1]/1e3)+(e[t]>>>0)/1e3,but=(e,t)=>4294967296*(e[t+1]/1e6)+(e[t]>>>0)/1e6,k9=e=>new Date(e),wut=(e,t)=>k9(vut(e,t)),Sut=(e,t)=>k9(rO(e,t)),Tut=(e,t)=>null,R9=(e,t,r)=>{if(r+1>=t.length)return null;let i=ms(t[r]),n=ms(t[r+1]);return e.subarray(i,n)},Mut=({offset:e,values:t},r)=>{let i=e+r;return(t[i>>3]&1<wut(e,t),O9=({values:e},t)=>Sut(e,t*2),hm=({stride:e,values:t},r)=>t[e*r],Eut=({stride:e,values:t},r)=>xP(t[e*r]),B9=({values:e},t)=>e[t],Put=({stride:e,values:t},r)=>t.subarray(e*r,e*(r+1)),F9=({values:e,valueOffsets:t},r)=>R9(e,t,r),z9=({values:e,valueOffsets:t},r)=>{let i=R9(e,t,r);return i!==null?lw(i):null},Iut=({values:e},t)=>e[t],Cut=({type:e,values:t},r)=>e.precision!==Gi.HALF?t[r]:xP(t[r]),Lut=(e,t)=>e.type.unit===to.DAY?D9(e,t):O9(e,t),N9=({values:e},t)=>1e3*rO(e,t*2),U9=({values:e},t)=>rO(e,t*2),V9=({values:e},t)=>xut(e,t*2),j9=({values:e},t)=>but(e,t*2),kut=(e,t)=>{switch(e.type.unit){case dr.SECOND:return N9(e,t);case dr.MILLISECOND:return U9(e,t);case dr.MICROSECOND:return V9(e,t);case dr.NANOSECOND:return j9(e,t)}},G9=({values:e},t)=>e[t],W9=({values:e},t)=>e[t],H9=({values:e},t)=>e[t],q9=({values:e},t)=>e[t],Rut=(e,t)=>{switch(e.type.unit){case dr.SECOND:return G9(e,t);case dr.MILLISECOND:return W9(e,t);case dr.MICROSECOND:return H9(e,t);case dr.NANOSECOND:return q9(e,t)}},Dut=({values:e,stride:t},r)=>Sw.decimal(e.subarray(t*r,t*(r+1))),Out=(e,t)=>{let{valueOffsets:r,stride:i,children:n}=e,{[t*i]:s,[t*i+1]:o}=r,d=n[0].slice(s,o-s);return new xr([d])},But=(e,t)=>{let{valueOffsets:r,children:i}=e,{[t]:n,[t+1]:s}=r,o=i[0];return new hd(o.slice(n,s-n))},Fut=(e,t)=>new um(e,t),zut=(e,t)=>e.type.mode===yn.Dense?Z9(e,t):Y9(e,t),Z9=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return po.visit(i,e.valueOffsets[t])},Y9=(e,t)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];return po.visit(i,t)},Nut=(e,t)=>{var r;return(r=e.dictionary)===null||r===void 0?void 0:r.get(e.values[t])},Uut=(e,t)=>e.type.unit===Do.DAY_TIME?$9(e,t):Q9(e,t),$9=({values:e},t)=>e.subarray(2*t,2*(t+1)),Q9=({values:e},t)=>{let r=e[t],i=new Int32Array(2);return i[0]=Math.trunc(r/12),i[1]=Math.trunc(r%12),i},X9=({values:e},t)=>e[t],K9=({values:e},t)=>e[t],J9=({values:e},t)=>e[t],tW=({values:e},t)=>e[t],Vut=(e,t)=>{switch(e.type.unit){case dr.SECOND:return X9(e,t);case dr.MILLISECOND:return K9(e,t);case dr.MICROSECOND:return J9(e,t);case dr.NANOSECOND:return tW(e,t)}},jut=(e,t)=>{let{stride:r,children:i}=e,s=i[0].slice(t*r,r);return new xr([s])};Mr.prototype.visitNull=Ur(Tut);Mr.prototype.visitBool=Ur(Mut);Mr.prototype.visitInt=Ur(Iut);Mr.prototype.visitInt8=Ur(hm);Mr.prototype.visitInt16=Ur(hm);Mr.prototype.visitInt32=Ur(hm);Mr.prototype.visitInt64=Ur(B9);Mr.prototype.visitUint8=Ur(hm);Mr.prototype.visitUint16=Ur(hm);Mr.prototype.visitUint32=Ur(hm);Mr.prototype.visitUint64=Ur(B9);Mr.prototype.visitFloat=Ur(Cut);Mr.prototype.visitFloat16=Ur(Eut);Mr.prototype.visitFloat32=Ur(hm);Mr.prototype.visitFloat64=Ur(hm);Mr.prototype.visitUtf8=Ur(z9);Mr.prototype.visitLargeUtf8=Ur(z9);Mr.prototype.visitBinary=Ur(F9);Mr.prototype.visitLargeBinary=Ur(F9);Mr.prototype.visitFixedSizeBinary=Ur(Put);Mr.prototype.visitDate=Ur(Lut);Mr.prototype.visitDateDay=Ur(D9);Mr.prototype.visitDateMillisecond=Ur(O9);Mr.prototype.visitTimestamp=Ur(kut);Mr.prototype.visitTimestampSecond=Ur(N9);Mr.prototype.visitTimestampMillisecond=Ur(U9);Mr.prototype.visitTimestampMicrosecond=Ur(V9);Mr.prototype.visitTimestampNanosecond=Ur(j9);Mr.prototype.visitTime=Ur(Rut);Mr.prototype.visitTimeSecond=Ur(G9);Mr.prototype.visitTimeMillisecond=Ur(W9);Mr.prototype.visitTimeMicrosecond=Ur(H9);Mr.prototype.visitTimeNanosecond=Ur(q9);Mr.prototype.visitDecimal=Ur(Dut);Mr.prototype.visitList=Ur(Out);Mr.prototype.visitStruct=Ur(Fut);Mr.prototype.visitUnion=Ur(zut);Mr.prototype.visitDenseUnion=Ur(Z9);Mr.prototype.visitSparseUnion=Ur(Y9);Mr.prototype.visitDictionary=Ur(Nut);Mr.prototype.visitInterval=Ur(Uut);Mr.prototype.visitIntervalDayTime=Ur($9);Mr.prototype.visitIntervalYearMonth=Ur(Q9);Mr.prototype.visitDuration=Ur(Vut);Mr.prototype.visitDurationSecond=Ur(X9);Mr.prototype.visitDurationMillisecond=Ur(K9);Mr.prototype.visitDurationMicrosecond=Ur(J9);Mr.prototype.visitDurationNanosecond=Ur(tW);Mr.prototype.visitFixedSizeList=Ur(jut);Mr.prototype.visitMap=Ur(But);var po=new Mr;var th=Symbol.for(\"keys\"),nv=Symbol.for(\"vals\"),hd=class{constructor(t){return this[th]=new xr([t.children[0]]).memoize(),this[nv]=t.children[1],new Proxy(this,new nO)}[Symbol.iterator](){return new iO(this[th],this[nv])}get size(){return this[th].length}toArray(){return Object.values(this.toJSON())}toJSON(){let t=this[th],r=this[nv],i={};for(let n=-1,s=t.length;++n`${$h(t)}: ${$h(r)}`).join(\", \")}}`}[Symbol.for(\"nodejs.util.inspect.custom\")](){return this.toString()}},iO=class{constructor(t,r){this.keys=t,this.vals=r,this.keyIndex=0,this.numKeys=t.length}[Symbol.iterator](){return this}next(){let t=this.keyIndex;return t===this.numKeys?{done:!0,value:null}:(this.keyIndex++,{done:!1,value:[this.keys.get(t),po.visit(this.vals,t)]})}},nO=class{isExtensible(){return!1}deleteProperty(){return!1}preventExtensions(){return!0}ownKeys(t){return t[th].toArray().map(String)}has(t,r){return t[th].includes(r)}getOwnPropertyDescriptor(t,r){if(t[th].indexOf(r)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(t,r){if(Reflect.has(t,r))return t[r];let i=t[th].indexOf(r);if(i!==-1){let n=po.visit(Reflect.get(t,nv),i);return Reflect.set(t,r,n),n}}set(t,r,i){let n=t[th].indexOf(r);return n!==-1?(wa.visit(Reflect.get(t,nv),n,i),Reflect.set(t,r,i)):Reflect.has(t,r)?Reflect.set(t,r,i):!1}};Object.defineProperties(hd.prototype,{[Symbol.toStringTag]:{enumerable:!1,configurable:!1,value:\"Row\"},[th]:{writable:!0,enumerable:!1,configurable:!1,value:null},[nv]:{writable:!0,enumerable:!1,configurable:!1,value:null}});function Gut(e,t,r){let i=e.length,n=t>-1?t:i+t%i;return r?r(e,n):n}var eW;function Ow(e,t,r,i){let{length:n=0}=e,s=typeof t!=\"number\"?0:t,o=typeof r!=\"number\"?n:r;return s<0&&(s=(s%n+n)%n),o<0&&(o=(o%n+n)%n),on&&(o=n),i?i(e,s,o):[s,o]}var rW=e=>e!==e;function fm(e){if(typeof e!==\"object\"||e===null)return rW(e)?rW:r=>r===e;if(e instanceof Date){let r=e.valueOf();return i=>i instanceof Date?i.valueOf()===r:!1}return ArrayBuffer.isView(e)?r=>r?FD(e,r):!1:e instanceof Map?Hut(e):Array.isArray(e)?Wut(e):e instanceof xr?qut(e):Zut(e,!0)}function Wut(e){let t=[];for(let r=-1,i=e.length;++r!1;let i=[];for(let n=-1,s=r.length;++n{if(!r||typeof r!=\"object\")return!1;switch(r.constructor){case Array:return Yut(e,r);case Map:return iW(e,r,r.keys());case hd:case um:case Object:case void 0:return iW(e,r,t||Object.keys(r))}return r instanceof xr?$ut(e,r):!1}}function Yut(e,t){let r=e.length;if(t.length!==r)return!1;for(let i=-1;++ifg,getBit:()=>nW,getBool:()=>UP,packBools:()=>pg,popcnt_array:()=>sW,popcnt_bit_range:()=>Bw,popcnt_uint32:()=>NP,setBool:()=>Qut,truncateBitmap:()=>dg});function UP(e,t,r,i){return(r&1<>i}function Qut(e,t,r){return r?!!(e[t>>3]|=1<>3]&=~(1<0||r.byteLength>3):pg(new fg(r,e,t,null,UP)).subarray(0,i)),n}return r}function pg(e){let t=[],r=0,i=0,n=0;for(let o of e)o&&(n|=1<0)&&(t[r++]=n);let s=new Uint8Array(t.length+7&-8);return s.set(t),s}var fg=class{constructor(t,r,i,n,s){this.bytes=t,this.length=i,this.context=n,this.get=s,this.bit=r%8,this.byteIndex=r>>3,this.byte=t[this.byteIndex++],this.index=0}next(){return this.index>3<<3,n=t+(t%8===0?0:8-t%8);return Bw(e,t,n)+Bw(e,i,r)+sW(e,n>>3,i-n>>3)}function sW(e,t,r){let i=0,n=Math.trunc(t),s=new DataView(e.buffer,e.byteOffset,e.byteLength),o=r===void 0?e.byteLength:n+r;for(;o-n>=4;)i+=NP(s.getUint32(n)),n+=4;for(;o-n>=2;)i+=NP(s.getUint16(n)),n+=2;for(;o-n>=1;)i+=NP(s.getUint8(n)),n+=1;return i}function NP(e){let t=Math.trunc(e);return t=t-(t>>>1&1431655765),t=(t&858993459)+(t>>>2&858993459),(t+(t>>>4)&252645135)*16843009>>>24}var Xut=-1,wi=class e{get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get nullable(){if(this._nullCount!==0){let{type:t}=this;return Ne.isSparseUnion(t)?this.children.some(r=>r.nullable):Ne.isDenseUnion(t)?this.children.some(r=>r.nullable):this.nullBitmap&&this.nullBitmap.byteLength>0}return!0}get byteLength(){let t=0,{valueOffsets:r,values:i,nullBitmap:n,typeIds:s}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),n&&(t+=n.byteLength),s&&(t+=s.byteLength),this.children.reduce((o,c)=>o+c.byteLength,t)}get nullCount(){if(Ne.isUnion(this.type))return this.children.reduce((i,n)=>i+n.nullCount,0);let t=this._nullCount,r;return t<=Xut&&(r=this.nullBitmap)&&(this._nullCount=t=this.length-Bw(r,this.offset,this.offset+this.length)),t}constructor(t,r,i,n,s,o=[],c){this.type=t,this.children=o,this.dictionary=c,this.offset=Math.floor(Math.max(r||0,0)),this.length=Math.floor(Math.max(i||0,0)),this._nullCount=Math.floor(Math.max(n||0,-1));let d;s instanceof e?(this.stride=s.stride,this.values=s.values,this.typeIds=s.typeIds,this.nullBitmap=s.nullBitmap,this.valueOffsets=s.valueOffsets):(this.stride=nu(t),s&&((d=s[0])&&(this.valueOffsets=d),(d=s[1])&&(this.values=d),(d=s[2])&&(this.nullBitmap=d),(d=s[3])&&(this.typeIds=d)))}getValid(t){let{type:r}=this;if(Ne.isUnion(r)){let i=r,n=this.children[i.typeIdToChildIndex[this.typeIds[t]]],s=i.mode===yn.Dense?this.valueOffsets[t]:t;return n.getValid(s)}if(this.nullable&&this.nullCount>0){let i=this.offset+t;return(this.nullBitmap[i>>3]&1<>3;(!s||s.byteLength<=w)&&(s=new Uint8Array((o+c+63&-64)>>3).fill(255),this.nullCount>0&&s.set(dg(o,c,this.nullBitmap),0),Object.assign(this,{nullBitmap:s,_nullCount:-1}));let I=s[w];i=(I&_)!==0,r?s[w]=I|_:s[w]=I&~_}return i!==!!r&&(this._nullCount=this.nullCount+(r?-1:1)),r}clone(t=this.type,r=this.offset,i=this.length,n=this._nullCount,s=this,o=this.children){return new e(t,r,i,n,s,o,this.dictionary)}slice(t,r){let{stride:i,typeId:n,children:s}=this,o=+(this._nullCount===0)-1,c=n===16?i:1,d=this._sliceBuffers(t,r,i,n);return this.clone(this.type,this.offset+t,r,o,d,s.length===0||this.valueOffsets?s:this._sliceChildren(s,c*t,c*r))}_changeLengthAndBackfillNullBitmap(t){if(this.typeId===Lt.Null)return this.clone(this.type,0,t,0);let{length:r,nullCount:i}=this,n=new Uint8Array((t+63&-64)>>3).fill(255,0,r>>3);n[r>>3]=(1<0&&n.set(dg(this.offset,r,this.nullBitmap),0);let s=this.buffers;return s[vi.VALIDITY]=n,this.clone(this.type,0,t,i+(t-r),s)}_sliceBuffers(t,r,i,n){let s,{buffers:o}=this;return(s=o[vi.TYPE])&&(o[vi.TYPE]=s.subarray(t,t+r)),(s=o[vi.OFFSET])&&(o[vi.OFFSET]=s.subarray(t,t+r+1))||(s=o[vi.DATA])&&(o[vi.DATA]=n===6?s:s.subarray(i*t,i*(t+r))),o}_sliceChildren(t,r,i){return t.map(n=>n.slice(r,i))}};wi.prototype.children=Object.freeze([]);var aO=class e extends Tr{visit(t){return this.getVisitFn(t.type).call(this,t)}visitNull(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"length\"]:n=0}=t;return new wi(r,i,n,n)}visitBool(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length>>3,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitInt(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitFloat(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.data),s=Br(t.nullBitmap),o=ug(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,n,s])}visitLargeUtf8(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.data),s=Br(t.nullBitmap),o=pP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,n,s])}visitBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.data),s=Br(t.nullBitmap),o=ug(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,n,s])}visitLargeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.data),s=Br(t.nullBitmap),o=pP(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,n,s])}visitFixedSizeBinary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitDate(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitTimestamp(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitTime(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitDecimal(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:n}=t,s=Br(t.nullBitmap),o=ug(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,void 0,s],[n])}visitStruct(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:n=[]}=t,s=Br(t.nullBitmap),{length:o=n.reduce((d,{length:_})=>Math.max(d,_),0),nullCount:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,void 0,s],n)}visitUnion(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"children\"]:n=[]}=t,s=ui(r.ArrayType,t.typeIds),{[\"length\"]:o=s.length,[\"nullCount\"]:c=-1}=t;if(Ne.isSparseUnion(r))return new wi(r,i,o,c,[void 0,void 0,void 0,s],n);let d=ug(t.valueOffsets);return new wi(r,i,o,c,[d,void 0,void 0,s],n)}visitDictionary(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.indices.ArrayType,t.data),{[\"dictionary\"]:o=new xr([new e().visit({type:r.dictionary})])}=t,{[\"length\"]:c=s.length,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[void 0,s,n],[],o)}visitInterval(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitDuration(t){let{[\"type\"]:r,[\"offset\"]:i=0}=t,n=Br(t.nullBitmap),s=ui(r.ArrayType,t.data),{[\"length\"]:o=s.length,[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,s,n])}visitFixedSizeList(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:n=new e().visit({type:r.valueType})}=t,s=Br(t.nullBitmap),{[\"length\"]:o=n.length/nu(r),[\"nullCount\"]:c=t.nullBitmap?-1:0}=t;return new wi(r,i,o,c,[void 0,void 0,s],[n])}visitMap(t){let{[\"type\"]:r,[\"offset\"]:i=0,[\"child\"]:n=new e().visit({type:r.childType})}=t,s=Br(t.nullBitmap),o=ug(t.valueOffsets),{[\"length\"]:c=o.length-1,[\"nullCount\"]:d=t.nullBitmap?-1:0}=t;return new wi(r,i,c,d,[o,void 0,s],[n])}},Kut=new aO;function gr(e){return Kut.visit(e)}var Fw=class{constructor(t=0,r){this.numChunks=t,this.getChunkIterator=r,this.chunkIndex=0,this.chunkIterator=this.getChunkIterator(0)}next(){for(;this.chunkIndext.nullable)}function VP(e){return e.reduce((t,r)=>t+r.nullCount,0)}function jP(e){return e.reduce((t,r,i)=>(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function GP(e,t,r,i){let n=[];for(let s=-1,o=e.length;++s=i)break;if(r>=d+_)continue;if(d>=r&&d+_<=i){n.push(c);continue}let w=Math.max(0,r-d),I=Math.min(i-d,_);n.push(c.slice(w,I-w))}return n.length===0&&n.push(e[0].slice(0,0)),n}function lO(e,t,r,i){let n=0,s=0,o=t.length-1;do{if(n>=o-1)return r0?0:-1}function tht(e,t){let{nullBitmap:r}=e;if(!r||e.nullCount<=0)return-1;let i=0;for(let n of new fg(r,e.offset+(t||0),e.length,r,UP)){if(!n)return i;++i}return-1}function Hr(e,t,r){if(t===void 0)return-1;if(t===null)switch(e.typeId){case Lt.Union:break;case Lt.Dictionary:break;default:return tht(e,r)}let i=po.getVisitFn(e),n=fm(t);for(let s=(r||0)-1,o=e.length;++s{let n=e.data[i];return n.values.subarray(0,n.length)[Symbol.iterator]()});let r=0;return new Fw(e.data.length,i=>{let s=e.data[i].length,o=e.slice(r,r+s);return r+=s,new cO(o)})}var cO=class{constructor(t){this.vector=t,this.index=0}next(){return this.indexc.data):t;if(s.length===0||s.some(c=>!(c instanceof wi)))throw new TypeError(\"Vector constructor expects an Array of Data instances.\");let o=(r=s[0])===null||r===void 0?void 0:r.type;switch(s.length){case 0:this._offsets=[0];break;case 1:{let{get:c,set:d,indexOf:_}=cW[o.typeId],w=s[0];this.isValid=I=>zw(w,I),this.get=I=>c(w,I),this.set=(I,R)=>d(w,I,R),this.indexOf=I=>_(w,I),this._offsets=[0,w.length];break}default:Object.setPrototypeOf(this,uW[o.typeId]),this._offsets=jP(s);break}this.data=s,this.type=o,this.stride=nu(o),this.numChildren=(n=(i=o.children)===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0,this.length=this._offsets.at(-1)}get byteLength(){return this.data.reduce((t,r)=>t+r.byteLength,0)}get nullable(){return oW(this.data)}get nullCount(){return VP(this.data)}get ArrayType(){return this.type.ArrayType}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}get VectorName(){return`${Lt[this.type.typeId]}Vector`}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}includes(t,r){return this.indexOf(t,r)>-1}[Symbol.iterator](){return ov.visit(this)}concat(...t){return new e(this.data.concat(t.flatMap(r=>r.data).flat(Number.POSITIVE_INFINITY)))}slice(t,r){return new e(Ow(this,t,r,({data:i,_offsets:n},s,o)=>GP(i,n,s,o)))}toJSON(){return[...this]}toArray(){let{type:t,data:r,length:i,stride:n,ArrayType:s}=this;switch(t.typeId){case Lt.Int:case Lt.Float:case Lt.Decimal:case Lt.Time:case Lt.Timestamp:switch(r.length){case 0:return new s;case 1:return r[0].values.subarray(0,i*n);default:return r.reduce((o,{values:c,length:d})=>(o.array.set(c.subarray(0,d*n),o.offset),o.offset+=d*n,o),{array:new s(i*n),offset:0}).array}}return[...this]}toString(){return`[${[...this].join(\",\")}]`}getChild(t){var r;return this.getChildAt((r=this.type.children)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&tr[t])):null}get isMemoized(){return Ne.isDictionary(this.type)?this.data[0].dictionary.isMemoized:!1}memoize(){if(Ne.isDictionary(this.type)){let t=new qP(this.data[0].dictionary),r=this.data.map(i=>{let n=i.clone();return n.dictionary=t,n});return new e(r)}return new qP(this)}unmemoize(){if(Ne.isDictionary(this.type)&&this.isMemoized){let t=this.data[0].dictionary.unmemoize(),r=this.data.map(i=>{let n=i.clone();return n.dictionary=t,n});return new e(r)}return this}};lW=Symbol.toStringTag;xr[lW]=(e=>{e.type=Ne.prototype,e.data=[],e.length=0,e.stride=1,e.numChildren=0,e._offsets=new Uint32Array([0]),e[Symbol.isConcatSpreadable]=!0;let t=Object.keys(Lt).map(r=>Lt[r]).filter(r=>typeof r==\"number\"&&r!==Lt.NONE);for(let r of t){let i=po.getVisitFnByTypeId(r),n=wa.getVisitFnByTypeId(r),s=Ag.getVisitFnByTypeId(r);cW[r]={get:i,set:n,indexOf:s},uW[r]=Object.create(e,{isValid:{value:sv(zw)},get:{value:sv(po.getVisitFnByTypeId(r))},set:{value:WP(wa.getVisitFnByTypeId(r))},indexOf:{value:HP(Ag.getVisitFnByTypeId(r))}})}return\"Vector\"})(xr.prototype);var qP=class e extends xr{constructor(t){super(t.data);let r=this.get,i=this.set,n=this.slice,s=new Array(this.length);Object.defineProperty(this,\"get\",{value(o){let c=s[o];if(c!==void 0)return c;let d=r.call(this,o);return s[o]=d,d}}),Object.defineProperty(this,\"set\",{value(o,c){i.call(this,o,c),s[o]=c}}),Object.defineProperty(this,\"slice\",{value:(o,c)=>new e(n.call(this,o,c))}),Object.defineProperty(this,\"isMemoized\",{value:!0}),Object.defineProperty(this,\"unmemoize\",{value:()=>new xr(this.data)}),Object.defineProperty(this,\"memoize\",{value:()=>this})}};function hW(e){if(!e||e.length<=0)return function(n){return!0};let t=\"\",r=e.filter(i=>i===i);return r.length>0&&(t=`\n switch (x) {${r.map(i=>`\n case ${eht(i)}:`).join(\"\")}\n return false;\n }`),e.length!==r.length&&(t=`if (x !== x) return false;\n${t}`),new Function(\"x\",`${t}\nreturn true;`)}function eht(e){return typeof e!=\"bigint\"?$h(e):`${$h(e)}n`}function uO(e,t){let r=Math.ceil(e)*t-1;return(r-r%64+64||64)/t}function fW(e,t=0){return e.length>=t?e.subarray(0,t):uw(new e.constructor(t),e,0)}var Jh=class{constructor(t,r=0,i=1){this.length=Math.ceil(r/i),this.buffer=new t(this.length),this.stride=i,this.BYTES_PER_ELEMENT=t.BYTES_PER_ELEMENT,this.ArrayType=t}get byteLength(){return Math.ceil(this.length*this.stride)*this.BYTES_PER_ELEMENT}get reservedLength(){return this.buffer.length/this.stride}get reservedByteLength(){return this.buffer.byteLength}set(t,r){return this}append(t){return this.set(this.length,t)}reserve(t){if(t>0){this.length+=t;let r=this.stride,i=this.length*r,n=this.buffer.length;i>=n&&this._resize(n===0?uO(i*1,this.BYTES_PER_ELEMENT):uO(i*2,this.BYTES_PER_ELEMENT))}return this}flush(t=this.length){t=uO(t*this.stride,this.BYTES_PER_ELEMENT);let r=fW(this.buffer,t);return this.clear(),r}clear(){return this.length=0,this.buffer=new this.ArrayType,this}_resize(t){return this.buffer=fW(this.buffer,t)}},dp=class extends Jh{last(){return this.get(this.length-1)}get(t){return this.buffer[t]}set(t,r){return this.reserve(t-this.length+1),this.buffer[t*this.stride]=r,this}},av=class extends dp{constructor(){super(Uint8Array,0,1/8),this.numValid=0}get numInvalid(){return this.length-this.numValid}get(t){return this.buffer[t>>3]>>t%8&1}set(t,r){let{buffer:i}=this.reserve(t-this.length+1),n=t>>3,s=t%8,o=i[n]>>s&1;return r?o===0&&(i[n]|=1<=0&&n.fill(n[i],i,t),n[t]=n[t-1]+r,this}flush(t=this.length-1){return t>this.length&&this.set(t-1,this.BYTES_PER_ELEMENT>4?BigInt(0):0),super.flush(t+1)}};var Jn=class{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t){throw new Error('\"throughDOM\" not available in this environment')}constructor({type:t,nullValues:r}){this.length=0,this.finished=!1,this.type=t,this.children=[],this.nullValues=r,this.stride=nu(t),this._nulls=new av,r&&r.length>0&&(this._isValid=hW(r))}toVector(){return new xr([this.flush()])}get ArrayType(){return this.type.ArrayType}get nullCount(){return this._nulls.numInvalid}get numChildren(){return this.children.length}get byteLength(){let t=0,{_offsets:r,_values:i,_nulls:n,_typeIds:s,children:o}=this;return r&&(t+=r.byteLength),i&&(t+=i.byteLength),n&&(t+=n.byteLength),s&&(t+=s.byteLength),o.reduce((c,d)=>c+d.byteLength,t)}get reservedLength(){return this._nulls.reservedLength}get reservedByteLength(){let t=0;return this._offsets&&(t+=this._offsets.reservedByteLength),this._values&&(t+=this._values.reservedByteLength),this._nulls&&(t+=this._nulls.reservedByteLength),this._typeIds&&(t+=this._typeIds.reservedByteLength),this.children.reduce((r,i)=>r+i.reservedByteLength,t)}get valueOffsets(){return this._offsets?this._offsets.buffer:null}get values(){return this._values?this._values.buffer:null}get nullBitmap(){return this._nulls?this._nulls.buffer:null}get typeIds(){return this._typeIds?this._typeIds.buffer:null}append(t){return this.set(this.length,t)}isValid(t){return this._isValid(t)}set(t,r){return this.setValid(t,this.isValid(r))&&this.setValue(t,r),this}setValue(t,r){this._setValue(this,t,r)}setValid(t,r){return this.length=this._nulls.set(t,+r).length,r}addChild(t,r=`${this.numChildren}`){throw new Error(`Cannot append children to non-nested type \"${this.type}\"`)}getChildAt(t){return this.children[t]||null}flush(){let t,r,i,n,{type:s,length:o,nullCount:c,_typeIds:d,_offsets:_,_values:w,_nulls:I}=this;(r=d?.flush(o))?n=_?.flush(o):(n=_?.flush(o))?t=w?.flush(_.last()):t=w?.flush(o),c>0&&(i=I?.flush(o));let R=this.children.map(N=>N.flush());return this.clear(),gr({type:s,length:o,nullCount:c,children:R,child:R[0],data:t,typeIds:r,nullBitmap:i,valueOffsets:n})}finish(){this.finished=!0;for(let t of this.children)t.finish();return this}clear(){var t,r,i,n;this.length=0,(t=this._nulls)===null||t===void 0||t.clear(),(r=this._values)===null||r===void 0||r.clear(),(i=this._offsets)===null||i===void 0||i.clear(),(n=this._typeIds)===null||n===void 0||n.clear();for(let s of this.children)s.clear();return this}};Jn.prototype.length=1;Jn.prototype.stride=1;Jn.prototype.children=null;Jn.prototype.finished=!1;Jn.prototype.nullValues=null;Jn.prototype._isValid=()=>!0;var Ao=class extends Jn{constructor(t){super(t),this._values=new dp(this.ArrayType,0,this.stride)}setValue(t,r){let i=this._values;return i.reserve(t-i.length+1),super.setValue(t,r)}},lc=class extends Jn{constructor(t){super(t),this._pendingLength=0,this._offsets=new lv(t.type)}setValue(t,r){let i=this._pending||(this._pending=new Map),n=i.get(t);n&&(this._pendingLength-=n.length),this._pendingLength+=r instanceof hd?r[th].length:r.length,i.set(t,r)}setValid(t,r){return super.setValid(t,r)?!0:((this._pending||(this._pending=new Map)).set(t,void 0),!1)}clear(){return this._pendingLength=0,this._pending=void 0,super.clear()}flush(){return this._flush(),super.flush()}finish(){return this._flush(),super.finish()}_flush(){let t=this._pending,r=this._pendingLength;return this._pendingLength=0,this._pending=void 0,t&&t.size>0&&this._flushPending(t,r),this}};var mg=class{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}offset(){return this.bb.readInt64(this.bb_pos)}metaDataLength(){return this.bb.readInt32(this.bb_pos+8)}bodyLength(){return this.bb.readInt64(this.bb_pos+16)}static sizeOf(){return 24}static createBlock(t,r,i,n){return t.prep(8,24),t.writeInt64(BigInt(n??0)),t.pad(4),t.writeInt32(i),t.writeInt64(BigInt(r??0)),t.offset()}};var su=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsFooter(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsFooter(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):$i.V1}schema(t){let r=this.bb.__offset(this.bb_pos,6);return r?(t||new ec).__init(this.bb.__indirect(this.bb_pos+r),this.bb):null}dictionaries(t,r){let i=this.bb.__offset(this.bb_pos,8);return i?(r||new mg).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}dictionariesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}recordBatches(t,r){let i=this.bb.__offset(this.bb_pos,10);return i?(r||new mg).__init(this.bb.__vector(this.bb_pos+i)+t*24,this.bb):null}recordBatchesLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Oo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startFooter(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,$i.V1)}static addSchema(t,r){t.addFieldOffset(1,r,0)}static addDictionaries(t,r){t.addFieldOffset(2,r,0)}static startDictionariesVector(t,r){t.startVector(24,r,8)}static addRecordBatches(t,r){t.addFieldOffset(3,r,0)}static startRecordBatchesVector(t,r){t.startVector(24,r,8)}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endFooter(t){return t.endObject()}static finishFooterBuffer(t,r){t.finish(r)}static finishSizePrefixedFooterBuffer(t,r){t.finish(r,void 0,!0)}};var Xi=class e{constructor(t=[],r,i,n=$i.V5){this.fields=t||[],this.metadata=r||new Map,i||(i=hO(t)),this.dictionaries=i,this.metadataVersion=n}get[Symbol.toStringTag](){return\"Schema\"}get names(){return this.fields.map(t=>t.name)}toString(){return`Schema<{ ${this.fields.map((t,r)=>`${r}: ${t}`).join(\", \")} }>`}select(t){let r=new Set(t),i=this.fields.filter(n=>r.has(n.name));return new e(i,this.metadata)}selectAt(t){let r=t.map(i=>this.fields[i]).filter(Boolean);return new e(r,this.metadata)}assign(...t){let r=t[0]instanceof e?t[0]:Array.isArray(t[0])?new e(t[0]):new e(t),i=[...this.fields],n=ZP(ZP(new Map,this.metadata),r.metadata),s=r.fields.filter(c=>{let d=i.findIndex(_=>_.name===c.name);return~d?(i[d]=c.clone({metadata:ZP(ZP(new Map,i[d].metadata),c.metadata)}))&&!1:!0}),o=hO(s,new Map);return new e([...i,...s],n,new Map([...this.dictionaries,...o]))}};Xi.prototype.fields=null;Xi.prototype.metadata=null;Xi.prototype.dictionaries=null;var ai=class e{static new(...t){let[r,i,n,s]=t;return t[0]&&typeof t[0]==\"object\"&&({name:r}=t[0],i===void 0&&(i=t[0].type),n===void 0&&(n=t[0].nullable),s===void 0&&(s=t[0].metadata)),new e(`${r}`,i,n,s)}constructor(t,r,i=!1,n){this.name=t,this.type=r,this.nullable=i,this.metadata=n||new Map}get typeId(){return this.type.typeId}get[Symbol.toStringTag](){return\"Field\"}toString(){return`${this.name}: ${this.type}`}clone(...t){let[r,i,n,s]=t;return!t[0]||typeof t[0]!=\"object\"?[r=this.name,i=this.type,n=this.nullable,s=this.metadata]=t:{name:r=this.name,type:i=this.type,nullable:n=this.nullable,metadata:s=this.metadata}=t[0],e.new(r,i,n,s)}};ai.prototype.type=null;ai.prototype.name=null;ai.prototype.nullable=null;ai.prototype.metadata=null;function ZP(e,t){return new Map([...e||new Map,...t||new Map])}function hO(e,t=new Map){for(let r=-1,i=e.length;++r0&&hO(s.children,t)}return t}var rht=hg,iht=ru,pp=class{static decode(t){t=new iht(Br(t));let r=su.getRootAsFooter(t),i=Xi.decode(r.schema(),new Map,r.version());return new fO(i,r)}static encode(t){let r=new rht,i=Xi.encode(r,t.schema);su.startRecordBatchesVector(r,t.numRecordBatches);for(let o of[...t.recordBatches()].slice().reverse())Ap.encode(r,o);let n=r.endVector();su.startDictionariesVector(r,t.numDictionaries);for(let o of[...t.dictionaryBatches()].slice().reverse())Ap.encode(r,o);let s=r.endVector();return su.startFooter(r),su.addSchema(r,i),su.addVersion(r,$i.V5),su.addRecordBatches(r,n),su.addDictionaries(r,s),su.finishFooterBuffer(r,su.endFooter(r)),r.asUint8Array()}get numRecordBatches(){return this._recordBatches.length}get numDictionaries(){return this._dictionaryBatches.length}constructor(t,r=$i.V5,i,n){this.schema=t,this.version=r,i&&(this._recordBatches=i),n&&(this._dictionaryBatches=n)}*recordBatches(){for(let t,r=-1,i=this.numRecordBatches;++r=0&&t=0&&t=0&&t=0&&tthis._closedPromiseResolve=t)}get closed(){return this._closedPromise}cancel(t){return rr(this,void 0,void 0,function*(){yield this.return(t)})}write(t){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(t):this.resolvers.shift().resolve({done:!1,value:t}))}abort(t){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:t}:this.resolvers.shift().reject({done:!0,value:t}))}close(){if(this._closedPromiseResolve){let{resolvers:t}=this;for(;t.length>0;)t.shift().resolve(Un);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}[Symbol.asyncIterator](){return this}toDOMStream(t){return ba.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,t)}toNodeStream(t){return ba.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,t)}throw(t){return rr(this,void 0,void 0,function*(){return yield this.abort(t),Un})}return(t){return rr(this,void 0,void 0,function*(){return yield this.close(),Un})}read(t){return rr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return rr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(...t){return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((r,i)=>{this.resolvers.push({resolve:r,reject:i})}):Promise.resolve(Un)}_ensureOpen(){if(this._closedPromiseResolve)return!0;throw new Error(\"AsyncQueue is closed\")}};var fd=class extends YP{write(t){if((t=Br(t)).byteLength>0)return super.write(t)}toString(t=!1){return t?lw(this.toUint8Array(!0)):this.toUint8Array(!1).then(lw)}toUint8Array(t=!1){return t?eu(this._values)[0]:rr(this,void 0,void 0,function*(){var r,i,n,s;let o=[],c=0;try{for(var d=!0,_=Gh(this),w;w=yield _.next(),r=w.done,!r;d=!0){s=w.value,d=!1;let I=s;o.push(I),c+=I.byteLength}}catch(I){i={error:I}}finally{try{!d&&!r&&(n=_.return)&&(yield n.call(_))}finally{if(i)throw i.error}}return eu(o,c)[0]})}},dd=class{constructor(t){t&&(this.source=new dO(ba.fromIterable(t)))}[Symbol.iterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},eh=class e{constructor(t){t instanceof e?this.source=t.source:t instanceof fd?this.source=new mp(ba.fromAsyncIterable(t)):dP(t)?this.source=new mp(ba.fromNodeStream(t)):cw(t)?this.source=new mp(ba.fromDOMStream(t)):hP(t)?this.source=new mp(ba.fromDOMStream(t.body)):Wh(t)?this.source=new mp(ba.fromIterable(t)):tu(t)?this.source=new mp(ba.fromAsyncIterable(t)):Wu(t)&&(this.source=new mp(ba.fromAsyncIterable(t)))}[Symbol.asyncIterator](){return this}next(t){return this.source.next(t)}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}get closed(){return this.source.closed}cancel(t){return this.source.cancel(t)}peek(t){return this.source.peek(t)}read(t){return this.source.read(t)}},dO=class{constructor(t){this.source=t}cancel(t){this.return(t)}peek(t){return this.next(t,\"peek\").value}read(t){return this.next(t,\"read\").value}next(t,r=\"read\"){return this.source.next({cmd:r,size:t})}throw(t){return Object.create(this.source.throw&&this.source.throw(t)||Un)}return(t){return Object.create(this.source.return&&this.source.return(t)||Un)}},mp=class{constructor(t){this.source=t,this._closedPromise=new Promise(r=>this._closedPromiseResolve=r)}cancel(t){return rr(this,void 0,void 0,function*(){yield this.return(t)})}get closed(){return this._closedPromise}read(t){return rr(this,void 0,void 0,function*(){return(yield this.next(t,\"read\")).value})}peek(t){return rr(this,void 0,void 0,function*(){return(yield this.next(t,\"peek\")).value})}next(t,r=\"read\"){return rr(this,void 0,void 0,function*(){return yield this.source.next({cmd:r,size:t})})}throw(t){return rr(this,void 0,void 0,function*(){let r=this.source.throw&&(yield this.source.throw(t))||Un;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}return(t){return rr(this,void 0,void 0,function*(){let r=this.source.return&&(yield this.source.return(t))||Un;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(r)})}};var Uw=class extends dd{constructor(t,r){super(),this.position=0,this.buffer=Br(t),this.size=r===void 0?this.buffer.byteLength:r}readInt32(t){let{buffer:r,byteOffset:i}=this.readAt(t,4);return new DataView(r,i).getInt32(0,!0)}seek(t){return this.position=Math.min(t,this.size),tVw,Int128:()=>jw,Int64:()=>gp,Uint64:()=>gs});function cv(e){return e<0&&(e=4294967295+e+1),`0x${e.toString(16)}`}var uv=8,pO=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8],Vw=class{constructor(t){this.buffer=t}high(){return this.buffer[1]}low(){return this.buffer[0]}_times(t){let r=new Uint32Array([this.buffer[1]>>>16,this.buffer[1]&65535,this.buffer[0]>>>16,this.buffer[0]&65535]),i=new Uint32Array([t.buffer[1]>>>16,t.buffer[1]&65535,t.buffer[0]>>>16,t.buffer[0]&65535]),n=r[3]*i[3];this.buffer[0]=n&65535;let s=n>>>16;return n=r[2]*i[3],s+=n,n=r[3]*i[2]>>>0,s+=n,this.buffer[0]+=s<<16,this.buffer[1]=s>>>0>>16,this.buffer[1]+=r[1]*i[3]+r[2]*i[2]+r[3]*i[1],this.buffer[1]+=r[0]*i[3]+r[1]*i[2]+r[2]*i[1]+r[3]*i[0]<<16,this}_plus(t){let r=this.buffer[0]+t.buffer[0]>>>0;this.buffer[1]+=t.buffer[1],r>>0&&++this.buffer[1],this.buffer[0]=r}lessThan(t){return this.buffer[1]>>0,r[2]=this.buffer[2]+t.buffer[2]>>>0,r[1]=this.buffer[1]+t.buffer[1]>>>0,r[0]=this.buffer[0]+t.buffer[0]>>>0,r[0]>>0&&++r[1],r[1]>>0&&++r[2],r[2]>>0&&++r[3],this.buffer[3]=r[3],this.buffer[2]=r[2],this.buffer[1]=r[1],this.buffer[0]=r[0],this}hex(){return`${cv(this.buffer[3])} ${cv(this.buffer[2])} ${cv(this.buffer[1])} ${cv(this.buffer[0])}`}static multiply(t,r){return new e(new Uint32Array(t.buffer)).times(r)}static add(t,r){return new e(new Uint32Array(t.buffer)).plus(r)}static from(t,r=new Uint32Array(4)){return e.fromString(typeof t==\"string\"?t:t.toString(),r)}static fromNumber(t,r=new Uint32Array(4)){return e.fromString(t.toString(),r)}static fromString(t,r=new Uint32Array(4)){let i=t.startsWith(\"-\"),n=t.length,s=new e(r);for(let o=i?1:0;o0&&this.readData(t,i)||new Uint8Array(0)}readOffsets(t,r){return this.readData(t,r)}readTypeIds(t,r){return this.readData(t,r)}readData(t,{length:r,offset:i}=this.nextBufferRange()){return this.bytes.subarray(i,i+r)}readDictionary(t){return this.dictionaries.get(t.id)}},$P=class extends Gw{constructor(t,r,i,n,s){super(new Uint8Array(0),r,i,n,s),this.sources=t}readNullBitmap(t,r,{offset:i}=this.nextBufferRange()){return r<=0?new Uint8Array(0):pg(this.sources[i])}readOffsets(t,{offset:r}=this.nextBufferRange()){return ui(Uint8Array,ui(t.OffsetArrayType,this.sources[r]))}readTypeIds(t,{offset:r}=this.nextBufferRange()){return ui(Uint8Array,ui(t.ArrayType,this.sources[r]))}readData(t,{offset:r}=this.nextBufferRange()){let{sources:i}=this;return Ne.isTimestamp(t)?ui(Uint8Array,gp.convertArray(i[r])):(Ne.isInt(t)||Ne.isTime(t))&&t.bitWidth===64||Ne.isDuration(t)?ui(Uint8Array,gp.convertArray(i[r])):Ne.isDate(t)&&t.unit===to.MILLISECOND?ui(Uint8Array,gp.convertArray(i[r])):Ne.isDecimal(t)?ui(Uint8Array,jw.convertArray(i[r])):Ne.isBinary(t)||Ne.isLargeBinary(t)||Ne.isFixedSizeBinary(t)?nht(i[r]):Ne.isBool(t)?pg(i[r]):Ne.isUtf8(t)||Ne.isLargeUtf8(t)?nd(i[r].join(\"\")):ui(Uint8Array,ui(t.ArrayType,i[r].map(n=>+n)))}};function nht(e){let t=e.join(\"\"),r=new Uint8Array(t.length/2);for(let i=0;i>1]=Number.parseInt(t.slice(i,i+2),16);return r}var _g=class extends lc{constructor(t){super(t),this._values=new Jh(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Br(r))}_flushPending(t,r){let i=this._offsets,n=this._values.reserve(r).buffer,s=0;for(let[o,c]of t)if(c===void 0)i.set(o,0);else{let d=c.length;n.set(c,s),i.set(o,d),s+=d}}};var yg=class extends lc{constructor(t){super(t),this._values=new Jh(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,Br(r))}_flushPending(t,r){let i=this._offsets,n=this._values.reserve(r).buffer,s=0;for(let[o,c]of t)if(c===void 0)i.set(o,BigInt(0));else{let d=c.length;n.set(c,s),i.set(o,BigInt(d)),s+=d}}};var pm=class extends Jn{constructor(t){super(t),this._values=new av}setValue(t,r){this._values.set(t,+r)}};var Am=class extends Ao{};Am.prototype._setValue=YD;var hv=class extends Am{};hv.prototype._setValue=bP;var fv=class extends Am{};fv.prototype._setValue=wP;var dv=class extends Ao{};dv.prototype._setValue=XD;var Ww=class extends Jn{constructor({type:t,nullValues:r,dictionaryHashFunction:i}){super({type:new ac(t.dictionary,t.indices,t.id,t.isOrdered)}),this._nulls=null,this._dictionaryOffset=0,this._keysToIndices=Object.create(null),this.indices=vg({type:this.type.indices,nullValues:r}),this.dictionary=vg({type:this.type.dictionary,nullValues:null}),typeof i==\"function\"&&(this.valueToKey=i)}get values(){return this.indices.values}get nullCount(){return this.indices.nullCount}get nullBitmap(){return this.indices.nullBitmap}get byteLength(){return this.indices.byteLength+this.dictionary.byteLength}get reservedLength(){return this.indices.reservedLength+this.dictionary.reservedLength}get reservedByteLength(){return this.indices.reservedByteLength+this.dictionary.reservedByteLength}isValid(t){return this.indices.isValid(t)}setValid(t,r){let i=this.indices;return r=i.setValid(t,r),this.length=i.length,r}setValue(t,r){let i=this._keysToIndices,n=this.valueToKey(r),s=i[n];return s===void 0&&(i[n]=s=this._dictionaryOffset+this.dictionary.append(r).length-1),this.indices.setValue(t,s)}flush(){let t=this.type,r=this._dictionary,i=this.dictionary.toVector(),n=this.indices.flush().clone(t);return n.dictionary=r?r.concat(i):i,this.finished||(this._dictionaryOffset+=i.length),this._dictionary=n.dictionary,this.clear(),n}finish(){return this.indices.finish(),this.dictionary.finish(),this._dictionaryOffset=0,this._keysToIndices=Object.create(null),super.finish()}clear(){return this.indices.clear(),this.dictionary.clear(),super.clear()}valueToKey(t){return typeof t==\"string\"?t:`${t}`}};var pv=class extends Ao{};pv.prototype._setValue=ZD;var Hw=class extends Jn{setValue(t,r){let[i]=this.children,n=t*this.stride;for(let s=-1,o=r.length;++s0)throw new Error(\"FixedSizeListBuilder can only have one child.\");let i=this.children.push(t);return this.type=new Pl(this.type.listSize,new ai(r,t.type,!0)),i}};var mm=class extends Ao{setValue(t,r){this._values.set(t,r)}},qw=class extends mm{setValue(t,r){super.setValue(t,Dw(r))}},Zw=class extends mm{},Yw=class extends mm{};var gm=class extends Ao{};gm.prototype._setValue=KD;var Av=class extends gm{};Av.prototype._setValue=kP;var mv=class extends gm{};mv.prototype._setValue=RP;var pd=class extends Ao{};pd.prototype._setValue=JD;var gv=class extends pd{};gv.prototype._setValue=DP;var _v=class extends pd{};_v.prototype._setValue=OP;var yv=class extends pd{};yv.prototype._setValue=BP;var vv=class extends pd{};vv.prototype._setValue=FP;var ou=class extends Ao{setValue(t,r){this._values.set(t,r)}},$w=class extends ou{},Qw=class extends ou{},Xw=class extends ou{},Kw=class extends ou{},Jw=class extends ou{},t2=class extends ou{},e2=class extends ou{},r2=class extends ou{};var i2=class extends lc{constructor(t){super(t),this._offsets=new lv(t.type)}addChild(t,r=\"0\"){if(this.numChildren>0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new nc(new ai(r,t.type,!0)),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[n,s]of t)if(typeof s>\"u\")r.set(n,0);else{let o=s,c=o.length,d=r.set(n,c).buffer[n];for(let _=-1;++_0)throw new Error(\"ListBuilder can only have one child.\");return this.children[this.numChildren]=t,this.type=new oc(new ai(r,t.type,!0),this.type.keysSorted),this.numChildren-1}_flushPending(t){let r=this._offsets,[i]=this.children;for(let[n,s]of t)if(s===void 0)r.set(n,0);else{let{[n]:o,[n+1]:c}=r.set(n,s.size).buffer;for(let d of s.entries())if(i.set(o,d),++o>=c)break}}};var s2=class extends Jn{setValue(t,r){}setValid(t,r){return this.length=Math.max(t+1,this.length),r}};var o2=class extends Jn{setValue(t,r){let{children:i,type:n}=this;switch(Array.isArray(r)||r.constructor){case!0:return n.children.forEach((s,o)=>i[o].set(t,r[o]));case Map:return n.children.forEach((s,o)=>i[o].set(t,r.get(s.name)));default:return n.children.forEach((s,o)=>i[o].set(t,r[s.name]))}}setValid(t,r){return super.setValid(t,r)||this.children.forEach(i=>i.setValid(t,r)),r}addChild(t,r=`${this.numChildren}`){let i=this.children.push(t);return this.type=new sn([...this.type.children,new ai(r,t.type,!0)]),i}};var Ad=class extends Ao{};Ad.prototype._setValue=$D;var xv=class extends Ad{};xv.prototype._setValue=SP;var bv=class extends Ad{};bv.prototype._setValue=TP;var wv=class extends Ad{};wv.prototype._setValue=MP;var Sv=class extends Ad{};Sv.prototype._setValue=EP;var md=class extends Ao{};md.prototype._setValue=QD;var Tv=class extends md{};Tv.prototype._setValue=PP;var Mv=class extends md{};Mv.prototype._setValue=IP;var Ev=class extends md{};Ev.prototype._setValue=CP;var Pv=class extends md{};Pv.prototype._setValue=LP;var xg=class extends Jn{constructor(t){super(t),this._typeIds=new dp(Int8Array,0,1),typeof t.valueToChildTypeId==\"function\"&&(this._valueToChildTypeId=t.valueToChildTypeId)}get typeIdToChildIndex(){return this.type.typeIdToChildIndex}append(t,r){return this.set(this.length,t,r)}set(t,r,i){return i===void 0&&(i=this._valueToChildTypeId(this,r,t)),this.setValue(t,r,i),this}setValue(t,r,i){this._typeIds.set(t,i);let n=this.type.typeIdToChildIndex[i],s=this.children[n];s?.set(t,r)}addChild(t,r=`${this.children.length}`){let i=this.children.push(t),{type:{children:n,mode:s,typeIds:o}}=this,c=[...n,new ai(r,t.type)];return this.type=new sc(s,[...o,i],c),i}_valueToChildTypeId(t,r,i){throw new Error(\"Cannot map UnionBuilder value to child typeId. Pass the `childTypeId` as the second argument to unionBuilder.append(), or supply a `valueToChildTypeId` function as part of the UnionBuilder constructor options.\")}},a2=class extends xg{},l2=class extends xg{constructor(t){super(t),this._offsets=new dp(Int32Array)}setValue(t,r,i){let n=this._typeIds.set(t,i).buffer[t],s=this.getChildAt(this.type.typeIdToChildIndex[n]),o=this._offsets.set(t,s.length).buffer[t];s?.set(o,r)}};var Iv=class extends lc{constructor(t){super(t),this._values=new Jh(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,nd(r))}_flushPending(t,r){}};Iv.prototype._flushPending=_g.prototype._flushPending;var Cv=class extends lc{constructor(t){super(t),this._values=new Jh(Uint8Array)}get byteLength(){let t=this._pendingLength+this.length*4;return this._offsets&&(t+=this._offsets.byteLength),this._values&&(t+=this._values.byteLength),this._nulls&&(t+=this._nulls.byteLength),t}setValue(t,r){return super.setValue(t,nd(r))}_flushPending(t,r){}};Cv.prototype._flushPending=yg.prototype._flushPending;var mO=class extends Tr{visitNull(){return s2}visitBool(){return pm}visitInt(){return ou}visitInt8(){return $w}visitInt16(){return Qw}visitInt32(){return Xw}visitInt64(){return Kw}visitUint8(){return Jw}visitUint16(){return t2}visitUint32(){return e2}visitUint64(){return r2}visitFloat(){return mm}visitFloat16(){return qw}visitFloat32(){return Zw}visitFloat64(){return Yw}visitUtf8(){return Iv}visitLargeUtf8(){return Cv}visitBinary(){return _g}visitLargeBinary(){return yg}visitFixedSizeBinary(){return pv}visitDate(){return Am}visitDateDay(){return hv}visitDateMillisecond(){return fv}visitTimestamp(){return Ad}visitTimestampSecond(){return xv}visitTimestampMillisecond(){return bv}visitTimestampMicrosecond(){return wv}visitTimestampNanosecond(){return Sv}visitTime(){return md}visitTimeSecond(){return Tv}visitTimeMillisecond(){return Mv}visitTimeMicrosecond(){return Ev}visitTimeNanosecond(){return Pv}visitDecimal(){return dv}visitList(){return i2}visitStruct(){return o2}visitUnion(){return xg}visitDenseUnion(){return l2}visitSparseUnion(){return a2}visitDictionary(){return Ww}visitInterval(){return gm}visitIntervalDayTime(){return Av}visitIntervalYearMonth(){return mv}visitDuration(){return pd}visitDurationSecond(){return gv}visitDurationMillisecond(){return _v}visitDurationMicrosecond(){return yv}visitDurationNanosecond(){return vv}visitFixedSizeList(){return Hw}visitMap(){return n2}},dW=new mO;var Ir=class extends Tr{compareSchemas(t,r){return t===r||r instanceof t.constructor&&this.compareManyFields(t.fields,r.fields)}compareManyFields(t,r){return t===r||Array.isArray(t)&&Array.isArray(r)&&t.length===r.length&&t.every((i,n)=>this.compareFields(i,r[n]))}compareFields(t,r){return t===r||r instanceof t.constructor&&t.name===r.name&&t.nullable===r.nullable&&this.visit(t.type,r.type)}};function Il(e,t){return t instanceof e.constructor}function bg(e,t){return e===t||Il(e,t)}function _p(e,t){return e===t||Il(e,t)&&e.bitWidth===t.bitWidth&&e.isSigned===t.isSigned}function QP(e,t){return e===t||Il(e,t)&&e.precision===t.precision}function sht(e,t){return e===t||Il(e,t)&&e.byteWidth===t.byteWidth}function gO(e,t){return e===t||Il(e,t)&&e.unit===t.unit}function c2(e,t){return e===t||Il(e,t)&&e.unit===t.unit&&e.timezone===t.timezone}function u2(e,t){return e===t||Il(e,t)&&e.unit===t.unit&&e.bitWidth===t.bitWidth}function oht(e,t){return e===t||Il(e,t)&&e.children.length===t.children.length&&gd.compareManyFields(e.children,t.children)}function aht(e,t){return e===t||Il(e,t)&&e.children.length===t.children.length&&gd.compareManyFields(e.children,t.children)}function _O(e,t){return e===t||Il(e,t)&&e.mode===t.mode&&e.typeIds.every((r,i)=>r===t.typeIds[i])&&gd.compareManyFields(e.children,t.children)}function lht(e,t){return e===t||Il(e,t)&&e.id===t.id&&e.isOrdered===t.isOrdered&&gd.visit(e.indices,t.indices)&&gd.visit(e.dictionary,t.dictionary)}function yO(e,t){return e===t||Il(e,t)&&e.unit===t.unit}function h2(e,t){return e===t||Il(e,t)&&e.unit===t.unit}function cht(e,t){return e===t||Il(e,t)&&e.listSize===t.listSize&&e.children.length===t.children.length&&gd.compareManyFields(e.children,t.children)}function uht(e,t){return e===t||Il(e,t)&&e.keysSorted===t.keysSorted&&e.children.length===t.children.length&&gd.compareManyFields(e.children,t.children)}Ir.prototype.visitNull=bg;Ir.prototype.visitBool=bg;Ir.prototype.visitInt=_p;Ir.prototype.visitInt8=_p;Ir.prototype.visitInt16=_p;Ir.prototype.visitInt32=_p;Ir.prototype.visitInt64=_p;Ir.prototype.visitUint8=_p;Ir.prototype.visitUint16=_p;Ir.prototype.visitUint32=_p;Ir.prototype.visitUint64=_p;Ir.prototype.visitFloat=QP;Ir.prototype.visitFloat16=QP;Ir.prototype.visitFloat32=QP;Ir.prototype.visitFloat64=QP;Ir.prototype.visitUtf8=bg;Ir.prototype.visitLargeUtf8=bg;Ir.prototype.visitBinary=bg;Ir.prototype.visitLargeBinary=bg;Ir.prototype.visitFixedSizeBinary=sht;Ir.prototype.visitDate=gO;Ir.prototype.visitDateDay=gO;Ir.prototype.visitDateMillisecond=gO;Ir.prototype.visitTimestamp=c2;Ir.prototype.visitTimestampSecond=c2;Ir.prototype.visitTimestampMillisecond=c2;Ir.prototype.visitTimestampMicrosecond=c2;Ir.prototype.visitTimestampNanosecond=c2;Ir.prototype.visitTime=u2;Ir.prototype.visitTimeSecond=u2;Ir.prototype.visitTimeMillisecond=u2;Ir.prototype.visitTimeMicrosecond=u2;Ir.prototype.visitTimeNanosecond=u2;Ir.prototype.visitDecimal=bg;Ir.prototype.visitList=oht;Ir.prototype.visitStruct=aht;Ir.prototype.visitUnion=_O;Ir.prototype.visitDenseUnion=_O;Ir.prototype.visitSparseUnion=_O;Ir.prototype.visitDictionary=lht;Ir.prototype.visitInterval=yO;Ir.prototype.visitIntervalDayTime=yO;Ir.prototype.visitIntervalYearMonth=yO;Ir.prototype.visitDuration=h2;Ir.prototype.visitDurationSecond=h2;Ir.prototype.visitDurationMillisecond=h2;Ir.prototype.visitDurationMicrosecond=h2;Ir.prototype.visitDurationNanosecond=h2;Ir.prototype.visitFixedSizeList=cht;Ir.prototype.visitMap=uht;var gd=new Ir;function wg(e,t){return gd.compareSchemas(e,t)}function pW(e,t){return gd.compareFields(e,t)}function AW(e,t){return gd.visit(e,t)}function vg(e){let t=e.type,r=new(dW.getVisitFn(t)())(e);if(t.children&&t.children.length>0){let i=e.children||[],n={nullValues:e.nullValues},s=Array.isArray(i)?(o,c)=>i[c]||n:({name:o})=>i[o]||n;for(let[o,c]of t.children.entries()){let{type:d}=c,_=s(c,o);r.children.push(vg(Object.assign(Object.assign({},_),{type:d})))}}return r}function XP(e,t){return hht(e,t.map(r=>r.data.concat()))}function hht(e,t){let r=[...e.fields],i=[],n={numBatches:t.reduce((I,R)=>Math.max(I,R.length),0)},s=0,o=0,c=-1,d=t.length,_,w=[];for(;n.numBatches-- >0;){for(o=Number.POSITIVE_INFINITY,c=-1;++c0&&(i[s++]=gr({type:new sn(r),length:o,nullCount:0,children:w.slice()})))}return[e=e.assign(r),i.map(I=>new Os(e,I))]}function fht(e,t,r,i,n){var s;let o=(t+63&-64)>>3;for(let c=-1,d=i.length;++c=t)w===t?r[c]=_:(r[c]=_.slice(0,t),n.numBatches=Math.max(n.numBatches,i[c].unshift(_.slice(t,w-t))));else{let I=e[c];e[c]=I.clone({nullable:!0}),r[c]=(s=_?._changeLengthAndBackfillNullBitmap(t))!==null&&s!==void 0?s:gr({type:I.type,length:t,nullCount:t,nullBitmap:new Uint8Array(o)})}}return r}var gW,Sa=class e{constructor(...t){var r,i;if(t.length===0)return this.batches=[],this.schema=new Xi([]),this._offsets=[0],this;let n,s;t[0]instanceof Xi&&(n=t.shift()),t.at(-1)instanceof Uint32Array&&(s=t.pop());let o=d=>{if(d){if(d instanceof Os)return[d];if(d instanceof e)return d.batches;if(d instanceof wi){if(d.type instanceof sn)return[new Os(new Xi(d.type.children),d)]}else{if(Array.isArray(d))return d.flatMap(_=>o(_));if(typeof d[Symbol.iterator]==\"function\")return[...d].flatMap(_=>o(_));if(typeof d==\"object\"){let _=Object.keys(d),w=_.map(N=>new xr([d[N]])),I=n??new Xi(_.map((N,j)=>new ai(String(N),w[j].type,w[j].nullable))),[,R]=XP(I,w);return R.length===0?[new Os(d)]:R}}}return[]},c=t.flatMap(d=>o(d));if(n=(i=n??((r=c[0])===null||r===void 0?void 0:r.schema))!==null&&i!==void 0?i:new Xi([]),!(n instanceof Xi))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");for(let d of c){if(!(d instanceof Os))throw new TypeError(\"Table constructor expects a [Schema, RecordBatch[]] pair.\");if(!wg(n,d.schema))throw new TypeError(\"Table and inner RecordBatch schemas must be equivalent.\")}this.schema=n,this.batches=c,this._offsets=s??jP(this.data)}get data(){return this.batches.map(({data:t})=>t)}get numCols(){return this.schema.fields.length}get numRows(){return this.data.reduce((t,r)=>t+r.length,0)}get nullCount(){return this._nullCount===-1&&(this._nullCount=VP(this.data)),this._nullCount}isValid(t){return!1}get(t){return null}set(t,r){}indexOf(t,r){return-1}[Symbol.iterator](){return this.batches.length>0?ov.visit(new xr(this.data)):new Array(0)[Symbol.iterator]()}toArray(){return[...this]}toString(){return`[\n ${this.toArray().join(`,\n `)}\n]`}concat(...t){let r=this.schema,i=this.data.concat(t.flatMap(({data:n})=>n));return new e(r,i.map(n=>new Os(r,n)))}slice(t,r){let i=this.schema;[t,r]=Ow({length:this.numRows},t,r);let n=GP(this.data,this._offsets,t,r);return new e(i,n.map(s=>new Os(i,s)))}getChild(t){return this.getChildAt(this.schema.fields.findIndex(r=>r.name===t))}getChildAt(t){if(t>-1&&ti.children[t]);if(r.length===0){let{type:i}=this.schema.fields[t],n=gr({type:i,length:0,nullCount:0});r.push(n._changeLengthAndBackfillNullBitmap(this.numRows))}return new xr(r)}return null}setChild(t,r){var i;return this.setChildAt((i=this.schema.fields)===null||i===void 0?void 0:i.findIndex(n=>n.name===t),r)}setChildAt(t,r){let i=this.schema,n=[...this.batches];if(t>-1&&tthis.getChildAt(_));[s[t],c[t]]=[o,r],[i,n]=XP(i,c)}return new e(i,n)}select(t){let r=this.schema.fields.reduce((i,n,s)=>i.set(n.name,s),new Map);return this.selectAt(t.map(i=>r.get(i)).filter(i=>i>-1))}selectAt(t){let r=this.schema.selectAt(t),i=this.batches.map(n=>n.selectAt(t));return new e(r,i)}assign(t){let r=this.schema.fields,[i,n]=t.schema.fields.reduce((c,d,_)=>{let[w,I]=c,R=r.findIndex(N=>N.name===d.name);return~R?I[R]=_:w.push(_),c},[[],[]]),s=this.schema.assign(t.schema),o=[...r.map((c,d)=>[d,n[d]]).map(([c,d])=>d===void 0?this.getChildAt(c):t.getChildAt(d)),...i.map(c=>t.getChildAt(c))].filter(Boolean);return new e(...XP(s,o))}};gW=Symbol.toStringTag;Sa[gW]=(e=>(e.schema=null,e.batches=[],e._offsets=new Uint32Array([0]),e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,e.isValid=sv(zw),e.get=sv(po.getVisitFn(Lt.Struct)),e.set=WP(wa.getVisitFn(Lt.Struct)),e.indexOf=HP(Ag.getVisitFn(Lt.Struct)),\"Table\"))(Sa.prototype);var yW,Os=class e{constructor(...t){switch(t.length){case 2:{if([this.schema]=t,!(this.schema instanceof Xi))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");if([,this.data=gr({nullCount:0,type:new sn(this.schema.fields),children:this.schema.fields.map(r=>gr({type:r.type,nullCount:0}))})]=t,!(this.data instanceof wi))throw new TypeError(\"RecordBatch constructor expects a [Schema, Data] pair.\");[this.schema,this.data]=_W(this.schema,this.data.children);break}case 1:{let[r]=t,{fields:i,children:n,length:s}=Object.keys(r).reduce((d,_,w)=>(d.children[w]=r[_],d.length=Math.max(d.length,r[_].length),d.fields[w]=ai.new({name:_,type:r[_].type,nullable:!0}),d),{length:0,fields:new Array,children:new Array}),o=new Xi(i),c=gr({type:new sn(i),length:s,children:n,nullCount:0});[this.schema,this.data]=_W(o,c.children,s);break}default:throw new TypeError(\"RecordBatch constructor expects an Object mapping names to child Data, or a [Schema, Data] pair.\")}}get dictionaries(){return this._dictionaries||(this._dictionaries=vW(this.schema.fields,this.data.children))}get numCols(){return this.schema.fields.length}get numRows(){return this.data.length}get nullCount(){return this.data.nullCount}isValid(t){return this.data.getValid(t)}get(t){return po.visit(this.data,t)}set(t,r){return wa.visit(this.data,t,r)}indexOf(t,r){return Ag.visit(this.data,t,r)}[Symbol.iterator](){return ov.visit(new xr([this.data]))}toArray(){return[...this]}concat(...t){return new Sa(this.schema,[this,...t])}slice(t,r){let[i]=new xr([this.data]).slice(t,r).data;return new e(this.schema,i)}getChild(t){var r;return this.getChildAt((r=this.schema.fields)===null||r===void 0?void 0:r.findIndex(i=>i.name===t))}getChildAt(t){return t>-1&&tn.name===t),r)}setChildAt(t,r){let i=this.schema,n=this.data;if(t>-1&&tc.name===s);~o&&(n[o]=this.data.children[o])}return new e(r,gr({type:i,length:this.numRows,children:n}))}selectAt(t){let r=this.schema.selectAt(t),i=t.map(s=>this.data.children[s]).filter(Boolean),n=gr({type:new sn(r.fields),length:this.numRows,children:i});return new e(r,n)}};yW=Symbol.toStringTag;Os[yW]=(e=>(e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,\"RecordBatch\"))(Os.prototype);function _W(e,t,r=t.reduce((i,n)=>Math.max(i,n.length),0)){var i;let n=[...e.fields],s=[...t],o=(r+63&-64)>>3;for(let[c,d]of e.fields.entries()){let _=t[c];(!_||_.length!==r)&&(n[c]=d.clone({nullable:!0}),s[c]=(i=_?._changeLengthAndBackfillNullBitmap(r))!==null&&i!==void 0?i:gr({type:d.type,length:r,nullCount:r,nullBitmap:new Uint8Array(o)}))}return[e.assign(n),gr({type:new sn(n),length:r,children:s})]}function vW(e,t,r=new Map){var i,n;if(((i=e?.length)!==null&&i!==void 0?i:0)>0&&e?.length===t?.length)for(let s=-1,o=e.length;++sgr({type:n.type})),i=gr({type:new sn(t.fields),nullCount:0,children:r});super(t,i)}};var tf=class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,r){return this.bb_pos=t,this.bb=r,this}static getRootAsMessage(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMessage(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt16(this.bb_pos+t):$i.V1}headerType(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):Ai.NONE}header(t){let r=this.bb.__offset(this.bb_pos,8);return r?this.bb.__union(t,this.bb_pos+r):null}bodyLength(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb_pos+t):BigInt(\"0\")}customMetadata(t,r){let i=this.bb.__offset(this.bb_pos,12);return i?(r||new Oo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+i)+t*4),this.bb):null}customMetadataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}static startMessage(t){t.startObject(5)}static addVersion(t,r){t.addFieldInt16(0,r,$i.V1)}static addHeaderType(t,r){t.addFieldInt8(1,r,Ai.NONE)}static addHeader(t,r){t.addFieldOffset(2,r,0)}static addBodyLength(t,r){t.addFieldInt64(3,r,BigInt(\"0\"))}static addCustomMetadata(t,r){t.addFieldOffset(4,r,0)}static createCustomMetadataVector(t,r){t.startVector(4,r.length,4);for(let i=r.length-1;i>=0;i--)t.addOffset(r[i]);return t.endVector()}static startCustomMetadataVector(t,r){t.startVector(4,r,4)}static endMessage(t){return t.endObject()}static finishMessageBuffer(t,r){t.finish(r)}static finishSizePrefixedMessageBuffer(t,r){t.finish(r,void 0,!0)}static createMessage(t,r,i,n,s,o){return e.startMessage(t),e.addVersion(t,r),e.addHeaderType(t,i),e.addHeader(t,n),e.addBodyLength(t,s),e.addCustomMetadata(t,o),e.endMessage(t)}};var vO=class extends Tr{visit(t,r){return t==null||r==null?void 0:super.visit(t,r)}visitNull(t,r){return vw.startNull(r),vw.endNull(r)}visitInt(t,r){return Zh.startInt(r),Zh.addBitWidth(r,t.bitWidth),Zh.addIsSigned(r,t.isSigned),Zh.endInt(r)}visitFloat(t,r){return am.startFloatingPoint(r),am.addPrecision(r,t.precision),am.endFloatingPoint(r)}visitBinary(t,r){return Aw.startBinary(r),Aw.endBinary(r)}visitLargeBinary(t,r){return gw.startLargeBinary(r),gw.endLargeBinary(r)}visitBool(t,r){return mw.startBool(r),mw.endBool(r)}visitUtf8(t,r){return bw.startUtf8(r),bw.endUtf8(r)}visitLargeUtf8(t,r){return _w.startLargeUtf8(r),_w.endLargeUtf8(r)}visitDecimal(t,r){return ld.startDecimal(r),ld.addScale(r,t.scale),ld.addPrecision(r,t.precision),ld.addBitWidth(r,t.bitWidth),ld.endDecimal(r)}visitDate(t,r){return im.startDate(r),im.addUnit(r,t.unit),im.endDate(r)}visitTime(t,r){return up.startTime(r),up.addUnit(r,t.unit),up.addBitWidth(r,t.bitWidth),up.endTime(r)}visitTimestamp(t,r){let i=t.timezone&&r.createString(t.timezone)||void 0;return hp.startTimestamp(r),hp.addUnit(r,t.unit),i!==void 0&&hp.addTimezone(r,i),hp.endTimestamp(r)}visitInterval(t,r){return lm.startInterval(r),lm.addUnit(r,t.unit),lm.endInterval(r)}visitDuration(t,r){return nm.startDuration(r),nm.addUnit(r,t.unit),nm.endDuration(r)}visitList(t,r){return yw.startList(r),yw.endList(r)}visitStruct(t,r){return xw.startStruct_(r),xw.endStruct_(r)}visitUnion(t,r){Yh.startTypeIdsVector(r,t.typeIds.length);let i=Yh.createTypeIdsVector(r,t.typeIds);return Yh.startUnion(r),Yh.addMode(r,t.mode),Yh.addTypeIds(r,i),Yh.endUnion(r)}visitDictionary(t,r){let i=this.visit(t.indices,r);return ad.startDictionaryEncoding(r),ad.addId(r,BigInt(t.id)),ad.addIsOrdered(r,t.isOrdered),i!==void 0&&ad.addIndexType(r,i),ad.endDictionaryEncoding(r)}visitFixedSizeBinary(t,r){return sm.startFixedSizeBinary(r),sm.addByteWidth(r,t.byteWidth),sm.endFixedSizeBinary(r)}visitFixedSizeList(t,r){return om.startFixedSizeList(r),om.addListSize(r,t.listSize),om.endFixedSizeList(r)}visitMap(t,r){return cm.startMap(r),cm.addKeysSorted(r,t.keysSorted),cm.endMap(r)}},KP=new vO;function SW(e,t=new Map){return new Xi(dht(e,t),JP(e.metadata),t)}function xO(e){return new Ta(e.count,MW(e.columns),EW(e.columns))}function TW(e){return new uc(xO(e.data),e.id,e.isDelta)}function dht(e,t){return(e.fields||[]).filter(Boolean).map(r=>ai.fromJSON(r,t))}function xW(e,t){return(e.children||[]).filter(Boolean).map(r=>ai.fromJSON(r,t))}function MW(e){return(e||[]).reduce((t,r)=>[...t,new rh(r.count,pht(r.VALIDITY)),...MW(r.children)],[])}function EW(e,t=[]){for(let r=-1,i=(e||[]).length;++rt+ +(r===0),0)}function PW(e,t){let r,i,n,s,o,c;return!t||!(s=e.dictionary)?(o=wW(e,xW(e,t)),n=new ai(e.name,o,e.nullable,JP(e.metadata))):t.has(r=s.id)?(i=(i=s.indexType)?bW(i):new Xh,c=new ac(t.get(r),i,r,s.isOrdered),n=new ai(e.name,c,e.nullable,JP(e.metadata))):(i=(i=s.indexType)?bW(i):new Xh,t.set(r,o=wW(e,xW(e,t))),c=new ac(o,i,r,s.isOrdered),n=new ai(e.name,c,e.nullable,JP(e.metadata))),n||null}function JP(e=[]){return new Map(e.map(({key:t,value:r})=>[t,r]))}function bW(e){return new os(e.isSigned,e.bitWidth)}function wW(e,t){let r=e.type.name;switch(r){case\"NONE\":return new ia;case\"null\":return new ia;case\"binary\":return new qu;case\"largebinary\":return new cd;case\"utf8\":return new Zu;case\"largeutf8\":return new ud;case\"bool\":return new rc;case\"list\":return new nc((t||[])[0]);case\"struct\":return new sn(t||[]);case\"struct_\":return new sn(t||[])}switch(r){case\"int\":{let i=e.type;return new os(i.isSigned,i.bitWidth)}case\"floatingpoint\":{let i=e.type;return new fo(Gi[i.precision])}case\"decimal\":{let i=e.type;return new Yu(i.scale,i.precision,i.bitWidth)}case\"date\":{let i=e.type;return new $u(to[i.unit])}case\"time\":{let i=e.type;return new ic(dr[i.unit],i.bitWidth)}case\"timestamp\":{let i=e.type;return new Qu(dr[i.unit],i.timezone)}case\"interval\":{let i=e.type;return new Xu(Do[i.unit])}case\"duration\":{let i=e.type;return new Ku(dr[i.unit])}case\"union\":{let i=e.type,[n,...s]=(i.mode+\"\").toLowerCase(),o=n.toUpperCase()+s.join(\"\");return new sc(yn[o],i.typeIds||[],t||[])}case\"fixedsizebinary\":{let i=e.type;return new Ju(i.byteWidth)}case\"fixedsizelist\":{let i=e.type;return new Pl(i.listSize,(t||[])[0])}case\"map\":{let i=e.type;return new oc((t||[])[0],i.keysSorted)}}throw new Error(`Unrecognized type: \"${r}\"`)}var Aht=hg,mht=ru,hc=class e{static fromJSON(t,r){let i=new e(0,$i.V5,r);return i._createHeader=ght(t,r),i}static decode(t){t=new mht(Br(t));let r=tf.getRootAsMessage(t),i=r.bodyLength(),n=r.version(),s=r.headerType(),o=new e(i,n,s);return o._createHeader=_ht(r,s),o}static encode(t){let r=new Aht,i=-1;return t.isSchema()?i=Xi.encode(r,t.header()):t.isRecordBatch()?i=Ta.encode(r,t.header()):t.isDictionaryBatch()&&(i=uc.encode(r,t.header())),tf.startMessage(r),tf.addVersion(r,$i.V5),tf.addHeader(r,i),tf.addHeaderType(r,t.headerType),tf.addBodyLength(r,BigInt(t.bodyLength)),tf.finishMessageBuffer(r,tf.endMessage(r)),r.asUint8Array()}static from(t,r=0){if(t instanceof Xi)return new e(0,$i.V5,Ai.Schema,t);if(t instanceof Ta)return new e(r,$i.V5,Ai.RecordBatch,t);if(t instanceof uc)return new e(r,$i.V5,Ai.DictionaryBatch,t);throw new Error(`Unrecognized Message header: ${t}`)}get type(){return this.headerType}get version(){return this._version}get headerType(){return this._headerType}get bodyLength(){return this._bodyLength}header(){return this._createHeader()}isSchema(){return this.headerType===Ai.Schema}isRecordBatch(){return this.headerType===Ai.RecordBatch}isDictionaryBatch(){return this.headerType===Ai.DictionaryBatch}constructor(t,r,i,n){this._version=r,this._headerType=i,this.body=new Uint8Array(0),n&&(this._createHeader=()=>n),this._bodyLength=ms(t)}},Ta=class{get nodes(){return this._nodes}get length(){return this._length}get buffers(){return this._buffers}constructor(t,r,i){this._nodes=r,this._buffers=i,this._length=ms(t)}},uc=class{get id(){return this._id}get data(){return this._data}get isDelta(){return this._isDelta}get length(){return this.data.length}get nodes(){return this.data.nodes}get buffers(){return this.data.buffers}constructor(t,r,i=!1){this._data=t,this._isDelta=i,this._id=ms(r)}},cc=class{constructor(t,r){this.offset=ms(t),this.length=ms(r)}},rh=class{constructor(t,r){this.length=ms(t),this.nullCount=ms(r)}};function ght(e,t){return()=>{switch(t){case Ai.Schema:return Xi.fromJSON(e);case Ai.RecordBatch:return Ta.fromJSON(e);case Ai.DictionaryBatch:return uc.fromJSON(e)}throw new Error(`Unrecognized Message type: { name: ${Ai[t]}, type: ${t} }`)}}function _ht(e,t){return()=>{switch(t){case Ai.Schema:return Xi.decode(e.header(new ec),new Map,e.version());case Ai.RecordBatch:return Ta.decode(e.header(new iu),e.version());case Ai.DictionaryBatch:return uc.decode(e.header(new cp),e.version())}throw new Error(`Unrecognized Message type: { name: ${Ai[t]}, type: ${t} }`)}}ai.encode=Iht;ai.decode=Eht;ai.fromJSON=PW;Xi.encode=Pht;Xi.decode=yht;Xi.fromJSON=SW;Ta.encode=Cht;Ta.decode=vht;Ta.fromJSON=xO;uc.encode=Lht;uc.decode=xht;uc.fromJSON=TW;rh.encode=kht;rh.decode=wht;cc.encode=Rht;cc.decode=bht;function yht(e,t=new Map,r=$i.V5){let i=Mht(e,t);return new Xi(i,t3(e),t,r)}function vht(e,t=$i.V5){if(e.compression()!==null)throw new Error(\"Record batch compression not implemented\");return new Ta(e.length(),Sht(e),Tht(e,t))}function xht(e,t=$i.V5){return new uc(Ta.decode(e.data(),t),e.id(),e.isDelta())}function bht(e){return new cc(e.offset(),e.length())}function wht(e){return new rh(e.length(),e.nullCount())}function Sht(e){let t=[];for(let r,i=-1,n=-1,s=e.nodesLength();++iai.encode(e,s));ec.startFieldsVector(e,r.length);let i=ec.createFieldsVector(e,r),n=t.metadata&&t.metadata.size>0?ec.createCustomMetadataVector(e,[...t.metadata].map(([s,o])=>{let c=e.createString(`${s}`),d=e.createString(`${o}`);return Oo.startKeyValue(e),Oo.addKey(e,c),Oo.addValue(e,d),Oo.endKeyValue(e)})):-1;return ec.startSchema(e),ec.addFields(e,i),ec.addEndianness(e,Dht?rm.Little:rm.Big),n!==-1&&ec.addCustomMetadata(e,n),ec.endSchema(e)}function Iht(e,t){let r=-1,i=-1,n=-1,s=t.type,o=t.typeId;Ne.isDictionary(s)?(o=s.dictionary.typeId,n=KP.visit(s,e),i=KP.visit(s.dictionary,e)):i=KP.visit(s,e);let c=(s.children||[]).map(w=>ai.encode(e,w)),d=rl.createChildrenVector(e,c),_=t.metadata&&t.metadata.size>0?rl.createCustomMetadataVector(e,[...t.metadata].map(([w,I])=>{let R=e.createString(`${w}`),N=e.createString(`${I}`);return Oo.startKeyValue(e),Oo.addKey(e,R),Oo.addValue(e,N),Oo.endKeyValue(e)})):-1;return t.name&&(r=e.createString(t.name)),rl.startField(e),rl.addType(e,i),rl.addTypeType(e,o),rl.addChildren(e,d),rl.addNullable(e,!!t.nullable),r!==-1&&rl.addName(e,r),n!==-1&&rl.addDictionary(e,n),_!==-1&&rl.addCustomMetadata(e,_),rl.endField(e)}function Cht(e,t){let r=t.nodes||[],i=t.buffers||[];iu.startNodesVector(e,r.length);for(let o of r.slice().reverse())rh.encode(e,o);let n=e.endVector();iu.startBuffersVector(e,i.length);for(let o of i.slice().reverse())cc.encode(e,o);let s=e.endVector();return iu.startRecordBatch(e),iu.addLength(e,BigInt(t.length)),iu.addNodes(e,n),iu.addBuffers(e,s),iu.endRecordBatch(e)}function Lht(e,t){let r=Ta.encode(e,t.data);return cp.startDictionaryBatch(e),cp.addId(e,BigInt(t.id)),cp.addIsDelta(e,t.isDelta),cp.addData(e,r),cp.endDictionaryBatch(e)}function kht(e,t){return Qy.createFieldNode(e,BigInt(t.length),BigInt(t.nullCount))}function Rht(e,t){return $y.createBuffer(e,BigInt(t.offset),BigInt(t.length))}var Dht=(()=>{let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]===256})();var wO=e=>`Expected ${Ai[e]} Message in stream, but was null or length 0.`,SO=e=>`Header pointer of flatbuffer-encoded ${Ai[e]} Message is null or length 0.`,kW=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,RW=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`,Lv=class{constructor(t){this.source=t instanceof dd?t:new dd(t)}[Symbol.iterator](){return this}next(){let t;return(t=this.readMetadataLength()).done?Un:t.value===-1&&(t=this.readMetadataLength()).done?Un:(t=this.readMetadata(t.value)).done?Un:t}throw(t){return this.source.throw(t)}return(t){return this.source.return(t)}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(wO(t));return r.value}readMessageBody(t){if(t<=0)return new Uint8Array(0);let r=Br(this.source.read(t));if(r.byteLength[...n,...s.VALIDITY&&[s.VALIDITY]||[],...s.TYPE_ID&&[s.TYPE_ID]||[],...s.OFFSET&&[s.OFFSET]||[],...s.DATA&&[s.DATA]||[],...r(s.children)],[])}}readMessage(t){let r;if((r=this.next()).done)return null;if(t!=null&&r.value.headerType!==t)throw new Error(wO(t));return r.value}readSchema(){let t=Ai.Schema,r=this.readMessage(t),i=r?.header();if(!r||!i)throw new Error(SO(t));return i}},e3=4,bO=\"ARROW1\",kv=new Uint8Array(bO.length);for(let e=0;ethis):this}readRecordBatch(t){return this._impl.isFile()?this._impl.readRecordBatch(t):null}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}toDOMStream(){return ba.toDOMStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this})}toNodeStream(){return ba.toNodeStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this},{objectMode:!0})}static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}static from(t){return t instanceof e?t:lP(t)?Bht(t):uP(t)?Nht(t):tu(t)?rr(this,void 0,void 0,function*(){return yield e.from(yield t)}):hP(t)||cw(t)||dP(t)||Wu(t)?zht(new eh(t)):Fht(new dd(t))}static readAll(t){return t instanceof e?t.isSync()?OW(t):BW(t):lP(t)||ArrayBuffer.isView(t)||Wh(t)||cP(t)?OW(t):BW(t)}},yp=class extends au{constructor(t){super(t),this._impl=t}readAll(){return[...this]}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return Jc(this,arguments,function*(){yield ri(yield*Zy(Gh(this[Symbol.iterator]())))})}},Tg=class extends au{constructor(t){super(t),this._impl=t}readAll(){var t,r,i,n;return rr(this,void 0,void 0,function*(){let s=new Array;try{for(var o=!0,c=Gh(this),d;d=yield c.next(),t=d.done,!t;o=!0){n=d.value,o=!1;let _=n;s.push(_)}}catch(_){r={error:_}}finally{try{!o&&!t&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}return s})}[Symbol.iterator](){throw new Error(\"AsyncRecordBatchStreamReader is not Iterable\")}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}},Mg=class extends yp{constructor(t){super(t),this._impl=t}},i3=class extends Tg{constructor(t){super(t),this._impl=t}},n3=class{get numDictionaries(){return this._dictionaryIndex}get numRecordBatches(){return this._recordBatchIndex}constructor(t=new Map){this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=t}isSync(){return!1}isAsync(){return!1}isFile(){return!1}isStream(){return!1}reset(t){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=t,this.dictionaries=new Map,this}_loadRecordBatch(t,r){let i=this._loadVectors(t,r,this.schema.fields),n=gr({type:new sn(this.schema.fields),length:t.length,children:i});return new Os(this.schema,n)}_loadDictionaryBatch(t,r){let{id:i,isDelta:n}=t,{dictionaries:s,schema:o}=this,c=s.get(i);if(n||!c){let d=o.dictionaries.get(i),_=this._loadVectors(t.data,r,[d]);return(c&&n?c.concat(new xr(_)):new xr(_)).memoize()}return c.memoize()}_loadVectors(t,r,i){return new Gw(r,t.nodes,t.buffers,this.dictionaries,this.schema.metadataVersion).visitMany(i)}},Dv=class extends n3{constructor(t,r){super(r),this._reader=lP(t)?new d2(this._handle=t):new Lv(this._handle=t)}isSync(){return!0}isStream(){return!0}[Symbol.iterator](){return this}cancel(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}open(t){return this.closed||(this.autoDestroy=FW(this,t),this.schema||(this.schema=this._reader.readSchema())||this.cancel()),this}throw(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(t):Un}return(t){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(t):Un}next(){if(this.closed)return Un;let t,{_reader:r}=this;for(;t=this._readNextMessageAndValidate();)if(t.isSchema())this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),n=r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,n)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),n=r.readMessageBody(t.bodyLength),s=this._loadDictionaryBatch(i,n);this.dictionaries.set(i.id,s)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Sg(this.schema)}):this.return()}_readNextMessageAndValidate(t){return this._reader.readMessage(t)}},Ov=class extends n3{constructor(t,r){super(r),this._reader=new f2(this._handle=t)}isAsync(){return!0}isStream(){return!0}[Symbol.asyncIterator](){return this}cancel(){return rr(this,void 0,void 0,function*(){!this.closed&&(this.closed=!0)&&(yield this.reset()._reader.return(),this._reader=null,this.dictionaries=null)})}open(t){return rr(this,void 0,void 0,function*(){return this.closed||(this.autoDestroy=FW(this,t),this.schema||(this.schema=yield this._reader.readSchema())||(yield this.cancel())),this})}throw(t){return rr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.throw(t):Un})}return(t){return rr(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.return(t):Un})}next(){return rr(this,void 0,void 0,function*(){if(this.closed)return Un;let t,{_reader:r}=this;for(;t=yield this._readNextMessageAndValidate();)if(t.isSchema())yield this.reset(t.header());else if(t.isRecordBatch()){this._recordBatchIndex++;let i=t.header(),n=yield r.readMessageBody(t.bodyLength);return{done:!1,value:this._loadRecordBatch(i,n)}}else if(t.isDictionaryBatch()){this._dictionaryIndex++;let i=t.header(),n=yield r.readMessageBody(t.bodyLength),s=this._loadDictionaryBatch(i,n);this.dictionaries.set(i.id,s)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new Sg(this.schema)}):yield this.return()})}_readNextMessageAndValidate(t){return rr(this,void 0,void 0,function*(){return yield this._reader.readMessage(t)})}},s3=class extends Dv{get footer(){return this._footer}get numDictionaries(){return this._footer?this._footer.numDictionaries:0}get numRecordBatches(){return this._footer?this._footer.numRecordBatches:0}constructor(t,r){super(t instanceof Uw?t:new Uw(t),r)}isSync(){return!0}isFile(){return!0}open(t){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;for(let r of this._footer.dictionaryBatches())r&&this._readDictionaryBatch(this._dictionaryIndex++)}return super.open(t)}readRecordBatch(t){var r;if(this.closed)return null;this._footer||this.open();let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&this._handle.seek(i.offset)){let n=this._reader.readMessage(Ai.RecordBatch);if(n?.isRecordBatch()){let s=n.header(),o=this._reader.readMessageBody(n.bodyLength);return this._loadRecordBatch(s,o)}}return null}_readDictionaryBatch(t){var r;let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&this._handle.seek(i.offset)){let n=this._reader.readMessage(Ai.DictionaryBatch);if(n?.isDictionaryBatch()){let s=n.header(),o=this._reader.readMessageBody(n.bodyLength),c=this._loadDictionaryBatch(s,o);this.dictionaries.set(s.id,c)}}}_readFooter(){let{_handle:t}=this,r=t.size-TO,i=t.readInt32(r),n=t.readAt(r-i,i);return pp.decode(n)}_readNextMessageAndValidate(t){var r;if(this._footer||this.open(),this._footer&&this._recordBatchIndexsuper.open}});return rr(this,void 0,void 0,function*(){if(!this.closed&&!this._footer){this.schema=(this._footer=yield this._readFooter()).schema;for(let i of this._footer.dictionaryBatches())i&&(yield this._readDictionaryBatch(this._dictionaryIndex++))}return yield r.open.call(this,t)})}readRecordBatch(t){var r;return rr(this,void 0,void 0,function*(){if(this.closed)return null;this._footer||(yield this.open());let i=(r=this._footer)===null||r===void 0?void 0:r.getRecordBatch(t);if(i&&(yield this._handle.seek(i.offset))){let n=yield this._reader.readMessage(Ai.RecordBatch);if(n?.isRecordBatch()){let s=n.header(),o=yield this._reader.readMessageBody(n.bodyLength);return this._loadRecordBatch(s,o)}}return null})}_readDictionaryBatch(t){var r;return rr(this,void 0,void 0,function*(){let i=(r=this._footer)===null||r===void 0?void 0:r.getDictionaryBatch(t);if(i&&(yield this._handle.seek(i.offset))){let n=yield this._reader.readMessage(Ai.DictionaryBatch);if(n?.isDictionaryBatch()){let s=n.header(),o=yield this._reader.readMessageBody(n.bodyLength),c=this._loadDictionaryBatch(s,o);this.dictionaries.set(s.id,c)}}})}_readFooter(){return rr(this,void 0,void 0,function*(){let{_handle:t}=this;t._pending&&(yield t._pending);let r=t.size-TO,i=yield t.readInt32(r),n=yield t.readAt(r-i,i);return pp.decode(n)})}_readNextMessageAndValidate(t){return rr(this,void 0,void 0,function*(){if(this._footer||(yield this.open()),this._footer&&this._recordBatchIndex=4?r3(t)?new Mg(new s3(e.read())):new yp(new Dv(e)):new yp(new Dv(function*(){}()))}function zht(e){return rr(this,void 0,void 0,function*(){let t=yield e.peek(Rv+7&-8);return t&&t.byteLength>=4?r3(t)?new Mg(new s3(yield e.read())):new Tg(new Ov(e)):new Tg(new Ov(function(){return Jc(this,arguments,function*(){})}()))})}function Nht(e){return rr(this,void 0,void 0,function*(){let{size:t}=yield e.stat(),r=new dm(e,t);return t>=DW&&r3(yield r.readAt(0,Rv+7&-8))?new i3(new MO(r)):new Tg(new Ov(r))})}var as=class e extends Tr{static assemble(...t){let r=n=>n.flatMap(s=>Array.isArray(s)?r(s):s instanceof Os?s.data.children:s.data),i=new e;return i.visitMany(r(t)),i}constructor(){super(),this._byteLength=0,this._nodes=[],this._buffers=[],this._bufferRegions=[]}visit(t){if(t instanceof xr)return this.visitMany(t.data),this;let{type:r}=t;if(!Ne.isDictionary(r)){let{length:i}=t;if(i>2147483647)throw new RangeError(\"Cannot write arrays larger than 2^31 - 1 in length\");if(Ne.isUnion(r))this.nodes.push(new rh(i,0));else{let{nullCount:n}=t;Ne.isNull(r)||ef.call(this,n<=0?new Uint8Array(0):dg(t.offset,i,t.nullBitmap)),this.nodes.push(new rh(i,n))}}return super.visit(t)}visitNull(t){return this}visitDictionary(t){return this.visit(t.clone(t.type.indices))}get nodes(){return this._nodes}get buffers(){return this._buffers}get byteLength(){return this._byteLength}get bufferRegions(){return this._bufferRegions}};function ef(e){let t=e.byteLength+7&-8;return this.buffers.push(e),this.bufferRegions.push(new cc(this._byteLength,t)),this._byteLength+=t,this}function Uht(e){var t;let{type:r,length:i,typeIds:n,valueOffsets:s}=e;if(ef.call(this,n),r.mode===yn.Sparse)return PO.call(this,e);if(r.mode===yn.Dense){if(e.offset<=0)return ef.call(this,s),PO.call(this,e);{let o=new Int32Array(i),c=Object.create(null),d=Object.create(null);for(let _,w,I=-1;++I{let I=r.typeIds[w],R=c[I],N=d[I];return _.slice(R,Math.min(i,N))}))}}return this}function Vht(e){let t;return e.nullCount>=e.length?ef.call(this,new Uint8Array(0)):(t=e.values)instanceof Uint8Array?ef.call(this,dg(e.offset,e.length,t)):ef.call(this,pg(e.values))}function vp(e){return ef.call(this,e.values.subarray(0,e.length*e.stride))}function o3(e){let{length:t,values:r,valueOffsets:i}=e,n=ms(i[0]),s=ms(i[t]),o=Math.min(s-n,r.byteLength-n);return ef.call(this,AP(-n,t+1,i)),ef.call(this,r.subarray(n,n+o)),this}function IO(e){let{length:t,valueOffsets:r}=e;if(r){let{[0]:i,[t]:n}=r;return ef.call(this,AP(-i,t+1,r)),this.visit(e.children[0].slice(i,n-i))}return this.visit(e.children[0])}function PO(e){return this.visitMany(e.type.children.map((t,r)=>e.children[r]).filter(Boolean))[0]}as.prototype.visitBool=Vht;as.prototype.visitInt=vp;as.prototype.visitFloat=vp;as.prototype.visitUtf8=o3;as.prototype.visitLargeUtf8=o3;as.prototype.visitBinary=o3;as.prototype.visitLargeBinary=o3;as.prototype.visitFixedSizeBinary=vp;as.prototype.visitDate=vp;as.prototype.visitTimestamp=vp;as.prototype.visitTime=vp;as.prototype.visitDecimal=vp;as.prototype.visitList=IO;as.prototype.visitStruct=PO;as.prototype.visitUnion=Uht;as.prototype.visitInterval=vp;as.prototype.visitDuration=vp;as.prototype.visitFixedSizeList=IO;as.prototype.visitMap=IO;var Eg=class extends gg{static throughNode(t){throw new Error('\"throughNode\" not available in this environment')}static throughDOM(t,r){throw new Error('\"throughDOM\" not available in this environment')}constructor(t){super(),this._position=0,this._started=!1,this._sink=new fd,this._schema=null,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,El(t)||(t={autoDestroy:!0,writeLegacyIpcFormat:!1}),this._autoDestroy=typeof t.autoDestroy==\"boolean\"?t.autoDestroy:!0,this._writeLegacyIpcFormat=typeof t.writeLegacyIpcFormat==\"boolean\"?t.writeLegacyIpcFormat:!1}toString(t=!1){return this._sink.toString(t)}toUint8Array(t=!1){return this._sink.toUint8Array(t)}writeAll(t){return tu(t)?t.then(r=>this.writeAll(r)):Wu(t)?LO(this,t):CO(this,t)}get closed(){return this._sink.closed}[Symbol.asyncIterator](){return this._sink[Symbol.asyncIterator]()}toDOMStream(t){return this._sink.toDOMStream(t)}toNodeStream(t){return this._sink.toNodeStream(t)}close(){return this.reset()._sink.close()}abort(t){return this.reset()._sink.abort(t)}finish(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}reset(t=this._sink,r=null){return t===this._sink||t instanceof fd?this._sink=t:(this._sink=new fd,t&&QG(t)?this.toDOMStream({type:\"bytes\"}).pipeTo(t):t&&XG(t)&&this.toNodeStream({objectMode:!1}).pipe(t)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._dictionaryDeltaOffsets=new Map,(!r||!wg(r,this._schema))&&(r==null?(this._position=0,this._schema=null):(this._started=!0,this._schema=r,this._writeSchema(r))),this}write(t){let r=null;if(this._sink){if(t==null)return this.finish()&&void 0;if(t instanceof Sa&&!(r=t.schema))return this.finish()&&void 0;if(t instanceof Os&&!(r=t.schema))return this.finish()&&void 0}else throw new Error(\"RecordBatchWriter is closed\");if(r&&!wg(r,this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,r)}t instanceof Os?t instanceof Sg||this._writeRecordBatch(t):t instanceof Sa?this.writeAll(t.batches):Wh(t)&&this.writeAll(t)}_writeMessage(t,r=8){let i=r-1,n=hc.encode(t),s=n.byteLength,o=this._writeLegacyIpcFormat?4:8,c=s+o+i&~i,d=c-s-o;return t.headerType===Ai.RecordBatch?this._recordBatchBlocks.push(new Ap(c,t.bodyLength,this._position)):t.headerType===Ai.DictionaryBatch&&this._dictionaryBlocks.push(new Ap(c,t.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(c-o)),s>0&&this._write(n),this._writePadding(d)}_write(t){if(this._started){let r=Br(t);r&&r.byteLength>0&&(this._sink.write(r),this._position+=r.byteLength)}return this}_writeSchema(t){return this._writeMessage(hc.from(t))}_writeFooter(t){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}_writeMagic(){return this._write(kv)}_writePadding(t){return t>0?this._write(new Uint8Array(t)):this}_writeRecordBatch(t){let{byteLength:r,nodes:i,bufferRegions:n,buffers:s}=as.assemble(t),o=new Ta(t.numRows,i,n),c=hc.from(o,r);return this._writeDictionaries(t)._writeMessage(c)._writeBodyBuffers(s)}_writeDictionaryBatch(t,r,i=!1){this._dictionaryDeltaOffsets.set(r,t.length+(this._dictionaryDeltaOffsets.get(r)||0));let{byteLength:n,nodes:s,bufferRegions:o,buffers:c}=as.assemble(new xr([t])),d=new Ta(t.length,s,o),_=new uc(d,r,i),w=hc.from(_,n);return this._writeMessage(w)._writeBodyBuffers(c)}_writeBodyBuffers(t){let r,i,n;for(let s=-1,o=t.length;++s0&&(this._write(r),(n=(i+7&-8)-i)>0&&this._writePadding(n));return this}_writeDictionaries(t){for(let[r,i]of t.dictionaries){let n=this._dictionaryDeltaOffsets.get(r)||0;if(n===0||(i=i?.slice(n)).length>0)for(let s of i.data)this._writeDictionaryBatch(s,r,n>0),n+=s.length}return this}},p2=class e extends Eg{static writeAll(t,r){let i=new e(r);return tu(t)?t.then(n=>i.writeAll(n)):Wu(t)?LO(i,t):CO(i,t)}},A2=class e extends Eg{static writeAll(t){let r=new e;return tu(t)?t.then(i=>r.writeAll(i)):Wu(t)?LO(r,t):CO(r,t)}constructor(){super(),this._autoDestroy=!0}_writeSchema(t){return this._writeMagic()._writePadding(2)}_writeFooter(t){let r=pp.encode(new pp(t,$i.V5,this._recordBatchBlocks,this._dictionaryBlocks));return super._writeFooter(t)._write(r)._write(Int32Array.of(r.byteLength))._writeMagic()}};function CO(e,t){let r=t;t instanceof Sa&&(r=t.batches,e.reset(void 0,t.schema));for(let i of r)e.write(i);return e.finish()}function LO(e,t){var r,i,n,s,o,c,d;return rr(this,void 0,void 0,function*(){try{for(r=!0,i=Gh(t);n=yield i.next(),s=n.done,!s;r=!0){d=n.value,r=!1;let _=d;e.write(_)}}catch(_){o={error:_}}finally{try{!r&&!s&&(c=i.return)&&(yield c.call(i))}finally{if(o)throw o.error}}return e.finish()})}function zW(e,t){if(Wu(e))return Ght(e,t);if(Wh(e))return jht(e,t);throw new Error(\"toDOMStream() must be called with an Iterable or AsyncIterable\")}function jht(e,t){let r=null,i=t?.type===\"bytes\"||!1,n=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){s(o,r||(r=e[Symbol.iterator]()))},pull(o){r?s(o,r):o.close()},cancel(){(r?.return&&r.return()||!0)&&(r=null)}}),Object.assign({highWaterMark:i?n:void 0},t));function s(o,c){let d,_=null,w=o.desiredSize||null;for(;!(_=c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(d=Br(_.value))&&(w!=null&&i&&(w=w-d.byteLength+1),_.value=d),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()}}function Ght(e,t){let r=null,i=t?.type===\"bytes\"||!1,n=t?.highWaterMark||Math.pow(2,24);return new ReadableStream(Object.assign(Object.assign({},t),{start(o){return rr(this,void 0,void 0,function*(){yield s(o,r||(r=e[Symbol.asyncIterator]()))})},pull(o){return rr(this,void 0,void 0,function*(){r?yield s(o,r):o.close()})},cancel(){return rr(this,void 0,void 0,function*(){(r?.return&&(yield r.return())||!0)&&(r=null)})}}),Object.assign({highWaterMark:i?n:void 0},t));function s(o,c){return rr(this,void 0,void 0,function*(){let d,_=null,w=o.desiredSize||null;for(;!(_=yield c.next(i?w:null)).done;)if(ArrayBuffer.isView(_.value)&&(d=Br(_.value))&&(w!=null&&i&&(w=w-d.byteLength+1),_.value=d),o.enqueue(_.value),w!=null&&--w<=0)return;o.close()})}}function VW(e){return new kO(e)}var kO=class{constructor(t){this._numChunks=0,this._finished=!1,this._bufferedSize=0;let{[\"readableStrategy\"]:r,[\"writableStrategy\"]:i,[\"queueingStrategy\"]:n=\"count\"}=t,s=YG(t,[\"readableStrategy\",\"writableStrategy\",\"queueingStrategy\"]);this._controller=null,this._builder=vg(s),this._getSize=n!==\"bytes\"?NW:UW;let{[\"highWaterMark\"]:o=n===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},r),{[\"highWaterMark\"]:c=n===\"bytes\"?Math.pow(2,14):1e3}=Object.assign({},i);this.readable=new ReadableStream({cancel:()=>{this._builder.clear()},pull:d=>{this._maybeFlush(this._builder,this._controller=d)},start:d=>{this._maybeFlush(this._builder,this._controller=d)}},{highWaterMark:o,size:n!==\"bytes\"?NW:UW}),this.writable=new WritableStream({abort:()=>{this._builder.clear()},write:()=>{this._maybeFlush(this._builder,this._controller)},close:()=>{this._maybeFlush(this._builder.finish(),this._controller)}},{highWaterMark:c,size:d=>this._writeValueAndReturnChunkSize(d)})}_writeValueAndReturnChunkSize(t){let r=this._bufferedSize;return this._bufferedSize=this._getSize(this._builder.append(t)),this._bufferedSize-r}_maybeFlush(t,r){r!=null&&(this._bufferedSize>=r.desiredSize&&++this._numChunks&&this._enqueue(r,t.toVector()),t.finished&&((t.length>0||this._numChunks===0)&&++this._numChunks&&this._enqueue(r,t.toVector()),!this._finished&&(this._finished=!0)&&this._enqueue(r,null)))}_enqueue(t,r){this._bufferedSize=0,this._controller=null,r==null?t.close():t.enqueue(r)}},NW=e=>{var t;return(t=e?.length)!==null&&t!==void 0?t:0},UW=e=>{var t;return(t=e?.byteLength)!==null&&t!==void 0?t:0};function a3(e,t){let r=new fd,i=null,n=new ReadableStream({cancel(){return rr(this,void 0,void 0,function*(){yield r.close()})},start(c){return rr(this,void 0,void 0,function*(){yield o(c,i||(i=yield s()))})},pull(c){return rr(this,void 0,void 0,function*(){i?yield o(c,i):c.close()})}});return{writable:new WritableStream(r,Object.assign({highWaterMark:Math.pow(2,14)},e)),readable:n};function s(){return rr(this,void 0,void 0,function*(){return yield(yield au.from(r)).open(t)})}function o(c,d){return rr(this,void 0,void 0,function*(){let _=c.desiredSize,w=null;for(;!(w=yield d.next()).done;)if(c.enqueue(w.value),_!=null&&--_<=0)return;c.close()})}}function l3(e,t){let r=new this(e),i=new eh(r),n=new ReadableStream({cancel(){return rr(this,void 0,void 0,function*(){yield i.cancel()})},pull(o){return rr(this,void 0,void 0,function*(){yield s(o)})},start(o){return rr(this,void 0,void 0,function*(){yield s(o)})}},Object.assign({highWaterMark:Math.pow(2,14)},t));return{writable:new WritableStream(r,e),readable:n};function s(o){return rr(this,void 0,void 0,function*(){let c=null,d=o.desiredSize;for(;c=yield i.read(d||null);)if(o.enqueue(c),d!=null&&(d-=c.byteLength)<=0)return;o.close()})}}function m2(e){let t=au.from(e);return tu(t)?t.then(r=>m2(r)):t.isAsync()?t.readAll().then(r=>new Sa(r)):new Sa(t.readAll())}var hft=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},GD),AO),oO),WD),zD),sO),VD),{compareSchemas:wg,compareFields:pW,compareTypes:AW});ba.toDOMStream=zW;Jn.throughDOM=VW;au.throughDOM=a3;Mg.throughDOM=a3;yp.throughDOM=a3;Eg.throughDOM=l3;A2.throughDOM=l3;p2.throughDOM=l3;var fft=\"0.5.0\",dft=`https://cdn.jsdelivr.net/npm/parquet-wasm@${fft}/esm/arrow2_bg.wasm`,RO=!1;async function jW(){RO||(await qG(dft),RO=!0)}function pft(e){if(!RO)throw new Error(\"wasm not ready\");console.time(\"readParquet\");let t=GG(new Uint8Array(e.buffer)).intoIPCStream(),r=m2(t);return console.timeEnd(\"readParquet\"),r}function g2(e){let t=[];for(let r of e){let i=pft(r);i.batches.length!==1&&console.warn(\"Expected one batch\"),t.push(...i.batches)}return new Sa(t)}var GW=xi(Zi(),1);function DO(e){return e instanceof Array&&e?.[0]instanceof DataView?e?.[0].byteLength>0?g2(e).getChildAt(0):null:e}var Pg=class{model;callbacks;updateStateCallback;constructor(t,r){this.model=t,this.model.on(\"change\",r),this.updateStateCallback=r,this.callbacks=new Map,this.callbacks.set(\"change\",r)}async loadSubModels(){}initRegularAttribute(t,r){this[r]=this.model.get(t),this.model.off(`change:${t}`);let i=()=>{this[r]=this.model.get(t)};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}initVectorizedAccessor(t,r){this[r]=DO(this.model.get(t)),this.model.off(`change:${t}`);let i=()=>{this[r]=DO(this.model.get(t))};this.model.on(`change:${t}`,i),this.callbacks.set(`change:${t}`,i)}finalize(){for(let[t,r]of Object.entries(this.callbacks))this.model.off(t,r)}};async function u3(e,t){let r=[];for(let i of t)r.push(e.get_model(i.slice(10)));return await Promise.all(r)}var Aft=`\n uniform bool brushing_enabled;\n uniform int brushing_target;\n uniform vec2 brushing_mousePos;\n uniform float brushing_radius;\n\n #ifdef NON_INSTANCED_MODEL\n attribute vec2 brushingTargets;\n #else\n attribute vec2 instanceBrushingTargets;\n #endif\n\n varying float brushing_isVisible;\n\n bool brushing_isPointInRange(vec2 position) {\n if (!brushing_enabled) {\n return true;\n }\n vec2 source_commonspace = project_position(position);\n vec2 target_commonspace = project_position(brushing_mousePos);\n float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);\n\n return distance <= brushing_radius;\n }\n\n bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n }\n\n void brushing_setVisible(bool visible) {\n brushing_isVisible = float(visible);\n }\n`,mft=`\n uniform bool brushing_enabled;\n varying float brushing_isVisible;\n`,gft={source:0,target:1,custom:2,source_target:3},_ft={\"vs:DECKGL_FILTER_GL_POSITION\":`\n vec2 brushingTarget;\n vec2 brushingSource;\n if (brushing_target == 3) {\n brushingTarget = geometry.worldPositionAlt.xy;\n brushingSource = geometry.worldPosition.xy;\n } else if (brushing_target == 0) {\n brushingTarget = geometry.worldPosition.xy;\n } else if (brushing_target == 1) {\n brushingTarget = geometry.worldPositionAlt.xy;\n } else {\n #ifdef NON_INSTANCED_MODEL\n brushingTarget = brushingTargets;\n #else\n brushingTarget = instanceBrushingTargets;\n #endif\n }\n bool visible;\n if (brushing_target == 3) {\n visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n } else {\n visible = brushing_isPointInRange(brushingTarget);\n }\n brushing_setVisible(visible);\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (brushing_enabled && brushing_isVisible < 0.5) {\n discard;\n }\n `},WW={name:\"brushing\",dependencies:[Bh],vs:Aft,fs:mft,inject:_ft,getUniforms:e=>{if(!e||!(\"viewport\"in e))return{};let{brushingEnabled:t=!0,brushingRadius:r=1e4,brushingTarget:i=\"source\",mousePosition:n,viewport:s}=e;return{brushing_enabled:!!(t&&n&&s.containsPixel(n)),brushing_radius:r,brushing_target:gft[i]||0,brushing_mousePos:n?s.unproject([n.x-s.x,n.y-s.y]):[0,0]}}};var yft={getBrushingTarget:{type:\"accessor\",value:[0,0]},brushingTarget:\"source\",brushingEnabled:!0,brushingRadius:1e4},_m=class extends ju{getShaders(){return{modules:[WW]}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({brushingTargets:{size:2,accessor:\"getBrushingTarget\",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=()=>{var n;(n=this.getCurrentLayer())===null||n===void 0||n.setNeedsRedraw()},t.deck&&t.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}finalizeState(t,r){t.deck&&t.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}};G(_m,\"defaultProps\",yft);G(_m,\"extensionName\",\"BrushingExtension\");var HW=`\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n`,qW=`\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n`;function ZW(e){if(!e||!(\"extensions\"in e))return{};let{filterRange:t=[-1,1],filterEnabled:r=!0,filterTransformSize:i=!0,filterTransformColor:n=!0}=e,s=e.filterSoftRange||t;return{...Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:s[0],filter_softMax:s[1],filter_max:t[1]}:{filter_min:t.map(o=>o[0]),filter_softMin:s.map(o=>o[0]),filter_softMax:s.map(o=>o[1]),filter_max:t.map(o=>o[1])},filter_enabled:r,filter_useSoftMargin:!!e.filterSoftRange,filter_transformSize:r&&i,filter_transformColor:r&&n}}function vft(e){if(!e||!(\"extensions\"in e))return{};let t=ZW(e);if(Number.isFinite(t.filter_min)){let r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;let i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{let r=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((n,s)=>n-r[s]),t.filter_softMin=t.filter_softMin.map((n,s)=>n-r[s]),t.filter_min64High=r;let i=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((n,s)=>n-i[s]),t.filter_softMax=t.filter_softMax.map((n,s)=>n-i[s]),t.filter_max64High=i}return t}var YW={\"vs:#main-start\":`\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n `,\"vs:#main-end\":`\n if (dataFilter_value == 0.0) {\n gl_Position = vec4(0.);\n }\n `,\"vs:DECKGL_FILTER_SIZE\":`\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n `,\"fs:DECKGL_FILTER_COLOR\":`\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n `},$W={name:\"data-filter\",vs:HW,fs:qW,inject:YW,getUniforms:ZW},QW={name:\"data-filter-fp64\",vs:HW,fs:qW,inject:YW,getUniforms:vft};var xft=`#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n`,bft=`#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n`;function XW(e){return!!(e.getExtension(\"EXT_float_blend\")&&(e.getExtension(\"EXT_color_buffer_float\")||e.getExtension(\"WEBGL_color_buffer_float\")))}function KW(e,t){return t?new di(e,{width:1,height:1,attachments:{36064:new ci(e,{format:hr(e)?34836:6408,type:5126,mipmaps:!1})}}):new di(e,{width:256,height:64,depth:!1})}function JW(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new gn(e,{id:\"data-filter-aggregation-model\",vertexCount:1,isInstanced:!1,drawMode:0,vs:xft,fs:bft,...t})}var tH={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var Sft={getFilterValue:{type:\"accessor\",value:0},onFilteredItemsChange:{type:\"function\",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},eH={1:\"float\",2:\"vec2\",3:\"vec3\",4:\"vec4\"},ym=class extends ju{constructor({filterSize:t=1,fp64:r=!1,countItems:i=!1}={}){if(!eH[t])throw new Error(\"filterSize out of range\");super({filterSize:t,fp64:r,countItems:i})}getShaders(t){let{filterSize:r,fp64:i}=t.opts;return{modules:[i?QW:$W],defines:{DATAFILTER_TYPE:eH[r],DATAFILTER_DOUBLE:!!i}}}initializeState(t,r){let i=this.getAttributeManager();i&&i.add({filterValues:{size:r.opts.filterSize,type:r.opts.fp64?5130:5126,accessor:\"getFilterValue\",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});let{gl:n}=this.context;if(i&&r.opts.countItems){let s=XW(n);i.add({filterIndices:{size:s?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:(d,{index:_})=>{let w=d&&d.__source?d.__source.index:_;return s?(w+1)%255:[(w+1)%255,Math.floor(w/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let o=KW(n,s),c=JW(n,r.getShaders.call(this,r),s);this.setState({filterFBO:o,filterModel:c})}}updateState({props:t,oldProps:r}){if(this.state.filterModel){let n=this.getAttributeManager().attributes.filterValues.needsUpdate()||t.filterEnabled!==r.filterEnabled||t.filterRange!==r.filterRange||t.filterSoftRange!==r.filterSoftRange;n&&this.setState({filterNeedsUpdate:n})}}draw(t,r){let{filterFBO:i,filterModel:n,filterNeedsUpdate:s}=this.state,{onFilteredItemsChange:o}=this.props;if(s&&o&&n){let{attributes:{filterValues:c,filterIndices:d}}=this.getAttributeManager();n.setVertexCount(this.getNumInstances());let{gl:_}=this.context;Xf(_,{framebuffer:i,color:[0,0,0,0]}),n.updateModuleSettings(t.moduleParameters).setAttributes({...c.getShaderAttributes(),...d&&d.getShaderAttributes()}).draw({framebuffer:i,parameters:{...tH,viewport:[0,0,i.width,i.height]}});let w=Ih(i),I=0;for(let R=0;R 1000\n }\n\n if (collision_enabled) {\n vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0));\n vec2 collision_texCoords = collision_getCoords(collision_common_position);\n collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0);\n if (collision_fade < 0.0001) {\n // Position outside clip space bounds to discard\n position = vec4(0.0, 0.0, 2.0, 1.0);\n }\n }\n `,\"vs:DECKGL_FILTER_COLOR\":`\n color.a *= collision_fade;\n `},Eft=(e,t)=>{if(!e||!(\"dummyCollisionMap\"in e))return{};let{collisionFBO:r,drawToCollisionMap:i,dummyCollisionMap:n}=e;return{collision_sort:!!i,collision_texture:!i&&r?r:n}},rH={name:\"collision\",dependencies:[Bh],vs:Tft,inject:Mft,getUniforms:Eft};var _2=class extends Kl{renderCollisionMap(t,r){let i=this.gl,n=1;return An(i,{scissorTest:!0,scissor:[n,n,t.width-2*n,t.height-2*n],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({...r,target:t,pass:\"collision\"}))}getModuleParameters(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}}};var y2=class extends Kl{constructor(t,r){super(t,r),G(this,\"maskMap\",void 0),G(this,\"fbo\",void 0);let{mapSize:i=2048}=r;this.maskMap=new ci(t,{width:i,height:i,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.fbo=new di(t,{id:\"maskmap\",width:i,height:i,attachments:{36064:this.maskMap}})}render(t){let r=this.gl,i=[!1,!1,!1,!1];return i[t.channel]=!0,An(r,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:i,depthTest:!1},()=>super.render({...t,target:this.fbo,pass:\"mask\"}))}shouldDrawLayer(t){return t.props.operation.includes(\"mask\")}delete(){this.fbo.delete(),this.maskMap.delete()}};function iH(e,t){let r=[1/0,1/0,-1/0,-1/0];for(let i of e){let n=i.getBounds();if(n){let s=i.projectPosition(n[0],{viewport:t,autoOffset:!1}),o=i.projectPosition(n[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],s[0]),r[1]=Math.min(r[1],s[1]),r[2]=Math.max(r[2],o[0]),r[3]=Math.max(r[3],o[1])}}return Number.isFinite(r[0])?r:null}var Pft=2048;function nH(e){let{bounds:t,viewport:r,border:i=0}=e,{isGeospatial:n}=r;if(t[2]<=t[0]||t[3]<=t[1])return null;let s=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),{width:o,height:c,zoom:d}=e;if(d===void 0){o=o-i*2,c=c-i*2;let _=Math.min(o/(t[2]-t[0]),c/(t[3]-t[1]));d=Math.min(Math.log2(_),20)}else if(!o||!c){let _=2**d;o=Math.round(Math.abs(t[2]-t[0])*_),c=Math.round(Math.abs(t[3]-t[1])*_);let w=Pft-i*2;if(o>w||c>w){let I=w/Math.max(o,c);o=Math.round(o*I),c=Math.round(c*I),d+=Math.log2(I)}}return n?new tc({id:r.id,x:i,y:i,width:o,height:c,longitude:s[0],latitude:s[1],zoom:d,orthographic:!0}):new Gy({id:r.id,x:i,y:i,width:o,height:c,target:s,zoom:d,flipY:!1})}function Ift(e,t){let r;if(t&&t.length===2){let[s,o]=t,c=e.getBounds({z:s}),d=e.getBounds({z:o});r=[Math.min(c[0],d[0]),Math.min(c[1],d[1]),Math.max(c[2],d[2]),Math.max(c[3],d[3])]}else r=e.getBounds();let i=e.projectPosition(r.slice(0,2)),n=e.projectPosition(r.slice(2,4));return[i[0],i[1],n[0],n[1]]}function sH(e,t,r){if(!e)return[0,0,1,1];let i=Ift(t,r),n=Cft(i);return e[2]-e[0]<=n[2]-n[0]&&e[3]-e[1]<=n[3]-n[1]?e:[Math.max(e[0],n[0]),Math.max(e[1],n[1]),Math.min(e[2],n[2]),Math.min(e[3],n[3])]}function Cft(e){let t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,n=(e[1]+e[3])/2;return[i-t,n-r,i+t,n+r]}var v2=class{constructor(){G(this,\"id\",\"mask-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",0),G(this,\"dummyMaskMap\",void 0),G(this,\"channels\",[]),G(this,\"masks\",null),G(this,\"maskPass\",void 0),G(this,\"maskMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{layers:r,layerFilter:i,viewports:n,onViewportActive:s,views:o,isPicking:c}){let d=!1;if(this.dummyMaskMap||(this.dummyMaskMap=new ci(t,{width:1,height:1})),c)return{didRender:d};let _=r.filter(N=>N.props.visible&&N.props.operation.includes(\"mask\"));if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:d};this.masks={},this.maskPass||(this.maskPass=new y2(t,{id:\"default-mask\"}),this.maskMap=this.maskPass.maskMap);let w=this._sortMaskChannels(_),I=n[0],R=!this.lastViewport||!this.lastViewport.equals(I);if(I.resolution!==void 0)return er.warn(\"MaskExtension is not supported in GlobeView\")(),{didRender:d};for(let N in w){let j=this._renderChannel(w[N],{layerFilter:i,onViewportActive:s,views:o,viewport:I,viewportChanged:R});d||(d=j)}return{didRender:d}}_renderChannel(t,{layerFilter:r,onViewportActive:i,views:n,viewport:s,viewportChanged:o}){let c=!1,d=this.channels[t.index];if(!d)return c;let _=t===d||t.layers.length!==d.layers.length||t.layers.some((w,I)=>w!==d.layers[I]||w.props.transitions)||t.layerBounds.some((w,I)=>w!==d.layerBounds[I]);if(t.bounds=d.bounds,t.maskBounds=d.maskBounds,this.channels[t.index]=t,_||o){this.lastViewport=s;let w=iH(t.layers,s);if(t.bounds=w&&sH(w,s),_||!Co(t.bounds,d.bounds)){let{maskPass:I,maskMap:R}=this,N=w&&nH({bounds:t.bounds,viewport:s,width:R.width,height:R.height,border:1});t.maskBounds=N?N.getBounds():[0,0,1,1],I.render({pass:\"mask\",channel:t.index,layers:t.layers,layerFilter:r,viewports:N?[N]:[],onViewportActive:i,views:n,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},c}_sortMaskChannels(t){let r={},i=0;for(let n of t){let{id:s}=n.root,o=r[s];if(!o){if(++i>4){er.warn(\"Too many mask layers. The max supported is 4\")();continue}o={id:s,index:this.channels.findIndex(c=>c?.id===s),layers:[],layerBounds:[],coordinateOrigin:n.root.props.coordinateOrigin,coordinateSystem:n.root.props.coordinateSystem},r[s]=o}o.layers.push(n),o.layerBounds.push(n.getBounds())}for(let n=0;n<4;n++){let s=this.channels[n];(!s||!(s.id in r))&&(this.channels[n]=null)}for(let n in r){let s=r[n];s.index<0&&(s.index=this.channels.findIndex(o=>!o),this.channels[s.index]=s)}return r}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}};var OO=2,x2=class{constructor(){G(this,\"id\",\"collision-filter-effect\"),G(this,\"props\",null),G(this,\"useInPicking\",!0),G(this,\"order\",1),G(this,\"channels\",{}),G(this,\"collisionFilterPass\",void 0),G(this,\"collisionFBOs\",{}),G(this,\"dummyCollisionMap\",void 0),G(this,\"lastViewport\",void 0)}preRender(t,{effects:r,layers:i,layerFilter:n,viewports:s,onViewportActive:o,views:c,isPicking:d,preRenderStats:_={}}){var w;if(this.dummyCollisionMap||(this.dummyCollisionMap=new ci(t,{width:1,height:1})),d)return;let I=i.filter(({props:{visible:Z,collisionEnabled:K}})=>Z&&K);if(I.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new _2(t,{id:\"default-collision-filter\"}));let R=r?.filter(Z=>Z.constructor===v2),N=(w=_[\"mask-effect\"])===null||w===void 0?void 0:w.didRender,j=this._groupByCollisionGroup(t,I),Y=s[0],it=!this.lastViewport||!this.lastViewport.equals(Y)||N;for(let Z in j){let K=this.collisionFBOs[Z],J=j[Z];K.resize({width:t.canvas.width/OO,height:t.canvas.height/OO}),this._render(J,{effects:R,layerFilter:n,onViewportActive:o,views:c,viewport:Y,viewportChanged:it})}}_render(t,{effects:r,layerFilter:i,onViewportActive:n,views:s,viewport:o,viewportChanged:c}){let{collisionGroup:d}=t,_=this.channels[d];if(!_)return;let w=c||t===_||!ho(_.layers,t.layers,1)||t.layerBounds.some((I,R)=>!Co(I,_.layerBounds[R]))||t.allLayersLoaded!==_.allLayersLoaded||t.layers.some(I=>I.props.transitions);if(this.channels[d]=t,w){this.lastViewport=o;let I=this.collisionFBOs[d];this.collisionFilterPass.renderCollisionMap(I,{pass:\"collision-filter\",isPicking:!0,layers:t.layers,effects:r,layerFilter:i,viewports:o?[o]:[],onViewportActive:n,views:s,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:wl(I.gl)/OO}})}}_groupByCollisionGroup(t,r){let i={};for(let n of r){let{collisionGroup:s}=n.props,o=i[s];o||(o={collisionGroup:s,layers:[],layerBounds:[],allLayersLoaded:!0},i[s]=o),o.layers.push(n),o.layerBounds.push(n.getBounds()),n.isLoaded||(o.allLayersLoaded=!1)}for(let n of Object.keys(i))this.collisionFBOs[n]||this.createFBO(t,n),this.channels[n]||(this.channels[n]=i[n]);for(let n of Object.keys(this.collisionFBOs))i[n]||this.destroyFBO(n);return i}getModuleParameters(t){let{collisionGroup:r}=t.props,{collisionFBOs:i,dummyCollisionMap:n}=this;return{collisionFBO:i[r],dummyCollisionMap:n}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let t of Object.keys(this.collisionFBOs))this.destroyFBO(t);this.collisionFBOs={},this.lastViewport=void 0}createFBO(t,r){let{width:i,height:n}=t.canvas,s=new ci(t,{width:i,height:n,parameters:{10241:9728,10240:9728,10242:33071,10243:33071}}),o=new tl(t,{format:33189,width:i,height:n});this.collisionFBOs[r]=new di(t,{id:\"Collision-\".concat(r),width:i,height:n,attachments:{36064:s,36096:o}})}destroyFBO(t){let r=this.collisionFBOs[t];for(let i of Object.values(r.attachments))i.delete();r.delete(),delete this.collisionFBOs[t]}};var Lft={getCollisionPriority:{type:\"accessor\",value:0},collisionEnabled:!0,collisionGroup:{type:\"string\",value:\"default\"},collisionTestProps:{}},vm=class extends ju{getShaders(){return{modules:[rH]}}draw({uniforms:t,context:r,moduleParameters:i}){let{collisionEnabled:n}=this.props,{collisionFBO:s,drawToCollisionMap:o}=i,c=n&&!!s;t.collision_enabled=c,o&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(t,r){var i;if(this.getAttributeManager()===null)return;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new x2),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:\"getCollisionPriority\",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}};G(vm,\"defaultProps\",Lft);G(vm,\"extensionName\",\"CollisionFilterExtension\");var Bv=class extends Pg{static extensionType;constructor(t,r){super(t,r)}},b2=class extends Bv{static extensionType=\"brushing\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new _m,r.initRegularAttribute(\"brushing_enabled\",\"brushingEnabled\"),r.initRegularAttribute(\"brushing_target\",\"brushingTarget\"),r.initRegularAttribute(\"brushing_radius\",\"brushingRadius\"),r.initVectorizedAccessor(\"get_brushing_target\",\"getBrushingTarget\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"brushingEnabled\",\"brushingTarget\",\"brushingRadius\",\"getBrushingTarget\"]}},w2=class extends Bv{static extensionType=\"collision-filter\";extensionInstance;constructor(t,r,i){super(t,i),this.extensionInstance=new vm,r.initRegularAttribute(\"collision_enabled\",\"collisionEnabled\"),r.initRegularAttribute(\"collision_group\",\"collisionGroup\"),r.initRegularAttribute(\"collision_test_props\",\"collisionTestProps\"),r.initVectorizedAccessor(\"get_collision_priority\",\"getCollisionPriority\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"collisionEnabled\",\"collisionGroup\",\"collisionTestProps\",\"getCollisionPriority\"]}},h3=class extends Bv{static extensionType=\"data-filter\";extensionInstance;constructor(t,r,i){super(t,i);let n=this.model.get(\"filter_size\");this.extensionInstance=new ym({filterSize:n}),r.initRegularAttribute(\"filter_enabled\",\"filterEnabled\"),r.initRegularAttribute(\"filter_range\",\"filterRange\"),r.initRegularAttribute(\"filter_soft_range\",\"filterSoftRange\"),r.initRegularAttribute(\"filter_transform_size\",\"filterTransformSize\"),r.initRegularAttribute(\"filter_transform_color\",\"filterTransformColor\"),r.initVectorizedAccessor(\"get_filter_value\",\"getFilterValue\"),r.extensionLayerPropertyNames=[...r.extensionLayerPropertyNames,\"filterEnabled\",\"filterRange\",\"filterSoftRange\",\"filterTransformSize\",\"filterTransformColor\",\"getFilterValue\"]}};async function BO(e,t,r){let i=e.get(\"_extension_type\"),n;switch(i){case b2.extensionType:n=new b2(e,t,r);break;case w2.extensionType:n=new w2(e,t,r);break;case h3.extensionType:n=new h3(e,t,r);break;default:throw new Error(`no known model for extension type ${i}`)}return await n.loadSubModels(),n}var Ig=class extends Pg{pickable;visible;opacity;autoHighlight;extensions;extensionLayerPropertyNames=[];constructor(t,r){super(t,r),this.initRegularAttribute(\"pickable\",\"pickable\"),this.initRegularAttribute(\"visible\",\"visible\"),this.initRegularAttribute(\"opacity\",\"opacity\"),this.initRegularAttribute(\"auto_highlight\",\"autoHighlight\"),this.extensions=[]}async loadSubModels(){await this.initLayerExtensions()}extensionInstances(){return this.extensions.map(t=>t.extensionInstance)}extensionProps(){let t={};for(let r of this.extensionLayerPropertyNames)this[r]!==void 0&&this[r]!==null&&(t[r]=this[r]);return t}onClick(t){t.index&&(this.model.set(\"selected_index\",t.index),this.model.save_changes())}baseLayerProps(){return{extensions:this.extensionInstances(),...this.extensionProps(),id:this.model.model_id,pickable:this.pickable,visible:this.visible,opacity:this.opacity,autoHighlight:this.autoHighlight,onClick:this.onClick.bind(this)}}async initLayerExtensions(){let t=async()=>{let r=this.model.get(\"extensions\");if(!r){this.extensions=[];return}let i=await u3(this.model.widget_manager,r),n=[];for(let s of i){let o=await BO(s,this,this.updateStateCallback);n.push(o)}this.extensions=n};await t(),this.model.off(\"change:extensions\"),this.model.on(\"change:extensions\",t),this.callbacks.set(\"change:extensions\",t)}};var oH=`#define SHADER_NAME arc-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec4 instanceSourceColors;\nattribute vec4 instanceTargetColors;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\nattribute float instanceHeights;\nattribute float instanceTilts;\n\nuniform bool greatCircle;\nuniform bool useShortestPath;\nuniform float numSegments;\nuniform float opacity;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform int widthUnits;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\n\n float deltaZ = targetZ - sourceZ;\n float dh = distance * instanceHeights;\n if (dh == 0.0) {\n return sourceZ + deltaZ * ratio;\n }\n float unitZ = deltaZ / dh;\n float p2 = unitZ * unitZ + 1.0;\n float dir = step(deltaZ, 0.0);\n float z0 = mix(sourceZ, targetZ, dir);\n float r = mix(ratio, 1.0 - ratio, dir);\n return sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nfloat getSegmentRatio(float index) {\n return smoothstep(0.0, 1.0, index / (numSegments - 1.0));\n}\n\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\n float distance = length(source.xy - target.xy);\n float z = paraboloid(distance, source.z, target.z, segmentRatio);\n\n float tiltAngle = radians(instanceTilts);\n vec2 tiltDirection = normalize(target.xy - source.xy);\n vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\n\n return vec3(\n mix(source.xy, target.xy, segmentRatio) + tilt,\n z * cos(tiltAngle)\n );\n}\nfloat getAngularDist (vec2 source, vec2 target) {\n vec2 sourceRadians = radians(source);\n vec2 targetRadians = radians(target);\n vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\n vec2 shd_sq = sin_half_delta * sin_half_delta;\n\n float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\n return 2.0 * asin(sqrt(a));\n}\n\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\n vec2 lngLat;\n if(abs(angularDist - PI) < 0.001) {\n lngLat = (1.0 - t) * source.xy + t * target.xy;\n } else {\n float a = sin((1.0 - t) * angularDist);\n float b = sin(t * angularDist);\n vec3 p = source3D.yxz * a + target3D.yxz * b;\n lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n }\n\n float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\n\n return vec3(lngLat, z);\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n float segmentIndex = positions.x;\n float segmentRatio = getSegmentRatio(segmentIndex);\n float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\n float nextSegmentRatio = getSegmentRatio(min(numSegments - 1.0, segmentIndex + 1.0));\n float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\n isValid = 1.0;\n\n uv = vec2(segmentRatio, positions.y);\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n\n vec4 curr;\n vec4 next;\n vec3 source;\n vec3 target;\n\n if ((greatCircle || project_uProjectionMode == PROJECTION_MODE_GLOBE) && project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n source = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\n target = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\n float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\n\n vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\n vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\n vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\n\n if (abs(currPos.x - prevPos.x) > 180.0) {\n indexDir = -1.0;\n isValid = 0.0;\n } else if (abs(currPos.x - nextPos.x) > 180.0) {\n indexDir = 1.0;\n isValid = 0.0;\n }\n nextPos = indexDir < 0.0 ? prevPos : nextPos;\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n\n if (isValid == 0.0) {\n nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\n float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\n currPos = mix(currPos, nextPos, t);\n segmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n }\n\n vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\n vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\n \n curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\n next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n \n } else {\n vec3 source_world = instanceSourcePositions;\n vec3 target_world = instanceTargetPositions;\n if (useShortestPath) {\n source_world.x = mod(source_world.x + 180., 360.0) - 180.;\n target_world.x = mod(target_world.x + 180., 360.0) - 180.;\n\n float deltaLng = target_world.x - source_world.x;\n if (deltaLng > 180.) target_world.x -= 360.;\n if (deltaLng < -180.) source_world.x -= 360.;\n }\n source = project_position(source_world, instanceSourcePositions64Low);\n target = project_position(target_world, instanceTargetPositions64Low);\n float antiMeridianX = 0.0;\n\n if (useShortestPath) {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n antiMeridianX = -(project_uCoordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n }\n float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\n\n if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\n isValid = 0.0;\n indexDir = sign(segmentRatio - thresholdRatio);\n segmentRatio = thresholdRatio;\n }\n }\n\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n vec3 currPos = interpolateFlat(source, target, segmentRatio);\n vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\n\n if (useShortestPath) {\n if (nextPos.x < antiMeridianX) {\n currPos.x += TILE_SIZE;\n nextPos.x += TILE_SIZE;\n }\n }\n\n curr = project_common_position_to_clipspace(vec4(currPos, 1.0));\n next = project_common_position_to_clipspace(vec4(nextPos, 1.0));\n geometry.position = vec4(currPos, 1.0);\n }\n float widthPixels = clamp(\n project_size_to_pixel(instanceWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels\n );\n vec3 offset = vec3(\n getExtrusionOffset((next.xy - curr.xy) * indexDir, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n DECKGL_FILTER_GL_POSITION(curr, geometry);\n gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n\n vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\n vColor = vec4(color.rgb, color.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var aH=`#define SHADER_NAME arc-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nvoid main(void) {\n if (isValid == 0.0) {\n discard;\n }\n\n gl_FragColor = vColor;\n geometry.uv = uv;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var f3=[0,0,0,255],kft={getSourcePosition:{type:\"accessor\",value:e=>e.sourcePosition},getTargetPosition:{type:\"accessor\",value:e=>e.targetPosition},getSourceColor:{type:\"accessor\",value:f3},getTargetColor:{type:\"accessor\",value:f3},getWidth:{type:\"accessor\",value:1},getHeight:{type:\"accessor\",value:1},getTilt:{type:\"accessor\",value:0},greatCircle:!1,numSegments:{type:\"number\",value:50,min:1},widthUnits:\"pixels\",widthScale:{type:\"number\",value:1,min:0},widthMinPixels:{type:\"number\",value:0,min:0},widthMaxPixels:{type:\"number\",value:Number.MAX_SAFE_INTEGER,min:0}},xp=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getBounds(){var t;return(t=this.getAttributeManager())===null||t===void 0?void 0:t.getBounds([\"instanceSourcePositions\",\"instanceTargetPositions\"])}getShaders(){return super.getShaders({vs:oH,fs:aH,modules:[uo,ra]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getSourcePosition\"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getTargetPosition\"},instanceSourceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getSourceColor\",defaultValue:f3},instanceTargetColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getTargetColor\",defaultValue:f3},instanceWidths:{size:1,transition:!0,accessor:\"getWidth\",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:\"getHeight\",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:\"getTilt\",defaultValue:0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:n}=t;if(n.extensionsChanged||n.propsChanged&&r.numSegments!==i.numSegments){var s;let{gl:o}=this.context;(s=this.state.model)===null||s===void 0||s.delete(),this.state.model=this._getModel(o),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{widthUnits:r,widthScale:i,widthMinPixels:n,widthMaxPixels:s,greatCircle:o,wrapLongitude:c}=this.props;this.state.model.setUniforms(t).setUniforms({greatCircle:o,widthUnits:ta[r],widthScale:i,widthMinPixels:n,widthMaxPixels:s,useShortestPath:c}).draw()}_getModel(t){let{id:r,numSegments:i}=this.props,n=[];for(let o=0;o0&&j>0&&(c[I++]=w-s,c[I++]=w-s-1,c[I++]=w-1,c[I++]=w-s,c[I++]=w-1,c[I++]=w),w++}}return{vertexCount:o,positions:_,indices:c,texCoords:d}}function Oft(e){let t=new Float64Array(12);for(let r=0;r 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n`;var Fft=`\nvec3 packUVsIntoRGB(vec2 uv) {\n // Extract the top 8 bits. We want values to be truncated down so we can add a fraction\n vec2 uv8bit = floor(uv * 256.);\n\n // Calculate the normalized remainders of u and v parts that do not fit into 8 bits\n // Scale and clamp to 0-1 range\n vec2 uvFraction = fract(uv * 256.);\n vec2 uvFraction4bit = floor(uvFraction * 16.);\n\n // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates\n float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.;\n\n return vec3(uv8bit, fractions) / 255.;\n}\n`,cH=`\n#define SHADER_NAME bitmap-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D bitmapTexture;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\n`.concat(Fft,`\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n vec4 bitmapColor = texture2D(bitmapTexture, uv);\n\n gl_FragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n\n if (picking_uActive && !picking_uAttribute) {\n // Since instance information is not used, we can use picking color for pixel index\n gl_FragColor.rgb = packUVsIntoRGB(uv);\n }\n}\n`);var zft={image:{type:\"image\",value:null,async:!0},bounds:{type:\"array\",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:Wr.DEFAULT,desaturate:{type:\"number\",min:0,max:1,value:0},transparentColor:{type:\"color\",value:[0,0,0,0]},tintColor:{type:\"color\",value:[255,255,255]},textureParameters:{type:\"object\",ignore:!0}},bp=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:lH,fs:cH,modules:[uo,ra]})}initializeState(){let t=this.getAttributeManager();t.remove([\"instancePickingColors\"]);let r=!0;t.add({indices:{size:1,isIndexed:!0,update:i=>i.value=this.state.mesh.indices,noAlloc:r},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:i=>i.value=this.state.mesh.positions,noAlloc:r},texCoords:{size:2,update:i=>i.value=this.state.mesh.texCoords,noAlloc:r}})}updateState({props:t,oldProps:r,changeFlags:i}){let n=this.getAttributeManager();if(i.extensionsChanged){var s;let{gl:o}=this.context;(s=this.state.model)===null||s===void 0||s.delete(),this.state.model=this._getModel(o),n.invalidateAll()}if(t.bounds!==r.bounds){let o=this.state.mesh,c=this._createMesh();this.state.model.setVertexCount(c.vertexCount);for(let d in c)o&&o[d]!==c[d]&&n.invalidate(d);this.setState({mesh:c,...this._getCoordinateUniforms()})}else t._imageCoordinateSystem!==r._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(t){let{image:r}=this.props,i=t.info;if(!i.color||!r)return i.bitmap=null,i;let{width:n,height:s}=r;i.index=0;let o=Nft(i.color),c=[Math.floor(o[0]*n),Math.floor(o[1]*s)];return i.bitmap={size:{width:n,height:s},uv:o,pixel:c},i}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(t){super._updateAutoHighlight({...t,color:this.encodePickingColor(0)})}_createMesh(){let{bounds:t}=this.props,r=t;return uH(t)&&(r=[[t[0],t[1]],[t[0],t[3]],[t[2],t[3]],[t[2],t[1]]]),FO(r,this.context.viewport.resolution)}_getModel(t){return t?new gn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw(t){let{uniforms:r,moduleParameters:i}=t,{model:n,coordinateConversion:s,bounds:o,disablePicking:c}=this.state,{image:d,desaturate:_,transparentColor:w,tintColor:I}=this.props;i.pickingActive&&c||d&&n&&n.setUniforms(r).setUniforms({bitmapTexture:d,desaturate:_,transparentColor:w.map(R=>R/255),tintColor:I.slice(0,3).map(R=>R/255),coordinateConversion:s,bounds:o}).draw()}_getCoordinateUniforms(){let{LNGLAT:t,CARTESIAN:r,DEFAULT:i}=Wr,{_imageCoordinateSystem:n}=this.props;if(n!==i){let{bounds:s}=this.props;if(!uH(s))throw new Error(\"_imageCoordinateSystem only supports rectangular bounds\");let o=this.context.viewport.resolution?t:r;if(n=n===t?t:r,n===t&&o===r)return{coordinateConversion:-1,bounds:s};if(n===r&&o===t){let c=Ml([s[0],s[1]]),d=Ml([s[2],s[3]]);return{coordinateConversion:1,bounds:[c[0],c[1],d[0],d[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}};G(bp,\"layerName\",\"BitmapLayer\");G(bp,\"defaultProps\",zft);function Nft(e){let[t,r,i]=e,n=(i&240)/256,s=(i&15)/16;return[(t+s)/256,(r+n)/256]}function uH(e){return Number.isFinite(e[0])}var hH=`#define SHADER_NAME icon-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute vec4 instanceIconFrames;\nattribute float instanceColorModes;\nattribute vec2 instanceOffsets;\nattribute vec2 instancePixelOffset;\n\nuniform float sizeScale;\nuniform vec2 iconsTextureDim;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform bool billboard;\nuniform int sizeUnits;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = angle * PI / 180.0;\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n\n vec2 iconSize = instanceIconFrames.zw;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), \n sizeMinPixels, sizeMaxPixels\n );\n float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y;\n vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\n pixelOffset += instancePixelOffset;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); \n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n\n vTextureCoords = mix(\n instanceIconFrames.xy,\n instanceIconFrames.xy + iconSize,\n (positions.xy + 1.0) / 2.0\n ) / iconsTextureDim;\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n vColorMode = instanceColorModes;\n}\n`;var fH=`#define SHADER_NAME icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float alphaCutoff;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec4 texColor = texture2D(iconsTexture, vTextureCoords);\n vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\n float a = texColor.a * opacity * vColor.a;\n\n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color, a);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var Uft=1024,Vft=4,dH=()=>{},pH={10241:9987,10240:9729,10242:33071,10243:33071};function jft(e){return Math.pow(2,Math.ceil(Math.log2(e)))}function Gft(e,t,r,i){let n=Math.min(r/t.width,i/t.height),s=Math.floor(t.width*n),o=Math.floor(t.height*n);return n===1?{data:t,width:s,height:o}:(e.canvas.height=o,e.canvas.width=s,e.clearRect(0,0,s,o),e.drawImage(t,0,0,t.width,t.height,0,0,s,o),{data:e.canvas,width:s,height:o})}function S2(e){return e&&(e.id||e.url)}function Wft(e,t,r,i){let n=e.width,s=e.height,o=new ci(e.gl,{width:t,height:r,parameters:i});return JM(e,o,{targetY:0,width:n,height:s}),e.delete(),o}function AH(e,t,r){for(let i=0;io&&(AH(r,c,n),i=0,n=s+n+t,s=0,c=[]),c.push({icon:_,xOffset:i}),i=i+R+t,s=Math.max(s,I)}}return c.length>0&&AH(r,c,n),{mapping:r,rowHeight:s,xOffset:i,yOffset:n,canvasWidth:o,canvasHeight:jft(s+n+t)}}function qft(e,t,r){if(!e||!t)return null;r=r||{};let i={},{iterable:n,objectInfo:s}=Kc(e);for(let o of n){s.index++;let c=t(o,s),d=S2(c);if(!c)throw new Error(\"Icon is missing.\");if(!c.url)throw new Error(\"Icon url is missing.\");!i[d]&&(!r[d]||c.url!==r[d].url)&&(i[d]={...c,source:o,sourceIndex:s.index})}return i}var T2=class{constructor(t,{onUpdate:r=dH,onError:i=dH}){G(this,\"gl\",void 0),G(this,\"onUpdate\",void 0),G(this,\"onError\",void 0),G(this,\"_loadOptions\",null),G(this,\"_texture\",null),G(this,\"_externalTexture\",null),G(this,\"_mapping\",{}),G(this,\"_textureParameters\",null),G(this,\"_pendingCount\",0),G(this,\"_autoPacking\",!1),G(this,\"_xOffset\",0),G(this,\"_yOffset\",0),G(this,\"_rowHeight\",0),G(this,\"_buffer\",Vft),G(this,\"_canvasWidth\",Uft),G(this,\"_canvasHeight\",0),G(this,\"_canvas\",null),this.gl=t,this.onUpdate=r,this.onError=i}finalize(){var t;(t=this._texture)===null||t===void 0||t.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(t){let r=this._autoPacking?S2(t):t;return this._mapping[r]||{}}setProps({loadOptions:t,autoPacking:r,iconAtlas:i,iconMapping:n,textureParameters:s}){if(t&&(this._loadOptions=t),r!==void 0&&(this._autoPacking=r),n&&(this._mapping=n),i){var o;(o=this._texture)===null||o===void 0||o.delete(),this._texture=null,this._externalTexture=i}s&&(this._textureParameters=s)}get isLoaded(){return this._pendingCount===0}packIcons(t,r){if(!this._autoPacking||typeof document>\"u\")return;let i=Object.values(qft(t,r,this._mapping)||{});if(i.length>0){let{mapping:n,xOffset:s,yOffset:o,rowHeight:c,canvasHeight:d}=Hft({icons:i,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=c,this._mapping=n,this._xOffset=s,this._yOffset=o,this._canvasHeight=d,this._texture||(this._texture=new ci(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||pH})),this._texture.height!==this._canvasHeight&&(this._texture=Wft(this._texture,this._canvasWidth,this._canvasHeight,this._textureParameters||pH)),this.onUpdate(),this._canvas=this._canvas||document.createElement(\"canvas\"),this._loadIcons(i)}}_loadIcons(t){let r=this._canvas.getContext(\"2d\",{willReadFrequently:!0});for(let i of t)this._pendingCount++,VA(i.url,this._loadOptions).then(n=>{let s=S2(i),o=this._mapping[s],{x:c,y:d,width:_,height:w}=o,{data:I,width:R,height:N}=Gft(r,n,_,w);this._texture.setSubImageData({data:I,x:c+(_-R)/2,y:d+(w-N)/2,width:R,height:N}),o.width=R,o.height=N,this._texture.generateMipmap(),this.onUpdate()}).catch(n=>{this.onError({url:i.url,source:i.source,sourceIndex:i.sourceIndex,loadOptions:this._loadOptions,error:n})}).finally(()=>{this._pendingCount--})}};var mH=[0,0,0,255],Zft={iconAtlas:{type:\"image\",value:null,async:!0},iconMapping:{type:\"object\",value:{},async:!0},sizeScale:{type:\"number\",value:1,min:0},billboard:!0,sizeUnits:\"pixels\",sizeMinPixels:{type:\"number\",min:0,value:0},sizeMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:\"number\",value:.05,min:0,max:1},getPosition:{type:\"accessor\",value:e=>e.position},getIcon:{type:\"accessor\",value:e=>e.icon},getColor:{type:\"accessor\",value:mH},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},onIconError:{type:\"function\",value:null,optional:!0},textureParameters:{type:\"object\",ignore:!0}},wp=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:hH,fs:fH,modules:[uo,ra]})}initializeState(){this.state={iconManager:new T2(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceOffsets:{size:2,accessor:\"getIcon\",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:\"getIcon\",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:\"getIcon\",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getColor\",defaultValue:mH},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instancePixelOffset:{size:2,transition:!0,accessor:\"getPixelOffset\"}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:n}=t,s=this.getAttributeManager(),{iconAtlas:o,iconMapping:c,data:d,getIcon:_,textureParameters:w}=r,{iconManager:I}=this.state,R=o||this.internalState.isAsyncPropLoading(\"iconAtlas\");if(I.setProps({loadOptions:r.loadOptions,autoPacking:!R,iconAtlas:o,iconMapping:R?c:null,textureParameters:w}),R?i.iconMapping!==r.iconMapping&&s.invalidate(\"getIcon\"):(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getIcon))&&I.packIcons(d,_),n.extensionsChanged){var N;let{gl:j}=this.context;(N=this.state.model)===null||N===void 0||N.delete(),this.state.model=this._getModel(j),s.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(t){super.finalizeState(t),this.state.iconManager.finalize()}draw({uniforms:t}){let{sizeScale:r,sizeMinPixels:i,sizeMaxPixels:n,sizeUnits:s,billboard:o,alphaCutoff:c}=this.props,{iconManager:d}=this.state,_=d.getTexture();_&&this.state.model.setUniforms(t).setUniforms({iconsTexture:_,iconsTextureDim:[_.width,_.height],sizeUnits:ta[s],sizeScale:r,sizeMinPixels:i,sizeMaxPixels:n,billboard:o,alphaCutoff:c}).draw()}_getModel(t){let r=[-1,-1,-1,1,1,1,1,-1];return new gn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(t){var r;let i=(r=this.getCurrentLayer())===null||r===void 0?void 0:r.props.onIconError;i?i(t):er.error(t.error.message)()}getInstanceOffset(t){let{width:r,height:i,anchorX:n=r/2,anchorY:s=i/2}=this.state.iconManager.getIconMapping(t);return[r/2-n,i/2-s]}getInstanceColorMode(t){return this.state.iconManager.getIconMapping(t).mask?1:0}getInstanceIconFrame(t){let{x:r,y:i,width:n,height:s}=this.state.iconManager.getIconMapping(t);return[r,i,n,s]}};G(wp,\"defaultProps\",Zft);G(wp,\"layerName\",\"IconLayer\");var gH=`#define SHADER_NAME scatterplot-layer-vertex-shader\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceRadius;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform float radiusScale;\nuniform float radiusMinPixels;\nuniform float radiusMaxPixels;\nuniform float lineWidthScale;\nuniform float lineWidthMinPixels;\nuniform float lineWidthMaxPixels;\nuniform float stroked;\nuniform bool filled;\nuniform bool antialiasing;\nuniform bool billboard;\nuniform int radiusUnits;\nuniform int lineWidthUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n outerRadiusPixels = clamp(\n project_size_to_pixel(radiusScale * instanceRadius, radiusUnits),\n radiusMinPixels, radiusMaxPixels\n );\n float lineWidthPixels = clamp(\n project_size_to_pixel(lineWidthScale * instanceLineWidths, lineWidthUnits),\n lineWidthMinPixels, lineWidthMaxPixels\n );\n outerRadiusPixels += stroked * lineWidthPixels / 2.0;\n float edgePadding = antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0;\n unitPosition = edgePadding * positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n\n innerUnitRadius = 1.0 - stroked * lineWidthPixels / outerRadiusPixels;\n \n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = edgePadding * positions * outerRadiusPixels;\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var _H=`#define SHADER_NAME scatterplot-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool filled;\nuniform float stroked;\nuniform bool antialiasing;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\nvoid main(void) {\n geometry.uv = unitPosition;\n\n float distToCenter = length(unitPosition) * outerRadiusPixels;\n float inCircle = antialiasing ? \n smoothedge(distToCenter, outerRadiusPixels) : \n step(distToCenter, outerRadiusPixels);\n\n if (inCircle == 0.0) {\n discard;\n }\n\n if (stroked > 0.5) {\n float isLine = antialiasing ? \n smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\n step(innerUnitRadius * outerRadiusPixels, distToCenter);\n\n if (filled) {\n gl_FragColor = mix(vFillColor, vLineColor, isLine);\n } else {\n if (isLine == 0.0) {\n discard;\n }\n gl_FragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n }\n } else if (!filled) {\n discard;\n } else {\n gl_FragColor = vFillColor;\n }\n\n gl_FragColor.a *= inCircle;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var yH=[0,0,0,255],Yft={radiusUnits:\"meters\",radiusScale:{type:\"number\",min:0,value:1},radiusMinPixels:{type:\"number\",min:0,value:0},radiusMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:\"meters\",lineWidthScale:{type:\"number\",min:0,value:1},lineWidthMinPixels:{type:\"number\",min:0,value:0},lineWidthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:\"accessor\",value:e=>e.position},getRadius:{type:\"accessor\",value:1},getFillColor:{type:\"accessor\",value:yH},getLineColor:{type:\"accessor\",value:yH},getLineWidth:{type:\"accessor\",value:1},strokeWidth:{deprecatedFor:\"getLineWidth\"},outline:{deprecatedFor:\"stroked\"},getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},ih=class extends _n{getShaders(){return super.getShaders({vs:gH,fs:_H,modules:[uo,ra]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceRadius:{size:1,transition:!0,accessor:\"getRadius\",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){if(super.updateState(t),t.changeFlags.extensionsChanged){var r;let{gl:i}=this.context;(r=this.state.model)===null||r===void 0||r.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{radiusUnits:r,radiusScale:i,radiusMinPixels:n,radiusMaxPixels:s,stroked:o,filled:c,billboard:d,antialiasing:_,lineWidthUnits:w,lineWidthScale:I,lineWidthMinPixels:R,lineWidthMaxPixels:N}=this.props;this.state.model.setUniforms(t).setUniforms({stroked:o?1:0,filled:c,billboard:d,antialiasing:_,radiusUnits:ta[r],radiusScale:i,radiusMinPixels:n,radiusMaxPixels:s,lineWidthUnits:ta[w],lineWidthScale:I,lineWidthMinPixels:R,lineWidthMaxPixels:N}).draw()}_getModel(t){let r=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new gn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(r)}}}),isInstanced:!0})}};G(ih,\"defaultProps\",Yft);G(ih,\"layerName\",\"ScatterplotLayer\");var Fv={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function Cg(e,t,r={}){return vH(e,r)!==t?($ft(e,r),!0):!1}function vH(e,t={}){return Math.sign(d3(e,t))}function d3(e,t={}){let{start:r=0,end:i=e.length}=t,n=t.size||2,s=0;for(let o=r,c=i-n;o0){let n=!0;for(let s=0;st[2]&&(r|=2),e[1]t[3]&&(r|=8),r}function P2(e,t){let{size:r=2,broken:i=!1,gridResolution:n=10,gridOffset:s=[0,0],startIndex:o=0,endIndex:c=e.length}=t||{},d=(c-o)/r,_=[],w=[_],I=xm(e,0,r,o),R,N,j=wH(I,n,s,[]),Y=[];fc(_,I);for(let it=1;itr&&(_=[],w.push(_),fc(_,I)),N=E2(R,j)}fc(_,R),M2(I,R)}return i?w:w[0]}var xH=0,Xft=1;function A3(e,t){for(let r=0;r=0?(fc(_,N)&&I.push(Y),ht+=j):I.length&&(I[I.length-1]=xH),M2(it,N),Z=j,K=Y;return[J?{pos:d,types:t&&w}:null,ht?{pos:_,types:t&&I}:null]}function wH(e,t,r,i){let n=Math.floor((e[0]-r[0])/t)*t+r[0],s=Math.floor((e[1]-r[1])/t)*t+r[1];return i[0]=n,i[1]=s,i[2]=n+t,i[3]=s+t,i}function Kft(e,t,r){r&8?(e[1]+=t,e[3]+=t):r&4?(e[1]-=t,e[3]-=t):r&2?(e[0]+=t,e[2]+=t):r&1&&(e[0]-=t,e[2]-=t)}function Jft(e,t,r,i){let n=1/0,s=-1/0,o=1/0,c=-1/0;for(let d=0;ds?_:s,o=wc?w:c}return i[0][0]=n,i[0][1]=o,i[1][0]=s,i[1][1]=c,i}var tdt=85.051129;function zO(e,t){let{size:r=2,startIndex:i=0,endIndex:n=e.length,normalize:s=!0}=t||{},o=e.slice(i,n);SH(o,r,0,n-i);let c=P2(o,{size:r,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(s)for(let d of c)TH(d,r);return c}function NO(e,t=null,r){let{size:i=2,normalize:n=!0,edgeTypes:s=!1}=r||{};t=t||[];let o=[],c=[],d=0,_=0;for(let I=0;I<=t.length;I++){let R=t[I]||e.length,N=_,j=edt(e,i,d,R);for(let Y=j;Yn&&(n=c,s=o-1)}return s}function rdt(e,t,r,i,n=tdt){let s=e[r],o=e[i-t];if(Math.abs(s-o)>180){let c=xm(e,0,t,r);c[0]+=Math.round((o-s)/360)*360,fc(e,c),c[1]=Math.sign(c[1])*n,fc(e,c),c[0]=s,fc(e,c)}}function SH(e,t,r,i){let n=e[0],s;for(let o=r;o180||c<-180)&&(s-=Math.round(c/360)*360),e[o]=n=s}}function TH(e,t){let r,i=e.length/t;for(let s=0;s=i),n=n.flatMap(N=>[N[0],N[1]]),Cg(n,Fv.COUNTER_CLOCKWISE));let s=r>0,o=i+1,c=s?o*3+1:i,d=Math.PI*2/i,_=new Uint16Array(s?i*3*2:0),w=new Float32Array(c*3),I=new Float32Array(c*3),R=0;if(s){for(let N=0;N 0.0 && instanceElevations >= 0.0);\n float dotRadius = radius * coverage * shouldRender;\n\n geometry.pickingColor = instancePickingColors;\n vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation);\n vec3 centroidPosition64Low = instancePositions64Low;\n vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + offset) * dotRadius;\n if (radiusUnits == UNIT_METERS) {\n offset = project_size(offset);\n }\n vec3 pos = vec3(offset, 0.);\n DECKGL_FILTER_SIZE(pos, geometry);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z));\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n if (extruded && !isStroke) {\n#ifdef FLAT_SHADING\n position_commonspace = geometry.position;\n vColor = vec4(color.rgb, color.a * opacity);\n#else\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n#endif\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var EH=`#version 300 es\n#define SHADER_NAME column-layer-fragment-shader\n\nprecision highp float;\n\nuniform vec3 project_uCameraPosition;\nuniform bool extruded;\nuniform bool isStroke;\n\nout vec4 fragColor;\n\nin vec4 vColor;\n#ifdef FLAT_SHADING\nin vec4 position_commonspace;\n#endif\n\nvoid main(void) {\n fragColor = vColor;\n#ifdef FLAT_SHADING\n if (extruded && !isStroke && !picking_uActive) {\n vec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n fragColor.rgb = lighting_getLightColor(vColor.rgb, project_uCameraPosition, position_commonspace.xyz, normal);\n }\n#endif\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n`;var m3=[0,0,0,255],sdt={diskResolution:{type:\"number\",min:4,value:20},vertices:null,radius:{type:\"number\",min:0,value:1e3},angle:{type:\"number\",value:0},offset:{type:\"array\",value:[0,0]},coverage:{type:\"number\",min:0,max:1,value:1},elevationScale:{type:\"number\",min:0,value:1},radiusUnits:\"meters\",lineWidthUnits:\"meters\",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,getPosition:{type:\"accessor\",value:e=>e.position},getFillColor:{type:\"accessor\",value:m3},getLineColor:{type:\"accessor\",value:m3},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0,getColor:{deprecatedFor:[\"getFillColor\",\"getLineColor\"]}},rf=class extends _n{getShaders(){let{gl:t}=this.context,r=!hr(t),i={},n=this.props.flatShading&&G0(t,gi.GLSL_DERIVATIVES);return n&&(i.FLAT_SHADING=1),super.getShaders({vs:MH,fs:EH,defines:i,transpileToGLSL100:r,modules:[uo,n?My:QA,ra]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceElevations:{size:1,transition:!0,accessor:\"getElevation\"},instanceFillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getFillColor\",defaultValue:m3},instanceLineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:\"getLineColor\",defaultValue:m3},instanceStrokeWidths:{size:1,accessor:\"getLineWidth\",transition:!0}})}updateState(t){super.updateState(t);let{props:r,oldProps:i,changeFlags:n}=t,s=n.extensionsChanged||r.flatShading!==i.flatShading;if(s){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),this.getAttributeManager().invalidateAll()}(s||r.diskResolution!==i.diskResolution||r.vertices!==i.vertices||(r.extruded||r.stroked)!==(i.extruded||i.stroked))&&this._updateGeometry(r)}getGeometry(t,r,i){let n=new C2({radius:1,height:i?2:0,vertices:r,nradial:t}),s=0;if(r)for(let o=0;o=t.length&&(r+=1-t.length/n);let s=r*n;return i[0]=t[s],i[1]=t[s+1],i[2]=n===3&&t[s+2]||0,i}isClosed(t){if(!this.normalize)return!!this.opts.loop;let{positionSize:r}=this,i=t.length-r;return t[0]===t[i]&&t[1]===t[i+1]&&(r===2||t[2]===t[i+2])}};function IH(e){return Array.isArray(e[0])}var CH=`#define SHADER_NAME path-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute float instanceTypes;\nattribute vec3 instanceStartPositions;\nattribute vec3 instanceEndPositions;\nattribute vec3 instanceLeftPositions;\nattribute vec3 instanceRightPositions;\nattribute vec3 instanceLeftPositions64Low;\nattribute vec3 instanceStartPositions64Low;\nattribute vec3 instanceEndPositions64Low;\nattribute vec3 instanceRightPositions64Low;\nattribute float instanceStrokeWidths;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float jointType;\nuniform float capType;\nuniform float miterLimit;\nuniform bool billboard;\nuniform int widthUnits;\n\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\n\nfloat flipIfTrue(bool flag) {\n return -(float(flag) * 2. - 1.);\n}\nvec3 getLineJoinOffset(\n vec3 prevPoint, vec3 currPoint, vec3 nextPoint,\n vec2 width\n) {\n bool isEnd = positions.x > 0.0;\n float sideOfPath = positions.y;\n float isJoint = float(sideOfPath == 0.0);\n\n vec3 deltaA3 = (currPoint - prevPoint);\n vec3 deltaB3 = (nextPoint - currPoint);\n\n mat3 rotationMatrix;\n bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix);\n if (needsRotation) {\n deltaA3 = deltaA3 * rotationMatrix;\n deltaB3 = deltaB3 * rotationMatrix;\n }\n vec2 deltaA = deltaA3.xy / width;\n vec2 deltaB = deltaB3.xy / width;\n\n float lenA = length(deltaA);\n float lenB = length(deltaB);\n\n vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\n vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\n\n vec2 perpA = vec2(-dirA.y, dirA.x);\n vec2 perpB = vec2(-dirB.y, dirB.x);\n vec2 tangent = dirA + dirB;\n tangent = length(tangent) > 0. ? normalize(tangent) : perpA;\n vec2 miterVec = vec2(-tangent.y, tangent.x);\n vec2 dir = isEnd ? dirA : dirB;\n vec2 perp = isEnd ? perpA : perpB;\n float L = isEnd ? lenA : lenB;\n float sinHalfA = abs(dot(miterVec, perp));\n float cosHalfA = abs(dot(dirA, miterVec));\n float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n float cornerPosition = sideOfPath * turnDirection;\n\n float miterSize = 1.0 / max(sinHalfA, EPSILON);\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n * (sideOfPath + isJoint * turnDirection);\n bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n bool isCap = isStartCap || isEndCap;\n if (isCap) {\n offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint);\n vJointType = capType;\n } else {\n vJointType = jointType;\n }\n vPathLength = L;\n vCornerOffset = offsetVec;\n vMiterLength = dot(vCornerOffset, miterVec * turnDirection);\n vMiterLength = isCap ? isJoint : vMiterLength;\n\n vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\n vPathPosition = vec2(\n dot(offsetFromStartOfPath, perp),\n dot(offsetFromStartOfPath, dir)\n );\n geometry.uv = vPathPosition;\n\n float isValid = step(instanceTypes, 3.5);\n vec3 offset = vec3(offsetVec * width * isValid, 0.0);\n\n if (needsRotation) {\n offset = rotationMatrix * offset;\n }\n return offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\n if (position.w < EPSILON) {\n float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n position = refPosition + (position - refPosition) * r;\n }\n}\n\nvoid main() {\n geometry.pickingColor = instancePickingColors;\n\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n\n float isEnd = positions.x;\n\n vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\n vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\n\n vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\n vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\n\n vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\n vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\n\n geometry.worldPosition = currPosition;\n vec2 widthPixels = vec2(clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0);\n vec3 width;\n\n if (billboard) {\n vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\n vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n\n clipLine(prevPositionScreen, currPositionScreen);\n clipLine(nextPositionScreen, currPositionScreen);\n clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n width = vec3(widthPixels, 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(width.xy)\n );\n\n DECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);\n gl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);\n } else {\n prevPosition = project_position(prevPosition, prevPosition64Low);\n currPosition = project_position(currPosition, currPosition64Low);\n nextPosition = project_position(nextPosition, nextPosition64Low);\n\n width = vec3(project_pixel_size(widthPixels), 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy);\n geometry.position = vec4(currPosition + offset, 1.0);\n gl_Position = project_common_position_to_clipspace(geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var LH=`#define SHADER_NAME path-layer-fragment-shader\n\nprecision highp float;\n\nuniform float miterLimit;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nvoid main(void) {\n geometry.uv = vPathPosition;\n\n if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n if (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\n discard;\n }\n if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) {\n discard;\n }\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var kH=[0,0,0,255],ldt={widthUnits:\"meters\",widthScale:{type:\"number\",min:0,value:1},widthMinPixels:{type:\"number\",min:0,value:0},widthMaxPixels:{type:\"number\",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:\"number\",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:\"accessor\",value:e=>e.path},getColor:{type:\"accessor\",value:kH},getWidth:{type:\"accessor\",value:1},rounded:{deprecatedFor:[\"jointRounded\",\"capRounded\"]}},VO={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},dc=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:CH,fs:LH,modules:[uo,ra]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:VO,accessor:\"getPath\",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:\"getWidth\",transition:VO,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:\"getColor\",transition:VO,defaultValue:kH},instancePickingColors:{size:3,type:5121,accessor:(i,{index:n,target:s})=>this.encodePickingColor(i&&i.__source?i.__source.index:n,s)}}),this.setState({pathTesselator:new L2({fp64:this.use64bitPositions()})})}updateState(t){super.updateState(t);let{props:r,changeFlags:i}=t,n=this.getAttributeManager();if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)){let{pathTesselator:c}=this.state,d=r.data.attributes||{};c.updateGeometry({data:r.data,geometryBuffer:d.getPath,buffers:d,normalize:!r._pathType,loop:r._pathType===\"loop\",getGeometry:r.getPath,positionFormat:r.positionFormat,wrapLongitude:r.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:i.dataChanged}),this.setState({numInstances:c.instanceCount,startIndices:c.vertexStarts}),i.dataChanged||n.invalidateAll()}if(i.extensionsChanged){var o;let{gl:c}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(c),n.invalidateAll()}}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:n}=this.props;return n[0]&&n[0].__source&&(r.object=n.find(s=>s.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;i=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function Edt(e){let t=e[0],r=e[e.length-1];return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]}function Pdt(e,t,r,i){for(let n=0;nc/t));let s=Nv(e),o=i&&t===3;if(r){let c=s.length;s=s.slice();let d=[];for(let _=0;_d&&c>_||(d>_?(r||(s=s.slice()),VH(s,0,2,1)):(r||(s=s.slice()),VH(s,2,0,1)))}return(0,jH.default)(s,n,t)}var B2=class extends em{constructor(t){let{fp64:r,IndexType:i=Uint32Array}=t;super({...t,attributes:{positions:{size:3,type:r?Float64Array:Float32Array},vertexValid:{type:Uint8ClampedArray,size:1},indices:{type:i,size:1}}})}get(t){let{attributes:r}=this;return t===\"indices\"?r.indices&&r.indices.subarray(0,this.vertexCount):r[t]}updateGeometry(t){super.updateGeometry(t);let r=this.buffers.indices;if(r)this.vertexCount=(r.value||r).length;else if(this.data&&!this.getGeometry)throw new Error(\"missing indices buffer\")}normalizeGeometry(t){if(this.normalize){let r=b3(t,this.positionSize);return this.opts.resolution?I2(Nv(r),O2(r),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?NO(Nv(r),O2(r),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):r}return t}getGeometrySize(t){if(HH(t)){let r=0;for(let i of t)r+=this.getGeometrySize(i);return r}return Nv(t).length/this.positionSize}getGeometryFromBuffer(t){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(t):null}updateGeometryAttributes(t,r){if(t&&HH(t))for(let i of t){let n=this.getGeometrySize(i);r.geometrySize=n,this.updateGeometryAttributes(i,r),r.vertexStart+=n,r.indexStart=this.indexStarts[r.geometryIndex+1]}else this._updateIndices(t,r),this._updatePositions(t,r),this._updateVertexValid(t,r)}_updateIndices(t,{geometryIndex:r,vertexStart:i,indexStart:n}){let{attributes:s,indexStarts:o,typedArrayManager:c}=this,d=s.indices;if(!d||!t)return;let _=n,w=GH(t,this.positionSize,this.opts.preproject,this.opts.full3d);d=c.allocate(d,n+w.length,{copy:!0});for(let I=0;I2?o[d*s+2]:0;n[c*3]=_,n[c*3+1]=w,n[c*3+2]=I}}_updateVertexValid(t,{vertexStart:r,geometrySize:i}){let{positionSize:n}=this,s=this.attributes.vertexValid,o=t&&O2(t);if(t&&t.edgeTypes?s.set(t.edgeTypes,r):s.fill(1,r,r+i),o)for(let c=0;c0&&!Number.isFinite(e[0])}var w3=`\nattribute vec2 vertexPositions;\nattribute float vertexValid;\n\nuniform bool extruded;\nuniform bool isWireframe;\nuniform float elevationScale;\nuniform float opacity;\n\nvarying vec4 vColor;\n\nstruct PolygonProps {\n vec4 fillColors;\n vec4 lineColors;\n vec3 positions;\n vec3 nextPositions;\n vec3 pickingColors;\n vec3 positions64Low;\n vec3 nextPositions64Low;\n float elevations;\n};\n\nvec3 project_offset_normal(vec3 vector) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n return normalize(vector * project_uCommonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nvoid calculatePosition(PolygonProps props) {\n#ifdef IS_SIDE_VERTEX\n if(vertexValid < 0.5){\n gl_Position = vec4(0.);\n return;\n }\n#endif\n\n vec3 pos;\n vec3 pos64Low;\n vec3 normal;\n vec4 colors = isWireframe ? props.lineColors : props.fillColors;\n\n geometry.worldPosition = props.positions;\n geometry.worldPositionAlt = props.nextPositions;\n geometry.pickingColor = props.pickingColors;\n\n#ifdef IS_SIDE_VERTEX\n pos = mix(props.positions, props.nextPositions, vertexPositions.x);\n pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x);\n#else\n pos = props.positions;\n pos64Low = props.positions64Low;\n#endif\n\n if (extruded) {\n pos.z += props.elevations * vertexPositions.y * elevationScale;\n }\n gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n if (extruded) {\n #ifdef IS_SIDE_VERTEX\n normal = vec3(\n props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y),\n props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x),\n 0.0);\n normal = project_offset_normal(normal);\n #else\n normal = project_normal(vec3(0.0, 0.0, 1.0));\n #endif\n geometry.normal = normal;\n vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal);\n vColor = vec4(lightColor, colors.a * opacity);\n } else {\n vColor = vec4(colors.rgb, colors.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;var qH=`#define SHADER_NAME solid-polygon-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float elevations;\nattribute vec4 fillColors;\nattribute vec4 lineColors;\nattribute vec3 pickingColors;\n\n`.concat(w3,`\n\nvoid main(void) {\n PolygonProps props;\n\n props.positions = positions;\n props.positions64Low = positions64Low;\n props.elevations = elevations;\n props.fillColors = fillColors;\n props.lineColors = lineColors;\n props.pickingColors = pickingColors;\n\n calculatePosition(props);\n}\n`);var ZH=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\n\n\nattribute vec3 instancePositions;\nattribute vec3 nextPositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 nextPositions64Low;\nattribute float instanceElevations;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\n`.concat(w3,`\n\nvoid main(void) {\n PolygonProps props;\n\n #if RING_WINDING_ORDER_CW == 1\n props.positions = instancePositions;\n props.positions64Low = instancePositions64Low;\n props.nextPositions = nextPositions;\n props.nextPositions64Low = nextPositions64Low;\n #else\n props.positions = nextPositions;\n props.positions64Low = nextPositions64Low;\n props.nextPositions = instancePositions;\n props.nextPositions64Low = instancePositions64Low;\n #endif\n props.elevations = instanceElevations;\n props.fillColors = instanceFillColors;\n props.lineColors = instanceLineColors;\n props.pickingColors = instancePickingColors;\n\n calculatePosition(props);\n}\n`);var YH=`#define SHADER_NAME solid-polygon-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var T3=[0,0,0,255],Idt={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:\"CW\",_full3d:!1,elevationScale:{type:\"number\",min:0,value:1},getPolygon:{type:\"accessor\",value:e=>e.polygon},getElevation:{type:\"accessor\",value:1e3},getFillColor:{type:\"accessor\",value:T3},getLineColor:{type:\"accessor\",value:T3},material:!0},S3={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},pc=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(t){return super.getShaders({vs:t===\"top\"?qH:ZH,fs:YH,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder===\"CCW\"?0:1},modules:[uo,QA,ra]})}get wrapLongitude(){return!1}initializeState(){let{gl:t,viewport:r}=this.context,{coordinateSystem:i}=this.props,{_full3d:n}=this.props;r.isGeospatial&&i===Wr.DEFAULT&&(i=Wr.LNGLAT);let s;i===Wr.LNGLAT&&(n?s=r.projectPosition.bind(r):s=r.projectFlat.bind(r)),this.setState({numInstances:0,polygonTesselator:new B2({preproject:s,fp64:this.use64bitPositions(),IndexType:!t||Ch(t,gi.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});let o=this.getAttributeManager(),c=!0;o.remove([\"instancePickingColors\"]),o.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:c},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:S3,accessor:\"getPolygon\",update:this.calculatePositions,noAlloc:c,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:c},elevations:{size:1,transition:S3,accessor:\"getElevation\",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:S3,accessor:\"getFillColor\",defaultValue:T3,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:S3,accessor:\"getLineColor\",defaultValue:T3,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(d,{index:_,target:w})=>this.encodePickingColor(d&&d.__source?d.__source.index:_,w),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i}=r,{data:n}=this.props;return n[0]&&n[0].__source&&(r.object=n.find(s=>s.__source.index===i)),r}disablePickingIndex(t){let{data:r}=this.props;if(r[0]&&r[0].__source)for(let i=0;id.delete()),this.setState(this._getModels(this.context.gl)),s.invalidateAll()}}updateGeometry({props:t,oldProps:r,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){let{polygonTesselator:s}=this.state,o=t.data.attributes||{};s.updateGeometry({data:t.data,normalize:t._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:t.getPolygon,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged,full3d:t._full3d}),this.setState({numInstances:s.instanceCount,startIndices:s.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(t){let{id:r,filled:i,extruded:n}=this.props,s,o;if(i){let c=this.getShaders(\"top\");c.defines.NON_INSTANCED_MODEL=1,s=new gn(t,{...c,id:\"\".concat(r,\"-top\"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return n&&(o=new gn(t,{...this.getShaders(\"side\"),id:\"\".concat(r,\"-side\"),geometry:new As({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),o.userData.excludeAttributes={indices:!0}),{models:[o,s].filter(Boolean),topModel:s,sideModel:o}}calculateIndices(t){let{polygonTesselator:r}=this.state;t.startIndices=r.indexStarts,t.value=r.get(\"indices\")}calculatePositions(t){let{polygonTesselator:r}=this.state;t.startIndices=r.vertexStarts,t.value=r.get(\"positions\")}calculateVertexValid(t){t.value=this.state.polygonTesselator.get(\"vertexValid\")}};G(pc,\"defaultProps\",Idt);G(pc,\"layerName\",\"SolidPolygonLayer\");function M3({data:e,getIndex:t,dataRange:r,replace:i}){let{startRow:n=0,endRow:s=1/0}=r,o=e.length,c=o,d=o;for(let R=0;RR&&N>=n&&(c=R),N>=s){d=R;break}}let _=c,I=d-c!==i.length?e.slice(d):void 0;for(let R=0;Re.polygon},getFillColor:{type:\"accessor\",value:Cdt},getLineColor:{type:\"accessor\",value:$H},getLineWidth:{type:\"accessor\",value:1},getElevation:{type:\"accessor\",value:1e3},material:!0},nf=class extends Yi{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&er.removed(\"getLineDashArray\",\"PathStyleExtension\")()}updateState({changeFlags:t}){let r=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getPolygon);if(r&&Array.isArray(t.dataChanged)){let i=this.state.paths.slice(),n=t.dataChanged.map(s=>M3({data:i,getIndex:o=>o.__source.index,dataRange:s,replace:this._getPaths(s)}));this.setState({paths:i,pathsDiff:n})}else r&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(t={}){let{data:r,getPolygon:i,positionFormat:n,_normalize:s}=this.props,o=[],c=n===\"XY\"?2:3,{startRow:d,endRow:_}=t,{iterable:w,objectInfo:I}=Kc(r,d,_);for(let R of w){I.index++;let N=i(R,I);s&&(N=b3(N,c));let{holeIndices:j}=N,Y=N.positions||N;if(j)for(let it=0;it<=j.length;it++){let Z=Y.slice(j[it-1]||0,j[it]||Y.length);o.push(this.getSubLayerRow({path:Z},R,I.index))}else o.push(this.getSubLayerRow({path:Y},R,I.index))}return o}renderLayers(){let{data:t,_dataDiff:r,stroked:i,filled:n,extruded:s,wireframe:o,_normalize:c,_windingOrder:d,elevationScale:_,transitions:w,positionFormat:I}=this.props,{lineWidthUnits:R,lineWidthScale:N,lineWidthMinPixels:j,lineWidthMaxPixels:Y,lineJointRounded:it,lineMiterLimit:Z,lineDashJustified:K}=this.props,{getFillColor:J,getLineColor:ht,getLineWidth:Tt,getLineDashArray:Ot,getElevation:Yt,getPolygon:te,updateTriggers:oe,material:ae}=this.props,{paths:Le,pathsDiff:sr}=this.state,lr=this.getSubLayerClass(\"fill\",pc),Cr=this.getSubLayerClass(\"stroke\",dc),un=this.shouldRenderSubLayer(\"fill\",Le)&&new lr({_dataDiff:r,extruded:s,elevationScale:_,filled:n,wireframe:o,_normalize:c,_windingOrder:d,getElevation:Yt,getFillColor:J,getLineColor:s&&o?ht:$H,material:ae,transitions:w},this.getSubLayerProps({id:\"fill\",updateTriggers:oe&&{getPolygon:oe.getPolygon,getElevation:oe.getElevation,getFillColor:oe.getFillColor,lineColors:s&&o,getLineColor:oe.getLineColor}}),{data:t,positionFormat:I,getPolygon:te}),Fs=!s&&i&&this.shouldRenderSubLayer(\"stroke\",Le)&&new Cr({_dataDiff:sr&&(()=>sr),widthUnits:R,widthScale:N,widthMinPixels:j,widthMaxPixels:Y,jointRounded:it,miterLimit:Z,dashJustified:K,_pathType:\"loop\",transitions:w&&{getWidth:w.getLineWidth,getColor:w.getLineColor,getPath:w.getPolygon},getColor:this.getSubLayerAccessor(ht),getWidth:this.getSubLayerAccessor(Tt),getDashArray:this.getSubLayerAccessor(Ot)},this.getSubLayerProps({id:\"stroke\",updateTriggers:oe&&{getWidth:oe.getLineWidth,getColor:oe.getLineColor,getDashArray:oe.getLineDashArray}}),{data:Le,positionFormat:I,getPath:Sc=>Sc.path});return[!s&&un,Fs,s&&un]}};G(nf,\"layerName\",\"PolygonLayer\");G(nf,\"defaultProps\",Ldt);function QH(e,t){if(!e)return null;let r=\"startIndices\"in e?e.startIndices[t]:t,i=e.featureIds.value[r];return r!==-1?kdt(e,i,r):null}function kdt(e,t,r){let i={properties:{...e.properties[t]}};for(let n in e.numericProps)i.properties[n]=e.numericProps[n].value[r];return i}function XH(e,t){let r={points:null,lines:null,polygons:null};for(let i in r){let n=e[i].globalFeatureIds.value;r[i]=new Uint8ClampedArray(n.length*3);let s=[];for(let o=0;o 0.0) {\n float inFill = alpha;\n float inBorder = smoothstep(outlineBuffer - gamma, outlineBuffer + gamma, distance);\n color = mix(outlineColor, vColor, inFill);\n alpha = inBorder;\n }\n }\n float a = alpha * color.a;\n \n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color.rgb, a * opacity);\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var ZO=192/256,JH=[],Rdt={getIconOffsets:{type:\"accessor\",value:e=>e.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:\"color\",value:[0,0,0,255]}},kg=class extends wp{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return{...super.getShaders(),fs:KH}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:\"getIconOffsets\"},instancePickingColors:{type:5121,size:3,accessor:(r,{index:i,target:n})=>this.encodePickingColor(i,n)}})}updateState(t){super.updateState(t);let{props:r,oldProps:i}=t,{outlineColor:n}=r;n!==i.outlineColor&&(n=n.map(s=>s/255),n[3]=Number.isFinite(n[3])?n[3]:1,this.setState({outlineColor:n})),!r.sdf&&r.outlineWidth&&er.warn(\"\".concat(this.id,\": fontSettings.sdf is required to render outline\"))()}draw(t){let{sdf:r,smoothing:i,outlineWidth:n}=this.props,{outlineColor:s}=this.state,o=n?Math.max(i,ZO*(1-n)):-1;if(t.uniforms={...t.uniforms,sdfBuffer:ZO,outlineBuffer:o,gamma:i,sdf:!!r,outlineColor:s},super.draw(t),r&&n){let{iconManager:c}=this.state;c.getTexture()&&this.state.model.draw({uniforms:{outlineBuffer:ZO}})}}getInstanceOffset(t){return t?Array.from(t).flatMap(r=>super.getInstanceOffset(r)):JH}getInstanceColorMode(t){return 1}getInstanceIconFrame(t){return t?Array.from(t).flatMap(r=>super.getInstanceIconFrame(r)):JH}};G(kg,\"defaultProps\",Rdt);G(kg,\"layerName\",\"MultiIconLayer\");var F2=class{constructor({fontSize:t=24,buffer:r=3,radius:i=8,cutoff:n=.25,fontFamily:s=\"sans-serif\",fontWeight:o=\"normal\",fontStyle:c=\"normal\"}={}){this.buffer=r,this.cutoff=n,this.radius=i;let d=this.size=t+r*4,_=this._createCanvas(d),w=this.ctx=_.getContext(\"2d\",{willReadFrequently:!0});w.font=`${c} ${o} ${t}px ${s}`,w.textBaseline=\"alphabetic\",w.textAlign=\"left\",w.fillStyle=\"black\",this.gridOuter=new Float64Array(d*d),this.gridInner=new Float64Array(d*d),this.f=new Float64Array(d),this.z=new Float64Array(d+1),this.v=new Uint16Array(d)}_createCanvas(t){let r=document.createElement(\"canvas\");return r.width=r.height=t,r}draw(t){let{width:r,actualBoundingBoxAscent:i,actualBoundingBoxDescent:n,actualBoundingBoxLeft:s,actualBoundingBoxRight:o}=this.ctx.measureText(t),c=Math.ceil(i),d=0,_=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-s))),w=Math.min(this.size-this.buffer,c+Math.ceil(n)),I=_+2*this.buffer,R=w+2*this.buffer,N=Math.max(I*R,0),j=new Uint8ClampedArray(N),Y={data:j,width:I,height:R,glyphWidth:_,glyphHeight:w,glyphTop:c,glyphLeft:d,glyphAdvance:r};if(_===0||w===0)return Y;let{ctx:it,buffer:Z,gridInner:K,gridOuter:J}=this;it.clearRect(Z,Z,_,w),it.fillText(t,Z,Z+c);let ht=it.getImageData(Z,Z,_,w);J.fill(1e20,0,N),K.fill(0,0,N);for(let Tt=0;Tt0?oe*oe:0,K[te]=oe<0?oe*oe:0}}tq(J,0,0,I,R,I,this.f,this.v,this.z),tq(K,Z,Z,_,w,I,this.f,this.v,this.z);for(let Tt=0;Tt-1);d++,s[d]=c,o[d]=_,o[d+1]=1e20}for(let c=0,d=0;cn&&(_=0,d++),s[I]={x:_+i,y:c+d*w+i,width:R,height:w,layoutWidth:R,layoutHeight:r},_+=R+i*2}return{mapping:s,xOffset:_,yOffset:c+d*w,canvasHeight:Bdt(c+(d+1)*w)}}function iq(e,t,r,i){let n=0;for(let o=t;oi&&(oc){let I=iq(e,c,d,n);_+I>i&&(oi&&(I=nq(e,c,d,i,n,s),o=s[s.length-1])),c=d,_+=I}return _}function zdt(e,t,r,i,n=0,s){s===void 0&&(s=e.length);let o=[];return t===\"break-all\"?nq(e,n,s,r,i,o):Fdt(e,n,s,r,i,o),o}function Ndt(e,t,r,i,n,s){let o=0,c=0;for(let d=t;d0,I=[0,0],R=[0,0],N=0,j=0,Y=0;for(let Z=0;Z<=o;Z++){let K=s[Z];if((K===`\n`||Z===o)&&(Y=Z),Y>j){let J=w?zdt(s,r,i,n,j,Y):Odt;for(let ht=0;ht<=J.length;ht++){let Tt=ht===0?j:J[ht-1],Ot=ht1||d>0){let N=e.constructor;R=new N(_);for(let j=0;j<_;j++)R[j]=e[j*c+d]}for(let N=0;N=0&&this._order.splice(r,1)}_appendOrder(t){this._order.push(t)}};function Udt(){let e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}var Rg={fontFamily:\"Monaco, monospace\",fontWeight:\"normal\",characterSet:Udt(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},aq=1024,lq=.9,cq=1.2,hq=3,E3=new Uv(hq);function Vdt(e,t){let r;typeof t==\"string\"?r=new Set(Array.from(t)):r=new Set(t);let i=E3.get(e);if(!i)return r;for(let n in i.mapping)r.has(n)&&r.delete(n);return r}function jdt(e,t){for(let r=0;r=hq,\"Invalid cache limit\"),E3=new Uv(e)}var z2=class{constructor(){G(this,\"props\",{...Rg}),G(this,\"_key\",void 0),G(this,\"_atlas\",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){let{fontSize:t,buffer:r}=this.props;return(t*cq+r*2)/t}setProps(t={}){Object.assign(this.props,t),this._key=this._getKey();let r=Vdt(this._key,this.props.characterSet),i=E3.get(this._key);if(i&&r.size===0){this._atlas!==i&&(this._atlas=i);return}let n=this._generateFontAtlas(r,i);this._atlas=n,E3.set(this._key,n)}_generateFontAtlas(t,r){let{fontFamily:i,fontWeight:n,fontSize:s,buffer:o,sdf:c,radius:d,cutoff:_}=this.props,w=r&&r.data;w||(w=document.createElement(\"canvas\"),w.width=aq);let I=w.getContext(\"2d\",{willReadFrequently:!0});uq(I,i,s,n);let{mapping:R,canvasHeight:N,xOffset:j,yOffset:Y}=rq({getFontWidth:it=>I.measureText(it).width,fontHeight:s*cq,buffer:o,characterSet:t,maxCanvasWidth:aq,...r&&{mapping:r.mapping,xOffset:r.xOffset,yOffset:r.yOffset}});if(w.height!==N){let it=I.getImageData(0,0,w.width,w.height);w.height=N,I.putImageData(it,0,0)}if(uq(I,i,s,n),c){let it=new F2({fontSize:s,buffer:o,radius:d,cutoff:_,fontFamily:i,fontWeight:\"\".concat(n)});for(let Z of t){let{data:K,width:J,height:ht,glyphTop:Tt}=it.draw(Z);R[Z].width=J,R[Z].layoutOffsetY=s*lq-Tt;let Ot=I.createImageData(J,ht);jdt(K,Ot),I.putImageData(Ot,R[Z].x,R[Z].y)}}else for(let it of t)I.fillText(it,R[it].x,R[it].y+o+s*lq);return{xOffset:j,yOffset:Y,mapping:R,data:w,width:w.width,height:w.height}}_getKey(){let{fontFamily:t,fontWeight:r,fontSize:i,buffer:n,sdf:s,radius:o,cutoff:c}=this.props;return s?\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(n,\" \").concat(o,\" \").concat(c):\"\".concat(t,\" \").concat(r,\" \").concat(i,\" \").concat(n)}};var dq=`#define SHADER_NAME text-background-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceRects;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec2 instancePixelOffsets;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform bool billboard;\nuniform float opacity;\nuniform float sizeScale;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform vec4 padding;\nuniform int sizeUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = radians(angle);\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n vLineWidth = instanceLineWidths;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits),\n sizeMinPixels, sizeMaxPixels\n );\n\n dimensions = instanceRects.zw * sizePixels + padding.xy + padding.zw;\n\n vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-padding.xy, padding.zw, positions);\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\n pixelOffset += instancePixelOffsets;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n }\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n`;var pq=`#define SHADER_NAME text-background-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool stroked;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec2 pixelPosition = uv * dimensions;\n if (stroked) {\n float distToEdge = min(\n min(pixelPosition.x, dimensions.x - pixelPosition.x),\n min(pixelPosition.y, dimensions.y - pixelPosition.y)\n );\n float isBorder = smoothedge(distToEdge, vLineWidth);\n gl_FragColor = mix(vFillColor, vLineColor, isBorder);\n } else {\n gl_FragColor = vFillColor;\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var Gdt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:\"array\",value:[0,0,0,0]},getPosition:{type:\"accessor\",value:e=>e.position},getSize:{type:\"accessor\",value:1},getAngle:{type:\"accessor\",value:0},getPixelOffset:{type:\"accessor\",value:[0,0]},getBoundingRect:{type:\"accessor\",value:[0,0,0,0]},getFillColor:{type:\"accessor\",value:[0,0,0,255]},getLineColor:{type:\"accessor\",value:[0,0,0,255]},getLineWidth:{type:\"accessor\",value:1}},Dg=class extends _n{constructor(...t){super(...t),G(this,\"state\",void 0)}getShaders(){return super.getShaders({vs:dq,fs:pq,modules:[uo,ra]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:\"getPosition\"},instanceSizes:{size:1,transition:!0,accessor:\"getSize\",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:\"getAngle\"},instanceRects:{size:4,accessor:\"getBoundingRect\"},instancePixelOffsets:{size:2,transition:!0,accessor:\"getPixelOffset\"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getFillColor\",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:\"getLineColor\",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:\"getLineWidth\",defaultValue:1}})}updateState(t){super.updateState(t);let{changeFlags:r}=t;if(r.extensionsChanged){var i;let{gl:n}=this.context;(i=this.state.model)===null||i===void 0||i.delete(),this.state.model=this._getModel(n),this.getAttributeManager().invalidateAll()}}draw({uniforms:t}){let{billboard:r,sizeScale:i,sizeUnits:n,sizeMinPixels:s,sizeMaxPixels:o,getLineWidth:c}=this.props,{padding:d}=this.props;d.length<4&&(d=[d[0],d[1],d[0],d[1]]),this.state.model.setUniforms(t).setUniforms({billboard:r,stroked:!!c,padding:d,sizeUnits:ta[n],sizeScale:i,sizeMinPixels:s,sizeMaxPixels:o}).draw()}_getModel(t){let r=[0,0,1,0,1,1,0,1];return new gn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(r)}}}),isInstanced:!0})}};G(Dg,\"defaultProps\",Gdt);G(Dg,\"layerName\",\"TextBackgroundLayer\");var Aq={start:1,middle:0,end:-1},mq={top:1,center:0,bottom:-1},YO=[0,0,0,255],Wdt=1,Hdt={billboard:!0,sizeScale:1,sizeUnits:\"pixels\",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:\"accessor\",value:[255,255,255,255]},getBorderColor:{type:\"accessor\",value:YO},getBorderWidth:{type:\"accessor\",value:0},backgroundPadding:{type:\"array\",value:[0,0,0,0]},characterSet:{type:\"object\",value:Rg.characterSet},fontFamily:Rg.fontFamily,fontWeight:Rg.fontWeight,lineHeight:Wdt,outlineWidth:{type:\"number\",value:0,min:0},outlineColor:{type:\"color\",value:YO},fontSettings:{type:\"object\",value:{},compare:1},wordBreak:\"break-word\",maxWidth:{type:\"number\",value:-1},getText:{type:\"accessor\",value:e=>e.text},getPosition:{type:\"accessor\",value:e=>e.position},getColor:{type:\"accessor\",value:YO},getSize:{type:\"accessor\",value:32},getAngle:{type:\"accessor\",value:0},getTextAnchor:{type:\"accessor\",value:\"middle\"},getAlignmentBaseline:{type:\"accessor\",value:\"center\"},getPixelOffset:{type:\"accessor\",value:[0,0]},backgroundColor:{deprecatedFor:[\"background\",\"getBackgroundColor\"]}},sf=class extends Yi{constructor(...t){super(...t),G(this,\"state\",void 0),G(this,\"getBoundingRect\",(r,i)=>{let{size:[n,s]}=this.transformParagraph(r,i),{fontSize:o}=this.state.fontAtlasManager.props;n/=o,s/=o;let{getTextAnchor:c,getAlignmentBaseline:d}=this.props,_=Aq[typeof c==\"function\"?c(r,i):c],w=mq[typeof d==\"function\"?d(r,i):d];return[(_-1)*n/2,(w-1)*s/2,n,s]}),G(this,\"getIconOffsets\",(r,i)=>{let{getTextAnchor:n,getAlignmentBaseline:s}=this.props,{x:o,y:c,rowWidth:d,size:[_,w]}=this.transformParagraph(r,i),I=Aq[typeof n==\"function\"?n(r,i):n],R=mq[typeof s==\"function\"?s(r,i):s],N=o.length,j=new Array(N*2),Y=0;for(let it=0;it0&&er.warn(\"v8.9 breaking change: TextLayer maxWidth is now relative to text size\")()}updateState(t){let{props:r,oldProps:i,changeFlags:n}=t;(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||r.lineHeight!==i.lineHeight||r.wordBreak!==i.wordBreak||r.maxWidth!==i.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:t}){return t.object=t.index>=0?this.props.data[t.index]:null,t}_updateFontAtlas(){let{fontSettings:t,fontFamily:r,fontWeight:i}=this.props,{fontAtlasManager:n,characterSet:s}=this.state,o={...t,characterSet:s,fontFamily:r,fontWeight:i};if(!n.mapping)return n.setProps(o),!0;for(let c in o)if(o[c]!==n.props[c])return n.setProps(o),!0;return!1}_updateText(){var t;let{data:r,characterSet:i}=this.props,n=(t=r.attributes)===null||t===void 0?void 0:t.getText,{getText:s}=this.props,o=r.startIndices,c,d=i===\"auto\"&&new Set;if(n&&o){let{texts:_,characterCount:w}=oq({...ArrayBuffer.isView(n)?{value:n}:n,length:r.length,startIndices:o,characterSet:d});c=w,s=(I,{index:R})=>_[R]}else{let{iterable:_,objectInfo:w}=Kc(r);o=[0],c=0;for(let I of _){w.index++;let R=Array.from(s(I,w)||\"\");d&&R.forEach(d.add,d),c+=R.length,o.push(c)}}this.setState({getText:s,startIndices:o,numInstances:c,characterSet:d||i})}transformParagraph(t,r){let{fontAtlasManager:i}=this.state,n=i.mapping,s=this.state.getText,{wordBreak:o,lineHeight:c,maxWidth:d}=this.props,_=s(t,r)||\"\";return sq(_,c,o,d*i.props.fontSize,n)}renderLayers(){let{startIndices:t,numInstances:r,getText:i,fontAtlasManager:{scale:n,texture:s,mapping:o},styleVersion:c}=this.state,{data:d,_dataDiff:_,getPosition:w,getColor:I,getSize:R,getAngle:N,getPixelOffset:j,getBackgroundColor:Y,getBorderColor:it,getBorderWidth:Z,backgroundPadding:K,background:J,billboard:ht,fontSettings:Tt,outlineWidth:Ot,outlineColor:Yt,sizeScale:te,sizeUnits:oe,sizeMinPixels:ae,sizeMaxPixels:Le,transitions:sr,updateTriggers:lr}=this.props,Cr=this.getSubLayerClass(\"characters\",kg),un=this.getSubLayerClass(\"background\",Dg);return[J&&new un({getFillColor:Y,getLineColor:it,getLineWidth:Z,padding:K,getPosition:w,getSize:R,getAngle:N,getPixelOffset:j,billboard:ht,sizeScale:te,sizeUnits:oe,sizeMinPixels:ae,sizeMaxPixels:Le,transitions:sr&&{getPosition:sr.getPosition,getAngle:sr.getAngle,getSize:sr.getSize,getFillColor:sr.getBackgroundColor,getLineColor:sr.getBorderColor,getLineWidth:sr.getBorderWidth,getPixelOffset:sr.getPixelOffset}},this.getSubLayerProps({id:\"background\",updateTriggers:{getPosition:lr.getPosition,getAngle:lr.getAngle,getSize:lr.getSize,getFillColor:lr.getBackgroundColor,getLineColor:lr.getBorderColor,getLineWidth:lr.getBorderWidth,getPixelOffset:lr.getPixelOffset,getBoundingRect:{getText:lr.getText,getTextAnchor:lr.getTextAnchor,getAlignmentBaseline:lr.getAlignmentBaseline,styleVersion:c}}}),{data:d.attributes&&d.attributes.background?{length:d.length,attributes:d.attributes.background}:d,_dataDiff:_,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new Cr({sdf:Tt.sdf,smoothing:Number.isFinite(Tt.smoothing)?Tt.smoothing:Rg.smoothing,outlineWidth:Ot/(Tt.radius||Rg.radius),outlineColor:Yt,iconAtlas:s,iconMapping:o,getPosition:w,getColor:I,getSize:R,getAngle:N,getPixelOffset:j,billboard:ht,sizeScale:te*n,sizeUnits:oe,sizeMinPixels:ae*n,sizeMaxPixels:Le*n,transitions:sr&&{getPosition:sr.getPosition,getAngle:sr.getAngle,getColor:sr.getColor,getSize:sr.getSize,getPixelOffset:sr.getPixelOffset}},this.getSubLayerProps({id:\"characters\",updateTriggers:{all:lr.getText,getPosition:lr.getPosition,getAngle:lr.getAngle,getColor:lr.getColor,getSize:lr.getSize,getPixelOffset:lr.getPixelOffset,getIconOffsets:{getTextAnchor:lr.getTextAnchor,getAlignmentBaseline:lr.getAlignmentBaseline,styleVersion:c}}}),{data:d,_dataDiff:_,startIndices:t,numInstances:r,getIconOffsets:this.getIconOffsets,getIcon:i})]}static set fontAtlasCacheLimit(t){fq(t)}};G(sf,\"defaultProps\",Hdt);G(sf,\"layerName\",\"TextLayer\");var N2={circle:{type:ih,props:{filled:\"filled\",stroked:\"stroked\",lineWidthMaxPixels:\"lineWidthMaxPixels\",lineWidthMinPixels:\"lineWidthMinPixels\",lineWidthScale:\"lineWidthScale\",lineWidthUnits:\"lineWidthUnits\",pointRadiusMaxPixels:\"radiusMaxPixels\",pointRadiusMinPixels:\"radiusMinPixels\",pointRadiusScale:\"radiusScale\",pointRadiusUnits:\"radiusUnits\",pointAntialiasing:\"antialiasing\",pointBillboard:\"billboard\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\",getLineWidth:\"getLineWidth\",getPointRadius:\"getRadius\"}},icon:{type:wp,props:{iconAtlas:\"iconAtlas\",iconMapping:\"iconMapping\",iconSizeMaxPixels:\"sizeMaxPixels\",iconSizeMinPixels:\"sizeMinPixels\",iconSizeScale:\"sizeScale\",iconSizeUnits:\"sizeUnits\",iconAlphaCutoff:\"alphaCutoff\",iconBillboard:\"billboard\",getIcon:\"getIcon\",getIconAngle:\"getAngle\",getIconColor:\"getColor\",getIconPixelOffset:\"getPixelOffset\",getIconSize:\"getSize\"}},text:{type:sf,props:{textSizeMaxPixels:\"sizeMaxPixels\",textSizeMinPixels:\"sizeMinPixels\",textSizeScale:\"sizeScale\",textSizeUnits:\"sizeUnits\",textBackground:\"background\",textBackgroundPadding:\"backgroundPadding\",textFontFamily:\"fontFamily\",textFontWeight:\"fontWeight\",textLineHeight:\"lineHeight\",textMaxWidth:\"maxWidth\",textOutlineColor:\"outlineColor\",textOutlineWidth:\"outlineWidth\",textWordBreak:\"wordBreak\",textCharacterSet:\"characterSet\",textBillboard:\"billboard\",textFontSettings:\"fontSettings\",getText:\"getText\",getTextAngle:\"getAngle\",getTextColor:\"getColor\",getTextPixelOffset:\"getPixelOffset\",getTextSize:\"getSize\",getTextAnchor:\"getTextAnchor\",getTextAlignmentBaseline:\"getAlignmentBaseline\",getTextBackgroundColor:\"getBackgroundColor\",getTextBorderColor:\"getBorderColor\",getTextBorderWidth:\"getBorderWidth\"}}},U2={type:dc,props:{lineWidthUnits:\"widthUnits\",lineWidthScale:\"widthScale\",lineWidthMinPixels:\"widthMinPixels\",lineWidthMaxPixels:\"widthMaxPixels\",lineJointRounded:\"jointRounded\",lineCapRounded:\"capRounded\",lineMiterLimit:\"miterLimit\",lineBillboard:\"billboard\",getLineColor:\"getColor\",getLineWidth:\"getWidth\"}},P3={type:pc,props:{extruded:\"extruded\",filled:\"filled\",wireframe:\"wireframe\",elevationScale:\"elevationScale\",material:\"material\",_full3d:\"_full3d\",getElevation:\"getElevation\",getFillColor:\"getFillColor\",getLineColor:\"getLineColor\"}};function Vv({type:e,props:t}){let r={};for(let i in t)r[i]=e.defaultProps[t[i]];return r}function I3(e,t){let{transitions:r,updateTriggers:i}=e.props,n={updateTriggers:{},transitions:r&&{getPosition:r.geometry}};for(let s in t){let o=t[s],c=e.props[s];s.startsWith(\"get\")&&(c=e.getSubLayerAccessor(c),n.updateTriggers[o]=i[s],r&&(n.transitions[o]=r[s])),n[o]=c}return n}function _q(e){if(Array.isArray(e))return e;switch(er.assert(e.type,\"GeoJSON does not have type\"),e.type){case\"Feature\":return[e];case\"FeatureCollection\":return er.assert(Array.isArray(e.features),\"GeoJSON does not have features array\"),e.features;default:return[{geometry:e}]}}function $O(e,t,r={}){let i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:n=0,endRow:s=e.length}=r;for(let o=n;o{c.push(r({geometry:{type:\"Point\",coordinates:I}},i,n))});break;case\"LineString\":d.push(r({geometry:e},i,n));break;case\"MultiLineString\":o.forEach(I=>{d.push(r({geometry:{type:\"LineString\",coordinates:I}},i,n))});break;case\"Polygon\":_.push(r({geometry:e},i,n)),o.forEach(I=>{w.push(r({geometry:{type:\"LineString\",coordinates:I}},i,n))});break;case\"MultiPolygon\":o.forEach(I=>{_.push(r({geometry:{type:\"Polygon\",coordinates:I}},i,n)),I.forEach(R=>{w.push(r({geometry:{type:\"LineString\",coordinates:R}},i,n))})});break;default:}}var qdt={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function Zdt(e,t){let r=qdt[e];for(er.assert(r,\"Unknown GeoJSON type \".concat(e));t&&--r>0;)t=t[0];return t&&Number.isFinite(t[0])}function yq(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function C3(e){return e.geometry.coordinates}function vq(e,t){let r=yq(),{pointFeatures:i,lineFeatures:n,polygonFeatures:s,polygonOutlineFeatures:o}=e;return r.points.data=i,r.points._dataDiff=t.pointFeatures&&(()=>t.pointFeatures),r.points.getPosition=C3,r.lines.data=n,r.lines._dataDiff=t.lineFeatures&&(()=>t.lineFeatures),r.lines.getPath=C3,r.polygons.data=s,r.polygons._dataDiff=t.polygonFeatures&&(()=>t.polygonFeatures),r.polygons.getPolygon=C3,r.polygonsOutline.data=o,r.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&(()=>t.polygonOutlineFeatures),r.polygonsOutline.getPath=C3,r}function xq(e,t){let r=yq(),{points:i,lines:n,polygons:s}=e,o=XH(e,t);return r.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:3,value:o.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},r.lines.data={length:n.pathIndices.value.length-1,startIndices:n.pathIndices.value,attributes:{...n.attributes,getPath:n.positions,instancePickingColors:{size:3,value:o.lines}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.lines._pathType=\"open\",r.polygons.data={length:s.polygonIndices.value.length-1,startIndices:s.polygonIndices.value,attributes:{...s.attributes,getPolygon:s.positions,pickingColors:{size:3,value:o.polygons}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},r.polygons._normalize=!1,s.triangles&&(r.polygons.data.attributes.indices=s.triangles.value),r.polygonsOutline.data={length:s.primitivePolygonIndices.value.length-1,startIndices:s.primitivePolygonIndices.value,attributes:{...s.attributes,getPath:s.positions,instancePickingColors:{size:3,value:o.polygons}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},r.polygonsOutline._pathType=\"open\",r}var Ydt=[\"points\",\"linestrings\",\"polygons\"],$dt={...Vv(N2.circle),...Vv(N2.icon),...Vv(N2.text),...Vv(U2),...Vv(P3),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:\"object\",value:null},iconMapping:{type:\"object\",value:{}},getIcon:{type:\"accessor\",value:e=>e.properties.icon},getText:{type:\"accessor\",value:e=>e.properties.text},pointType:\"circle\",getRadius:{deprecatedFor:\"getPointRadius\"}},wm=class extends Yi{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:t,changeFlags:r}){if(!r.dataChanged)return;let{data:i}=this.props,n=i&&\"points\"in i&&\"polygons\"in i&&\"lines\"in i;this.setState({binary:n}),n?this._updateStateBinary({props:t,changeFlags:r}):this._updateStateJSON({props:t,changeFlags:r})}_updateStateBinary({props:t,changeFlags:r}){let i=xq(t.data,this.encodePickingColor);this.setState({layerProps:i})}_updateStateJSON({props:t,changeFlags:r}){let i=_q(t.data),n=this.getSubLayerRow.bind(this),s={},o={};if(Array.isArray(r.dataChanged)){let d=this.state.features;for(let _ in d)s[_]=d[_].slice(),o[_]=[];for(let _ of r.dataChanged){let w=$O(i,n,_);for(let I in d)o[I].push(M3({data:s[I],getIndex:R=>R.__source.index,dataRange:_,replace:w[I]}))}}else s=$O(i,n);let c=vq(s,o);this.setState({features:s,featuresDiff:o,layerProps:c})}getPickingInfo(t){let r=super.getPickingInfo(t),{index:i,sourceLayer:n}=r;return r.featureType=Ydt.find(s=>n.id.startsWith(\"\".concat(this.id,\"-\").concat(s,\"-\"))),i>=0&&n.id.startsWith(\"\".concat(this.id,\"-points-text\"))&&this.state.binary&&(r.index=this.props.data.points.globalFeatureIds.value[i]),r}_updateAutoHighlight(t){let r=\"\".concat(this.id,\"-points-\"),i=t.featureType===\"points\";for(let n of this.getSubLayers())n.id.startsWith(r)===i&&n.updateAutoHighlight(t)}_renderPolygonLayer(){let{extruded:t,wireframe:r}=this.props,{layerProps:i}=this.state,n=\"polygons-fill\",s=this.shouldRenderSubLayer(n,i.polygons.data)&&this.getSubLayerClass(n,P3.type);if(s){let o=I3(this,P3.props),c=t&&r;return c||delete o.getLineColor,o.updateTriggers.lineColors=c,new s(o,this.getSubLayerProps({id:n,updateTriggers:o.updateTriggers}),i.polygons)}return null}_renderLineLayers(){let{extruded:t,stroked:r}=this.props,{layerProps:i}=this.state,n=\"polygons-stroke\",s=\"linestrings\",o=!t&&r&&this.shouldRenderSubLayer(n,i.polygonsOutline.data)&&this.getSubLayerClass(n,U2.type),c=this.shouldRenderSubLayer(s,i.lines.data)&&this.getSubLayerClass(s,U2.type);if(o||c){let d=I3(this,U2.props);return[o&&new o(d,this.getSubLayerProps({id:n,updateTriggers:d.updateTriggers}),i.polygonsOutline),c&&new c(d,this.getSubLayerProps({id:s,updateTriggers:d.updateTriggers}),i.lines)]}return null}_renderPointLayers(){let{pointType:t}=this.props,{layerProps:r,binary:i}=this.state,{highlightedObjectIndex:n}=this.props;!i&&Number.isFinite(n)&&(n=r.points.data.findIndex(c=>c.__source.index===n));let s=new Set(t.split(\"+\")),o=[];for(let c of s){let d=\"points-\".concat(c),_=N2[c],w=_&&this.shouldRenderSubLayer(d,r.points.data)&&this.getSubLayerClass(d,_.type);if(w){let I=I3(this,_.props),R=r.points;if(c===\"text\"&&i){let{instancePickingColors:N,...j}=R.data.attributes;R={...R,data:{...R.data,attributes:j}}}o.push(new w(I,this.getSubLayerProps({id:d,updateTriggers:I.updateTriggers,highlightedObjectIndex:n}),R))}}return o}renderLayers(){let{extruded:t}=this.props,r=this._renderPolygonLayer(),i=this._renderLineLayers(),n=this._renderPointLayers();return[!t&&r,i,n,t&&r]}getSubLayerAccessor(t){let{binary:r}=this.state;return!r||typeof t!=\"function\"?super.getSubLayerAccessor(t):(i,n)=>{let{data:s,index:o}=n,c=QH(s,o);return t(c,n)}}};G(wm,\"layerName\",\"GeoJsonLayer\");G(wm,\"defaultProps\",$dt);var rQt=1/Math.PI*180,iQt=1/180*Math.PI,Qdt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Qdt}};var V2=globalThis.mathgl.config;function j2(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function jv(e,t,r){let i=V2.EPSILON;r&&(V2.EPSILON=r);try{if(e===t)return!0;if(j2(e)&&j2(t)){if(e.length!==t.length)return!1;for(let n=0;n{t([r,i],[n,s],o,c)},this.options):Sq(this.points,t,this.options)}modifyWindingDirection(t){return this.isFlatArray?QO(this.points,t,this.options):wq(this.points,t,this.options)}};function tB(e,t,r=2,i,n=\"xy\"){let s=t&&t.length,o=s?t[0]*r:e.length,c=Mq(e,0,o,r,!0,i&&i[0],n),d=[];if(!c||c.next===c.prev)return d;let _,w,I,R,N,j,Y;if(s&&(c=ipt(e,t,c,r,i,n)),e.length>80*r){R=w=e[0],N=I=e[1];for(let it=r;itw&&(w=j),Y>I&&(I=Y);_=Math.max(w-R,I-N),_=_!==0?32767/_:0}return G2(c,d,r,R,N,_,0),d}function Mq(e,t,r,i,n,s,o){let c,d;s===void 0&&(s=Gv(e,{start:t,end:r,size:i,plane:o}));let _=Og[o[0]],w=Og[o[1]];if(n===s<0)for(c=t;c=t;c-=i)d=Tq(c,e[c+_],e[c+w],d);return d&&D3(d,d.next)&&(H2(d),d=d.next),d}function Bg(e,t){if(!e)return e;t||(t=e);let r=e,i;do if(i=!1,!r.steiner&&(D3(r,r.next)||ys(r.prev,r,r.next)===0)){if(H2(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function G2(e,t,r,i,n,s,o){if(!e)return;!o&&s&&lpt(e,i,n,s);let c=e,d,_;for(;e.prev!==e.next;){if(d=e.prev,_=e.next,s?tpt(e,i,n,s):Jdt(e)){t.push(d.i/r|0),t.push(e.i/r|0),t.push(_.i/r|0),H2(e),e=_.next,c=_.next;continue}if(e=_,e===c){o?o===1?(e=ept(Bg(e),t,r),G2(e,t,r,i,n,s,2)):o===2&&rpt(e,t,r,i,n,s):G2(Bg(e),t,r,i,n,s,1);break}}}function Jdt(e){let t=e.prev,r=e,i=e.next;if(ys(t,r,i)>=0)return!1;let n=t.x,s=r.x,o=i.x,c=t.y,d=r.y,_=i.y,w=ns?n>o?n:o:s>o?s:o,N=c>d?c>_?c:_:d>_?d:_,j=i.next;for(;j!==t;){if(j.x>=w&&j.x<=R&&j.y>=I&&j.y<=N&&Hv(n,c,s,d,o,_,j.x,j.y)&&ys(j.prev,j,j.next)>=0)return!1;j=j.next}return!0}function tpt(e,t,r,i){let n=e.prev,s=e,o=e.next;if(ys(n,s,o)>=0)return!1;let c=n.x,d=s.x,_=o.x,w=n.y,I=s.y,R=o.y,N=cd?c>_?c:_:d>_?d:_,it=w>I?w>R?w:R:I>R?I:R,Z=JO(N,j,t,r,i),K=JO(Y,it,t,r,i),J=e.prevZ,ht=e.nextZ;for(;J&&J.z>=Z&&ht&&ht.z<=K;){if(J.x>=N&&J.x<=Y&&J.y>=j&&J.y<=it&&J!==n&&J!==o&&Hv(c,w,d,I,_,R,J.x,J.y)&&ys(J.prev,J,J.next)>=0||(J=J.prevZ,ht.x>=N&&ht.x<=Y&&ht.y>=j&&ht.y<=it&&ht!==n&&ht!==o&&Hv(c,w,d,I,_,R,ht.x,ht.y)&&ys(ht.prev,ht,ht.next)>=0))return!1;ht=ht.nextZ}for(;J&&J.z>=Z;){if(J.x>=N&&J.x<=Y&&J.y>=j&&J.y<=it&&J!==n&&J!==o&&Hv(c,w,d,I,_,R,J.x,J.y)&&ys(J.prev,J,J.next)>=0)return!1;J=J.prevZ}for(;ht&&ht.z<=K;){if(ht.x>=N&&ht.x<=Y&&ht.y>=j&&ht.y<=it&&ht!==n&&ht!==o&&Hv(c,w,d,I,_,R,ht.x,ht.y)&&ys(ht.prev,ht,ht.next)>=0)return!1;ht=ht.nextZ}return!0}function ept(e,t,r){let i=e;do{let n=i.prev,s=i.next.next;!D3(n,s)&&Eq(n,i,i.next,s)&&W2(n,s)&&W2(s,n)&&(t.push(n.i/r|0),t.push(i.i/r|0),t.push(s.i/r|0),H2(i),H2(i.next),i=e=s),i=i.next}while(i!==e);return Bg(i)}function rpt(e,t,r,i,n,s){let o=e;do{let c=o.next.next;for(;c!==o.prev;){if(o.i!==c.i&&hpt(o,c)){let d=Pq(o,c);o=Bg(o,o.next),d=Bg(d,d.next),G2(o,t,r,i,n,s,0),G2(d,t,r,i,n,s,0);return}c=c.next}o=o.next}while(o!==e)}function ipt(e,t,r,i,n,s){let o=[],c,d,_,w,I;for(c=0,d=t.length;c=r.next.y&&r.next.y!==r.y){let R=r.x+(n-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(R<=i&&R>s&&(s=R,o=r.x=r.x&&r.x>=d&&i!==r.x&&Hv(n<_?i:s,n,d,_,n<_?s:i,n,r.x,r.y)&&(I=Math.abs(n-r.y)/(i-r.x),W2(r,e)&&(Io.x||r.x===o.x&&apt(o,r)))&&(o=r,w=I)),r=r.next;while(r!==c);return o}function apt(e,t){return ys(e.prev,e,t.prev)<0&&ys(t.next,e,e.next)<0}function lpt(e,t,r,i){let n=e;do n.z===0&&(n.z=JO(n.x,n.y,t,r,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,cpt(n)}function cpt(e){let t,r,i=1,n,s,o,c,d,_;do{for(s=e,e=null,_=null,n=0;s;){for(n++,c=s,o=0,r=0;r0||d>0&&c;)o!==0&&(d===0||!c||s.z<=c.z)?(t=s,s=s.nextZ,o--):(t=c,c=c.nextZ,d--),_?_.nextZ=t:e=t,t.prevZ=_,_=t;s=c}_.nextZ=null,i*=2}while(n>1);return e}function JO(e,t,r,i,n){return e=(e-r)*n|0,t=(t-i)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function upt(e){let t=e,r=e;do(t.x=(e-o)*(s-c)&&(e-o)*(i-c)>=(r-o)*(t-c)&&(r-o)*(s-c)>=(n-o)*(i-c)}function hpt(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!fpt(e,t)&&(W2(e,t)&&W2(t,e)&&dpt(e,t)&&(ys(e.prev,e,t.prev)||ys(e,t.prev,t))||D3(e,t)&&ys(e.prev,e,e.next)>0&&ys(t.prev,t,t.next)>0)}function ys(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function D3(e,t){return e.x===t.x&&e.y===t.y}function Eq(e,t,r,i){let n=R3(ys(e,t,r)),s=R3(ys(e,t,i)),o=R3(ys(r,i,e)),c=R3(ys(r,i,t));return!!(n!==s&&o!==c||n===0&&k3(e,r,t)||s===0&&k3(e,i,t)||o===0&&k3(r,e,i)||c===0&&k3(r,t,i))}function k3(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function R3(e){return e>0?1:e<0?-1:0}function fpt(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Eq(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function W2(e,t){return ys(e.prev,e,e.next)<0?ys(e,t,e.next)>=0&&ys(e,e.prev,t)>=0:ys(e,t,e.prev)<0||ys(e,e.next,t)<0}function dpt(e,t){let r=e,i=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&n<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function Pq(e,t){let r=new q2(e.i,e.x,e.y),i=new q2(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=n,n.prev=r,i.next=r,r.prev=i,s.next=i,i.prev=s,i}function Tq(e,t,r,i){let n=new q2(e,t,r);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function H2(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var q2=class{constructor(t,r,i){G(this,\"i\",void 0),G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"prev\",null),G(this,\"next\",null),G(this,\"z\",0),G(this,\"prevZ\",null),G(this,\"nextZ\",null),G(this,\"steiner\",!1),this.i=t,this.x=r,this.y=i}};function Lq(e){e(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),e(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),e(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),e.WGS84=e[\"EPSG:4326\"],e[\"EPSG:3785\"]=e[\"EPSG:3857\"],e.GOOGLE=e[\"EPSG:3857\"],e[\"EPSG:900913\"]=e[\"EPSG:3857\"],e[\"EPSG:102113\"]=e[\"EPSG:3857\"]}var of=1,af=2,Sp=3,kq=4,Z2=5,eB=6378137,Rq=6356752314e-3,rB=.0066943799901413165,Fg=484813681109536e-20,de=Math.PI/2,Dq=.16666666666666666,Oq=.04722222222222222,Bq=.022156084656084655,xe=1e-10,vs=.017453292519943295,Ac=57.29577951308232,Pi=Math.PI/4,Sm=Math.PI*2,xs=3.14159265359;var Cl={};Cl.greenwich=0;Cl.lisbon=-9.131906111111;Cl.paris=2.337229166667;Cl.bogota=-74.080916666667;Cl.madrid=-3.687938888889;Cl.rome=12.452333333333;Cl.bern=7.439583333333;Cl.jakarta=106.807719444444;Cl.ferro=-17.666666666667;Cl.brussels=4.367975;Cl.stockholm=18.058277777778;Cl.athens=23.7163375;Cl.oslo=10.722916666667;var Fq={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}};var zq=/[\\s_\\-\\/\\(\\)]/g;function lu(e,t){if(e[t])return e[t];for(var r=Object.keys(e),i=t.toLowerCase().replace(zq,\"\"),n=-1,s,o;++n=this.text.length)return;e=this.text[this.place++]}switch(this.state){case $2:return this.neutral(e);case Uq:return this.keyword(e);case O3:return this.quoted(e);case jq:return this.afterquote(e);case Vq:return this.number(e);case iB:return}};Tp.prototype.afterquote=function(e){if(e==='\"'){this.word+='\"',this.state=O3;return}if(B3.test(e)){this.word=this.word.trim(),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in afterquote yet, index '+this.place)};Tp.prototype.afterItem=function(e){if(e===\",\"){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=$2;return}if(e===\"]\"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=$2,this.currentObject=this.stack.pop(),this.currentObject||(this.state=iB);return}};Tp.prototype.number=function(e){if(Gq.test(e)){this.word+=e;return}if(B3.test(e)){this.word=parseFloat(this.word),this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in number yet, index '+this.place)};Tp.prototype.quoted=function(e){if(e==='\"'){this.state=jq;return}this.word+=e};Tp.prototype.keyword=function(e){if(ypt.test(e)){this.word+=e;return}if(e===\"[\"){var t=[];t.push(this.word),this.level++,this.root===null?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,this.state=$2;return}if(B3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in keyword yet, index '+this.place)};Tp.prototype.neutral=function(e){if(_pt.test(e)){this.word=e,this.state=Uq;return}if(e==='\"'){this.word=\"\",this.state=O3;return}if(Gq.test(e)){this.word=e,this.state=Vq;return}if(B3.test(e)){this.afterItem(e);return}throw new Error(`havn't handled \"`+e+'\" in neutral yet, index '+this.place)};Tp.prototype.output=function(){for(;this.place0?90:-90),e.lat_ts=e.lat1):!e.lat_ts&&e.lat0&&e.projName===\"Polar_Stereographic\"&&(e.lat_ts=e.lat0,e.lat0=_d(e.lat0>0?90:-90))}function F3(e){var t=Nq(e),r=t.shift(),i=t.shift();t.unshift([\"name\",i]),t.unshift([\"type\",r]);var n={};return zg(t,n),wpt(n),n}function nh(e){var t=this;if(arguments.length===2){var r=arguments[1];typeof r==\"string\"?r.charAt(0)===\"+\"?nh[e]=Y2(arguments[1]):nh[e]=F3(arguments[1]):nh[e]=r}else if(arguments.length===1){if(Array.isArray(e))return e.map(function(i){Array.isArray(i)?nh.apply(t,i):nh(i)});if(typeof e==\"string\"){if(e in nh)return nh[e]}else\"EPSG\"in e?nh[\"EPSG:\"+e.EPSG]=e:\"ESRI\"in e?nh[\"ESRI:\"+e.ESRI]=e:\"IAU2000\"in e?nh[\"IAU2000:\"+e.IAU2000]=e:console.log(e);return}}Lq(nh);var qv=nh;function Spt(e){return typeof e==\"string\"}function Tpt(e){return e in qv}var Mpt=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];function Ept(e){return Mpt.some(function(t){return e.indexOf(t)>-1})}var Ppt=[\"3857\",\"900913\",\"3785\",\"102113\"];function Ipt(e){var t=lu(e,\"authority\");if(t){var r=lu(t,\"epsg\");return r&&Ppt.indexOf(r)>-1}}function Cpt(e){var t=lu(e,\"extension\");if(t)return lu(t,\"proj4\")}function Lpt(e){return e[0]===\"+\"}function kpt(e){if(Spt(e)){if(Tpt(e))return qv[e];if(Ept(e)){var t=F3(e);if(Ipt(t))return qv[\"EPSG:3857\"];var r=Cpt(t);return r?Y2(r):t}if(Lpt(e))return Y2(e)}else return e}var Hq=kpt;function nB(e,t){e=e||{};var r,i;if(!t)return e;for(i in t)r=t[i],r!==void 0&&(e[i]=r);return e}function il(e,t,r){var i=e*t;return r/Math.sqrt(1-i*i)}function yd(e){return e<0?-1:1}function Pe(e){return Math.abs(e)<=xs?e:e-yd(e)*Sm}function Ll(e,t,r){var i=e*r,n=.5*e;return i=Math.pow((1-i)/(1+i),n),Math.tan(.5*(de-t))/i}function Mp(e,t){for(var r=.5*e,i,n,s=de-2*Math.atan(t),o=0;o<=15;o++)if(i=e*Math.sin(s),n=de-2*Math.atan(t*Math.pow((1-i)/(1+i),r))-s,s+=n,Math.abs(n)<=1e-10)return s;return-9999}function Rpt(){var e=this.b/this.a;this.es=1-e*e,\"x0\"in this||(this.x0=0),\"y0\"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Dpt(e){var t=e.x,r=e.y;if(r*Ac>90&&r*Ac<-90&&t*Ac>180&&t*Ac<-180)return null;var i,n;if(Math.abs(Math.abs(r)-de)<=xe)return null;if(this.sphere)i=this.x0+this.a*this.k0*Pe(t-this.long0),n=this.y0+this.a*this.k0*Math.log(Math.tan(Pi+.5*r));else{var s=Math.sin(r),o=Ll(this.e,r,s);i=this.x0+this.a*this.k0*Pe(t-this.long0),n=this.y0-this.a*this.k0*Math.log(o)}return e.x=i,e.y=n,e}function Opt(e){var t=e.x-this.x0,r=e.y-this.y0,i,n;if(this.sphere)n=de-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else{var s=Math.exp(-r/(this.a*this.k0));if(n=Mp(this.e,s),n===-9999)return null}return i=Pe(this.long0+t/(this.a*this.k0)),e.x=i,e.y=n,e}var Bpt=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],qq={init:Rpt,forward:Dpt,inverse:Opt,names:Bpt};function Fpt(){}function Zq(e){return e}var zpt=[\"longlat\",\"identity\"],Yq={init:Fpt,forward:Zq,inverse:Zq,names:zpt};var Npt=[qq,Yq],z3={},N3=[];function $q(e,t){var r=N3.length;return e.names?(N3[r]=e,e.names.forEach(function(i){z3[i.toLowerCase()]=r}),this):(console.log(t),!0)}function Upt(e){if(!e)return!1;var t=e.toLowerCase();if(typeof z3[t]<\"u\"&&N3[z3[t]])return N3[z3[t]]}function Vpt(){Npt.forEach($q)}var Qq={start:Vpt,add:$q,get:Upt};var Xr={};Xr.MERIT={a:6378137,rf:298.257,ellipseName:\"MERIT 1983\"};Xr.SGS85={a:6378136,rf:298.257,ellipseName:\"Soviet Geodetic System 85\"};Xr.GRS80={a:6378137,rf:298.257222101,ellipseName:\"GRS 1980(IUGG, 1980)\"};Xr.IAU76={a:6378140,rf:298.257,ellipseName:\"IAU 1976\"};Xr.airy={a:6377563396e-3,b:635625691e-2,ellipseName:\"Airy 1830\"};Xr.APL4={a:6378137,rf:298.25,ellipseName:\"Appl. Physics. 1965\"};Xr.NWL9D={a:6378145,rf:298.25,ellipseName:\"Naval Weapons Lab., 1965\"};Xr.mod_airy={a:6377340189e-3,b:6356034446e-3,ellipseName:\"Modified Airy\"};Xr.andrae={a:637710443e-2,rf:300,ellipseName:\"Andrae 1876 (Den., Iclnd.)\"};Xr.aust_SA={a:6378160,rf:298.25,ellipseName:\"Australian Natl & S. Amer. 1969\"};Xr.GRS67={a:6378160,rf:298.247167427,ellipseName:\"GRS 67(IUGG 1967)\"};Xr.bessel={a:6377397155e-3,rf:299.1528128,ellipseName:\"Bessel 1841\"};Xr.bess_nam={a:6377483865e-3,rf:299.1528128,ellipseName:\"Bessel 1841 (Namibia)\"};Xr.clrk66={a:63782064e-1,b:63565838e-1,ellipseName:\"Clarke 1866\"};Xr.clrk80={a:6378249145e-3,rf:293.4663,ellipseName:\"Clarke 1880 mod.\"};Xr.clrk80ign={a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:\"Clarke 1880 (IGN)\"};Xr.clrk58={a:6378293645208759e-9,rf:294.2606763692654,ellipseName:\"Clarke 1858\"};Xr.CPM={a:63757387e-1,rf:334.29,ellipseName:\"Comm. des Poids et Mesures 1799\"};Xr.delmbr={a:6376428,rf:311.5,ellipseName:\"Delambre 1810 (Belgium)\"};Xr.engelis={a:637813605e-2,rf:298.2566,ellipseName:\"Engelis 1985\"};Xr.evrst30={a:6377276345e-3,rf:300.8017,ellipseName:\"Everest 1830\"};Xr.evrst48={a:6377304063e-3,rf:300.8017,ellipseName:\"Everest 1948\"};Xr.evrst56={a:6377301243e-3,rf:300.8017,ellipseName:\"Everest 1956\"};Xr.evrst69={a:6377295664e-3,rf:300.8017,ellipseName:\"Everest 1969\"};Xr.evrstSS={a:6377298556e-3,rf:300.8017,ellipseName:\"Everest (Sabah & Sarawak)\"};Xr.fschr60={a:6378166,rf:298.3,ellipseName:\"Fischer (Mercury Datum) 1960\"};Xr.fschr60m={a:6378155,rf:298.3,ellipseName:\"Fischer 1960\"};Xr.fschr68={a:6378150,rf:298.3,ellipseName:\"Fischer 1968\"};Xr.helmert={a:6378200,rf:298.3,ellipseName:\"Helmert 1906\"};Xr.hough={a:6378270,rf:297,ellipseName:\"Hough\"};Xr.intl={a:6378388,rf:297,ellipseName:\"International 1909 (Hayford)\"};Xr.kaula={a:6378163,rf:298.24,ellipseName:\"Kaula 1961\"};Xr.lerch={a:6378139,rf:298.257,ellipseName:\"Lerch 1979\"};Xr.mprts={a:6397300,rf:191,ellipseName:\"Maupertius 1738\"};Xr.new_intl={a:63781575e-1,b:63567722e-1,ellipseName:\"New International 1967\"};Xr.plessis={a:6376523,rf:6355863,ellipseName:\"Plessis 1817 (France)\"};Xr.krass={a:6378245,rf:298.3,ellipseName:\"Krassovsky, 1942\"};Xr.SEasia={a:6378155,b:63567733205e-4,ellipseName:\"Southeast Asia\"};Xr.walbeck={a:6376896,b:63558348467e-4,ellipseName:\"Walbeck\"};Xr.WGS60={a:6378165,rf:298.3,ellipseName:\"WGS 60\"};Xr.WGS66={a:6378145,rf:298.25,ellipseName:\"WGS 66\"};Xr.WGS7={a:6378135,rf:298.26,ellipseName:\"WGS 72\"};var Xq=Xr.WGS84={a:6378137,rf:298.257223563,ellipseName:\"WGS 84\"};Xr.sphere={a:6370997,b:6370997,ellipseName:\"Normal Sphere (r=6370997)\"};function Kq(e,t,r,i){var n=e*e,s=t*t,o=(n-s)/n,c=0;i?(e*=1-o*(Dq+o*(Oq+o*Bq)),n=e*e,o=0):c=Math.sqrt(o);var d=(n-s)/s;return{es:o,e:c,ep2:d}}function Jq(e,t,r,i,n){if(!e){var s=lu(Xr,i);s||(s=Xq),e=s.a,t=s.b,r=s.rf}return r&&!t&&(t=(1-1/r)*e),(r===0||Math.abs(e-t)3&&(c.datum_params[3]!==0||c.datum_params[4]!==0||c.datum_params[5]!==0||c.datum_params[6]!==0)&&(c.datum_type=af,c.datum_params[3]*=Fg,c.datum_params[4]*=Fg,c.datum_params[5]*=Fg,c.datum_params[6]=c.datum_params[6]/1e6+1)),o&&(c.datum_type=Sp,c.grids=o),c.a=r,c.b=i,c.es=n,c.ep2=s,c}var tZ=jpt;var eZ={};function oB(e,t){var r=new DataView(t),i=Wpt(r),n=Hpt(r,i),s=qpt(r,n,i),o={header:n,subgrids:s};return eZ[e]=o,o}function rZ(e){if(e===void 0)return null;var t=e.split(\",\");return t.map(Gpt)}function Gpt(e){if(e.length===0)return null;var t=e[0]===\"@\";return t&&(e=e.slice(1)),e===\"null\"?{name:\"null\",mandatory:!t,grid:null,isNull:!0}:{name:e,mandatory:!t,grid:eZ[e]||null,isNull:!1}}function Zv(e){return e/3600*Math.PI/180}function Wpt(e){var t=e.getInt32(8,!1);return t===11?!1:(t=e.getInt32(8,!0),t!==11&&console.warn(\"Failed to detect nadgrid endian-ness, defaulting to little-endian\"),!0)}function Hpt(e,t){return{nFields:e.getInt32(8,t),nSubgridFields:e.getInt32(24,t),nSubgrids:e.getInt32(40,t),shiftType:sB(e,56,64).trim(),fromSemiMajorAxis:e.getFloat64(120,t),fromSemiMinorAxis:e.getFloat64(136,t),toSemiMajorAxis:e.getFloat64(152,t),toSemiMinorAxis:e.getFloat64(168,t)}}function sB(e,t,r){return String.fromCharCode.apply(null,new Uint8Array(e.buffer.slice(t,r)))}function qpt(e,t,r){for(var i=176,n=[],s=0;s5e-11?!1:e.datum_type===of?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]:e.datum_type===af?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]&&e.datum_params[3]===t.datum_params[3]&&e.datum_params[4]===t.datum_params[4]&&e.datum_params[5]===t.datum_params[5]&&e.datum_params[6]===t.datum_params[6]:!0}function U3(e,t,r){var i=e.x,n=e.y,s=e.z?e.z:0,o,c,d,_;if(n<-de&&n>-1.001*de)n=-de;else if(n>de&&n<1.001*de)n=de;else{if(n<-de)return{x:-1/0,y:-1/0,z:e.z};if(n>de)return{x:1/0,y:1/0,z:e.z}}return i>Math.PI&&(i-=2*Math.PI),c=Math.sin(n),_=Math.cos(n),d=c*c,o=r/Math.sqrt(1-t*d),{x:(o+s)*_*Math.cos(i),y:(o+s)*_*Math.sin(i),z:(o*(1-t)+s)*c}}function V3(e,t,r,i){var n=1e-12,s=n*n,o=30,c,d,_,w,I,R,N,j,Y,it,Z,K,J,ht=e.x,Tt=e.y,Ot=e.z?e.z:0,Yt,te,oe;if(c=Math.sqrt(ht*ht+Tt*Tt),d=Math.sqrt(ht*ht+Tt*Tt+Ot*Ot),c/rs&&Ji.y||j>i.x||Zc&&Math.abs(d.y)>c);if(o<0)return console.log(\"Inverse grid shift iterator failed to converge.\"),i;i.x=Pe(s.x+r.ll[0]),i.y=s.y+r.ll[1]}else isNaN(s.x)||(i.x=e.x+s.x,i.y=e.y+s.y);return i}function aZ(e,t){var r={x:e.x/t.del[0],y:e.y/t.del[1]},i={x:Math.floor(r.x),y:Math.floor(r.y)},n={x:r.x-1*i.x,y:r.y-1*i.y},s={x:Number.NaN,y:Number.NaN},o;if(i.x<0||i.x>=t.lim[0]||i.y<0||i.y>=t.lim[1])return s;o=i.y*t.lim[0]+i.x;var c={x:t.cvs[o][0],y:t.cvs[o][1]};o++;var d={x:t.cvs[o][0],y:t.cvs[o][1]};o+=t.lim[0];var _={x:t.cvs[o][0],y:t.cvs[o][1]};o--;var w={x:t.cvs[o][0],y:t.cvs[o][1]},I=n.x*n.y,R=n.x*(1-n.y),N=(1-n.x)*(1-n.y),j=(1-n.x)*n.y;return s.x=N*c.x+R*d.x+j*w.x+I*_.x,s.y=N*c.y+R*d.y+j*w.y+I*_.y,s}function aB(e,t,r){var i=r.x,n=r.y,s=r.z||0,o,c,d,_={};for(d=0;d<3;d++)if(!(t&&d===2&&r.z===void 0))switch(d===0?(o=i,\"ew\".indexOf(e.axis[d])!==-1?c=\"x\":c=\"y\"):d===1?(o=n,\"ns\".indexOf(e.axis[d])!==-1?c=\"y\":c=\"x\"):(o=s,c=\"z\"),e.axis[d]){case\"e\":_[c]=o;break;case\"w\":_[c]=-o;break;case\"n\":_[c]=o;break;case\"s\":_[c]=-o;break;case\"u\":r[c]!==void 0&&(_.z=o);break;case\"d\":r[c]!==void 0&&(_.z=-o);break;default:return null}return _}function G3(e){var t={x:e[0],y:e[1]};return e.length>2&&(t.z=e[2]),e.length>3&&(t.m=e[3]),t}function uZ(e){cZ(e.x),cZ(e.y)}function cZ(e){if(typeof Number.isFinite==\"function\"){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(typeof e!=\"number\"||e!==e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}function Xpt(e,t){return(e.datum.datum_type===of||e.datum.datum_type===af||e.datum.datum_type===Sp)&&t.datumCode!==\"WGS84\"||(t.datum.datum_type===of||t.datum.datum_type===af||t.datum.datum_type===Sp)&&e.datumCode!==\"WGS84\"}function Ng(e,t,r,i){var n;Array.isArray(r)?r=G3(r):r={x:r.x,y:r.y,z:r.z,m:r.m};var s=r.z!==void 0;if(uZ(r),e.datum&&t.datum&&Xpt(e,t)&&(n=new Tm(\"WGS84\"),r=Ng(e,n,r,i),e=n),i&&e.axis!==\"enu\"&&(r=aB(e,!1,r)),e.projName===\"longlat\")r={x:r.x*vs,y:r.y*vs,z:r.z||0};else if(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),r=e.inverse(r),!r)return;if(e.from_greenwich&&(r.x+=e.from_greenwich),r=lZ(e.datum,t.datum,r),!!r)return t.from_greenwich&&(r={x:r.x-t.from_greenwich,y:r.y,z:r.z||0}),t.projName===\"longlat\"?r={x:r.x*Ac,y:r.y*Ac,z:r.z||0}:(r=t.forward(r),t.to_meter&&(r={x:r.x/t.to_meter,y:r.y/t.to_meter,z:r.z||0})),i&&t.axis!==\"enu\"?aB(t,!0,r):(r&&!s&&delete r.z,r)}var hZ=Tm(\"WGS84\");function lB(e,t,r,i){var n,s,o;return Array.isArray(r)?(n=Ng(e,t,r,i)||{x:NaN,y:NaN},r.length>2?typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"?typeof n.z==\"number\"?[n.x,n.y,n.z].concat(r.splice(3)):[n.x,n.y,r[2]].concat(r.splice(3)):[n.x,n.y].concat(r.splice(2)):[n.x,n.y]):(s=Ng(e,t,r,i),o=Object.keys(r),o.length===2||o.forEach(function(c){if(typeof e.name<\"u\"&&e.name===\"geocent\"||typeof t.name<\"u\"&&t.name===\"geocent\"){if(c===\"x\"||c===\"y\"||c===\"z\")return}else if(c===\"x\"||c===\"y\")return;s[c]=r[c]}),s)}function fZ(e){return e instanceof Tm?e:e.oProj?e.oProj:Tm(e)}function Kpt(e,t,r){e=fZ(e);var i=!1,n;return typeof t>\"u\"?(t=e,e=hZ,i=!0):(typeof t.x<\"u\"||Array.isArray(t))&&(r=t,t=e,e=hZ,i=!0),t=fZ(t),r?lB(e,t,r):(n={forward:function(s,o){return lB(e,t,s,o)},inverse:function(s,o){return lB(t,e,s,o)}},i&&(n.oProj=t),n)}var mc=Kpt;var dZ=6,AZ=\"AJSAJS\",mZ=\"AFAFAF\",$v=65,gc=73,sh=79,Q2=86,X2=90,gZ={forward:uB,inverse:Jpt,toPoint:hB};function uB(e,t){return t=t||5,rAt(tAt({lat:e[1],lon:e[0]}),t)}function Jpt(e){var t=fB(yZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat,t.lon,t.lat]:[t.left,t.bottom,t.right,t.top]}function hB(e){var t=fB(yZ(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function cB(e){return e*(Math.PI/180)}function pZ(e){return 180*(e/Math.PI)}function tAt(e){var t=e.lat,r=e.lon,i=6378137,n=.00669438,s=.9996,o,c,d,_,w,I,R,N=cB(t),j=cB(r),Y,it;it=Math.floor((r+180)/6)+1,r===180&&(it=60),t>=56&&t<64&&r>=3&&r<12&&(it=32),t>=72&&t<84&&(r>=0&&r<9?it=31:r>=9&&r<21?it=33:r>=21&&r<33?it=35:r>=33&&r<42&&(it=37)),o=(it-1)*6-180+3,Y=cB(o),c=n/(1-n),d=i/Math.sqrt(1-n*Math.sin(N)*Math.sin(N)),_=Math.tan(N)*Math.tan(N),w=c*Math.cos(N)*Math.cos(N),I=Math.cos(N)*(j-Y),R=i*((1-n/4-3*n*n/64-5*n*n*n/256)*N-(3*n/8+3*n*n/32+45*n*n*n/1024)*Math.sin(2*N)+(15*n*n/256+45*n*n*n/1024)*Math.sin(4*N)-35*n*n*n/3072*Math.sin(6*N));var Z=s*d*(I+(1-_+w)*I*I*I/6+(5-18*_+_*_+72*w-58*c)*I*I*I*I*I/120)+5e5,K=s*(R+d*Math.tan(N)*(I*I/2+(5-_+9*w+4*w*w)*I*I*I*I/24+(61-58*_+_*_+600*w-330*c)*I*I*I*I*I*I/720));return t<0&&(K+=1e7),{northing:Math.round(K),easting:Math.round(Z),zoneNumber:it,zoneLetter:eAt(t)}}function fB(e){var t=e.northing,r=e.easting,i=e.zoneLetter,n=e.zoneNumber;if(n<0||n>60)return null;var s=.9996,o=6378137,c=.00669438,d,_=(1-Math.sqrt(1-c))/(1+Math.sqrt(1-c)),w,I,R,N,j,Y,it,Z,K,J=r-5e5,ht=t;i<\"N\"&&(ht-=1e7),it=(n-1)*6-180+3,d=c/(1-c),Y=ht/s,Z=Y/(o*(1-c/4-3*c*c/64-5*c*c*c/256)),K=Z+(3*_/2-27*_*_*_/32)*Math.sin(2*Z)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*Z)+151*_*_*_/96*Math.sin(6*Z),w=o/Math.sqrt(1-c*Math.sin(K)*Math.sin(K)),I=Math.tan(K)*Math.tan(K),R=d*Math.cos(K)*Math.cos(K),N=o*(1-c)/Math.pow(1-c*Math.sin(K)*Math.sin(K),1.5),j=J/(w*s);var Tt=K-w*Math.tan(K)/N*(j*j/2-(5+3*I+10*R-4*R*R-9*d)*j*j*j*j/24+(61+90*I+298*R+45*I*I-252*d-3*R*R)*j*j*j*j*j*j/720);Tt=pZ(Tt);var Ot=(j-(1+2*I+R)*j*j*j/6+(5-2*R+28*I-3*R*R+8*d+24*I*I)*j*j*j*j*j/120)/Math.cos(K);Ot=it+pZ(Ot);var Yt;if(e.accuracy){var te=fB({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});Yt={top:te.lat,right:te.lon,bottom:Tt,left:Ot}}else Yt={lat:Tt,lon:Ot};return Yt}function eAt(e){var t=\"Z\";return 84>=e&&e>=72?t=\"X\":72>e&&e>=64?t=\"W\":64>e&&e>=56?t=\"V\":56>e&&e>=48?t=\"U\":48>e&&e>=40?t=\"T\":40>e&&e>=32?t=\"S\":32>e&&e>=24?t=\"R\":24>e&&e>=16?t=\"Q\":16>e&&e>=8?t=\"P\":8>e&&e>=0?t=\"N\":0>e&&e>=-8?t=\"M\":-8>e&&e>=-16?t=\"L\":-16>e&&e>=-24?t=\"K\":-24>e&&e>=-32?t=\"J\":-32>e&&e>=-40?t=\"H\":-40>e&&e>=-48?t=\"G\":-48>e&&e>=-56?t=\"F\":-56>e&&e>=-64?t=\"E\":-64>e&&e>=-72?t=\"D\":-72>e&&e>=-80&&(t=\"C\"),t}function rAt(e,t){var r=\"00000\"+e.easting,i=\"00000\"+e.northing;return e.zoneNumber+e.zoneLetter+iAt(e.easting,e.northing,e.zoneNumber)+r.substr(r.length-5,t)+i.substr(i.length-5,t)}function iAt(e,t,r){var i=_Z(r),n=Math.floor(e/1e5),s=Math.floor(t/1e5)%20;return nAt(n,s,i)}function _Z(e){var t=e%dZ;return t===0&&(t=dZ),t}function nAt(e,t,r){var i=r-1,n=AZ.charCodeAt(i),s=mZ.charCodeAt(i),o=n+e-1,c=s+t,d=!1;o>X2&&(o=o-X2+$v-1,d=!0),(o===gc||ngc||(o>gc||nsh||(o>sh||nX2&&(o=o-X2+$v-1),c>Q2?(c=c-Q2+$v-1,d=!0):d=!1,(c===gc||sgc||(c>gc||ssh||(c>sh||sQ2&&(c=c-Q2+$v-1);var _=String.fromCharCode(o)+String.fromCharCode(c);return _}function yZ(e){if(e&&e.length===0)throw\"MGRSPoint coverting from nothing\";for(var t=e.length,r=null,i=\"\",n,s=0;!/[A-Z]/.test(n=e.charAt(s));){if(s>=2)throw\"MGRSPoint bad conversion from: \"+e;i+=n,s++}var o=parseInt(i,10);if(s===0||s+3>t)throw\"MGRSPoint bad conversion from: \"+e;var c=e.charAt(s++);if(c<=\"A\"||c===\"B\"||c===\"Y\"||c>=\"Z\"||c===\"I\"||c===\"O\")throw\"MGRSPoint zone letter \"+c+\" not handled: \"+e;r=e.substring(s,s+=2);for(var d=_Z(o),_=sAt(r.charAt(0),d),w=oAt(r.charAt(1),d);w0&&(Y=1e5/Math.pow(10,R),it=e.substring(s,s+R),N=parseFloat(it)*Y,Z=e.substring(s+R),j=parseFloat(Z)*Y),K=N+_,J=j+w,{easting:K,northing:J,zoneLetter:c,zoneNumber:o,accuracy:Y}}function sAt(e,t){for(var r=AZ.charCodeAt(t-1),i=1e5,n=!1;r!==e.charCodeAt(0);){if(r++,r===gc&&r++,r===sh&&r++,r>X2){if(n)throw\"Bad character: \"+e;r=$v,n=!0}i+=1e5}return i}function oAt(e,t){if(e>\"V\")throw\"MGRSPoint given invalid Northing \"+e;for(var r=mZ.charCodeAt(t-1),i=0,n=!1;r!==e.charCodeAt(0);){if(r++,r===gc&&r++,r===sh&&r++,r>Q2){if(n)throw\"Bad character: \"+e;r=$v,n=!0}i+=1e5}return i}function aAt(e){var t;switch(e){case\"C\":t=11e5;break;case\"D\":t=2e6;break;case\"E\":t=28e5;break;case\"F\":t=37e5;break;case\"G\":t=46e5;break;case\"H\":t=55e5;break;case\"J\":t=64e5;break;case\"K\":t=73e5;break;case\"L\":t=82e5;break;case\"M\":t=91e5;break;case\"N\":t=0;break;case\"P\":t=8e5;break;case\"Q\":t=17e5;break;case\"R\":t=26e5;break;case\"S\":t=35e5;break;case\"T\":t=44e5;break;case\"U\":t=53e5;break;case\"V\":t=62e5;break;case\"W\":t=7e6;break;case\"X\":t=79e5;break;default:t=-1}if(t>=0)return t;throw\"Invalid zone letter: \"+e}function Qv(e,t,r){if(!(this instanceof Qv))return new Qv(e,t,r);if(Array.isArray(e))this.x=e[0],this.y=e[1],this.z=e[2]||0;else if(typeof e==\"object\")this.x=e.x,this.y=e.y,this.z=e.z||0;else if(typeof e==\"string\"&&typeof t>\"u\"){var i=e.split(\",\");this.x=parseFloat(i[0],10),this.y=parseFloat(i[1],10),this.z=parseFloat(i[2],10)||0}else this.x=e,this.y=t,this.z=r||0;console.warn(\"proj4.Point will be removed in version 3, use proj4.toPoint\")}Qv.fromMGRS=function(e){return new Qv(hB(e))};Qv.prototype.toMGRS=function(e){return uB([this.x,this.y],e)};var vZ=Qv;var lAt=1,cAt=.25,xZ=.046875,bZ=.01953125,wZ=.01068115234375,uAt=.75,hAt=.46875,fAt=.013020833333333334,dAt=.007120768229166667,pAt=.3645833333333333,AAt=.005696614583333333,mAt=.3076171875;function W3(e){var t=[];t[0]=lAt-e*(cAt+e*(xZ+e*(bZ+e*wZ))),t[1]=e*(uAt-e*(xZ+e*(bZ+e*wZ)));var r=e*e;return t[2]=r*(hAt-e*(fAt+e*dAt)),r*=e,t[3]=r*(pAt-e*AAt),t[4]=r*e*mAt,t}function Ug(e,t,r,i){return r*=t,t*=t,i[0]*e-r*(i[1]+t*(i[2]+t*(i[3]+t*i[4])))}var gAt=20;function H3(e,t,r){for(var i=1/(1-t),n=e,s=gAt;s;--s){var o=Math.sin(n),c=1-t*o*o;if(c=(Ug(n,o,Math.cos(n),r)-e)*(c*Math.sqrt(c))*i,n-=c,Math.abs(c)xe?Math.tan(r):0,Y=Math.pow(j,2),it=Math.pow(Y,2);n=1-this.es*Math.pow(c,2),w=w/Math.sqrt(n);var Z=Ug(r,c,d,this.en);s=this.a*(this.k0*w*(1+I/6*(1-Y+R+I/20*(5-18*Y+it+14*R-58*Y*R+I/42*(61+179*it-it*Y-479*Y)))))+this.x0,o=this.a*(this.k0*(Z-this.ml0+c*i*w/2*(1+I/12*(5-Y+9*R+4*N+I/30*(61+it-58*Y+270*R-330*Y*R+I/56*(1385+543*it-it*Y-3111*Y))))))+this.y0}else{var _=d*Math.sin(i);if(Math.abs(Math.abs(_)-1)=1){if(_-1>xe)return 93;o=0}else o=Math.acos(o);r<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return e.x=s,e.y=o,e}function vAt(e){var t,r,i,n,s=(e.x-this.x0)*(1/this.a),o=(e.y-this.y0)*(1/this.a);if(this.es)if(t=this.ml0+o/this.k0,r=H3(t,this.es,this.en),Math.abs(r)xe?Math.tan(r):0,j=this.ep2*Math.pow(R,2),Y=Math.pow(j,2),it=Math.pow(N,2),Z=Math.pow(it,2);t=1-this.es*Math.pow(I,2);var K=s*Math.sqrt(t)/this.k0,J=Math.pow(K,2);t=t*N,i=r-t*J/(1-this.es)*.5*(1-J/12*(5+3*it-9*j*it+j-4*Y-J/30*(61+90*it-252*j*it+45*Z+46*j-J/56*(1385+3633*it+4095*Z+1574*Z*it)))),n=Pe(this.long0+K*(1-J/6*(1+2*it+j-J/20*(5+28*it+24*Z+8*j*it+6*j-J/42*(61+662*it+1320*Z+720*Z*it))))/R)}else i=de*yd(o),n=0;else{var c=Math.exp(s/this.k0),d=.5*(c-1/c),_=this.lat0+o/this.k0,w=Math.cos(_);t=Math.sqrt((1-Math.pow(w,2))/(1+Math.pow(d,2))),i=Math.asin(t),o<0&&(i=-i),d===0&&w===0?n=0:n=Pe(Math.atan2(d,w)+this.long0)}return e.x=n,e.y=i,e}var xAt=[\"Fast_Transverse_Mercator\",\"Fast Transverse Mercator\"],Xv={init:_At,forward:yAt,inverse:vAt,names:xAt};function q3(e){var t=Math.exp(e);return t=(t-1/t)/2,t}function Ma(e,t){e=Math.abs(e),t=Math.abs(t);var r=Math.max(e,t),i=Math.min(e,t)/(r||1);return r*Math.sqrt(1+Math.pow(i,2))}function SZ(e){var t=1+e,r=t-1;return r===0?e:e*Math.log(t)/r}function TZ(e){var t=Math.abs(e);return t=SZ(t*(1+t/(Ma(1,t)+1))),e<0?-t:t}function Z3(e,t){for(var r=2*Math.cos(2*t),i=e.length-1,n=e[i],s=0,o;--i>=0;)o=-s+r*n+e[i],s=n,n=o;return t+o*Math.sin(2*t)}function MZ(e,t){for(var r=2*Math.cos(t),i=e.length-1,n=e[i],s=0,o;--i>=0;)o=-s+r*n+e[i],s=n,n=o;return Math.sin(t)*o}function EZ(e){var t=Math.exp(e);return t=(t+1/t)/2,t}function dB(e,t,r){for(var i=Math.sin(t),n=Math.cos(t),s=q3(r),o=EZ(r),c=2*n*o,d=-2*i*s,_=e.length-1,w=e[_],I=0,R=0,N=0,j,Y;--_>=0;)j=R,Y=I,R=w,I=N,w=-j+c*R-d*I+e[_],N=-Y+d*R+c*I;return c=i*o,d=n*s,[c*w-d*N,c*N+d*w]}function bAt(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');this.approx&&(Xv.init.apply(this),this.forward=Xv.forward,this.inverse=Xv.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var e=this.es/(1+Math.sqrt(1-this.es)),t=e/(2-e),r=t;this.cgb[0]=t*(2+t*(-2/3+t*(-2+t*(116/45+t*(26/45+t*(-2854/675)))))),this.cbg[0]=t*(-2+t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))),r=r*t,this.cgb[1]=r*(7/3+t*(-8/5+t*(-227/45+t*(2704/315+t*(2323/945))))),this.cbg[1]=r*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),r=r*t,this.cgb[2]=r*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=r*(-26/15+t*(34/21+t*(8/5+t*(-12686/2835)))),r=r*t,this.cgb[3]=r*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=r*(1237/630+t*(-12/5+t*(-24832/14175))),r=r*t,this.cgb[4]=r*(4174/315+t*(-144838/6237)),this.cbg[4]=r*(-734/315+t*(109598/31185)),r=r*t,this.cgb[5]=r*(601676/22275),this.cbg[5]=r*(444337/155925),r=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+r*(1/4+r*(1/64+r/256))),this.utg[0]=t*(-.5+t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=r*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=r*(13/48+t*(-3/5+t*(557/1440+t*(281/630+t*(-1983433/1935360))))),r=r*t,this.utg[2]=r*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=r*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),r=r*t,this.utg[3]=r*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=r*(49561/161280+t*(-179/168+t*(6601661/7257600))),r=r*t,this.utg[4]=r*(-4583/161280+t*(108847/3991680)),this.gtu[4]=r*(34729/80640+t*(-3418889/1995840)),r=r*t,this.utg[5]=r*(-20648693/638668800),this.gtu[5]=r*(212378941/319334400);var i=Z3(this.cbg,this.lat0);this.Zb=-this.Qn*(i+MZ(this.gtu,2*i))}function wAt(e){var t=Pe(e.x-this.long0),r=e.y;r=Z3(this.cbg,r);var i=Math.sin(r),n=Math.cos(r),s=Math.sin(t),o=Math.cos(t);r=Math.atan2(i,o*n),t=Math.atan2(s*n,Ma(i,n*o)),t=TZ(Math.tan(t));var c=dB(this.gtu,2*r,2*t);r=r+c[0],t=t+c[1];var d,_;return Math.abs(t)<=2.623395162778?(d=this.a*(this.Qn*t)+this.x0,_=this.a*(this.Qn*r+this.Zb)+this.y0):(d=1/0,_=1/0),e.x=d,e.y=_,e}function SAt(e){var t=(e.x-this.x0)*(1/this.a),r=(e.y-this.y0)*(1/this.a);r=(r-this.Zb)/this.Qn,t=t/this.Qn;var i,n;if(Math.abs(t)<=2.623395162778){var s=dB(this.utg,2*r,2*t);r=r+s[0],t=t+s[1],t=Math.atan(q3(t));var o=Math.sin(r),c=Math.cos(r),d=Math.sin(t),_=Math.cos(t);r=Math.atan2(o*_,Ma(d,_*c)),t=Math.atan2(d,_*c),i=Pe(t+this.long0),n=Z3(this.cgb,r)}else i=1/0,n=1/0;return e.x=i,e.y=n,e}var TAt=[\"Extended_Transverse_Mercator\",\"Extended Transverse Mercator\",\"etmerc\",\"Transverse_Mercator\",\"Transverse Mercator\",\"Gauss Kruger\",\"Gauss_Kruger\",\"tmerc\"],Kv={init:bAt,forward:wAt,inverse:SAt,names:TAt};function PZ(e,t){if(e===void 0){if(e=Math.floor((Pe(t)+Math.PI)*30/Math.PI)+1,e<0)return 0;if(e>60)return 60}return e}var MAt=\"etmerc\";function EAt(){var e=PZ(this.zone,this.long0);if(e===void 0)throw new Error(\"unknown utm zone\");this.lat0=0,this.long0=(6*Math.abs(e)-183)*vs,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Kv.init.apply(this),this.forward=Kv.forward,this.inverse=Kv.inverse}var PAt=[\"Universal Transverse Mercator System\",\"utm\"],IZ={init:EAt,names:PAt,dependsOn:MAt};function Y3(e,t){return Math.pow((1-e)/(1+e),t)}var IAt=20;function CAt(){var e=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*e*e),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(e/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Pi)/(Math.pow(Math.tan(.5*this.lat0+Pi),this.C)*Y3(this.e*e,this.ratexp))}function LAt(e){var t=e.x,r=e.y;return e.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*r+Pi),this.C)*Y3(this.e*Math.sin(r),this.ratexp))-de,e.x=this.C*t,e}function kAt(e){for(var t=1e-14,r=e.x/this.C,i=e.y,n=Math.pow(Math.tan(.5*i+Pi)/this.K,1/this.C),s=IAt;s>0&&(i=2*Math.atan(n*Y3(this.e*Math.sin(e.y),-.5*this.e))-de,!(Math.abs(i-e.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=xe&&Math.abs(Math.cos(this.lat_ts))>xe&&(this.k0=.5*this.cons*il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Ll(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=il(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-de,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function UAt(e){var t=e.x,r=e.y,i=Math.sin(r),n=Math.cos(r),s,o,c,d,_,w,I=Pe(t-this.long0);return Math.abs(Math.abs(t-this.long0)-Math.PI)<=xe&&Math.abs(r+this.lat0)<=xe?(e.x=NaN,e.y=NaN,e):this.sphere?(s=2*this.k0/(1+this.sinlat0*i+this.coslat0*n*Math.cos(I)),e.x=this.a*s*n*Math.sin(I)+this.x0,e.y=this.a*s*(this.coslat0*i-this.sinlat0*n*Math.cos(I))+this.y0,e):(o=2*Math.atan(this.ssfn_(r,i,this.e))-de,d=Math.cos(o),c=Math.sin(o),Math.abs(this.coslat0)<=xe?(_=Ll(this.e,r*this.con,this.con*i),w=2*this.a*this.k0*_/this.cons,e.x=this.x0+w*Math.sin(t-this.long0),e.y=this.y0-this.con*w*Math.cos(t-this.long0),e):(Math.abs(this.sinlat0)0?t=Pe(this.long0+Math.atan2(e.x,-1*e.y)):t=Pe(this.long0+Math.atan2(e.x,e.y)):t=Pe(this.long0+Math.atan2(e.x*Math.sin(c),o*this.coslat0*Math.cos(c)-e.y*this.sinlat0*Math.sin(c))),e.x=t,e.y=r,e)}else if(Math.abs(this.coslat0)<=xe){if(o<=xe)return r=this.lat0,t=this.long0,e.x=t,e.y=r,e;e.x*=this.con,e.y*=this.con,i=o*this.cons/(2*this.a*this.k0),r=this.con*Mp(this.e,i),t=this.con*Pe(this.con*this.long0+Math.atan2(e.x,-1*e.y))}else n=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,o<=xe?s=this.X0:(s=Math.asin(Math.cos(n)*this.sinX0+e.y*Math.sin(n)*this.cosX0/o),t=Pe(this.long0+Math.atan2(e.x*Math.sin(n),o*this.cosX0*Math.cos(n)-e.y*this.sinX0*Math.sin(n)))),r=-1*Mp(this.e,Math.tan(.5*(de+s)));return e.x=t,e.y=r,e}var jAt=[\"stere\",\"Stereographic_South_Pole\",\"Polar Stereographic (variant B)\",\"Polar_Stereographic\"],LZ={init:NAt,forward:UAt,inverse:VAt,names:jAt,ssfn_:zAt};function GAt(){var e=this.lat0;this.lambda0=this.long0;var t=Math.sin(e),r=this.a,i=this.rf,n=1/i,s=2*n-Math.pow(n,2),o=this.e=Math.sqrt(s);this.R=this.k0*r*Math.sqrt(1-s)/(1-s*Math.pow(t,2)),this.alpha=Math.sqrt(1+s/(1-s)*Math.pow(Math.cos(e),4)),this.b0=Math.asin(t/this.alpha);var c=Math.log(Math.tan(Math.PI/4+this.b0/2)),d=Math.log(Math.tan(Math.PI/4+e/2)),_=Math.log((1+o*t)/(1-o*t));this.K=c-this.alpha*d+this.alpha*o/2*_}function WAt(e){var t=Math.log(Math.tan(Math.PI/4-e.y/2)),r=this.e/2*Math.log((1+this.e*Math.sin(e.y))/(1-this.e*Math.sin(e.y))),i=-this.alpha*(t+r)+this.K,n=2*(Math.atan(Math.exp(i))-Math.PI/4),s=this.alpha*(e.x-this.lambda0),o=Math.atan(Math.sin(s)/(Math.sin(this.b0)*Math.tan(n)+Math.cos(this.b0)*Math.cos(s))),c=Math.asin(Math.cos(this.b0)*Math.sin(n)-Math.sin(this.b0)*Math.cos(n)*Math.cos(s));return e.y=this.R/2*Math.log((1+Math.sin(c))/(1-Math.sin(c)))+this.y0,e.x=this.R*o+this.x0,e}function HAt(e){for(var t=e.x-this.x0,r=e.y-this.y0,i=t/this.R,n=2*(Math.atan(Math.exp(r/this.R))-Math.PI/4),s=Math.asin(Math.cos(this.b0)*Math.sin(n)+Math.sin(this.b0)*Math.cos(n)*Math.cos(i)),o=Math.atan(Math.sin(i)/(Math.cos(this.b0)*Math.cos(i)-Math.sin(this.b0)*Math.tan(n))),c=this.lambda0+o/this.alpha,d=0,_=s,w=-1e3,I=0;Math.abs(_-w)>1e-7;){if(++I>20)return;d=1/this.alpha*(Math.log(Math.tan(Math.PI/4+s/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(_))/2)),w=_,_=2*Math.atan(Math.exp(d))-Math.PI/2}return e.x=c,e.y=_,e}var qAt=[\"somerc\"],kZ={init:GAt,forward:WAt,inverse:HAt,names:qAt};var Jv=1e-7;function ZAt(e){var t=[\"Hotine_Oblique_Mercator\",\"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\"],r=typeof e.PROJECTION==\"object\"?Object.keys(e.PROJECTION)[0]:e.PROJECTION;return\"no_uoff\"in e||\"no_off\"in e||t.indexOf(r)!==-1}function YAt(){var e,t,r,i,n,s,o,c,d,_,w=0,I,R=0,N=0,j=0,Y=0,it=0,Z=0,K;this.no_off=ZAt(this),this.no_rot=\"no_rot\"in this;var J=!1;\"alpha\"in this&&(J=!0);var ht=!1;if(\"rectified_grid_angle\"in this&&(ht=!0),J&&(Z=this.alpha),ht&&(w=this.rectified_grid_angle*vs),J||ht)R=this.longc;else if(N=this.long1,Y=this.lat1,j=this.long2,it=this.lat2,Math.abs(Y-it)<=Jv||(e=Math.abs(Y))<=Jv||Math.abs(e-de)<=Jv||Math.abs(Math.abs(this.lat0)-de)<=Jv||Math.abs(Math.abs(it)-de)<=Jv)throw new Error;var Tt=1-this.es;t=Math.sqrt(Tt),Math.abs(this.lat0)>xe?(c=Math.sin(this.lat0),r=Math.cos(this.lat0),e=1-this.es*c*c,this.B=r*r,this.B=Math.sqrt(1+this.es*this.B*this.B/Tt),this.A=this.B*this.k0*t/e,i=this.B*t/(r*Math.sqrt(e)),n=i*i-1,n<=0?n=0:(n=Math.sqrt(n),this.lat0<0&&(n=-n)),this.E=n+=i,this.E*=Math.pow(Ll(this.e,this.lat0,c),this.B)):(this.B=1/t,this.A=this.k0,this.E=i=n=1),J||ht?(J?(I=Math.asin(Math.sin(Z)/i),ht||(w=Z)):(I=w,Z=Math.asin(i*Math.sin(I))),this.lam0=R-Math.asin(.5*(n-1/n)*Math.tan(I))/this.B):(s=Math.pow(Ll(this.e,Y,Math.sin(Y)),this.B),o=Math.pow(Ll(this.e,it,Math.sin(it)),this.B),n=this.E/s,d=(o-s)/(o+s),_=this.E*this.E,_=(_-o*s)/(_+o*s),e=N-j,e<-Math.pi?j-=Sm:e>Math.pi&&(j+=Sm),this.lam0=Pe(.5*(N+j)-Math.atan(_*Math.tan(.5*this.B*(N-j))/d)/this.B),I=Math.atan(2*Math.sin(this.B*Pe(N-this.lam0))/(n-1/n)),w=Z=Math.asin(i*Math.sin(I))),this.singam=Math.sin(I),this.cosgam=Math.cos(I),this.sinrot=Math.sin(w),this.cosrot=Math.cos(w),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,K=this.A*this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(i*i-1)/Math.cos(Z))),this.lat0<0&&(this.u_0=-this.u_0)),n=.5*I,this.v_pole_n=this.ArB*Math.log(Math.tan(Pi-n)),this.v_pole_s=this.ArB*Math.log(Math.tan(Pi+n))}function $At(e){var t={},r,i,n,s,o,c,d,_;if(e.x=e.x-this.lam0,Math.abs(Math.abs(e.y)-de)>xe){if(o=this.E/Math.pow(Ll(this.e,e.y,Math.sin(e.y)),this.B),c=1/o,r=.5*(o-c),i=.5*(o+c),s=Math.sin(this.B*e.x),n=(r*this.singam-s*this.cosgam)/i,Math.abs(Math.abs(n)-1)0?this.v_pole_n:this.v_pole_s,d=this.ArB*e.y;return this.no_rot?(t.x=d,t.y=_):(d-=this.u_0,t.x=_*this.cosrot+d*this.sinrot,t.y=d*this.cosrot-_*this.sinrot),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function QAt(e){var t,r,i,n,s,o,c,d={};if(e.x=(e.x-this.x0)*(1/this.a),e.y=(e.y-this.y0)*(1/this.a),this.no_rot?(r=e.y,t=e.x):(r=e.x*this.cosrot-e.y*this.sinrot,t=e.y*this.cosrot+e.x*this.sinrot+this.u_0),i=Math.exp(-this.BrA*r),n=.5*(i-1/i),s=.5*(i+1/i),o=Math.sin(this.BrA*t),c=(o*this.cosgam+n*this.singam)/s,Math.abs(Math.abs(c)-1)xe?this.ns=Math.log(i/c)/Math.log(n/d):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=i/(this.ns*Math.pow(n,this.ns)),this.rh=this.a*this.f0*Math.pow(_,this.ns),this.title||(this.title=\"Lambert Conformal Conic\")}}function JAt(e){var t=e.x,r=e.y;Math.abs(2*Math.abs(r)-Math.PI)<=xe&&(r=yd(r)*(de-2*xe));var i=Math.abs(Math.abs(r)-de),n,s;if(i>xe)n=Ll(this.e,r,Math.sin(r)),s=this.a*this.f0*Math.pow(n,this.ns);else{if(i=r*this.ns,i<=0)return null;s=0}var o=this.ns*Pe(t-this.long0);return e.x=this.k0*(s*Math.sin(o))+this.x0,e.y=this.k0*(this.rh-s*Math.cos(o))+this.y0,e}function tmt(e){var t,r,i,n,s,o=(e.x-this.x0)/this.k0,c=this.rh-(e.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(o*o+c*c),r=1):(t=-Math.sqrt(o*o+c*c),r=-1);var d=0;if(t!==0&&(d=Math.atan2(r*o,r*c)),t!==0||this.ns>0){if(r=1/this.ns,i=Math.pow(t/(this.a*this.f0),r),n=Mp(this.e,i),n===-9999)return null}else n=-de;return s=Pe(d/this.ns+this.long0),e.x=s,e.y=n,e}var emt=[\"Lambert Tangential Conformal Conic Projection\",\"Lambert_Conformal_Conic\",\"Lambert_Conformal_Conic_1SP\",\"Lambert_Conformal_Conic_2SP\",\"lcc\",\"Lambert Conic Conformal (1SP)\",\"Lambert Conic Conformal (2SP)\"],DZ={init:KAt,forward:JAt,inverse:tmt,names:emt};function rmt(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function imt(e){var t,r,i,n,s,o,c,d=e.x,_=e.y,w=Pe(d-this.long0);return t=Math.pow((1+this.e*Math.sin(_))/(1-this.e*Math.sin(_)),this.alfa*this.e/2),r=2*(Math.atan(this.k*Math.pow(Math.tan(_/2+this.s45),this.alfa)/t)-this.s45),i=-w*this.alfa,n=Math.asin(Math.cos(this.ad)*Math.sin(r)+Math.sin(this.ad)*Math.cos(r)*Math.cos(i)),s=Math.asin(Math.cos(r)*Math.sin(i)/Math.cos(n)),o=this.n*s,c=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(n/2+this.s45),this.n),e.y=c*Math.cos(o)/1,e.x=c*Math.sin(o)/1,this.czech||(e.y*=-1,e.x*=-1),e}function nmt(e){var t,r,i,n,s,o,c,d,_=e.x;e.x=e.y,e.y=_,this.czech||(e.y*=-1,e.x*=-1),o=Math.sqrt(e.x*e.x+e.y*e.y),s=Math.atan2(e.y,e.x),n=s/Math.sin(this.s0),i=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(i)-Math.sin(this.ad)*Math.cos(i)*Math.cos(n)),r=Math.asin(Math.cos(i)*Math.sin(n)/Math.cos(t)),e.x=this.long0-r/this.alfa,c=t,d=0;var w=0;do e.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(c))/(1-this.e*Math.sin(c)),this.e/2))-this.s45),Math.abs(c-e.y)<1e-10&&(d=1),c=e.y,w+=1;while(d===0&&w<15);return w>=15?null:e}var smt=[\"Krovak\",\"krovak\"],OZ={init:rmt,forward:imt,inverse:nmt,names:smt};function Bo(e,t,r,i,n){return e*n-t*Math.sin(2*n)+r*Math.sin(4*n)-i*Math.sin(6*n)}function Ep(e){return 1-.25*e*(1+e/16*(3+1.25*e))}function Pp(e){return .375*e*(1+.25*e*(1+.46875*e))}function Ip(e){return .05859375*e*e*(1+.75*e)}function Cp(e){return e*e*e*(35/3072)}function Lp(e,t,r){var i=t*r;return e/Math.sqrt(1-i*i)}function lf(e){return Math.abs(e)1e-7?(r=e*t,(1-e*e)*(t/(1-r*r)-.5/e*Math.log((1-r)/(1+r)))):2*t}var umt=1,hmt=2,fmt=3,dmt=4;function pmt(){var e=Math.abs(this.lat0);if(Math.abs(e-de)0){var t;switch(this.qp=cf(this.e,1),this.mmf=.5/(1-this.es),this.apa=wmt(this.es),this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=cf(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Amt(e){var t,r,i,n,s,o,c,d,_,w,I=e.x,R=e.y;if(I=Pe(I-this.long0),this.sphere){if(s=Math.sin(R),w=Math.cos(R),i=Math.cos(I),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(r=this.mode===this.EQUIT?1+w*i:1+this.sinph0*s+this.cosph0*w*i,r<=xe)return null;r=Math.sqrt(2/r),t=r*w*Math.sin(I),r*=this.mode===this.EQUIT?s:this.cosph0*s-this.sinph0*w*i}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(i=-i),Math.abs(R+this.lat0)=0?(t=(_=Math.sqrt(o))*n,r=i*(this.mode===this.S_POLE?_:-_)):t=r=0;break}}return e.x=this.a*t+this.x0,e.y=this.a*r+this.y0,e}function mmt(e){e.x-=this.x0,e.y-=this.y0;var t=e.x/this.a,r=e.y/this.a,i,n,s,o,c,d,_;if(this.sphere){var w=0,I,R=0;if(I=Math.sqrt(t*t+r*r),n=I*.5,n>1)return null;switch(n=2*Math.asin(n),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(R=Math.sin(n),w=Math.cos(n)),this.mode){case this.EQUIT:n=Math.abs(I)<=xe?0:Math.asin(r*R/I),t*=R,r=w*I;break;case this.OBLIQ:n=Math.abs(I)<=xe?this.lat0:Math.asin(w*this.sinph0+r*R*this.cosph0/I),t*=R*this.cosph0,r=(w-Math.sin(n)*this.sinph0)*I;break;case this.N_POLE:r=-r,n=de-n;break;case this.S_POLE:n-=de;break}i=r===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(t,r)}else{if(_=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(t/=this.dd,r*=this.dd,d=Math.sqrt(t*t+r*r),d1&&(e=e>1?1:-1),Math.asin(e)}function Mmt(){Math.abs(this.lat1+this.lat2)xe?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function Emt(e){var t=e.x,r=e.y;this.sin_phi=Math.sin(r),this.cos_phi=Math.cos(r);var i=cf(this.e3,this.sin_phi),n=this.a*Math.sqrt(this.c-this.ns0*i)/this.ns0,s=this.ns0*Pe(t-this.long0),o=n*Math.sin(s)+this.x0,c=this.rh-n*Math.cos(s)+this.y0;return e.x=o,e.y=c,e}function Pmt(e){var t,r,i,n,s,o;return e.x-=this.x0,e.y=this.rh-e.y+this.y0,this.ns0>=0?(t=Math.sqrt(e.x*e.x+e.y*e.y),i=1):(t=-Math.sqrt(e.x*e.x+e.y*e.y),i=-1),n=0,t!==0&&(n=Math.atan2(i*e.x,i*e.y)),i=t*this.ns0/this.a,this.sphere?o=Math.asin((this.c-i*i)/(2*this.ns0)):(r=(this.c-i*i)/this.ns0,o=this.phi1z(this.e3,r)),s=Pe(n/this.ns0+this.long0),e.x=s,e.y=o,e}function Imt(e,t){var r,i,n,s,o,c=_c(.5*t);if(e0||Math.abs(o)<=xe?(c=this.x0+this.a*s*r*Math.sin(i)/o,d=this.y0+this.a*s*(this.cos_p14*t-this.sin_p14*r*n)/o):(c=this.x0+this.infinity_dist*r*Math.sin(i),d=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*r*n)),e.x=c,e.y=d,e}function Rmt(e){var t,r,i,n,s,o;return e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,(t=Math.sqrt(e.x*e.x+e.y*e.y))?(n=Math.atan2(t,this.rc),r=Math.sin(n),i=Math.cos(n),o=_c(i*this.sin_p14+e.y*r*this.cos_p14/t),s=Math.atan2(e.x*r,t*this.cos_p14*i-e.y*this.sin_p14*r),s=Pe(this.long0+s)):(o=this.phic0,s=0),e.x=s,e.y=o,e}var Dmt=[\"gnom\"],NZ={init:Lmt,forward:kmt,inverse:Rmt,names:Dmt};function UZ(e,t){var r=1-(1-e*e)/(2*e)*Math.log((1-e)/(1+e));if(Math.abs(Math.abs(t)-r)<1e-6)return t<0?-1*de:de;for(var i=Math.asin(.5*t),n,s,o,c,d=0;d<30;d++)if(s=Math.sin(i),o=Math.cos(i),c=e*s,n=Math.pow(1-c*c,2)/(2*o)*(t/(1-e*e)-s/(1-c*c)+.5/e*Math.log((1-c)/(1+c))),i+=n,Math.abs(n)<=1e-10)return i;return NaN}function Omt(){this.sphere||(this.k0=il(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function Bmt(e){var t=e.x,r=e.y,i,n,s=Pe(t-this.long0);if(this.sphere)i=this.x0+this.a*s*Math.cos(this.lat_ts),n=this.y0+this.a*Math.sin(r)/Math.cos(this.lat_ts);else{var o=cf(this.e,Math.sin(r));i=this.x0+this.a*this.k0*s,n=this.y0+this.a*o*.5/this.k0}return e.x=i,e.y=n,e}function Fmt(e){e.x-=this.x0,e.y-=this.y0;var t,r;return this.sphere?(t=Pe(this.long0+e.x/this.a/Math.cos(this.lat_ts)),r=Math.asin(e.y/this.a*Math.cos(this.lat_ts))):(r=UZ(this.e,2*e.y*this.k0/this.a),t=Pe(this.long0+e.x/(this.a*this.k0))),e.x=t,e.y=r,e}var zmt=[\"cea\"],VZ={init:Omt,forward:Bmt,inverse:Fmt,names:zmt};function Nmt(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Equidistant Cylindrical (Plate Carre)\",this.rc=Math.cos(this.lat_ts)}function Umt(e){var t=e.x,r=e.y,i=Pe(t-this.long0),n=lf(r-this.lat0);return e.x=this.x0+this.a*i*this.rc,e.y=this.y0+this.a*n,e}function Vmt(e){var t=e.x,r=e.y;return e.x=Pe(this.long0+(t-this.x0)/(this.a*this.rc)),e.y=lf(this.lat0+(r-this.y0)/this.a),e}var jmt=[\"Equirectangular\",\"Equidistant_Cylindrical\",\"eqc\"],jZ={init:Nmt,forward:Umt,inverse:Vmt,names:jmt};var GZ=20;function Gmt(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Ep(this.es),this.e1=Pp(this.es),this.e2=Ip(this.es),this.e3=Cp(this.es),this.ml0=this.a*Bo(this.e0,this.e1,this.e2,this.e3,this.lat0)}function Wmt(e){var t=e.x,r=e.y,i,n,s,o=Pe(t-this.long0);if(s=o*Math.sin(r),this.sphere)Math.abs(r)<=xe?(i=this.a*o,n=-1*this.a*this.lat0):(i=this.a*Math.sin(s)/Math.tan(r),n=this.a*(lf(r-this.lat0)+(1-Math.cos(s))/Math.tan(r)));else if(Math.abs(r)<=xe)i=this.a*o,n=-1*this.ml0;else{var c=Lp(this.a,this.e,Math.sin(r))/Math.tan(r);i=c*Math.sin(s),n=this.a*Bo(this.e0,this.e1,this.e2,this.e3,r)-this.ml0+c*(1-Math.cos(s))}return e.x=i+this.x0,e.y=n+this.y0,e}function Hmt(e){var t,r,i,n,s,o,c,d,_;if(i=e.x-this.x0,n=e.y-this.y0,this.sphere)if(Math.abs(n+this.a*this.lat0)<=xe)t=Pe(i/this.a+this.long0),r=0;else{o=this.lat0+n/this.a,c=i*i/this.a/this.a+o*o,d=o;var w;for(s=GZ;s;--s)if(w=Math.tan(d),_=-1*(o*(d*w+1)-d-.5*(d*d+c)*w)/((d-o)/w-1),d+=_,Math.abs(_)<=xe){r=d;break}t=Pe(this.long0+Math.asin(i*Math.tan(d)/this.a)/Math.sin(r))}else if(Math.abs(n+this.ml0)<=xe)r=0,t=Pe(this.long0+i/this.a);else{o=(this.ml0+n)/this.a,c=i*i/this.a/this.a+o*o,d=o;var I,R,N,j,Y;for(s=GZ;s;--s)if(Y=this.e*Math.sin(d),I=Math.sqrt(1-Y*Y)*Math.tan(d),R=this.a*Bo(this.e0,this.e1,this.e2,this.e3,d),N=this.e0-2*this.e1*Math.cos(2*d)+4*this.e2*Math.cos(4*d)-6*this.e3*Math.cos(6*d),j=R/this.a,_=(o*(I*j+1)-j-.5*I*(j*j+c))/(this.es*Math.sin(2*d)*(j*j+c-2*o*j)/(4*I)+(o-j)*(I*N-2/Math.sin(2*d))-N),d-=_,Math.abs(_)<=xe){r=d;break}I=Math.sqrt(1-this.es*Math.pow(Math.sin(r),2))*Math.tan(r),t=Pe(this.long0+Math.asin(i*I/this.a)/Math.sin(r))}return e.x=t,e.y=r,e}var qmt=[\"Polyconic\",\"poly\"],WZ={init:Gmt,forward:Wmt,inverse:Hmt,names:qmt};function Zmt(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Ymt(e){var t,r=e.x,i=e.y,n=i-this.lat0,s=r-this.long0,o=n/Fg*1e-5,c=s,d=1,_=0;for(t=1;t<=10;t++)d=d*o,_=_+this.A[t]*d;var w=_,I=c,R=1,N=0,j,Y,it=0,Z=0;for(t=1;t<=6;t++)j=R*w-N*I,Y=N*w+R*I,R=j,N=Y,it=it+this.B_re[t]*R-this.B_im[t]*N,Z=Z+this.B_im[t]*R+this.B_re[t]*N;return e.x=Z*this.a+this.x0,e.y=it*this.a+this.y0,e}function $mt(e){var t,r=e.x,i=e.y,n=r-this.x0,s=i-this.y0,o=s/this.a,c=n/this.a,d=1,_=0,w,I,R=0,N=0;for(t=1;t<=6;t++)w=d*o-_*c,I=_*o+d*c,d=w,_=I,R=R+this.C_re[t]*d-this.C_im[t]*_,N=N+this.C_im[t]*d+this.C_re[t]*_;for(var j=0;j.999999999999&&(r=.999999999999),t=Math.asin(r);var i=Pe(this.long0+e.x/(.900316316158*this.a*Math.cos(t)));i<-Math.PI&&(i=-Math.PI),i>Math.PI&&(i=Math.PI),r=(2*t+Math.sin(2*t))/Math.PI,Math.abs(r)>1&&(r=1);var n=Math.asin(r);return e.x=i,e.y=n,e}var c0t=[\"Mollweide\",\"moll\"],YZ={init:o0t,forward:a0t,inverse:l0t,names:c0t};function u0t(){Math.abs(this.lat1+this.lat2)=0?(r=Math.sqrt(e.x*e.x+e.y*e.y),t=1):(r=-Math.sqrt(e.x*e.x+e.y*e.y),t=-1);var s=0;if(r!==0&&(s=Math.atan2(t*e.x,t*e.y)),this.sphere)return n=Pe(this.long0+s/this.ns),i=lf(this.g-r/this.a),e.x=n,e.y=i,e;var o=this.g-r/this.a;return i=Vg(o,this.e0,this.e1,this.e2,this.e3),n=Pe(this.long0+s/this.ns),e.x=n,e.y=i,e}var d0t=[\"Equidistant_Conic\",\"eqdc\"],$Z={init:u0t,forward:h0t,inverse:f0t,names:d0t};function p0t(){this.R=this.a}function A0t(e){var t=e.x,r=e.y,i=Pe(t-this.long0),n,s;Math.abs(r)<=xe&&(n=this.x0+this.R*i,s=this.y0);var o=_c(2*Math.abs(r/Math.PI));(Math.abs(i)<=xe||Math.abs(Math.abs(r)-de)<=xe)&&(n=this.x0,r>=0?s=this.y0+Math.PI*this.R*Math.tan(.5*o):s=this.y0+Math.PI*this.R*-Math.tan(.5*o));var c=.5*Math.abs(Math.PI/i-i/Math.PI),d=c*c,_=Math.sin(o),w=Math.cos(o),I=w/(_+w-1),R=I*I,N=I*(2/_-1),j=N*N,Y=Math.PI*this.R*(c*(I-j)+Math.sqrt(d*(I-j)*(I-j)-(j+d)*(R-j)))/(j+d);i<0&&(Y=-Y),n=this.x0+Y;var it=d+I;return Y=Math.PI*this.R*(N*it-c*Math.sqrt((j+d)*(d+1)-it*it))/(j+d),r>=0?s=this.y0+Y:s=this.y0-Y,e.x=n,e.y=s,e}function m0t(e){var t,r,i,n,s,o,c,d,_,w,I,R,N;return e.x-=this.x0,e.y-=this.y0,I=Math.PI*this.R,i=e.x/I,n=e.y/I,s=i*i+n*n,o=-Math.abs(n)*(1+s),c=o-2*n*n+i*i,d=-2*o+1+2*n*n+s*s,N=n*n/d+(2*c*c*c/d/d/d-9*o*c/d/d)/27,_=(o-c*c/3/d)/d,w=2*Math.sqrt(-_/3),I=3*N/_/w,Math.abs(I)>1&&(I>=0?I=1:I=-1),R=Math.acos(I)/3,e.y>=0?r=(-w*Math.cos(R+Math.PI/3)-c/3/d)*Math.PI:r=-(-w*Math.cos(R+Math.PI/3)-c/3/d)*Math.PI,Math.abs(i)2*de*this.a?void 0:(r=t/this.a,i=Math.sin(r),n=Math.cos(r),s=this.long0,Math.abs(t)<=xe?o=this.lat0:(o=_c(n*this.sin_p12+e.y*i*this.cos_p12/t),c=Math.abs(this.lat0)-de,Math.abs(c)<=xe?this.lat0>=0?s=Pe(this.long0+Math.atan2(e.x,-e.y)):s=Pe(this.long0-Math.atan2(-e.x,e.y)):s=Pe(this.long0+Math.atan2(e.x*i,t*this.cos_p12*n-e.y*this.sin_p12*i))),e.x=s,e.y=o,e)):(d=Ep(this.es),_=Pp(this.es),w=Ip(this.es),I=Cp(this.es),Math.abs(this.sin_p12-1)<=xe?(R=this.a*Bo(d,_,w,I,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=R-t,o=Vg(N/this.a,d,_,w,I),s=Pe(this.long0+Math.atan2(e.x,-1*e.y)),e.x=s,e.y=o,e):Math.abs(this.sin_p12+1)<=xe?(R=this.a*Bo(d,_,w,I,de),t=Math.sqrt(e.x*e.x+e.y*e.y),N=t-R,o=Vg(N/this.a,d,_,w,I),s=Pe(this.long0+Math.atan2(e.x,e.y)),e.x=s,e.y=o,e):(t=Math.sqrt(e.x*e.x+e.y*e.y),it=Math.atan2(e.x,e.y),j=Lp(this.a,this.e,this.sin_p12),Z=Math.cos(it),K=this.e*this.cos_p12*Z,J=-K*K/(1-this.es),ht=3*this.es*(1-J)*this.sin_p12*this.cos_p12*Z/(1-this.es),Tt=t/j,Ot=Tt-J*(1+J)*Math.pow(Tt,3)/6-ht*(1+3*J)*Math.pow(Tt,4)/24,Yt=1-J*Ot*Ot/2-Tt*Ot*Ot*Ot/6,Y=Math.asin(this.sin_p12*Math.cos(Ot)+this.cos_p12*Math.sin(Ot)*Z),s=Pe(this.long0+Math.asin(Math.sin(it)*Math.sin(Ot)/Math.cos(Y))),te=Math.sin(Y),o=Math.atan2((te-this.es*Yt*this.sin_p12)*Math.tan(Y),te*(1-this.es)),e.x=s,e.y=o,e))}var x0t=[\"Azimuthal_Equidistant\",\"aeqd\"],XZ={init:_0t,forward:y0t,inverse:v0t,names:x0t};function b0t(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)}function w0t(e){var t,r,i,n,s,o,c,d,_=e.x,w=e.y;return i=Pe(_-this.long0),t=Math.sin(w),r=Math.cos(w),n=Math.cos(i),o=this.sin_p14*t+this.cos_p14*r*n,s=1,(o>0||Math.abs(o)<=xe)&&(c=this.a*s*r*Math.sin(i),d=this.y0+this.a*s*(this.cos_p14*t-this.sin_p14*r*n)),e.x=c,e.y=d,e}function S0t(e){var t,r,i,n,s,o,c;return e.x-=this.x0,e.y-=this.y0,t=Math.sqrt(e.x*e.x+e.y*e.y),r=_c(t/this.a),i=Math.sin(r),n=Math.cos(r),o=this.long0,Math.abs(t)<=xe?(c=this.lat0,e.x=o,e.y=c,e):(c=_c(n*this.sin_p14+e.y*i*this.cos_p14/t),s=Math.abs(this.lat0)-de,Math.abs(s)<=xe?(this.lat0>=0?o=Pe(this.long0+Math.atan2(e.x,-e.y)):o=Pe(this.long0-Math.atan2(-e.x,e.y)),e.x=o,e.y=c,e):(o=Pe(this.long0+Math.atan2(e.x*i,t*this.cos_p14*n-e.y*this.sin_p14*i)),e.x=o,e.y=c,e))}var T0t=[\"ortho\"],KZ={init:b0t,forward:w0t,inverse:S0t,names:T0t};var bs={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},on={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function M0t(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||\"Quadrilateralized Spherical Cube\",this.lat0>=de-Pi/2?this.face=bs.TOP:this.lat0<=-(de-Pi/2)?this.face=bs.BOTTOM:Math.abs(this.long0)<=Pi?this.face=bs.FRONT:Math.abs(this.long0)<=de+Pi?this.face=this.long0>0?bs.RIGHT:bs.LEFT:this.face=bs.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function E0t(e){var t={x:0,y:0},r,i,n,s,o,c,d={value:0};if(e.x-=this.long0,this.es!==0?r=Math.atan(this.one_minus_f_squared*Math.tan(e.y)):r=e.y,i=e.x,this.face===bs.TOP)s=de-r,i>=Pi&&i<=de+Pi?(d.value=on.AREA_0,n=i-de):i>de+Pi||i<=-(de+Pi)?(d.value=on.AREA_1,n=i>0?i-xs:i+xs):i>-(de+Pi)&&i<=-Pi?(d.value=on.AREA_2,n=i+de):(d.value=on.AREA_3,n=i);else if(this.face===bs.BOTTOM)s=de+r,i>=Pi&&i<=de+Pi?(d.value=on.AREA_0,n=-i+de):i=-Pi?(d.value=on.AREA_1,n=-i):i<-Pi&&i>=-(de+Pi)?(d.value=on.AREA_2,n=-i-de):(d.value=on.AREA_3,n=i>0?-i+xs:-i-xs);else{var _,w,I,R,N,j,Y;this.face===bs.RIGHT?i=tx(i,+de):this.face===bs.BACK?i=tx(i,+xs):this.face===bs.LEFT&&(i=tx(i,-de)),R=Math.sin(r),N=Math.cos(r),j=Math.sin(i),Y=Math.cos(i),_=N*Y,w=N*j,I=R,this.face===bs.FRONT?(s=Math.acos(_),n=Q3(s,I,w,d)):this.face===bs.RIGHT?(s=Math.acos(w),n=Q3(s,I,-_,d)):this.face===bs.BACK?(s=Math.acos(-_),n=Q3(s,I,-w,d)):this.face===bs.LEFT?(s=Math.acos(-w),n=Q3(s,I,_,d)):(s=n=0,d.value=on.AREA_0)}return c=Math.atan(12/xs*(n+Math.acos(Math.sin(n)*Math.cos(Pi))-de)),o=Math.sqrt((1-Math.cos(s))/(Math.cos(c)*Math.cos(c))/(1-Math.cos(Math.atan(1/Math.cos(n))))),d.value===on.AREA_1?c+=de:d.value===on.AREA_2?c+=xs:d.value===on.AREA_3&&(c+=1.5*xs),t.x=o*Math.cos(c),t.y=o*Math.sin(c),t.x=t.x*this.a+this.x0,t.y=t.y*this.a+this.y0,e.x=t.x,e.y=t.y,e}function P0t(e){var t={lam:0,phi:0},r,i,n,s,o,c,d,_,w,I={value:0};if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,i=Math.atan(Math.sqrt(e.x*e.x+e.y*e.y)),r=Math.atan2(e.y,e.x),e.x>=0&&e.x>=Math.abs(e.y)?I.value=on.AREA_0:e.y>=0&&e.y>=Math.abs(e.x)?(I.value=on.AREA_1,r-=de):e.x<0&&-e.x>=Math.abs(e.y)?(I.value=on.AREA_2,r=r<0?r+xs:r-xs):(I.value=on.AREA_3,r+=de),w=xs/12*Math.tan(r),o=Math.sin(w)/(Math.cos(w)-1/Math.sqrt(2)),c=Math.atan(o),n=Math.cos(r),s=Math.tan(i),d=1-n*n*s*s*(1-Math.cos(Math.atan(1/Math.cos(c)))),d<-1?d=-1:d>1&&(d=1),this.face===bs.TOP)_=Math.acos(d),t.phi=de-_,I.value===on.AREA_0?t.lam=c+de:I.value===on.AREA_1?t.lam=c<0?c+xs:c-xs:I.value===on.AREA_2?t.lam=c-de:t.lam=c;else if(this.face===bs.BOTTOM)_=Math.acos(d),t.phi=_-de,I.value===on.AREA_0?t.lam=-c+de:I.value===on.AREA_1?t.lam=-c:I.value===on.AREA_2?t.lam=-c-de:t.lam=c<0?-c-xs:-c+xs;else{var R,N,j;R=d,w=R*R,w>=1?j=0:j=Math.sqrt(1-w)*Math.sin(c),w+=j*j,w>=1?N=0:N=Math.sqrt(1-w),I.value===on.AREA_1?(w=N,N=-j,j=w):I.value===on.AREA_2?(N=-N,j=-j):I.value===on.AREA_3&&(w=N,N=j,j=-w),this.face===bs.RIGHT?(w=R,R=-N,N=w):this.face===bs.BACK?(R=-R,N=-N):this.face===bs.LEFT&&(w=R,R=N,N=-w),t.phi=Math.acos(-j)-de,t.lam=Math.atan2(N,R),this.face===bs.RIGHT?t.lam=tx(t.lam,-de):this.face===bs.BACK?t.lam=tx(t.lam,-xs):this.face===bs.LEFT&&(t.lam=tx(t.lam,+de))}if(this.es!==0){var Y,it,Z;Y=t.phi<0?1:0,it=Math.tan(t.phi),Z=this.b/Math.sqrt(it*it+this.one_minus_f_squared),t.phi=Math.atan(Math.sqrt(this.a*this.a-Z*Z)/(this.one_minus_f*Z)),Y&&(t.phi=-t.phi)}return t.lam+=this.long0,e.x=t.lam,e.y=t.phi,e}function Q3(e,t,r,i){var n;return ePi&&n<=de+Pi?(i.value=on.AREA_1,n-=de):n>de+Pi||n<=-(de+Pi)?(i.value=on.AREA_2,n=n>=0?n-xs:n+xs):(i.value=on.AREA_3,n+=de)),n}function tx(e,t){var r=e+t;return r<-xs?r+=Sm:r>+xs&&(r-=Sm),r}var I0t=[\"Quadrilateralized Spherical Cube\",\"Quadrilateralized_Spherical_Cube\",\"qsc\"],JZ={init:M0t,forward:E0t,inverse:P0t,names:I0t};var pB=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],K2=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],tY=.8487,eY=1.3523,rY=Ac/5,C0t=1/rY,ex=18,X3=function(e,t){return e[0]+t*(e[1]+t*(e[2]+t*e[3]))},L0t=function(e,t){return e[1]+t*(2*e[2]+t*3*e[3])};function k0t(e,t,r,i){for(var n=t;i;--i){var s=e(n);if(n-=s,Math.abs(s)=ex&&(i=ex-1),r=Ac*(r-C0t*i);var n={x:X3(pB[i],r)*t,y:X3(K2[i],r)};return e.y<0&&(n.y=-n.y),n.x=n.x*this.a*tY+this.x0,n.y=n.y*this.a*eY+this.y0,n}function O0t(e){var t={x:(e.x-this.x0)/(this.a*tY),y:Math.abs(e.y-this.y0)/(this.a*eY)};if(t.y>=1)t.x/=pB[ex][0],t.y=e.y<0?-de:de;else{var r=Math.floor(t.y*ex);for(r<0?r=0:r>=ex&&(r=ex-1);;)if(K2[r][0]>t.y)--r;else if(K2[r+1][0]<=t.y)++r;else break;var i=K2[r],n=5*(t.y-i[0])/(K2[r+1][0]-i[0]);n=k0t(function(s){return(X3(i,s)-t.y)/L0t(i,s)},n,xe,100),t.x/=X3(pB[r],n),t.y=(5*r+n)*vs,e.y<0&&(t.y=-t.y)}return t.x=Pe(t.x+this.long0),t}var B0t=[\"Robinson\",\"robin\"],iY={init:R0t,forward:D0t,inverse:O0t,names:B0t};function F0t(){this.name=\"geocent\"}function z0t(e){var t=U3(e,this.es,this.a);return t}function N0t(e){var t=V3(e,this.es,this.a,this.b);return t}var U0t=[\"Geocentric\",\"geocentric\",\"geocent\",\"Geocent\"],nY={init:F0t,forward:z0t,inverse:N0t,names:U0t};var nl={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},J2={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function V0t(){if(Object.keys(J2).forEach(function(r){if(typeof this[r]>\"u\")this[r]=J2[r].def;else{if(J2[r].num&&isNaN(this[r]))throw new Error(\"Invalid parameter value, must be numeric \"+r+\" = \"+this[r]);J2[r].num&&(this[r]=parseFloat(this[r]))}J2[r].degrees&&(this[r]=this[r]*vs)}.bind(this)),Math.abs(Math.abs(this.lat0)-de)1e10)throw new Error(\"Invalid height\");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var e=this.tilt,t=this.azi;this.cg=Math.cos(t),this.sg=Math.sin(t),this.cw=Math.cos(e),this.sw=Math.sin(e)}function j0t(e){e.x-=this.long0;var t=Math.sin(e.y),r=Math.cos(e.y),i=Math.cos(e.x),n,s;switch(this.mode){case nl.OBLIQ:s=this.sinph0*t+this.cosph0*r*i;break;case nl.EQUIT:s=r*i;break;case nl.S_POLE:s=-t;break;case nl.N_POLE:s=t;break}switch(s=this.pn1/(this.p-s),n=s*r*Math.sin(e.x),this.mode){case nl.OBLIQ:s*=this.cosph0*t-this.sinph0*r*i;break;case nl.EQUIT:s*=t;break;case nl.N_POLE:s*=-(r*i);break;case nl.S_POLE:s*=r*i;break}var o,c;return o=s*this.cg+n*this.sg,c=1/(o*this.sw*this.h1+this.cw),n=(n*this.cg-s*this.sg)*this.cw*c,s=o*c,e.x=n*this.a,e.y=s*this.a,e}function G0t(e){e.x/=this.a,e.y/=this.a;var t={x:e.x,y:e.y},r,i,n;n=1/(this.pn1-e.y*this.sw),r=this.pn1*e.x*n,i=this.pn1*e.y*this.cw*n,e.x=r*this.cg+i*this.sg,e.y=i*this.cg-r*this.sg;var s=Ma(e.x,e.y);if(Math.abs(s)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var e=1-this.es,t=1/e;this.radius_p=Math.sqrt(e),this.radius_p2=e,this.radius_p_inv2=t,this.shape=\"ellipse\"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape=\"sphere\";this.title||(this.title=\"Geostationary Satellite View\")}function q0t(e){var t=e.x,r=e.y,i,n,s,o;if(t=t-this.long0,this.shape===\"ellipse\"){r=Math.atan(this.radius_p2*Math.tan(r));var c=this.radius_p/Ma(this.radius_p*Math.cos(r),Math.sin(r));if(n=c*Math.cos(t)*Math.cos(r),s=c*Math.sin(t)*Math.cos(r),o=c*Math.sin(r),(this.radius_g-n)*n-s*s-o*o*this.radius_p_inv2<0)return e.x=Number.NaN,e.y=Number.NaN,e;i=this.radius_g-n,this.flip_axis?(e.x=this.radius_g_1*Math.atan(s/Ma(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(s/i),e.y=this.radius_g_1*Math.atan(o/Ma(s,i)))}else this.shape===\"sphere\"&&(i=Math.cos(r),n=Math.cos(t)*i,s=Math.sin(t)*i,o=Math.sin(r),i=this.radius_g-n,this.flip_axis?(e.x=this.radius_g_1*Math.atan(s/Ma(o,i)),e.y=this.radius_g_1*Math.atan(o/i)):(e.x=this.radius_g_1*Math.atan(s/i),e.y=this.radius_g_1*Math.atan(o/Ma(s,i))));return e.x=e.x*this.a,e.y=e.y*this.a,e}function Z0t(e){var t=-1,r=0,i=0,n,s,o,c;if(e.x=e.x/this.a,e.y=e.y/this.a,this.shape===\"ellipse\"){this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Ma(1,i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Ma(1,r));var d=i/this.radius_p;if(n=r*r+d*d+t*t,s=2*this.radius_g*t,o=s*s-4*n*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-s-Math.sqrt(o))/(2*n),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t),e.y=Math.atan(this.radius_p_inv2*Math.tan(e.y))}else if(this.shape===\"sphere\"){if(this.flip_axis?(i=Math.tan(e.y/this.radius_g_1),r=Math.tan(e.x/this.radius_g_1)*Math.sqrt(1+i*i)):(r=Math.tan(e.x/this.radius_g_1),i=Math.tan(e.y/this.radius_g_1)*Math.sqrt(1+r*r)),n=r*r+i*i+t*t,s=2*this.radius_g*t,o=s*s-4*n*this.C,o<0)return e.x=Number.NaN,e.y=Number.NaN,e;c=(-s-Math.sqrt(o))/(2*n),t=this.radius_g+c*t,r*=c,i*=c,e.x=Math.atan2(r,t),e.y=Math.atan(i*Math.cos(e.x)/t)}return e.x=e.x+this.long0,e}var Y0t=[\"Geostationary Satellite View\",\"Geostationary_Satellite\",\"geos\"],oY={init:H0t,forward:q0t,inverse:Z0t,names:Y0t};function aY(e){e.Proj.projections.add(Xv),e.Proj.projections.add(Kv),e.Proj.projections.add(IZ),e.Proj.projections.add(CZ),e.Proj.projections.add(LZ),e.Proj.projections.add(kZ),e.Proj.projections.add(RZ),e.Proj.projections.add(DZ),e.Proj.projections.add(OZ),e.Proj.projections.add(BZ),e.Proj.projections.add(FZ),e.Proj.projections.add(zZ),e.Proj.projections.add(NZ),e.Proj.projections.add(VZ),e.Proj.projections.add(jZ),e.Proj.projections.add(WZ),e.Proj.projections.add(HZ),e.Proj.projections.add(qZ),e.Proj.projections.add(ZZ),e.Proj.projections.add(YZ),e.Proj.projections.add($Z),e.Proj.projections.add(QZ),e.Proj.projections.add(XZ),e.Proj.projections.add(KZ),e.Proj.projections.add(JZ),e.Proj.projections.add(iY),e.Proj.projections.add(nY),e.Proj.projections.add(sY),e.Proj.projections.add(oY)}mc.defaultDatum=\"WGS84\";mc.Proj=Tm;mc.WGS84=new mc.Proj(\"WGS84\");mc.Point=vZ;mc.toPoint=G3;mc.defs=qv;mc.nadgrid=oB;mc.transform=Ng;mc.mgrs=gZ;mc.version=\"__VERSION__\";aY(mc);var lY=mc;function rS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function iS(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function rx(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function $0t(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function Q0t(e){return\"data\"in e?e.getChildAt(0):e.children[0]}function rI(e){return\"data\"in e?e.getChildAt(0):e.children[0]}var Ii=Object.freeze({__proto__:null,getLineStringChild:iS,getMultiLineStringChild:Q0t,getMultiPointChild:$0t,getMultiPolygonChild:rI,getPointChild:rS,getPolygonChild:rx});function iI(e,t){let r=e.valueOffsets,i=rx(e),n=i.valueOffsets,s=iS(i),o=s.type.listSize,c=rS(s),d=r[t],_=r[t+1],w=n[d],I=n[_],R=c.values.subarray(w*o,I*o);return new Wv(R,{size:o,isClosed:!0})}function uY(e){if(\"data\"in e)return new xr(e.data.map(r=>uY(r)));let t=new Float64Array(e.length);for(let r=0;rhY(r)));let t=new Float64Array(e.length);for(let r=0;rfY(s));let t=[],r=0;for(let s=0;sdY(t))):rx(e)}function pY(e){return\"data\"in e?new xr(e.data.map(t=>pY(t))):rI(e)}function nI(e){return Ne.isFixedSizeList(e)?!(![2,3,4].includes(e.listSize)||!Ne.isFloat(e.children[0])):Ne.isStruct(e)?!(![2,3,4].includes(e.children.length)||!e.children.every(t=>[\"x\",\"y\",\"z\",\"m\"].includes(t.name))||!e.children.every(t=>Ne.isFloat(t))):!1}function sI(e){return!(!Ne.isList(e)||!nI(e.children[0].type))}function _B(e){return!(!Ne.isList(e)||!sI(e.children[0].type))}function AY(e){return!(!Ne.isList(e)||!nI(e.children[0].type))}function mY(e){return!(!Ne.isList(e)||!sI(e.children[0].type))}function gY(e){return!(!Ne.isList(e)||!_B(e.children[0].type))}function K0t(e){return nI(e.type)}function J0t(e){return sI(e.type)}function tgt(e){return _B(e.type)}function egt(e){return AY(e.type)}function rgt(e){return mY(e.type)}function igt(e){return gY(e.type)}function ngt(e,t){if(!e)throw new Error(`assertion failed ${t}`)}function sgt(){throw new Error(\"assertion failed\")}function _Y(e,t){if(K0t(e))return yY(e,t);if(J0t(e))return AB(e,t);if(tgt(e))return mB(e,t);if(egt(e))return AB(e,t);if(rgt(e))return mB(e,t);if(igt(e))return ogt(e,t);sgt()}function yY(e,t){ngt(e.type.listSize===2,\"expected 2D\");let r=rS(e),i=r.values,n=new Float64Array(i.length);for(let o=0;ocY(n,i))):cY(e,i)}function cY(e,t){let r=[0,0];return _Y(e,(n,s)=>(r[0]=n,r[1]=s,t.forward(r)))}var Mm;(function(e){e.POINT=\"geoarrow.point\",e.LINESTRING=\"geoarrow.linestring\",e.POLYGON=\"geoarrow.polygon\",e.MULTIPOINT=\"geoarrow.multipoint\",e.MULTILINESTRING=\"geoarrow.multilinestring\",e.MULTIPOLYGON=\"geoarrow.multipolygon\"})(Mm||(Mm={}));var eI=class{minX;minY;maxX;maxY;constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}updateBbox(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.maxY>this.maxY&&(this.maxY=t.maxY)}updateCoord(t,r){tthis.maxX&&(this.maxX=t),r>this.maxY&&(this.maxY=r)}};function lgt(e,t){switch(t.metadata.get(\"ARROW:extension:name\")){case Mm.POINT:return vY(e);case Mm.LINESTRING:case Mm.MULTIPOINT:return xY(e);case Mm.POLYGON:case Mm.MULTILINESTRING:return bY(e);case Mm.MULTIPOLYGON:return ugt(e);default:throw new Error(\"Unknown ext type name\")}}function cgt(e){let r=rS(e).values,i=new eI;for(let n=0;nwY(r)));let t=new pm({type:new rc,nullValues:[null]});t.set(e.length-1,null);for(let r=0;rSY(r,t));return}for(let r=0;reS(s,t)));let r=[];for(let s of e.children)r.push(eS(s,t));let i;e.dictionary!==void 0&&(i=eS(e.dictionary,t));let n={[vi.OFFSET]:K3(e.buffers[vi.OFFSET],t),[vi.DATA]:K3(e.buffers[vi.DATA],t),[vi.VALIDITY]:K3(e.buffers[vi.VALIDITY],t),[vi.TYPE]:K3(e.buffers[vi.TYPE],t)};return new wi(e.type,e.offset,e.length,e._nullCount,n,r,i)}function J3(e){if(\"data\"in e)return e.data.some(r=>J3(r));for(let r of e.children)if(J3(r))return!0;if(e.dictionary!==void 0&&J3(e.dictionary))return!0;let t=[vi.OFFSET,vi.DATA,vi.VALIDITY,vi.TYPE];for(let r of t)if(e.buffers[r]!==void 0&&TY(e.buffers[r]))return!0;return!1}function TY(e){return!(e.byteOffset===0&&e.byteLength===e.buffer.byteLength)}function K3(e,t){return e===void 0||!t&&!TY(e)?e:e.slice()}function tI(e,t=!1){if(\"data\"in e){let i=[],n=[];for(let o of e.data){let[c,d]=tI(o);i.push(c),n.push(...d)}return[new xr(i),n]}e=eS(e,t);let r=[];for(let i=0;i1)throw new Error(\"expected 1 field\");return new nc(t[0])}case Lt.Struct:{let t=e.children.map(tS);return new sn(t)}case Lt.Union:{let t=e.children.map(tS);return new sc(e.mode,e.typeIds,t)}case Lt.FixedSizeBinary:return new Ju(e.byteWidth);case Lt.FixedSizeList:{let t=e.children.map(tS);if(t.length>1)throw new Error(\"expected 1 field\");return new Pl(e.listSize,t[0])}case Lt.Map:{let t=e.children.map(tS);if(t.length>1)throw new Error(\"expected 1 field\");let r=t[0];return new oc(r,e.keysSorted)}case Lt.Duration:return new Ku(e.unit);default:throw new Error(`unknown type ${e}`)}}function tS(e){let t=MY(e.type);return new ai(e.name,t,e.nullable,e.metadata)}function yB(e){let t=e.children.map(n=>yB(n)),r=e.dictionary?EY(e.dictionary):void 0,i={[vi.OFFSET]:e.valueOffsets,[vi.DATA]:e.values,[vi.VALIDITY]:e.nullBitmap,[vi.TYPE]:e.typeIds};return new wi(MY(e.type),e.offset,e.length,e._nullCount,i,t,r)}function EY(e){return new xr(e.data.map(t=>yB(t)))}var vB=Object.freeze({__proto__:null,hardClone:eS,isShared:J3,preparePostMessage:tI,rehydrateData:yB,rehydrateVector:EY});function ggt(e,t,r){let i=e.fields.findIndex(n=>n.name===r||n.metadata.get(\"ARROW:extension:name\")===t);return i!==-1?i:null}function _gt(e,t){let{index:r,data:i}=e,n=r;i.invertedGeomOffsets!==void 0&&(n=i.invertedGeomOffsets[r]);let s={data:i.data,length:i.length,attributes:i.attributes},o={index:n,data:s,target:e.target};return t(o)}function Fo(e){let{props:t,propName:r,propInput:i,chunkIdx:n,geomCoordOffsets:s}=e;if(i!==void 0)if(i instanceof xr){let o=i.data[n];if(Ne.isFixedSizeList(o)){vr(o.children.length===1);let c=o.children[0].values;s&&(c=aI(c,o.type.listSize,s)),t.data.attributes[r]={value:c,size:o.type.listSize,normalized:!0}}else if(Ne.isFloat(o)){let c=o.values;s&&(c=aI(c,1,s)),t.data.attributes[r]={value:c,size:1}}}else typeof i==\"function\"?t[r]=(o,c)=>r===\"getPolygonOffset\"?i(o,c):_gt(c,i):t[r]=i}function aI(e,t,r){let i=r[r.length-1],n=new e.constructor(i*t);for(let s=0;s(t[i+1]=t[i]+r.length,t),new Uint32Array(e.length+1))}function go(e,t){let r=[],i=[];for(let[n,s]of Object.entries(e))n.startsWith(\"get\")&&s instanceof xr&&(r.push(s),n.endsWith(\"Color\")&&i.push(s));ygt(t,r);for(let n of i)vgt(n)}function ygt(e,t){for(let r of t)vr(e.batches.length===r.data.length);for(let r of t)for(let i=0;ithis.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let t=this.content?this.content.byteLength:0;return Number.isFinite(t)||console.error(\"byteLength not defined in tile data\"),t}async _loadData({getData:t,requestScheduler:r,onLoad:i,onError:n}){let{index:s,id:o,bbox:c,userData:d,zoom:_}=this,w=this._loaderId;this._abortController=new AbortController;let{signal:I}=this._abortController,R=await r.scheduleRequest(this,Y=>Y.isSelected?1:-1);if(!R){this._isCancelled=!0;return}if(this._isCancelled){R.done();return}let N=null,j;try{N=await t({index:s,id:o,bbox:c,userData:d,zoom:_,signal:I})}catch(Y){j=Y||!0}finally{R.done()}if(w===this._loaderId){if(this._loader=void 0,this.content=N,this._isCancelled&&!N){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,j?n(j,this):i(this)}}loadData(t){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(t),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var t;this.isLoaded||(this._isCancelled=!0,(t=this._abortController)===null||t===void 0||t.abort())}};var ro={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var kY=new ze,Tgt=new ze,jg=class e{constructor(t=[0,0,0],r=[0,0,0],i){G(this,\"center\",void 0),G(this,\"halfDiagonal\",void 0),G(this,\"minimum\",void 0),G(this,\"maximum\",void 0),i=i||kY.copy(t).add(r).scale(.5),this.center=new ze(i),this.halfDiagonal=new ze(r).subtract(this.center),this.minimum=new ze(t),this.maximum=new ze(r)}clone(){return new e(this.minimum,this.maximum,this.center)}equals(t){return this===t||!!t&&this.minimum.equals(t.minimum)&&this.maximum.equals(t.maximum)}transform(t){return this.center.transformAsPoint(t),this.halfDiagonal.transform(t),this.minimum.transform(t),this.maximum.transform(t),this}intersectPlane(t){let{halfDiagonal:r}=this,i=Tgt.from(t.normal),n=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),s=this.center.dot(i)+t.distance;return s-n>0?ro.INSIDE:s+n<0?ro.OUTSIDE:ro.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=kY.from(t).subtract(this.center),{halfDiagonal:i}=this,n=0,s;return s=Math.abs(r.x)-i.x,s>0&&(n+=s*s),s=Math.abs(r.y)-i.y,s>0&&(n+=s*s),s=Math.abs(r.z)-i.z,s>0&&(n+=s*s),n}};var oS=new ze,RY=new ze,Gg=class e{constructor(t=[0,0,0],r=0){G(this,\"center\",void 0),G(this,\"radius\",void 0),this.radius=-0,this.center=new ze,this.fromCenterRadius(t,r)}fromCenterRadius(t,r){return this.center.from(t),this.radius=r,this}fromCornerPoints(t,r){return r=oS.from(r),this.center=new ze().from(t).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(t){return this===t||!!t&&this.center.equals(t.center)&&this.radius===t.radius}clone(){return new e(this.center,this.radius)}union(t){let r=this.center,i=this.radius,n=t.center,s=t.radius,o=oS.copy(n).subtract(r),c=o.magnitude();if(i>=c+s)return this.clone();if(s>=c+i)return t.clone();let d=(i+c+s)*.5;return RY.copy(o).scale((-i+d)/c).add(r),this.center.copy(RY),this.radius=d,this}expand(t){let i=oS.from(t).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(t){this.center.transform(t);let r=Rj(oS,t);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(t){let r=this.distanceTo(t);return r*r}distanceTo(t){let i=oS.from(t).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(t){let r=this.center,i=this.radius,s=t.normal.dot(r)+t.distance;return s<-i?ro.OUTSIDE:s=d?ro.INSIDE:ro.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let r=Egt.from(t).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,cI),s=i.getColumn(1,uI),o=i.getColumn(2,hI),c=n.magnitude(),d=s.magnitude(),_=o.magnitude();n.normalize(),s.normalize(),o.normalize();let w=0,I;return I=Math.abs(r.dot(n))-c,I>0&&(w+=I*I),I=Math.abs(r.dot(s))-d,I>0&&(w+=I*I),I=Math.abs(r.dot(o))-_,I>0&&(w+=I*I),w}computePlaneDistances(t,r,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,o=this.center,c=this.halfAxes,d=c.getColumn(0,cI),_=c.getColumn(1,uI),w=c.getColumn(2,hI),I=Pgt.copy(d).add(_).add(w).add(o),R=Igt.copy(I).subtract(t),N=r.dot(R);return n=Math.min(N,n),s=Math.max(N,s),I.copy(o).add(d).add(_).subtract(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),I.copy(o).add(d).subtract(_).add(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),I.copy(o).add(d).subtract(_).subtract(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),o.copy(I).subtract(d).add(_).add(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),o.copy(I).subtract(d).add(_).subtract(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),o.copy(I).subtract(d).subtract(_).add(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),o.copy(I).subtract(d).subtract(_).subtract(w),R.copy(I).subtract(t),N=r.dot(R),n=Math.min(N,n),s=Math.max(N,s),i[0]=n,i[1]=s,i}transform(t){this.center.transformAsPoint(t);let r=this.halfAxes.getColumn(0,cI);r.transformAsPoint(t);let i=this.halfAxes.getColumn(1,uI);i.transformAsPoint(t);let n=this.halfAxes.getColumn(2,hI);return n.transformAsPoint(t),this.halfAxes=new ss([...r,...i,...n]),this}getTransform(){throw new Error(\"not implemented\")}};var DY=new ze,OY=new ze,uf=class e{constructor(t=[0,0,1],r=0){G(this,\"normal\",void 0),G(this,\"distance\",void 0),this.normal=new ze,this.distance=-0,this.fromNormalDistance(t,r)}fromNormalDistance(t,r){return Lh(Number.isFinite(r)),this.normal.from(t).normalize(),this.distance=r,this}fromPointNormal(t,r){t=DY.from(t),this.normal.from(r).normalize();let i=-this.normal.dot(t);return this.distance=i,this}fromCoefficients(t,r,i,n){return this.normal.set(t,r,i),Lh(Co(this.normal.len(),1)),this.distance=n,this}clone(){return new e(this.normal,this.distance)}equals(t){return Co(this.distance,t.distance)&&Co(this.normal,t.normal)}getPointDistance(t){return this.normal.dot(t)+this.distance}transform(t){let r=OY.copy(this.normal).transformAsVector(t).normalize(),i=this.normal.scale(-this.distance).transform(t);return this.fromPointNormal(i,r)}projectPointOntoPlane(t,r=[0,0,0]){t=DY.from(t);let i=this.getPointDistance(t),n=OY.copy(this.normal).scale(i);return t.subtract(n).to(r)}};var BY=[new ze([1,0,0]),new ze([0,1,0]),new ze([0,0,1])],FY=new ze,Cgt=new ze,Uie=new uf(new ze(1,0,0),0),xd=class e{constructor(t=[]){G(this,\"planes\",void 0),this.planes=t}fromBoundingSphere(t){this.planes.length=2*BY.length;let r=t.center,i=t.radius,n=0;for(let s of BY){let o=this.planes[n],c=this.planes[n+1];o||(o=this.planes[n]=new uf),c||(c=this.planes[n+1]=new uf);let d=FY.copy(s).scale(-i).add(r),_=-s.dot(d);o.fromPointNormal(d,s);let w=FY.copy(s).scale(i).add(r),I=Cgt.copy(s).negate(),R=-I.dot(w);c.fromPointNormal(w,I),n+=2}return this}computeVisibility(t){let r=ro.INSIDE;for(let i of this.planes)switch(t.intersectPlane(i)){case ro.OUTSIDE:return ro.OUTSIDE;case ro.INTERSECTING:r=ro.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(t,r){if(Lh(Number.isFinite(r),\"parentPlaneMask is required.\"),r===e.MASK_OUTSIDE||r===e.MASK_INSIDE)return r;let i=e.MASK_INSIDE,n=this.planes;for(let s=0;sd;)Bgt(c,fI),zY.copy(fI).transpose(),c.multiplyRight(fI),c.multiplyLeft(zY),o.multiplyRight(fI),++n>2&&(++s,n=0);return t.unitary=o.toTarget(t.unitary),t.diagonal=c.toTarget(t.diagonal),t}function Dgt(e){let t=0;for(let r=0;r<9;++r){let i=e[r];t+=i*i}return Math.sqrt(t)}var bB=[1,0,0],wB=[2,2,1];function Ogt(e){let t=0;for(let r=0;r<3;++r){let i=e[bd.getElementIndex(wB[r],bB[r])];t+=2*i*i}return Math.sqrt(t)}function Bgt(e,t){let r=CE.EPSILON15,i=0,n=1;for(let _=0;_<3;++_){let w=Math.abs(e[bd.getElementIndex(wB[_],bB[_])]);w>i&&(n=_,i=w)}let s=bB[n],o=wB[n],c=1,d=0;if(Math.abs(e[bd.getElementIndex(o,s)])>r){let _=e[bd.getElementIndex(o,o)],w=e[bd.getElementIndex(s,s)],I=e[bd.getElementIndex(o,s)],R=(_-w)/2/I,N;R<0?N=-1/(-R+Math.sqrt(1+R*R)):N=1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+N*N),d=N*c}return ss.IDENTITY.to(t),t[bd.getElementIndex(s,s)]=t[bd.getElementIndex(o,o)]=c,t[bd.getElementIndex(o,s)]=d,t[bd.getElementIndex(s,o)]=-d,t}var Em=new ze,Fgt=new ze,zgt=new ze,Ngt=new ze,Ugt=new ze,Vgt=new ss,jgt={diagonal:new ss,unitary:new ss};function SB(e,t=new nx){if(!e||e.length===0)return t.halfAxes=new ss([0,0,0,0,0,0,0,0,0]),t.center=new ze,t;let r=e.length,i=new ze(0,0,0);for(let oe of e)i.add(oe);let n=1/r;i.multiplyByScalar(n);let s=0,o=0,c=0,d=0,_=0,w=0;for(let oe of e){let ae=Em.copy(oe).subtract(i);s+=ae.x*ae.x,o+=ae.x*ae.y,c+=ae.x*ae.z,d+=ae.y*ae.y,_+=ae.y*ae.z,w+=ae.z*ae.z}s*=n,o*=n,c*=n,d*=n,_*=n,w*=n;let I=Vgt;I[0]=s,I[1]=o,I[2]=c,I[3]=o,I[4]=d,I[5]=_,I[6]=c,I[7]=_,I[8]=w;let{unitary:R}=dI(I,jgt),N=t.halfAxes.copy(R),j=N.getColumn(0,zgt),Y=N.getColumn(1,Ngt),it=N.getColumn(2,Ugt),Z=-Number.MAX_VALUE,K=-Number.MAX_VALUE,J=-Number.MAX_VALUE,ht=Number.MAX_VALUE,Tt=Number.MAX_VALUE,Ot=Number.MAX_VALUE;for(let oe of e)Em.copy(oe),Z=Math.max(Em.dot(j),Z),K=Math.max(Em.dot(Y),K),J=Math.max(Em.dot(it),J),ht=Math.min(Em.dot(j),ht),Tt=Math.min(Em.dot(Y),Tt),Ot=Math.min(Em.dot(it),Ot);j=j.multiplyByScalar(.5*(ht+Z)),Y=Y.multiplyByScalar(.5*(Tt+K)),it=it.multiplyByScalar(.5*(Ot+J)),t.center.copy(j).add(Y).add(it);let Yt=Fgt.set(Z-ht,K-Tt,J-Ot).multiplyByScalar(.5),te=new ss([Yt[0],0,0,0,Yt[1],0,0,0,Yt[2]]);return t.halfAxes.multiplyRight(te),t}var sx=512,NY=3,UY=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],VY=UY.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),Ggt=VY.concat([[.25,.5],[.75,.5]]),TB=class e{constructor(t,r,i){G(this,\"x\",void 0),G(this,\"y\",void 0),G(this,\"z\",void 0),G(this,\"childVisible\",void 0),G(this,\"selected\",void 0),G(this,\"_children\",void 0),this.x=t,this.y=r,this.z=i}get children(){if(!this._children){let t=this.x*2,r=this.y*2,i=this.z+1;this._children=[new e(t,r,i),new e(t,r+1,i),new e(t+1,r,i),new e(t+1,r+1,i)]}return this._children}update(t){let{viewport:r,cullingVolume:i,elevationBounds:n,minZ:s,maxZ:o,bounds:c,offset:d,project:_}=t,w=this.getBoundingVolume(n,d,_);if(c&&!this.insideBounds(c)||i.computeVisibility(w)<0)return!1;if(!this.childVisible){let{z:R}=this;if(R=s){let N=w.distanceTo(r.cameraPosition)*r.scale/r.height;R+=Math.floor(Math.log2(N))}if(R>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let R of this.children)R.update(t);return!0}getSelected(t=[]){if(this.selected&&t.push(this),this._children)for(let r of this._children)r.getSelected(t);return t}insideBounds([t,r,i,n]){let s=Math.pow(2,this.z),o=sx/s;return this.x*ot&&(this.y+1)*o>r}getBoundingVolume(t,r,i){if(i){let d=this.z<1?Ggt:this.z<2?VY:UY,_=[];for(let w of d){let I=pI(this.x+w[0],this.y+w[1],this.z);I[2]=t[0],_.push(i(I)),t[0]!==t[1]&&(I[2]=t[1],_.push(i(I)))}return SB(_)}let n=Math.pow(2,this.z),s=sx/n,o=this.x*s+r*sx,c=sx-(this.y+1)*s;return new jg([o,c,t[0]],[o+s,c+s,t[1]])}};function jY(e,t,r,i){let n=e instanceof jy&&e.resolution?e.projectPosition:null,s=Object.values(e.getFrustumPlanes()).map(({normal:N,distance:j})=>new uf(N.clone().negate(),j)),o=new xd(s),c=e.distanceScales.unitsPerMeter[2],d=r&&r[0]*c||0,_=r&&r[1]*c||0,w=e instanceof tc&&e.pitch<=60?t:0;if(i){let[N,j,Y,it]=i,Z=Ml([N,it]),K=Ml([Y,j]);i=[Z[0],sx-Z[1],K[0],sx-K[1]]}let I=new TB(0,0,0),R={viewport:e,project:n,cullingVolume:o,elevationBounds:[d,_],minZ:w,maxZ:t,bounds:i,offset:0};if(I.update(R),e instanceof tc&&e.subViewports&&e.subViewports.length>1){for(R.offset=-1;I.update(R)&&!(--R.offset<-NY););for(R.offset=1;I.update(R)&&!(++R.offset>NY););}return I.getSelected()}var Rp=512,Wgt=[-1/0,-1/0,1/0,1/0],EB={type:\"object\",value:null,validate:(e,t)=>t.optional&&e===null||typeof e==\"string\"||Array.isArray(e)&&e.every(r=>typeof r==\"string\"),equal:(e,t)=>{if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;let r=e.length;if(r!==t.length)return!1;for(let i=0;in[0])),Math.min(...r.map(n=>n[1])),Math.max(...r.map(n=>n[0])),Math.max(...r.map(n=>n[1]))]}function Hgt(e){return Math.abs(e.split(\"\").reduce((t,r)=>(t<<5)-t+r.charCodeAt(0)|0,0))}function PB(e,t){if(!e||!e.length)return null;let{index:r,id:i}=t;if(Array.isArray(e)){let s=Hgt(i)%e.length;e=e[s]}let n=e;for(let s of Object.keys(r)){let o=new RegExp(\"{\".concat(s,\"}\"),\"g\");n=n.replace(o,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(n=n.replace(/\\{-y\\}/g,String(Math.pow(2,r.z)-r.y-1))),n}function qgt(e,t,r){let i;if(t&&t.length===2){let[n,s]=t,o=e.getBounds({z:n}),c=e.getBounds({z:s});i=[Math.min(o[0],c[0]),Math.min(o[1],c[1]),Math.max(o[2],c[2]),Math.max(o[3],c[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function HY({viewport:e,z:t=0,cullRect:r}){return(e.subViewports||[e]).map(n=>MB(n,t,r))}function MB(e,t,r){if(!Array.isArray(t)){let s=r.x-e.x,o=r.y-e.y,{width:c,height:d}=r,_={targetZ:t},w=e.unproject([s,o],_),I=e.unproject([s+c,o],_),R=e.unproject([s,o+d],_),N=e.unproject([s+c,o+d],_);return[Math.min(w[0],I[0],R[0],N[0]),Math.min(w[1],I[1],R[1],N[1]),Math.max(w[0],I[0],R[0],N[0]),Math.max(w[1],I[1],R[1],N[1])]}let i=MB(e,t[0],r),n=MB(e,t[1],r);return[Math.min(i[0],n[0]),Math.min(i[1],n[1]),Math.max(i[2],n[2]),Math.max(i[3],n[3])]}function Zgt(e,t,r){return r?WY(e,r).map(n=>n*t/Rp):e.map(i=>i*t/Rp)}function IB(e,t){return Math.pow(2,e)*Rp/t}function pI(e,t,r){let i=IB(r,Rp),n=e/i*360-180,s=Math.PI-2*Math.PI*t/i,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function GY(e,t,r,i){let n=IB(r,i);return[e/n*Rp,t/n*Rp]}function CB(e,t,r,i,n=Rp){if(e.isGeospatial){let[_,w]=pI(t,r,i),[I,R]=pI(t+1,r+1,i);return{west:_,north:w,east:I,south:R}}let[s,o]=GY(t,r,i,n),[c,d]=GY(t+1,r+1,i,n);return{left:s,top:o,right:c,bottom:d}}function Ygt(e,t,r,i,n){let s=qgt(e,null,i),o=IB(t,r),[c,d,_,w]=Zgt(s,o,n),I=[];for(let R=Math.floor(c);R<_;R++)for(let N=Math.floor(d);Nt&&(_=t);let w=n;return o&&c&&n&&!e.isGeospatial&&(w=WY(n,o)),e.isGeospatial?jY(e,_,i,n):Ygt(e,_,s,w||Wgt,c)}function qY(e){let t={},r;return i=>{for(let n in i)if(!$gt(i[n],t[n])){r=e(i),t=i;break}return r}}function $gt(e,t){if(e===t)return!0;if(Array.isArray(e)){let r=e.length;if(!t||t.length!==r)return!1;for(let i=0;i{}},t_t={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:\"best-available\",zRange:null,maxRequests:6,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},aS=class{constructor(t){G(this,\"opts\",void 0),G(this,\"_requestScheduler\",void 0),G(this,\"_cache\",void 0),G(this,\"_dirty\",void 0),G(this,\"_tiles\",void 0),G(this,\"_cacheByteSize\",void 0),G(this,\"_viewport\",void 0),G(this,\"_zRange\",void 0),G(this,\"_selectedTiles\",void 0),G(this,\"_frameNumber\",void 0),G(this,\"_modelMatrix\",void 0),G(this,\"_modelMatrixInverse\",void 0),G(this,\"_maxZoom\",void 0),G(this,\"_minZoom\",void 0),G(this,\"onTileLoad\",void 0),G(this,\"_getCullBounds\",qY(HY)),this.opts={...t_t,...t},this.onTileLoad=r=>{var i,n;(i=(n=this.opts).onTileLoad)===null||i===void 0||i.call(n,r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new J_({maxRequests:t.maxRequests,throttleRequests:!!(t.maxRequests&&t.maxRequests>0)}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new mn,this._modelMatrixInverse=new mn,this.setOptions(t)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(t=>t.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(t=>t.needsReload)}setOptions(t){Object.assign(this.opts,t),Number.isFinite(t.maxZoom)&&(this._maxZoom=Math.floor(t.maxZoom)),Number.isFinite(t.minZoom)&&(this._minZoom=Math.ceil(t.minZoom))}finalize(){for(let t of this._cache.values())t.isLoading&&t.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let t of this._cache.keys()){let r=this._cache.get(t);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(t):r.setNeedsReload()}}update(t,{zRange:r,modelMatrix:i}={}){let n=new mn(i),s=!n.equals(this._modelMatrix);if(!this._viewport||!t.equals(this._viewport)||!Co(this._zRange,r)||s){s&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=t,this._zRange=r;let c=this.getTileIndices({viewport:t,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=c.map(d=>this._getTile(d,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(c=>this._getTile(c.index,!0)));let o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(t,r){if(!t.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:n}=t;for(let[s,o,c,d]of i){let _;if(\"west\"in n)_=n.wests&&n.southo;else{let w=Math.min(n.top,n.bottom),I=Math.max(n.top,n.bottom);_=n.lefts&&wo}if(_)return!0}return!1}return!0}getTileIndices({viewport:t,maxZoom:r,minZoom:i,zRange:n,modelMatrix:s,modelMatrixInverse:o}){let{tileSize:c,extent:d,zoomOffset:_}=this.opts;return LB({viewport:t,maxZoom:r,minZoom:i,zRange:n,tileSize:c,extent:d,modelMatrix:s,modelMatrixInverse:o,zoomOffset:_})}getTileId(t){return\"\".concat(t.x,\"-\").concat(t.y,\"-\").concat(t.z)}getTileZoom(t){return t.z}getTileMetadata(t){let{tileSize:r}=this.opts;return{bbox:CB(this._viewport,t.x,t.y,t.z,r)}}getParentIndex(t){let r=Math.floor(t.x/2),i=Math.floor(t.y/2),n=t.z-1;return{x:r,y:i,z:n}}updateTileStates(){let t=this.opts.refinementStrategy||lS,r=new Array(this._cache.size),i=0;for(let n of this._cache.values())r[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(let n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof t==\"function\"?t:Jgt[t])(Array.from(this._cache.values())),i=0;for(let n of this._cache.values())if(r[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:t=0}=this.opts,r=[],i=0;for(let n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&r.push(n));for(;t>0&&i>t&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:t}=this;for(let r of t.values())r.parent=null,r.children&&(r.children.length=0);for(let r of t.values()){let i=this._getNearestAncestor(r);r.parent=i,i!=null&&i.children&&i.children.push(r)}}_resizeCache(){let{_cache:t,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:Kgt*this.selectedTiles.length),n=r.maxCacheByteSize||1/0;if(t.size>i||this._cacheByteSize>n){for(let[d,_]of t){if(!_.isVisible&&!_.isSelected){var o,c;this._cacheByteSize-=r.maxCacheByteSize?_.byteLength:0,t.delete(d),(o=(c=this.opts).onTileUnload)===null||o===void 0||o.call(c,_)}if(t.size<=i&&this._cacheByteSize<=n)break}this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((d,_)=>d.zoom-_.zoom),this._dirty=!1)}_getTile(t,r){let i=this.getTileId(t),n=this._cache.get(i),s=!1;return!n&&r?(n=new lI(t),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),s=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(s=!0),n&&s&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(t){let{_minZoom:r=0}=this,i=t.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let n=this._getTile(i);if(n)return n}return null}};function e_t(e){for(let t of e)t.state=0;for(let t of e)t.isSelected&&!YY(t)&&kB(t);for(let t of e)t.isVisible=!!(t.state&AI)}function r_t(e){for(let r of e)r.state=0;for(let r of e)r.isSelected&&YY(r);let t=Array.from(e).sort((r,i)=>r.zoom-i.zoom);for(let r of t)if(r.isVisible=!!(r.state&AI),r.children&&(r.isVisible||r.state&ZY))for(let i of r.children)i.state=ZY;else r.isSelected&&kB(r)}function YY(e){let t=e;for(;t;){if(t.isLoaded||t.content)return t.state|=AI,!0;t=t.parent}return!1}function kB(e){for(let t of e.children)t.isLoaded||t.content?t.state|=AI:kB(t)}var i_t={TilesetClass:aS,data:{type:\"data\",value:[]},dataComparator:EB.equal,renderSubLayers:{type:\"function\",value:e=>new wm(e)},getTileData:{type:\"function\",optional:!0,value:null},onViewportLoad:{type:\"function\",optional:!0,value:null},onTileLoad:{type:\"function\",value:e=>{}},onTileUnload:{type:\"function\",value:e=>{}},onTileError:{type:\"function\",value:e=>console.error(e)},extent:{type:\"array\",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:lS,zRange:null,maxRequests:6,zoomOffset:0},Pm=class extends Yi{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var t,r;(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||r.finalize()}get isLoaded(){var t,r,i;return(t=this.state)===null||t===void 0||(r=t.tileset)===null||r===void 0||(i=r.selectedTiles)===null||i===void 0?void 0:i.every(n=>n.isLoaded&&n.layers&&n.layers.every(s=>s.isLoaded))}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState({changeFlags:t}){let{tileset:r}=this.state,i=t.propsOrDataChanged||t.updateTriggersChanged,n=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),n?r.reloadAll():this.state.tileset.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:t,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:n,extent:s,maxZoom:o,minZoom:c,maxRequests:d,zoomOffset:_}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:o,minZoom:c,tileSize:t,refinementStrategy:n,extent:s,maxRequests:d,zoomOffset:_,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let{tileset:t}=this.state,{zRange:r,modelMatrix:i}=this.props,n=t.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:s}=t,o=this.state.isLoaded!==s,c=this.state.frameNumber!==n;s&&(o||c)&&this._onViewportLoad(),c&&this.setState({frameNumber:n}),this.state.isLoaded=s}_onViewportLoad(){let{tileset:t}=this.state,{onViewportLoad:r}=this.props;r&&r(t.selectedTiles)}_onTileLoad(t){this.props.onTileLoad(t),t.layers=null,this.setNeedsUpdate()}_onTileError(t,r){this.props.onTileError(t),r.layers=null,this.setNeedsUpdate()}_onTileUnload(t){this.props.onTileUnload(t)}getTileData(t){let{data:r,getTileData:i,fetch:n}=this.props,{signal:s}=t;return t.url=typeof r==\"string\"||Array.isArray(r)?PB(r,t):null,i?i(t):n&&t.url?n(t.url,{propName:\"data\",layer:this,signal:s}):null}renderSubLayers(t){return this.props.renderSubLayers(t)}getSubLayerPropsByTile(t){return null}getPickingInfo({info:t,sourceLayer:r}){let i=r.props.tile;return t.picked&&(t.tile=i),t.sourceTile=i,t}_updateAutoHighlight(t){let r=t.sourceTile;if(r&&r.layers)for(let i of r.layers)i.updateAutoHighlight(t)}renderLayers(){return this.state.tileset.tiles.map(t=>{let r=this.getSubLayerPropsByTile(t);if(!(!t.isLoaded&&!t.content))if(t.layers)r&&t.layers[0]&&Object.keys(r).some(i=>t.layers[0].props[i]!==r[i])&&(t.layers=t.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:t.id,updateTriggers:this.props.updateTriggers}),data:t.content,_offset:0,tile:t});t.layers=ip(i,Boolean).map(n=>n.clone({tile:t,...r}))}return t.layers})}filterSubLayer({layer:t,cullRect:r}){let{tile:i}=t.props;return this.state.tileset.isTileVisible(i,r)}};G(Pm,\"defaultProps\",i_t);G(Pm,\"layerName\",\"TileLayer\");var xc=function(e){e=e||{};var t=typeof e<\"u\"?e:{},r={},i;for(i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);var n=[],s=\"\";function o(qt){return t.locateFile?t.locateFile(qt,s):s+qt}var c;document.currentScript&&(s=document.currentScript.src),s.indexOf(\"blob:\")!==0?s=s.substr(0,s.lastIndexOf(\"/\")+1):s=\"\",c=function(fe,ke,yr){var g=new XMLHttpRequest;g.open(\"GET\",fe,!0),g.responseType=\"arraybuffer\",g.onload=function(){if(g.status==200||g.status==0&&g.response){ke(g.response);return}var yi=Rt(fe);if(yi){ke(yi.buffer);return}yr()},g.onerror=yr,g.send(null)};var d=t.print||console.log.bind(console),_=t.printErr||console.warn.bind(console);for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);r=null,t.arguments&&(n=t.arguments);var w=0,I=function(qt){w=qt},R=function(){return w},N=8;function j(qt,fe,ke,yr){switch(ke=ke||\"i8\",ke.charAt(ke.length-1)===\"*\"&&(ke=\"i32\"),ke){case\"i1\":Cr[qt>>0]=fe;break;case\"i8\":Cr[qt>>0]=fe;break;case\"i16\":Fs[qt>>1]=fe;break;case\"i32\":ws[qt>>2]=fe;break;case\"i64\":La=[fe>>>0,(Vn=fe,+hu(Vn)>=1?Vn>0?(xn(+In(Vn/4294967296),4294967295)|0)>>>0:~~+ti((Vn-+(~~Vn>>>0))/4294967296)>>>0:0)],ws[qt>>2]=La[0],ws[qt+4>>2]=La[1];break;case\"float\":Ss[qt>>2]=fe;break;case\"double\":_o[qt>>3]=fe;break;default:Ba(\"invalid type for setValue: \"+ke)}}function Y(qt,fe,ke){switch(fe=fe||\"i8\",fe.charAt(fe.length-1)===\"*\"&&(fe=\"i32\"),fe){case\"i1\":return Cr[qt>>0];case\"i8\":return Cr[qt>>0];case\"i16\":return Fs[qt>>1];case\"i32\":return ws[qt>>2];case\"i64\":return ws[qt>>2];case\"float\":return Ss[qt>>2];case\"double\":return _o[qt>>3];default:Ba(\"invalid type for getValue: \"+fe)}return null}var it=!1;function Z(qt,fe){qt||Ba(\"Assertion failed: \"+fe)}function K(qt){var fe=t[\"_\"+qt];return Z(fe,\"Cannot call unknown function \"+qt+\", make sure it is exported\"),fe}function J(qt,fe,ke,yr,g){var zi={string:function(Kr){var Yr=0;if(Kr!=null&&Kr!==0){var Ic=(Kr.length<<2)+1;Yr=Td(Ic),oe(Kr,Yr,Ic)}return Yr},array:function(Kr){var Yr=Td(Kr.length);return Le(Kr,Yr),Yr}};function yi(Kr){return fe===\"string\"?Yt(Kr):fe===\"boolean\"?!!Kr:Kr}var bt=K(qt),Ms=[],oo=0;if(yr)for(var Zr=0;Zr=yr);)++g;if(g-fe>16&&qt.subarray&&Tt)return Tt.decode(qt.subarray(fe,g));for(var zi=\"\";fe>10,56320|oo&1023)}}return zi}function Yt(qt,fe){return qt?Ot(un,qt,fe):\"\"}function te(qt,fe,ke,yr){if(!(yr>0))return 0;for(var g=ke,zi=ke+yr-1,yi=0;yi=55296&&bt<=57343){var Ms=qt.charCodeAt(++yi);bt=65536+((bt&1023)<<10)|Ms&1023}if(bt<=127){if(ke>=zi)break;fe[ke++]=bt}else if(bt<=2047){if(ke+1>=zi)break;fe[ke++]=192|bt>>6,fe[ke++]=128|bt&63}else if(bt<=65535){if(ke+2>=zi)break;fe[ke++]=224|bt>>12,fe[ke++]=128|bt>>6&63,fe[ke++]=128|bt&63}else{if(ke+3>=zi)break;fe[ke++]=240|bt>>18,fe[ke++]=128|bt>>12&63,fe[ke++]=128|bt>>6&63,fe[ke++]=128|bt&63}}return fe[ke]=0,ke-g}function oe(qt,fe,ke){return te(qt,un,fe,ke)}var ae=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0;function Le(qt,fe){Cr.set(qt,fe)}function sr(qt,fe){return qt%fe>0&&(qt+=fe-qt%fe),qt}var lr,Cr,un,Fs,Sc,ws,io,Ss,_o;function oa(qt){lr=qt,t.HEAP8=Cr=new Int8Array(qt),t.HEAP16=Fs=new Int16Array(qt),t.HEAP32=ws=new Int32Array(qt),t.HEAPU8=un=new Uint8Array(qt),t.HEAPU16=Sc=new Uint16Array(qt),t.HEAPU32=io=new Uint32Array(qt),t.HEAPF32=Ss=new Float32Array(qt),t.HEAPF64=_o=new Float64Array(qt)}var sl=5266928,Ia=24016,Uo=t.TOTAL_MEMORY||33554432;t.buffer?lr=t.buffer:lr=new ArrayBuffer(Uo),Uo=lr.byteLength,oa(lr),ws[Ia>>2]=sl;function Ci(qt){for(;qt.length>0;){var fe=qt.shift();if(typeof fe==\"function\"){fe();continue}var ke=fe.func;typeof ke==\"number\"?fe.arg===void 0?t.dynCall_v(ke):t.dynCall_vi(ke,fe.arg):ke(fe.arg===void 0?null:fe.arg)}}var yo=[],Oi=[],ls=[],Vo=[];function jo(){if(t.preRun)for(typeof t.preRun==\"function\"&&(t.preRun=[t.preRun]);t.preRun.length;)Jt(t.preRun.shift());Ci(yo)}function Go(){Ci(Oi)}function an(){Ci(ls)}function aa(){if(t.postRun)for(typeof t.postRun==\"function\"&&(t.postRun=[t.postRun]);t.postRun.length;)vo(t.postRun.shift());Ci(Vo)}function Jt(qt){yo.unshift(qt)}function vo(qt){Vo.unshift(qt)}var hu=Math.abs,ti=Math.ceil,In=Math.floor,xn=Math.min,Wo=0,Dl=null,Ca=null;function Tc(qt){Wo++,t.monitorRunDependencies&&t.monitorRunDependencies(Wo)}function hf(qt){if(Wo--,t.monitorRunDependencies&&t.monitorRunDependencies(Wo),Wo==0&&(Dl!==null&&(clearInterval(Dl),Dl=null),Ca)){var fe=Ca;Ca=null,fe()}}t.preloadedImages={},t.preloadedAudios={};var Ts=null,Ae=\"data:application/octet-stream;base64,\";function Ho(qt){return String.prototype.startsWith?qt.startsWith(Ae):qt.indexOf(Ae)===0}var Vn,La;Ts=\"data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAAAQAAAAcAAAAGAAAACQAAAAAAAAADAAAAAgAAAAIAAAAGAAAACgAAAAsAAAAAAAAAAQAAAAUAAAADAAAADQAAAAEAAAAHAAAABAAAAAwAAAAAAAAABAAAAH8AAAAPAAAACAAAAAMAAAAAAAAADAAAAAUAAAACAAAAEgAAAAoAAAAIAAAAAAAAABAAAAAGAAAADgAAAAsAAAARAAAAAQAAAAkAAAACAAAABwAAABUAAAAJAAAAEwAAAAMAAAANAAAAAQAAAAgAAAAFAAAAFgAAABAAAAAEAAAAAAAAAA8AAAAJAAAAEwAAAA4AAAAUAAAAAQAAAAcAAAAGAAAACgAAAAsAAAAYAAAAFwAAAAUAAAACAAAAEgAAAAsAAAARAAAAFwAAABkAAAACAAAABgAAAAoAAAAMAAAAHAAAAA0AAAAaAAAABAAAAA8AAAADAAAADQAAABoAAAAVAAAAHQAAAAMAAAAMAAAABwAAAA4AAAB/AAAAEQAAABsAAAAJAAAAFAAAAAYAAAAPAAAAFgAAABwAAAAfAAAABAAAAAgAAAAMAAAAEAAAABIAAAAhAAAAHgAAAAgAAAAFAAAAFgAAABEAAAALAAAADgAAAAYAAAAjAAAAGQAAABsAAAASAAAAGAAAAB4AAAAgAAAABQAAAAoAAAAQAAAAEwAAACIAAAAUAAAAJAAAAAcAAAAVAAAACQAAABQAAAAOAAAAEwAAAAkAAAAoAAAAGwAAACQAAAAVAAAAJgAAABMAAAAiAAAADQAAAB0AAAAHAAAAFgAAABAAAAApAAAAIQAAAA8AAAAIAAAAHwAAABcAAAAYAAAACwAAAAoAAAAnAAAAJQAAABkAAAAYAAAAfwAAACAAAAAlAAAACgAAABcAAAASAAAAGQAAABcAAAARAAAACwAAAC0AAAAnAAAAIwAAABoAAAAqAAAAHQAAACsAAAAMAAAAHAAAAA0AAAAbAAAAKAAAACMAAAAuAAAADgAAABQAAAARAAAAHAAAAB8AAAAqAAAALAAAAAwAAAAPAAAAGgAAAB0AAAArAAAAJgAAAC8AAAANAAAAGgAAABUAAAAeAAAAIAAAADAAAAAyAAAAEAAAABIAAAAhAAAAHwAAACkAAAAsAAAANQAAAA8AAAAWAAAAHAAAACAAAAAeAAAAGAAAABIAAAA0AAAAMgAAACUAAAAhAAAAHgAAADEAAAAwAAAAFgAAABAAAAApAAAAIgAAABMAAAAmAAAAFQAAADYAAAAkAAAAMwAAACMAAAAuAAAALQAAADgAAAARAAAAGwAAABkAAAAkAAAAFAAAACIAAAATAAAANwAAACgAAAA2AAAAJQAAACcAAAA0AAAAOQAAABgAAAAXAAAAIAAAACYAAAB/AAAAIgAAADMAAAAdAAAALwAAABUAAAAnAAAAJQAAABkAAAAXAAAAOwAAADkAAAAtAAAAKAAAABsAAAAkAAAAFAAAADwAAAAuAAAANwAAACkAAAAxAAAANQAAAD0AAAAWAAAAIQAAAB8AAAAqAAAAOgAAACsAAAA+AAAAHAAAACwAAAAaAAAAKwAAAD4AAAAvAAAAQAAAABoAAAAqAAAAHQAAACwAAAA1AAAAOgAAAEEAAAAcAAAAHwAAACoAAAAtAAAAJwAAACMAAAAZAAAAPwAAADsAAAA4AAAALgAAADwAAAA4AAAARAAAABsAAAAoAAAAIwAAAC8AAAAmAAAAKwAAAB0AAABFAAAAMwAAAEAAAAAwAAAAMQAAAB4AAAAhAAAAQwAAAEIAAAAyAAAAMQAAAH8AAAA9AAAAQgAAACEAAAAwAAAAKQAAADIAAAAwAAAAIAAAAB4AAABGAAAAQwAAADQAAAAzAAAARQAAADYAAABHAAAAJgAAAC8AAAAiAAAANAAAADkAAABGAAAASgAAACAAAAAlAAAAMgAAADUAAAA9AAAAQQAAAEsAAAAfAAAAKQAAACwAAAA2AAAARwAAADcAAABJAAAAIgAAADMAAAAkAAAANwAAACgAAAA2AAAAJAAAAEgAAAA8AAAASQAAADgAAABEAAAAPwAAAE0AAAAjAAAALgAAAC0AAAA5AAAAOwAAAEoAAABOAAAAJQAAACcAAAA0AAAAOgAAAH8AAAA+AAAATAAAACwAAABBAAAAKgAAADsAAAA/AAAATgAAAE8AAAAnAAAALQAAADkAAAA8AAAASAAAAEQAAABQAAAAKAAAADcAAAAuAAAAPQAAADUAAAAxAAAAKQAAAFEAAABLAAAAQgAAAD4AAAArAAAAOgAAACoAAABSAAAAQAAAAEwAAAA/AAAAfwAAADgAAAAtAAAATwAAADsAAABNAAAAQAAAAC8AAAA+AAAAKwAAAFQAAABFAAAAUgAAAEEAAAA6AAAANQAAACwAAABWAAAATAAAAEsAAABCAAAAQwAAAFEAAABVAAAAMQAAADAAAAA9AAAAQwAAAEIAAAAyAAAAMAAAAFcAAABVAAAARgAAAEQAAAA4AAAAPAAAAC4AAABaAAAATQAAAFAAAABFAAAAMwAAAEAAAAAvAAAAWQAAAEcAAABUAAAARgAAAEMAAAA0AAAAMgAAAFMAAABXAAAASgAAAEcAAABZAAAASQAAAFsAAAAzAAAARQAAADYAAABIAAAAfwAAAEkAAAA3AAAAUAAAADwAAABYAAAASQAAAFsAAABIAAAAWAAAADYAAABHAAAANwAAAEoAAABOAAAAUwAAAFwAAAA0AAAAOQAAAEYAAABLAAAAQQAAAD0AAAA1AAAAXgAAAFYAAABRAAAATAAAAFYAAABSAAAAYAAAADoAAABBAAAAPgAAAE0AAAA/AAAARAAAADgAAABdAAAATwAAAFoAAABOAAAASgAAADsAAAA5AAAAXwAAAFwAAABPAAAATwAAAE4AAAA/AAAAOwAAAF0AAABfAAAATQAAAFAAAABEAAAASAAAADwAAABjAAAAWgAAAFgAAABRAAAAVQAAAF4AAABlAAAAPQAAAEIAAABLAAAAUgAAAGAAAABUAAAAYgAAAD4AAABMAAAAQAAAAFMAAAB/AAAASgAAAEYAAABkAAAAVwAAAFwAAABUAAAARQAAAFIAAABAAAAAYQAAAFkAAABiAAAAVQAAAFcAAABlAAAAZgAAAEIAAABDAAAAUQAAAFYAAABMAAAASwAAAEEAAABoAAAAYAAAAF4AAABXAAAAUwAAAGYAAABkAAAAQwAAAEYAAABVAAAAWAAAAEgAAABbAAAASQAAAGMAAABQAAAAaQAAAFkAAABhAAAAWwAAAGcAAABFAAAAVAAAAEcAAABaAAAATQAAAFAAAABEAAAAagAAAF0AAABjAAAAWwAAAEkAAABZAAAARwAAAGkAAABYAAAAZwAAAFwAAABTAAAATgAAAEoAAABsAAAAZAAAAF8AAABdAAAATwAAAFoAAABNAAAAbQAAAF8AAABqAAAAXgAAAFYAAABRAAAASwAAAGsAAABoAAAAZQAAAF8AAABcAAAATwAAAE4AAABtAAAAbAAAAF0AAABgAAAAaAAAAGIAAABuAAAATAAAAFYAAABSAAAAYQAAAH8AAABiAAAAVAAAAGcAAABZAAAAbwAAAGIAAABuAAAAYQAAAG8AAABSAAAAYAAAAFQAAABjAAAAUAAAAGkAAABYAAAAagAAAFoAAABxAAAAZAAAAGYAAABTAAAAVwAAAGwAAAByAAAAXAAAAGUAAABmAAAAawAAAHAAAABRAAAAVQAAAF4AAABmAAAAZQAAAFcAAABVAAAAcgAAAHAAAABkAAAAZwAAAFsAAABhAAAAWQAAAHQAAABpAAAAbwAAAGgAAABrAAAAbgAAAHMAAABWAAAAXgAAAGAAAABpAAAAWAAAAGcAAABbAAAAcQAAAGMAAAB0AAAAagAAAF0AAABjAAAAWgAAAHUAAABtAAAAcQAAAGsAAAB/AAAAZQAAAF4AAABzAAAAaAAAAHAAAABsAAAAZAAAAF8AAABcAAAAdgAAAHIAAABtAAAAbQAAAGwAAABdAAAAXwAAAHUAAAB2AAAAagAAAG4AAABiAAAAaAAAAGAAAAB3AAAAbwAAAHMAAABvAAAAYQAAAG4AAABiAAAAdAAAAGcAAAB3AAAAcAAAAGsAAABmAAAAZQAAAHgAAABzAAAAcgAAAHEAAABjAAAAdAAAAGkAAAB1AAAAagAAAHkAAAByAAAAcAAAAGQAAABmAAAAdgAAAHgAAABsAAAAcwAAAG4AAABrAAAAaAAAAHgAAAB3AAAAcAAAAHQAAABnAAAAdwAAAG8AAABxAAAAaQAAAHkAAAB1AAAAfwAAAG0AAAB2AAAAcQAAAHkAAABqAAAAdgAAAHgAAABsAAAAcgAAAHUAAAB5AAAAbQAAAHcAAABvAAAAcwAAAG4AAAB5AAAAdAAAAHgAAAB4AAAAcwAAAHIAAABwAAAAeQAAAHcAAAB2AAAAeQAAAHQAAAB4AAAAdwAAAHUAAABxAAAAdgAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl\";var ts=24032;function be(qt){return qt}function Lr(qt){var fe=/\\b__Z[\\w\\d_]+/g;return qt.replace(fe,function(ke){var yr=ke;return ke===yr?ke:yr+\" [\"+ke+\"]\"})}function wr(){var qt=new Error;if(!qt.stack){try{throw new Error(0)}catch(fe){qt=fe}if(!qt.stack)return\"(no stack trace available)\"}return qt.stack.toString()}function Cn(){var qt=wr();return t.extraStackTrace&&(qt+=`\n`+t.extraStackTrace()),Lr(qt)}function ka(qt,fe,ke,yr){Ba(\"Assertion failed: \"+Yt(qt)+\", at: \"+[fe?Yt(fe):\"unknown filename\",ke,yr?Yt(yr):\"unknown function\"])}function mr(){return Cr.length}function Mc(qt,fe,ke){un.set(un.subarray(fe,fe+ke),qt)}function jn(qt){return t.___errno_location&&(ws[t.___errno_location()>>2]=qt),qt}function vt(qt){Ba(\"OOM\")}function tt(qt){try{var fe=new ArrayBuffer(qt);return fe.byteLength!=qt?void 0:(new Int8Array(fe).set(Cr),bn(fe),oa(fe),1)}catch{}}function nt(qt){var fe=mr(),ke=16777216,yr=2147483648-ke;if(qt>yr)return!1;for(var g=16777216,zi=Math.max(fe,g);zi>4,g=(bt&15)<<4|Ms>>2,zi=(Ms&3)<<6|oo,ke=ke+String.fromCharCode(yr),Ms!==64&&(ke=ke+String.fromCharCode(g)),oo!==64&&(ke=ke+String.fromCharCode(zi));while(Zr>2]=p,g[k+4>>2]=m,k=(C|0)!=0,k&&(g[C>>2]=0),qn(p,m)|0)return Bt=1,wt=Gt,Bt|0;g[Bt>>2]=0;t:do if((y|0)>=1)if(k)for(et=0,st=1,Et=1,L=0,k=p;;){if(!(L|et)){if(k=Rn(k,m,4,Bt)|0,m=Pt()|0,(k|0)==0&(m|0)==0){k=2;break t}if(qn(k,m)|0){k=1;break t}}if(k=Rn(k,m,g[16+(et<<2)>>2]|0,Bt)|0,m=Pt()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Et<<3)|0,g[p>>2]=k,g[p+4>>2]=m,g[C+(Et<<2)>>2]=st,L=L+1|0,p=(L|0)==(st|0),z=et+1|0,H=(z|0)==6,qn(k,m)|0){k=1;break t}if(st=st+(H&p&1)|0,(st|0)>(y|0)){k=0;break}else et=p?H?0:z:et,Et=Et+1|0,L=p?0:L}else for(et=0,st=1,Et=1,L=0,k=p;;){if(!(L|et)){if(k=Rn(k,m,4,Bt)|0,m=Pt()|0,(k|0)==0&(m|0)==0){k=2;break t}if(qn(k,m)|0){k=1;break t}}if(k=Rn(k,m,g[16+(et<<2)>>2]|0,Bt)|0,m=Pt()|0,(k|0)==0&(m|0)==0){k=2;break t}if(p=S+(Et<<3)|0,g[p>>2]=k,g[p+4>>2]=m,L=L+1|0,p=(L|0)==(st|0),z=et+1|0,H=(z|0)==6,qn(k,m)|0){k=1;break t}if(st=st+(H&p&1)|0,(st|0)>(y|0)){k=0;break}else et=p?H?0:z:et,Et=Et+1|0,L=p?0:L}else k=0;while(!1);return Bt=k,wt=Gt,Bt|0}function ua(p,m,y,S,C,k,L){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0,k=k|0,L=L|0;var z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0;if(Et=wt,wt=wt+16|0,st=Et,(p|0)==0&(m|0)==0){wt=Et;return}if(z=Ul(p|0,m|0,k|0,((k|0)<0)<<31>>31|0)|0,Pt()|0,H=S+(z<<3)|0,Bt=H,Gt=g[Bt>>2]|0,Bt=g[Bt+4>>2]|0,et=(Gt|0)==(p|0)&(Bt|0)==(m|0),!((Gt|0)==0&(Bt|0)==0|et))do z=(z+1|0)%(k|0)|0,H=S+(z<<3)|0,Gt=H,Bt=g[Gt>>2]|0,Gt=g[Gt+4>>2]|0,et=(Bt|0)==(p|0)&(Gt|0)==(m|0);while(!((Bt|0)==0&(Gt|0)==0|et));if(z=C+(z<<2)|0,et&&(g[z>>2]|0)<=(L|0)){wt=Et;return}if(Gt=H,g[Gt>>2]=p,g[Gt+4>>2]=m,g[z>>2]=L,(L|0)>=(y|0)){wt=Et;return}Gt=L+1|0,g[st>>2]=0,Bt=Rn(p,m,2,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),g[st>>2]=0,Bt=Rn(p,m,3,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),g[st>>2]=0,Bt=Rn(p,m,1,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),g[st>>2]=0,Bt=Rn(p,m,5,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),g[st>>2]=0,Bt=Rn(p,m,4,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),g[st>>2]=0,Bt=Rn(p,m,6,st)|0,ua(Bt,Pt()|0,y,S,C,k,Gt),wt=Et}function Rn(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0;if((g[S>>2]|0)>0){C=0;do y=al(y)|0,C=C+1|0;while((C|0)<(g[S>>2]|0))}z=ve(p|0,m|0,45)|0,Pt()|0,H=z&127,k=Us(p,m)|0,C=ve(p|0,m|0,52)|0,Pt()|0,C=C&15;t:do if(!C)L=6;else for(;;){if(Et=(15-C|0)*3|0,Bt=ve(p|0,m|0,Et|0)|0,Pt()|0,Bt=Bt&7,Gt=(Ps(C)|0)==0,C=C+-1|0,st=De(7,0,Et|0)|0,m=m&~(Pt()|0),Et=De(g[(Gt?464:48)+(Bt*28|0)+(y<<2)>>2]|0,0,Et|0)|0,et=Pt()|0,y=g[(Gt?672:256)+(Bt*28|0)+(y<<2)>>2]|0,p=Et|p&~st,m=et|m,!y){y=0;break t}if(!C){L=6;break}}while(!1);(L|0)==6&&(Gt=g[880+(H*28|0)+(y<<2)>>2]|0,Bt=De(Gt|0,0,45)|0,p=Bt|p,m=Pt()|0|m&-1040385,y=g[4304+(H*28|0)+(y<<2)>>2]|0,(Gt&127|0)==127&&(Gt=De(g[880+(H*28|0)+20>>2]|0,0,45)|0,m=Pt()|0|m&-1040385,y=g[4304+(H*28|0)+20>>2]|0,p=ul(Gt|p,m)|0,m=Pt()|0,g[S>>2]=(g[S>>2]|0)+1)),L=ve(p|0,m|0,45)|0,Pt()|0,L=L&127;t:do if(Mi(L)|0){e:do if((Us(p,m)|0)==1){if((H|0)!=(L|0))if(Cc(L,g[7728+(H*28|0)>>2]|0)|0){p=Od(p,m)|0,k=1,m=Pt()|0;break}else{p=ul(p,m)|0,k=1,m=Pt()|0;break}switch(k|0){case 5:{p=Od(p,m)|0,m=Pt()|0,g[S>>2]=(g[S>>2]|0)+5,k=0;break e}case 3:{p=ul(p,m)|0,m=Pt()|0,g[S>>2]=(g[S>>2]|0)+1,k=0;break e}default:return Bt=0,Gt=0,Sr(Bt|0),Gt|0}}else k=0;while(!1);if((y|0)>0){C=0;do p=hh(p,m)|0,m=Pt()|0,C=C+1|0;while((C|0)!=(y|0))}if((H|0)!=(L|0)){if(!(Ns(L)|0)){if((k|0)!=0|(Us(p,m)|0)!=5)break;g[S>>2]=(g[S>>2]|0)+1;break}switch(z&127){case 8:case 118:break t;default:}(Us(p,m)|0)!=3&&(g[S>>2]=(g[S>>2]|0)+1)}}else if((y|0)>0){C=0;do p=ul(p,m)|0,m=Pt()|0,C=C+1|0;while((C|0)!=(y|0))}while(!1);return g[S>>2]=((g[S>>2]|0)+y|0)%6|0,Bt=m,Gt=p,Sr(Bt|0),Gt|0}function Jg(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0;if(Et=wt,wt=wt+16|0,st=Et,!y)return st=S,g[st>>2]=p,g[st+4>>2]=m,st=0,wt=Et,st|0;g[st>>2]=0;t:do if(qn(p,m)|0)p=1;else{if(k=(y|0)>0,k){C=0,et=p;do{if(et=Rn(et,m,4,st)|0,m=Pt()|0,(et|0)==0&(m|0)==0){p=2;break t}if(C=C+1|0,qn(et,m)|0){p=1;break t}}while((C|0)<(y|0));if(H=S,g[H>>2]=et,g[H+4>>2]=m,H=y+-1|0,k){k=0,L=1,C=et,p=m;do{if(C=Rn(C,p,2,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if(z=S+(L<<3)|0,g[z>>2]=C,g[z+4>>2]=p,L=L+1|0,qn(C,p)|0){p=1;break t}k=k+1|0}while((k|0)<(y|0));z=0,k=L;do{if(C=Rn(C,p,3,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if(L=S+(k<<3)|0,g[L>>2]=C,g[L+4>>2]=p,k=k+1|0,qn(C,p)|0){p=1;break t}z=z+1|0}while((z|0)<(y|0));L=0;do{if(C=Rn(C,p,1,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=C,g[z+4>>2]=p,k=k+1|0,qn(C,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(C=Rn(C,p,5,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=C,g[z+4>>2]=p,k=k+1|0,qn(C,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));L=0;do{if(C=Rn(C,p,4,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if(z=S+(k<<3)|0,g[z>>2]=C,g[z+4>>2]=p,k=k+1|0,qn(C,p)|0){p=1;break t}L=L+1|0}while((L|0)<(y|0));for(L=0;;){if(C=Rn(C,p,6,st)|0,p=Pt()|0,(C|0)==0&(p|0)==0){p=2;break t}if((L|0)!=(H|0))if(z=S+(k<<3)|0,g[z>>2]=C,g[z+4>>2]=p,!(qn(C,p)|0))k=k+1|0;else{p=1;break t}if(L=L+1|0,(L|0)>=(y|0)){L=et,k=m;break}}}else L=et,C=et,k=m,p=m}else L=S,g[L>>2]=p,g[L+4>>2]=m,L=p,C=p,k=m,p=m;p=((L|0)!=(C|0)|(k|0)!=(p|0))&1}while(!1);return st=p,wt=Et,st|0}function t_(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0;if(k=wt,wt=wt+48|0,C=k+8|0,S=k,z=p,L=g[z+4>>2]|0,y=S,g[y>>2]=g[z>>2],g[y+4>>2]=L,he(S,C),C=Lc(C,m)|0,m=g[S>>2]|0,S=g[p+8>>2]|0,(S|0)<=0)return z=m,L=(C|0)<(z|0),z=L?z:C,z=z+12|0,wt=k,z|0;y=g[p+12>>2]|0,p=0;do m=(g[y+(p<<3)>>2]|0)+m|0,p=p+1|0;while((p|0)<(S|0));return z=(C|0)<(m|0),z=z?m:C,z=z+12|0,wt=k,z|0}function Xp(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0;if(z=wt,wt=wt+48|0,S=z+8|0,C=z,!(Zm(p,m,y)|0)){wt=z;return}if(H=p,k=g[H+4>>2]|0,L=C,g[L>>2]=g[H>>2],g[L+4>>2]=k,he(C,S),L=Lc(S,m)|0,m=g[C>>2]|0,k=g[p+8>>2]|0,(k|0)>0){C=g[p+12>>2]|0,S=0;do m=(g[C+(S<<3)>>2]|0)+m|0,S=S+1|0;while((S|0)!=(k|0))}if(m=(L|0)<(m|0)?m:L,(m|0)<=-12){wt=z;return}H=m+11|0,fa(y|0,0,(((H|0)>0?H:0)<<3)+8|0)|0,wt=z}function Zm(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0,Qr=0,Ri=0,Ei=0,Vi=0,pi=0,fi=0,ln=0,jr=0;if(jr=wt,wt=wt+112|0,Vi=jr+80|0,H=jr+72|0,pi=jr,fi=jr+56|0,et=p+8|0,ln=dn((g[et>>2]<<5)+32|0)|0,ln||Li(22848,22448,800,22456),ce(p,ln),k=p,S=g[k+4>>2]|0,z=H,g[z>>2]=g[k>>2],g[z+4>>2]=S,he(H,Vi),z=Lc(Vi,m)|0,S=g[H>>2]|0,k=g[et>>2]|0,(k|0)>0){L=g[p+12>>2]|0,C=0;do S=(g[L+(C<<3)>>2]|0)+S|0,C=C+1|0;while((C|0)!=(k|0))}if(z=(z|0)<(S|0)?S:z,Ei=z+12|0,C=Bi(Ei,8)|0,st=Bi(Ei,8)|0,g[Vi>>2]=0,Qr=p,Ri=g[Qr+4>>2]|0,S=H,g[S>>2]=g[Qr>>2],g[S+4>>2]=Ri,S=e_(H,Ei,m,Vi,C,st)|0,S|0)return Xe(C),Xe(st),Xe(ln),ln=S,wt=jr,ln|0;t:do if((g[et>>2]|0)>0){for(k=p+12|0,S=0;L=e_((g[k>>2]|0)+(S<<3)|0,Ei,m,Vi,C,st)|0,S=S+1|0,!(L|0);)if((S|0)>=(g[et>>2]|0))break t;return Xe(C),Xe(st),Xe(ln),ln=L,wt=jr,ln|0}while(!1);(z|0)>-12&&fa(st|0,0,((Ei|0)>1?Ei:1)<<3|0)|0;t:do if((g[Vi>>2]|0)>0){Ri=((Ei|0)<0)<<31>>31,Ft=C,qe=st,Ye=C,Oe=C,Ve=st,Qr=C,S=C,Se=C,Ge=st,Kt=st,ye=st,C=st;e:for(;;){for(se=g[Vi>>2]|0,Gt=0,Qt=0,k=0;;){L=pi,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));if(m=Ft+(Gt<<3)|0,H=g[m>>2]|0,m=g[m+4>>2]|0,vf(H,m,1,pi,0)|0){L=pi,z=L+56|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(z|0));L=Bi(7,4)|0,L|0&&(ua(H,m,1,pi,L,7,0),Xe(L))}Bt=0;do{Et=pi+(Bt<<3)|0,st=g[Et>>2]|0,Et=g[Et+4>>2]|0;r:do if(!((st|0)==0&(Et|0)==0)){if(H=Ul(st|0,Et|0,Ei|0,Ri|0)|0,Pt()|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,!((m|0)==0&(z|0)==0))for(et=0;;){if((et|0)>(Ei|0))break e;if((m|0)==(st|0)&(z|0)==(Et|0))break r;if(H=(H+1|0)%(Ei|0)|0,L=y+(H<<3)|0,z=L,m=g[z>>2]|0,z=g[z+4>>2]|0,(m|0)==0&(z|0)==0)break;et=et+1|0}(st|0)==0&(Et|0)==0||(Dc(st,Et,fi),ge(p,ln,fi)|0&&(et=L,g[et>>2]=st,g[et+4>>2]=Et,et=qe+(k<<3)|0,g[et>>2]=st,g[et+4>>2]=Et,k=k+1|0))}while(!1);Bt=Bt+1|0}while(Bt>>>0<7);if(Qt=Qt+1|0,(Qt|0)>=(se|0))break;Gt=Gt+1|0}if((se|0)>0&&fa(Ye|0,0,se<<3|0)|0,g[Vi>>2]=k,(k|0)>0)st=C,Et=ye,Bt=Qr,Gt=Kt,Qt=Ge,se=qe,C=Se,ye=S,Kt=Oe,Ge=Ye,Se=st,S=Et,Qr=Ve,Ve=Bt,Oe=Gt,Ye=Qt,qe=Ft,Ft=se;else break t}return Xe(Oe),Xe(Ve),Xe(ln),ln=-1,wt=jr,ln|0}else S=st;while(!1);return Xe(ln),Xe(C),Xe(S),ln=0,wt=jr,ln|0}function e_(p,m,y,S,C,k){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0,k=k|0;var L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0,Qr=0,Ri=0,Ei=0,Vi=0;if(Ri=wt,wt=wt+48|0,Ye=Ri+32|0,Oe=Ri+16|0,Ve=Ri,L=g[p>>2]|0,(L|0)<=0)return Qr=0,wt=Ri,Qr|0;Ge=p+4|0,Kt=Ye+8|0,ye=Oe+8|0,Ft=Ve+8|0,qe=((m|0)<0)<<31>>31,Se=0;t:for(;;){z=g[Ge>>2]|0,Qt=z+(Se<<4)|0,g[Ye>>2]=g[Qt>>2],g[Ye+4>>2]=g[Qt+4>>2],g[Ye+8>>2]=g[Qt+8>>2],g[Ye+12>>2]=g[Qt+12>>2],(Se|0)==(L+-1|0)?(g[Oe>>2]=g[z>>2],g[Oe+4>>2]=g[z+4>>2],g[Oe+8>>2]=g[z+8>>2],g[Oe+12>>2]=g[z+12>>2]):(Qt=z+(Se+1<<4)|0,g[Oe>>2]=g[Qt>>2],g[Oe+4>>2]=g[Qt+4>>2],g[Oe+8>>2]=g[Qt+8>>2],g[Oe+12>>2]=g[Qt+12>>2]),Qt=n_(Ye,Oe,y)|0;e:do if((Qt|0)>0){se=+(Qt|0),Gt=0;r:for(;;){Vi=+(Qt-Gt|0),Ei=+(Gt|0),bt[Ve>>3]=+bt[Ye>>3]*Vi/se+ +bt[Oe>>3]*Ei/se,bt[Ft>>3]=+bt[Kt>>3]*Vi/se+ +bt[ye>>3]*Ei/se,Et=oA(Ve,y)|0,Bt=Pt()|0,z=Ul(Et|0,Bt|0,m|0,qe|0)|0,Pt()|0,L=k+(z<<3)|0,H=L,et=g[H>>2]|0,H=g[H+4>>2]|0;i:do if((et|0)==0&(H|0)==0)Qr=14;else for(st=0;;){if((st|0)>(m|0)){L=1;break i}if((et|0)==(Et|0)&(H|0)==(Bt|0)){L=7;break i}if(z=(z+1|0)%(m|0)|0,L=k+(z<<3)|0,H=L,et=g[H>>2]|0,H=g[H+4>>2]|0,(et|0)==0&(H|0)==0){Qr=14;break}else st=st+1|0}while(!1);switch((Qr|0)==14&&(Qr=0,(Et|0)==0&(Bt|0)==0?L=7:(g[L>>2]=Et,g[L+4>>2]=Bt,L=g[S>>2]|0,st=C+(L<<3)|0,g[st>>2]=Et,g[st+4>>2]=Bt,g[S>>2]=L+1,L=0)),L&7){case 7:case 0:break;default:break r}if(Gt=Gt+1|0,(Qt|0)<=(Gt|0)){Qr=8;break e}}if(L|0){L=-1,Qr=20;break t}}else Qr=8;while(!1);if((Qr|0)==8&&(Qr=0),Se=Se+1|0,L=g[p>>2]|0,(Se|0)>=(L|0)){L=0,Qr=20;break}}return(Qr|0)==20?(wt=Ri,L|0):0}function r_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0;if(et=wt,wt=wt+176|0,H=et,(m|0)<1){Vs(y,0,0),wt=et;return}L=p,L=ve(g[L>>2]|0,g[L+4>>2]|0,52)|0,Pt()|0,Vs(y,(m|0)>6?m:6,L&15),L=0;do{if(S=p+(L<<3)|0,Oc(g[S>>2]|0,g[S+4>>2]|0,H),S=g[H>>2]|0,(S|0)>0){z=0;do k=H+8+(z<<4)|0,z=z+1|0,S=H+8+(((z|0)%(S|0)|0)<<4)|0,C=kf(y,S,k)|0,C?Bc(y,C)|0:Lf(y,k,S)|0,S=g[H>>2]|0;while((z|0)<(S|0))}L=L+1|0}while((L|0)!=(m|0));wt=et}function Sn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0;if(k=wt,wt=wt+32|0,S=k,C=k+16|0,r_(p,m,C),g[y>>2]=0,g[y+4>>2]=0,g[y+8>>2]=0,p=ha(C)|0,!p){gt(y)|0,js(C),wt=k;return}do{m=$(y)|0;do X(m,p)|0,L=p+16|0,g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],g[S+12>>2]=g[L+12>>2],Bc(C,p)|0,p=bu(C,S)|0;while(p|0);p=ha(C)|0}while(p|0);gt(y)|0,js(C),wt=k}function Mi(p){return p=p|0,g[7728+(p*28|0)+16>>2]|0}function Ns(p){return p=p|0,(p|0)==4|(p|0)==117|0}function Kp(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)>>2]|0}function Jp(p){return p=p|0,g[11152+((g[p>>2]|0)*216|0)+((g[p+4>>2]|0)*72|0)+((g[p+8>>2]|0)*24|0)+(g[p+12>>2]<<3)+4>>2]|0}function i_(p,m){p=p|0,m=m|0,p=7728+(p*28|0)|0,g[m>>2]=g[p>>2],g[m+4>>2]=g[p+4>>2],g[m+8>>2]=g[p+8>>2],g[m+12>>2]=g[p+12>>2]}function pu(p,m){p=p|0,m=m|0;var y=0,S=0;if(m>>>0>20)return m=-1,m|0;do if((g[11152+(m*216|0)>>2]|0)!=(p|0))if((g[11152+(m*216|0)+8>>2]|0)!=(p|0))if((g[11152+(m*216|0)+16>>2]|0)!=(p|0))if((g[11152+(m*216|0)+24>>2]|0)!=(p|0))if((g[11152+(m*216|0)+32>>2]|0)!=(p|0))if((g[11152+(m*216|0)+40>>2]|0)!=(p|0))if((g[11152+(m*216|0)+48>>2]|0)!=(p|0))if((g[11152+(m*216|0)+56>>2]|0)!=(p|0))if((g[11152+(m*216|0)+64>>2]|0)!=(p|0))if((g[11152+(m*216|0)+72>>2]|0)!=(p|0))if((g[11152+(m*216|0)+80>>2]|0)!=(p|0))if((g[11152+(m*216|0)+88>>2]|0)!=(p|0))if((g[11152+(m*216|0)+96>>2]|0)!=(p|0))if((g[11152+(m*216|0)+104>>2]|0)!=(p|0))if((g[11152+(m*216|0)+112>>2]|0)!=(p|0))if((g[11152+(m*216|0)+120>>2]|0)!=(p|0))if((g[11152+(m*216|0)+128>>2]|0)!=(p|0))if((g[11152+(m*216|0)+136>>2]|0)==(p|0))p=2,y=1,S=2;else{if((g[11152+(m*216|0)+144>>2]|0)==(p|0)){p=0,y=2,S=0;break}if((g[11152+(m*216|0)+152>>2]|0)==(p|0)){p=0,y=2,S=1;break}if((g[11152+(m*216|0)+160>>2]|0)==(p|0)){p=0,y=2,S=2;break}if((g[11152+(m*216|0)+168>>2]|0)==(p|0)){p=1,y=2,S=0;break}if((g[11152+(m*216|0)+176>>2]|0)==(p|0)){p=1,y=2,S=1;break}if((g[11152+(m*216|0)+184>>2]|0)==(p|0)){p=1,y=2,S=2;break}if((g[11152+(m*216|0)+192>>2]|0)==(p|0)){p=2,y=2,S=0;break}if((g[11152+(m*216|0)+200>>2]|0)==(p|0)){p=2,y=2,S=1;break}if((g[11152+(m*216|0)+208>>2]|0)==(p|0)){p=2,y=2,S=2;break}else p=-1;return p|0}else p=2,y=1,S=1;else p=2,y=1,S=0;else p=1,y=1,S=2;else p=1,y=1,S=1;else p=1,y=1,S=0;else p=0,y=1,S=2;else p=0,y=1,S=1;else p=0,y=1,S=0;else p=2,y=0,S=2;else p=2,y=0,S=1;else p=2,y=0,S=0;else p=1,y=0,S=2;else p=1,y=0,S=1;else p=1,y=0,S=0;else p=0,y=0,S=2;else p=0,y=0,S=1;else p=0,y=0,S=0;while(!1);return m=g[11152+(m*216|0)+(y*72|0)+(p*24|0)+(S<<3)+4>>2]|0,m|0}function Cc(p,m){return p=p|0,m=m|0,(g[7728+(p*28|0)+20>>2]|0)==(m|0)?(m=1,m|0):(m=(g[7728+(p*28|0)+24>>2]|0)==(m|0),m|0)}function Au(p,m){return p=p|0,m=m|0,g[880+(p*28|0)+(m<<2)>>2]|0}function xf(p,m){return p=p|0,m=m|0,(g[880+(p*28|0)>>2]|0)==(m|0)?(m=0,m|0):(g[880+(p*28|0)+4>>2]|0)==(m|0)?(m=1,m|0):(g[880+(p*28|0)+8>>2]|0)==(m|0)?(m=2,m|0):(g[880+(p*28|0)+12>>2]|0)==(m|0)?(m=3,m|0):(g[880+(p*28|0)+16>>2]|0)==(m|0)?(m=4,m|0):(g[880+(p*28|0)+20>>2]|0)==(m|0)?(m=5,m|0):((g[880+(p*28|0)+24>>2]|0)==(m|0)?6:7)|0}function Ym(){return 122}function $m(p){p=p|0;var m=0,y=0,S=0;m=0;do De(m|0,0,45)|0,S=Pt()|0|134225919,y=p+(m<<3)|0,g[y>>2]=-1,g[y+4>>2]=S,m=m+1|0;while((m|0)!=122)}function bf(p){return p=p|0,+bt[p+16>>3]<+bt[p+24>>3]|0}function Qm(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;return y=+bt[m>>3],!(y>=+bt[p+8>>3])||!(y<=+bt[p>>3])?(m=0,m|0):(S=+bt[p+16>>3],y=+bt[p+24>>3],C=+bt[m+8>>3],m=C>=y,p=C<=S&1,S>2]=0,k=k+4|0;while((k|0)<(z|0));return l(m,C),k=C,z=g[k>>2]|0,k=g[k+4>>2]|0,Dc(z,k,y),Oc(z,k,S),H=+Pf(y,S+8|0),bt[y>>3]=+bt[p>>3],k=y+8|0,bt[k>>3]=+bt[p+16>>3],bt[S>>3]=+bt[p+8>>3],z=S+8|0,bt[z>>3]=+bt[p+24>>3],et=+Pf(y,S),z=~~+si(+(et*et/+wu(+ +Zr(+((+bt[k>>3]-+bt[z>>3])/(+bt[y>>3]-+bt[S>>3]))),3)/(H*(H*2.59807621135)*.8))),wt=L,(z|0?z:1)|0}function n_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0;z=wt,wt=wt+288|0,S=z+264|0,C=z+96|0,k=z,L=k,H=L+96|0;do g[L>>2]=0,L=L+4|0;while((L|0)<(H|0));return l(y,k),H=k,L=g[H>>2]|0,H=g[H+4>>2]|0,Dc(L,H,S),Oc(L,H,C),et=+Pf(S,C+8|0),H=~~+si(+(+Pf(p,m)/(et*2))),wt=z,(H|0?H:1)|0}function s_(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0,g[p>>2]=m,g[p+4>>2]=y,g[p+8>>2]=S}function o_(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0;Et=m+8|0,g[Et>>2]=0,H=+bt[p>>3],L=+Zr(+H),et=+bt[p+8>>3],z=+Zr(+et)/.8660254037844386,L=L+z*.5,y=~~L,p=~~z,L=L-+(y|0),z=z-+(p|0);do if(L<.5)if(L<.3333333333333333)if(g[m>>2]=y,z<(L+1)*.5){g[m+4>>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}else if(Bt=1-L,p=(!(z>2]=p,Bt<=z&z>2]=y;break}else{g[m>>2]=y;break}else{if(!(L<.6666666666666666))if(y=y+1|0,g[m>>2]=y,z>2]=p;break}else{p=p+1|0,g[m+4>>2]=p;break}if(z<1-L){if(g[m+4>>2]=p,L*2+-1>2]=y;break}}else p=p+1|0,g[m+4>>2]=p;y=y+1|0,g[m>>2]=y}while(!1);do if(H<0)if(p&1){st=(p+1|0)/2|0,st=En(y|0,((y|0)<0)<<31>>31|0,st|0,((st|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-((+(st>>>0)+4294967296*+(Pt()|0))*2+1)),g[m>>2]=y;break}else{st=(p|0)/2|0,st=En(y|0,((y|0)<0)<<31>>31|0,st|0,((st|0)<0)<<31>>31|0)|0,y=~~(+(y|0)-(+(st>>>0)+4294967296*+(Pt()|0))*2),g[m>>2]=y;break}while(!1);st=m+4|0,et<0&&(y=y-((p<<1|1|0)/2|0)|0,g[m>>2]=y,p=0-p|0,g[st>>2]=p),S=p-y|0,(y|0)<0?(C=0-y|0,g[st>>2]=S,g[Et>>2]=C,g[m>>2]=0,p=S,y=0):C=0,(p|0)<0&&(y=y-p|0,g[m>>2]=y,C=C-p|0,g[Et>>2]=C,g[st>>2]=0,p=0),k=y-C|0,S=p-C|0,(C|0)<0&&(g[m>>2]=k,g[st>>2]=S,g[Et>>2]=0,p=S,y=k,C=0),S=(p|0)<(y|0)?p:y,S=(C|0)<(S|0)?C:S,!((S|0)<=0)&&(g[m>>2]=y-S,g[st>>2]=p-S,g[Et>>2]=C-S)}function is(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,(m|0)<0&&(y=y-m|0,g[L>>2]=y,k=p+8|0,g[k>>2]=(g[k>>2]|0)-m,g[p>>2]=0,m=0),(y|0)<0?(m=m-y|0,g[p>>2]=m,k=p+8|0,C=(g[k>>2]|0)-y|0,g[k>>2]=C,g[L>>2]=0,y=0):(C=p+8|0,k=C,C=g[C>>2]|0),(C|0)<0&&(m=m-C|0,g[p>>2]=m,y=y-C|0,g[L>>2]=y,g[k>>2]=0,C=0),S=(y|0)<(m|0)?y:m,S=(C|0)<(S|0)?C:S,!((S|0)<=0)&&(g[p>>2]=m-S,g[L>>2]=y-S,g[k>>2]=C-S)}function ol(p,m){p=p|0,m=m|0;var y=0,S=0;S=g[p+8>>2]|0,y=+((g[p+4>>2]|0)-S|0),bt[m>>3]=+((g[p>>2]|0)-S|0)-y*.5,bt[m+8>>3]=y*.8660254037844386}function Ui(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[m>>2]|0)+(g[p>>2]|0),g[y+4>>2]=(g[m+4>>2]|0)+(g[p+4>>2]|0),g[y+8>>2]=(g[m+8>>2]|0)+(g[p+8>>2]|0)}function mu(p,m,y){p=p|0,m=m|0,y=y|0,g[y>>2]=(g[p>>2]|0)-(g[m>>2]|0),g[y+4>>2]=(g[p+4>>2]|0)-(g[m+4>>2]|0),g[y+8>>2]=(g[p+8>>2]|0)-(g[m+8>>2]|0)}function gu(p,m){p=p|0,m=m|0;var y=0,S=0;y=Fa(g[p>>2]|0,m)|0,g[p>>2]=y,y=p+4|0,S=Fa(g[y>>2]|0,m)|0,g[y>>2]=S,p=p+8|0,m=Fa(g[p>>2]|0,m)|0,g[p>>2]=m}function Id(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;L=g[p>>2]|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,C=(k?0-S|0:0)+((g[p+8>>2]|0)-(z?L:0))|0,y=(C|0)<0,p=y?0:C,m=(k?0:S)-(y?C:0)|0,C=(z?0:L)-(k?S:0)-(y?C:0)|0,y=(m|0)<(C|0)?m:C,y=(p|0)<(y|0)?p:y,S=(y|0)>0,p=p-(S?y:0)|0,m=m-(S?y:0)|0;t:do switch(C-(S?y:0)|0){case 0:switch(m|0){case 0:return z=p|0?(p|0)==1?1:7:0,z|0;case 1:return z=p|0?(p|0)==1?3:7:2,z|0;default:break t}case 1:switch(m|0){case 0:return z=p|0?(p|0)==1?5:7:4,z|0;case 1:{if(!p)p=6;else break t;return p|0}default:break t}default:}while(!1);return z=7,z|0}function za(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=nn(+((m*3|0)-y|0)/7)|0,g[p>>2]=S,m=nn(+((y<<1)+m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,C=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=C,g[L>>2]=0,m=C,C=k,y=0):C=S,S=(m|0)<(C|0)?m:C,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=C-S,g[z>>2]=m-S,g[L>>2]=y-S)}function ao(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;L=p+8|0,y=g[L>>2]|0,m=(g[p>>2]|0)-y|0,z=p+4|0,y=(g[z>>2]|0)-y|0,S=nn(+((m<<1)+y|0)/7)|0,g[p>>2]=S,m=nn(+((y*3|0)-m|0)/7)|0,g[z>>2]=m,g[L>>2]=0,y=m-S|0,(S|0)<0?(k=0-S|0,g[z>>2]=y,g[L>>2]=k,g[p>>2]=0,m=y,S=0,y=k):y=0,(m|0)<0&&(S=S-m|0,g[p>>2]=S,y=y-m|0,g[L>>2]=y,g[z>>2]=0,m=0),k=S-y|0,C=m-y|0,(y|0)<0?(g[p>>2]=k,g[z>>2]=C,g[L>>2]=0,m=C,C=k,y=0):C=S,S=(m|0)<(C|0)?m:C,S=(y|0)<(S|0)?y:S,!((S|0)<=0)&&(g[p>>2]=C-S,g[z>>2]=m-S,g[L>>2]=y-S)}function wf(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,C=y+(m*3|0)|0,g[p>>2]=C,y=S+(y*3|0)|0,g[L>>2]=y,m=(S*3|0)+m|0,g[z>>2]=m,S=y-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=C,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,C=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=C,g[z>>2]=0,S=k,m=0):C=y,y=(C|0)<(S|0)?C:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=C-y,g[z>>2]=m-y)}function Es(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;C=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m*3|0)+C|0,C=y+(C*3|0)|0,g[p>>2]=C,g[L>>2]=S,m=(y*3|0)+m|0,g[z>>2]=m,y=S-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,C=0):y=S,(y|0)<0&&(C=C-y|0,g[p>>2]=C,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=C-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,C=k,m=0):S=y,y=(S|0)<(C|0)?S:C,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=C-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Sf(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0;(m+-1|0)>>>0>=6||(C=(g[15472+(m*12|0)>>2]|0)+(g[p>>2]|0)|0,g[p>>2]=C,z=p+4|0,S=(g[15472+(m*12|0)+4>>2]|0)+(g[z>>2]|0)|0,g[z>>2]=S,L=p+8|0,m=(g[15472+(m*12|0)+8>>2]|0)+(g[L>>2]|0)|0,g[L>>2]=m,y=S-C|0,(C|0)<0?(m=m-C|0,g[z>>2]=y,g[L>>2]=m,g[p>>2]=0,S=0):(y=S,S=C),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[L>>2]=m,g[z>>2]=0,y=0),k=S-m|0,C=y-m|0,(m|0)<0?(g[p>>2]=k,g[z>>2]=C,g[L>>2]=0,S=k,m=0):C=y,y=(C|0)<(S|0)?C:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[z>>2]=C-y,g[L>>2]=m-y))}function tA(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;C=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=m+C|0,C=y+C|0,g[p>>2]=C,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=C),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,C=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=C,g[z>>2]=0,S=k,m=0):C=y,y=(C|0)<(S|0)?C:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=C-y,g[z>>2]=m-y)}function eA(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,S=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,C=S+m|0,g[p>>2]=C,S=y+S|0,g[L>>2]=S,m=y+m|0,g[z>>2]=m,y=S-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,S=0):(y=S,S=C),(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,C=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=C,g[z>>2]=0,S=k,m=0):C=y,y=(C|0)<(S|0)?C:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=C-y,g[z>>2]=m-y)}function al(p){switch(p=p|0,p|0){case 1:{p=5;break}case 5:{p=4;break}case 4:{p=6;break}case 6:{p=2;break}case 2:{p=3;break}case 3:{p=1;break}default:}return p|0}function kc(p){switch(p=p|0,p|0){case 1:{p=3;break}case 3:{p=2;break}case 2:{p=6;break}case 6:{p=4;break}case 4:{p=5;break}case 5:{p=1;break}default:}return p|0}function _u(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;m=g[p>>2]|0,L=p+4|0,y=g[L>>2]|0,z=p+8|0,S=g[z>>2]|0,C=y+(m<<1)|0,g[p>>2]=C,y=S+(y<<1)|0,g[L>>2]=y,m=(S<<1)+m|0,g[z>>2]=m,S=y-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=S,g[z>>2]=m,g[p>>2]=0,y=S,S=0):S=C,(y|0)<0&&(S=S-y|0,g[p>>2]=S,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=S-m|0,C=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=C,g[z>>2]=0,S=k,m=0):C=y,y=(C|0)<(S|0)?C:S,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=S-y,g[L>>2]=C-y,g[z>>2]=m-y)}function zl(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;C=g[p>>2]|0,L=p+4|0,m=g[L>>2]|0,z=p+8|0,y=g[z>>2]|0,S=(m<<1)+C|0,C=y+(C<<1)|0,g[p>>2]=C,g[L>>2]=S,m=(y<<1)+m|0,g[z>>2]=m,y=S-C|0,(C|0)<0?(m=m-C|0,g[L>>2]=y,g[z>>2]=m,g[p>>2]=0,C=0):y=S,(y|0)<0&&(C=C-y|0,g[p>>2]=C,m=m-y|0,g[z>>2]=m,g[L>>2]=0,y=0),k=C-m|0,S=y-m|0,(m|0)<0?(g[p>>2]=k,g[L>>2]=S,g[z>>2]=0,C=k,m=0):S=y,y=(S|0)<(C|0)?S:C,y=(m|0)<(y|0)?m:y,!((y|0)<=0)&&(g[p>>2]=C-y,g[L>>2]=S-y,g[z>>2]=m-y)}function Fe(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0;return L=(g[p>>2]|0)-(g[m>>2]|0)|0,z=(L|0)<0,S=(g[p+4>>2]|0)-(g[m+4>>2]|0)-(z?L:0)|0,k=(S|0)<0,C=(z?0-L|0:0)+(g[p+8>>2]|0)-(g[m+8>>2]|0)+(k?0-S|0:0)|0,p=(C|0)<0,m=p?0:C,y=(k?0:S)-(p?C:0)|0,C=(z?0:L)-(k?S:0)-(p?C:0)|0,p=(y|0)<(C|0)?y:C,p=(m|0)<(p|0)?m:p,S=(p|0)>0,m=m-(S?p:0)|0,y=y-(S?p:0)|0,p=C-(S?p:0)|0,p=(p|0)>-1?p:0-p|0,y=(y|0)>-1?y:0-y|0,m=(m|0)>-1?m:0-m|0,m=(y|0)>(m|0)?y:m,((p|0)>(m|0)?p:m)|0}function Xm(p,m){p=p|0,m=m|0;var y=0;y=g[p+8>>2]|0,g[m>>2]=(g[p>>2]|0)-y,g[m+4>>2]=(g[p+4>>2]|0)-y}function Tf(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0;S=g[p>>2]|0,g[m>>2]=S,p=g[p+4>>2]|0,L=m+4|0,g[L>>2]=p,z=m+8|0,g[z>>2]=0,y=p-S|0,(S|0)<0?(p=0-S|0,g[L>>2]=y,g[z>>2]=p,g[m>>2]=0,S=0):(y=p,p=0),(y|0)<0&&(S=S-y|0,g[m>>2]=S,p=p-y|0,g[z>>2]=p,g[L>>2]=0,y=0),k=S-p|0,C=y-p|0,(p|0)<0?(g[m>>2]=k,g[L>>2]=C,g[z>>2]=0,y=C,C=k,p=0):C=S,S=(y|0)<(C|0)?y:C,S=(p|0)<(S|0)?p:S,!((S|0)<=0)&&(g[m>>2]=C-S,g[L>>2]=y-S,g[z>>2]=p-S)}function Mf(p){p=p|0;var m=0,y=0,S=0,C=0;m=p+8|0,C=g[m>>2]|0,y=C-(g[p>>2]|0)|0,g[p>>2]=y,S=p+4|0,p=(g[S>>2]|0)-C|0,g[S>>2]=p,g[m>>2]=0-(p+y)}function rA(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;y=g[p>>2]|0,m=0-y|0,g[p>>2]=m,L=p+8|0,g[L>>2]=0,z=p+4|0,S=g[z>>2]|0,C=S+y|0,(y|0)>0?(g[z>>2]=C,g[L>>2]=y,g[p>>2]=0,m=0,S=C):y=0,(S|0)<0?(k=m-S|0,g[p>>2]=k,y=y-S|0,g[L>>2]=y,g[z>>2]=0,C=k-y|0,m=0-y|0,(y|0)<0?(g[p>>2]=C,g[z>>2]=m,g[L>>2]=0,S=m,y=0):(S=0,C=k)):C=m,m=(S|0)<(C|0)?S:C,m=(y|0)<(m|0)?y:m,!((m|0)<=0)&&(g[p>>2]=C-m,g[z>>2]=S-m,g[L>>2]=y-m)}function Ce(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;S=wt,wt=wt+16|0,C=S,iA(p,m,y,C),o_(C,y+4|0),wt=S}function iA(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0;if(H=wt,wt=wt+32|0,k=H,So(p,k),g[y>>2]=0,C=+Dr(15888,k),L=+Dr(15912,k),L>2]=1,C=L),L=+Dr(15936,k),L>2]=2,C=L),L=+Dr(15960,k),L>2]=3,C=L),L=+Dr(15984,k),L>2]=4,C=L),L=+Dr(16008,k),L>2]=5,C=L),L=+Dr(16032,k),L>2]=6,C=L),L=+Dr(16056,k),L>2]=7,C=L),L=+Dr(16080,k),L>2]=8,C=L),L=+Dr(16104,k),L>2]=9,C=L),L=+Dr(16128,k),L>2]=10,C=L),L=+Dr(16152,k),L>2]=11,C=L),L=+Dr(16176,k),L>2]=12,C=L),L=+Dr(16200,k),L>2]=13,C=L),L=+Dr(16224,k),L>2]=14,C=L),L=+Dr(16248,k),L>2]=15,C=L),L=+Dr(16272,k),L>2]=16,C=L),L=+Dr(16296,k),L>2]=17,C=L),L=+Dr(16320,k),L>2]=18,C=L),L=+Dr(16344,k),L>2]=19,C=L),L=+_f(+(1-C*.5)),L<1e-16){g[S>>2]=0,g[S+4>>2]=0,g[S+8>>2]=0,g[S+12>>2]=0,wt=H;return}if(y=g[y>>2]|0,C=+bt[16368+(y*24|0)>>3],C=+ki(C-+ki(+Jm(15568+(y<<4)|0,p))),Ps(m)|0?z=+ki(C+-.3334731722518321):z=C,C=+Ic(+L)/.381966011250105,(m|0)>0){k=0;do C=C*2.6457513110645907,k=k+1|0;while((k|0)!=(m|0))}L=+Kr(+z)*C,bt[S>>3]=L,z=+Yr(+z)*C,bt[S+8>>3]=z,wt=H}function Ef(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0;if(k=+Fr(p),k<1e-16){m=15568+(m<<4)|0,g[C>>2]=g[m>>2],g[C+4>>2]=g[m+4>>2],g[C+8>>2]=g[m+8>>2],g[C+12>>2]=g[m+12>>2];return}if(L=+Yo(+ +bt[p+8>>3],+ +bt[p>>3]),(y|0)>0){p=0;do k=k/2.6457513110645907,p=p+1|0;while((p|0)!=(y|0))}S?(k=k/3,y=(Ps(y)|0)==0,k=+Zp(+((y?k:k/2.6457513110645907)*.381966011250105))):(k=+Zp(+(k*.381966011250105)),Ps(y)|0&&(L=+ki(L+.3334731722518321))),c_(15568+(m<<4)|0,+ki(+bt[16368+(m*24|0)>>3]-L),k,C)}function a_(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;S=wt,wt=wt+16|0,C=S,ol(p+4|0,C),Ef(C,g[p>>2]|0,m,0,y),wt=S}function Cd(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0,Qr=0,Ri=0,Ei=0,Vi=0,pi=0,fi=0,ln=0,jr=0;if(fi=wt,wt=wt+272|0,k=fi+256|0,Kt=fi+240|0,Ei=fi,Vi=fi+224|0,pi=fi+208|0,ye=fi+176|0,Ft=fi+160|0,qe=fi+192|0,Ye=fi+144|0,Oe=fi+128|0,Ve=fi+112|0,Qr=fi+96|0,Ri=fi+80|0,g[k>>2]=m,g[Kt>>2]=g[p>>2],g[Kt+4>>2]=g[p+4>>2],g[Kt+8>>2]=g[p+8>>2],g[Kt+12>>2]=g[p+12>>2],Ld(Kt,k,Ei),g[C>>2]=0,Kt=S+y+((S|0)==5&1)|0,(Kt|0)<=(y|0)){wt=fi;return}H=g[k>>2]|0,et=Vi+4|0,st=ye+4|0,Et=y+5|0,Bt=16848+(H<<2)|0,Gt=16928+(H<<2)|0,Qt=Oe+8|0,se=Ve+8|0,Se=Qr+8|0,Ge=pi+4|0,z=y;t:for(;;){L=Ei+(((z|0)%5|0)<<4)|0,g[pi>>2]=g[L>>2],g[pi+4>>2]=g[L+4>>2],g[pi+8>>2]=g[L+8>>2],g[pi+12>>2]=g[L+12>>2];do;while((yu(pi,H,0,1)|0)==2);if((z|0)>(y|0)&(Ps(m)|0)!=0){if(g[ye>>2]=g[pi>>2],g[ye+4>>2]=g[pi+4>>2],g[ye+8>>2]=g[pi+8>>2],g[ye+12>>2]=g[pi+12>>2],ol(et,Ft),S=g[ye>>2]|0,k=g[17008+(S*80|0)+(g[Vi>>2]<<2)>>2]|0,g[ye>>2]=g[18608+(S*80|0)+(k*20|0)>>2],L=g[18608+(S*80|0)+(k*20|0)+16>>2]|0,(L|0)>0){p=0;do tA(st),p=p+1|0;while((p|0)<(L|0))}switch(L=18608+(S*80|0)+(k*20|0)+4|0,g[qe>>2]=g[L>>2],g[qe+4>>2]=g[L+4>>2],g[qe+8>>2]=g[L+8>>2],gu(qe,(g[Bt>>2]|0)*3|0),Ui(st,qe,st),is(st),ol(st,Ye),ln=+(g[Gt>>2]|0),bt[Oe>>3]=ln*3,bt[Qt>>3]=0,jr=ln*-1.5,bt[Ve>>3]=jr,bt[se>>3]=ln*2.598076211353316,bt[Qr>>3]=jr,bt[Se>>3]=ln*-2.598076211353316,g[17008+((g[ye>>2]|0)*80|0)+(g[pi>>2]<<2)>>2]|0){case 1:{p=Ve,S=Oe;break}case 3:{p=Qr,S=Ve;break}case 2:{p=Oe,S=Qr;break}default:{p=12;break t}}$r(Ft,Ye,S,p,Ri),Ef(Ri,g[ye>>2]|0,H,1,C+8+(g[C>>2]<<4)|0),g[C>>2]=(g[C>>2]|0)+1}if((z|0)<(Et|0)&&(ol(Ge,ye),Ef(ye,g[pi>>2]|0,H,1,C+8+(g[C>>2]<<4)|0),g[C>>2]=(g[C>>2]|0)+1),g[Vi>>2]=g[pi>>2],g[Vi+4>>2]=g[pi+4>>2],g[Vi+8>>2]=g[pi+8>>2],g[Vi+12>>2]=g[pi+12>>2],z=z+1|0,(z|0)>=(Kt|0)){p=3;break}}if((p|0)==3){wt=fi;return}else(p|0)==12&&Li(22474,22521,581,22531)}function Ld(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+128|0,S=H+64|0,C=H,k=S,L=20208,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=C,L=20272,z=k+60|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Ps(g[m>>2]|0)|0)==0,S=z?S:C,C=p+4|0,_u(C),zl(C),Ps(g[m>>2]|0)|0&&(Es(C),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,Ui(C,S,m),is(m),g[y+16>>2]=g[p>>2],m=y+20|0,Ui(C,S+12|0,m),is(m),g[y+32>>2]=g[p>>2],m=y+36|0,Ui(C,S+24|0,m),is(m),g[y+48>>2]=g[p>>2],m=y+52|0,Ui(C,S+36|0,m),is(m),g[y+64>>2]=g[p>>2],y=y+68|0,Ui(C,S+48|0,y),is(y),wt=H}function yu(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0;if(Qt=wt,wt=wt+32|0,Bt=Qt+12|0,z=Qt,Gt=p+4|0,Et=g[16928+(m<<2)>>2]|0,st=(S|0)!=0,Et=st?Et*3|0:Et,C=g[Gt>>2]|0,et=p+8|0,L=g[et>>2]|0,st){if(k=p+12|0,S=g[k>>2]|0,C=L+C+S|0,(C|0)==(Et|0))return Gt=1,wt=Qt,Gt|0;H=k}else H=p+12|0,S=g[H>>2]|0,C=L+C+S|0;if((C|0)<=(Et|0))return Gt=0,wt=Qt,Gt|0;do if((S|0)>0){if(S=g[p>>2]|0,(L|0)>0){k=18608+(S*80|0)+60|0,S=p;break}S=18608+(S*80|0)+40|0,y?(s_(Bt,Et,0,0),mu(Gt,Bt,z),eA(z),Ui(z,Bt,Gt),k=S,S=p):(k=S,S=p)}else k=18608+((g[p>>2]|0)*80|0)+20|0,S=p;while(!1);if(g[S>>2]=g[k>>2],C=k+16|0,(g[C>>2]|0)>0){S=0;do tA(Gt),S=S+1|0;while((S|0)<(g[C>>2]|0))}return p=k+4|0,g[Bt>>2]=g[p>>2],g[Bt+4>>2]=g[p+4>>2],g[Bt+8>>2]=g[p+8>>2],m=g[16848+(m<<2)>>2]|0,gu(Bt,st?m*3|0:m),Ui(Gt,Bt,Gt),is(Gt),st?S=((g[et>>2]|0)+(g[Gt>>2]|0)+(g[H>>2]|0)|0)==(Et|0)?1:2:S=2,Gt=S,wt=Qt,Gt|0}function Tx(p,m){p=p|0,m=m|0;var y=0;do y=yu(p,m,0,1)|0;while((y|0)==2);return y|0}function Km(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0,Qr=0,Ri=0,Ei=0;if(Qr=wt,wt=wt+240|0,k=Qr+224|0,qe=Qr+208|0,Ye=Qr,Oe=Qr+192|0,Ve=Qr+176|0,Se=Qr+160|0,Ge=Qr+144|0,Kt=Qr+128|0,ye=Qr+112|0,Ft=Qr+96|0,g[k>>2]=m,g[qe>>2]=g[p>>2],g[qe+4>>2]=g[p+4>>2],g[qe+8>>2]=g[p+8>>2],g[qe+12>>2]=g[p+12>>2],vu(qe,k,Ye),g[C>>2]=0,se=S+y+((S|0)==6&1)|0,(se|0)<=(y|0)){wt=Qr;return}H=g[k>>2]|0,et=y+6|0,st=16928+(H<<2)|0,Et=Ge+8|0,Bt=Kt+8|0,Gt=ye+8|0,Qt=Oe+4|0,L=0,z=y,S=-1;t:for(;;){if(k=(z|0)%6|0,p=Ye+(k<<4)|0,g[Oe>>2]=g[p>>2],g[Oe+4>>2]=g[p+4>>2],g[Oe+8>>2]=g[p+8>>2],g[Oe+12>>2]=g[p+12>>2],p=L,L=yu(Oe,H,0,1)|0,(z|0)>(y|0)&(Ps(m)|0)!=0&&(p|0)!=1&&(g[Oe>>2]|0)!=(S|0)){switch(ol(Ye+(((k+5|0)%6|0)<<4)+4|0,Ve),ol(Ye+(k<<4)+4|0,Se),Ri=+(g[st>>2]|0),bt[Ge>>3]=Ri*3,bt[Et>>3]=0,Ei=Ri*-1.5,bt[Kt>>3]=Ei,bt[Bt>>3]=Ri*2.598076211353316,bt[ye>>3]=Ei,bt[Gt>>3]=Ri*-2.598076211353316,k=g[qe>>2]|0,g[17008+(k*80|0)+(((S|0)==(k|0)?g[Oe>>2]|0:S)<<2)>>2]|0){case 1:{p=Kt,S=Ge;break}case 3:{p=ye,S=Kt;break}case 2:{p=Ge,S=ye;break}default:{p=8;break t}}$r(Ve,Se,S,p,Ft),!(On(Ve,Ft)|0)&&!(On(Se,Ft)|0)&&(Ef(Ft,g[qe>>2]|0,H,1,C+8+(g[C>>2]<<4)|0),g[C>>2]=(g[C>>2]|0)+1)}if((z|0)<(et|0)&&(ol(Qt,Ve),Ef(Ve,g[Oe>>2]|0,H,1,C+8+(g[C>>2]<<4)|0),g[C>>2]=(g[C>>2]|0)+1),z=z+1|0,(z|0)>=(se|0)){p=3;break}else S=g[Oe>>2]|0}if((p|0)==3){wt=Qr;return}else(p|0)==8&&Li(22557,22521,746,22602)}function vu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0;H=wt,wt=wt+160|0,S=H+80|0,C=H,k=S,L=20336,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));k=C,L=20416,z=k+72|0;do g[k>>2]=g[L>>2],k=k+4|0,L=L+4|0;while((k|0)<(z|0));z=(Ps(g[m>>2]|0)|0)==0,S=z?S:C,C=p+4|0,_u(C),zl(C),Ps(g[m>>2]|0)|0&&(Es(C),g[m>>2]=(g[m>>2]|0)+1),g[y>>2]=g[p>>2],m=y+4|0,Ui(C,S,m),is(m),g[y+16>>2]=g[p>>2],m=y+20|0,Ui(C,S+12|0,m),is(m),g[y+32>>2]=g[p>>2],m=y+36|0,Ui(C,S+24|0,m),is(m),g[y+48>>2]=g[p>>2],m=y+52|0,Ui(C,S+36|0,m),is(m),g[y+64>>2]=g[p>>2],m=y+68|0,Ui(C,S+48|0,m),is(m),g[y+80>>2]=g[p>>2],y=y+84|0,Ui(C,S+60|0,y),is(y),wt=H}function ki(p){p=+p;var m=0;return m=p<0?p+6.283185307179586:p,+(p>=6.283185307179586?m+-6.283185307179586:m)}function Nl(p,m){return p=p|0,m=m|0,+Zr(+(+bt[p>>3]-+bt[m>>3]))<17453292519943298e-27?(m=+Zr(+(+bt[p+8>>3]-+bt[m+8>>3]))<17453292519943298e-27,m|0):(m=0,m|0)}function nA(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0;return C=+bt[m>>3],S=+bt[p>>3],k=+Yr(+((C-S)*.5)),y=+Yr(+((+bt[m+8>>3]-+bt[p+8>>3])*.5)),y=k*k+y*(+Kr(+C)*+Kr(+S)*y),+(+Yo(+ +fn(+y),+ +fn(+(1-y)))*2)}function Pf(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0;return C=+bt[m>>3],S=+bt[p>>3],k=+Yr(+((C-S)*.5)),y=+Yr(+((+bt[m+8>>3]-+bt[p+8>>3])*.5)),y=k*k+y*(+Kr(+C)*+Kr(+S)*y),+(+Yo(+ +fn(+y),+ +fn(+(1-y)))*2*6371.007180918475)}function l_(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0;return C=+bt[m>>3],S=+bt[p>>3],k=+Yr(+((C-S)*.5)),y=+Yr(+((+bt[m+8>>3]-+bt[p+8>>3])*.5)),y=k*k+y*(+Kr(+C)*+Kr(+S)*y),+(+Yo(+ +fn(+y),+ +fn(+(1-y)))*2*6371.007180918475*1e3)}function Jm(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;return k=+bt[m>>3],S=+Kr(+k),C=+bt[m+8>>3]-+bt[p+8>>3],L=S*+Yr(+C),y=+bt[p>>3],+ +Yo(+L,+(+Yr(+k)*+Kr(+y)-+Kr(+C)*(S*+Yr(+y))))}function c_(p,m,y,S){p=p|0,m=+m,y=+y,S=S|0;var C=0,k=0,L=0,z=0;if(y<1e-16){g[S>>2]=g[p>>2],g[S+4>>2]=g[p+4>>2],g[S+8>>2]=g[p+8>>2],g[S+12>>2]=g[p+12>>2];return}k=m<0?m+6.283185307179586:m,k=m>=6.283185307179586?k+-6.283185307179586:k;do if(k<1e-16)m=+bt[p>>3]+y,bt[S>>3]=m,C=S;else{if(C=+Zr(+(k+-3.141592653589793))<1e-16,m=+bt[p>>3],C){m=m-y,bt[S>>3]=m,C=S;break}if(L=+Kr(+y),y=+Yr(+y),m=L*+Yr(+m)+ +Kr(+k)*(y*+Kr(+m)),m=m>1?1:m,m=+yf(+(m<-1?-1:m)),bt[S>>3]=m,+Zr(+(m+-1.5707963267948966))<1e-16){bt[S>>3]=1.5707963267948966,bt[S+8>>3]=0;return}if(+Zr(+(m+1.5707963267948966))<1e-16){bt[S>>3]=-1.5707963267948966,bt[S+8>>3]=0;return}if(z=+Kr(+m),k=y*+Yr(+k)/z,y=+bt[p>>3],m=(L-+Yr(+m)*+Yr(+y))/+Kr(+y)/z,L=k>1?1:k,m=m>1?1:m,m=+bt[p+8>>3]+ +Yo(+(L<-1?-1:L),+(m<-1?-1:m)),m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);bt[S+8>>3]=m;return}while(!1);if(+Zr(+(m+-1.5707963267948966))<1e-16){bt[C>>3]=1.5707963267948966,bt[S+8>>3]=0;return}if(+Zr(+(m+1.5707963267948966))<1e-16){bt[C>>3]=-1.5707963267948966,bt[S+8>>3]=0;return}if(m=+bt[p+8>>3],m>3.141592653589793)do m=m+-6.283185307179586;while(m>3.141592653589793);if(m<-3.141592653589793)do m=m+6.283185307179586;while(m<-3.141592653589793);bt[S+8>>3]=m}function ll(p){return p=p|0,+ +bt[20496+(p<<3)>>3]}function kd(p){return p=p|0,+ +bt[20624+(p<<3)>>3]}function Qe(p){return p=p|0,+ +bt[20752+(p<<3)>>3]}function fr(p){return p=p|0,+ +bt[20880+(p<<3)>>3]}function If(p){p=p|0;var m=0;return m=21008+(p<<3)|0,p=g[m>>2]|0,Sr(g[m+4>>2]|0),p|0}function xu(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0;return Bt=+bt[m>>3],st=+bt[p>>3],H=+Yr(+((Bt-st)*.5)),k=+bt[m+8>>3],et=+bt[p+8>>3],L=+Yr(+((k-et)*.5)),z=+Kr(+st),Et=+Kr(+Bt),L=H*H+L*(Et*z*L),L=+Yo(+ +fn(+L),+ +fn(+(1-L)))*2,H=+bt[y>>3],Bt=+Yr(+((H-Bt)*.5)),S=+bt[y+8>>3],k=+Yr(+((S-k)*.5)),C=+Kr(+H),k=Bt*Bt+k*(Et*C*k),k=+Yo(+ +fn(+k),+ +fn(+(1-k)))*2,H=+Yr(+((st-H)*.5)),S=+Yr(+((et-S)*.5)),S=H*H+S*(z*C*S),S=+Yo(+ +fn(+S),+ +fn(+(1-S)))*2,C=(L+k+S)*.5,+(+Zp(+ +fn(+(+Ic(+(C*.5))*+Ic(+((C-L)*.5))*+Ic(+((C-k)*.5))*+Ic(+((C-S)*.5)))))*4)}function t0(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,C=k,Dc(p,m,S),Oc(p,m,C),m=g[C>>2]|0,(m|0)<=0)return y=0,wt=k,+y;if(y=+xu(C+8|0,C+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)==1)return wt=k,+y;p=1;do L=p,p=p+1|0,y=y+ +xu(C+8+(L<<4)|0,C+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0));return wt=k,+y}function wo(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,C=k,Dc(p,m,S),Oc(p,m,C),m=g[C>>2]|0,(m|0)>0){if(y=+xu(C+8|0,C+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +xu(C+8+(L<<4)|0,C+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475)}function e0(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;if(k=wt,wt=wt+192|0,S=k+168|0,C=k,Dc(p,m,S),Oc(p,m,C),m=g[C>>2]|0,(m|0)>0){if(y=+xu(C+8|0,C+8+(((m|0)!=1&1)<<4)|0,S)+0,(m|0)!=1){p=1;do L=p,p=p+1|0,y=y+ +xu(C+8+(L<<4)|0,C+8+(((p|0)%(m|0)|0)<<4)|0,S);while((p|0)<(m|0))}}else y=0;return wt=k,+(y*6371.007180918475*6371.007180918475*1e3*1e3)}function cl(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0;if(L=wt,wt=wt+176|0,k=L,W(p,m,k),p=g[k>>2]|0,(p|0)<=1)return C=0,wt=L,+C;m=p+-1|0,p=0,y=0,S=+bt[k+8>>3],C=+bt[k+16>>3];do p=p+1|0,H=S,S=+bt[k+8+(p<<4)>>3],et=+Yr(+((S-H)*.5)),z=C,C=+bt[k+8+(p<<4)+8>>3],z=+Yr(+((C-z)*.5)),z=et*et+z*(+Kr(+S)*+Kr(+H)*z),y=y+ +Yo(+ +fn(+z),+ +fn(+(1-z)))*2;while((p|0)<(m|0));return wt=L,+y}function Mx(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0;if(L=wt,wt=wt+176|0,k=L,W(p,m,k),p=g[k>>2]|0,(p|0)<=1)return C=0,wt=L,+C;m=p+-1|0,p=0,y=0,S=+bt[k+8>>3],C=+bt[k+16>>3];do p=p+1|0,H=S,S=+bt[k+8+(p<<4)>>3],et=+Yr(+((S-H)*.5)),z=C,C=+bt[k+8+(p<<4)+8>>3],z=+Yr(+((C-z)*.5)),z=et*et+z*(+Kr(+H)*+Kr(+S)*z),y=y+ +Yo(+ +fn(+z),+ +fn(+(1-z)))*2;while((p|0)!=(m|0));return et=y*6371.007180918475,wt=L,+et}function Rd(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0;if(L=wt,wt=wt+176|0,k=L,W(p,m,k),p=g[k>>2]|0,(p|0)<=1)return C=0,wt=L,+C;m=p+-1|0,p=0,y=0,S=+bt[k+8>>3],C=+bt[k+16>>3];do p=p+1|0,H=S,S=+bt[k+8+(p<<4)>>3],et=+Yr(+((S-H)*.5)),z=C,C=+bt[k+8+(p<<4)+8>>3],z=+Yr(+((C-z)*.5)),z=et*et+z*(+Kr(+H)*+Kr(+S)*z),y=y+ +Yo(+ +fn(+z),+ +fn(+(1-z)))*2;while((p|0)!=(m|0));return et=y*6371.007180918475*1e3,wt=L,+et}function Tn(p,m){return p=p|0,m=m|0,m=ve(p|0,m|0,52)|0,Pt()|0,m&15|0}function Dn(p,m){return p=p|0,m=m|0,m=ve(p|0,m|0,45)|0,Pt()|0,m&127|0}function r0(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0;if(!(!0&(m&-16777216|0)==134217728)||(L=ve(p|0,m|0,45)|0,Pt()|0,L=L&127,L>>>0>121))return m=0,m|0;y=ve(p|0,m|0,52)|0,Pt()|0,y=y&15;do if(y|0){for(C=1,S=0;;){if(k=ve(p|0,m|0,(15-C|0)*3|0)|0,Pt()|0,k=k&7,(k|0)!=0&(S^1))if((k|0)==1&(Mi(L)|0)!=0){z=0,S=13;break}else S=1;if((k|0)==7){z=0,S=13;break}if(C>>>0>>0)C=C+1|0;else{S=9;break}}if((S|0)==9){if((y|0)==15)z=1;else break;return z|0}else if((S|0)==13)return z|0}while(!1);for(;;){if(z=ve(p|0,m|0,(14-y|0)*3|0)|0,Pt()|0,!((z&7|0)==7&!0)){z=0,S=13;break}if(y>>>0<14)y=y+1|0;else{z=1,S=13;break}}return(S|0)==13?z|0:0}function Na(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,(S|0)>=(y|0)){if((S|0)!=(y|0))if(y>>>0<=15){if(C=De(y|0,0,52)|0,p=C|p,m=Pt()|0|m&-15728641,(S|0)>(y|0))do C=De(7,0,(14-y|0)*3|0)|0,y=y+1|0,p=C|p,m=Pt()|0|m;while((y|0)<(S|0))}else m=0,p=0}else m=0,p=0;return Sr(m|0),p|0}function sA(p,m,y){return p=p|0,m=m|0,y=y|0,p=ve(p|0,m|0,52)|0,Pt()|0,p=p&15,(y|0)<16&(p|0)<=(y|0)?(y=Ht(7,y-p|0)|0,y|0):(y=0,y|0)}function lo(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0;if(L=ve(p|0,m|0,52)|0,Pt()|0,L=L&15,!!((y|0)<16&(L|0)<=(y|0))){if((L|0)==(y|0)){y=S,g[y>>2]=p,g[y+4>>2]=m;return}if(H=Ht(7,y-L|0)|0,et=(H|0)/7|0,z=ve(p|0,m|0,45)|0,Pt()|0,!(Mi(z&127)|0))k=0;else{t:do if(!L)C=0;else for(k=1;;){if(C=ve(p|0,m|0,(15-k|0)*3|0)|0,Pt()|0,C=C&7,C|0)break t;if(k>>>0>>0)k=k+1|0;else{C=0;break}}while(!1);k=(C|0)==0}if(st=De(L+1|0,0,52)|0,C=Pt()|0|m&-15728641,z=(14-L|0)*3|0,m=De(7,0,z|0)|0,m=(st|p)&~m,L=C&~(Pt()|0),lo(m,L,y,S),C=S+(et<<3)|0,!k){st=De(1,0,z|0)|0,lo(st|m,Pt()|0|L,y,C),st=C+(et<<3)|0,H=De(2,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),st=st+(et<<3)|0,H=De(3,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),st=st+(et<<3)|0,H=De(4,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),st=st+(et<<3)|0,H=De(5,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),H=De(6,0,z|0)|0,lo(H|m,Pt()|0|L,y,st+(et<<3)|0);return}k=C+(et<<3)|0,(H|0)>6&&(H=C+8|0,st=(k>>>0>H>>>0?k:H)+-1+(0-C)|0,fa(C|0,0,st+8&-8|0)|0,C=H+(st>>>3<<3)|0),st=De(2,0,z|0)|0,lo(st|m,Pt()|0|L,y,C),st=C+(et<<3)|0,H=De(3,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),st=st+(et<<3)|0,H=De(4,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),st=st+(et<<3)|0,H=De(5,0,z|0)|0,lo(H|m,Pt()|0|L,y,st),H=De(6,0,z|0)|0,lo(H|m,Pt()|0|L,y,st+(et<<3)|0)}}function qn(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;if(C=ve(p|0,m|0,45)|0,Pt()|0,!(Mi(C&127)|0))return C=0,C|0;C=ve(p|0,m|0,52)|0,Pt()|0,C=C&15;t:do if(!C)y=0;else for(S=1;;){if(y=ve(p|0,m|0,(15-S|0)*3|0)|0,Pt()|0,y=y&7,y|0)break t;if(S>>>0>>0)S=S+1|0;else{y=0;break}}while(!1);return C=(y|0)==0&1,C|0}function i0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,(y|0)<16&(S|0)<=(y|0)){if((S|0)!=(y|0)&&(C=De(y|0,0,52)|0,p=C|p,m=Pt()|0|m&-15728641,(S|0)<(y|0)))do C=De(7,0,(14-S|0)*3|0)|0,S=S+1|0,p=p&~C,m=m&~(Pt()|0);while((S|0)<(y|0))}else m=0,p=0;return Sr(m|0),p|0}function Cf(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0;if(!y)return Oe=0,Oe|0;if(C=p,S=g[C>>2]|0,C=g[C+4>>2]|0,!0&(C&15728640|0)==0){if((y|0)<=0||(Oe=m,g[Oe>>2]=S,g[Oe+4>>2]=C,(y|0)==1))return Oe=0,Oe|0;S=1;do qe=p+(S<<3)|0,Ye=g[qe+4>>2]|0,Oe=m+(S<<3)|0,g[Oe>>2]=g[qe>>2],g[Oe+4>>2]=Ye,S=S+1|0;while((S|0)!=(y|0));return S=0,S|0}if(qe=y<<3,Ye=dn(qe)|0,!Ye)return Oe=-3,Oe|0;if(ph(Ye|0,p|0,qe|0)|0,Ft=Bi(y,8)|0,!Ft)return Xe(Ye),Oe=-3,Oe|0;S=y;t:for(;;){L=Ye,st=g[L>>2]|0,L=g[L+4>>2]|0,Kt=ve(st|0,L|0,52)|0,Pt()|0,Kt=Kt&15,ye=Kt+-1|0,Ge=(S|0)>0;e:do if(Ge){if(Se=((S|0)<0)<<31>>31,Qt=De(ye|0,0,52)|0,se=Pt()|0,ye>>>0>15)for(C=0,p=st,y=L;;){if(!((p|0)==0&(y|0)==0)){if(k=ve(p|0,y|0,52)|0,Pt()|0,k=k&15,z=(k|0)<(ye|0),k=(k|0)==(ye|0),et=z?0:k?p:0,p=z?0:k?y:0,y=Ul(et|0,p|0,S|0,Se|0)|0,Pt()|0,k=Ft+(y<<3)|0,z=k,H=g[z>>2]|0,z=g[z+4>>2]|0,(H|0)==0&(z|0)==0)y=et;else for(Qt=0,Gt=y,Bt=z,y=et;;){if((Qt|0)>(S|0)){Oe=41;break t}if((H|0)==(y|0)&(Bt&-117440513|0)==(p|0)){et=ve(H|0,Bt|0,56)|0,Pt()|0,et=et&7,Et=et+1|0,se=ve(H|0,Bt|0,45)|0,Pt()|0;r:do if(!(Mi(se&127)|0))z=7;else{if(H=ve(H|0,Bt|0,52)|0,Pt()|0,H=H&15,!H){z=6;break}for(z=1;;){if(se=De(7,0,(15-z|0)*3|0)|0,!((se&y|0)==0&((Pt()|0)&p|0)==0)){z=7;break r}if(z>>>0>>0)z=z+1|0;else{z=6;break}}}while(!1);if((et+2|0)>>>0>z>>>0){Oe=51;break t}se=De(Et|0,0,56)|0,p=Pt()|0|p&-117440513,z=k,g[z>>2]=0,g[z+4>>2]=0,z=Gt,y=se|y}else z=(Gt+1|0)%(S|0)|0;if(k=Ft+(z<<3)|0,Bt=k,H=g[Bt>>2]|0,Bt=g[Bt+4>>2]|0,(H|0)==0&(Bt|0)==0)break;Qt=Qt+1|0,Gt=z}se=k,g[se>>2]=y,g[se+4>>2]=p}if(C=C+1|0,(C|0)>=(S|0))break e;y=Ye+(C<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}for(C=0,p=st,y=L;;){if(!((p|0)==0&(y|0)==0)){if(z=ve(p|0,y|0,52)|0,Pt()|0,z=z&15,(z|0)>=(ye|0)){if((z|0)!=(ye|0)&&(p=p|Qt,y=y&-15728641|se,z>>>0>=Kt>>>0)){k=ye;do Gt=De(7,0,(14-k|0)*3|0)|0,k=k+1|0,p=Gt|p,y=Pt()|0|y;while(k>>>0>>0)}}else p=0,y=0;if(z=Ul(p|0,y|0,S|0,Se|0)|0,Pt()|0,k=Ft+(z<<3)|0,H=k,et=g[H>>2]|0,H=g[H+4>>2]|0,!((et|0)==0&(H|0)==0))for(Gt=0;;){if((Gt|0)>(S|0)){Oe=41;break t}if((et|0)==(p|0)&(H&-117440513|0)==(y|0)){Et=ve(et|0,H|0,56)|0,Pt()|0,Et=Et&7,Bt=Et+1|0,Ve=ve(et|0,H|0,45)|0,Pt()|0;r:do if(!(Mi(Ve&127)|0))H=7;else{if(et=ve(et|0,H|0,52)|0,Pt()|0,et=et&15,!et){H=6;break}for(H=1;;){if(Ve=De(7,0,(15-H|0)*3|0)|0,!((Ve&p|0)==0&((Pt()|0)&y|0)==0)){H=7;break r}if(H>>>0>>0)H=H+1|0;else{H=6;break}}}while(!1);if((Et+2|0)>>>0>H>>>0){Oe=51;break t}Ve=De(Bt|0,0,56)|0,y=Pt()|0|y&-117440513,Bt=k,g[Bt>>2]=0,g[Bt+4>>2]=0,p=Ve|p}else z=(z+1|0)%(S|0)|0;if(k=Ft+(z<<3)|0,H=k,et=g[H>>2]|0,H=g[H+4>>2]|0,(et|0)==0&(H|0)==0)break;Gt=Gt+1|0}Ve=k,g[Ve>>2]=p,g[Ve+4>>2]=y}if(C=C+1|0,(C|0)>=(S|0))break e;y=Ye+(C<<3)|0,p=g[y>>2]|0,y=g[y+4>>2]|0}}while(!1);if((S+5|0)>>>0<11){Oe=99;break}if(se=Bi((S|0)/6|0,8)|0,!se){Oe=58;break}e:do if(Ge){Gt=0,Bt=0;do{if(z=Ft+(Gt<<3)|0,p=z,C=g[p>>2]|0,p=g[p+4>>2]|0,!((C|0)==0&(p|0)==0)){H=ve(C|0,p|0,56)|0,Pt()|0,H=H&7,y=H+1|0,et=p&-117440513,Ve=ve(C|0,p|0,45)|0,Pt()|0;r:do if(Mi(Ve&127)|0){if(Et=ve(C|0,p|0,52)|0,Pt()|0,Et=Et&15,Et|0)for(k=1;;){if(Ve=De(7,0,(15-k|0)*3|0)|0,!((C&Ve|0)==0&(et&(Pt()|0)|0)==0))break r;if(k>>>0>>0)k=k+1|0;else break}p=De(y|0,0,56)|0,C=p|C,p=Pt()|0|et,y=z,g[y>>2]=C,g[y+4>>2]=p,y=H+2|0}while(!1);(y|0)==7&&(Ve=se+(Bt<<3)|0,g[Ve>>2]=C,g[Ve+4>>2]=p&-117440513,Bt=Bt+1|0)}Gt=Gt+1|0}while((Gt|0)!=(S|0));if(Ge){if(Qt=((S|0)<0)<<31>>31,Et=De(ye|0,0,52)|0,Gt=Pt()|0,ye>>>0>15)for(p=0,C=0;;){do if(!((st|0)==0&(L|0)==0)){for(H=ve(st|0,L|0,52)|0,Pt()|0,H=H&15,k=(H|0)<(ye|0),H=(H|0)==(ye|0),z=k?0:H?st:0,H=k?0:H?L:0,k=Ul(z|0,H|0,S|0,Qt|0)|0,Pt()|0,y=0;;){if((y|0)>(S|0)){Oe=98;break t}if(Ve=Ft+(k<<3)|0,et=g[Ve+4>>2]|0,(et&-117440513|0)==(H|0)&&(g[Ve>>2]|0)==(z|0)){Oe=70;break}if(k=(k+1|0)%(S|0)|0,Ve=Ft+(k<<3)|0,(g[Ve>>2]|0)==(z|0)&&(g[Ve+4>>2]|0)==(H|0))break;y=y+1|0}if((Oe|0)==70&&(Oe=0,!0&(et&117440512|0)==100663296))break;Ve=m+(C<<3)|0,g[Ve>>2]=st,g[Ve+4>>2]=L,C=C+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=Bt;break e}L=Ye+(p<<3)|0,st=g[L>>2]|0,L=g[L+4>>2]|0}for(p=0,C=0;;){do if(!((st|0)==0&(L|0)==0)){if(H=ve(st|0,L|0,52)|0,Pt()|0,H=H&15,(H|0)>=(ye|0))if((H|0)!=(ye|0))if(y=st|Et,k=L&-15728641|Gt,H>>>0>>0)H=k;else{z=ye;do Ve=De(7,0,(14-z|0)*3|0)|0,z=z+1|0,y=Ve|y,k=Pt()|0|k;while(z>>>0>>0);H=k}else y=st,H=L;else y=0,H=0;for(z=Ul(y|0,H|0,S|0,Qt|0)|0,Pt()|0,k=0;;){if((k|0)>(S|0)){Oe=98;break t}if(Ve=Ft+(z<<3)|0,et=g[Ve+4>>2]|0,(et&-117440513|0)==(H|0)&&(g[Ve>>2]|0)==(y|0)){Oe=93;break}if(z=(z+1|0)%(S|0)|0,Ve=Ft+(z<<3)|0,(g[Ve>>2]|0)==(y|0)&&(g[Ve+4>>2]|0)==(H|0))break;k=k+1|0}if((Oe|0)==93&&(Oe=0,!0&(et&117440512|0)==100663296))break;Ve=m+(C<<3)|0,g[Ve>>2]=st,g[Ve+4>>2]=L,C=C+1|0}while(!1);if(p=p+1|0,(p|0)>=(S|0)){S=Bt;break e}L=Ye+(p<<3)|0,st=g[L>>2]|0,L=g[L+4>>2]|0}}else C=0,S=Bt}else C=0,S=0;while(!1);if(fa(Ft|0,0,qe|0)|0,ph(Ye|0,se|0,S<<3|0)|0,Xe(se),S)m=m+(C<<3)|0;else break}return(Oe|0)==41?(Xe(Ye),Xe(Ft),Ve=-1,Ve|0):(Oe|0)==51?(Xe(Ye),Xe(Ft),Ve=-2,Ve|0):(Oe|0)==58?(Xe(Ye),Xe(Ft),Ve=-3,Ve|0):(Oe|0)==98?(Xe(se),Xe(Ye),Xe(Ft),Ve=-1,Ve|0):((Oe|0)==99&&ph(m|0,Ye|0,S<<3|0)|0,Xe(Ye),Xe(Ft),Ve=0,Ve|0)}function n0(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0;if((m|0)<=0)return C=0,C|0;if((C|0)>=16){for(k=0;;){if(st=p+(k<<3)|0,!((g[st>>2]|0)==0&(g[st+4>>2]|0)==0)){k=14;break}if(k=k+1|0,(k|0)>=(m|0)){L=0,k=16;break}}if((k|0)==14)return((S|0)>0?-2:-1)|0;if((k|0)==16)return L|0}k=0,st=0;t:for(;;){et=p+(st<<3)|0,z=et,L=g[z>>2]|0,z=g[z+4>>2]|0;do if(!((L|0)==0&(z|0)==0)){if((k|0)>=(S|0)){L=-1,k=16;break t}if(H=ve(L|0,z|0,52)|0,Pt()|0,H=H&15,(H|0)>(C|0)){L=-2,k=16;break t}if((H|0)==(C|0)){et=y+(k<<3)|0,g[et>>2]=L,g[et+4>>2]=z,k=k+1|0;break}if(L=(Ht(7,C-H|0)|0)+k|0,(L|0)>(S|0)){L=-1,k=16;break t}lo(g[et>>2]|0,g[et+4>>2]|0,C,y+(k<<3)|0),k=L}while(!1);if(st=st+1|0,(st|0)>=(m|0)){L=0,k=16;break}}return(k|0)==16?L|0:0}function s0(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0;if((m|0)<=0)return y=0,y|0;if((y|0)>=16){for(S=0;;){if(L=p+(S<<3)|0,!((g[L>>2]|0)==0&(g[L+4>>2]|0)==0)){S=-1,C=13;break}if(S=S+1|0,(S|0)>=(m|0)){S=0,C=13;break}}if((C|0)==13)return S|0}S=0,L=0;t:for(;;){C=p+(L<<3)|0,k=g[C>>2]|0,C=g[C+4>>2]|0;do if(!((k|0)==0&(C|0)==0)){if(C=ve(k|0,C|0,52)|0,Pt()|0,C=C&15,(C|0)>(y|0)){S=-1,C=13;break t}if((C|0)==(y|0)){S=S+1|0;break}else{S=(Ht(7,y-C|0)|0)+S|0;break}}while(!1);if(L=L+1|0,(L|0)>=(m|0)){C=13;break}}return(C|0)==13?S|0:0}function Rc(p,m){return p=p|0,m=m|0,m=ve(p|0,m|0,52)|0,Pt()|0,m&1|0}function Us(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;if(C=ve(p|0,m|0,52)|0,Pt()|0,C=C&15,!C)return C=0,C|0;for(S=1;;){if(y=ve(p|0,m|0,(15-S|0)*3|0)|0,Pt()|0,y=y&7,y|0){S=5;break}if(S>>>0>>0)S=S+1|0;else{y=0,S=5;break}}return(S|0)==5?y|0:0}function hh(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0;if(H=ve(p|0,m|0,52)|0,Pt()|0,H=H&15,!H)return z=m,H=p,Sr(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=De(7,0,k|0)|0,C=Pt()|0,L=ve(p|0,m|0,k|0)|0,Pt()|0,k=De(al(L&7)|0,0,k|0)|0,L=Pt()|0,p=k|p&~S,m=L|m&~C;t:do if(!y)if((k&S|0)==0&(L&C|0)==0)y=0;else if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=ve(p|0,m|0,(15-y|0)*3|0)|0,Pt()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(L=(15-y|0)*3|0,C=ve(p|0,m|0,L|0)|0,Pt()|0,k=De(7,0,L|0)|0,m=m&~(Pt()|0),L=De(al(C&7)|0,0,L|0)|0,p=p&~k|L,m=m|(Pt()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return Sr(m|0),p|0}function ul(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,!S)return y=m,S=p,Sr(y|0),S|0;for(y=1;k=(15-y|0)*3|0,L=ve(p|0,m|0,k|0)|0,Pt()|0,C=De(7,0,k|0)|0,m=m&~(Pt()|0),k=De(al(L&7)|0,0,k|0)|0,p=k|p&~C,m=Pt()|0|m,y>>>0>>0;)y=y+1|0;return Sr(m|0),p|0}function Dd(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0;if(H=ve(p|0,m|0,52)|0,Pt()|0,H=H&15,!H)return z=m,H=p,Sr(z|0),H|0;for(z=1,y=0;;){k=(15-z|0)*3|0,S=De(7,0,k|0)|0,C=Pt()|0,L=ve(p|0,m|0,k|0)|0,Pt()|0,k=De(kc(L&7)|0,0,k|0)|0,L=Pt()|0,p=k|p&~S,m=L|m&~C;t:do if(!y)if((k&S|0)==0&(L&C|0)==0)y=0;else if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,!S)y=1;else{y=1;e:for(;;){switch(L=ve(p|0,m|0,(15-y|0)*3|0)|0,Pt()|0,L&7){case 1:break e;case 0:break;default:{y=1;break t}}if(y>>>0>>0)y=y+1|0;else{y=1;break t}}for(y=1;;)if(C=(15-y|0)*3|0,k=De(7,0,C|0)|0,L=m&~(Pt()|0),m=ve(p|0,m|0,C|0)|0,Pt()|0,m=De(kc(m&7)|0,0,C|0)|0,p=p&~k|m,m=L|(Pt()|0),y>>>0>>0)y=y+1|0;else{y=1;break}}while(!1);if(z>>>0>>0)z=z+1|0;else break}return Sr(m|0),p|0}function Od(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0;if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,!S)return y=m,S=p,Sr(y|0),S|0;for(y=1;L=(15-y|0)*3|0,k=De(7,0,L|0)|0,C=m&~(Pt()|0),m=ve(p|0,m|0,L|0)|0,Pt()|0,m=De(kc(m&7)|0,0,L|0)|0,p=m|p&~k,m=Pt()|0|C,y>>>0>>0;)y=y+1|0;return Sr(m|0),p|0}function fh(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0;if(H=wt,wt=wt+64|0,z=H+40|0,S=H+24|0,C=H+12|0,k=H,De(m|0,0,52)|0,y=Pt()|0|134225919,!m)return(g[p+4>>2]|0)>2||(g[p+8>>2]|0)>2||(g[p+12>>2]|0)>2?(L=0,z=0,Sr(L|0),wt=H,z|0):(De(Kp(p)|0,0,45)|0,L=Pt()|0|y,z=-1,Sr(L|0),wt=H,z|0);if(g[z>>2]=g[p>>2],g[z+4>>2]=g[p+4>>2],g[z+8>>2]=g[p+8>>2],g[z+12>>2]=g[p+12>>2],L=z+4|0,(m|0)>0)for(p=-1;g[S>>2]=g[L>>2],g[S+4>>2]=g[L+4>>2],g[S+8>>2]=g[L+8>>2],m&1?(za(L),g[C>>2]=g[L>>2],g[C+4>>2]=g[L+4>>2],g[C+8>>2]=g[L+8>>2],wf(C)):(ao(L),g[C>>2]=g[L>>2],g[C+4>>2]=g[L+4>>2],g[C+8>>2]=g[L+8>>2],Es(C)),mu(S,C,k),is(k),st=(15-m|0)*3|0,et=De(7,0,st|0)|0,y=y&~(Pt()|0),st=De(Id(k)|0,0,st|0)|0,p=st|p&~et,y=Pt()|0|y,(m|0)>1;)m=m+-1|0;else p=-1;t:do if((g[L>>2]|0)<=2&&(g[z+8>>2]|0)<=2&&(g[z+12>>2]|0)<=2){if(S=Kp(z)|0,m=De(S|0,0,45)|0,m=m|p,p=Pt()|0|y&-1040385,k=Jp(z)|0,!(Mi(S)|0)){if((k|0)<=0)break;for(C=0;;){if(S=ve(m|0,p|0,52)|0,Pt()|0,S=S&15,S)for(y=1;st=(15-y|0)*3|0,z=ve(m|0,p|0,st|0)|0,Pt()|0,et=De(7,0,st|0)|0,p=p&~(Pt()|0),st=De(al(z&7)|0,0,st|0)|0,m=m&~et|st,p=p|(Pt()|0),y>>>0>>0;)y=y+1|0;if(C=C+1|0,(C|0)==(k|0))break t}}C=ve(m|0,p|0,52)|0,Pt()|0,C=C&15;e:do if(C){y=1;r:for(;;){switch(st=ve(m|0,p|0,(15-y|0)*3|0)|0,Pt()|0,st&7){case 1:break r;case 0:break;default:break e}if(y>>>0>>0)y=y+1|0;else break e}if(Cc(S,g[z>>2]|0)|0)for(y=1;z=(15-y|0)*3|0,et=De(7,0,z|0)|0,st=p&~(Pt()|0),p=ve(m|0,p|0,z|0)|0,Pt()|0,p=De(kc(p&7)|0,0,z|0)|0,m=m&~et|p,p=st|(Pt()|0),y>>>0>>0;)y=y+1|0;else for(y=1;st=(15-y|0)*3|0,z=ve(m|0,p|0,st|0)|0,Pt()|0,et=De(7,0,st|0)|0,p=p&~(Pt()|0),st=De(al(z&7)|0,0,st|0)|0,m=m&~et|st,p=p|(Pt()|0),y>>>0>>0;)y=y+1|0}while(!1);if((k|0)>0){y=0;do m=hh(m,p)|0,p=Pt()|0,y=y+1|0;while((y|0)!=(k|0))}}else m=0,p=0;while(!1);return et=p,st=m,Sr(et|0),wt=H,st|0}function Ps(p){return p=p|0,(p|0)%2|0|0}function oA(p,m){p=p|0,m=m|0;var y=0,S=0;return S=wt,wt=wt+16|0,y=S,m>>>0<=15&&(g[p+4>>2]&2146435072|0)!=2146435072&&(g[p+8+4>>2]&2146435072|0)!=2146435072?(Ce(p,m,y),m=fh(y,m)|0,p=Pt()|0):(p=0,m=0),Sr(p|0),wt=S,m|0}function dh(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0;if(C=y+4|0,k=ve(p|0,m|0,52)|0,Pt()|0,k=k&15,L=ve(p|0,m|0,45)|0,Pt()|0,S=(k|0)==0,Mi(L&127)|0){if(S)return L=1,L|0;S=1}else{if(S)return L=0,L|0;!(g[C>>2]|0)&&!(g[y+8>>2]|0)?S=(g[y+12>>2]|0)!=0&1:S=1}for(y=1;y&1?wf(C):Es(C),L=ve(p|0,m|0,(15-y|0)*3|0)|0,Pt()|0,Sf(C,L&7),y>>>0>>0;)y=y+1|0;return S|0}function hl(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0;st=wt,wt=wt+16|0,H=st,et=ve(p|0,m|0,45)|0,Pt()|0,et=et&127;t:do if(Mi(et)|0&&(k=ve(p|0,m|0,52)|0,Pt()|0,k=k&15,(k|0)!=0)){S=1;e:for(;;){switch(z=ve(p|0,m|0,(15-S|0)*3|0)|0,Pt()|0,z&7){case 5:break e;case 0:break;default:{S=m;break t}}if(S>>>0>>0)S=S+1|0;else{S=m;break t}}for(C=1,S=m;m=(15-C|0)*3|0,L=De(7,0,m|0)|0,z=S&~(Pt()|0),S=ve(p|0,S|0,m|0)|0,Pt()|0,S=De(kc(S&7)|0,0,m|0)|0,p=p&~L|S,S=z|(Pt()|0),C>>>0>>0;)C=C+1|0}else S=m;while(!1);if(z=7728+(et*28|0)|0,g[y>>2]=g[z>>2],g[y+4>>2]=g[z+4>>2],g[y+8>>2]=g[z+8>>2],g[y+12>>2]=g[z+12>>2],!(dh(p,S,y)|0)){wt=st;return}if(L=y+4|0,g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],k=ve(p|0,S|0,52)|0,Pt()|0,z=k&15,k&1?(Es(L),k=z+1|0):k=z,!(Mi(et)|0))S=0;else{t:do if(!z)S=0;else for(m=1;;){if(C=ve(p|0,S|0,(15-m|0)*3|0)|0,Pt()|0,C=C&7,C|0){S=C;break t}if(m>>>0>>0)m=m+1|0;else{S=0;break}}while(!1);S=(S|0)==4&1}if(!(yu(y,k,S,0)|0))(k|0)!=(z|0)&&(g[L>>2]=g[H>>2],g[L+4>>2]=g[H+4>>2],g[L+8>>2]=g[H+8>>2]);else{if(Mi(et)|0)do;while(yu(y,k,0,0)|0);(k|0)!=(z|0)&&ao(L)}wt=st}function Dc(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;S=wt,wt=wt+16|0,C=S,hl(p,m,C),m=ve(p|0,m|0,52)|0,Pt()|0,a_(C,m&15,y),wt=S}function Oc(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0;L=wt,wt=wt+16|0,k=L,hl(p,m,k),S=ve(p|0,m|0,45)|0,Pt()|0,S=(Mi(S&127)|0)==0,C=ve(p|0,m|0,52)|0,Pt()|0,C=C&15;t:do if(!S){if(C|0)for(S=1;;){if(z=De(7,0,(15-S|0)*3|0)|0,!((z&p|0)==0&((Pt()|0)&m|0)==0))break t;if(S>>>0>>0)S=S+1|0;else break}Cd(k,C,0,5,y),wt=L;return}while(!1);Km(k,C,0,6,y),wt=L}function aA(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;if(S=ve(p|0,m|0,45)|0,Pt()|0,!(Mi(S&127)|0))return S=2,S|0;if(S=ve(p|0,m|0,52)|0,Pt()|0,S=S&15,!S)return S=5,S|0;for(y=1;;){if(C=De(7,0,(15-y|0)*3|0)|0,!((C&p|0)==0&((Pt()|0)&m|0)==0)){y=2,p=6;break}if(y>>>0>>0)y=y+1|0;else{y=5,p=6;break}}return(p|0)==6?y|0:0}function lA(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0;Et=wt,wt=wt+128|0,et=Et+112|0,k=Et+96|0,st=Et,C=ve(p|0,m|0,52)|0,Pt()|0,z=C&15,g[et>>2]=z,L=ve(p|0,m|0,45)|0,Pt()|0,L=L&127;t:do if(Mi(L)|0){if(z|0)for(S=1;;){if(H=De(7,0,(15-S|0)*3|0)|0,!((H&p|0)==0&((Pt()|0)&m|0)==0)){C=0;break t}if(S>>>0>>0)S=S+1|0;else break}if(C&1)C=1;else{H=De(z+1|0,0,52)|0,st=Pt()|0|m&-15728641,et=De(7,0,(14-z|0)*3|0)|0,lA((H|p)&~et,st&~(Pt()|0),y),wt=Et;return}}else C=0;while(!1);hl(p,m,k),C?(Ld(k,et,st),H=5):(vu(k,et,st),H=6);t:do if(Mi(L)|0)if(!z)S=20;else for(S=1;;){if(L=De(7,0,(15-S|0)*3|0)|0,!((L&p|0)==0&((Pt()|0)&m|0)==0)){S=8;break t}if(S>>>0>>0)S=S+1|0;else{S=20;break}}else S=8;while(!1);if(fa(y|0,-1,S|0)|0,C){C=0;do{for(k=st+(C<<4)|0,Tx(k,g[et>>2]|0)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,C=C+1|0}while((C|0)!=(H|0))}else{C=0;do{for(k=st+(C<<4)|0,yu(k,g[et>>2]|0,0,1)|0,k=g[k>>2]|0,S=0;L=y+(S<<2)|0,z=g[L>>2]|0,!((z|0)==-1|(z|0)==(k|0));)S=S+1|0;g[L>>2]=k,C=C+1|0}while((C|0)!=(H|0))}wt=Et}function T(){return 12}function l(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0;if(De(p|0,0,52)|0,z=Pt()|0|134225919,(p|0)<1){S=0,y=0;do Mi(S)|0&&(De(S|0,0,45)|0,L=z|(Pt()|0),p=m+(y<<3)|0,g[p>>2]=-1,g[p+4>>2]=L,y=y+1|0),S=S+1|0;while((S|0)!=122);return}L=0,y=0;do{if(Mi(L)|0){for(De(L|0,0,45)|0,S=1,C=-1,k=z|(Pt()|0);H=De(7,0,(15-S|0)*3|0)|0,C=C&~H,k=k&~(Pt()|0),(S|0)!=(p|0);)S=S+1|0;H=m+(y<<3)|0,g[H>>2]=C,g[H+4>>2]=k,y=y+1|0}L=L+1|0}while((L|0)!=122)}function f(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0;if(z=wt,wt=wt+64|0,L=z,(p|0)==(y|0)&(m|0)==(S|0)|(!1|(m&2013265920|0)!=134217728|(!1|(S&2013265920|0)!=134217728))||(C=ve(p|0,m|0,52)|0,Pt()|0,C=C&15,k=ve(y|0,S|0,52)|0,Pt()|0,(C|0)!=(k&15|0)))return L=0,wt=z,L|0;if(k=C+-1|0,C>>>0>1&&(et=Na(p,m,k)|0,H=Pt()|0,k=Na(y,S,k)|0,(et|0)==(k|0)&(H|0)==(Pt()|0))&&(k=(C^15)*3|0,C=ve(p|0,m|0,k|0)|0,Pt()|0,C=C&7,k=ve(y|0,S|0,k|0)|0,Pt()|0,k=k&7,(C|0)==0|(k|0)==0||(g[21136+(C<<2)>>2]|0)==(k|0)||(g[21168+(C<<2)>>2]|0)==(k|0)))return et=1,wt=z,et|0;C=L,k=C+56|0;do g[C>>2]=0,C=C+4|0;while((C|0)<(k|0));return Pd(p,m,1,L),et=L,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0))&&(et=L+8|0,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0)))&&(et=L+16|0,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0)))&&(et=L+24|0,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0)))&&(et=L+32|0,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0)))&&(et=L+40|0,!((g[et>>2]|0)==(y|0)&&(g[et+4>>2]|0)==(S|0)))?(C=L+48|0,C=((g[C>>2]|0)==(y|0)?(g[C+4>>2]|0)==(S|0):0)&1):C=1,et=C,wt=z,et|0}function v(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0;if(et=wt,wt=wt+16|0,L=et,!(f(p,m,y,S)|0))return z=0,H=0,Sr(z|0),wt=et,H|0;for(z=m&-2130706433,C=(qn(p,m)|0)==0,C=C?1:2;g[L>>2]=0,st=Rn(p,m,C,L)|0,k=C+1|0,!((st|0)==(y|0)&(Pt()|0)==(S|0));)if(k>>>0<7)C=k;else{C=0,p=0,H=6;break}return(H|0)==6?(Sr(C|0),wt=et,p|0):(st=De(C|0,0,56)|0,H=z|(Pt()|0)|268435456,st=p|st,Sr(H|0),wt=et,st|0)}function b(p,m){p=p|0,m=m|0;var y=0;return y=!0&(m&2013265920|0)==268435456,Sr((y?m&-2130706433|134217728:0)|0),(y?p:0)|0}function M(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;return S=wt,wt=wt+16|0,y=S,!0&(m&2013265920|0)==268435456?(C=ve(p|0,m|0,56)|0,Pt()|0,g[y>>2]=0,y=Rn(p,m&-2130706433|134217728,C&7,y)|0,m=Pt()|0,Sr(m|0),wt=S,y|0):(m=0,y=0,Sr(m|0),wt=S,y|0)}function O(p,m){p=p|0,m=m|0;var y=0;if(!(!0&(m&2013265920|0)==268435456))return y=0,y|0;switch(y=ve(p|0,m|0,56)|0,Pt()|0,y&7){case 0:case 7:return y=0,y|0;default:}return y=m&-2130706433|134217728,!0&(m&117440512|0)==16777216&(qn(p,y)|0)!=0?(y=0,y|0):(y=r0(p,y)|0,y|0)}function F(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0;k=wt,wt=wt+16|0,S=k,L=!0&(m&2013265920|0)==268435456,C=m&-2130706433|134217728,z=y,g[z>>2]=L?p:0,g[z+4>>2]=L?C:0,L?(m=ve(p|0,m|0,56)|0,Pt()|0,g[S>>2]=0,p=Rn(p,C,m&7,S)|0,m=Pt()|0):(p=0,m=0),z=y+8|0,g[z>>2]=p,g[z+4>>2]=m,wt=k}function U(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;C=(qn(p,m)|0)==0,m=m&-2130706433,S=y,g[S>>2]=C?p:0,g[S+4>>2]=C?m|285212672:0,S=y+8|0,g[S>>2]=p,g[S+4>>2]=m|301989888,S=y+16|0,g[S>>2]=p,g[S+4>>2]=m|318767104,S=y+24|0,g[S>>2]=p,g[S+4>>2]=m|335544320,S=y+32|0,g[S>>2]=p,g[S+4>>2]=m|352321536,y=y+40|0,g[y>>2]=p,g[y+4>>2]=m|369098752}function W(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0;if(L=wt,wt=wt+16|0,k=L,S=ve(p|0,m|0,56)|0,Pt()|0,z=!0&(m&2013265920|0)==268435456,C=z?p:0,p=z?m&-2130706433|134217728:0,m=Mn(C,p,S&7)|0,(m|0)==-1){g[y>>2]=0,wt=L;return}hl(C,p,k),S=ve(C|0,p|0,52)|0,Pt()|0,S=S&15,qn(C,p)|0?Cd(k,S,m,2,y):Km(k,S,m,2,y),wt=L}function $(p){p=p|0;var m=0,y=0,S=0;return m=Bi(1,12)|0,m||Li(22691,22646,49,22704),y=p+4|0,S=g[y>>2]|0,S|0?(S=S+8|0,g[S>>2]=m,g[y>>2]=m,m|0):(g[p>>2]|0&&Li(22721,22646,61,22744),S=p,g[S>>2]=m,g[y>>2]=m,m|0)}function X(p,m){p=p|0,m=m|0;var y=0,S=0;return S=dn(24)|0,S||Li(22758,22646,78,22772),g[S>>2]=g[m>>2],g[S+4>>2]=g[m+4>>2],g[S+8>>2]=g[m+8>>2],g[S+12>>2]=g[m+12>>2],g[S+16>>2]=0,m=p+4|0,y=g[m>>2]|0,y|0?(g[y+16>>2]=S,g[m>>2]=S,S|0):(g[p>>2]|0&&Li(22787,22646,82,22772),g[p>>2]=S,g[m>>2]=S,S|0)}function at(p){p=p|0;var m=0,y=0,S=0,C=0;if(p)for(S=1;;){if(m=g[p>>2]|0,m|0)do{if(y=g[m>>2]|0,y|0)do C=y,y=g[y+16>>2]|0,Xe(C);while(y|0);C=m,m=g[m+8>>2]|0,Xe(C)}while(m|0);if(m=p,p=g[p+8>>2]|0,S||Xe(m),p)S=0;else break}}function gt(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0,Ve=0,Qr=0,Ri=0,Ei=0,Vi=0,pi=0,fi=0,ln=0,jr=0;if(C=p+8|0,g[C>>2]|0)return jr=1,jr|0;if(S=g[p>>2]|0,!S)return jr=0,jr|0;m=S,y=0;do y=y+1|0,m=g[m+8>>2]|0;while(m|0);if(y>>>0<2)return jr=0,jr|0;fi=dn(y<<2)|0,fi||Li(22807,22646,317,22826),pi=dn(y<<5)|0,pi||Li(22848,22646,321,22826),g[p>>2]=0,Ye=p+4|0,g[Ye>>2]=0,g[C>>2]=0,y=0,Vi=0,qe=0,Et=0;t:for(;;){if(st=g[S>>2]|0,st){k=0,L=st;do{if(H=+bt[L+8>>3],m=L,L=g[L+16>>2]|0,et=(L|0)==0,C=et?st:L,z=+bt[C+8>>3],+Zr(+(H-z))>3.141592653589793){jr=14;break}k=k+(z-H)*(+bt[m>>3]+ +bt[C>>3])}while(!et);if((jr|0)==14){jr=0,k=0,m=st;do Ft=+bt[m+8>>3],Ei=m+16|0,Ri=g[Ei>>2]|0,Ri=Ri|0?Ri:st,ye=+bt[Ri+8>>3],k=k+(+bt[m>>3]+ +bt[Ri>>3])*((ye<0?ye+6.283185307179586:ye)-(Ft<0?Ft+6.283185307179586:Ft)),m=g[(m|0?Ei:S)>>2]|0;while(m|0)}k>0?(g[fi+(Vi<<2)>>2]=S,Vi=Vi+1|0,C=qe,m=Et):jr=19}else jr=19;if((jr|0)==19){jr=0;do if(y){if(m=y+8|0,g[m>>2]|0){jr=21;break t}if(y=Bi(1,12)|0,!y){jr=23;break t}g[m>>2]=y,C=y+4|0,L=y,m=Et}else if(Et){C=Ye,L=Et+8|0,m=S,y=p;break}else if(g[p>>2]|0){jr=27;break t}else{C=Ye,L=p,m=S,y=p;break}while(!1);if(g[L>>2]=S,g[C>>2]=S,L=pi+(qe<<5)|0,et=g[S>>2]|0,et){for(st=pi+(qe<<5)+8|0,bt[st>>3]=17976931348623157e292,Et=pi+(qe<<5)+24|0,bt[Et>>3]=17976931348623157e292,bt[L>>3]=-17976931348623157e292,Bt=pi+(qe<<5)+16|0,bt[Bt>>3]=-17976931348623157e292,Ge=17976931348623157e292,Kt=-17976931348623157e292,C=0,Gt=et,H=17976931348623157e292,se=17976931348623157e292,Se=-17976931348623157e292,z=-17976931348623157e292;k=+bt[Gt>>3],Ft=+bt[Gt+8>>3],Gt=g[Gt+16>>2]|0,Qt=(Gt|0)==0,ye=+bt[(Qt?et:Gt)+8>>3],k>3]=k,H=k),Ft>3]=Ft,se=Ft),k>Se?bt[L>>3]=k:k=Se,Ft>z&&(bt[Bt>>3]=Ft,z=Ft),Ge=Ft>0&FtKt?Ft:Kt,C=C|+Zr(+(Ft-ye))>3.141592653589793,!Qt;)Se=k;C&&(bt[Bt>>3]=Kt,bt[Et>>3]=Ge)}else g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,g[L+12>>2]=0,g[L+16>>2]=0,g[L+20>>2]=0,g[L+24>>2]=0,g[L+28>>2]=0;C=qe+1|0}if(Ei=S+8|0,S=g[Ei>>2]|0,g[Ei>>2]=0,S)qe=C,Et=m;else{jr=45;break}}if((jr|0)==21)Li(22624,22646,35,22658);else if((jr|0)==23)Li(22678,22646,37,22658);else if((jr|0)==27)Li(22721,22646,61,22744);else if((jr|0)==45){t:do if((Vi|0)>0){for(Ei=(C|0)==0,Qr=C<<2,Ri=(p|0)==0,Ve=0,m=0;;){if(Oe=g[fi+(Ve<<2)>>2]|0,Ei)jr=73;else{if(qe=dn(Qr)|0,!qe){jr=50;break}if(Ye=dn(Qr)|0,!Ye){jr=52;break}e:do if(Ri)y=0;else{for(C=0,y=0,L=p;S=pi+(C<<5)|0,_t(g[L>>2]|0,S,g[Oe>>2]|0)|0?(g[qe+(y<<2)>>2]=L,g[Ye+(y<<2)>>2]=S,Qt=y+1|0):Qt=y,L=g[L+8>>2]|0,L;)C=C+1|0,y=Qt;if((Qt|0)>0)if(S=g[qe>>2]|0,(Qt|0)==1)y=S;else for(Bt=0,Gt=-1,y=S,Et=S;;){for(et=g[Et>>2]|0,S=0,L=0;C=g[g[qe+(L<<2)>>2]>>2]|0,(C|0)==(et|0)?st=S:st=S+((_t(C,g[Ye+(L<<2)>>2]|0,g[et>>2]|0)|0)&1)|0,L=L+1|0,(L|0)!=(Qt|0);)S=st;if(C=(st|0)>(Gt|0),y=C?Et:y,S=Bt+1|0,(S|0)==(Qt|0))break e;Bt=S,Gt=C?st:Gt,Et=g[qe+(S<<2)>>2]|0}else y=0}while(!1);if(Xe(qe),Xe(Ye),y){if(C=y+4|0,S=g[C>>2]|0,S)y=S+8|0;else if(g[y>>2]|0){jr=70;break}g[y>>2]=Oe,g[C>>2]=Oe}else jr=73}if((jr|0)==73){if(jr=0,m=g[Oe>>2]|0,m|0)do Ye=m,m=g[m+16>>2]|0,Xe(Ye);while(m|0);Xe(Oe),m=2}if(Ve=Ve+1|0,(Ve|0)>=(Vi|0)){ln=m;break t}}(jr|0)==50?Li(22863,22646,249,22882):(jr|0)==52?Li(22901,22646,252,22882):(jr|0)==70&&Li(22721,22646,61,22744)}else ln=0;while(!1);return Xe(fi),Xe(pi),jr=ln,jr|0}return 0}function _t(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0;if(!(Qm(m,y)|0)||(m=bf(m)|0,et=+bt[y>>3],S=+bt[y+8>>3],S=m&S<0?S+6.283185307179586:S,p=g[p>>2]|0,!p))return p=0,p|0;if(m){m=0,y=p;t:for(;;){for(;L=+bt[y>>3],H=+bt[y+8>>3],y=y+16|0,st=g[y>>2]|0,st=st|0?st:p,k=+bt[st>>3],C=+bt[st+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=C,C=H),!!(etz);)if(y=g[y>>2]|0,!y){y=22;break t}if(H=C<0?C+6.283185307179586:C,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(et-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}else{m=0,y=p;t:for(;;){for(;L=+bt[y>>3],H=+bt[y+8>>3],y=y+16|0,st=g[y>>2]|0,st=st|0?st:p,k=+bt[st>>3],C=+bt[st+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=C,C=H),!!(etz);)if(y=g[y>>2]|0,!y){y=22;break t}if(S=L==S|C==S?S+-2220446049250313e-31:S,C+(et-k)/(z-k)*(L-C)>S&&(m=m^1),y=g[y>>2]|0,!y){y=22;break}}if((y|0)==22)return m|0}return 0}function yt(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0;if(Kt=wt,wt=wt+32|0,Ge=Kt+16|0,Se=Kt,k=ve(p|0,m|0,52)|0,Pt()|0,k=k&15,Gt=ve(y|0,S|0,52)|0,Pt()|0,(k|0)!=(Gt&15|0))return Ge=1,wt=Kt,Ge|0;if(et=ve(p|0,m|0,45)|0,Pt()|0,et=et&127,st=ve(y|0,S|0,45)|0,Pt()|0,st=st&127,Gt=(et|0)!=(st|0),Gt){if(z=xf(et,st)|0,(z|0)==7)return Ge=2,wt=Kt,Ge|0;H=xf(st,et)|0,(H|0)==7?Li(22925,22949,151,22959):(Qt=z,L=H)}else Qt=0,L=0;Et=Mi(et)|0,Bt=Mi(st)|0,g[Ge>>2]=0,g[Ge+4>>2]=0,g[Ge+8>>2]=0,g[Ge+12>>2]=0;do if(Qt){if(st=g[4304+(et*28|0)+(Qt<<2)>>2]|0,z=(st|0)>0,Bt)if(z){et=0,H=y,z=S;do H=Dd(H,z)|0,z=Pt()|0,L=kc(L)|0,(L|0)==1&&(L=kc(1)|0),et=et+1|0;while((et|0)!=(st|0));st=L,et=H,H=z}else st=L,et=y,H=S;else if(z){et=0,H=y,z=S;do H=Od(H,z)|0,z=Pt()|0,L=kc(L)|0,et=et+1|0;while((et|0)!=(st|0));st=L,et=H,H=z}else st=L,et=y,H=S;if(dh(et,H,Ge)|0,Gt||Li(22972,22949,181,22959),z=(Et|0)!=0,L=(Bt|0)!=0,z&L&&Li(22999,22949,182,22959),z){if(L=Us(p,m)|0,yr[22032+(L*7|0)+Qt>>0]|0){k=3;break}H=g[21200+(L*28|0)+(Qt<<2)>>2]|0,et=H,se=26}else if(L){if(L=Us(et,H)|0,yr[22032+(L*7|0)+st>>0]|0){k=4;break}et=0,H=g[21200+(st*28|0)+(L<<2)>>2]|0,se=26}else L=0;if((se|0)==26)if((H|0)<=-1&&Li(23030,22949,212,22959),(et|0)<=-1&&Li(23053,22949,213,22959),(H|0)>0){z=Ge+4|0,L=0;do eA(z),L=L+1|0;while((L|0)!=(H|0));L=et}else L=et;if(g[Se>>2]=0,g[Se+4>>2]=0,g[Se+8>>2]=0,Sf(Se,Qt),k|0)for(;Ps(k)|0?wf(Se):Es(Se),(k|0)>1;)k=k+-1|0;if((L|0)>0){k=0;do eA(Se),k=k+1|0;while((k|0)!=(L|0))}se=Ge+4|0,Ui(se,Se,se),is(se),se=50}else if(dh(y,S,Ge)|0,(Et|0)!=0&(Bt|0)!=0)if((st|0)!=(et|0)&&Li(23077,22949,243,22959),L=Us(p,m)|0,k=Us(y,S)|0,yr[22032+(L*7|0)+k>>0]|0)k=5;else if(L=g[21200+(L*28|0)+(k<<2)>>2]|0,(L|0)>0){z=Ge+4|0,k=0;do eA(z),k=k+1|0;while((k|0)!=(L|0));se=50}else se=50;else se=50;while(!1);return(se|0)==50&&(k=Ge+4|0,g[C>>2]=g[k>>2],g[C+4>>2]=g[k+4>>2],g[C+8>>2]=g[k+8>>2],k=0),Ge=k,wt=Kt,Ge|0}function At(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0;if(Qt=wt,wt=wt+48|0,L=Qt+36|0,z=Qt+24|0,H=Qt+12|0,et=Qt,k=ve(p|0,m|0,52)|0,Pt()|0,k=k&15,Bt=ve(p|0,m|0,45)|0,Pt()|0,Bt=Bt&127,st=Mi(Bt)|0,De(k|0,0,52)|0,Se=Pt()|0|134225919,se=S,g[se>>2]=-1,g[se+4>>2]=Se,!k)return(g[y>>2]|0)>1||(g[y+4>>2]|0)>1||(g[y+8>>2]|0)>1||(C=Au(Bt,Id(y)|0)|0,(C|0)==127)?(Se=1,wt=Qt,Se|0):(Gt=De(C|0,0,45)|0,se=Pt()|0,Bt=S,se=g[Bt+4>>2]&-1040385|se,Se=S,g[Se>>2]=g[Bt>>2]|Gt,g[Se+4>>2]=se,Se=0,wt=Qt,Se|0);for(g[L>>2]=g[y>>2],g[L+4>>2]=g[y+4>>2],g[L+8>>2]=g[y+8>>2];g[z>>2]=g[L>>2],g[z+4>>2]=g[L+4>>2],g[z+8>>2]=g[L+8>>2],Ps(k)|0?(za(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],wf(H)):(ao(L),g[H>>2]=g[L>>2],g[H+4>>2]=g[L+4>>2],g[H+8>>2]=g[L+8>>2],Es(H)),mu(z,H,et),is(et),se=S,Ge=g[se>>2]|0,se=g[se+4>>2]|0,Kt=(15-k|0)*3|0,y=De(7,0,Kt|0)|0,se=se&~(Pt()|0),Kt=De(Id(et)|0,0,Kt|0)|0,se=Pt()|0|se,Se=S,g[Se>>2]=Kt|Ge&~y,g[Se+4>>2]=se,(k|0)>1;)k=k+-1|0;t:do if((g[L>>2]|0)<=1&&(g[L+4>>2]|0)<=1&&(g[L+8>>2]|0)<=1){k=Id(L)|0,z=Au(Bt,k)|0,(z|0)==127?et=0:et=Mi(z)|0;e:do if(k){if(st){if(L=21408+((Us(p,m)|0)*28|0)+(k<<2)|0,L=g[L>>2]|0,(L|0)>0){y=0;do k=al(k)|0,y=y+1|0;while((y|0)!=(L|0))}if((k|0)==1){C=3;break t}y=Au(Bt,k)|0,(y|0)==127&&Li(23104,22949,376,23134),Mi(y)|0?Li(23147,22949,377,23134):(Gt=L,Et=k,C=y)}else Gt=0,Et=k,C=z;if(H=g[4304+(Bt*28|0)+(Et<<2)>>2]|0,(H|0)<=-1&&Li(23178,22949,384,23134),!et){if((Gt|0)<=-1&&Li(23030,22949,417,23134),Gt|0){L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=ul(y,L)|0,L=Pt()|0,Kt=S,g[Kt>>2]=y,g[Kt+4>>2]=L,k=k+1|0;while((k|0)<(Gt|0))}if((H|0)<=0){k=54;break}for(L=S,k=0,y=g[L>>2]|0,L=g[L+4>>2]|0;;)if(y=ul(y,L)|0,L=Pt()|0,Kt=S,g[Kt>>2]=y,g[Kt+4>>2]=L,k=k+1|0,(k|0)==(H|0)){k=54;break e}}if(z=xf(C,Bt)|0,(z|0)==7&&Li(22925,22949,393,23134),k=S,y=g[k>>2]|0,k=g[k+4>>2]|0,(H|0)>0){L=0;do y=ul(y,k)|0,k=Pt()|0,Kt=S,g[Kt>>2]=y,g[Kt+4>>2]=k,L=L+1|0;while((L|0)!=(H|0))}if(y=Us(y,k)|0,Kt=Ns(C)|0,y=g[(Kt?21824:21616)+(z*28|0)+(y<<2)>>2]|0,(y|0)<=-1&&Li(23030,22949,412,23134),!y)k=54;else{z=S,k=0,L=g[z>>2]|0,z=g[z+4>>2]|0;do L=hh(L,z)|0,z=Pt()|0,Kt=S,g[Kt>>2]=L,g[Kt+4>>2]=z,k=k+1|0;while((k|0)<(y|0));k=54}}else if((st|0)!=0&(et|0)!=0)if(Kt=Us(p,m)|0,k=S,k=21408+(Kt*28|0)+((Us(g[k>>2]|0,g[k+4>>2]|0)|0)<<2)|0,k=g[k>>2]|0,(k|0)<=-1&&Li(23201,22949,433,23134),!k)C=z,k=55;else{L=S,C=0,y=g[L>>2]|0,L=g[L+4>>2]|0;do y=ul(y,L)|0,L=Pt()|0,Kt=S,g[Kt>>2]=y,g[Kt+4>>2]=L,C=C+1|0;while((C|0)<(k|0));C=z,k=54}else C=z,k=54;while(!1);if((k|0)==54&&et&&(k=55),(k|0)==55&&(Kt=S,(Us(g[Kt>>2]|0,g[Kt+4>>2]|0)|0)==1)){C=4;break}Kt=S,Se=g[Kt>>2]|0,Kt=g[Kt+4>>2]&-1040385,Ge=De(C|0,0,45)|0,Kt=Kt|(Pt()|0),C=S,g[C>>2]=Se|Ge,g[C+4>>2]=Kt,C=0}else C=2;while(!1);return Kt=C,wt=Qt,Kt|0}function kt(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0;return L=wt,wt=wt+16|0,k=L,p=yt(p,m,y,S,k)|0,p||(Xm(k,C),p=0),wt=L,p|0}function Wt(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0;return C=wt,wt=wt+16|0,k=C,Tf(y,k),S=At(p,m,k,S)|0,wt=C,S|0}function St(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0;return L=wt,wt=wt+32|0,C=L+12|0,k=L,!(yt(p,m,p,m,C)|0)&&!(yt(p,m,y,S,k)|0)?p=Fe(C,k)|0:p=-1,wt=L,p|0}function Nt(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0,L=0;return L=wt,wt=wt+32|0,C=L+12|0,k=L,!(yt(p,m,p,m,C)|0)&&!(yt(p,m,y,S,k)|0)?p=Fe(C,k)|0:p=-1,wt=L,(p>>>31^1)+p|0}function Zt(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0;if(qe=wt,wt=wt+48|0,k=qe+24|0,L=qe+12|0,Ft=qe,!(yt(p,m,p,m,k)|0)&&!(yt(p,m,y,S,L)|0)){if(ye=Fe(k,L)|0,(ye|0)<0)return Ft=ye,wt=qe,Ft|0;for(g[k>>2]=0,g[k+4>>2]=0,g[k+8>>2]=0,g[L>>2]=0,g[L+4>>2]=0,g[L+8>>2]=0,yt(p,m,p,m,k)|0,yt(p,m,y,S,L)|0,Mf(k),Mf(L),ye?(st=g[k>>2]|0,Gt=+(ye|0),Se=k+4|0,Et=g[Se>>2]|0,Ge=k+8|0,Bt=g[Ge>>2]|0,Kt=k,y=st,S=Et,k=Bt,Qt=+((g[L>>2]|0)-st|0)/Gt,se=+((g[L+4>>2]|0)-Et|0)/Gt,Gt=+((g[L+8>>2]|0)-Bt|0)/Gt):(S=k+4|0,Bt=k+8|0,Se=S,Ge=Bt,Kt=k,y=g[k>>2]|0,S=g[S>>2]|0,k=g[Bt>>2]|0,Qt=0,se=0,Gt=0),g[Ft>>2]=y,Bt=Ft+4|0,g[Bt>>2]=S,Et=Ft+8|0,g[Et>>2]=k,st=0;;){H=+(st|0),Ye=Qt*H+ +(y|0),z=se*H+ +(g[Se>>2]|0),H=Gt*H+ +(g[Ge>>2]|0),S=~~+Ua(+Ye),L=~~+Ua(+z),y=~~+Ua(+H),Ye=+Zr(+(+(S|0)-Ye)),z=+Zr(+(+(L|0)-z)),H=+Zr(+(+(y|0)-H));do if(Ye>z&Ye>H)S=0-(L+y)|0,k=L;else if(et=0-S|0,z>H){k=et-y|0;break}else{k=L,y=et-L|0;break}while(!1);if(g[Ft>>2]=S,g[Bt>>2]=k,g[Et>>2]=y,rA(Ft),At(p,m,Ft,C+(st<<3)|0)|0,(st|0)==(ye|0))break;st=st+1|0,y=g[Kt>>2]|0}return Ft=0,wt=qe,Ft|0}return Ft=-1,wt=qe,Ft|0}function Ht(p,m){p=p|0,m=m|0;var y=0;if(!m)return y=1,y|0;y=p,p=1;do p=Fa(m&1|0?y:1,p)|0,m=m>>1,y=Fa(y,y)|0;while(m|0);return p|0}function ne(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0;if(!(Qm(m,y)|0)||(m=bf(m)|0,Bt=+bt[y>>3],S=+bt[y+8>>3],S=m&S<0?S+6.283185307179586:S,Et=g[p>>2]|0,(Et|0)<=0))return Et=0,Et|0;if(st=g[p+4>>2]|0,m){m=0,y=-1,p=0;t:for(;;){for(et=p;L=+bt[st+(et<<4)>>3],H=+bt[st+(et<<4)+8>>3],p=(y+2|0)%(Et|0)|0,k=+bt[st+(p<<4)>>3],C=+bt[st+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=C,C=H),!!(Btz);)if(y=et+1|0,(y|0)<(Et|0))p=et,et=y,y=p;else{y=22;break t}if(H=C<0?C+6.283185307179586:C,L=L<0?L+6.283185307179586:L,S=L==S|H==S?S+-2220446049250313e-31:S,H=H+(Bt-k)/(z-k)*(L-H),(H<0?H+6.283185307179586:H)>S&&(m=m^1),p=et+1|0,(p|0)>=(Et|0)){y=22;break}else y=et}if((y|0)==22)return m|0}else{m=0,y=-1,p=0;t:for(;;){for(et=p;L=+bt[st+(et<<4)>>3],H=+bt[st+(et<<4)+8>>3],p=(y+2|0)%(Et|0)|0,k=+bt[st+(p<<4)>>3],C=+bt[st+(p<<4)+8>>3],L>k?(z=L,L=H):(z=k,k=L,L=C,C=H),!!(Btz);)if(y=et+1|0,(y|0)<(Et|0))p=et,et=y,y=p;else{y=22;break t}if(S=L==S|C==S?S+-2220446049250313e-31:S,C+(Bt-k)/(z-k)*(L-C)>S&&(m=m^1),p=et+1|0,(p|0)>=(Et|0)){y=22;break}else y=et}if((y|0)==22)return m|0}return 0}function he(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0;if(Qt=g[p>>2]|0,!Qt){g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;return}if(se=m+8|0,bt[se>>3]=17976931348623157e292,Se=m+24|0,bt[Se>>3]=17976931348623157e292,bt[m>>3]=-17976931348623157e292,Ge=m+16|0,bt[Ge>>3]=-17976931348623157e292,!((Qt|0)<=0)){for(Bt=g[p+4>>2]|0,et=17976931348623157e292,st=-17976931348623157e292,Et=0,p=-1,k=17976931348623157e292,L=17976931348623157e292,H=-17976931348623157e292,S=-17976931348623157e292,Gt=0;y=+bt[Bt+(Gt<<4)>>3],z=+bt[Bt+(Gt<<4)+8>>3],p=p+2|0,C=+bt[Bt+(((p|0)==(Qt|0)?0:p)<<4)+8>>3],y>3]=y,k=y),z>3]=z,L=z),y>H?bt[m>>3]=y:y=H,z>S&&(bt[Ge>>3]=z,S=z),et=z>0&zst?z:st,Et=Et|+Zr(+(z-C))>3.141592653589793,p=Gt+1|0,(p|0)!=(Qt|0);)Kt=Gt,H=y,Gt=p,p=Kt;Et&&(bt[Ge>>3]=st,bt[Se>>3]=et)}}function ce(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0,Ye=0,Oe=0;if(Qt=g[p>>2]|0,Qt){if(se=m+8|0,bt[se>>3]=17976931348623157e292,Se=m+24|0,bt[Se>>3]=17976931348623157e292,bt[m>>3]=-17976931348623157e292,Ge=m+16|0,bt[Ge>>3]=-17976931348623157e292,(Qt|0)>0){for(C=g[p+4>>2]|0,Bt=17976931348623157e292,Gt=-17976931348623157e292,S=0,y=-1,H=17976931348623157e292,et=17976931348623157e292,Et=-17976931348623157e292,L=-17976931348623157e292,Kt=0;k=+bt[C+(Kt<<4)>>3],st=+bt[C+(Kt<<4)+8>>3],Ye=y+2|0,z=+bt[C+(((Ye|0)==(Qt|0)?0:Ye)<<4)+8>>3],k>3]=k,H=k),st>3]=st,et=st),k>Et?bt[m>>3]=k:k=Et,st>L&&(bt[Ge>>3]=st,L=st),Bt=st>0&stGt?st:Gt,S=S|+Zr(+(st-z))>3.141592653589793,y=Kt+1|0,(y|0)!=(Qt|0);)Ye=Kt,Et=k,Kt=y,y=Ye;S&&(bt[Ge>>3]=Gt,bt[Se>>3]=Bt)}}else g[m>>2]=0,g[m+4>>2]=0,g[m+8>>2]=0,g[m+12>>2]=0,g[m+16>>2]=0,g[m+20>>2]=0,g[m+24>>2]=0,g[m+28>>2]=0;if(Ye=p+8|0,y=g[Ye>>2]|0,!((y|0)<=0)){qe=p+12|0,Ft=0;do if(C=g[qe>>2]|0,S=Ft,Ft=Ft+1|0,Se=m+(Ft<<5)|0,Ge=g[C+(S<<3)>>2]|0,Ge){if(Kt=m+(Ft<<5)+8|0,bt[Kt>>3]=17976931348623157e292,p=m+(Ft<<5)+24|0,bt[p>>3]=17976931348623157e292,bt[Se>>3]=-17976931348623157e292,ye=m+(Ft<<5)+16|0,bt[ye>>3]=-17976931348623157e292,(Ge|0)>0){for(Qt=g[C+(S<<3)+4>>2]|0,Bt=17976931348623157e292,Gt=-17976931348623157e292,C=0,S=-1,se=0,H=17976931348623157e292,et=17976931348623157e292,st=-17976931348623157e292,L=-17976931348623157e292;k=+bt[Qt+(se<<4)>>3],Et=+bt[Qt+(se<<4)+8>>3],S=S+2|0,z=+bt[Qt+(((S|0)==(Ge|0)?0:S)<<4)+8>>3],k>3]=k,H=k),Et>3]=Et,et=Et),k>st?bt[Se>>3]=k:k=st,Et>L&&(bt[ye>>3]=Et,L=Et),Bt=Et>0&EtGt?Et:Gt,C=C|+Zr(+(Et-z))>3.141592653589793,S=se+1|0,(S|0)!=(Ge|0);)Oe=se,se=S,st=k,S=Oe;C&&(bt[ye>>3]=Gt,bt[p>>3]=Bt)}}else g[Se>>2]=0,g[Se+4>>2]=0,g[Se+8>>2]=0,g[Se+12>>2]=0,g[Se+16>>2]=0,g[Se+20>>2]=0,g[Se+24>>2]=0,g[Se+28>>2]=0,y=g[Ye>>2]|0;while((Ft|0)<(y|0))}}function ge(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0;if(!(ne(p,m,y)|0))return C=0,C|0;if(C=p+8|0,(g[C>>2]|0)<=0)return C=1,C|0;for(S=p+12|0,p=0;;){if(k=p,p=p+1|0,ne((g[S>>2]|0)+(k<<3)|0,m+(p<<5)|0,y)|0){p=0,S=6;break}if((p|0)>=(g[C>>2]|0)){p=1,S=6;break}}return(S|0)==6?p|0:0}function Ue(){return 8}function ur(){return 16}function Me(){return 168}function ar(){return 8}function He(){return 16}function rn(){return 12}function Jr(){return 8}function Fr(p){p=p|0;var m=0,y=0;return y=+bt[p>>3],m=+bt[p+8>>3],+ +fn(+(y*y+m*m))}function $r(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0;et=+bt[p>>3],H=+bt[m>>3]-et,z=+bt[p+8>>3],L=+bt[m+8>>3]-z,Et=+bt[y>>3],k=+bt[S>>3]-Et,Bt=+bt[y+8>>3],st=+bt[S+8>>3]-Bt,k=(k*(z-Bt)-(et-Et)*st)/(H*st-L*k),bt[C>>3]=et+H*k,bt[C+8>>3]=z+L*k}function On(p,m){return p=p|0,m=m|0,+bt[p>>3]!=+bt[m>>3]?(m=0,m|0):(m=+bt[p+8>>3]==+bt[m+8>>3],m|0)}function Dr(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;return C=+bt[p>>3]-+bt[m>>3],S=+bt[p+8>>3]-+bt[m+8>>3],y=+bt[p+16>>3]-+bt[m+16>>3],+(C*C+S*S+y*y)}function So(p,m){p=p|0,m=m|0;var y=0,S=0,C=0;y=+bt[p>>3],S=+Kr(+y),y=+Yr(+y),bt[m+16>>3]=y,y=+bt[p+8>>3],C=S*+Kr(+y),bt[m>>3]=C,y=S*+Yr(+y),bt[m+8>>3]=y}function Is(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0;if(et=wt,wt=wt+32|0,C=et+16|0,k=et,hl(p,m,C),L=Dn(p,m)|0,H=Us(p,m)|0,i_(L,k),m=pu(L,g[C>>2]|0)|0,!(Mi(L)|0))return H=m,wt=et,H|0;do switch(L|0){case 4:{p=0,y=14;break}case 14:{p=1,y=14;break}case 24:{p=2,y=14;break}case 38:{p=3,y=14;break}case 49:{p=4,y=14;break}case 58:{p=5,y=14;break}case 63:{p=6,y=14;break}case 72:{p=7,y=14;break}case 83:{p=8,y=14;break}case 97:{p=9,y=14;break}case 107:{p=10,y=14;break}case 117:{p=11,y=14;break}default:z=0,S=0}while(!1);return(y|0)==14&&(z=g[22096+(p*24|0)+8>>2]|0,S=g[22096+(p*24|0)+16>>2]|0),p=g[C>>2]|0,(p|0)!=(g[k>>2]|0)&&(L=Ns(L)|0,p=g[C>>2]|0,L|(p|0)==(S|0)&&(m=(m+1|0)%6|0)),(H|0)==3&(p|0)==(S|0)?(H=(m+5|0)%6|0,wt=et,H|0):(H|0)==5&(p|0)==(z|0)?(H=(m+1|0)%6|0,wt=et,H|0):(H=m,wt=et,H|0)}function Mn(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;return S=qn(p,m)|0,(y+-1|0)>>>0>5||(C=(S|0)!=0,(y|0)==1&C)?(y=-1,y|0):(S=Is(p,m)|0,C?(y=(5-S+(g[22384+(y<<2)>>2]|0)|0)%5|0,y|0):(y=(6-S+(g[22416+(y<<2)>>2]|0)|0)%6|0,y|0))}function Vs(p,m,y){p=p|0,m=m|0,y=y|0;var S=0;(m|0)>0?(S=Bi(m,4)|0,g[p>>2]=S,S||Li(23230,23253,40,23267)):g[p>>2]=0,g[p+4>>2]=m,g[p+8>>2]=0,g[p+12>>2]=y}function js(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0;C=p+4|0,k=p+12|0,L=p+8|0;t:for(;;){for(y=g[C>>2]|0,m=0;;){if((m|0)>=(y|0))break t;if(S=g[p>>2]|0,z=g[S+(m<<2)>>2]|0,!z)m=m+1|0;else break}m=S+(~~(+Zr(+(+Fl(10,+ +(15-(g[k>>2]|0)|0))*(+bt[z>>3]+ +bt[z+8>>3])))%+(y|0))>>>0<<2)|0,y=g[m>>2]|0;e:do if(y|0){if(S=z+32|0,(y|0)==(z|0))g[m>>2]=g[S>>2];else{if(y=y+32|0,m=g[y>>2]|0,!m)break;for(;(m|0)!=(z|0);)if(y=m+32|0,m=g[y>>2]|0,!m)break e;g[y>>2]=g[S>>2]}Xe(z),g[L>>2]=(g[L>>2]|0)+-1}while(!1)}Xe(g[p>>2]|0)}function ha(p){p=p|0;var m=0,y=0,S=0;for(S=g[p+4>>2]|0,y=0;;){if((y|0)>=(S|0)){m=0,y=4;break}if(m=g[(g[p>>2]|0)+(y<<2)>>2]|0,!m)y=y+1|0;else{y=4;break}}return(y|0)==4?m|0:0}function Bc(p,m){p=p|0,m=m|0;var y=0,S=0,C=0,k=0;if(y=~~(+Zr(+(+Fl(10,+ +(15-(g[p+12>>2]|0)|0))*(+bt[m>>3]+ +bt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,y=(g[p>>2]|0)+(y<<2)|0,S=g[y>>2]|0,!S)return k=1,k|0;k=m+32|0;do if((S|0)!=(m|0)){if(y=g[S+32>>2]|0,!y)return k=1,k|0;for(C=y;;){if((C|0)==(m|0)){C=8;break}if(y=g[C+32>>2]|0,y)S=C,C=y;else{y=1,C=10;break}}if((C|0)==8){g[S+32>>2]=g[k>>2];break}else if((C|0)==10)return y|0}else g[y>>2]=g[k>>2];while(!1);return Xe(m),k=p+8|0,g[k>>2]=(g[k>>2]|0)+-1,k=0,k|0}function Lf(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0;k=dn(40)|0,k||Li(23283,23253,98,23296),g[k>>2]=g[m>>2],g[k+4>>2]=g[m+4>>2],g[k+8>>2]=g[m+8>>2],g[k+12>>2]=g[m+12>>2],C=k+16|0,g[C>>2]=g[y>>2],g[C+4>>2]=g[y+4>>2],g[C+8>>2]=g[y+8>>2],g[C+12>>2]=g[y+12>>2],g[k+32>>2]=0,C=~~(+Zr(+(+Fl(10,+ +(15-(g[p+12>>2]|0)|0))*(+bt[m>>3]+ +bt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,C=(g[p>>2]|0)+(C<<2)|0,S=g[C>>2]|0;do if(!S)g[C>>2]=k;else{for(;!(Nl(S,m)|0&&Nl(S+16|0,y)|0);)if(C=g[S+32>>2]|0,S=C|0?C:S,!(g[S+32>>2]|0)){L=10;break}if((L|0)==10){g[S+32>>2]=k;break}return Xe(k),L=S,L|0}while(!1);return L=p+8|0,g[L>>2]=(g[L>>2]|0)+1,L=k,L|0}function kf(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0;if(C=~~(+Zr(+(+Fl(10,+ +(15-(g[p+12>>2]|0)|0))*(+bt[m>>3]+ +bt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,C=g[(g[p>>2]|0)+(C<<2)>>2]|0,!C)return y=0,y|0;if(!y){for(p=C;;){if(Nl(p,m)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}if((S|0)==10)return p|0}for(p=C;;){if(Nl(p,m)|0&&Nl(p+16|0,y)|0){S=10;break}if(p=g[p+32>>2]|0,!p){p=0,S=10;break}}return(S|0)==10?p|0:0}function bu(p,m){p=p|0,m=m|0;var y=0;if(y=~~(+Zr(+(+Fl(10,+ +(15-(g[p+12>>2]|0)|0))*(+bt[m>>3]+ +bt[m+8>>3])))%+(g[p+4>>2]|0))>>>0,p=g[(g[p>>2]|0)+(y<<2)>>2]|0,!p)return y=0,y|0;for(;;){if(Nl(p,m)|0){m=5;break}if(p=g[p+32>>2]|0,!p){p=0,m=5;break}}return(m|0)==5?p|0:0}function us(){return 23312}function Zn(p){return p=+p,+ +a0(+p)}function nn(p){return p=+p,~~+Zn(p)|0}function dn(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0,se=0,Se=0,Ge=0,Kt=0,ye=0,Ft=0,qe=0;qe=wt,wt=wt+16|0,Bt=qe;do if(p>>>0<245){if(et=p>>>0<11?16:p+11&-8,p=et>>>3,Et=g[5829]|0,y=Et>>>p,y&3|0)return m=(y&1^1)+p|0,p=23356+(m<<1<<2)|0,y=p+8|0,S=g[y>>2]|0,C=S+8|0,k=g[C>>2]|0,(k|0)==(p|0)?g[5829]=Et&~(1<>2]=p,g[y>>2]=k),Ft=m<<3,g[S+4>>2]=Ft|3,Ft=S+Ft+4|0,g[Ft>>2]=g[Ft>>2]|1,Ft=C,wt=qe,Ft|0;if(st=g[5831]|0,et>>>0>st>>>0){if(y|0)return m=2<>>12&16,m=m>>>z,y=m>>>5&8,m=m>>>y,k=m>>>2&4,m=m>>>k,p=m>>>1&2,m=m>>>p,S=m>>>1&1,S=(y|z|k|p|S)+(m>>>S)|0,m=23356+(S<<1<<2)|0,p=m+8|0,k=g[p>>2]|0,z=k+8|0,y=g[z>>2]|0,(y|0)==(m|0)?(p=Et&~(1<>2]=m,g[p>>2]=y,p=Et),Ft=S<<3,L=Ft-et|0,g[k+4>>2]=et|3,C=k+et|0,g[C+4>>2]=L|1,g[k+Ft>>2]=L,st|0&&(S=g[5834]|0,m=st>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=L,g[5834]=C,Ft=z,wt=qe,Ft|0;if(k=g[5830]|0,k){for(y=(k&0-k)+-1|0,C=y>>>12&16,y=y>>>C,S=y>>>5&8,y=y>>>S,L=y>>>2&4,y=y>>>L,z=y>>>1&2,y=y>>>z,H=y>>>1&1,H=g[23620+((S|C|L|z|H)+(y>>>H)<<2)>>2]|0,y=H,z=H,H=(g[H+4>>2]&-8)-et|0;p=g[y+16>>2]|0,!(!p&&(p=g[y+20>>2]|0,!p));)L=(g[p+4>>2]&-8)-et|0,C=L>>>0>>0,y=p,z=C?p:z,H=C?L:H;if(L=z+et|0,L>>>0>z>>>0){C=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){y=0;break}for(;;)if(S=m+20|0,y=g[S>>2]|0,y)m=y,p=S;else if(S=m+16|0,y=g[S>>2]|0,y)m=y,p=S;else break;g[p>>2]=0,y=m}else y=g[z+8>>2]|0,g[y+12>>2]=m,g[m+8>>2]=y,y=m;while(!1);do if(C|0){if(m=g[z+28>>2]|0,p=23620+(m<<2)|0,(z|0)==(g[p>>2]|0)){if(g[p>>2]=y,!y){g[5830]=k&~(1<>2]|0)==(z|0)?Ft:C+20|0)>>2]=y,!y)break;g[y+24>>2]=C,m=g[z+16>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),m=g[z+20>>2]|0,m|0&&(g[y+20>>2]=m,g[m+24>>2]=y)}while(!1);return H>>>0<16?(Ft=H+et|0,g[z+4>>2]=Ft|3,Ft=z+Ft+4|0,g[Ft>>2]=g[Ft>>2]|1):(g[z+4>>2]=et|3,g[L+4>>2]=H|1,g[L+H>>2]=H,st|0&&(S=g[5834]|0,m=st>>>3,y=23356+(m<<1<<2)|0,m=1<>2]|0):(g[5829]=m|Et,m=y,p=y+8|0),g[p>>2]=S,g[m+12>>2]=S,g[S+8>>2]=m,g[S+12>>2]=y),g[5831]=H,g[5834]=L),Ft=z+8|0,wt=qe,Ft|0}else Et=et}else Et=et}else Et=et}else if(p>>>0<=4294967231)if(p=p+11|0,et=p&-8,S=g[5830]|0,S){C=0-et|0,p=p>>>8,p?et>>>0>16777215?H=31:(Et=(p+1048320|0)>>>16&8,se=p<>>16&4,se=se<>>16&2,H=14-(z|Et|H)+(se<>>15)|0,H=et>>>(H+7|0)&1|H<<1):H=0,y=g[23620+(H<<2)>>2]|0;t:do if(!y)y=0,p=0,se=61;else for(p=0,z=et<<((H|0)==31?0:25-(H>>>1)|0),k=0;;){if(L=(g[y+4>>2]&-8)-et|0,L>>>0>>0)if(L)p=y,C=L;else{p=y,C=0,se=65;break t}if(se=g[y+20>>2]|0,y=g[y+16+(z>>>31<<2)>>2]|0,k=(se|0)==0|(se|0)==(y|0)?k:se,y)z=z<<1;else{y=k,se=61;break}}while(!1);if((se|0)==61){if((y|0)==0&(p|0)==0){if(p=2<>>12&16,Et=Et>>>L,k=Et>>>5&8,Et=Et>>>k,z=Et>>>2&4,Et=Et>>>z,H=Et>>>1&2,Et=Et>>>H,y=Et>>>1&1,p=0,y=g[23620+((k|L|z|H|y)+(Et>>>y)<<2)>>2]|0}y?se=65:(z=p,L=C)}if((se|0)==65)for(k=y;;)if(Et=(g[k+4>>2]&-8)-et|0,y=Et>>>0>>0,C=y?Et:C,p=y?k:p,y=g[k+16>>2]|0,y||(y=g[k+20>>2]|0),y)k=y;else{z=p,L=C;break}if(z|0&&L>>>0<((g[5831]|0)-et|0)>>>0&&(st=z+et|0,st>>>0>z>>>0)){k=g[z+24>>2]|0,m=g[z+12>>2]|0;do if((m|0)==(z|0)){if(p=z+20|0,m=g[p>>2]|0,!m&&(p=z+16|0,m=g[p>>2]|0,!m)){m=0;break}for(;;)if(C=m+20|0,y=g[C>>2]|0,y)m=y,p=C;else if(C=m+16|0,y=g[C>>2]|0,y)m=y,p=C;else break;g[p>>2]=0}else Ft=g[z+8>>2]|0,g[Ft+12>>2]=m,g[m+8>>2]=Ft;while(!1);do if(k){if(p=g[z+28>>2]|0,y=23620+(p<<2)|0,(z|0)==(g[y>>2]|0)){if(g[y>>2]=m,!m){S=S&~(1<>2]|0)==(z|0)?Ft:k+20|0)>>2]=m,!m)break;g[m+24>>2]=k,p=g[z+16>>2]|0,p|0&&(g[m+16>>2]=p,g[p+24>>2]=m),p=g[z+20>>2]|0,p&&(g[m+20>>2]=p,g[p+24>>2]=m)}while(!1);t:do if(L>>>0<16)Ft=L+et|0,g[z+4>>2]=Ft|3,Ft=z+Ft+4|0,g[Ft>>2]=g[Ft>>2]|1;else{if(g[z+4>>2]=et|3,g[st+4>>2]=L|1,g[st+L>>2]=L,m=L>>>3,L>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=st,g[m+12>>2]=st,g[st+8>>2]=m,g[st+12>>2]=y;break}if(m=L>>>8,m?L>>>0>16777215?y=31:(ye=(m+1048320|0)>>>16&8,Ft=m<>>16&4,Ft=Ft<>>16&2,y=14-(Kt|ye|y)+(Ft<>>15)|0,y=L>>>(y+7|0)&1|y<<1):y=0,m=23620+(y<<2)|0,g[st+28>>2]=y,p=st+16|0,g[p+4>>2]=0,g[p>>2]=0,p=1<>2]=st,g[st+24>>2]=m,g[st+12>>2]=st,g[st+8>>2]=st;break}m=g[m>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(L|0)){for(S=L<<((y|0)==31?0:25-(y>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(L|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=st,g[st+24>>2]=m,g[st+12>>2]=st,g[st+8>>2]=st;break t}while(!1);ye=m+8|0,Ft=g[ye>>2]|0,g[Ft+12>>2]=st,g[ye>>2]=st,g[st+8>>2]=Ft,g[st+12>>2]=m,g[st+24>>2]=0}while(!1);return Ft=z+8|0,wt=qe,Ft|0}else Et=et}else Et=et;else Et=-1;while(!1);if(y=g[5831]|0,y>>>0>=Et>>>0)return m=y-Et|0,p=g[5834]|0,m>>>0>15?(Ft=p+Et|0,g[5834]=Ft,g[5831]=m,g[Ft+4>>2]=m|1,g[p+y>>2]=m,g[p+4>>2]=Et|3):(g[5831]=0,g[5834]=0,g[p+4>>2]=y|3,Ft=p+y+4|0,g[Ft>>2]=g[Ft>>2]|1),Ft=p+8|0,wt=qe,Ft|0;if(L=g[5832]|0,L>>>0>Et>>>0)return Kt=L-Et|0,g[5832]=Kt,Ft=g[5835]|0,ye=Ft+Et|0,g[5835]=ye,g[ye+4>>2]=Kt|1,g[Ft+4>>2]=Et|3,Ft=Ft+8|0,wt=qe,Ft|0;if(g[5947]|0?p=g[5949]|0:(g[5949]=4096,g[5948]=4096,g[5950]=-1,g[5951]=-1,g[5952]=0,g[5940]=0,g[5947]=Bt&-16^1431655768,p=4096),z=Et+48|0,H=Et+47|0,k=p+H|0,C=0-p|0,et=k&C,et>>>0<=Et>>>0||(p=g[5939]|0,p|0&&(st=g[5937]|0,Bt=st+et|0,Bt>>>0<=st>>>0|Bt>>>0>p>>>0)))return Ft=0,wt=qe,Ft|0;t:do if(g[5940]&4)m=0,se=143;else{y=g[5835]|0;e:do if(y){for(S=23764;Bt=g[S>>2]|0,!(Bt>>>0<=y>>>0&&(Bt+(g[S+4>>2]|0)|0)>>>0>y>>>0);)if(p=g[S+8>>2]|0,p)S=p;else{se=128;break e}if(m=k-L&C,m>>>0<2147483647)if(p=fl(m|0)|0,(p|0)==((g[S>>2]|0)+(g[S+4>>2]|0)|0)){if((p|0)!=-1){L=m,k=p,se=145;break t}}else S=p,se=136;else m=0}else se=128;while(!1);do if((se|0)==128)if(y=fl(0)|0,(y|0)!=-1&&(m=y,Gt=g[5948]|0,Qt=Gt+-1|0,m=(Qt&m|0?(Qt+m&0-Gt)-m|0:0)+et|0,Gt=g[5937]|0,Qt=m+Gt|0,m>>>0>Et>>>0&m>>>0<2147483647)){if(Bt=g[5939]|0,Bt|0&&Qt>>>0<=Gt>>>0|Qt>>>0>Bt>>>0){m=0;break}if(p=fl(m|0)|0,(p|0)==(y|0)){L=m,k=y,se=145;break t}else S=p,se=136}else m=0;while(!1);do if((se|0)==136){if(y=0-m|0,!(z>>>0>m>>>0&(m>>>0<2147483647&(S|0)!=-1)))if((S|0)==-1){m=0;break}else{L=m,k=S,se=145;break t}if(p=g[5949]|0,p=H-m+p&0-p,p>>>0>=2147483647){L=m,k=S,se=145;break t}if((fl(p|0)|0)==-1){fl(y|0)|0,m=0;break}else{L=p+m|0,k=S,se=145;break t}}while(!1);g[5940]=g[5940]|4,se=143}while(!1);if((se|0)==143&&et>>>0<2147483647&&(Kt=fl(et|0)|0,Qt=fl(0)|0,Se=Qt-Kt|0,Ge=Se>>>0>(Et+40|0)>>>0,!((Kt|0)==-1|Ge^1|Kt>>>0>>0&((Kt|0)!=-1&(Qt|0)!=-1)^1))&&(L=Ge?Se:m,k=Kt,se=145),(se|0)==145){m=(g[5937]|0)+L|0,g[5937]=m,m>>>0>(g[5938]|0)>>>0&&(g[5938]=m),H=g[5835]|0;t:do if(H){for(m=23764;;){if(p=g[m>>2]|0,y=g[m+4>>2]|0,(k|0)==(p+y|0)){se=154;break}if(S=g[m+8>>2]|0,S)m=S;else break}if((se|0)==154&&(ye=m+4|0,(g[m+12>>2]&8|0)==0)&&k>>>0>H>>>0&p>>>0<=H>>>0){g[ye>>2]=y+L,Ft=(g[5832]|0)+L|0,Kt=H+8|0,Kt=Kt&7|0?0-Kt&7:0,ye=H+Kt|0,Kt=Ft-Kt|0,g[5835]=ye,g[5832]=Kt,g[ye+4>>2]=Kt|1,g[H+Ft+4>>2]=40,g[5836]=g[5951];break}for(k>>>0<(g[5833]|0)>>>0&&(g[5833]=k),y=k+L|0,m=23764;;){if((g[m>>2]|0)==(y|0)){se=162;break}if(p=g[m+8>>2]|0,p)m=p;else break}if((se|0)==162&&!(g[m+12>>2]&8|0)){g[m>>2]=k,st=m+4|0,g[st>>2]=(g[st>>2]|0)+L,st=k+8|0,st=k+(st&7|0?0-st&7:0)|0,m=y+8|0,m=y+(m&7|0?0-m&7:0)|0,et=st+Et|0,z=m-st-Et|0,g[st+4>>2]=Et|3;e:do if((H|0)==(m|0))Ft=(g[5832]|0)+z|0,g[5832]=Ft,g[5835]=et,g[et+4>>2]=Ft|1;else{if((g[5834]|0)==(m|0)){Ft=(g[5831]|0)+z|0,g[5831]=Ft,g[5834]=et,g[et+4>>2]=Ft|1,g[et+Ft>>2]=Ft;break}if(p=g[m+4>>2]|0,(p&3|0)==1){L=p&-8,S=p>>>3;r:do if(p>>>0<256)if(p=g[m+8>>2]|0,y=g[m+12>>2]|0,(y|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=y,g[y+8>>2]=p;break}else{k=g[m+24>>2]|0,p=g[m+12>>2]|0;do if((p|0)==(m|0)){if(y=m+16|0,S=y+4|0,p=g[S>>2]|0,p)y=S;else if(p=g[y>>2]|0,!p){p=0;break}for(;;)if(C=p+20|0,S=g[C>>2]|0,S)p=S,y=C;else if(C=p+16|0,S=g[C>>2]|0,S)p=S,y=C;else break;g[y>>2]=0}else Ft=g[m+8>>2]|0,g[Ft+12>>2]=p,g[p+8>>2]=Ft;while(!1);if(!k)break;y=g[m+28>>2]|0,S=23620+(y<<2)|0;do if((g[S>>2]|0)!=(m|0)){if(Ft=k+16|0,g[((g[Ft>>2]|0)==(m|0)?Ft:k+20|0)>>2]=p,!p)break r}else{if(g[S>>2]=p,p|0)break;g[5830]=g[5830]&~(1<>2]=k,y=m+16|0,S=g[y>>2]|0,S|0&&(g[p+16>>2]=S,g[S+24>>2]=p),y=g[y+4>>2]|0,!y)break;g[p+20>>2]=y,g[y+24>>2]=p}while(!1);m=m+L|0,C=L+z|0}else C=z;if(m=m+4|0,g[m>>2]=g[m>>2]&-2,g[et+4>>2]=C|1,g[et+C>>2]=C,m=C>>>3,C>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=et,g[m+12>>2]=et,g[et+8>>2]=m,g[et+12>>2]=y;break}m=C>>>8;do if(!m)S=0;else{if(C>>>0>16777215){S=31;break}ye=(m+1048320|0)>>>16&8,Ft=m<>>16&4,Ft=Ft<>>16&2,S=14-(Kt|ye|S)+(Ft<>>15)|0,S=C>>>(S+7|0)&1|S<<1}while(!1);if(m=23620+(S<<2)|0,g[et+28>>2]=S,p=et+16|0,g[p+4>>2]=0,g[p>>2]=0,p=g[5830]|0,y=1<>2]=et,g[et+24>>2]=m,g[et+12>>2]=et,g[et+8>>2]=et;break}m=g[m>>2]|0;r:do if((g[m+4>>2]&-8|0)!=(C|0)){for(S=C<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(C|0)){m=p;break r}else S=S<<1,m=p;g[y>>2]=et,g[et+24>>2]=m,g[et+12>>2]=et,g[et+8>>2]=et;break e}while(!1);ye=m+8|0,Ft=g[ye>>2]|0,g[Ft+12>>2]=et,g[ye>>2]=et,g[et+8>>2]=Ft,g[et+12>>2]=m,g[et+24>>2]=0}while(!1);return Ft=st+8|0,wt=qe,Ft|0}for(m=23764;p=g[m>>2]|0,!(p>>>0<=H>>>0&&(Ft=p+(g[m+4>>2]|0)|0,Ft>>>0>H>>>0));)m=g[m+8>>2]|0;C=Ft+-47|0,p=C+8|0,p=C+(p&7|0?0-p&7:0)|0,C=H+16|0,p=p>>>0>>0?H:p,m=p+8|0,y=L+-40|0,Kt=k+8|0,Kt=Kt&7|0?0-Kt&7:0,ye=k+Kt|0,Kt=y-Kt|0,g[5835]=ye,g[5832]=Kt,g[ye+4>>2]=Kt|1,g[k+y+4>>2]=40,g[5836]=g[5951],y=p+4|0,g[y>>2]=27,g[m>>2]=g[5941],g[m+4>>2]=g[5942],g[m+8>>2]=g[5943],g[m+12>>2]=g[5944],g[5941]=k,g[5942]=L,g[5944]=0,g[5943]=m,m=p+24|0;do ye=m,m=m+4|0,g[m>>2]=7;while((ye+8|0)>>>0>>0);if((p|0)!=(H|0)){if(k=p-H|0,g[y>>2]=g[y>>2]&-2,g[H+4>>2]=k|1,g[p>>2]=k,m=k>>>3,k>>>0<256){y=23356+(m<<1<<2)|0,p=g[5829]|0,m=1<>2]|0):(g[5829]=p|m,m=y,p=y+8|0),g[p>>2]=H,g[m+12>>2]=H,g[H+8>>2]=m,g[H+12>>2]=y;break}if(m=k>>>8,m?k>>>0>16777215?S=31:(ye=(m+1048320|0)>>>16&8,Ft=m<>>16&4,Ft=Ft<>>16&2,S=14-(Kt|ye|S)+(Ft<>>15)|0,S=k>>>(S+7|0)&1|S<<1):S=0,y=23620+(S<<2)|0,g[H+28>>2]=S,g[H+20>>2]=0,g[C>>2]=0,m=g[5830]|0,p=1<>2]=H,g[H+24>>2]=y,g[H+12>>2]=H,g[H+8>>2]=H;break}m=g[y>>2]|0;e:do if((g[m+4>>2]&-8|0)!=(k|0)){for(S=k<<((S|0)==31?0:25-(S>>>1)|0);y=m+16+(S>>>31<<2)|0,p=g[y>>2]|0,!!p;)if((g[p+4>>2]&-8|0)==(k|0)){m=p;break e}else S=S<<1,m=p;g[y>>2]=H,g[H+24>>2]=m,g[H+12>>2]=H,g[H+8>>2]=H;break t}while(!1);ye=m+8|0,Ft=g[ye>>2]|0,g[Ft+12>>2]=H,g[ye>>2]=H,g[H+8>>2]=Ft,g[H+12>>2]=m,g[H+24>>2]=0}}else Ft=g[5833]|0,(Ft|0)==0|k>>>0>>0&&(g[5833]=k),g[5941]=k,g[5942]=L,g[5944]=0,g[5838]=g[5947],g[5837]=-1,g[5842]=23356,g[5841]=23356,g[5844]=23364,g[5843]=23364,g[5846]=23372,g[5845]=23372,g[5848]=23380,g[5847]=23380,g[5850]=23388,g[5849]=23388,g[5852]=23396,g[5851]=23396,g[5854]=23404,g[5853]=23404,g[5856]=23412,g[5855]=23412,g[5858]=23420,g[5857]=23420,g[5860]=23428,g[5859]=23428,g[5862]=23436,g[5861]=23436,g[5864]=23444,g[5863]=23444,g[5866]=23452,g[5865]=23452,g[5868]=23460,g[5867]=23460,g[5870]=23468,g[5869]=23468,g[5872]=23476,g[5871]=23476,g[5874]=23484,g[5873]=23484,g[5876]=23492,g[5875]=23492,g[5878]=23500,g[5877]=23500,g[5880]=23508,g[5879]=23508,g[5882]=23516,g[5881]=23516,g[5884]=23524,g[5883]=23524,g[5886]=23532,g[5885]=23532,g[5888]=23540,g[5887]=23540,g[5890]=23548,g[5889]=23548,g[5892]=23556,g[5891]=23556,g[5894]=23564,g[5893]=23564,g[5896]=23572,g[5895]=23572,g[5898]=23580,g[5897]=23580,g[5900]=23588,g[5899]=23588,g[5902]=23596,g[5901]=23596,g[5904]=23604,g[5903]=23604,Ft=L+-40|0,Kt=k+8|0,Kt=Kt&7|0?0-Kt&7:0,ye=k+Kt|0,Kt=Ft-Kt|0,g[5835]=ye,g[5832]=Kt,g[ye+4>>2]=Kt|1,g[k+Ft+4>>2]=40,g[5836]=g[5951];while(!1);if(m=g[5832]|0,m>>>0>Et>>>0)return Kt=m-Et|0,g[5832]=Kt,Ft=g[5835]|0,ye=Ft+Et|0,g[5835]=ye,g[ye+4>>2]=Kt|1,g[Ft+4>>2]=Et|3,Ft=Ft+8|0,wt=qe,Ft|0}return Ft=us()|0,g[Ft>>2]=12,Ft=0,wt=qe,Ft|0}function Xe(p){p=p|0;var m=0,y=0,S=0,C=0,k=0,L=0,z=0,H=0;if(p){y=p+-8|0,C=g[5833]|0,p=g[p+-4>>2]|0,m=p&-8,H=y+m|0;do if(p&1)z=y,L=y;else{if(S=g[y>>2]|0,!(p&3)||(L=y+(0-S)|0,k=S+m|0,L>>>0>>0))return;if((g[5834]|0)==(L|0)){if(p=H+4|0,m=g[p>>2]|0,(m&3|0)!=3){z=L,m=k;break}g[5831]=k,g[p>>2]=m&-2,g[L+4>>2]=k|1,g[L+k>>2]=k;return}if(y=S>>>3,S>>>0<256)if(p=g[L+8>>2]|0,m=g[L+12>>2]|0,(m|0)==(p|0)){g[5829]=g[5829]&~(1<>2]=m,g[m+8>>2]=p,z=L,m=k;break}C=g[L+24>>2]|0,p=g[L+12>>2]|0;do if((p|0)==(L|0)){if(m=L+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){p=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0}else z=g[L+8>>2]|0,g[z+12>>2]=p,g[p+8>>2]=z;while(!1);if(C){if(m=g[L+28>>2]|0,y=23620+(m<<2)|0,(g[y>>2]|0)==(L|0)){if(g[y>>2]=p,!p){g[5830]=g[5830]&~(1<>2]|0)==(L|0)?z:C+20|0)>>2]=p,!p){z=L,m=k;break}g[p+24>>2]=C,m=L+16|0,y=g[m>>2]|0,y|0&&(g[p+16>>2]=y,g[y+24>>2]=p),m=g[m+4>>2]|0,m?(g[p+20>>2]=m,g[m+24>>2]=p,z=L,m=k):(z=L,m=k)}else z=L,m=k}while(!1);if(!(L>>>0>=H>>>0)&&(p=H+4|0,S=g[p>>2]|0,!!(S&1))){if(S&2)g[p>>2]=S&-2,g[z+4>>2]=m|1,g[L+m>>2]=m,C=m;else{if((g[5835]|0)==(H|0)){if(H=(g[5832]|0)+m|0,g[5832]=H,g[5835]=z,g[z+4>>2]=H|1,(z|0)!=(g[5834]|0))return;g[5834]=0,g[5831]=0;return}if((g[5834]|0)==(H|0)){H=(g[5831]|0)+m|0,g[5831]=H,g[5834]=L,g[z+4>>2]=H|1,g[L+H>>2]=H;return}C=(S&-8)+m|0,y=S>>>3;do if(S>>>0<256)if(m=g[H+8>>2]|0,p=g[H+12>>2]|0,(p|0)==(m|0)){g[5829]=g[5829]&~(1<>2]=p,g[p+8>>2]=m;break}else{k=g[H+24>>2]|0,p=g[H+12>>2]|0;do if((p|0)==(H|0)){if(m=H+16|0,y=m+4|0,p=g[y>>2]|0,p)m=y;else if(p=g[m>>2]|0,!p){y=0;break}for(;;)if(S=p+20|0,y=g[S>>2]|0,y)p=y,m=S;else if(S=p+16|0,y=g[S>>2]|0,y)p=y,m=S;else break;g[m>>2]=0,y=p}else y=g[H+8>>2]|0,g[y+12>>2]=p,g[p+8>>2]=y,y=p;while(!1);if(k|0){if(p=g[H+28>>2]|0,m=23620+(p<<2)|0,(g[m>>2]|0)==(H|0)){if(g[m>>2]=y,!y){g[5830]=g[5830]&~(1<>2]|0)==(H|0)?S:k+20|0)>>2]=y,!y)break;g[y+24>>2]=k,p=H+16|0,m=g[p>>2]|0,m|0&&(g[y+16>>2]=m,g[m+24>>2]=y),p=g[p+4>>2]|0,p|0&&(g[y+20>>2]=p,g[p+24>>2]=y)}}while(!1);if(g[z+4>>2]=C|1,g[L+C>>2]=C,(z|0)==(g[5834]|0)){g[5831]=C;return}}if(p=C>>>3,C>>>0<256){y=23356+(p<<1<<2)|0,m=g[5829]|0,p=1<>2]|0):(g[5829]=m|p,p=y,m=y+8|0),g[m>>2]=z,g[p+12>>2]=z,g[z+8>>2]=p,g[z+12>>2]=y;return}p=C>>>8,p?C>>>0>16777215?S=31:(L=(p+1048320|0)>>>16&8,H=p<>>16&4,H=H<>>16&2,S=14-(k|L|S)+(H<>>15)|0,S=C>>>(S+7|0)&1|S<<1):S=0,p=23620+(S<<2)|0,g[z+28>>2]=S,g[z+20>>2]=0,g[z+16>>2]=0,m=g[5830]|0,y=1<>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;else{p=g[p>>2]|0;e:do if((g[p+4>>2]&-8|0)!=(C|0)){for(S=C<<((S|0)==31?0:25-(S>>>1)|0);y=p+16+(S>>>31<<2)|0,m=g[y>>2]|0,!!m;)if((g[m+4>>2]&-8|0)==(C|0)){p=m;break e}else S=S<<1,p=m;g[y>>2]=z,g[z+24>>2]=p,g[z+12>>2]=z,g[z+8>>2]=z;break t}while(!1);L=p+8|0,H=g[L>>2]|0,g[H+12>>2]=z,g[L>>2]=z,g[z+8>>2]=H,g[z+12>>2]=p,g[z+24>>2]=0}while(!1);if(H=(g[5837]|0)+-1|0,g[5837]=H,!(H|0)){for(p=23772;p=g[p>>2]|0,p;)p=p+8|0;g[5837]=-1}}}}function Bi(p,m){p=p|0,m=m|0;var y=0;return p?(y=Fa(m,p)|0,(m|p)>>>0>65535&&(y=((y>>>0)/(p>>>0)|0|0)==(m|0)?y:-1)):y=0,p=dn(y)|0,!p||!(g[p+-4>>2]&3)||fa(p|0,0,y|0)|0,p|0}function Cs(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,y=p+y>>>0,Sr(m+S+(y>>>0

>>0|0)>>>0|0),y|0|0}function En(p,m,y,S){return p=p|0,m=m|0,y=y|0,S=S|0,S=m-S-(y>>>0>p>>>0|0)>>>0,Sr(S|0),p-y>>>0|0|0}function o0(p){return p=p|0,(p?31-(du(p^p-1)|0)|0:32)|0}function Bn(p,m,y,S,C){p=p|0,m=m|0,y=y|0,S=S|0,C=C|0;var k=0,L=0,z=0,H=0,et=0,st=0,Et=0,Bt=0,Gt=0,Qt=0;if(st=p,H=m,et=H,L=y,Bt=S,z=Bt,!et)return k=(C|0)!=0,z?k?(g[C>>2]=p|0,g[C+4>>2]=m&0,Bt=0,C=0,Sr(Bt|0),C|0):(Bt=0,C=0,Sr(Bt|0),C|0):(k&&(g[C>>2]=(st>>>0)%(L>>>0),g[C+4>>2]=0),Bt=0,C=(st>>>0)/(L>>>0)>>>0,Sr(Bt|0),C|0);k=(z|0)==0;do if(L){if(!k){if(k=(du(z|0)|0)-(du(et|0)|0)|0,k>>>0<=31){Et=k+1|0,z=31-k|0,m=k-31>>31,L=Et,p=st>>>(Et>>>0)&m|et<>>(Et>>>0)&m,k=0,z=st<>2]=p|0,g[C+4>>2]=H|m&0,Bt=0,C=0,Sr(Bt|0),C|0):(Bt=0,C=0,Sr(Bt|0),C|0)}if(k=L-1|0,k&L|0){z=(du(L|0)|0)+33-(du(et|0)|0)|0,Qt=64-z|0,Et=32-z|0,H=Et>>31,Gt=z-32|0,m=Gt>>31,L=z,p=Et-1>>31&et>>>(Gt>>>0)|(et<>>(z>>>0))&m,m=m&et>>>(z>>>0),k=st<>>(Gt>>>0))&H|st<>31;break}return C|0&&(g[C>>2]=k&st,g[C+4>>2]=0),(L|0)==1?(Gt=H|m&0,Qt=p|0|0,Sr(Gt|0),Qt|0):(Qt=o0(L|0)|0,Gt=et>>>(Qt>>>0)|0,Qt=et<<32-Qt|st>>>(Qt>>>0)|0,Sr(Gt|0),Qt|0)}else{if(k)return C|0&&(g[C>>2]=(et>>>0)%(L>>>0),g[C+4>>2]=0),Gt=0,Qt=(et>>>0)/(L>>>0)>>>0,Sr(Gt|0),Qt|0;if(!st)return C|0&&(g[C>>2]=0,g[C+4>>2]=(et>>>0)%(z>>>0)),Gt=0,Qt=(et>>>0)/(z>>>0)>>>0,Sr(Gt|0),Qt|0;if(k=z-1|0,!(k&z))return C|0&&(g[C>>2]=p|0,g[C+4>>2]=k&et|m&0),Gt=0,Qt=et>>>((o0(z|0)|0)>>>0),Sr(Gt|0),Qt|0;if(k=(du(z|0)|0)-(du(et|0)|0)|0,k>>>0<=30){m=k+1|0,z=31-k|0,L=m,p=et<>>(m>>>0),m=et>>>(m>>>0),k=0,z=st<>2]=p|0,g[C+4>>2]=H|m&0,Gt=0,Qt=0,Sr(Gt|0),Qt|0):(Gt=0,Qt=0,Sr(Gt|0),Qt|0)}while(!1);if(!L)et=z,H=0,z=0;else{Et=y|0|0,st=Bt|S&0,et=Cs(Et|0,st|0,-1,-1)|0,y=Pt()|0,H=z,z=0;do S=H,H=k>>>31|H<<1,k=z|k<<1,S=p<<1|S>>>31|0,Bt=p>>>31|m<<1|0,En(et|0,y|0,S|0,Bt|0)|0,Qt=Pt()|0,Gt=Qt>>31|((Qt|0)<0?-1:0)<<1,z=Gt&1,p=En(S|0,Bt|0,Gt&Et|0,(((Qt|0)<0?-1:0)>>31|((Qt|0)<0?-1:0)<<1)&st|0)|0,m=Pt()|0,L=L-1|0;while(L|0);et=H,H=0}return L=0,C|0&&(g[C>>2]=p,g[C+4>>2]=m),Gt=(k|0)>>>31|(et|L)<<1|(L<<1|k>>>31)&0|H,Qt=(k<<1|0)&-2|z,Sr(Gt|0),Qt|0}function Ul(p,m,y,S){p=p|0,m=m|0,y=y|0,S=S|0;var C=0,k=0;return k=wt,wt=wt+16|0,C=k|0,Bn(p,m,y,S,C)|0,wt=k,Sr(g[C+4>>2]|0),g[C>>2]|0|0}function ve(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?(Sr(m>>>y|0),p>>>y|(m&(1<>>y-32|0)}function De(p,m,y){return p=p|0,m=m|0,y=y|0,(y|0)<32?(Sr(m<>>32-y|0),p<=0?+oo(p+.5):+si(p-.5)}function ph(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0;if((y|0)>=8192)return en(p|0,m|0,y|0)|0,p|0;if(k=p|0,C=p+y|0,(p&3)==(m&3)){for(;p&3;){if(!y)return k|0;yr[p>>0]=yr[m>>0]|0,p=p+1|0,m=m+1|0,y=y-1|0}for(y=C&-4|0,S=y-64|0;(p|0)<=(S|0);)g[p>>2]=g[m>>2],g[p+4>>2]=g[m+4>>2],g[p+8>>2]=g[m+8>>2],g[p+12>>2]=g[m+12>>2],g[p+16>>2]=g[m+16>>2],g[p+20>>2]=g[m+20>>2],g[p+24>>2]=g[m+24>>2],g[p+28>>2]=g[m+28>>2],g[p+32>>2]=g[m+32>>2],g[p+36>>2]=g[m+36>>2],g[p+40>>2]=g[m+40>>2],g[p+44>>2]=g[m+44>>2],g[p+48>>2]=g[m+48>>2],g[p+52>>2]=g[m+52>>2],g[p+56>>2]=g[m+56>>2],g[p+60>>2]=g[m+60>>2],p=p+64|0,m=m+64|0;for(;(p|0)<(y|0);)g[p>>2]=g[m>>2],p=p+4|0,m=m+4|0}else for(y=C-4|0;(p|0)<(y|0);)yr[p>>0]=yr[m>>0]|0,yr[p+1>>0]=yr[m+1>>0]|0,yr[p+2>>0]=yr[m+2>>0]|0,yr[p+3>>0]=yr[m+3>>0]|0,p=p+4|0,m=m+4|0;for(;(p|0)<(C|0);)yr[p>>0]=yr[m>>0]|0,p=p+1|0,m=m+1|0;return k|0}function fa(p,m,y){p=p|0,m=m|0,y=y|0;var S=0,C=0,k=0,L=0;if(k=p+y|0,m=m&255,(y|0)>=67){for(;p&3;)yr[p>>0]=m,p=p+1|0;for(S=k&-4|0,L=m|m<<8|m<<16|m<<24,C=S-64|0;(p|0)<=(C|0);)g[p>>2]=L,g[p+4>>2]=L,g[p+8>>2]=L,g[p+12>>2]=L,g[p+16>>2]=L,g[p+20>>2]=L,g[p+24>>2]=L,g[p+28>>2]=L,g[p+32>>2]=L,g[p+36>>2]=L,g[p+40>>2]=L,g[p+44>>2]=L,g[p+48>>2]=L,g[p+52>>2]=L,g[p+56>>2]=L,g[p+60>>2]=L,p=p+64|0;for(;(p|0)<(S|0);)g[p>>2]=L,p=p+4|0}for(;(p|0)<(k|0);)yr[p>>0]=m,p=p+1|0;return k-y|0}function a0(p){return p=+p,p>=0?+oo(p+.5):+si(p-.5)}function fl(p){p=p|0;var m=0,y=0,S=0;return S=Hm()|0,y=g[Ms>>2]|0,m=y+p|0,(p|0)>0&(m|0)<(y|0)|(m|0)<0?(uh(m|0)|0,oi(12),-1):(m|0)>(S|0)&&!(Ni(m|0)|0)?(oi(12),-1):(g[Ms>>2]=m,y|0)}return{___uremdi3:Ul,_bitshift64Lshr:ve,_bitshift64Shl:De,_calloc:Bi,_cellAreaKm2:wo,_cellAreaM2:e0,_cellAreaRads2:t0,_compact:Cf,_destroyLinkedPolygon:at,_edgeLengthKm:Qe,_edgeLengthM:fr,_emscripten_replace_memory:qm,_exactEdgeLengthKm:Mx,_exactEdgeLengthM:Rd,_exactEdgeLengthRads:cl,_experimentalH3ToLocalIj:kt,_experimentalLocalIjToH3:Wt,_free:Xe,_geoToH3:oA,_getDestinationH3IndexFromUnidirectionalEdge:M,_getH3IndexesFromUnidirectionalEdge:F,_getH3UnidirectionalEdge:v,_getH3UnidirectionalEdgeBoundary:W,_getH3UnidirectionalEdgesFromHexagon:U,_getOriginH3IndexFromUnidirectionalEdge:b,_getPentagonIndexes:l,_getRes0Indexes:$m,_h3Distance:St,_h3GetBaseCell:Dn,_h3GetFaces:lA,_h3GetResolution:Tn,_h3IndexesAreNeighbors:f,_h3IsPentagon:qn,_h3IsResClassIII:Rc,_h3IsValid:r0,_h3Line:Zt,_h3LineSize:Nt,_h3SetToLinkedGeo:Sn,_h3ToCenterChild:i0,_h3ToChildren:lo,_h3ToGeo:Dc,_h3ToGeoBoundary:Oc,_h3ToParent:Na,_h3UnidirectionalEdgeIsValid:O,_hexAreaKm2:ll,_hexAreaM2:kd,_hexRing:Jg,_i64Subtract:En,_kRing:Pd,_kRingDistances:Kg,_llvm_minnum_f64:wu,_llvm_round_f64:Ua,_malloc:dn,_maxFaceCount:aA,_maxH3ToChildrenSize:sA,_maxKringSize:Xg,_maxPolyfillSize:t_,_maxUncompactSize:s0,_memcpy:ph,_memset:fa,_numHexagons:If,_pentagonIndexCount:T,_pointDistKm:Pf,_pointDistM:l_,_pointDistRads:nA,_polyfill:Xp,_res0IndexCount:Ym,_round:a0,_sbrk:fl,_sizeOfCoordIJ:Jr,_sizeOfGeoBoundary:Me,_sizeOfGeoCoord:ur,_sizeOfGeoPolygon:He,_sizeOfGeofence:ar,_sizeOfH3Index:Ue,_sizeOfLinkedGeoPolygon:rn,_uncompact:n0,establishStackSpace:Qp,stackAlloc:Qg,stackRestore:$p,stackSave:Yp}}(Dt,Ut,lr),jt=t.___uremdi3=ft.___uremdi3,le=t._bitshift64Lshr=ft._bitshift64Lshr,ee=t._bitshift64Shl=ft._bitshift64Shl,re=t._calloc=ft._calloc,Je=t._cellAreaKm2=ft._cellAreaKm2,ir=t._cellAreaM2=ft._cellAreaM2,kr=t._cellAreaRads2=ft._cellAreaRads2,_r=t._compact=ft._compact,ii=t._destroyLinkedPolygon=ft._destroyLinkedPolygon,Si=t._edgeLengthKm=ft._edgeLengthKm,Wi=t._edgeLengthM=ft._edgeLengthM,bn=t._emscripten_replace_memory=ft._emscripten_replace_memory,Rr=t._exactEdgeLengthKm=ft._exactEdgeLengthKm,Ji=t._exactEdgeLengthM=ft._exactEdgeLengthM,tn=t._exactEdgeLengthRads=ft._exactEdgeLengthRads,es=t._experimentalH3ToLocalIj=ft._experimentalH3ToLocalIj,cs=t._experimentalLocalIjToH3=ft._experimentalLocalIjToH3,Ln=t._free=ft._free,la=t._geoToH3=ft._geoToH3,Fm=t._getDestinationH3IndexFromUnidirectionalEdge=ft._getDestinationH3IndexFromUnidirectionalEdge,$g=t._getH3IndexesFromUnidirectionalEdge=ft._getH3IndexesFromUnidirectionalEdge,mi=t._getH3UnidirectionalEdge=ft._getH3UnidirectionalEdge,xo=t._getH3UnidirectionalEdgeBoundary=ft._getH3UnidirectionalEdgeBoundary,Ec=t._getH3UnidirectionalEdgesFromHexagon=ft._getH3UnidirectionalEdgesFromHexagon,Gn=t._getOriginH3IndexFromUnidirectionalEdge=ft._getOriginH3IndexFromUnidirectionalEdge,wn=t._getPentagonIndexes=ft._getPentagonIndexes,Ol=t._getRes0Indexes=ft._getRes0Indexes,kn=t._h3Distance=ft._h3Distance,Wn=t._h3GetBaseCell=ft._h3GetBaseCell,fu=t._h3GetFaces=ft._h3GetFaces,ff=t._h3GetResolution=ft._h3GetResolution,hn=t._h3IndexesAreNeighbors=ft._h3IndexesAreNeighbors,no=t._h3IsPentagon=ft._h3IsPentagon,Ra=t._h3IsResClassIII=ft._h3IsResClassIII,Hi=t._h3IsValid=ft._h3IsValid,lh=t._h3Line=ft._h3Line,so=t._h3LineSize=ft._h3LineSize,ch=t._h3SetToLinkedGeo=ft._h3SetToLinkedGeo,qo=t._h3ToCenterChild=ft._h3ToCenterChild,ca=t._h3ToChildren=ft._h3ToChildren,Ti=t._h3ToGeo=ft._h3ToGeo,df=t._h3ToGeoBoundary=ft._h3ToGeoBoundary,Pc=t._h3ToParent=ft._h3ToParent,Bl=t._h3UnidirectionalEdgeIsValid=ft._h3UnidirectionalEdgeIsValid,Sd=t._hexAreaKm2=ft._hexAreaKm2,pf=t._hexAreaM2=ft._hexAreaM2,ut=t._hexRing=ft._hexRing,dt=t._i64Subtract=ft._i64Subtract,Ct=t._kRing=ft._kRing,$t=t._kRingDistances=ft._kRingDistances,me=t._llvm_minnum_f64=ft._llvm_minnum_f64,Ze=t._llvm_round_f64=ft._llvm_round_f64,ni=t._malloc=ft._malloc,rs=t._maxFaceCount=ft._maxFaceCount,Hn=t._maxH3ToChildrenSize=ft._maxH3ToChildrenSize,zs=t._maxKringSize=ft._maxKringSize,Da=t._maxPolyfillSize=ft._maxPolyfillSize,zm=t._maxUncompactSize=ft._maxUncompactSize,bx=t._memcpy=ft._memcpy,Af=t._memset=ft._memset,Nm=t._numHexagons=ft._numHexagons,Oa=t._pentagonIndexCount=ft._pentagonIndexCount,Np=t._pointDistKm=ft._pointDistKm,Um=t._pointDistM=ft._pointDistM,Up=t._pointDistRads=ft._pointDistRads,Vp=t._polyfill=ft._polyfill,jp=t._res0IndexCount=ft._res0IndexCount,Gp=t._round=ft._round,LS=t._sbrk=ft._sbrk,kS=t._sizeOfCoordIJ=ft._sizeOfCoordIJ,wx=t._sizeOfGeoBoundary=ft._sizeOfGeoBoundary,RS=t._sizeOfGeoCoord=ft._sizeOfGeoCoord,mf=t._sizeOfGeoPolygon=ft._sizeOfGeoPolygon,Vm=t._sizeOfGeofence=ft._sizeOfGeofence,Zo=t._sizeOfH3Index=ft._sizeOfH3Index,bo=t._sizeOfLinkedGeoPolygon=ft._sizeOfLinkedGeoPolygon,_i=t._uncompact=ft._uncompact,jm=t.establishStackSpace=ft.establishStackSpace,Td=t.stackAlloc=ft.stackAlloc,Gm=t.stackRestore=ft.stackRestore,Wm=t.stackSave=ft.stackSave;if(t.asm=ft,t.cwrap=ht,t.setValue=j,t.getValue=Y,t.getTempRet0=R,Ts){Ho(Ts)||(Ts=o(Ts));{Tc(\"memory initializer\");var gf=function(qt){qt.byteLength&&(qt=new Uint8Array(qt)),un.set(qt,N),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,hf(\"memory initializer\")},Wp=function(){c(Ts,gf,function(){throw\"could not load memory initializer \"+Ts})},Hp=Rt(Ts);if(Hp)gf(Hp.buffer);else if(t.memoryInitializerRequest){var Md=function(){var qt=t.memoryInitializerRequest,fe=qt.response;if(qt.status!==200&&qt.status!==0){var ke=Rt(t.memoryInitializerRequestURL);if(ke)fe=ke.buffer;else{console.warn(\"a problem seems to have happened with Module.memoryInitializerRequest, status: \"+qt.status+\", retrying \"+Ts),Wp();return}}gf(fe)};t.memoryInitializerRequest.response?setTimeout(Md,0):t.memoryInitializerRequest.addEventListener(\"load\",Md)}else Wp()}}var Ed;Ca=function qt(){Ed||qp(),Ed||(Ca=qt)};function qp(qt){if(qt=qt||n,Wo>0||(jo(),Wo>0))return;function fe(){Ed||(Ed=!0,!it&&(Go(),an(),t.onRuntimeInitialized&&t.onRuntimeInitialized(),aa()))}t.setStatus?(t.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){t.setStatus(\"\")},1),fe()},1)):fe()}t.run=qp;function Ba(qt){throw t.onAbort&&t.onAbort(qt),qt+=\"\",d(qt),_(qt),it=!0,\"abort(\"+qt+\"). Build with -s ASSERTIONS=1 for more info.\"}if(t.abort=Ba,t.preInit)for(typeof t.preInit==\"function\"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return qp(),e}(typeof xc==\"object\"?xc:{}),br=\"number\",cS=br,qr=br,hi=br,vc=br,Di=br,n_t=[[\"sizeOfH3Index\",br],[\"sizeOfGeoCoord\",br],[\"sizeOfGeoBoundary\",br],[\"sizeOfGeoPolygon\",br],[\"sizeOfGeofence\",br],[\"sizeOfLinkedGeoPolygon\",br],[\"sizeOfCoordIJ\",br],[\"h3IsValid\",cS,[qr,hi]],[\"geoToH3\",qr,[br,br,vc]],[\"h3ToGeo\",null,[qr,hi,Di]],[\"h3ToGeoBoundary\",null,[qr,hi,Di]],[\"maxKringSize\",br,[br]],[\"kRing\",null,[qr,hi,br,Di]],[\"kRingDistances\",null,[qr,hi,br,Di,Di]],[\"hexRing\",null,[qr,hi,br,Di]],[\"maxPolyfillSize\",br,[Di,vc]],[\"polyfill\",null,[Di,vc,Di]],[\"h3SetToLinkedGeo\",null,[Di,br,Di]],[\"destroyLinkedPolygon\",null,[Di]],[\"compact\",br,[Di,Di,br]],[\"uncompact\",br,[Di,br,Di,br,vc]],[\"maxUncompactSize\",br,[Di,br,vc]],[\"h3IsPentagon\",cS,[qr,hi]],[\"h3IsResClassIII\",cS,[qr,hi]],[\"h3GetBaseCell\",br,[qr,hi]],[\"h3GetResolution\",br,[qr,hi]],[\"maxFaceCount\",br,[qr,hi]],[\"h3GetFaces\",null,[qr,hi,Di]],[\"h3ToParent\",qr,[qr,hi,vc]],[\"h3ToChildren\",null,[qr,hi,vc,Di]],[\"h3ToCenterChild\",qr,[qr,hi,vc]],[\"maxH3ToChildrenSize\",br,[qr,hi,vc]],[\"h3IndexesAreNeighbors\",cS,[qr,hi,qr,hi]],[\"getH3UnidirectionalEdge\",qr,[qr,hi,qr,hi]],[\"getOriginH3IndexFromUnidirectionalEdge\",qr,[qr,hi]],[\"getDestinationH3IndexFromUnidirectionalEdge\",qr,[qr,hi]],[\"h3UnidirectionalEdgeIsValid\",cS,[qr,hi]],[\"getH3IndexesFromUnidirectionalEdge\",null,[qr,hi,Di]],[\"getH3UnidirectionalEdgesFromHexagon\",null,[qr,hi,Di]],[\"getH3UnidirectionalEdgeBoundary\",null,[qr,hi,Di]],[\"h3Distance\",br,[qr,hi,qr,hi]],[\"h3Line\",br,[qr,hi,qr,hi,Di]],[\"h3LineSize\",br,[qr,hi,qr,hi]],[\"experimentalH3ToLocalIj\",br,[qr,hi,qr,hi,Di]],[\"experimentalLocalIjToH3\",br,[qr,hi,Di,Di]],[\"hexAreaM2\",br,[vc]],[\"hexAreaKm2\",br,[vc]],[\"edgeLengthM\",br,[vc]],[\"edgeLengthKm\",br,[vc]],[\"pointDistM\",br,[Di,Di]],[\"pointDistKm\",br,[Di,Di]],[\"pointDistRads\",br,[Di,Di]],[\"cellAreaM2\",br,[qr,hi]],[\"cellAreaKm2\",br,[qr,hi]],[\"cellAreaRads2\",br,[qr,hi]],[\"exactEdgeLengthM\",br,[qr,hi]],[\"exactEdgeLengthKm\",br,[qr,hi]],[\"exactEdgeLengthRads\",br,[qr,hi]],[\"numHexagons\",br,[vc]],[\"getRes0Indexes\",null,[Di]],[\"res0IndexCount\",br],[\"getPentagonIndexes\",null,[br,Di]],[\"pentagonIndexCount\",br]],Ea={};n_t.forEach(function(t){Ea[t[0]]=xc.cwrap.apply(xc,t)});var ox=16;var uS=8,fse=Ea.sizeOfH3Index(),XY=Ea.sizeOfGeoCoord(),s_t=Ea.sizeOfGeoBoundary(),dse=Ea.sizeOfGeoPolygon(),pse=Ea.sizeOfGeofence(),Ase=Ea.sizeOfLinkedGeoPolygon(),mse=Ea.sizeOfCoordIJ(),$Y={m:\"m\",m2:\"m2\",km:\"km\",km2:\"km2\",rads:\"rads\",rads2:\"rads2\"};function o_t(e){if(typeof e!=\"number\"||e<0||e>15||Math.floor(e)!==e)throw new Error(\"Invalid resolution: \"+e)}var a_t=/[^0-9a-fA-F]/;function ax(e){if(Array.isArray(e)&&e.length===2&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if(typeof e!=\"string\"||a_t.test(e))return[0,0];var t=parseInt(e.substring(0,e.length-8),ox),r=parseInt(e.substring(e.length-8),ox);return[r,t]}function QY(e){if(e>=0)return e.toString(ox);e=e&2147483647;var t=KY(8,e.toString(ox)),r=(parseInt(t[0],ox)+8).toString(ox);return t=r+t.substring(1),t}function l_t(e,t){return QY(t)+KY(8,QY(e))}function KY(e,t){for(var r=e-t.length,i=\"\",n=0;n180?r[0]-=360:i<-180&&(r[0]+=360)}}function m_t(e,t,r){let[i,n]=gI(e),s=t.length;a$(t,n);let o=t[0]===t[s-1]?s-1:s;for(let c=0;ce.hexagon},extruded:!0},Dp=class e extends Yi{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){e._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:t}){return this._shouldUseHighPrecision()?t.propsOrDataChanged:t.somethingChanged}updateState({props:t,changeFlags:r}){if(t.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let i=this._calculateH3DataProps();this.setState(i)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let t=-1,r=!1,i=!1,{iterable:n,objectInfo:s}=Kc(this.props.data);for(let o of n){s.index++;let c=this.props.getHexagon(o,s),d=e$(c);if(t<0){if(t=d,!this.props.highPrecision)break}else if(t!==d){i=!0;break}if(t$(c)){r=!0;break}}return{resolution:t,edgeLengthKM:t>=0?s$(t,\"km\"):0,hasMultipleRes:i,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision===\"auto\"){let{resolution:t,hasPentagon:r,hasMultipleRes:i}=this.state,{viewport:n}=this.context;return!!n?.resolution||i||r||t>=0&&t<=5}return this.props.highPrecision}_updateVertices(t){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:i,centerHex:n}=this.state;if(r<0)return;let s=this.props.centerHexagon||r$(t.latitude,t.longitude,r);if(n===s)return;if(n){let R=n$(n,s);if(R>=0&&R*i{let N=t.projectFlat(R);return[(N[0]-w)/o[0],(N[1]-I)/o[1]]}),this.setState({centerHex:s,vertices:c})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:t,material:r,coverage:i,extruded:n,wireframe:s,stroked:o,filled:c,lineWidthUnits:d,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:I,getFillColor:R,getElevation:N,getLineColor:j,getLineWidth:Y,transitions:it,updateTriggers:Z}=this.props;return{elevationScale:t,extruded:n,coverage:i,wireframe:s,stroked:o,filled:c,lineWidthUnits:d,lineWidthScale:_,lineWidthMinPixels:w,lineWidthMaxPixels:I,material:r,getElevation:N,getFillColor:R,getLineColor:j,getLineWidth:Y,transitions:it,updateTriggers:{getFillColor:Z.getFillColor,getElevation:Z.getElevation,getLineColor:Z.getLineColor,getLineWidth:Z.getLineWidth}}}_renderPolygonLayer(){let{data:t,getHexagon:r,updateTriggers:i,coverage:n}=this.props,s=this.getSubLayerClass(\"hexagon-cell-hifi\",nf),o=this._getForwardProps();return o.updateTriggers.getPolygon=y_t(i.getHexagon,n),new s(o,this.getSubLayerProps({id:\"hexagon-cell-hifi\",updateTriggers:o.updateTriggers}),{data:t,_normalize:!1,_windingOrder:\"CCW\",positionFormat:\"XY\",getPolygon:(c,d)=>{let _=r(c,d);return __t(o$(_,n))}})}_renderColumnLayer(){let{data:t,getHexagon:r,updateTriggers:i}=this.props,n=this.getSubLayerClass(\"hexagon-cell\",rf),s=this._getForwardProps();return s.updateTriggers.getPosition=i.getHexagon,new n(s,this.getSubLayerProps({id:\"hexagon-cell\",flatShading:!0,updateTriggers:s.updateTriggers}),{data:t,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:g_t.bind(null,r)})}};G(Dp,\"defaultProps\",v_t);G(Dp,\"layerName\",\"H3HexagonLayer\");G(Dp,\"_checkH3Lib\",()=>{});var{data:Lse,getHexagon:kse,...x_t}=Dp.defaultProps,b_t={_validate:!0},Rse={...x_t,...b_t};var l$=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function c$(e,t=!1,r=Float32Array){let i;if(Number.isFinite(e[0]))i=new r(e);else{i=new r(e.length*4);let n=0;for(let s=0;sc[0]),r=e.map(c=>c[1]),i=Math.min.apply(null,t),n=Math.max.apply(null,t),s=Math.min.apply(null,r),o=Math.max.apply(null,r);return[i,s,n,o]}function d$(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}var h$=new Float32Array(12);function RB(e,t=2){let r=0;for(let i of e)for(let n=0;n 0.) {\n maxValue = colorDomain[1];\n minValue = colorDomain[0];\n }\n vIntensityMax = intensity / maxValue;\n vIntensityMin = intensity / minValue;\n}\n`;var _$=`#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D texture;\nuniform sampler2D colorTexture;\nuniform float aggregationMode;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture2D(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture2D(texture, vTexCoords);\n float weight = weights.r;\n\n if (aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= opacity;\n gl_FragColor =linearColor;\n}\n`;var cx=class extends _n{getShaders(){return{vs:g$,fs:_$,modules:[uo]}}initializeState({gl:t}){this.getAttributeManager().add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(t)})}_getModel(t){let{vertexCount:r}=this.props;return new gn(t,{...this.getShaders(),id:this.props.id,geometry:new As({drawMode:6,vertexCount:r})})}draw({uniforms:t}){let{model:r}=this.state,{texture:i,maxTexture:n,colorTexture:s,intensity:o,threshold:c,aggregationMode:d,colorDomain:_}=this.props;r.setUniforms({...t,texture:i,maxTexture:n,colorTexture:s,intensity:o,threshold:c,aggregationMode:d,colorDomain:_}).draw()}};G(cx,\"layerName\",\"TriangleLayer\");var y$=`attribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float weights;\nvarying vec4 weightsTexture;\nuniform float radiusPixels;\nuniform float textureWidth;\nuniform vec4 commonBounds;\nuniform float weightsScale;\nvoid main()\n{\n weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n}\n`;var v$=`varying vec4 weightsTexture;\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n gl_FragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;var x$=`attribute vec4 inTexture;\nvarying vec4 outTexture;\n\nvoid main()\n{\noutTexture = inTexture;\ngl_Position = vec4(0, 0, 0, 1.);\ngl_PointSize = 1.0;\n}\n`;var b$=`varying vec4 outTexture;\nvoid main() {\n gl_FragColor = outTexture;\n gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n`;var S_t=2,DB={mipmaps:!1,parameters:{10240:9729,10241:9729,10242:33071,10243:33071},dataFormat:6408},w$=[0,0],T_t={SUM:0,MEAN:1},M_t={getPosition:{type:\"accessor\",value:e=>e.position},getWeight:{type:\"accessor\",value:1},intensity:{type:\"number\",min:0,value:1},radiusPixels:{type:\"number\",min:1,max:100,value:50},colorRange:l$,threshold:{type:\"number\",min:0,max:1,value:.05},colorDomain:{type:\"array\",value:null,optional:!0},aggregation:\"SUM\",weightsTextureSize:{type:\"number\",min:128,max:2048,value:2048},debounceTimeout:{type:\"number\",min:0,max:1e3,value:500}},E_t=[gi.BLEND_EQUATION_MINMAX,gi.TEXTURE_FLOAT],P_t=[gi.COLOR_ATTACHMENT_RGBA32F,gi.FLOAT_BLEND],I_t={data:{props:[\"radiusPixels\"]}},Op=class extends lx{constructor(...t){super(...t),G(this,\"state\",void 0)}initializeState(){let{gl:t}=this.context;if(!Ch(t,E_t)){this.setState({supported:!1}),er.error(\"HeatmapLayer: \".concat(this.id,\" is not supported on this browser\"))();return}super.initializeAggregationLayer(I_t),this.setState({supported:!0,colorDomain:w$}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState(t){this.state.supported&&(super.updateState(t),this._updateHeatmapState(t))}_updateHeatmapState(t){let{props:r,oldProps:i}=t,n=this._getChangeFlags(t);(n.dataChanged||n.viewportChanged)&&(n.boundsChanged=this._updateBounds(n.dataChanged),this._updateTextureRenderingBounds()),n.dataChanged||n.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):n.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(t),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:t.context.viewport.zoom})}renderLayers(){if(!this.state.supported)return[];let{weightsTexture:t,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:n,colorTexture:s,colorDomain:o}=this.state,{updateTriggers:c,intensity:d,threshold:_,aggregation:w}=this.props,I=this.getSubLayerClass(\"triangle\",cx);return new I(this.getSubLayerProps({id:\"triangle-layer\",updateTriggers:c}),{coordinateSystem:Wr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:n,colorTexture:s,aggregationMode:T_t[w]||0,texture:t,intensity:d,threshold:_,colorDomain:o})}finalizeState(t){super.finalizeState(t);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:n,maxWeightsTexture:s,triPositionBuffer:o,triTexCoordBuffer:c,colorTexture:d,updateTimer:_}=this.state;r?.delete(),i?.delete(),n?.delete(),s?.delete(),o?.delete(),c?.delete(),d?.delete(),_&&clearTimeout(_)}_getAttributeManager(){return new rd(this.context.gl,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(t){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(t,{compareAll:!0,dimension:i.data}),r.viewportChanged=t.changeFlags.viewportChanged;let{zoom:n}=this.state;return(!t.context.viewport||t.context.viewport.zoom!==n)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{gl:t}=this.context,{textureSize:r,format:i,type:n}=this.state;this.setState({weightsTexture:new ci(t,{width:r,height:r,format:i,type:n,...DB}),maxWeightsTexture:new ci(t,{format:i,type:n,...DB})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:5130,accessor:\"getPosition\"},weights:{size:1,accessor:\"getWeight\"}}),this.setState({positionAttributeName:\"positions\"})}_setupTextureParams(){let{gl:t}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,ly(t,3379)),n=Ch(t,P_t),{format:s,type:o}=m$({gl:t,floatTargetSupport:n}),c=n?1:1/255;this.setState({textureSize:i,format:s,type:o,weightsScale:c}),n||er.warn(\"HeatmapLayer: \".concat(this.id,\" rendering to float texture not supported, fallingback to low precession format\"))()}getShaders(t){return super.getShaders(t===\"max-weights-transform\"?{vs:x$,_fs:b$}:{vs:y$,_fs:v$})}_createWeightsTransform(t={}){var r;let{gl:i}=this.context,{weightsTransform:n}=this.state,{weightsTexture:s}=this.state;(r=n)===null||r===void 0||r.delete(),n=new Xl(i,{id:\"\".concat(this.id,\"-weights-transform\"),elementCount:1,_targetTexture:s,_targetTextureVarying:\"weightsTexture\",...t}),this.setState({weightsTransform:n})}_setupResources(){let{gl:t}=this.context;this._createTextures();let{textureSize:r,weightsTexture:i,maxWeightsTexture:n}=this.state,s=this.getShaders(\"weights-transform\");this._createWeightsTransform(s);let o=this.getShaders(\"max-weights-transform\"),c=new Xl(t,{id:\"\".concat(this.id,\"-max-weights-transform\"),_sourceTextures:{inTexture:i},_targetTexture:n,_targetTextureVarying:\"outTexture\",...o,elementCount:r*r});this.setState({weightsTexture:i,maxWeightsTexture:n,maxWeightTransform:c,zoom:null,triPositionBuffer:new Nr(t,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new Nr(t,{byteLength:48,accessor:{size:2}})})}updateShaders(t){this._createWeightsTransform(t)}_updateMaxWeightValue(){let{maxWeightTransform:t}=this.state;t.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}_updateBounds(t=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(c=>c.map(Math.fround)),n=f$(i),s={visibleWorldBounds:n,viewportCorners:i},o=!1;if(t||!this.state.worldBounds||!d$(this.state.worldBounds,n)){let c=this._worldToCommonBounds(n),d=this._commonToWorldBounds(c);this.props.coordinateSystem===Wr.LNGLAT&&(d[1]=Math.max(d[1],-85.051129),d[3]=Math.min(d[3],85.051129),d[0]=Math.max(d[0],-360),d[2]=Math.min(d[2],360));let _=this._worldToCommonBounds(d);s.worldBounds=d,s.normalizedCommonBounds=_,o=!0}return this.setState(s),o}_updateTextureRenderingBounds(){let{triPositionBuffer:t,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:n}=this.state,{viewport:s}=this.context;t.subData(RB(n,3));let o=n.map(c=>A$(s.projectPosition(c),i));r.subData(RB(o,2))}_updateColorTexture(t){let{colorRange:r}=t.props,{colorTexture:i}=this.state,n=c$(r,!1,Uint8Array);i?i.setImageData({data:n,width:r.length}):i=new ci(this.context.gl,{data:n,width:r.length,height:1,...DB}),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:t,colorDomain:r,aggregation:i}=this.props,{weightsTransform:n,worldBounds:s,textureSize:o,weightsTexture:c,weightsScale:d}=this.state;this.state.isWeightMapDirty=!1;let _=this._worldToCommonBounds(s,{useLayerCoordinateSystem:!0});if(r&&i===\"SUM\"){let{viewport:I}=this.context,R=I.distanceScales.metersPerUnit[2]*(_[2]-_[0])/o;this.state.colorDomain=r.map(N=>N*R*d)}else this.state.colorDomain=r||w$;let w={radiusPixels:t,commonBounds:_,textureWidth:o,weightsScale:d};n.update({elementCount:this.getNumInstances()}),An(this.context.gl,{clearColor:[0,0,0,0]},()=>{n.run({uniforms:w,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:this.getAttributes(),moduleSettings:this.getModuleSettings()})}),this._updateMaxWeightValue(),c.setParameters({10240:9729,10241:9729})}_debouncedUpdateWeightmap(t=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;t?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(t,r={}){let{useLayerCoordinateSystem:i=!1}=r,[n,s,o,c]=t,{viewport:d}=this.context,{textureSize:_}=this.state,{coordinateSystem:w}=this.props,I=i&&(w===Wr.LNGLAT_OFFSETS||w===Wr.METER_OFFSETS),R=I?d.projectPosition(this.props.coordinateOrigin):[0,0],N=_*S_t/d.scale,j,Y;return i&&!I?(j=this.projectPosition([n,s,0]),Y=this.projectPosition([o,c,0])):(j=d.projectPosition([n,s,0]),Y=d.projectPosition([o,c,0])),p$([j[0]-R[0],j[1]-R[1],Y[0]-R[0],Y[1]-R[1]],N,N)}_commonToWorldBounds(t){let[r,i,n,s]=t,{viewport:o}=this.context,c=o.unprojectPosition([r,i]),d=o.unprojectPosition([n,s]);return c.slice(0,2).concat(d.slice(0,2))}};G(Op,\"layerName\",\"HeatmapLayer\");G(Op,\"defaultProps\",M_t);var{data:boe,getPosition:woe,...C_t}=Op.defaultProps,S$={_validate:!0},L_t={...C_t,...S$},hS=class extends Yi{static defaultProps=L_t;static layerName=\"GeoArrowHeatmapLayer\";renderLayers(){let{data:t}=this.props,r=zo(t,eo.POINT);if(r!==null)return this._renderLayersPoint(r);let i=this.props.getPosition;if(i!==void 0&&Ki.isPointVector(i))return this._renderLayersPoint(i);throw new Error(\"getPosition not GeoArrow point\")}_renderLayersPoint(t){let{data:r}=this.props;this.props._validate&&(vr(Ki.isPointVector(t)),go(this.props,r));let[i,n]=No(this.props,[\"getPosition\"]),s=na(r.data),o=[];for(let c=0;cr.text()),earcutWorkerPool:null}}async initEarcutPool(){if(this.state.earcutWorkerPool)return this.state.earcutWorkerPool;let t=await this.state.earcutWorkerRequest;if(!t)return null;let r=OQ(()=>RQ(DQ.fromText(t)),8);return this.state.earcutWorkerPool=r,this.state.earcutWorkerPool}async finalizeState(t){await this.state?.earcutWorkerPool?.terminate(),console.log(\"terminated\")}async updateData(){let{data:t}=this.props,r=await this._updateEarcut(t),i=na(t.data);this.setState({table:this.props.data,triangles:r,tableOffsets:i})}async _updateEarcut(t){let r=zo(t,eo.POLYGON);if(r!==null)return this._earcutPolygonVector(r);let i=zo(t,eo.MULTIPOLYGON);if(i!==null)return this._earcutMultiPolygonVector(i);let n=this.props.getPolygon;if(n!==void 0&&Ki.isPolygonVector(n))return this._earcutPolygonVector(n);if(n!==void 0&&Ki.isMultiPolygonVector(n))return this._earcutMultiPolygonVector(n);throw new Error(\"geometryColumn not Polygon or MultiPolygon\")}async _earcutPolygonVector(t){let r=await this.initEarcutPool();if(!r)return this._earcutPolygonVectorMainThread(t);let i=new Array(t.data.length);console.time(\"earcut\");for(let n=0;n{let _=await d(u6(o,c));i[n]=_})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{let w=await _(u6(c,d));i[n]=w})}return await r.completed(),console.timeEnd(\"earcut\"),i}_earcutMultiPolygonVectorMainThread(t){let r=new Array(t.data.length);for(let i=0;i{this.table=g2(this.model.get(t))};this.model.on(`change:${t}`,r),this.callbacks.set(`change:${t}`,r)}},DI=class extends zp{static layerType=\"arc\";greatCircle;numSegments;widthUnits;widthScale;widthMinPixels;widthMaxPixels;getSourcePosition;getTargetPosition;getSourceColor;getTargetColor;getWidth;getHeight;getTilt;constructor(t,r){super(t,r),this.initRegularAttribute(\"great_circle\",\"greatCircle\"),this.initRegularAttribute(\"num_segments\",\"numSegments\"),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initVectorizedAccessor(\"get_source_position\",\"getSourcePosition\"),this.initVectorizedAccessor(\"get_target_position\",\"getTargetPosition\"),this.initVectorizedAccessor(\"get_source_color\",\"getSourceColor\"),this.initVectorizedAccessor(\"get_target_color\",\"getTargetColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\"),this.initVectorizedAccessor(\"get_height\",\"getHeight\"),this.initVectorizedAccessor(\"get_tilt\",\"getTilt\")}layerProps(){return{data:this.table,getSourcePosition:this.getSourcePosition,getTargetPosition:this.getTargetPosition,...this.greatCircle!==null&&{greatCircle:this.greatCircle},...this.numSegments!==null&&{numSegments:this.numSegments},...this.widthUnits!==null&&{widthUnits:this.widthUnits},...this.widthScale!==null&&{widthScale:this.widthScale},...this.widthMinPixels!==null&&{widthMinPixels:this.widthMinPixels},...this.widthMaxPixels!==null&&{widthMaxPixels:this.widthMaxPixels},...this.getSourceColor!==null&&{getSourceColor:this.getSourceColor},...this.getTargetColor!==null&&{getTargetColor:this.getTargetColor},...this.getWidth!==null&&{getWidth:this.getWidth},...this.getHeight!==null&&{getHeight:this.getHeight},...this.getTilt!==null&&{getTilt:this.getTilt}}}render(){return new nS({...this.baseLayerProps(),...this.layerProps()})}},OI=class extends Ig{static layerType=\"bitmap\";image;bounds;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"image\",\"image\"),this.initRegularAttribute(\"bounds\",\"bounds\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}layerProps(){return{...this.image!==null&&{image:this.image},...this.bounds!==null&&{bounds:this.bounds},...this.desaturate!==null&&{desaturate:this.desaturate},...this.transparentColor!==null&&{transparentColor:this.transparentColor},...this.tintColor!==null&&{tintColor:this.tintColor}}}render(){return new bp({...this.baseLayerProps(),...this.layerProps(),data:void 0,pickable:!1})}},BI=class extends Ig{static layerType=\"bitmap-tile\";data;tileSize;zoomOffset;maxZoom;minZoom;extent;maxCacheSize;maxCacheByteSize;refinementStrategy;maxRequests;desaturate;transparentColor;tintColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"data\",\"data\"),this.initRegularAttribute(\"tile_size\",\"tileSize\"),this.initRegularAttribute(\"zoom_offset\",\"zoomOffset\"),this.initRegularAttribute(\"max_zoom\",\"maxZoom\"),this.initRegularAttribute(\"min_zoom\",\"minZoom\"),this.initRegularAttribute(\"extent\",\"extent\"),this.initRegularAttribute(\"max_cache_size\",\"maxCacheSize\"),this.initRegularAttribute(\"max_cache_byte_size\",\"maxCacheByteSize\"),this.initRegularAttribute(\"refinement_strategy\",\"refinementStrategy\"),this.initRegularAttribute(\"max_requests\",\"maxRequests\"),this.initRegularAttribute(\"desaturate\",\"desaturate\"),this.initRegularAttribute(\"transparent_color\",\"transparentColor\"),this.initRegularAttribute(\"tint_color\",\"tintColor\")}bitmapLayerProps(){return{...this.desaturate!==null&&{desaturate:this.desaturate},...this.transparentColor!==null&&{transparentColor:this.transparentColor},...this.tintColor!==null&&{tintColor:this.tintColor}}}layerProps(){return{data:this.data,...this.tileSize!==null&&{tileSize:this.tileSize},...this.zoomOffset!==null&&{zoomOffset:this.zoomOffset},...this.maxZoom!==null&&{maxZoom:this.maxZoom},...this.minZoom!==null&&{minZoom:this.minZoom},...this.extent!==null&&{extent:this.extent},...this.maxCacheSize!==null&&{maxCacheSize:this.maxCacheSize},...this.maxCacheByteSize!==null&&{maxCacheByteSize:this.maxCacheByteSize},...this.refinementStrategy!==null&&{refinementStrategy:this.refinementStrategy},...this.maxRequests!==null&&{maxRequests:this.maxRequests}}}render(){return new Pm({...this.baseLayerProps(),...this.layerProps(),renderSubLayers:t=>{let[r,i]=t.tile.boundingBox;return new bp(t,{...this.bitmapLayerProps(),data:void 0,image:t.data,bounds:[r[0],r[1],i[0],i[1]]})}})}},FI=class extends zp{static layerType=\"column\";diskResolution;radius;angle;vertices;offset;coverage;elevationScale;filled;stroked;extruded;wireframe;flatShading;radiusUnits;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;material;getPosition;getFillColor;getLineColor;getElevation;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"disk_resolution\",\"diskResolution\"),this.initRegularAttribute(\"radius\",\"radius\"),this.initRegularAttribute(\"angle\",\"angle\"),this.initRegularAttribute(\"vertices\",\"vertices\"),this.initRegularAttribute(\"offset\",\"offset\"),this.initRegularAttribute(\"coverage\",\"coverage\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"flat_shading\",\"flatShading\"),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"material\",\"material\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...this.diskResolution!==null&&{diskResolution:this.diskResolution},...this.radius!==null&&{radius:this.radius},...this.angle!==null&&{angle:this.angle},...this.vertices!==null&&this.vertices!==void 0&&{vertices:this.vertices},...this.offset!==null&&{offset:this.offset},...this.coverage!==null&&{coverage:this.coverage},...this.elevationScale!==null&&{elevationScale:this.elevationScale},...this.filled!==null&&{filled:this.filled},...this.stroked!==null&&{stroked:this.stroked},...this.extruded!==null&&{extruded:this.extruded},...this.wireframe!==null&&{wireframe:this.wireframe},...this.flatShading!==null&&{flatShading:this.flatShading},...this.radiusUnits!==null&&{radiusUnits:this.radiusUnits},...this.lineWidthUnits!==null&&{lineWidthUnits:this.lineWidthUnits},...this.lineWidthScale!==null&&{lineWidthScale:this.lineWidthScale},...this.lineWidthMinPixels!==null&&{lineWidthMinPixels:this.lineWidthMinPixels},...this.lineWidthMaxPixels!==null&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...this.material!==null&&{material:this.material},...this.getPosition!==null&&{getPosition:this.getPosition},...this.getFillColor!==null&&{getFillColor:this.getFillColor},...this.getLineColor!==null&&{getLineColor:this.getLineColor},...this.getElevation!==null&&{getElevation:this.getElevation},...this.getLineWidth!==null&&{getLineWidth:this.getLineWidth}}}render(){return new sS({...this.baseLayerProps(),...this.layerProps()})}},zI=class extends zp{static layerType=\"heatmap\";radiusPixels;colorRange;intensity;threshold;colorDomain;aggregation;weightsTextureSize;debounceTimeout;getPosition;getWeight;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_pixels\",\"radiusPixels\"),this.initRegularAttribute(\"color_range\",\"colorRange\"),this.initRegularAttribute(\"intensity\",\"intensity\"),this.initRegularAttribute(\"threshold\",\"threshold\"),this.initRegularAttribute(\"color_domain\",\"colorDomain\"),this.initRegularAttribute(\"aggregation\",\"aggregation\"),this.initRegularAttribute(\"weights_texture_size\",\"weightsTextureSize\"),this.initRegularAttribute(\"debounce_timeout\",\"debounceTimeout\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_weight\",\"getWeight\")}layerProps(){return{data:this.table,...this.radiusPixels!==null&&{radiusPixels:this.radiusPixels},...this.colorRange!==null&&{colorRange:this.colorRange},...this.intensity!==null&&{intensity:this.intensity},...this.threshold!==null&&{threshold:this.threshold},...this.colorDomain!==null&&{colorDomain:this.colorDomain},...this.aggregation!==null&&{aggregation:this.aggregation},...this.weightsTextureSize!==null&&{weightsTextureSize:this.weightsTextureSize},...this.debounceTimeout!==null&&{debounceTimeout:this.debounceTimeout},...this.getPosition!==null&&{getPosition:this.getPosition},...this.getWeight!==null&&{getWeight:this.getWeight}}}render(){return new hS({...this.baseLayerProps(),...this.layerProps()})}},PS=class extends zp{static layerType=\"path\";widthUnits;widthScale;widthMinPixels;widthMaxPixels;jointRounded;capRounded;miterLimit;billboard;getColor;getWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"width_units\",\"widthUnits\"),this.initRegularAttribute(\"width_scale\",\"widthScale\"),this.initRegularAttribute(\"width_min_pixels\",\"widthMinPixels\"),this.initRegularAttribute(\"width_max_pixels\",\"widthMaxPixels\"),this.initRegularAttribute(\"joint_rounded\",\"jointRounded\"),this.initRegularAttribute(\"cap_rounded\",\"capRounded\"),this.initRegularAttribute(\"miter_limit\",\"miterLimit\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_width\",\"getWidth\")}layerProps(){return{data:this.table,...this.widthUnits!==null&&{widthUnits:this.widthUnits},...this.widthScale!==null&&{widthScale:this.widthScale},...this.widthMinPixels!==null&&{widthMinPixels:this.widthMinPixels},...this.widthMaxPixels!==null&&{widthMaxPixels:this.widthMaxPixels},...this.jointRounded!==null&&{jointRounded:this.jointRounded},...this.capRounded!==null&&{capRounded:this.capRounded},...this.miterLimit!==null&&{miterLimit:this.miterLimit},...this.billboard!==null&&{billboard:this.billboard},...this.getColor!==null&&{getColor:this.getColor},...this.getWidth!==null&&{getWidth:this.getWidth}}}render(){return new ux({...this.baseLayerProps(),...this.layerProps()})}},IS=class extends zp{static layerType=\"scatterplot\";radiusUnits;radiusScale;radiusMinPixels;radiusMaxPixels;lineWidthUnits;lineWidthScale;lineWidthMinPixels;lineWidthMaxPixels;stroked;filled;billboard;antialiasing;getRadius;getFillColor;getLineColor;getLineWidth;constructor(t,r){super(t,r),this.initRegularAttribute(\"radius_units\",\"radiusUnits\"),this.initRegularAttribute(\"radius_scale\",\"radiusScale\"),this.initRegularAttribute(\"radius_min_pixels\",\"radiusMinPixels\"),this.initRegularAttribute(\"radius_max_pixels\",\"radiusMaxPixels\"),this.initRegularAttribute(\"line_width_units\",\"lineWidthUnits\"),this.initRegularAttribute(\"line_width_scale\",\"lineWidthScale\"),this.initRegularAttribute(\"line_width_min_pixels\",\"lineWidthMinPixels\"),this.initRegularAttribute(\"line_width_max_pixels\",\"lineWidthMaxPixels\"),this.initRegularAttribute(\"stroked\",\"stroked\"),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"antialiasing\",\"antialiasing\"),this.initVectorizedAccessor(\"get_radius\",\"getRadius\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\"),this.initVectorizedAccessor(\"get_line_width\",\"getLineWidth\")}layerProps(){return{data:this.table,...this.radiusUnits!==null&&{radiusUnits:this.radiusUnits},...this.radiusScale!==null&&{radiusScale:this.radiusScale},...this.radiusMinPixels!==null&&{radiusMinPixels:this.radiusMinPixels},...this.radiusMaxPixels!==null&&{radiusMaxPixels:this.radiusMaxPixels},...this.lineWidthUnits!==null&&{lineWidthUnits:this.lineWidthUnits},...this.lineWidthScale!==null&&{lineWidthScale:this.lineWidthScale},...this.lineWidthMinPixels!==null&&{lineWidthMinPixels:this.lineWidthMinPixels},...this.lineWidthMaxPixels!==null&&{lineWidthMaxPixels:this.lineWidthMaxPixels},...this.stroked!==null&&{stroked:this.stroked},...this.filled!==null&&{filled:this.filled},...this.billboard!==null&&{billboard:this.billboard},...this.antialiasing!==null&&{antialiasing:this.antialiasing},...this.getRadius!==null&&{getRadius:this.getRadius},...this.getFillColor!==null&&{getFillColor:this.getFillColor},...this.getLineColor!==null&&{getLineColor:this.getLineColor},...this.getLineWidth!==null&&{getLineWidth:this.getLineWidth}}}render(){return new MS({...this.baseLayerProps(),...this.layerProps()})}},CS=class extends zp{static layerType=\"solid-polygon\";filled;extruded;wireframe;elevationScale;getElevation;getFillColor;getLineColor;constructor(t,r){super(t,r),this.initRegularAttribute(\"filled\",\"filled\"),this.initRegularAttribute(\"extruded\",\"extruded\"),this.initRegularAttribute(\"wireframe\",\"wireframe\"),this.initRegularAttribute(\"elevation_scale\",\"elevationScale\"),this.initVectorizedAccessor(\"get_elevation\",\"getElevation\"),this.initVectorizedAccessor(\"get_fill_color\",\"getFillColor\"),this.initVectorizedAccessor(\"get_line_color\",\"getLineColor\")}layerProps(){return{data:this.table,...this.filled!==null&&{filled:this.filled},...this.extruded!==null&&{extruded:this.extruded},...this.wireframe!==null&&{wireframe:this.wireframe},...this.elevationScale!==null&&{elevationScale:this.elevationScale},...this.getElevation!==null&&{getElevation:this.getElevation},...this.getFillColor!==null&&{getFillColor:this.getFillColor},...this.getLineColor!==null&&{getLineColor:this.getLineColor}}}render(){return new xx({...this.baseLayerProps(),...this.layerProps()})}},NI=class extends zp{static layerType=\"text\";billboard;sizeScale;sizeUnits;sizeMinPixels;sizeMaxPixels;getBackgroundColor;getBorderColor;getBorderWidth;backgroundPadding;characterSet;fontFamily;fontWeight;lineHeight;outlineWidth;outlineColor;fontSettings;wordBreak;maxWidth;getText;getPosition;getColor;getSize;getAngle;getTextAnchor;getAlignmentBaseline;getPixelOffset;constructor(t,r){super(t,r),this.initRegularAttribute(\"billboard\",\"billboard\"),this.initRegularAttribute(\"size_scale\",\"sizeScale\"),this.initRegularAttribute(\"size_units\",\"sizeUnits\"),this.initRegularAttribute(\"size_min_pixels\",\"sizeMinPixels\"),this.initRegularAttribute(\"size_max_pixels\",\"sizeMaxPixels\"),this.initRegularAttribute(\"background_padding\",\"backgroundPadding\"),this.initRegularAttribute(\"character_set\",\"characterSet\"),this.initRegularAttribute(\"font_family\",\"fontFamily\"),this.initRegularAttribute(\"font_weight\",\"fontWeight\"),this.initRegularAttribute(\"line_height\",\"lineHeight\"),this.initRegularAttribute(\"outline_width\",\"outlineWidth\"),this.initRegularAttribute(\"outline_color\",\"outlineColor\"),this.initRegularAttribute(\"font_settings\",\"fontSettings\"),this.initRegularAttribute(\"word_break\",\"wordBreak\"),this.initRegularAttribute(\"max_width\",\"maxWidth\"),this.initVectorizedAccessor(\"get_background_color\",\"getBackgroundColor\"),this.initVectorizedAccessor(\"get_border_color\",\"getBorderColor\"),this.initVectorizedAccessor(\"get_border_width\",\"getBorderWidth\"),this.initVectorizedAccessor(\"get_text\",\"getText\"),this.initVectorizedAccessor(\"get_position\",\"getPosition\"),this.initVectorizedAccessor(\"get_color\",\"getColor\"),this.initVectorizedAccessor(\"get_size\",\"getSize\"),this.initVectorizedAccessor(\"get_angle\",\"getAngle\"),this.initVectorizedAccessor(\"get_text_anchor\",\"getTextAnchor\"),this.initVectorizedAccessor(\"get_alignment_baseline\",\"getAlignmentBaseline\"),this.initVectorizedAccessor(\"get_pixel_offset\",\"getPixelOffset\")}layerProps(){return{data:this.table,getText:this.getText,...this.billboard!==null&&{billboard:this.billboard},...this.sizeScale!==null&&{sizeScale:this.sizeScale},...this.sizeUnits!==null&&{sizeUnits:this.sizeUnits},...this.sizeMinPixels!==null&&{sizeMinPixels:this.sizeMinPixels},...this.sizeMaxPixels!==null&&{sizeMaxPixels:this.sizeMaxPixels},...this.backgroundPadding!==null&&{backgroundPadding:this.backgroundPadding},...this.characterSet!==null&&{characterSet:this.characterSet},...this.fontFamily!==null&&{fontFamily:this.fontFamily},...this.fontWeight!==null&&{fontWeight:this.fontWeight},...this.lineHeight!==null&&{lineHeight:this.lineHeight},...this.outlineWidth!==null&&{outlineWidth:this.outlineWidth},...this.outlineColor!==null&&{outlineColor:this.outlineColor},...this.fontSettings!==null&&{fontSettings:this.fontSettings},...this.wordBreak!==null&&{wordBreak:this.wordBreak},...this.maxWidth!==null&&{maxWidth:this.maxWidth},...this.getBackgroundColor!==null&&{getBackgroundColor:this.getBackgroundColor},...this.getBorderColor!==null&&{getBorderColor:this.getBorderColor},...this.getBorderWidth!==null&&{getBorderWidth:this.getBorderWidth},...this.getPosition!==null&&{getPosition:this.getPosition},...this.getColor!==null&&{getColor:this.getColor},...this.getSize!==null&&{getSize:this.getSize},...this.getAngle!==null&&{getAngle:this.getAngle},...this.getTextAnchor!==null&&{getTextAnchor:this.getTextAnchor},...this.getAlignmentBaseline!==null&&{getAlignmentBaseline:this.getAlignmentBaseline},...this.getPixelOffset!==null&&{getPixelOffset:this.getPixelOffset}}}render(){return new ES({...this.baseLayerProps(),...this.layerProps()})}};async function d6(e,t){let r=e.get(\"_layer_type\"),i;switch(r){case DI.layerType:i=new DI(e,t);break;case OI.layerType:i=new OI(e,t);break;case BI.layerType:i=new BI(e,t);break;case FI.layerType:i=new FI(e,t);break;case zI.layerType:i=new zI(e,t);break;case PS.layerType:i=new PS(e,t);break;case IS.layerType:i=new IS(e,t);break;case CS.layerType:i=new CS(e,t);break;case NI.layerType:i=new NI(e,t);break;default:throw new Error(`no layer supported for ${r}`)}return await i.loadSubModels(),i}var UI=Symbol.for(\"rowIndex\");function Mxt(e){return`\n \n ${Object.keys(e).map(t=>{let r=e[t];return`\n \n \n `}).join(\"\")}\n \n
${t}${r}
`}function FQ({object:e}){if(e){if(e[UI]===null||e[UI]===void 0||e[UI]&&e[UI]<0)return null;let t=e.toJSON();return!t||(delete t.geometry,Object.keys(t).length===0)?null:{className:\"lonboard-tooltip\",html:Mxt(t),style:{backgroundColor:\"#fff\",boxShadow:\"0 0 15px rgba(0, 0, 0, 0.1)\",color:\"#000\",padding:\"6px\"}}}return null}var VI,Ext=new Uint8Array(16);function p6(){if(!VI&&(VI=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!VI))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return VI(Ext)}var Pa=[];for(let e=0;e<256;++e)Pa.push((e+256).toString(16).slice(1));function zQ(e,t=0){return Pa[e[t+0]]+Pa[e[t+1]]+Pa[e[t+2]]+Pa[e[t+3]]+\"-\"+Pa[e[t+4]]+Pa[e[t+5]]+\"-\"+Pa[e[t+6]]+Pa[e[t+7]]+\"-\"+Pa[e[t+8]]+Pa[e[t+9]]+\"-\"+Pa[e[t+10]]+Pa[e[t+11]]+Pa[e[t+12]]+Pa[e[t+13]]+Pa[e[t+14]]+Pa[e[t+15]]}var Pxt=typeof crypto<\"u\"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),A6={randomUUID:Pxt};function Ixt(e,t,r){if(A6.randomUUID&&!t&&!e)return A6.randomUUID();e=e||{};let i=e.random||(e.rng||p6)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return zQ(i)}var m6=Ixt;await jW();var Cxt={latitude:10,longitude:0,zoom:.5,bearing:0,pitch:0},Lxt=\"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";async function kxt(e,t,r,i){let n={},s=()=>i(new Date);for(let o=0;o{(async()=>{let j=await u3(d.widget_manager,_),Y=await kxt(j,_,o,I);c(Y)})().catch(console.error)},[_]);let R=[];for(let N of Object.values(o))R.push(N.render());return(0,Yg.useEffect)(()=>{if(r)return;let j=document.getElementById(`map-${s}`)?.parentElement;if(j){let Y=window.getComputedStyle(j);(!Y.height||Y.height===\"0px\")&&(j.style.height=\"100%\",j.style.minHeight=\"500px\")}},[]),jI.createElement(\"div\",{id:`map-${s}`,style:{height:r||\"100%\"}},jI.createElement(vD,{initialViewState:[\"longitude\",\"latitude\",\"zoom\"].every(N=>Object.keys(e).includes(N))?e:Cxt,controller:!0,layers:R,getTooltip:i&&FQ,pickingRadius:n},jI.createElement(R8,{mapStyle:t||Lxt})))}var Dxt={render:_8(Rxt)},Mce=Dxt;export{Mce as default};\n/*! Bundled license information:\n\nreact/cjs/react.production.min.js:\n (**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.min.js:\n (**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.min.js:\n (**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nhammerjs/hammer.js:\n (*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license *)\n*/\n", + "_height": null, + "_initial_view_state": { + "latitude": 30.27504616188673, + "longitude": 21.17458729027878, + "zoom": 1 + }, + "_model_module": "anywidget", + "_model_module_version": "0.9.0", + "_model_name": "AnyModel", + "_view_module": "anywidget", + "_view_module_version": "0.9.0", + "_view_name": "AnyView", + "basemap_style": "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json", + "layers": [ + "IPY_MODEL_93bb8eb822cb45a3bd45230e38cb36fd" + ], + "layout": "IPY_MODEL_f1449d35622447548217da4d80e2199f", + "picking_radius": 5, + "show_tooltip": true + } + }, + "f1449d35622447548217da4d80e2199f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, diff --git a/examples/migration.ipynb b/examples/migration.ipynb index f8eaf1ee..3c067a95 100644 --- a/examples/migration.ipynb +++ b/examples/migration.ipynb @@ -38,7 +38,8 @@ "from matplotlib.colors import Normalize\n", "\n", "from lonboard import Map, ScatterplotLayer\n", - "from lonboard.experimental import ArcLayer, BrushingExtension" + "from lonboard.experimental import ArcLayer\n", + "from lonboard.layer_extension import BrushingExtension" ] }, { @@ -207,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "13b8b182", "metadata": {}, "outputs": [], @@ -226,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "8e0c2fd9", "metadata": {}, "outputs": [], @@ -253,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "86799a4c", "metadata": {}, "outputs": [], @@ -270,7 +271,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "570868b8", "metadata": {}, "outputs": [], @@ -297,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "56b9dcf2", "metadata": {}, "outputs": [], @@ -329,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "6400bd35", "metadata": {}, "outputs": [], @@ -367,14 +368,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "5ef02c61", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "528e69ea2bac4278a26f1215a74ccf75", + "model_id": "4cbbf3652a5e4fe590157620b932e821", "version_major": 2, "version_minor": 0 }, @@ -382,7 +383,7 @@ "Map(layers=[ScatterplotLayer(brushing_radius=200000.0, extensions=[BrushingExtension()], get_fill_color= None: - super().__init__(*args, **kwargs) - self.tag(sync=True, **ACCESSOR_SERIALIZATION) - - def validate( - self, obj, value - ) -> Union[Tuple[int, ...], List[int], pa.ChunkedArray, pa.FixedSizeListArray]: - if isinstance(value, np.ndarray): - if value.ndim != 2: - self.error(obj, value, info="Point array to have 2 dimensions") - - list_size = value.shape[1] - if list_size not in (2, 3): - self.error( - obj, - value, - info="Point array to have 2 or 3 as its second dimension", - ) - - return pa.FixedSizeListArray.from_arrays(value.flatten("C"), list_size) - - if isinstance(value, (pa.ChunkedArray, pa.Array)): - if not pa.types.is_fixed_size_list(value.type): - self.error(obj, value, info="Point pyarrow array to be a FixedSizeList") - - if value.type.list_size not in (2, 3): - self.error( - obj, - value, - info=( - "Color pyarrow array to be a FixedSizeList with list size of " - "2 or 3" - ), - ) - - if not pa.types.is_floating(value.type.value_type): - self.error( - obj, - value, - info="Point pyarrow array to have a floating point child", - ) - - return value - - if isinstance(value, str): - try: - c = mpl.colors.to_rgba(value) # type: ignore - except ValueError: - self.error( - obj, - value, - info=( - "Color string to be a hex string interpretable by " - "matplotlib.colors.to_rgba" - ), - ) - return - - return tuple(map(int, (np.array(c) * 255).astype(np.uint8))) - - self.error(obj, value) - assert False - - -class GetFilterValueAccessor(FixedErrorTraitType): - """ - A trait to validate input for the `get_filter_value` accessor added by the - [`DataFilterExtension`][lonboard.experimental.DataFilterExtension], which can have - between 1 and 4 float values per row. - - Various input is allowed: - - - An `int` or `float`. This will be used as the value for all objects. The - `filter_size` of the - [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance must - be 1. - - A one-dimensional numpy `ndarray` with a numeric data type. This will be casted to - an array of data type [`np.float32`][numpy.float32]. Each value in the array will - be used as the value for the object at the same row index. The `filter_size` of - the [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance - must be 1. - - A two-dimensional numpy `ndarray` with a numeric data type. This will be casted to - an array of data type [`np.float32`][numpy.float32]. Each value in the array will - be used as the value for the object at the same row index. The `filter_size` of - the [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance - must match the size of the second dimension of the array. - - A pandas `Series` with a numeric data type. This will be casted to an array of - data type [`np.float32`][numpy.float32]. Each value in the array will be used as - the value for the object at the same row index. The `filter_size` of - the [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance - must be 1. - - A pyarrow [`FloatArray`][pyarrow.FloatArray], [`DoubleArray`][pyarrow.DoubleArray] - or [`ChunkedArray`][pyarrow.ChunkedArray] containing either a `FloatArray` or - `DoubleArray`. Each value in the array will be used as the value for the object at - the same row index. The `filter_size` of the - [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance must - be 1. - - Alternatively, you can pass any corresponding Arrow data structure from a library - that implements the [Arrow PyCapsule - Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html). - - A pyarrow [`FixedSizeListArray`][pyarrow.FixedSizeListArray] or - [`ChunkedArray`][pyarrow.ChunkedArray] containing `FixedSizeListArray`s. The child - array of the fixed size list must be of floating point type. The `filter_size` of - the [`DataFilterExtension`][lonboard.experimental.DataFilterExtension] instance - must match the list size. - - Alternatively, you can pass any corresponding Arrow data structure from a library - that implements the [Arrow PyCapsule - Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html). - """ - - default_value = float(0) - info_text = ( - "a float value or numpy ndarray or pyarrow array representing an array" - " of floats" - ) - - def __init__( - self: TraitType, - *args, - **kwargs: Any, - ) -> None: - super().__init__(*args, **kwargs) - self.tag(sync=True, **ACCESSOR_SERIALIZATION) - - def validate(self, obj, value) -> Union[float, pa.ChunkedArray, pa.DoubleArray]: - # Find the data filter extension in the attributes of the parent object so we - # can validate against the filter size. - data_filter_extension = [ - ext for ext in obj.extensions if ext._extension_type == "data-filter" - ] - assert len(data_filter_extension) == 1 - filter_size = data_filter_extension[0].filter_size - - if isinstance(value, (int, float)): - if filter_size != 1: - self.error(obj, value, info="filter_size==1 with scalar value") - - return float(value) - - if isinstance(value, (tuple, list)): - if filter_size != len(value): - self.error( - obj, - value, - info=f"filter_size ({filter_size}) to match length of tuple/list", - ) - - if any(not isinstance(v, (int, float)) for v in value): - self.error( - obj, - value, - info="all values in tuple or list to be numeric", - ) - - return value - - # pandas Series - if ( - value.__class__.__module__.startswith("pandas") - and value.__class__.__name__ == "Series" - ): - # Assert that filter_size == 1 for a pandas series. - # Pandas series can technically contain Python list objects inside them, but - # for simplicity we disallow that. - if filter_size != 1: - self.error(obj, value, info="filter_size==1 with pandas Series") - - # Cast pandas Series to numpy ndarray - value = np.asarray(value) - - if isinstance(value, np.ndarray): - if not np.issubdtype(value.dtype, np.number): - self.error(obj, value, info="numeric dtype") - - # Cast to float32 - value = value.astype(np.float32) - - if len(value.shape) == 1: - if filter_size != 1: - self.error(obj, value, info="filter_size==1 with 1-D numpy array") - - return pa.array(value) - - if len(value.shape) != 2: - self.error(obj, value, info="1-D or 2-D numpy array") - - if value.shape[1] != filter_size: - self.error( - obj, - value, - info=( - f"filter_size ({filter_size}) to match 2nd dimension of " - "numpy array" - ), - ) - - return pa.FixedSizeListArray.from_arrays(value.flatten("C"), filter_size) - - # Check for Arrow PyCapsule Interface - # https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html - # TODO: with pyarrow v16 also import chunked array from stream - if not isinstance(value, (pa.ChunkedArray, pa.Array)): - if hasattr(value, "__arrow_c_array__"): - value = pa.array(value) - - if isinstance(value, (pa.ChunkedArray, pa.Array)): - # Allowed inputs are either a FixedSizeListArray or numeric array. - # If not a fixed size list array, check for floating and cast to float32 - if not pa.types.is_fixed_size_list(value.type): - if filter_size != 1: - self.error( - obj, - value, - info="filter_size==1 with non-FixedSizeList type arrow array", - ) - - if not pa.types.is_floating(value.type): - self.error( - obj, - value, - info="arrow array to be a floating point type", - ) - - return value.cast(pa.float32()) - - # We have a FixedSizeListArray - if filter_size != value.type.list_size: - self.error( - obj, - value, - info=( - f"filter_size ({filter_size}) to match list size of " - "FixedSizeList arrow array" - ), - ) - - if not pa.types.is_floating(value.type.value_type): - self.error( - obj, - value, - info="arrow array to have floating point child type", - ) - - # Cast values to float32 - return value.cast(pa.list_(pa.float32(), value.type.list_size)) - - self.error(obj, value) - assert False diff --git a/lonboard/experimental/layer_extension.py b/lonboard/layer_extension.py similarity index 96% rename from lonboard/experimental/layer_extension.py rename to lonboard/layer_extension.py index e5c8af3f..4dd27e4e 100644 --- a/lonboard/experimental/layer_extension.py +++ b/lonboard/layer_extension.py @@ -1,8 +1,7 @@ import traitlets from lonboard._base import BaseExtension -from lonboard.experimental.traits import GetFilterValueAccessor, PointAccessor -from lonboard.traits import FloatAccessor +from lonboard.traits import FloatAccessor, GetFilterValueAccessor, PointAccessor class BrushingExtension(BaseExtension): @@ -64,7 +63,7 @@ class BrushingExtension(BaseExtension): Only effective if `brushing_target` is set to `"custom"`. - - Type: [PointAccessor][lonboard.experimental.traits.PointAccessor], optional + - Type: [PointAccessor][lonboard.traits.PointAccessor], optional - If a point is provided, it is used as the target for all rows. - If an array of points is provided, each value in the array will be used as the target for the row at the same row index. @@ -136,7 +135,7 @@ class DataFilterExtension(BaseExtension): ```py from lonboard import Map, ScatterplotLayer from lonboard.colormap import apply_continuous_cmap - from lonboard.experimental import DataFilterExtension + from lonboard.layer_extension import DataFilterExtension gdf = gpd.GeoDataFrame(...) extension = DataFilterExtension() @@ -269,7 +268,7 @@ class DataFilterExtension(BaseExtension): Accessor to retrieve the value for each object that it will be filtered by. - Type: - [GetFilterValueAccessor][lonboard.experimental.traits.GetFilterValueAccessor] + [GetFilterValueAccessor][lonboard.traits.GetFilterValueAccessor] - If a scalar value is provided, it is used as the value for all objects. - If an array is provided, each value in the array will be used as the value for the object at the same row index. diff --git a/lonboard/traits.py b/lonboard/traits.py index f72822cf..9c259706 100644 --- a/lonboard/traits.py +++ b/lonboard/traits.py @@ -429,3 +429,279 @@ def validate(self, obj, value) -> Union[float, pa.ChunkedArray, pa.DoubleArray]: self.error(obj, value) assert False + + +class PointAccessor(FixedErrorTraitType): + """A representation of a deck.gl point accessor. + + Various input is allowed: + + - A numpy `ndarray` with two dimensions and data type [`np.uint8`][numpy.uint8]. The + size of the second dimension must be `2` or `3`, and will correspond to either XY + or XYZ positions. + - A pyarrow [`FixedSizeListArray`][pyarrow.FixedSizeListArray] or + [`ChunkedArray`][pyarrow.ChunkedArray] containing `FixedSizeListArray`s. The inner + size of the fixed size list must be `2` or `3` and its child must be of floating + point type. + """ + + default_value = (0, 0, 0) + info_text = ( + "a tuple or list representing an RGB(A) color or numpy ndarray or " + "pyarrow FixedSizeList representing an array of RGB(A) colors" + ) + + def __init__( + self: TraitType, + *args, + **kwargs: Any, + ) -> None: + super().__init__(*args, **kwargs) + self.tag(sync=True, **ACCESSOR_SERIALIZATION) + + def validate( + self, obj, value + ) -> Union[Tuple[int, ...], List[int], pa.ChunkedArray, pa.FixedSizeListArray]: + if isinstance(value, np.ndarray): + if value.ndim != 2: + self.error(obj, value, info="Point array to have 2 dimensions") + + list_size = value.shape[1] + if list_size not in (2, 3): + self.error( + obj, + value, + info="Point array to have 2 or 3 as its second dimension", + ) + + return pa.FixedSizeListArray.from_arrays(value.flatten("C"), list_size) + + if isinstance(value, (pa.ChunkedArray, pa.Array)): + if not pa.types.is_fixed_size_list(value.type): + self.error(obj, value, info="Point pyarrow array to be a FixedSizeList") + + if value.type.list_size not in (2, 3): + self.error( + obj, + value, + info=( + "Color pyarrow array to be a FixedSizeList with list size of " + "2 or 3" + ), + ) + + if not pa.types.is_floating(value.type.value_type): + self.error( + obj, + value, + info="Point pyarrow array to have a floating point child", + ) + + return value + + if isinstance(value, str): + try: + c = mpl.colors.to_rgba(value) # type: ignore + except ValueError: + self.error( + obj, + value, + info=( + "Color string to be a hex string interpretable by " + "matplotlib.colors.to_rgba" + ), + ) + return + + return tuple(map(int, (np.array(c) * 255).astype(np.uint8))) + + self.error(obj, value) + assert False + + +class GetFilterValueAccessor(FixedErrorTraitType): + """ + A trait to validate input for the `get_filter_value` accessor added by the + [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension], which can + have between 1 and 4 float values per row. + + Various input is allowed: + + - An `int` or `float`. This will be used as the value for all objects. The + `filter_size` of the + [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must be 1. + - A one-dimensional numpy `ndarray` with a numeric data type. This will be casted to + an array of data type [`np.float32`][numpy.float32]. Each value in the array will + be used as the value for the object at the same row index. The `filter_size` of + the [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must be 1. + - A two-dimensional numpy `ndarray` with a numeric data type. This will be casted to + an array of data type [`np.float32`][numpy.float32]. Each value in the array will + be used as the value for the object at the same row index. The `filter_size` of + the [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must match the size of the second dimension of the array. + - A pandas `Series` with a numeric data type. This will be casted to an array of + data type [`np.float32`][numpy.float32]. Each value in the array will be used as + the value for the object at the same row index. The `filter_size` of the + [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must be 1. + - A pyarrow [`FloatArray`][pyarrow.FloatArray], [`DoubleArray`][pyarrow.DoubleArray] + or [`ChunkedArray`][pyarrow.ChunkedArray] containing either a `FloatArray` or + `DoubleArray`. Each value in the array will be used as the value for the object at + the same row index. The `filter_size` of the + [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must be 1. + + Alternatively, you can pass any corresponding Arrow data structure from a library + that implements the [Arrow PyCapsule + Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html). + - A pyarrow [`FixedSizeListArray`][pyarrow.FixedSizeListArray] or + [`ChunkedArray`][pyarrow.ChunkedArray] containing `FixedSizeListArray`s. The child + array of the fixed size list must be of floating point type. The `filter_size` of + the [`DataFilterExtension`][lonboard.layer_extension.DataFilterExtension] instance + must match the list size. + + Alternatively, you can pass any corresponding Arrow data structure from a library + that implements the [Arrow PyCapsule + Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html). + """ + + default_value = float(0) + info_text = ( + "a float value or numpy ndarray or pyarrow array representing an array" + " of floats" + ) + + def __init__( + self: TraitType, + *args, + **kwargs: Any, + ) -> None: + super().__init__(*args, **kwargs) + self.tag(sync=True, **ACCESSOR_SERIALIZATION) + + def validate(self, obj, value) -> Union[float, pa.ChunkedArray, pa.DoubleArray]: + # Find the data filter extension in the attributes of the parent object so we + # can validate against the filter size. + data_filter_extension = [ + ext for ext in obj.extensions if ext._extension_type == "data-filter" + ] + assert len(data_filter_extension) == 1 + filter_size = data_filter_extension[0].filter_size + + if isinstance(value, (int, float)): + if filter_size != 1: + self.error(obj, value, info="filter_size==1 with scalar value") + + return float(value) + + if isinstance(value, (tuple, list)): + if filter_size != len(value): + self.error( + obj, + value, + info=f"filter_size ({filter_size}) to match length of tuple/list", + ) + + if any(not isinstance(v, (int, float)) for v in value): + self.error( + obj, + value, + info="all values in tuple or list to be numeric", + ) + + return value + + # pandas Series + if ( + value.__class__.__module__.startswith("pandas") + and value.__class__.__name__ == "Series" + ): + # Assert that filter_size == 1 for a pandas series. + # Pandas series can technically contain Python list objects inside them, but + # for simplicity we disallow that. + if filter_size != 1: + self.error(obj, value, info="filter_size==1 with pandas Series") + + # Cast pandas Series to numpy ndarray + value = np.asarray(value) + + if isinstance(value, np.ndarray): + if not np.issubdtype(value.dtype, np.number): + self.error(obj, value, info="numeric dtype") + + # Cast to float32 + value = value.astype(np.float32) + + if len(value.shape) == 1: + if filter_size != 1: + self.error(obj, value, info="filter_size==1 with 1-D numpy array") + + return pa.array(value) + + if len(value.shape) != 2: + self.error(obj, value, info="1-D or 2-D numpy array") + + if value.shape[1] != filter_size: + self.error( + obj, + value, + info=( + f"filter_size ({filter_size}) to match 2nd dimension of " + "numpy array" + ), + ) + + return pa.FixedSizeListArray.from_arrays(value.flatten("C"), filter_size) + + # Check for Arrow PyCapsule Interface + # https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html + # TODO: with pyarrow v16 also import chunked array from stream + if not isinstance(value, (pa.ChunkedArray, pa.Array)): + if hasattr(value, "__arrow_c_array__"): + value = pa.array(value) + + if isinstance(value, (pa.ChunkedArray, pa.Array)): + # Allowed inputs are either a FixedSizeListArray or numeric array. + # If not a fixed size list array, check for floating and cast to float32 + if not pa.types.is_fixed_size_list(value.type): + if filter_size != 1: + self.error( + obj, + value, + info="filter_size==1 with non-FixedSizeList type arrow array", + ) + + if not pa.types.is_floating(value.type): + self.error( + obj, + value, + info="arrow array to be a floating point type", + ) + + return value.cast(pa.float32()) + + # We have a FixedSizeListArray + if filter_size != value.type.list_size: + self.error( + obj, + value, + info=( + f"filter_size ({filter_size}) to match list size of " + "FixedSizeList arrow array" + ), + ) + + if not pa.types.is_floating(value.type.value_type): + self.error( + obj, + value, + info="arrow array to have floating point child type", + ) + + # Cast values to float32 + return value.cast(pa.list_(pa.float32(), value.type.list_size)) + + self.error(obj, value) + assert False diff --git a/mkdocs.yml b/mkdocs.yml index bf9f098e..72d82fc8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,20 +42,19 @@ nav: - api/layers/scatterplot-layer.md - api/layers/solid-polygon-layer.md - api/layers/base-layer.md + - Layer Extensions: + - api/layer-extensions/index.md + - api/layer-extensions/brushing-extension.md + - api/layer-extensions/collision-filter-extension.md + - api/layer-extensions/data-filter-extension.md - api/basemap.md - api/colormap.md - api/controls.md - api/traits.md - Experimental: - - Layer Extensions: - - api/layer-extensions/index.md - - api/layer-extensions/brushing-extension.md - - api/layer-extensions/collision-filter-extension.md - - api/layer-extensions/data-filter-extension.md - Layers: - api/layers/arc-layer.md - api/layers/text-layer.md - - api/experimental/traits.md - Ecosystem: - ecosystem/index.md - ecosystem/geoarrow.md diff --git a/tests/test_layer.py b/tests/test_layer.py index 3e04d94d..d7960123 100644 --- a/tests/test_layer.py +++ b/tests/test_layer.py @@ -6,7 +6,7 @@ from traitlets import TraitError from lonboard import BitmapLayer, Map, ScatterplotLayer -from lonboard.experimental import DataFilterExtension +from lonboard.layer_extension import DataFilterExtension def test_accessor_length_validation(): @@ -48,7 +48,7 @@ def test_layer_fails_with_unexpected_argument(): points = shapely.points([1, 2], [3, 4]) gdf = gpd.GeoDataFrame(geometry=points) - with pytest.raises(TypeError, match="unexpected keyword argument"): + with pytest.raises(TypeError, match="Unexpected keyword argument"): _layer = ScatterplotLayer.from_geopandas(gdf, unknown_keyword="foo") diff --git a/tests/test_map.py b/tests/test_map.py index 724f4c1b..069c9bac 100644 --- a/tests/test_map.py +++ b/tests/test_map.py @@ -11,7 +11,7 @@ def test_map_fails_with_unexpected_argument(): layer = ScatterplotLayer.from_geopandas(gdf) - with pytest.raises(TypeError, match="unexpected keyword argument"): + with pytest.raises(TypeError, match="Unexpected keyword argument"): _map = Map(layers=[layer], unknown_keyword="foo") diff --git a/tests/test_traits.py b/tests/test_traits.py index c87c91eb..e383e363 100644 --- a/tests/test_traits.py +++ b/tests/test_traits.py @@ -8,7 +8,7 @@ from lonboard._base import BaseExtension from lonboard._layer import BaseArrowLayer, BaseLayer -from lonboard.experimental import DataFilterExtension +from lonboard.layer_extension import DataFilterExtension from lonboard.traits import ColorAccessor, FloatAccessor, PyarrowTableTrait

KF+o^>%P%K(Y%RRO&i^ZSOawMxg6i1j$_I;M(gj0kWWE_QDMYS!KLZre$p5U0 zeHs{dDCA;7+qnV0aLO%43-b!HmNUgYi?fK_swL8-bG>=-Cgw52_GNtR?-q(dy?Sk= zWZ55#fj<0c!t~yLwlz|v4n0<-txb+V;OND4Xi3<=6XXb*^lh^hle;Ji$Sh-3!*2Vk zs&k3$f-KVwW&l`V_^Ms^n-i{rm$c{>S*i9UuhGIfh*53rTN@)nnpfs3XitNlt%J3b+l@mPA zn0W>D?h2Fo-KQFM>o$2*FzYltwNJGlR7IC*p$uh|dp}etegTnvMN;Q9cftaEx!#>W zeOl{x*cA8h!KIH^lzk}zHBuS62DAoSzIi+36mcsbXSDBx>!V65uR*RX03Fp@=Q+_K zyj}Z6bwWRV!p``txmik7cI7s|z2}g+!D_Z}Y<G|R)haox4t0ix!y{O0+N``uRUD1LP?LM-yKOt~EmtzXk&&MVeD3ylVU(1tt>^u1*- z!>oAuXidm^+SDF=uW$V<5tStH3jP2keW+t3s_YC9Vi}nnafbMp4Va7tqoZaYuX{fW z^Dw*lSzMEQ?{W{csuqU>PL>PrWxlhW-@jcPnUvbW#u5+x5RS^wc^q8G3(fw<5(10G z0dBlCYNsS)^^eEO#v68dgU*6Q7h z*|TNFFO>6bxxbu?jt|Xo|9B;;0iiYkX$rT9z7j$okOP3{0^FGajMPgkSg9)Y z6yX6t_=Cd!q=dAwyS_W6H2sA86d?ZnbZuNTS9=BI6-q6pGo*Kw1e$vF!sUfky$$~_ z6ahqq9@#MD=H5}G*=J@2QU3>uaA>ZrD5>(Y`^z3c7sh_6dm|my(+cUzeUn)D*}Vue zd9U8;of2$sp;JmPJt|-5N~-uDDwxTM?L}+nRw-eRyORgf^FLUy_?8XlO4a751MTq@ zG@Tp6Vc&*$l~(wDSaP};`tI#;N>U~kIB1L7+dH9Pt?DnL;v1tGueR#abGB;C*#PWs1x0m~Vv~WsD+^7L zY&Q-ST2YK~Dm?%RLhRus7Ho}k`B|LRfp`w-Y)6_&cZw9#;lf1w~!d-~0bCcb7qJMS;HPBS;dY!JQ_!7k4P`?poZXxE6}LyA#|YxKp4& zafc!mpg^I}7AU1aC69B@J#+5;az4EG<;`UF?9A*vlYH2F)~vPu|6jMPG9IAM!d;rn z_G5XDQIcUC8Dja6LqLUBhA;0wYQa9rm>K|yM(r!TubDFE)ev5eVC`519~Ik7NYAlI zSCHzLHs7*?Wo(up)@3C;N$|Nj&0fbdpLg7xDe9|VevFG}G*9V^4>n?9v4zg`RQQe)Jo8U>K~$h$xN=5o^p6y|Krq1t7+s-#nXy_<)q4l!cRkK+ay-fJKFxcG8Q+MtSV3LLX@!lRxBAjBNe;bR*k7~P%4jWqleQ`( zFIa-#35jP5gt(Ze?E#y|09h$n7FeluT0n=iX1YLP#X>YDCXX+pBRl=SvXPK_(I#P?`&zB?rmtkoXnKVE{(61Jif`QsErjP^+b zk*Vl>NVF6;RBsST=o?gpJe5hbj+rdJ^^?f*`bzGAzq&In3Kw>rjCx$Wg2i_=@HBl&~y3(?; z$_4v#iT(wqFA38cTyf^0>S|&;HheJ$1W4fw`6a23NNL^E=MGxJVQxF8`c01lu0M{O z5I>ZwpiOQqngClpM2p>w7dHGkdi3|;O}nL5)<_pUPkWYv3rJoA7BT+9Q!nvN1D0(M zTedenG|kW%2Vgxq+KvBO@i_~ceL2YLxfe1*QE#=ppBKed?APYLqn}Es6XmuOos-ml z2&`^iq)PLOIqmk9E9^6wrw-9!4j}R0fF4kNx|w@%C6Glosl;E>mnQ2<%=A5Cl$&Kg z0`x^7f}OiURW>ro@#}YToM8nW-w?e@qboZ+AZCnOD2v6Zp&I+kzF9zunq0Xa{8>IY zo~glAv%=>m@(CLY>rIVzvfv}Wo`_oU5UkvU@a{&3)L8^4P(;H*L;HCyvx*Jh`jBuM zk=3-F#dbwx5qUs^1=arC%@^aoP20K^_h!suP~V6eIk6OFEct2QBjD*3cNzb(L(N^n z;K&Bb-{D-vE%B|1iEz!_e54!|hJq2FiCRVfu2t3oru?uaoG)L5`eNL&c9|tcXvkg>|9bfn`7KIyXDii*IsU*BGILCmNPruS^TX~UBavegP~g@Z z-Ss|Utm~-R+HtV(q=1MLjd)DaIj@kL?azY$Sv=o?+iKI)YP^?-!nhWk-0iEzeASlT zrMR3ZaUuI%WU@uDrq^bKMzV`Fna{}vH!p*EnY{ARSVy3{Iil0YJWr17A zW=9+211$;YZmu9XCC*Wh$_hB+sn@~enEt+h>-3|mhHHV0lokc#s?2Jb`DqLyr`S@H zR0VL!oP3iDRh=eawD}NQ_B(OLN~k6=BR1?S)?(kgN3%WILjr|%7o)skhvLW_{o357pn)(LZ_znuo~!t#;CD9@4lUQB#?<7WJ@}C27E>54dB-Li%CmU%G zYe_2;;4X&UO#8I#7zm~37iyhBuZO!e zJi;+&8yb@x<-gRfi;gq*+-KbqkUAH{CG;5l!y$Y)^=4!si}7kA%d~CgNoP&J{%wiRuamwLkCl{> zOzqpwK=Rt~YQ4Z!VA%RWpkl2H1YmXOXmET;Nh+%)B`|=RkqFn=cd6Q0HU;LD4mc$Lnc}&CQQbQqfRtgR~U6o2vb-* za@pKS0U)m0;1p{tJ`@vMf^&GEv$_|6#DwVQb##*oD`7=qwXT)HwBO{O1fxRAt3I*P zt%Q$b#CCltg(S&-2^a-#;{co^;si=7Hx;`t74bu8wpCFM{Uh=L7Amh_0&TfUs?}Tp zo2g5E=J9(9*P>|yjQ+w9v#rm(J;TtM2D4 z)U#}qir^=>XhX%9wCadfq`{gK0lIvbUBQu*xjv(wescaxn!|W z=4@oKf7VStWlh@Mw+zhGF`-f-h4T}RW;5IwA0*hX3*}MU2B(6N^F;Aj&{XcZFiJs)`>)N!LP_y8sH)E53t>ZIZc8N1pdqV+N>(wq3EhHeu zs-?n*%ke>Ht8Y;iP zA-%IMw4z^ez&hYHAdSa4ebq7HRWMSKxESFbJL#g1?z7s#E*%sB-7S|;6Q_zNl=z5IiE~5OkRRaim(-~t3==#-r3(9U(sdaoJ&*8=QrUoCe%W@`ie~F9=_KAs)-k16W)&zP7+)_8+bl&<)uwq>kDR))t`Msf2Oijq z{Ii8&;abMd5-MS!#=E_((szOxINv)S{ToWjtn%z2< zuHgUnXV9S~23*hKbjS0Jv$* z475cIs_xPiRo$VphTnVYUsl$MeV)w4|e>o7%B%#d$ zJ)X-+K*(QQ?$G?G4jD3Y1R$FZM@uNrL}W}IKbV$|-E|1DvLX?1{Q`ixaLh_k$3w>g zmuTu6AwbMSAc`DmBIM^8So#NB=4PN%7D~XIh-~r~O>GpQ?eEa|?V>f^#SI{*S?PEf zN_EDVZtFoS{JWxV+Kh{PQe8SmznD$k$KN7(+495JPPvDh%3 z-dZMb4`1QKo6C-hg`uX|DyI6wsGD;L`48PkBmS{I`wFQD$&9Y9fZcwA9dF*ZJt3KF zYj4any(J%y(%2}X_`dYp6>0tnaE^h?o7_nM*a6~S6p4sbsgT{-fN*|IQDXwdX3x7>M=7-9-3tF2`f2XoV<1NjR#9qFA#vqEyt{fNde4bx z1$?-8IXBKWIt?^W7iuzJK+*agrPD3Wd)q%I_#%Q!@S$h6o=1NSZ=SAb-O<#Jq!B2)Y z+7ZGuSo$i$M0%DE@WQtN7?|68*zr&y$g{*emW^!QqX}kNBqx3?*tj7st82PW(~VUFPT9;z z+N zKpQNBr4fsFB5&T{HudUkkIsN@=z^^?T#`CVW*GR9l#dWRb|5%tDE$P zUK_hSQd`QVPScYlPv?j4%GQH^G6F(ez+16643UU;ccS|)kCt}L2kn3e86l6=@IhgZGbqhsPx z>ZmQQ0H=O!oh82^#1L%Z*z;vv_}4u96yZyEXgmJa*k0-RbQyf-FV~#M*ly$~} z?lUtck<{IH)7l^2z~b(j2s-*?irx_OmF1xp%Rp^P?{gE?0$-i1@3r@>uhh+04z*Ro zi9Xd^ecc$`*!XD9YUTBIp-}oaFPNc*&IZ5!y2bMA-*7@x7`ZX4Ec$~wK@JHhoa~dI zIWAn-ETw{3v8hGED#AQWkL}*0V3Cdq>Wny@$Drsh`AI{220XHz6DE$o@IAr1ruCLio^?dh-`j*o zn&&mC{+{+1Y&Bkl_=(M2bm6@cHa|8&{Z%uC^?~f0Dq*oUaS-Sdd}=?iv1Gpz7B|5- z=%9n9r`3Z$)_}633K#M8Ih>)^I;*~}(ozd}cOf(DY<)$JkEzK%5t@c@651$8Ev}x8 z_={W_nUXP$rJpLW9OBe3VbQ6IqkU*7v-Cb-;72Dvz9YgG)|N@2ai{t z8H!Oq@^_2*R^7fbVR0tKiT@bbLsW9bsLcOHZuXw)z&R4r0GfV(@(xUj(zp&8svp1J}nzLKrd^F+Mlczsn&HiaU1r&NI=cxDzY7R$@7cO5donXNeRwB*@0osvML$#j{0k}A z!?yj=`sV%La4^yDR*SZauJ7B+ao-2i*DvEbyn5tm;mDM`-%V^RsB#nXEK8?|uQY`} z-=zO}WrFh}>%v}^8}HlBXx`;|+beqWqkv6zUCiHOZNrApf1bg&T8;C>ZU11#Njqxa zF51F3rR(@ij>fGpOXi8l1&j`qI&A^-N87&f$;&@4C$2xP{8<{hdcb#<{`7}a9)5FqZiF>} z*I9=WZXH!Ui7mrh@Uwtf?%Gc@=zj!&F#jb0HMs>RAQWT}3pxZYsU)WM%%U&&F+(Gv0(CfvN$j@1uyaq#*K?{ME8 z2*VR;ZK#R?CBQEmSt3K+GsfRMler%JZRwr|W#X%Z)~}xu#-K5U_cxWv4VgSOScoz3GzC zzcQ4<-VP^}8t@CZXbFmPs+cd5oc&CWxqzg#IA`u5HgDB(?7xEa& z<1Uw2LbEL@01-nqx)L5AV}lQuL5x0wX&^3R;JQpYv=oLXqY9Y=&GS`aMURh*Ki9gL%BkTAOIvu z5~ZN#deFd%Xu?SLiPPo+IaRX=>d9hY7h>GC96y9)fHRpdhLW#C`8j4;?$OtoV!(;@ z^$G-diN&gNw%qn|AKO}K6zpW{)e0f0;AO#=C=m=P9>rB4HKh$@fL~%=MC-Bgk1OKE zGr_S*0vJb6AIaSI+gYkRW>!KOu-JpvW>h30IsS?(r*MsW&04t3@)oVUf>oN>F#P-A zlRYb+k>~3lVsU*o0K_S7o92OGGjCBb!%!=dH$5@}rL_dxCHsZUqjpy`v-v zN!k|aH7}358}O;+`m>^83PlHd#gl|0z5$x zPlcLf%R#`Tl*NPzR;GeMg)g4Xb@gI+oTydpY0yN@$3hZ*8&-#|V6idYIx|#)? z14K{9KZ!Q^b_R~GiCuHm%RW*|7)Th){o?)>IrJIAlX55@vhTn{9$kG{6^UT_>ip#_0*6g+Dd&vn=oaxzinVzDmYWtEwbiMjZm_e}3ln2=r z>YdRfBv2Zw086Do?G?p(y;`nX3y~7;U0~X4Y<|ROR!nJ;gzGS_GAV+;%ht9k<*Kf0o@9ANeXzsH`z~vD2RQyTQ^t+O^1>tO zjR2t8d8L#Sy}+Tvg$F_rfMxj%G$_gF8T=9N;|cr?^2?>ei|@%+u2`V|ma9AfP5^!I z&;RlR9_sHC+8cvgYT}w|o;RRWQ=+Pe`t0-5JzA>6IvO2IbA#(EGP~P~#|AyCii3Mw zYUihN+nTJilG-N6wK5apdfIgJQj7~T{`~oCTAE!o`KqA5Gkvfd)!pvXQJ*r_Z(UUw zQduk;6H>pvkTE%&Sz8rVgL14X8Qxqgm>$g?>9s`VjqmM}Q&2znScQvI_6_Ae<@r$q z9SI4EFc^MZX>r%$Y~RqJii(OsbSMi8%iPJCe_{3mmxX@6`79|qakx7tFQ>Y?dSZT_ zKJVx9>Pm1{#`xrfiHV7LsQ1ph-ShMF!0w~)(VqR2gP?`R{(5nF_2c@# z1uYB!45L+f5VWEpB>&qFfM=E_sQi~7Fx_7DMpfD3#ee$&ci-h}X}BKz0M*Xgg<{eF z6Vfo+({4YSORIQt1jn3%50j(rD_5T~t!aN9C#ZcgX30e%X zq+wvZn*{#{L5q|KYb@eH(2C)rS1;pQ#{Ex03*S@DK|9{ji(WIN7^py}*7WRsGws=1 zba|w-AWAlRtIzkl8o?gUb9o7d$G|<)-pfzZ*_@bTJ3s_h6cd{n`oRy-WFnM&I(#zz z^LvR?T?bml8}fE{q!T3nVgS?(F#$kwN(31C(|Rw8 zMl2BIA0tyh{}SKK$uveHf!yZhqT$KDYbQZQ1RTKjkOw??UpEJN+#|X{48L}Qz@y$B zAEctWGh~sZgq2nzuN_ty(-i*6BfPm_2N9S!{#oP0?1Tz{W#adTf`4F&6e|S#soZIe ziG*k(G?2X7iwO&h#|D@hhsw|`W)Ukw7fh z{P*Q4;fj$-MKOSgA}q(Hu7Ul+rx499Bzd{uS28ei2b1?hBVM z%~JiWcvuW6)C4+RH!wmRTb?L-F;9M!kA_H=p9ssQ#n)!?!)WvAa*nrz}rz*5bbKVYH==WEH>!I2MCm{C= zC9<47*o$dm;>j^MhT#K$lal)-Mi(3uc=;e`m28)mk1D`AaM)-cVF`!4c#aM6)LYD2 zBFuWt+P5jGmHWP-S)hv$pyPpzjskJ92@{tj;K+e>fJ{ht`0GWw^1+#`$|BoJqoA)z--66wNAAxFoGoqHwG!Q>@PEC7JzDa+XBba~vo$HSA8WB*ac078cl6E`9u z^Qqrf@A|qPdxssoe_LfjPtC*1P`@Aw5Hw)$@phOSQeCLRd1hR1iuYlWBu(Uo0&Njb z%!rfwgy3U)-k#($7?H($&{hs9T4qO*K|1lEVfSpXjG@NjGlCW#5gERE6GhfqIo>#m zpRLdD`7YYt;?J)p(ciR~^BT7F#IXM3#@f}73M^{?BQvLdr4*FI3h+bR3sUHBzDh9wZ{(E0 zC6I~1?ioSMo&y7_`jTv1#P0{tugf1gplgc*b(UpFi4*wY-yX$as`#07Mc`SGZc>pA zzI8;qQ-QRKdm+&2eI7C$iq@?L2~-W2sbA61IYprh*L-1S)fq4e(Y*C6N$hms+MUpH=^3(C#K)@)uPu`%#~QB4S?;>uMCoEJMt6AR}qm zj*Q|7vLlMUq5Lvt3)G^5!8ihZxsnKV{d zS&@y9Q!urQm^aNVjPcr(iSB3SA=X0?W!&SAN0`jia<^IzdT++dT)XZ{aJeLJ9% zHDt3M(WI*o!!EHc){L*_EDzr!v6Nijvubr@$D-;kpsCN4VASKYH<0NJl!8U6OswcO z7^$NLvRfm5G`JF6pc8~Ro@~qWgH(;Wa@`aSH2F4?u7&$VR*1Zyy*2Oh0#HfVvebNj zfb|d|pUR)wudS&c=XB!_e?u)8(M2vgV)4J)BbW==erE%k{c-k7h{h6kwwd` zfH~&)th;N{U}JcMMfi`}+6scN7A^E#Mcuw56!zmezULF*6W)Wl;I4FqLp#FngX}R~ z?XQ82hpx3P{_cn#Vre7b?|N3@0( z-Ql?Boanse;XG+k0I_H z5hrxBsSpC5>1Ob;DVgxD^~;PsX$8s1ypylqcw9P!OKOnx+3Rr0gCo4!e2`kp?FvuO zp5T~-3&41-Cz>b-7^|kDJ8hQQ6Z~sA5#lE6VA~=S$Y9=iTqxHv7OB1nx217BuU(*miBRW^Y<9F?9^XxQM0`huL|Z-I}i2V zKXvh+Yz?zE89t|)%x;z%UBoZ;JeVjrp4#J-rmGor4WlhK7T7vpbEY!t;)(Hduk+O~ zp*m{F;OrSWQ{b%W>j)eE<~zjUHeVq+XEwX|-I{K{MD7oqy6<}WoWL(#*6F$CnpPhN z`mGYGwW&|ty&G?ufrwP?DX%Rb+38NLE^7sVm{K?x+J0sN8qJH=8C#-2Mq((0Ya7Vg zo#hfMel^|r=Umv0xz88-jy}5>A@%%@u#J6as2-S%HxZqZ;C&WvHUJNMTIUUaPSpAv z=0u_9_a;|a`K^NWe3LLLG~LXbzuf;+!j_rallOZoiP{OjBkARLUwL)YM9Em9nvV+_ zfKka*11PG;=ktinpR|o4PcbiJ#n<-AJ>The3t|*|LQIDle~omtNLRV(N?F37m?vgW09|xgY=+?&e!6$KdZY>lAKD$q z1l@4SJ^FvDcuYAYciDfhh}MXPKHu_}bc*?-|H#phj1djU8s{d+K&Br^F6n8<_ORpi zdhsU6C&fwCA;XeC(b`ONAPSz~$;#?oQdIW@|LryC&$Vc-(av3?k9J6)%An&YU^@;_ z5RJ92L|b(xK%Xkb6MHjsc(EIexiZNxJojV!wDv6CnIRIKGVX^FI>@$OinZ6Bk~jM- zU@l51P|Z&>f$zkYI^`!l86VT4K*l)wH~>lgLDaK6&=c(wmzS+wo5w2l)?ua&IwA06 z@irwFo*r=+?~_2O*BcyaY;201u%)1S>Z|Hts~?Y+PMTJRLtuUkbi`i3+*-o?hh9H+ zqUK}ic2T_M&m@21+*L(9kpXOcf zBOCrZN0QJjhYbTjoq-fH!}C!mtz>5nQ$4?|0thi_?&rP8r!|mwc4q#UE?P+S9ur0J zu7nUyxC5-aM1_NEW@c zX;7m3&zSW%p)ggNwI5jdHQ@ob&>AO5N&`8?n-uqT5~xb*n+)ERs{CPDZo@zY>3#L+ zWrbLPJ*_e~u2I$zq%bTu6co&0lI61WS;>YnzRN53`wEdz15uqAD{KAJQ9gCOPte77 zk;eeZF{5B{8)=w4N33j&-A3}y&x~KOos-~M;BBZ`UBUb&UZg{GH?Or#bQ$>=D7Qg~ zlP|G*kCrW)0~=A1Y=hG4u@mjmB0PRBa+xI;jPaNf48(ObKruT=*Q=u%V8coUyTSO^ z4J3#nay^EmM3la4qIX6{HP@w$-F4OQenE&6(1Px+_&}XsAWhlxJX+40e1q0+^#*T@wYfDYmNMan9e8viq5{oT;g| zw(GYQomrSXSFq^rsgbP(6%}69eO^sL*-dPx306$vMfnx3SLvPCrqW-+aEmG)ead+; z+e*RWhTTgS)$mvgt4u1lj(88W5oM-xPd_X~C;q#J9Mlio)Gri~yj`$4TX<&cal)MJzC?%_#nIU;cUc6%8ZbRh7 zPETQ2!mA#BI}-huJqsAq04lDcAe$dK|4vr3%VlP z)rcDXvW#^j<0ZDt3{{}@Q9F0v~^vIraCIJoV>JE{9gLeS7VDv7DI7DBj9sfEdXvB|BHdPj=`Y z%`-~5jg`ou)8>hPIU=r1#}!uqj2l(coU?*e;rK-Inhg-u z=>l!4#g zJf`~HJ*OrKi4~r9*>8UnCT`SZ-RWVCGPh~TqxVQvi> zsFB_ETfs+NtBMsvU*NS>GH;-KD|-hEivFD$FP8IV*2*CX6#GS|%6L+ia}Jx&$EPK~ z>3V6Hkv)%Ghj# zgL8JDWQ<}aoHZ>aP`oVS(4Xl=gk zSwvM+nBp&!IW8)YVMdRtcX3yozhII+>HoJ)cE}o z9yEY&W*{d3(&5;$MFjnuI3V!8&kMXZSq`d9z?=oX2eh(_Wny9rn-;Ki9`I0dZ(=UP({}jwOoQtOUE@TrJ>2U9mYx6P=MATKGYAZ zD8z8_ihzjTiB^k|IlcR!t~obg-SR<((E&1WEE5vCo|f6d@xlkB;7M%LHC_Lgn6X-= zRI;iu?1O6L5o>gRF`&mYCQ%~){cwqsq%=wF@2P53P|KD8Zdtz}7V=jLNTr3eb%BtY zfbgoL=v5Bv$b)33S;;E*&{=CEZuz5t>=dpyC@}o_v%bwWK zR50qh9bY>7-rb5FBJI_DZ9@yodKpB>b*RrBeG4A+`6PT zHyWYgWbgncjELA%W05Nt}tlMK;V5UY2{JZ`mibs3&P*>ghl!1u0 z_V%209HjDwO&ISHrQ3O;WXdUNGUHXWKklkumM(m6KR)vsggX^q{q1a3RUVGPd+Aw3 zcKGAjWAQvq;ma18LIpjgzrTS0l6jx=VNVlg|M{w}(lT#UP_o_}PdAxJaO;tI7j0Vj zSDK}*dzXF zPTA7T^@B}A?8~=b01zsr;!o$nMG+^yPIsi4TCZmB`)yvany(wxkyiy5Y{hRse+bF5 zI*qL$p}Qa;phbMAn5UAKhAk01_yN%|v2hQ6KvHtbgCCHQnf1^{^^k2U%vLTcEsKT4 z(u1RDMa%2Us?+EIqz&lyj?S*!mQt1O1ld^ffmfqr;|~+I*|b~<{Zr|3m`cuQyc#J1 z8L8fe$MZR0tlj?*Uw5G~?4SN)#iC|0k)J0wcH2sm9+N)0n6qb zhKkF$K8~Qe!4g{z9E*ropikC~2+)4FT&QFBg*HHTIi>y~+~j}lx}pQ2#nt-i{Ik(8 zGJZ%3h&<2*hp`QMmL~HnziIzCyYha{xH1}-a-l)R&oASh<)j7aRi9d>io9VJv_0Nv zv%@TcY~y^c(3%Jlt44mJG0=6ISENcC;lFl7CjS3p`N8Tm=Tj+$3{HyJm1|&-REh`&4(y_;S*Ho$pVfl90rR*aS<$EkiYCz z@lC`+UI--E{!3w_;mJ&KOjI9+{M<|ConosJ-?6SVj$Bj(L;}Yg#wR>nW_VR12vkSs zQdC$P4zuR=FJK`ZFW?}EK_fPedlWu7vB&Kejv^53ET$i;k>_$;=-m2)28iRhx{r`> zbK9fX}_Jd3mWIYVy~U}IZHNDlgmWY zMC$ayOwzQ0SH_dM2LT=DECiG}9;zKIGE+jD&UiR%^{S@Au-n-eL@D0N;4oxUkyS?m zFWkoO`J(uk9y_g?)hB1bO&8S|%vd?1~2W;_681*k7^xD zm$2vEk!X9hFsBklM$|z;ITd*hgF}$-N&V+{wVHRLf1ZEg2MPYz%1Wg5ldoddp*sHs zDkZC2$is&T_>;&*#OEXVBS(e=`den)J^8iD7M6B3D|Dq$Zf($owZCGi2IgT!d|uZb zhq$GZ;a&Z>gk+#A8Nfp;(vaB!@4TOP)<2E{03ebf-pr07I)*I3tRBA) znS3-YeD=)@dkre;D?oN7=SbL8i7;b3sFEEi*ZlkIRlYb_5l;^t#lioY&1+T$eMma? zvf0{sG^JKhm!jlkEYT9PAEdsAz$ zNw7IgbadjR51+=K?saH^G}EsZx%ekODU6RrRSBx&T-<9>e{3g`DD<-uSvci0hb~EV zdz6$Ue`ckuUCUwWs#n3D!W#3ADm|SRZ}n1ACIFJUQraz!9QzZ6)uB@w zhG;#1HaiRDh!6wTRIrJ>b>?+czXqpv?fh)z&oX{5>LuyCW!Gw-!lbC5`$&I3SFBpH z*%mu6CyE@qeh-c@FL!k5oqQNR6BKM^ zX<%>|Sta$7djF1~NK)Q(zAOg#uaVm+(M5IXG+2u0@$DNKVa+)&<8lPe zU8}_>CQZzTJ3I`-*J-?-CS)=-*0fo{Ocxt}4w36x@qlhqa2B^=N`8;K``vt|7hh4T z5lK(T775ebUXiamU*&=r(WV(d;k}>JI~UcAFf9%fPyKG0d>o)grc59~>Dp#x!Ai9( zr8P3lnv5oWtR0Q4q2SU>@G#RQ@l3##Gd$M*9-CV0SPzZ}m2|AV-#~9pV3!Tps%eOA z_Qm<=ndDZysHa@(pK?KG-q+h)fj3@j-Jr!n9$m+2Z~rI|>F)jRNZ!Gr#lF7|XDHu?4fLC6n*4;{Su!@pWg_}*h}IUfIF ztVCcg!UxQmk9hiunnTYpv1a>gYI5Vqe`VtOe-32Bsi#C1FVjN*d@8QxnXWrJ%ygPR zV0j7^M)7`^s3}q9GP$0^tF*9zzc~JGBa@%p=uqV%ZjC{e5Iv=qU^;1 zDSg8C8tDT^ObB4T9q6Op)6~w+#nn2}(zCcPf?F%VSH|Q4=S~c?J2V^_4rydeBwkbN zn`ulGoCV)@FHW@+I~Y|pkGz5c;hW$ke1xR%LsbTS5aNMU$#-l20R}=chdg76Zq$-(s%fIx&Cg^pSr)zl3K#iHf;i!l)+9hW@RC9!bA_`R~_Dbgj#^ zPy~d{6-w#+ID!Z7HUdr=dGX7i*d&rXDAFP}lKR%BEEXcw8;LmKHDsXylJIu-`0LZ{Weu{eZhS*R}mY=p8I35*kbBl?g zx-uly<)|68klTopsHZgPf4B^Ya88j1ZB zGdXr?+j4G2B*U=b4vccR2?5N?&#`sf=xYFpH$f5^QH8?595&L8%4B+MEGdS7pk8pL zv#YWqfZ34nZBTO7iP(n|(MX6x9|g3KG7Wtou&ZQ^6`khNA%1A+JE7wmca)ZBq9kUR z)*Sy5RGZ#@L5>GZ5@hzEW*PL-yY@;e2Tu<37EZylZeYaiu!NoH1XQ_Z*-hpY^ad6p5VcD1d zvh(e-n$xlis`4wb@@v!bo8a=>ZQHy4@;}?<|L)2G)F_ZR3d;mWDu`pGOJ_>sbnjv*grH5gc22V8v}uW)a-M+{Kr z#Reb%fKjmc1z4XK`zZ=+%mH|E0p6#o5ml;D^Qv)yVX%SAwVpe*ni=4y)?g3{tnO6H zL=F)0su5boN=5-A8i5KIAkYOksHjc{00vptWbD-%--B)f>p@C2erC0)YBiDwz!h7= zrecHSUR~~9tvITo#LTL!2wJJuSaWaTQB<8r+33+&j~Zy~-l#REZpa7J2?J`o%$igY zfY5uW2Q@ZG25Y#{tbG=YUaqYQX>K3`h@l$mmur;~0QtSJOYr`-|XQEj&p4d*r-)Qw|r`RSn6%Nqz2fj;hk^*I>qsa1|Zh6_0e#2 zOh#=|1Ukm6Eo-z1=vMF2h`uc%1L|O~H`VaSbg&d6YJSMHLDbQJi`Mkfha)Hl(LrKP zt)YW82`fnP!Zrp#dC#zfAM6eqe1thV8{L9q4q;1%FzrH!n>yLmDa2%&r|uyJGT0B} zN`ni?!?US%0aDq+nu2#_Uv$bBLrn0XF85&Kxh665E&=Z@VK`L%49noYD;3_YZw@w+ zz_(0>up~pS2Oz#7z4^=C-#8$?>OGM7E;V&*qdhEn9kAAJkDhwBcQK*)8AM9GBV-ry z60fgh1#3eMOQ#W{Zr*pQhLt!7@igxgnZtj229<3B+x>>7yY;iJw2tjSO5OTEI?V|# z5Ge#U7y@J9ug~sDQw3Q-gSjV>`{^!z8e? z@xZ^t`x8;%30rhFUTy9iM7C+zv}j0RrS>WBP|DtrjalrY{_$Vv{3pAN~d$@HV6dpaZ5(fwY(n!JBo~ zsYg?nYlW;^s_q#zGsfd&T19@1u`sv&`vPH-#0H|<)pW3{u?kwuMtGXF2WE%X@pufq zury`r{~zA|GN`S9VcSJxKyY^pu7%)Eafb$X8eCdh+@Zlku;32Co#Ng$Nb$B5D^S4; zl+pr)LaDHM-f!>y?sw*!v(L<#Ir+OLzt);rYu)R*?mG^d!dv=6MHw&i^#z6spc@6z z#R2(-2X_Yt4ar7w8AJgU!c%&C4VdA^B<0%|(1!ZiDQe|u z_tMFm5=iwmsQBTu_FkP9w$ar9awM#ES8axoY{ql1PJjOS-&yd7lEy#Hkczn(`-?hV zHHZwL*8pFupE}!cQ5PvXhoFW2HzMeBiwIi%HzEiEf&cyccXj>i#mds3KfhmZZ`4hW zj(%KY4!Uhqf3tk}xpQ*73O`(gAC!@i>0DnqIXe{)5V-hxQ99U@Kk?%D+i~yQbjm>I z=fi{7>#N<1uive{dolm2rKP2H^f?0qQ&dA$^Xuv0>e8>57ufE$__q3tjEv_yAB%fB zle$_qcD8rUzGn^h2DjA>3=Mt#_xt$>9*ysB92!_T`RY`WpOBD{-O`||t2;h98QIfX z*V|pa`07DZrM0znYHj7un}3zFFW-Oq)Z5z|92}hg>SbA5tEZ=DWmUCXP07on&lUw4 z1qB6(Wo4$=WLmf3?dzYOSPZf#>*e;6zKNSFhj9zg<{d`ak>6 zKYXl|{Is>bv%7bT2sUh@MH|eB5C2a@FjKmd`|9t%|3U99)Z!I?BRlbYq#FN? z2%2rfdYYD-ZM03jy1AO)Jw=ZF2N8TY*vcwV>^N)Hw4UL0^M0nxu&?bF5p-tq$8yw|7OFi!H!^MZ*J^^uq zJx4vtPP664k!JK777va-eUt@%-@sej$=25BVmGI9G;80Q5B%8IFFT1GXCAybI%nyI zCGx%XH=zLNjhH-FmWsz2aZ}Y~&ik5eyqbMHEXR#j*8_IT3B^2ra-@$KUnlqm(9SsRa{Ys?(5w!ND# z9v*;+5Lf1cW+f@ZJh&7B8b24aJSxDDs{+(U$t0dvZ_$x|Gb{5x?KrIGC!0}-&osZ5 zh2}pOI)#)U;&=2Mp6IMEl;g;z7yV%b}6HRUn&>@$+pt|18OP017jz{%ONqTkoIg#&Uydnv;L#6PM!!RR& z=zdu;wn#Fw7)@MX zs(Rw8*{uCIty9B}gHCp7c_zw@8>Z<3F1KolZksr&lJ|>u6V{Yk3)_+YlwNB<+C3wcrs=CAvE#7AoAit>h7K!S~QxKGLYC~AM zeuTzME9}T#i&**Rpx$atP%+3+RhU{$eF?@nMh=u9jZv%Rfre%>At=5X;+O41U^sMElFd?D|i!FlePY)l3Jn4pA(MSxc zaJ!%r=W2KnZajt_+c!ZtLA5_PruxC??U>7CgB#pzMqF;pJo}? zC?jzxR|b_Ygc6#@q=$KXTdb47cN39Mob%@um19b^uVAQzrNNoYNbX)CN!*wK@NK$n z&B7dS^<03#Hd2Q+ktPH`X9y4?*qL6ZXb(#u8Lp=}V`bx+2gO08vuG~$^LQZ`eWO1M zrGKQz7@z`}M?x-+MDCEM&xtdGovCP~xv;9ojMK*F+LAQ}+g#rkU)fK=TCz4hvsH>GC9Bt%9+d&yL9r1)YmTJ!-iEujSJ59HgLDk~(PVmO-IDcudAq~~hT zk#0zLMz1xg-mAw61`L`~KNjSBs{j_DqqP>?;ValqN z+4tg%1_x_#QxtvBTY_>2F6w9Cc*CC>#YWLtToYaFJ#7;iRmN`d>nSNuzx{|%Vb}6! zNP!MAa1)f2LLR4{+VGr*pIC6pqyQV&;)P6N zCe$Wb%?XVG(hK~WU*~eyi=^|nRn`xS_!h#fXaefJ%$|Nt_V(bqu3(YFDuA{15^9X` zxp;}!CUf#X@>GLQ34<6z3F-?N$ev*DFTa6~p3@>678r{cCAXa&2%-7;7l|Wits}Xb zkow_D4^33M2cT_phD52AVsh#&UUfMhZ2N`vGI+?`T)66GK<>`fPpQ)ZR;0ieWcoMh z2#%npmp5l=si!$TZ#}AfF#%^}*!RrhoTFYkN3nU32u~W;A$1e;vVrKjtqm5JRH(gN zz3CT{65_CeG9`u_9{RKRL((Yh?2}%PvWsDtG@W)FERgBo*go0r>4!JSc{S)4 z4M2H5jQ4W$=Y84Lk#_>8b9-Cw)fx7#iw-~k*z(P!nQlS9dX{*pFnei9IS&fI$F;R! ztvGFzW9Ulyl#E-&x!R6?d_7D>S;rVSbNbN!JyiOL(L#Zm0tJj^-9;cV`qj;y5Abn9 zd(}&NZAd!ZsItg&Q>H#Xn*#LmT}bO6oNWuapW2!uL7>u?HOE(v>F3_*UrLGnJUX#*GWw#$#S^1QBk6~?d@?DQteZfcY}U@4qx&ZP|9=it#q_te{~)~WKo z%}2>6&$0ubZ?pRF*~Xtgf@%@RF-ohLo%8wny$f8W9>w2J*5)KiogJ z*-pfC`PtfKk^Z(qi}`~n=wtoNfO821Vy>~d=!CLReztkl4Bq6w0uI}>9wtm_>gN~% zSKiS5h;fh5Hloyp2IvXaRmWUmU=L!xEcrtw$VMt!!3Bc8x(P1UdosQ%!jI)wy-Ft1 zeH7Cl#7$(?iMz8{2t7JbII>6zl23{Fne@-o55<#leIRM*6=gL41QDDh)oW_7X?>I% zkD-dx#n}w)+Ng)bt#7h&zqI^>i0=Q-mZg_;778_-ifYN%JH9m1 z4U77ua~Bh&V-_bVAQf=BnT6m&1^Ami=}ZUafaJkp;$4|}KOoYKf!{900s6_O)_(1@ z@Nx~4#bwZa5AzKkKA($>3$-w)LGH?W>XxA|;)XQI4C(`*~dkQ>Rn zwIjk9kie9VF~Pe8Z#fHtBs*mW-bew7Eo+L`6Y|golwChb>KgYkzx1GIfrgqOKu%dt zJ+F0J=)@xS>|D00*#aHA+~W+{Y() z{nIF5xk_p>^HsqSP{N`egiI4`Kt5YJJE4@SzbHle>4URnr$V7t1Oub$m4hO#Jy98@<3KZ2vKsSb&Zs0Ig2WlPuo(s zJ6A)g$E>KkU7m@gW2OO^YJncO1xR9azpj#X5V1ur%6=yTP0%V~>oaVF)8RtNs-DS2 zidBgx;Ryf=RWksyi&ePi-ILoDU0MyLb7)Oi?NFE8vTbl%7$&E^HsdW;kBeZqUO9+G z;A0%!@|t6PSQRIBDs?R7OP-$yJ6V z+6KW9W(owbub$-TT3&VlD{#+BDo$X$59~4{QFw?7>bD&BC@DKkFtH*iU{ZQK{iMg$ z$3_Eq!tXwrpPzv!jKLV$D?H|h-<0ge$Huw16BCCN{PGhHS8Z|$zute6Jt(u8U-~aV zu2v$VAzqzB4K(Er@EcD~P^(9*wss*M1IGm~p`p`t*fAdIiAza09NZ}(Y*Dx>xpC~#R!W! z3hcbvlr}LCf7lc$-|h|sx%aDrt0|9N`1}=GW~GwaBGa>dATHVbd1HNOEU=QKPC^6b zbK!0{Sbhe|01?!JeyiM1t>}ma{7YcBnxXqcN-jxXt(yS7r^NJnM$Wc31)JRFNrL()nMW@Y zE-7M13;@yZ-mvnVz_z>OBvyv=+JT?IRKCqr(op)As@_&F5`y!zSUuv|83VyaLEddx*k!pQ_1 zaXOJ4X;n`VWf7x>)Lk7$(OFkKkwWqcLtg%2!{{NZ@vJcTLX`+9eK6FXh=UhvX1Wmo zc;vc~zp0G-HQzh81MG~AbT4n;Qi)~JFf{LN&ZjYfT+kM35l z*ZsLyay)HcB{C+0;4i}3u*lwxF(cE`e6K%jr$V%^j7T&;*jr~q%@d=(3+l{XC?8vZ zq)&QXwm{>-{OHe+MbeP?~jdr!_YsuwfxO3lD#iG(g5q74(p@Fd^$l z$Q^~XCP_h&x@xbd``Hz>!+AOjXM8VMOXxodH6_izAyAn-?yD5mpZ^B*Uic%)blM6T z?^#!P_>(4I<+SPUX&P%|Puucy;=;K?yooy~|GvC3?n6_uAY)Kpi6sJjM>@sqht_q( zO%h-=^p$l^f9%LFqLR>7D9?O-A>Gn0;_WW3DrG$BP4nD&J~eFE24C0uDf!;eavgf1 zOa_m+KOBL4E4H8kHgxf^|1CMo@+Q;M{;g5+nzCO&L%f=Wx`lzxm$4w?)U?T6QtFT1 zUhLGYaFGAA;R4uz_gnG+K9KDYZgx^CV>>}-g;N%!=qCEc%Gsc^On@S?#33h_6ysi# z#$OPYgko$^$pS&L0aAp?shcJDJ3*Q~6YVHKiG2k%6ZLs&l>BejQ;lJUuFkLTA_LOf zAn(==1eMc%b0i!v)P*i5tCf>Ae9&9q`gf;?C3>kyX+4MTc5_JAr1IT!zqjQ-Z>R?% zCVfleveYGB^a>LcH1=0YL)qt$$s;1n^k@cRI_AVwKW!?3j%R&a-;^d1l9ru{)Ny?i zY@6$XTY&pVG;o?{Y=A03+?zEyYVWAFhMIS&#n(wSkz^beN)+p(wBHt1TwUW(JqXogk56>ezk67$ z%mS2m+}a{5J~5M;@w_{HuT)O5P1Bk5Z}B&l=J#UK1Btgk(UUe7pR`Rev zFONWT&t-iKjyKlcXUcxVuL{{w5%4t#L#*x%_4vH`8v$4C{A&9B%oeKi=Q}x#U?ID* zSU|AXI)TfbeA6PRZVTQ|o zeI1;^nEa;}MK((LSc(DldjF;D5Cm$Y*xJ7J6E6!0yPZu*#sL-Q#jQO^KYwtR2|k>; z*b*_cJ;U$4J|=Uaq%OY~PU_pkI(x#!lq}eky78yM40NchxNkhdsd=DBe!^j5WtkQ= zIp@;yQ|^idC1vlfUrPa10|ss5=pZ*6C?CDK5yVsYU0T4}=%2qYPBmu-;iUU*uIyXuADLGa{|4D2sTiVfB zlUKRAn|Wo-0t98`%)E11LOB#R0?G0iLFLIR{&bpL*0MXfSocxX@kV1Dv=x{Z6q}vv zzIYNlSkPYeGPQNrQJQ}?9&@iGNWbfJlsN}YK_4#fmROkXE-Eoos<6nK!@;JOhe&w2 zMdwn=B=LjDr%daSUZ77vJ2V@Ekf2yb?K<;W7Pqp%@xnRfcQ{P7fb2D7wC`e^-ZW{; zgRBLrh8dC;@W= zD7L@(LW{VD5A*d?c}DU00peR*MIpCV*2zP-uBB;}RxdvVw`O0C7Hko_wzMM^BWNJT zx01{NKo3qw@m`-1gt6+<^R`!rGzCd=1eH2qVP?wIJPQFihkLo6s9IdQEDp!JnJkTT zPvN~c5L!v^>#j|rB7SE%-`mRXD#Jbbq;J%!5o=Q+@Hgs!MK}q@ri^iss;De!0;Zy-|$qO35}sb<-uV*E`OD5hNp=i(_55puvs$&ZwncHPk~FU zKOU}|XFv>1GeF*RRktnBMRR0dzZR5%&tpY=xeOmiffE9coyqi$JOn9{ZDuP;rII>2 z)z^|UL?}F6{PWTe4gne1AWz1}IW4?k-lWo!Qx_V6UHi^pZf`Vo%C~J6qlf(Ywgo%B zp&q;%q9XvONi^&Ft5iXwgN`NX8^u81tHjU@q`~x=NJ-*E!0vL|p#r}d2kRG;NEIsx zE^bGdM#3$BU`Ajq?1kM~{Yld@+Y86XKA)q_AD=yx5=hh2$JKo>CSD4!pXg1c#%^v1 zOHKVLDMr1`_SnU&iQJZsQ(4F#=4={TmvCz#^9{UJu_LQbmxzA@p5 z_L#WK-Sc5IRTS#Q9~O~o_BT88G7D*C8Vfa7OQAcHgCC}Wm{oq0&bCPihIh~UOmokK z0{r0mHOG+(E*w$k>UV?=Z@x1;{*fW72<2Bu~~MBO)L%$Z5qJsp`rwNO2rTa(7xzQ(P) zsW(MgOc+<$j=KM~Pn3@z6!7=(!&j1D7~yq<^i{_OZg5{k21BN;x9g$`*vt%aBaY9t zSlS((8l{zu5AD`mdrv2j%V3KaZ2SQeLptk0zzQH_dHnhI~Ha>_v$4R||AF zDR#%tdc8X1UlR?(v&>)42*U+@ChJ8YLo4NL3}3OmBq%gg#n8 z$h@#Uu|P~k)&ZWH19Y!mD}hS)>iz)ka%O*x!fzP4t~H$$8#`K0`^DZ=25$OBe0&ZOFOa%f zyZm_+ETB4#5tCJ_PlO$$+ZT-LH7IzLhQ9zSK^~O7oG>I$*u~{`2l)B`Gpn(%=tK@_@W2bmX*Ocp*fe z88SoSr-6u-&T2a_E)4VjNt0R{BfvfNjXebwF49rnvFBMI!c)^z!{N}I-tGlY7RkR$ znt&KfYT!`5By`vOib0EDx0XMgUqS)=ZQH#T_UPkPkCJYm=+w6z2wJz z;DeuYns1;!O5o&lE1vi1b* zqr?wCy13_DotE_>dQ3XB=AK8+hxht;_rVgBlv!qkFhDAnnboYh>W-l&Pzd;Jz;O$G zI-)Nr-cqf}=Wdx0J4+q2qf_wkTpOlrw?$H2Kd_*8!_7-rPH7IJmAu2Nvs_sBDQgNS;cKI zy+9e)j<`grDE%!u*)%ydjm<4Z#V6538AkH&l-u_A)O0ISgn%Hd9nY-lSTUu!-^0N) zwK2C6Ba4qO$&ii8Q?}~czvE)ELaIVmCq8VQ%fEGd{9qdpqb~YxQq(;SKC-P_0Aa8Z zq1AC~d+Me=&=Ny!V7z&>`A|~5&u%o~Y-W4(!3*dT`Nj88$|8o9;x4}@WmkYQFk0J$ z@4IY9*7G+mr(|y}h&Mah0)HWipOu@mKknGwiEf%tYa4C}n!kFyLfU7`Qt@>o2%&lN z=@0zzx!5Pgi->0m{8~fw2t{$ZU_?+?aA}JeO?N@_x%OA!ybIFHYRtK+}iY~_2 zR9MHWlb+GXu2U3l-EMMuh`ZEL#9fx&@6RYJ4^jZ!&5BLK_ircw31bFiBzLGN%X0M$ zB|SzN$ZHOBe*2#NkX@B>3SdA_Ge(5W@K7Pk^% z4H;TDbn%p?qFUbXT{Le1Aa;wjT_z!?ijyRk@`)?R*Wc-le>f$d3R!!?bmxtf(^XQn z8g*!p%1=V!4FuP*8HM;%c!MdIJWR<=i?m$ZMD#4i&&G-e5E;Mdpm+MPmI{^3lycuQ z0DuC0APiSXrk{@muwmh1h(v`k3OgzY-zFv6f>qz#@kvzx1KhV7&TUqxsm`17{G2(( z49GU(bkIj9JSpCNmHL=omJTm}ztVrUj+-%=$;eglh={CL)3E{?(aWVOivVN`khZOQ z;{`ca!l;$nQ~NvIW_!}J1Z^Cx8JBLUDp^^b6SGNrATtvu*3?lo_|f^#z?^yKT`v`} z0xC9*=-*c)@1XZp7{o5|;m9d^@f-l7HgQQkvqW9;j3-rDP=a0U4KFzp7BdPAM4QLU zVmE5DLOX0y3L=L5{F)^YaGOXdLMS?bNpYNsH#w6oNDaG5*_Fs6jicP==C2XRKJ(99 zZHQb|W6~nd{TE=T7RpBw7+s|XSwHhihG(?HL4U?6oBLR}g0AZ9JzDzT?dOLxj~d90uXiVeZ~mT+WD)%Zx%THqK|ptH@5cp4SoI+ z=ai)HkJl_G98b~hr2V+XilqbI2HPPW4&RwcqYU6lQY24(8sYD3`qY!|`ZQ-wYlsR` zZA52&E2D_4|wG`{L)}7BXT`ac)m#G<93Z(z=t&PhmYD{{(n<8cAx7ip1)S*Ve!~AkF zA7-a-#6`1F?MpvTtB{{%`@klAsBh7kk=>TG6HI%n^5@WXE_*!j3=;4xfq|MDahq+W zTcBqUFi4$)cS~sKGlL3>JL)&R?s;Ar>mbK9y+|sY8Ua|zVp1@-Os7KMX$PJo2GvP8 zIj+cA@Umft{c{YC+-g<^&NqE|vG&m0UZr*7L;>%rNK!&pYwPUc*T2KLJV27!I4QW` zK8!ujKsy@=>5EgTK*Ge@pK4+lqBL=|Is8|nK&O!y;Ki_%den$l#y8e7J1Xbi5imu2 zdlemlo0(bK&n~IBr|$2`V1$D@a?hy@eVv)vYqPo?c-z)xUaVjt({#K&)&VpQWlq0& zNa6$HZC}_0h;1>H3j06fJ>h!aQhXiL3j*-sNTB8z4kw_c-3#tG=J)KwQQLNFx$8_UUcQx{e z*hSqmFDKl2V;SqE$+O}4R-bMpsuQ{0Ymq+qiG zo@eWR>~q7M7X)3l>Y<1R6*lw!JM6HBF99k+1sxO85>(*E(wJ8o&|hbub1KQTUyDtZ z%~G_?MO_V^qhv|@v;u3<=}}yTp$~fI8_imYsaBYz?O!vz1^#RA6a_zUvRm2m%sY>J z0hbWg(^`nxpIbutFf|1TVegX^W@?Dm1Q;v-EPUz{mf;Y|>lwY;7b`k4>5P!I``g0& zkG{cor698pL>LDylq}}@*@$hO_C4&48+}!q&LXZ^#X4Q9im*&N6r#6lYOs+%uF zpWRSX^3lA3Q&6{q=YcXHF%wUY&ow6{KeYG5A2dK^@;5F@6`ZZnr^X}(>HO8?6f=Y`*)vhX6mhagq4jqVft4~9?O#W$lB*oOj z9mwpn!yL@S6G?%^3!PjiY5*_sgocJeEh_rk1F6yx`BxvXU%%Xs0jZp%JSz$O<*-WJ zk<+!6WM$%O6uQ-k+8Y<+oQyuEJP@W8&ZG8zzVa0giB*Qn5-ZUjt~=@JQ4~d$;d$BcOYVHA+bJYij77DsXu#C77RS{?{pQv2d9jo z0keE1eY716MfD0qgp%iHO-ogHS6PsJkp|#INjBDBGI5@3)KJO;@A*DDJevfY02)My zs@wdAbj2r)DoP|us0`mZ#G;O{^D2nzpF?-d6RLERQ$2S;mb?^QH*Af zRN>uUHvWNmPv$jJ>N&7)J`1!${WldO7=9`3msk9pzPc8_|tl*t>Nu37rZD$c5_g}b>; znJMoZ#{D~9j$_|nA8zRN4-tR(Ya2ShF>_ck`a5h1!)Usg^y*)a_vE+8`(>2>JE>bK zCqESmFdzWv3a}9sWbjwj*3~yOHvM-CXB}ZY9~RPci`aG-RlZ0riqq}Um>B!N5!)`c zrFW}q>xl+&ywm{7b|snj|7qc@uZV*kfB8=f=NZp=vU=GyaVziTEn=&91kBJBwa6x*qRa^>QMRSlRV5_9>&&=SEKp3H z?d;Wu=`K%UB9V?n(Q$7CVX10v19HEs(L8p$+@Q?h0-GF3K^T6!OH-1bYB`3<)6qn~ z?(p)hbrkU#$F#|lS}Gi_$Olb+0KE?xN1odL*^0RZq zhujXhf)mItx6r(jaU*d$iRL5(u>317>V%-eEMu`1!3B3F0?(Zc<$UR4-rx(pv>4W7 zfn7(|2Ar#gBw4VVBLDe`8~4ey>|P$G0hyg<6Ea{Nmjdu#65_Hw*b6l*Z>)=VC^p+G z{!}EClmBa+P#`%J(^B@i4G`7SN}n$%Nnp1G>!S^6o`IE(SifF~C>$AbemXxI^-gO2-hyKeDWY9R%$ zds2}fA1X5MELFj9Wh2<%F;E4v|UZdct2m4j-mp)c7;@gaM+*kPXyt&#=YWB57 z$yZ^2OTIfYh9NoU&F#=TWY37VK?|stkp&&f%D#}L2QC7EzQhhy+@n)Ho z(5)*Anw{9VpOf=tAs5y=&&W9fjn*BTTx{=njniCwIbNzy8vbBW5=Q#3X;kt})0MNY zs@O01P1e0fX5$5Z%_e*KL$i+i`tf2B+|s4^tAhhxG5Xksr%@3{r!~y9eWG6oejoQg znGF9ne0ke@D*a3B&q=reHT~(70H;1U1G6N?Z7(GL_dKnkd>)S_Tb91~5O^P`HdOuY z@6~RF@bb}Kz4$X?A|<-#*C&&YDSn>4qrCaO&h+5s-=BMDJDA}w6#$}!vW-gp?>{oR&#By-Fz(56)2wZ_z_FW_;I zkbL5f9aI{|7XRdK4rJ0!y+!eDdt`Mb5*&P{;k5ZVSueq?JEMTaL>iR>ZO7BFRpK=d zeQtmohTATfFn-!OQMp;F`A6M)I-SFiAWzl=V+ykg*-sR)Jq_ESoe&MVb!zXcABq3I zp@(1{@br$bPuw;5NsVlA07mdVk8ri5rXo%FK6mCcN2jLo!+ZBZ<3O%FB9K@{W-xm< z9hb=pac1eJH`77M60dwwo61?<^PN@N;jK(@7gC}+=FKMwbo~#{7igA&TO5wD1P&v6 z5>QqaQTzQ#!hdHpB$0+>$EQ6+@&NZ%YG!s%K^0mtspw;oaj|JlOv*W)pkSH|tY^wn z7QOiB11|^6J?o`8ml|XXUoS@(I6)$BM5Pf~uePB_(*6|%<3AY*vfxdCM!m^nys@ne z*ll>pMv=?lw@Xk^)d_lJL<1Q8((vwiuPD%wuK3Go-8n=*6;TQ;kT}<|IH@JxqH`ri zWj90$3OD8SoQ7d8RuWh`aOK>t1p@NLtbZTQ{B~sN=u2 z7^Wu``Vc%NF@(?=(OZuoxLJf-`3THC++=p4MlAT2s`P|cDGxrYAtZnANfg9SRXUn_ z6&t@kO7dG4u|D={2?+0eRP49c-82PZMa3&%M)F){_3j3~Pf#&mjQJm2=H)CY3 zc45(<{TWT;ocSe0Ub}07u7Lc_1|wyJCEv6?gQYc@GE->Y6*~^;6gy%uU+j%#4_%ggdadE$#=%$q)DyC7pLY?SH z{I^J8K36Kbcf*zR6iA+&`nKA&@WenF4Xij(Aew*6WbNT?wCEn4wftSlFIWrnDl{bs z`2Dzl4jWEVPePivA7#`Y=SQ=rvfB~pRGVii5pT;|OkjWZxpeA?Nx|MKkNp?7N;X4_ zIaQM7r(_u|-YvB|53ROGYoS1JSL83VgTLXhud)gdHQtl2f6*2L)}D;n5rBaK+M$_L8R&(Gk-o=(Ob; z70ZNsJ)XLZW34A%SBav5ikU;*41VAAUoQ}rZA)9tCxO|H{@UD_Hc)!tHftw$0F)}j zyUb^AzIq^!_gH26?h*W)<`gLe6d)Q4kAMAP>DNsaQ>iWyt0`}Gnr#csTDX5Jb-({7 zBmL#~ap?E5(jWgW7i(oso)$;c?|W>F^_Aj?o(e_?+=PThK2T(t|18D)?^nZ*GX=%l ziJ!=u|8lx>A`VYWHpI9oR)0AUoLvmP5RQBD;?MrQo9p*CH~+5QyjXhr^yc61n;QTV z3M7w$=&{yVqki)E;w0Umg(&hX6hC1sjeIQKe@Wd;g|RICv23fc99OY0rrXivI9{7L z{;)W~!Z_jnIMLNOv8y;ZQ@o^nytGZcY*@T}VZ360yz*+i>Q%fNQ-X$kf|gB!PFR9o zVS+(_g3)S%$yEY^De)GNwXjLF3QM#pOtkAybXZMvx=KVcCAr8ax!ELnge7?uCWTZ3 zAuymM3Zwu4#>0VBSg;%n%!mXe)g>iQa?_n81KR<5RG?cemKF=vgF*GMU|Iy43k6a1 zbB=0=h`j^3mMQL0I=~2N{C2Ja80XAN(-2>RDc00q3Mxz z99(!*4je$+p1!K*1v~+R@DawfzzU{}H7FP~4{4$N-7y@L63C^y16Rwd)%40R9A;)@1;zNidfPiIlvk6${TLnI{;m=N!;e zS_%%%gtI(s0OzAq7#AS^Hjt1w*5E54Ap!u^3HS~ete^%35d*Z_bM;{ zNIn#x2Ll2(3)0shj4QyqCxwokki)P27L9}WT)v*vwRN>Pi$d5uuy*#vQ05C-iX3PgGz#(1J zAWV@SEwVK4XR;g?%!!xHY5>v#QcQ}9?kxZ%VVO?7Skhm4ahuu4LdD+{pw@l_aeg-h z4pg9>AOZ_qz~eBkcgz4iyzGf!vLHNt$16o2o?Z>)$rc39$R}%|^wLuFy1g?$TB+QH zrOfCTb(%t049a~pAl$-$87&s>2#CaCHlm%t0$Wv81hvKzTtR-)Ms;GAi5OC_969kw%iDy;+IDJ`%bd#lyV(lzkcJZj_TUqyqrS0j5-9&DNhqnbq6CL3Hz9Y z_FmHgzUAMYTP1^N3qY#~^pKT@U!m>_cjLEjf45#Fx6C6y9$R|cocpBF^y0yb)Abh` zMXAP!)TLj!tqYl*irv76FLtMz%0j?f>k!aMp(2j4!n~11UgaNqJo@*ZU*$kU47moditYKPg zhyTHO8d=qNp~+TWK4jy`jvVoCv59SX`5~NB5|M5^G+818U=W!AUN?%K0OJKGzUfUZ z$^azc=x<8N@l@k*&~%*~U@n{n%##L@!$J&Nrn81IHOeZnxA%fy5CX`pKrH&;R@1fw zpa1ug3-HgMKZ?oGx3ab_Iz}6tBo!AX6&-jtElxE)+_)gaI5qB0gr7rxhDk0axVc&= z(Ay1HfW)R;Utc3KlU*9hp->Xv;#{-RY`@B4F;=-{N*dfUnZ5z#vd6(!*{4D1{mnA-7qID9`j8CZDD#>R%mU?L+UU5BnChPuW!KlCr3E*zdS_>6KC zTqJe8Gs$?xowoJi_F3WokH7yHO>fB!?%{(o6=`Cpp$f0kU1zkR>WkXm_v z{JgySb^ZI#|I)O16I}kslFO~8{Xdpm{-bFd1t&~Q{YTTz{aighbE|3pk0qD?(zO5Q zl8d*iNs-Cdb*{*7tpW|5`>j~l@3gPbCkCA76jZlUwQgBS!G)Na!Di4WaOCHlMd9(($0u+y-B+O;s4tI&}g zB#ZX#s{Eq{wL&itJ-DEA+z$Zcs}rg>;aiJF~Md_QmdR=lXuG&ot>y9tpH>M&$Ec;St*# zV1MNgXfk)gzs-gGG%U?r?U!K-RRYBXXO)unHFsVP@heU3JFy>0P?Rgno5DUcVT=Lz ztoezs5#m|CixFaMgWUOaY005qdJ|;DlXEE9#4AJAhAC`DOTOaKW0XWWUV^KmSKWMwX4%yUnA$lSM^F4y;A7D+)d3JWD6+V^3^}~P z`~2^*<(s};BJp4q;=Cn95~b577i$-0#ZTu2=B-=QGgT{TOdQ%|XhD zL>Dc@dxoWf&pA_0ZE*bh3-Khe!@Q;n1VD18i3)VhuA+ztm^(9RzE^7>h*3(N_hqJB zk<_H0O)`~pj(F@IApUiO3LnrH-DZ7-v; zHvq_SV?f|b*JqgA5TjkB)?FaQ7 z=_Ib53mQQjvyfY-`n_N6af+m@Y!Y>tbLP%OF^NoekS9>5lY(-BO>K+RNmFB4gmb6( z$WRQ!A^n%nr$Yct_4jhpKG_ra%eI7$S!RZ|m!dRbH+pV^*O0r+ROz!d<6wh@B72r+ zrW<7(7<;1rDg0~34}l3KGQPf%zd;!#0BhBFY6TKeEor!s!^OSi@sDaN1qnBi(;CW0B>|#Ks;J@olK8li@VnC>#V&sI>JJ1;GOPFtx{MYc=me5k z4APslu=(;ubIKzs)PJ(=!aj-W`dU$}o9O`_uo1ZIqzeh9Hrw_0>1tGUs7W)3D9=OM z;JcEId^RlcQ%xFzN5NC9YW4=X|Oo4qo1P?BA@bJRN~b^_eEW#o+CM< znD$snjlTi|_g_{igCLCp0ddOCYLgY;`jY50l>vd<29gh++ z*>069jB<9EM`y;{iKVafOP)0XvBpGAlv4eQDUzce^)&az?_oppXDWmt3Ldd<&E#3^9+%T|4S24HUJ@1O`)LraGAq4C6%P(R)od^f~D~~Q7O#|MVu5l30RQtuwxV%E}NU?KLFBnVm1#kLvZwSbP$RMdZEJ3Y(#fu${mpn63&A>uZ-avebR0uF-jAkD&o!t zK~PzSEB@5Pxd`k(Ll>d-#G@11kcxLE!q_)r(TS1P5OR1O4B6$g#;&al0WcE+e(!sT zxyFiCM)lT2Y`U>Um9hlDe5GL)hpi-C+G&vF^v>k|g2UVPtqv{Y!egfW3^09Q56(>&1wWV+b*oV&xG(CTjK(f{N-u0cXeezpEP2*GQeOQE zr-Hg)bxAHz+dOmuZD>IXk8eG>l-va{QFy8ikN`89UO|vu;Rp<$umK*i!wAy9L#SN( z?sc7cndQZm8%foV04*&kH!f|xosyS5WYfTYe-qUy#vTZ5Ql1sa`}V;Y*)`&6a5fDN zSX4Hu#$P*-m#E!AiY>4FEF|3-umh1btmkq)!S>*Q=LZ=Iv3YLMIQArJF}S<8xR*&` zu3%`$-no-jAD%_9ATaAVKL7$ae#Vd6qVkNVUL+=UI=0IscDIBz%j zGBgoXqK@gNiQ$(nwOPbaLjdgSM_ef@?2(!0qaqA+){P4IxTG;Ys1Xuu%IF_X#jskq z*j}BLj7{i=Yx6ZIi8PTN6gD0@8^RD7-lg`}g*brrO0%}k`-$c?jI6^N2Ir;pVrX78l{EW} zV8|*y-*P6tvJSrNc)(gdjw&ceX5KRfiLIA6+~z6sC`{GKj(Uw}H7ozZsN_iQ2vn3& zYO9$Y7Ta7FQOV?AVW}aX$!o31X^?Fn&bUw6>+>FVXLYnl!b)gl?3IFL1b#f#V(oDj z?KnX<3C%%uch$>uC?^`z&i7jm%w!=y6!cuXw2YfRqbhHmKF5G(F2?u=YEY61*S?Yh z2>&*fm=BEh5s4z8pSCHyVY&IlG24TK=Dw)xbZlQi0eidIt$m8|YZtGTYC|Pj<^|l8 ztDZr!qJJR{@^G%R=p`hdpBsT`dWX_p`VOd=Bf~e+D8brCa%#z_K@9HghsXe(Vm760 z8E`Uf=v-w=$MaJ(&5HBD7EUk`S^E_&tqOZuuv-_plIhHE_^y~lhjM6{D{JK}c|={^ zeekLNqwGu=sh@dKaSlBhhw#TD8@sVy_?s6Z?hX@Y!sMqz3F^IZgo8L%VKr*%jZ8Kc z7tlk=P@~3VBZ@o44CHI9Jw|;^uZ`OF#Gh6uqt$|1j&6+7jtE-nxiVrtSKqN7+faF`q!t{}MHB%AvAls$zZ&Kf=hh5dOW zKqEk6D-feo&Hmn4;@2DU``)a>Qxe%JB&WAhz&_EV6fzF0L=7nG*q(miP-6a`yWMx7 zhMCePJdu6Mn;AWnV%*Pi{Xz@@woIYRJm{am)W2%jcyVB1U?%n`D1y9M_ z**!Jla?+a=t?Q%iHW^rBab{1rn>0Ow>j)2(HPoA==d~ZYp|w>j>WGeqUpo{;NyP+!G&&TJ`()##h-ZV`uH`7)S zygVftR%PHZA8R}tt{Mw!O^OtoXZO2-&FId**pb5VgZLjEV!8Y37RW1Y=2sn77Cx@no6;q=^xlE^h;{f^^r}WQvE}?aRhH zRJer4jLysrnXMh+gColm8g}fGj5IIG&)Ixt1LkgC3%{)@aLnrx8TrlH*Y>s_6amYY zFNN>B-*B$HJhL3cbb&>s@DU49<6YSk>twmFWW%1WPlZ4CWqPLa(75Rt-jg#W?XHgv z*`BXUrwx)F)wN5xUPRrwE>ctVTsRZAR8+g_61Q#J?9+=}ia{^-#f8!vZMWSpt)IrO zU`fb-v4q3kcPa1SBHz>^S0R4uN7$VpXIEI8jXPOeW&0amB!e6oL2KGwh~nOo-mbQX zM9c0H1MwTA0Rwp{smbTfD;?OL)9gVFeuo9rlxp;n*WNd zrTale@rcyVQkLp4F%lZSa3l~jUOyu6Pu%Qoc+M6XBO~U;6#Uros|KC4IL8;8eW!y5 zi;&X$u#)ouW7RcwkM|iB<0)S`_{(yVIh^_Q;&aGrJfco$opIr>`#ktQEsBL+U#a}C zeUAw%JP7*OK+ZchUPsjW)T5F2q2k_&=F#Nx`zq(%UF{IYPjk0v^R70&wK;%y$3 zp~`cEm~B2K3)mY!(P`;-!{1vkyQ(YBirHSNJW=@YK>IFQnX>$c+COW?C5gvmKMn4! zTD(wA;$F8d_mJx|XM6v1Lel=Oz=E@IAj^Ya6X_A&8Na@pL(|^Dx4fAYJb{CCrf-)+;s+wi~JDnGO<{Ye8p$LalfXKEy`*fiYA ze{bpc^Ge4Y^;z@uKkU^ezicJU{BMH4VNDz-XP><6XZ!fA{iaZZc{U^8ul4)9gOC|R z*qr{~x9^1{iXe1K|2_sVmX!ZHegE$({$E4;zv#3X#o0)b~8x6rP1kLl|0@K^?wx z{@?fb?|m@dL9q89zF_sKtnSKn5yPi{c#Be&WIVnQ!*lEe;Bd%O#^die$CbZhAStDD zUSz8c&alJdaUhPzl2;OVJb%`d1k(VXg&%{f!~l#S$cx}U(Lf_QCkQ>SjJCB`cv4|w z|IF)?YbXPstd5O$L~>En!0h&?-!MjgIo;xGh)iW*1+uXDPrEU{yq=x!&=>NsO!(0^a)M6 zBgnWvd|o1Ll?Ugj?L}|(_-1c-KI)k4g`z)i=f2)+yDf#f{QZ|-v;{m8N5ZIRhZ}dC z(7hCmBE5E`29U8mHTRL}I$9`k$oxVo+x>ARi-8WACfoCAp233q0h!!AHShSk+2J%f zDPzjkkU#&(zo+#1|{MZYqKj=8;K1^MjgCzz}4l|84 zK%8)p{&?HjEc31%&;8UYrr8P{wr>s{9z69a9|Xek|#YOam{j9b2aRKGUPG5xxh z7=NneUgW(Yeo*AEb8TWDu&7-xOCw$3P}*wO=uv(`?OahFL#~q&pVR2YSeY#JI}Mhq z2=l7RGSKm=%`4j9sx9)L^{Ow6f_ay!Cg^xK)|DlDH#H?tRCw#Q!F*ae7j=AEd*3Dd zv<-Zn^?4dsb>h?hkC5HBqg2epxATb5DW-E#k;Jci)j-#;XTv_luNPk|QR(;WT@;Cb z-+sETfB#WgivPf;wmJX7ufrq(Ll=v>0ndNEO9>eM{dF$j#lL?f=n>EzJ@hCMODcK{ zCOnTGCs!g3oS-n&3!J2JNDX|+5HKG&bz8F@G|iTw7c|3Fo*FdE_jEpJPUr<`@VwZP zUhu-b_o=~)vft)|mlW}&50+K#=s#G|U`czhiaTG9A?25kR3nk+`O<+vLNJmy? zh(@=OGNGC2`~=JZfE*#`$L)@hsgec~K>1GrYMcD2%z*&0wdVu?XG03qZbbDLHH$Fe z`3Z8b!FKIk!Cl<1J*eff%3HC=VwiUzX<+pSu<5&>@JiRkSV}wy`%z}3;=o8}%Tl~- z;03`M67adMFFpEW$9F~m1XW`)3a8r|el$#g3Y0yocz^%qc^3&_k}sN)74voBl^oz_ zt9-!3&#hPgCVo*P1D;=gOLutAza${ALv( zS_}q4Ft2uv+5;1-?E3;lDp@_PuyC7YO6j#YGC_n2VrSS24Vf7%+Asj;+#)lrf5eqUAd~w*oNUC~GXMO5zSBUj-OW z<%o0Di`lSBda2tG7;nsxAf!I3tEa=3{XEqKP*H)>uUIXZ^5x{r0vM3W?_rCP^?Xru z3kLH+RMMoCh+ZpwhgoF!wgA_rfo1%R85@A3qMqHy6Y}LP1>o_H+C3mj>HgSv3bj5q zavFxEid>xe?-lS0T{?fXV@vpownMr14|A+sYn zw{5fv5XKL%4r5g+0P*J`?_Q9U;a|TVc)H7&eDjr*mYE|Vhh%eK-SJY-KpM18oYVHt ziRqv-f3Rh-&B2j(T)PF}37q=WF>x1+?EXQKAjtA@^<-0Z1lk zvEm#Be=;`h4ka5gi5?lQOE3gS=RQMW%~ZeXjf_3~u>FgAe|{MdCgH*IPn;`M(JD@88#d z|K9YzoX|^;|8RUXF+HW16uq&vB@q*r-Tm}dGmc7)IsJ0l+t=5(`zdimzVVNQWHvx<9eT($413ARD1h)Kdi6R zee~d#eJ>v!)HgH~PK|gqRVF4Ts%K*z9UX0RQa#hK?VTOC(dS=(U%4bi|HS{*)zy9T z^)x&OcWX+&>+SgB-J8Ro-)mki8yg!(4Ru*rS%svhaCmh}`nmZx?bxReC6x6s-ZxcC zenspsBwTgFU-;$!AJ+bVC)D}i|1X4kfNN~><<#{5qe%SSf12z5Z$kb36U~qRBGkWs zRX}mrv;S(Yi~S*ww7X3?j3-VSp#Gaszwvkck4RiIg^~k$rPW#UzeM7k-9Q4n{}5^} zNz!}4pLS-x7uA=cVqwg%*_V(ity__}jTRvQlGh?qs?*bC?nK~j_jb1Da|O=+RwQl< z_if>G{XYry<|d&s`{!FieH&mH#tX(%Y{ z<9DG!Biz{`4g1Npq?uYSae8#AWC9ykg{X3z#e`2f77cg3M|5IBmX|7pjfs7niN&jp zDsXD|Pr?3h06G_mlRJF+5`AuEQD`=X)5G|hsKBRAt}1_D&fDmX$K zQ#liw1!#C<6Y>T)CwRVhIMaB24uN6d6x3Oh6@78m$rP=8hwe=)_eV?ls)Zu35MJ~Q zB)Vl9L)*Tb74OYeb<3}~Xs?!&skSvfw>oKLwYz6MT>SJ=YCNj>tEyYxm~R8%3|Epp zOIVB5XZyTT?ZaBa zciItm?B1v~5*q~%z(N2bPmvH>5W7lUlz_O{d{C-R5P_{#!mNl<>Taayr&pin)s$lE zIT?jlRT%i;oiQMNDdwh1b<5J%AT>5=t--8QX$VYSqE(EI!5Gz}wE*z?x%~;i0U`0S zdlOWiF^>+Y;t->Vi}JlxSbO&aB+~kP&W09B8+N-+Vb}iilPwH|ngEJ$ddw{;4xij`q9x*{>yu-QEhlQ%rRT+waBalYJ0MZe{>^|HvzzR{-v4er~=Sq4zBi0DLN`WZC6ftHe|2Mkeya&e7a7a5Z-+U!T zPfbd{LgZnpBMWP{2aD0;cEpcYl@#KLY#ORS3rPX9ke@>J z)fR=hL>wI8mmCW#uj5*Y29t|MHuhEVirv$2g^1d;B-!(T31LIgpKOlja(Q;mr&NYx zAdGY?+#qlhq=l3+)pvqqaYI#WB95-Et89UyR$C>`6Hjd|@nK+58Y_B=Fs`4QI9g*@ zNSz5ZWg}(&j?A1soL){jk*?wqHXH1qSAq1BIs$F4d*yED#`4cxayu__g;4Ff*Wz(P zjK;CI#b`-A$&(EaUpHuFsUSDaM%dMjRT@T?3(|R1W=F!YM&ux1Mi#g(HN4C+Mo496 z{+LxmWKJI-sK4JrD_dTWq<&Hn6e5=;dr%9Ak$n)tBOS*`IDj=^%V7{FEm9Pv0&+-D zg%H+8YcYxl$HPTJahUXCEldl}7$j(K`g#bC(s80u(RMJ_pU9esVcZxa8O8w*^~_YL zue-x&D%PMIYs;)Vcc?Jq)U@~N^|ZQovmNl`d~9P|5O9HjhxWh(M8a_}t*D2JW7ma; zW(||9uGe5R=*~&gUJqVDP=;`Nz4OgWs{WXnwj!ZM920J=<(gyeF^TI~oPok1pP=&N zdmQZ(Rt@{G&feX3!X^@md7OFbE|U46MnV8gngSai_Nnfy`;|f!5`s?_VBZN(2EO$o zG_!JnYr3llN}qQ*h!whi|DZ>V#tW zK-f3`g)$Pbkbl8hDH+lqn~3wlbCC*E?eYrCv(RxzC0K3hx}w1pGggHk2cLUU1Z$rV zun1&y+$YTTDDxk1e`FcL&DNWkJwjj}QOV23Cbs4(u_#1k%FkpB2ub;)2FUz6u&%|k zM>No?u6O^Yh6(bldrvpJ5&)f9U-(vW_Bc6XyLwaQw1Hr>@PanLQX23!0Hk-9C!`pf z!~%Xw6YL-F-YAgI_7O97PaQmpl&Oj)i-F0&1LV)E-!oOv2&h$kNy>;@UE~ARb}`3w z%!bOas9B4(!%-fLNABn6GO{P?IRsy-C9@R$2;=~}kuPx_WE>PVi9}n*R>AK?FlI)q zi*>AUfuvF6ZVK%NPf~XLLs!iY*EDuC5-T-~f-5*cCnp_u?f&NSR@5vaM+FYDw~P+& zS%E{~jAKK2F@fKxHw_F9{m*Umv~{}MholiP<&oY;6IMoYSG}KS`9uxdRuQxZF{$Hv zNouSn@XedxkJ5Xkzj$N9uexbT(M^r?6oU&F2NO;y0^4*=6RS;hGo^pt!rEJscTXl) z1C?~D2)p~>Psts8nf-S+piwL%fX6nCWr)AJx5IsyW?tyc;rv`;@Q}b1fu|T zTCMlF_kSA%(l8@tlJi-a?$>h=?4C@ymQ^aEw5@Uwub!2#d`u72tnRWCM!ZpeL)L-W zT;2IRFkYD7!L)=YSKYO=G2zgjQ`il?80t<)A>7VDII5?X1coJS%*s#!NvtU^{`j~- zhQGL>NMs>zBgbA?h?slJA-shmfuEbm`wYzg1)EM?)}D(k>C(w{&7v_b+QygTk4v7Z zMC6>Z;&o|iephFZf)1{~N^Dg7yU9;0S0h$B%bb2?bi5s@Xoe&=I5Z--EE1k5x27~J zHNF-wQ7)ks1WYofcpvXs9vsz&cSvxoey190VmmFswl0P&Ja~vznFDbf_UBB3SO%A zs4o%$RA#Z#blhCKTyn^J7>_4TXZGu~aloDkCybP&8Bgq)Z~!%*AROqFEmqKD@Vztc zk-E0TRt!&!8mlE|Jsd>d;7DO1VZ5wvXytDRuy$sL{56BjoJ(Z0L$F*AzfFiArrdgkd>q~Mjh*d8|*s{B|y`1fZE8XKVu2u1{9P& z9EYI^a32JxC2JOs5)iyyC3_bQ(1R1ICz?)yLRTfo&ZeRoj2<7N0Od3^bD4GyDlX~W zc$Xwc9pN+VFR8FhNi&C9pmBT*6(zc0Iy!$PE{_hyjYLdX_)};AR;S%%I?3{-;JP>{ zTw3;PB87?(QMv}Wb<*||SkjRFVcBIIDYf5)iI@Yo<#W%>>?^Q?2>2;yMh3t+pc*io z;L7n4cCr~S^T8uz!-)ryJ^90Li7OaZ}=Eai~d~l)r zdH117n9_+>Utg>>HHMBR)#G($Ew!kvH6Y2^lc~ZYpev71TSfHBKdq4zxPOP#T1#x% zALk|*z+<~Z_~?mcl1qQC3U^YhiMv;)l)eaN{D_MJ$Z@;si{7{$%*QQ=;M$e>+Drq^ zABe(sldQgLW>OpVSzCO?f{r93q!YOk!yF8L$VU}=G<${vE6G!5?z9$AR5{rqegswb z=RmRiUR<_Zl*Tq(24?JVoA?w)j%*w;L7j|te1U9Jcos3C#>mNC^fmn7uDpPBd=auV zGoMsMi`wjU;W8Cd@pteYQ#Q`;3B`-AkM7vLOe+ETAQ>^Yi$~$ z2q)ADPae3WcziD}10Aja<0KOkLJ_4CS_a7NC+&_t=?w$-zVaK|!oGlN?Gxuga0CcV zh@@nVtvG1YlesG{C`OujxsZ}!6(j&CjC9cv+|EAsN|8!tak36Bc@>T|0bpO{KFne% z_$l0EDW*VQ=B1WiqD;C)2*~P{Bogo41Qn)mnB$S40J=Hb=C5+LVRcpSOap`*%x-hdKi zO4XRZ&dWX7(I>yd=N&Df?WNTjTNL#OF#Fn81b~_AhMQnI*-^C{GqQ7Q7!e(-&$b;5Yqp6bUTFGYRQ9~t2eK}1bx;wDgXvfM{b+ferm8+#f z8x+CqevWoIsC_0Q+G6|kdmq=JbmR@MxIvf-YXxv`k<;|!8CRfrULT{@sbQexR?_1K3M?!$tt{-Q&g z|Ht6{F&m}2v%)GfKD$QK`{h07IGu&KuwLiEeO|A7u+XfnbI+uaf zky*9O!_bx7dHGn1*0i=y>kcRR5Gh`cNc1`Po_=$@)&1q>iwRW}0Z?+ck11~YL~8^o zMN5U^Nxq5gw~o|k%AL50Inx1+=EWr zUVs;!xBD0Bhchci)mWQwR%*POKD^~=V|3Vx76c>%ofoe05X1jN#hSs_h{GJ5n@;%cRKJ5<{d z)wE3AE-tYtcM>#fvz7DLqu{VDx$_w-XD^mufF`r=gQy0Y}+ z)KMnc&wddyzii5?4e`qYC_@E5#LqUtB3DXy+E)oypQ4A*PP%V~`is$^1brBN{Sa|a zcRh5FD|nkB$>3o15EaLsRAtFea<}F_<$lmn`mRfU2jC6=QM-Us9kE=;!-uTrs&5qn z>{_5I?H@mPLFE+{Xg<@pEv^|&sfnu{j?F!GJei+V;4#vj1ecnY#dX3Mbf1i`_&dM2 zOZPbwmA1)%$Iw*mFebd=QCH_MAt22{wt`h}MdyZXzD{$~jDg2tV&PsL+i_)UXTCw} zEsz)C_nMic#_V|VGsX0~KIrbLh4S&=WoFOigF@5xA@4$*=4ZrbPGeWWqKC%1ZP?q` zje~SeW@pI^U}msH#*_YQI629KGT_OqL>&7Jr6iAx~?FBx$AOcC(bVt{7CrVH&(4Dwy(p{G#Q`Km^ekUe$!(`b!bhu=o&=E@zlcoM<3wf?+ zv{xv{DB7qOK3uk>Fe78v*;xajQ~+e86yI@G6a17#OdKFy*9vxfDyvd#H#xg7ARg9I zpw(5UugSOX);&>WQ^g~Ne9M;@m`zH^lpt!#^^uUnFryQT{UK{?JU1k6MGk z^V{mjUt5X7SWM6C#oDI1nu)#EYff!2yC(NhR?+K^6FLR%C%*)B``UYqvr|XKh{o3w zbWeyfA4yba=}#nx`#g+$ZCv|o+yc6NCQU)%Tx{B0HnGrZo@Xe~u|Qn;7SGPFlMHhX zf-p6)>g{tfh(S5BJkgf?hRhhuWJ!k6okSWR?`D{4{#PQDn#t^`j&)CbJ`Ku4&$?RJ zVToFRe?@+>39^~?{BPZgy#a^+$rsY0VM#Gil-DjXE%nMN%Fxsk>Iu11XSTdXd}$tL z$~un4D2E+7HZVameQ`NPe%9H=-g(wxbb<_K1u@B=Ssi!zztaCq;aZdgZQqghT1Jt- zktEzVjt$(JeliUt8le-pXT5R%1$H?z4s2}%CJcpk;P_2=@}@Byp37F@U49@NelUu= zEL&eCDc6X1`O-aNGqr*+%-8+iZV-Vh$bvSDY8Mf7A{_!1jorrQ)w?5K=VTW>Ge$>i zjTea5-E*TtE(GceQfebIp<|7iGpuX`YH4TB>e%lN1x@&*H1Vhfba;xcHwqesJ2$bU z8QYd7zr3~ecJR(5Js{MsfOaa8h0cMrmSHR$G;5o0o9AJ+1;x(K`#!1hV(BM%sqGlb z*|nKR4l3u~HB@t^0@PZ2Pctud8qO4B+=S|ep*)R0^3+wl2+!*Cq>7Q&M#Mdm-ep4} z#_Ld9j+zgCjX)35IVhjjxp&7WC^O*o4Ls zpfT@aQ)g!j<1GKdY}pxkvg^>ao5`fc4O!tE)HlW2=sZ_V`#$5X!Cs_+z=_ZtAS?}{oNufL?_@a$2z!=9a^7M}y<8avn0r7)rA5)YViD**L zAp3WRSNTt%xi6fZb-AkL9QFlplUu1@us_OsE4tq@8zmz7M%kY(fV5~u z-&immQu>Te_#S&j8>j1^)uG@>j0L5J)~7C}w4AO-)2nLC4{ zLmDB(E>vcK+}%zBLWOEDVtJpM@cacwQ6>#r;Vyk?k4DnjQ$?1OO+(MgT0#a+F*V1; zm2E9tnIJSKn%zaqEa?vc%h<|QnpQX=UEHWqy$sKDf1*sZ#R>9bO*Lmpb!}YP14&{`^-C-Ql;vNq z0qg-IEZDReN7Z1Evt%}fUn1aR8#>J4 z>R#j}`m&kCxB9B)C0|au9GBor%)mU{G3lHgOU9u?H|ut)PBl_~(3yyR60&0AB~Gzz z=k&@j@H{S7B=OID5gCJYZOXuFe6Ak-cH8l_f8oL)H?5M9#LbqmyOvu^{06nSj?f0f z*F6p=Un0^?LSG<92py=s*PL$q1L3W56|2UNcwDHWEP3*lvqWnJRH7m=BLXK*i{A>< z%6nG5&izwf88FcFvSzzo$ZIABOtlLgRBc`$S<7pByHP{PiuT*7V9ZoY8%L;l9!b&! zl7VwlR0fSu>ONEU+z6mw#JW~IO_N-bL12RWnr`sQH7Dzq35`mr?-MTyA-?M%;j8Cr z<+7KYOOlsXk7PvT6uoP{42O>DM9rWWwMf2%!BG*Md7U@XLNPr8H!^CZLfD>WO zXGZj;-GKcdY0AOBAj&$mLn~6&wbFD*BrD~3ONbWTQ`Kf}G-F5ORs?Mp$wTiA>$u~G zgwBCqU{XbAaRcUUghBK~2_p;T1wuMYzaH;BL+$na__Q(11mAyIBRHCXmT0>5RV1}W zyGHzBoF+to9BBIS$GQ`1r8*w~orTSa-|qSoOKe$(^ch*A57{5<9d-AG zHJxeQ?6GZ*;j~+C7mYbW7!=y0SRY|FWgE%jJ{x zevFa(J-fP39Y~=DCeIiVgG?%N`K=jh>ssKaN)NpoUFb=Q3ac0@y7HstM}wjcfd}bH zbxvagz3Pvwi-dy5T0c93Umit}jaeG}c>Aq^ahZy-HTI=h$%na>F=F8xO$*~SxpYYL z&J&rQcIFGqP-9?*5KcjrlY{x;@3Rk@N-1r&zmRLCw#@+)g_9va5Y%y9K{yJIS%yF3 zN>gknujQJC@IS8OiaYE^>%%Rk+4EhS=n}U6$Ob*tuWvWs2ylSNT)21dz5u% zSI-tudYkS23`EN2ym@EFm4^LxeTU$M!?4tzS$n3NdP?$DmHuu#R{z3I z6Z!C^hsvyzWwS?wJC=6jVRF%V=;H=$P%rO6RqPNQbKHjOo!yjd44q;2gYAn5i+XE{ zJke54XfGFghh=KnhNe6^WWz{;x+ZWNf-bcX?BmffDiCQx5XIJ$B6>sJR#N*RP*X5W z5+m@?{Lz6Y-Dq`cD}d*O3o+3V{Ugh$}wGAxibE#}~{w$|)RW=b4 zO)<(#nm|%8eai$qhVD4|+i0EUYA+(Qxr zUeQ(+?k*0{V3m;b>pUOLbexDmJ8_C#bWC!gi(sRo{<4Lhkww^nU#272Bf(~UPllJ4 zn^P;_!xL_9q`>ULR}bQZVi?|w7e00dC1U9HveJs3ay!F4EqR;5mt1%O4c6FvY=V=Q!+&_j!*AX zRe%~$Fe_sdS)~r*B}ehP{GzpndMWEr;!(L!hB{YXf_Ku@hsyZSRsh^>-3mvjvPiF) zxK6EOX&saW_q5?it}J!`U5}B?F=h~}xJTgX5ip0VW9v%Bc_6JZwdxFp=^~kVgg|Q< zkUCnukG?^wGOOfwV<1#04M=cQ%MtSsq;wso*-mNNNaigC>=Feozm|Db5hIr<{tD7G zFwiWO2rcub8>>eiX5HJvNTf1|_Q+N;Ni{s1C{o(vWZgBHjHS|+f!-g>8;T&4tWs<( zXdSZ3ra%ODEi*8P;Owswl_B&q#L(vmoQ`^QgtvlVpt;zmRQ=92`jw-8pedN6NW5m? z?%!#&k!u%M(g0;9m5=2GjJ^qv>1&Vl(-<7PuwaHX(u{T9apk!$*|)^r zMX^%W$|kR=GbEV_WIH2ZueMNz6V?4nzl;{X@qSKdCGxAsTo36fh(>&ku-9#9VbmUW zMHFAT+}pQl+&tD$fshySzj#%boyBoi@BWleS^L9Y$?x3Pc^$`U(^aA=3r@IqvJw|0f`3T4qohaOnOE)Lz^QlVk5;c& z;`yC9T-(L~G9<4nMT_CPLXC3u*zu8-^@hG>5KCwr8`A-J$9stpP zQM65x^yvy!ydXI(PCU<^aq(99!!mrH-;SgzlXk6OVn*VE0+h^sm!;C7Rz09Zn%JO4 zP*PWb7e!o1+g08=G<2fRIyw2Gw8UVru}4!)3Dq*Z)PkXvD4F=NBx;afRfN~Ew=_6>pY|p5Kv`bma4g0B z3s$y5yc^!Y)!5Sm@MiyPJ+7=5j#w>_p**ff99faCZobSrt1Adz<6W=8Q~Hzkc!86OjBk_a;F^6d?W@x)m|J_cA$0F;5pLl zPRwybL%u$Et6~1E)!qHhpaNtW^sJbBV>M2GWQ%7T9X!qG#v!Q-J}G3Z^m{QWRoZIP z#wfEL38wO@R}g%*I7+_(z8%T2+0v+oWk@pM_VAJP$Eadx;Z!@9X2}?4+&CwCmp2mcD3MoLQtA z#3Nez0PbRfSvfU5Q|u5-z!xO0^sL66txyfYKKF&9Jh3V^w=jQS^gbG)*KTKu?7T}L z4;7xAedG=LoSOV)H9W0{PS@2b3~uMXvEm6gTjV(+tq0zZM$uB=uH0`MT$MNbfTr&ROBukud+_MNTh*j`yst0bgch6Z|jF|=(ry0YrZaJ{+A!hC9OhMb0V*9|9K{q8}@UOFuX z{V2WsEde3@rF~^bp*pC$Y?5##MfJPo%hl?@?+q6BT-)Psf`91Z*#8j!StEBIekQWD zrJVfm@0$D{+pm{el;0Gd{Eclr{bF71=!^T-%t&q0B7(X)EfGHY=Z$SNCI%FPjZa8S z`u7{#jLfX;M*s*yoLy90a-)9C5?}@Jtl3& z{=ET-oBv`xxm6PdyUS@gfwGK6Hsl-1%6XKO`jOs%#5V%nhUHRTN@oLV|8#5tX;{AA zE-cH42LFLv8VC&oI&^P3w(U+;92mvr6Sa=oMIS?G^334S{$h=8NoV3s$M#LbzP_kh zd}o7+j=_s(iX5_y@7n*NK=n_^FSkWQML*%oLf88PfAocvb~m>cCUIQc(!8nIzQWo{ z_GI?7J{~r>tr6ZGScWr)aJjvo>1{U(c?qfHuN`ead|hksWCUgQZwQp9BJ$C(T9ebi zDz_c_yX zDeCGk27aHPgpoegdHLc`(GYdn%5~je8OLh?%7a5gXq^!XaYrKWBT4QZ*jV?5war9R z8#}W`l?dcaL?!$T*p5TQ!qj{LL;q=dOl>8zKidviF%db|1B)x;C}m^IGeX?psLtr) z3HyLaSSod=2rZ}luUd|$d;$!Up*&Xx)C(t` zdG73JIOTn`?F**L96UrQ4_+Z^3f^h~MESIorB1<}%a^KA(YdgL3eH2WCU6e8H&`zURi_lcg8 z|2|Y-u5+dINgzwy`0%;)dSdvkTdR<1rYdm)7e8^rl5sy(S<)bqzX^MxyF<82+t$?C zil%*(K9rW26&qbCKTJXGJEg%c18?x;F<$6C8o-5B%HgpS+Hsm(twnhb!Q6Z+*fbna z5EG@#5U(wnmNjmQ^+MkOeG@B%9>;d#*aeEDM1S>(WHPw ze&dh1Dcmn>Zc>TQmLv6{gOO>{*16V850Z`NrmtX8U_ubN7ZE_D`MRR?TzjI!By?xz z6N2*btr03BMFfl@dgAx#I!dQJrnXmfQmZT49r;7W>-@NzM=FXO?yV(I>CZ-~+Z71n|s0R(#B)^UEDHv-zl9ZKxuB|4F zmH1RmOHQ87vDJ3|rJsiyGTRjA`NuO<)@tk>7f7GFG&pYD>GXUj5psVDw(H3IoY(4z zX+Y8e{Uu~|VI`~G;9?}a3gE+ChRJ@iU=HLQFy#e*O!9TDqU8W=Hhu$!IZbwDz00Ig z=F#wX?IWU$GOhgRoe7hxo$TjPn+K4=!|Zj$#E>bnp6aq}vw~y1n%w^clYWvdpnYCz zs1+5=a}`5rUm97I*Fss&M2+REg@Id6D0~yk;M}(28VCSnPxYGI71t>*z>QTzWjd;%}D^2#h{<`%yh_mDu6FFNGaY#yeycBrH zCeMC%t>wU?2{JU{l;wO>eSzX>N`>K)c4uoB4weSp+0=tx^f#Hxr>7n<{hg>9S7sh@ z0vo7uk^4r9EH7|}9$8T-NvZ?kB(|ffLn@BA0p+Hp_*9|~So8QKp3qYJ7oz%KIP@@S z52gg`G9je8Epm^h$|E@N=K6VhS%pY}pa+&_@kZ9RVIfXxmyF{z;AY_~U&EJXs*Q^=k!VZL8VZAY4 z)qUDDYJ{#Yl~vc25DnZF653v;=hMf*5+2{UWL{{=g_NbC94-d64$Ey%nXJN(IV?C* zmE2g-004>%OK#AP1 zzSMc|Lh>_T3ghWR^Ygw{8V!wYC#To6?q9qq)ataXDo=*OuKqvnLpGIc-DMo;$9& zFH&$h{{t_|EQ?5Y-mi{L~0D?D6nFPlJkO0vF z=oCYWfC4>(glXD(7%B=)M349hmq=Td3!5dngOLkq4d%#5V=^bnXo8TeXE^sYK6P>fBR?<99i6c9v+ zvwIf%D4sme_8vN;<*Jdc$an*s6sMIDF8J1bwIoeKfkz(f#RC$9u*xn_g>utbg0>Zj zIG;bcViCZD0{{(d78lTh-;?7EXs-^_QhNRXTGqcTY*W$admM0@4yX{IFPBJ@zbl<= zko@>wR)zt7Y^Jx@NdT`v?zpJuPGG#;d&8_OC^v*GD>PBE3tzzI6Xj{x&)-SJaLZH- z1Pvkp0-}h?kTFY7odJo}Q%b3(_`2ONA}sXpZotnkt>Kf(veF3Y2+vQOKX$sma7D*~0LQg0asEL7ups$K-pRfiOuMZ9tfTz14OGoi)9xf!XlQb`2U zs={tS==J~@Xn|VWKnCNky`{T-98{yWYrr-iy{)TYtz%rWsiDLE0pF{A<7&cdoIrvn zKr9p@yx<~Y>Y;D|bgE$asq9u|8RpsZJoc-Mc2^bg|dR&B;u*t=+g+oB3qrc zKF0T-xtFWPvIRonHBfg1k-t5R#sMP%$9u^gsNRi`$;Au=20uXK#~EX$17Q*qQIv?} zJRJ5`oYWs~&O99C0tWdkn=Dc4Pp<3xHV`3@>vzk}*%<+QpBrujPpPcnRm6eoRdst0 zl59!|4N&QJX#4?`OX7CmeUh8Hzzvw{rjsEueiMY!>xLw@h4eWC!Z^rx zXb5o+w%YhQnc@)f`z@O0(6AskjWG!7h7P)wo}^b!d=HLyT$@xQo*2so>g0l@?7J6m z!KQlLjswvTc-=`5fl=a_p*2})$c$s>I6GX{X-|MwuL6rnV2={iurBS6I6Hvy8kE)9 zT1v2$#QyMRXB?-wYz?OOg3)h-m`w8Mk&&(kAOpBS%p0rFDCY=5HgZ%vlbyHy2|gV` zR=jRlO^|ioLR=yxAfAe^&JB}aVLg^8DB^rVf>Nd7jZh+hP!kr0b<+38d$GiM9B_eT zZP@K2@o(1@rgQpVi?JIZ(YBFK>GZsRXBMtbn*28QdD=psboP{eoUt<_doRySd(SVh# zg8jc6qnDgIMP7VVD0|f;|OG`_CfB(VZr_RpK>6tlsdHJE? zVJ9c2y1Kgc^^L^D#Kpy>{>}ZAl$4c~6``OfLXmT=vxjzeb~2dY(6BHDk1?L0Nj8+D zPsc~K5Fc4jXKYy)pQ7W^=7-z%7DCC}i8W&e6$duSZ8takpD*aOEE=UM!1#2c(tFZf zs$`+oSG~!+d9~5MKiTUgt|d@Yuwee6BY4)cf9s?tRJ(co>&5f%`LDmP(UJee$k@35 zDMtRQ_*3}r7+F#IKl`ZuE0*x&quGVUrPs@E{^|X!DT%EAuQxS+p8gLkVP@5qe^|m9 ztE&In)P(=9Si(0ts>(^rdF^`3ULnru9AxJmX76&xnF5IcKX&i($+_#on^jEqx(GTK2hJmg!9*i|IHG9 z*|D=ZZIbi;W>b?m?emAPlnfaB|Hcw#*C_rsOZcwamrmTr8y{8JD1x!CeEGzN!C)B|I2S955ZygoA-L` z*=O8SUUD57i=URWwnako?~R$%Qmw$qS~4J(~iTh32iE`hUA#VX|{ z^1n4rz_R=`+@cT-U#&=%6=d5nR{FWT?JdW3gZiMVzNnz$;^W=pJhh!*eX2+jgvmCb zq$+iD70%<-QlcFj$*?NVT+dPUjj5)wtiI`w^N*N08u`!FePnen4jL;6fvT&N#2l;Q z5~H|WC$kig&KL~v9H=eNgxb-^?g~p8R~7D4*yseYsXNwG+KIT-^~na8lv#+B?bX$e zx$-h$rd%7C)*^{U3B8AcKQ{+n?QK@*Vu+4f`#H-@B7+%v>+&YlhwH;0E=e5M%1baF zccEmlJDnR+J8quuY=2{NEuQ6Ef9~1tYG|N&UY~E57ec@OMXYn@)t7cH(U7k%?T?ra zp96I6v7H(tgq~esrX%ElsMyuXh}wsKPJ^;97dg#q`i*lfjB2j211wv%UaWp=tlwma zpPG3~bKv10yzm&k5@}j;%ocGM&sg&se9&!CI4fuH-G^TQQ>c`s^pNAb`n@A*rD?4U z?+%0r{5X}wGEc)V!>HnJ`?QX8QA#$O%&nMrtBo6VWsQIRI%jM@7mTfdXRQJrSeMkF zn?!uwOk7qhoJo6!@nJQ_MRk9_m2*1)clHrbU`n~I3r87sZ+edyKDQ%Q`WTCWcNgH$hjIg_gL9|J?OJ=I- zUwU52-qrl0e8?y^PuIQ@e*fg>@x_;`3-1qg4=(i!OVobeJ}iE5k`ft_a%Cr4bC3R0 zoDbihgKG+DjwAjJw~>{HHi3~5zWj&<>eGzDNdAawVjOcz01}_?Rak8rLKE&h;-qU4ICm+;VGu+8hOkXs?-F-K8#Y@#t2ATk!jc$(t9?M#J(y+iB8Dh zmUoMrL9l7ylw;Om6!BdxMHZPbC5;{=;(m}FqrUejpH!n8hi?(xxw05zv2x;L!)%X@ z=rK|G>g0T%isC-in3?$NNL}hocA*0-{FO6lO0YC76z?68jLZlYW2nqBU^jLxDw39( z!~u}-swwNHt7Zx09)RyM7CNNUphvK`ZtN6sMR7MaqenIH%NX74?^!Jyw#$wgQ&$4| zq)$661s_YsTM5QyJ@<{C^<+FEsuOm^XBUQ-8(_lt|!=5QhX_tr~({lAN#;&}g#kudF+D7qOO^!~qN zq~y{Tp+z8;ZmuQP$b6eLWc9J#ALQj+KsSm4MUAe{iHZgf8cAIw*u-;0Jy0RVn3 zf{26%060?JMJmk!rqZZppIcF`(X8wE=s_Ay8xSaIaNPpl1?~VM^&T>9?t0#%<3XW` zu}tsRxX=wR7Y_Y)Er>v>=-yW?AkfjTEnSI#rC~S#f#Kf6oaA45J&4ujM(k(>`V&sT z(d5$1yXvru@iI6-3M*UJL`DwD6=OiA=rtYKAnfK|SvvrHB>I8^tP4DDzk;z3`pr`xc*VD^9Oo|Ko+u88VT5!f?msX zS23Z{U5TYhN5V7NC#v;YrPg1-40fXx{Ik)zNcu0_hWg2CxCh zoMmCOvgo$QI8Yh)72JCsgl7ss!g6FmnhT#OIKo%^#zX-G?lag%7RGYW50)APG89%J zjI{%EX>c%fnHi8M`9*=!j)vlJP@|{al;-5;c(@{b3Pk7*w@pOPV<|iW8*gdxz#(HW z3=s;nfCg3qICX(Ar--#2V7?o2&AtGF@j%!RkxHq+GPf-g5)3H?yNXBL#rX*$0bVrZ zqX|SDz&j?ulf;FYoJ6W2q8Z^JX99p&HmH>gLXQJ(j_fcrh~(hOE$+zWxM)}{S^)r` zDTh$&xlB7l{$3X;Z0VGfK zU6|i8MQ6L7{z+N7I($a|gwGry3f!X`OgK;o90Aj+S^=ko`M3MpmWE1E;bhFT} z3la$kxsl#+bK5$sfR^sLi|P8P5CDy)kY)+U9s1y}D+$KPa9M(YTd5Hw@EA@NV2=(R zHV%5hlRV1>9?nTpvH=g!r#Nt9ZJiTv5-IWAAj+Pn@imDWV%753qZBtIZ=ZR6Aus} z$k4`Nh$aC7S&X|%AcZV|HyAM?9uIc}@VLFGaNy6XuE(ojNmPPaZ~D{<2!iy#2H@bC ziKM!&r0|~5Zt5qaLXB_i8b zB2jSx*>r)zIbbPxL0-Yjf%pfESxo`5YgHU{`R1df=Fl+{qRsptMAf~)wmN_o7y*?BOp#5#} z+jqcWduW^kE-A~ulPU+E+0#&0di)O~j^hn)==5Ld z@#5FTpXqlNXROFi%q{o&Q zFTYzYZf?AR5Y^0#O)V|#o_-%&d)xhbp2fxb-G`mn*7`ZzW^_(QPF?ldm(RN&_n99V zDf)WMe%#HfC~ez#8_?dM7wXUCJ@cQVPaw#60=IW#GcKS${KrI-w{!C2zokcGO5sNC3&Q_MkEDP9u^GQ|z#DE1 z`R^tg(>>7mKPH-+^vJ;)3M|jTH$Ene2N1`js|2x(*Ht3}bq(kH6VNy?RBc|>Ry zC@9kP1}Q*q<=CR&)z0iZoc1a?0HXdUFG$$G)d$&8)Gn|o=rt25k$dVLjpRHpG5{TuUSK!@X+4{5(skK z=?Op84=J8h+!Al$``p;^)_lTKv-Z(jRh zIxpRQT77lq6T~fkxyYgZbb-56@h`jtX%(U(TQRM3N9{b4Ocb~1#jF=So{}_L;J1ig zA9XCcLhi)9^mROmE2RBe_VsmLn5>Fm>;==;Ld@_aDpRE zFOpH|OitD)1)KEcVp%bJwMaBsy(zWh2!5JYqzCsTLW&VlB7`c%mvD~yboR5i#mqL! z97cOVvfUR>T83pKvdMTK7xUR@97aT+aiU)v1Np*3GW9sh^AXQ0^*`hQxjTZM8u60v zh%8|@5JC*H?J}}yNqn`sMj@K|f)9O-BywnEqOXckia&r!9puZOwNzommtLi!Fqt>f z%s3XJD2+e;dK~eQsskh{DfouNe?J9c4sWq0>C%(`{;Mk^#y~-+V7M{Q=Q8<#h&90< zJ4lqvgAu(|mL#aTYH-8SzBd<_Rmgjb>V+vp`_YUqbSf33d{M*YPLZnHg5yQk_V5}H zC0HI>@H}}u&25UyP%o{bY^+l_u6r7#b+Y$BKTp+1Gcm9Bb20UqIHZBbCcTqGpX?p? zjHas>v62Nn{Y2WR?T6YTX30E?lsEIFmpU2WuBh(TD9z}V>uG$?lqXQEi@havqzh9@ z$Aecda7(o2!FQZVCy}BCFXW1@S(|9~ED3oCK9Clu!kv;m3AIzqJBsCr?HN#Sy5u`> z-og)-)QehPJ^|w@FPUAPQ=B2N4T^lVBBfnQ1N}>kO-Zo5JS;mwN>57JKx)8QCy{rV zEwHjc7jMw`&fS&9XHmuGD89UEWEXMfPolNwxs=U=eKPPAT9{lq9d`A)7qF-Aeo;VwsyxoBAJ zCKXk#bC1~7Db>%ZSi8sTBwR7mM$#TUs;?Mg$ka>aYF!U`;}ZweNlflI$RCUE$!Rpa zqpq#oWCz8VpznUlhOx_D*H6_Z!W`t@klj5^Axx>*;2_ZirChlX)Fi&=EW~vmZBkQ^ zt-}f(_XL5iIRgLHWe#U_MVAt3;GGcYO0aVNCVio?i@eY=&ZzCf;gWquOMb%l0K7|5 z)GdISB|F%uakQ*RxFHHNg-L8w&aH~pIjFORU)*ZBGZu18+~TpP>vNxKKfr6o7!heo z6t&o59!`SK7x1dxkeQa}wYsgeh+MN6bPwIY_FU{QMbdhvg4cn^5u{39f&%y9BW?DQHSG_q*MYVO##mtLVb&`bGmMftYW#Ci7n%UqAm^ zTGU6oPle;P)#|&n<->f#x!7=!IfnJLZZY~i*m*s|u*GE2 z!;rGME324`?9G%ND8sGc^gFr8V|mgFQk~da3W=-5ru`PvDiryLmlE>qY~q1^$(=VN zX8z#G$8*;{wNc~SBI0#$MhmQ6Nlt`dS|_a|cZ^tl-X_Bz-PIgmCdY(k$~zo}Z(4Zr z4MaqsM0X!A=RG7#GYqEN4W78fxft05E_e%@C5|KNPn(>+(Jh)RZE8UbJ{D=4S%2B+ z%n#(Vq#<=2lTy0(P#(Ni1he1ry2JTrXfZ{Gw&ggnx9Q}J^FtSFwjhuZZO~EwTZV{B zA~nY2X$-7o<0$4@p_P*?z=LG4ew}B)C-dNmqbF!>yR@=)Xr9g3ub)Ty%2l$nb#E={h(M9=} zjqI*>;4Kr+qkDqLcKux=lFe~ajzE`>rTjmsA`R_>;(tg3KkcoI;W7d8ClLHGC+pBS zgj_C#ssuy&M~p5i#(FzKyCqVw4L#Z7$4(U^st`fTZ3~RV&Q!)8#wn*}lOKTm3(qk= z{=Qm2BD_ldg<6606-xUF{N{5*1AT2PRm#CLh$K4FbV1i>LPfVUN>eqcwZ$v86YAKb z?JMs6u*$gvV$!-2ho$6?tD#^;MjPvTv7YG)>FRQ%G7fXanW0H27viC;WY2kmuZdPD zLwSVUdmyu|K6SD2*7EQNBFwxv>KJ;cL9I)X6DT?t_39wjM-?Mz8;>Q3Jwsx^7?!>s z1A`Vllfh&kYV-~PP&Gl`VhA~7=NMPPmo!W^qBbPr&|E%ONJAwT0eH?>Ba_7x%~TLe zYQn>sWMyvr#R-a+D?uF4C-Ns+D*N=ma`DUCFy*+Xg=ihYc9*+ytf{LQV?3(ao2HevJ+}!dao3U7A zEAYxCID%4^T*BLKt; z!HVCQ6Z49K=x=KW=9H;1vwX`4mw?Y@qZd%y2uAIu=XR&zbOXE)*eG*sDl&p8nof;OsSeQ@>9 z^E11AnP2HC_qx)${34_mEosJ;i<-kSE=a1(eRxoHxvbdCa4nSM3}ySY2r?SCoyT9we+dNoDw*`G6yl=N4F@m7rlB zX+VcGP2zY)S|A2{*P?-I*2FiCd;{F+SI?aCadIslolJ?yv#oxU{kW_&UBuD*P)D^i zTgkg#ixB@B-2{p3RJuV7tt*Deg8Np&uh-r^MxdN)SQ{pNwRO?FdL0kLjmW-VK!2+@ zD#(U#b_B^}6~m^*68S8O01$pg=2O3T%1N2MNI+AKQl~H9dn7opwV@E6<*QB+& zH2!v$o1-KZ`bkffd@KfIk0(QO}2;t zu9n3C#$W?2w^T)(X zCvj5)UrF2=nb51JKY+4U(X{KzLC|%icUNLRojDa)wwJ`-N$q~U48?OVcvmK)s5#M{ z+wZdM6qpNqn~}B|@_js28;bbWBbrpNEzbrY3%U&9yZR=V#vhf3MBiDL zlfRdSe#=gUvl*`#dDzZ@=ohfI-V2nw%6gcch9nx`H28=XOwv`@PM!@f zaa*1%rW9#I>TB%K-RFUH`xdtJofBJ@wDhDQt@}{gyXaUZd3TwKZBBYYE2lw zsMbDJz1Rx6`fX;ahzi%bdDp#T% z(yocSHensKf#YUrz=XJjYF=I1n*+?wlq*^bMWbvxvh?u?w>$;A<=c3Fa@(1dPR?tj zL~|$lBsDtO@v&@|`X7jl!-OLIzEtB<$G2C=aDu?t`qaAE*`#HeWKhngXqw@2c4Uy$ z?7Uy&>wD4KF12pTq038k9Sk36C{Z6Ur9oJf6_vfl4{0XNKP__F1UQ~_C!9Q`wjV1S zy>T>Np4F=zEmd$JAw+zaPJevNXCvOm*7lC@$k8rEco9~EDd^DPg2JC2NfGdfDC(KF z^#;VZV<^VvF^X+(%c4c5>5Yf#Z6&-nos9(e`dj{0*~zeNqrqfy5B6KTn_okE=fgOz z-wVKwtyCYQSxo%_zQ0_5?@u_7kNXM4+Pe3g977+3ab~38V>BeL4>?F>V36*`C))3# z!5<#<@1szeYB}p&@7Gm^*TsTi8ecf-pH;uedA}XJCcjNXtNrE2Hp=vtO{H`v+J;B{ zyVj7*#)my#>F~9!I}|}*j@!I-EexFMGY&g&JMuPdyVbQ#>mMh#9hK|Su{Nl`PW)z;_4V@o?BT(uzd^f1=}!c=^o$vr%fG}t_&`I( z404)#tcc+Z-*CYUg3ifQxP%D)U}!a$u%(g5TJk^4qg|{GiRZ}(a+!<D~ z)ua&2jy`ZAYIq}mL21S6Ef3D}6tvr-JAM8Yr}jBoUm#!Td?@I1C=w&ABlvUi()i1z z?cNvNgubi?0z9|zKhND4>j2x+e0GqXOqdlre8J!UBuseG;$U3)>ZiKLQ+%z5ObnCg zpM(bkx}b3(rl_aCOj^Xetj`}t(0;*#e6robS;cB-i;%ME`;^PR6unciWhdFP|nYqR6* z_0#Yn+i$s+_evITu+mq7E!$p~g^#+oz6Jd$-a6-I{|g}?Bqk-NprT2%r@eK%OzM{i z0DdijxGN?uB>8~U#}f;d(a_S-GcaPk&u47CsF<&6>-LiV1hIo8isf;SjE;$mPfXUh zlaiJ5z#uoyCCj&@?ppIFQZ81vzJH*B@#X0F`Q}T6c45_Hs{&MeYwr+N4Ae2Tb(^;=VC5_8y4SLfEAShR~xR%OtHEK}G z^$m)v-g%S$`gtr3lefEByVIh&Mt`=4MFq>o7)`de=jH?9<9$vxjVD```hTFb(z&Q@ zMPU*PMTUSuhT3>mm2BxeZ-;4GUaL7m(4H75UylE`rTsS=a2Z{S@<2X=)mwgp!ss(| z^~Y=7ULW7ynK<>_dKtF{Ef#U>4SAKueXfD)fNv{?LLcZoYw-TO(i%W~VrdkABtgs; z|F`J$@%LI~fsNqeu-_@@O%+;OnQ-|pDY%u}jdIv7Spn>z#zSvIi)z^oMCrWHU#R*%pI~kEiJf3i)6`d!$+z&PdiMqKE&jN$LtvQC&BZ(6TcIiWw9pWV z!Hn?3Z{L%CPiPuw#gbXRo)v%EQbr`Y-DvQTF??A;;r?YKWvvXT6C5pDhTfK7*{8~qj^bNhHl845Wez$6K>e!6pn>Sw#H_N*h zl0x6SweV8PTDAqMQpBMJ=07P z?H;j%dbk+w#M0P^f}Zd4vAlDM&AeE#@;3>RWKB6Ka&yP?@Kl`WhYZ5$ZkQ^+uO9q#8Wa&{YM@|WjZ{zBQ~8QKvf2IWG8v7isGq!|pBe`E zv~4+D?UVHrSheq3NYX>l4vmYBSV&eC%!yd-j>d{}#w%apjJA6(#_p^17C6Tw zD65_v%a;Fn_H*aQ2TkU64%FLYi<)0}vgYHjn1Aml-+gh1A(b%Y!#5$Gc`bH5yhx+fAJ^ky* z&-O7lX0A%;Q{<=fdhy?1hsYxmcGc*HL1|pjXa3(Nmnq}zWsE(cJ@2-Xr^SqK3j(VS zg3te6r$LEFf+oVOa3#?^Hf-Oop4r>t;qXk_B{&FejA0tLT@V-fS2Lfr@JHnFdUA$d zAY0V2QprvbPWb_5lx`TfkZ6FS&u-)E6NOR>>UyX`nwq`p9q07-`K7X(vU}(uHo`UC zZZ-z*ZF8wgl1nu8Lw?jk>}rs03KAvvQcW+wxQET&xfEhX?GzHx$8=NDZs8GBgP`zs z2A)BU|?5qb_2}&{vct^X9CYzD^@~t1`i6dl+OPFHc7kPc5g+ znwHk_fnRmCOp_E5kt0A%B6x3*!-$eNHFS{afeVeH)VQ~TlpS9LI}>9cQF=>9)#I5! zjb&h8qPmCO^{QsN5|IGWy3)VXS*m1fjIWsgb5DeZw{EddZ%d6<@C$ROA@-(^4`kImHgu^z!wy zo@G|u@jKM8Wi-f}%d8gbJk;{aHz@j&S@YoZQ0F?5(Xfmxt5!+ulU`cBVU=K3otEDx zgEB^=I_<1_qs~u8t@%bxo>>i6r=LuQ7>!#~vKk%4KASD(8+Sg-YVz>=Y_ZK~(mR*+ zEaAe=iUBJ8WT(@v$ez>scvKAtT!_u560mXFHyJteYfbh$l7{^@oz%{5%j!IG5KfGn za5N4s*lX-l-F`R!76s$xiL{#+U0vjI5rxchGs*X_v4gY;^x(&|cKqweH^!Fgvd27z z4eKvA{hmy#k`jh$vRbZrpj|-8p^mzI`MB^@H>oZQp_18!ON8GVY=1nw?gL1^y3N&s+NL z3ASZs?W*9&cE(Lv+Po?(V+BJPBqhk&ZjWg?ZeiYea|EYkKMipZTTvMdRQ*wSYVi2M z2E+W;<&4kCx)Wy%-kcMyZygxd^*gsG(_O~b8~S`(MJIphSL4qr-dShOSG@x@D&9 zd_794EDNZwXqz6(?rw8Tie)g?n%j7%U}MR~#&&ZD|F^FHdU&0#^5_L*As?~8CL-1o!vt?PDy>+1$sJ<|#viIme^Cvv|I0wH103@o$Uhsd)xf0YVa8=VC`LqOn{P%wR2?)>(G% zHVlp!tcvBU=cRSe);lOD597h&k(f$F0dS7*A8$SNbj>J|_vQOYnL?QEdiz_LUPFT| zA>${@V~?T8+V{4Hq^-}%9NZ~v{~zAoJE-Zt?e_g8gb=E9kY?z;DhPrakS-ud6%dhL z6_5@}=)FlVLg*doy@Vni1O%xnAksm4hn#pn_r2fe-TU2p&)((QPWxxfn`2ryCfv3*CT_Cc2ck6da$@8ESuN#5WmoGFde=di>!3=JI(HG>TzQZnIhZl8!t*X^NC$ z;_05Xx9pwYb*@Tp7>U7L6ZkU6?TEgS?mEwl4fEkY*oPJlUViLx-)YezTi~M0!q+Rl zpPye9ZMb);OkGE2-7Ed`^#0Q{o*y#q#@}{V2esyF6wu0_UQ2Xoj8E6Nm7Lc?eJl?M zo5(GjYx7imJ8b;gwAe%%UCIav;tX|m@T6Ztw%;&Ps5K4U1@@NLHFtTlh`t$jP`=uB zG-);}WJ~T4RzbbI?fn65$0;=yn=MFnyR);6GotE>T0MeMUWEX)^C-+-q$YkWsQLsABo;q;<4ydM zLoWo^iX@ttE_Pr?2M{#c4a z9q>YgPz_%MS*)EiDaqZU78i*fG3vGVAlI3K5~_{c88yr|QFxDe)D;r}couZkL}7)Q z#Di}zk)ob-$b@4(z@Q}O4J@T8??YwqYn&yp{avZ1<nwdmC89N5gk`L`mbN9 zBuphp97i{vW-*)v73IZ+$y%|8y1)6nwI!^5V32xFBAyvOwwWnU;mZ=Y@VUNH!KF6h z){8qh9E;0pX08CMY?u02FPoN|k#{C48K+xJCo31js`^znWfX`9IfDs*87R;<%j6em$)%Lv(@K=$km@Vb zz7jlDlPQ8=B8XV?T;+aiMAd=udwY&gFW7iGG&pUo=&~HL-HtyN**73wF;e!bQK;nZAJ6l(*Zx?&b0lbyY!kI;*BUxD^f|v$}ns{#6xkuGI5e-}mh|;kPNR zT2?N~HSlj;EBnX#sdn4;=x^L}?K9-8?l;)eLrhvkV$kT#|5+kO>)Vc>o z9OqKJQ@-%VC&ykw>9;^-OxPoa>4R|=GYjINL@^C;D^!sQ@pK_p#%^8MHvg#sVTMwu zFKhNZ|EMI zdO@NBElAD4IA-A-(3#}*mF)~2@QJ=-_oizjY0B@H?H1lY22Wx^a0Sp(_|y8w+D1XV zx_-k=t(`XPk{c-?3Vg<$AFA>hm|*dfY^}~oNb`$2XV&JddTrhPlE&}Qj|#hEiN->n zn&2b$0z-fK_F|OM(u<(Ov*k=<$v6r>XCVmhcMT1(^jgIOhX!w|irFPZ{JFaLGP$>= zgCtqoW_%QN;1Z>P*u$M`sM5>k36s84gS+bT#s%_^i63^oI%wlixhuV=NL$(kf~z|P zK0ls2y{cy@#&-5dADLPe;5kGEM`d=qOajM0))x+}S~p*^m<@&B?K*fLkm45SU&Ed7 z)L~u?VpIO)c})`NoQSuTAp3l3Jw+}2-Qem?>)17>tsmx^I5fk2Rd2D=%Qd|!?9}AU zL2rmh-7pF!#TwW)?bnNd4hED6J4kwcNJCf{`_?4>LE;?VLkQUVZji1)uSNamkRrcp>?f(AKkoPdrxZkbY}WNw3uw=M)GL8g zye7{3Bz2@+RZg0{WUP+?#Lx3Dj{&^32uX>Yn%mM z?t7OE1@F3(TZAzW>=u9_H@t5g%##JUE>MSKVauWgZ&Ro{ue1v3G7YXG8C?u$S(H6M zoKloFsBJXZtNy`-Md%^QA3PSMjP?j)4@fU0p?m791Aw0t;``}ZyG*{*mEp4JqlnA) zP$YH8bN7m0@K>w|#yp~Z{8(7mfXczx-P+ZKT)V-e77>OR3p3me4rkVo(<7`@AdLLt zE>0%qvMM-|>^npY%Rlhnx$`id6B=U4Dy#>4C&p!~7_2)MsSzV;&LxCJdNK}f)!kN$+Rr2jZjVr^$3*8quY_|Y%!@KwhZex>J-WOte{C*Z{CRq zh4h7`EpP#KtfVB8pOckvJ}VL+iBS4iJwvVeT1J^Sv}t z|J%-W{2&=SqpT3sPtn8uxE}ow+R-%Y3XM&1>UF&j^+*kyj(B$G^wh7>A?k8riw5Da zjAZ<@olwPI*SNiB!SLK94MgJ6P38s(JlC@i36<$1Ec&(Dpe6|@g~S6=hl7$TZi*8*QM^_sEwx&{n4A*WAeW*fW0^ zmYJYXV0w=s_!+w=7I|nxe#m-F@kljNd1?_)RQ~Jn3u9MyoLRn=stj(A#nw zuOXg=m5zYHryNf>t9^e_kYj;IMSku%4a;bLka4bQ5HR1XGLnhM;70H z=~<=#c76c?Caj$nZ1CTDQpCp~Oa@_aF3$>*iwaWuN^;3cN`p#juS(jqO1kDs>ew=di%K|s)h6mA zi$RqQ2*r_B#nW8HH&-QaQ6)rQEh1T+D_>1pB`LP4b&^tj#LRUQ0F{t~)2x}-!zx|k zi==Fs2vck5J5eeZHR|-Ws_>6bo2iKnYICJ)pCYRC=4y>DYK`gZcF?sZ;Wse;p)fgv zI-BOYWc4Dui#iATdMC;HBt)IFSG{{$y=Qa1XGMCAMwxf>&1kv?p2f-lTYg2ahTAXe z!{!>IE*fIO74_*Gg$Enr!$}jp8lUUu%*8aO8sJZ!HfBpU32iny`aa5k+$1H<=Dt){ zd_hU1SN@TnI$g3^qC;55rdfV5dPzy)RzdUAMYilZ`tp|*=rjsZZQ0&Us=9oR@un6f z>5rq5trG^VUpGIpIoC~jVbiBpebBq_;ql~I0gK^Oar$j*bM$8CHC&rQ>lbaXwJL1S z4}`G&n6Ub@B(>U`b~#5lsYt_RGew3Cc@G^L>Wzk_qX{nM5oQg9TjZFt&3xT6H069L zu3-mlddL0LIyvDE!tplly(~p$R3y9{ESW-4z^L1tNXJ)Q$Wy)PrDRk2VpM^hjiHKZ z%aLEjL9Mx3vgP9!N7O^9?v8uyvfka_jJsWdQblian)z<^tu#XVPt;^@@*KO=OGLFw zvkc}x8C`xdX6P}I>M=9yvGDG(O3xlW>9(Hld3D+2z|iX?)$457>+0R>p5E)(((66n z`|h$A$Pv@qrVkCx4~<+7jWP_6OASvL4u4G_9Gr*Dcn{B~lg`Z#SMCn`!bd)- zj4XJMcrXvG7(zA;q1zE7y9}TAr9K}LRsHrJkp})_U0xfo0c>&h{>qF_&QEs^_ph$6 z%v0l@h59Y6ugQh^eW)x8_>l7L*H6Xhz~1pullS2pzqbc|Eo#MtOe}nN$V|y-s&h+x z-#b4ORgja{+3H!Gqm>f#V;kGZaVb;Uj#}2^UP?F-LvWcWL;i|LI%f{Jm&v+ zT|NfdH;ARK{a2Zh4xKF9Q~1w~%|8ndyLJ_u(T4vBQ zk(6=N$sY@P*hkzBStIt!g{yrVzI_9kKGH2S5Y# ziGOV_P!PP%bPZR;JMi+ZhOGW%{lafnk~pn2g1??|S5k0fAD4^h4VYT*8?KqU z&?f_^SRaMYYX(40vsA*0S#@G&BH%5Jt0IQ>-LnRTIZ|2N{SU!hOPWR$1o@{>0)cB; zw5xFbo^Ishyx^ZvH?I=)ogE#-`y!>Nxx<~F$yx*i7^9PtD9J__b7Qqwa1w(&YV>|3 z3XZvb3KetW&cEIJNh9CQG=F9=UPsTw0B%&w&8enO4OvNdAJ<@JGpb5i%@mSr{PYZq za$jRUPgzW7eaE!1mJ<`^Vaajr%WOs~D_^{RM@Zi$AgW4On426oq+z`XXf2^Qh7`B7Eoy;aDdMl3qz@hObGVn|*Z1&7VXT2tpoPH)wQ z2~7vpnZ}3Yk>xN6^8;PvPs>TExxz90(UJ0!av!4c9e1d_f)opzRRAk~wwpWkJ3)&U zxGXf0$8&)nbzhO8TS~%S?zWTO@?`_gO_m1*9m|JGKiVsbys0oNJq?b=S76>GgKwsZdwgA=LJk-8QyUj9`>vedb)NQx$WE9o?30b~eQd8CGZ0x!- zTFA*aSpMFvTTbv6cjMwwA!6HIvT+RuhY*enda79f%x>HBI; z4Q|@eVJk$=9b7_mftn6f+P|SA+xLN_zqa!>dW<5UK8L*gZo+*r5w}Q)KWEb718osP zk&B-!6k!&)7c=B^Z485JsmZOktJHnpGJrq3>vp}kM?p*p2LvBU$UH53nv!vwgIu2t zA83e5r6bam^*dAX5r2wLc$#^~1)q&o`D1!8->5_vy7&$?=!Hiv&VxmdkjI`fQFKbF z?@L1=!X#>GkFCfARn>b4?`gP(`L3zVOQb#}Ka93mFn8K#EgO>l zA7wyhd~)P4Ql7x>1`+(1lZrO?4+8hyb$B#9?dkT_|C;$qAho+`~IPE!TxTd|Va;pjbtz(1~B!I(=B8g>FC_~utzM7SwWM3NU8 zEh?TrlPC#Yj>>M6TYIfQtMVC^_7aki%i+oH^!({|d=b){$#$8(_;SF%lg77%6slu% z)V3L@WF_3X@za>1UZ#-okb+70?yLw=Jo}er>*!2}sQLh)dP}+onC2n;HrrKZkEo2gZwrym{WCA~e#-i~~6I!VJ@0t29fJK(l)yjb08j~k89TK;&7 zg<`cr{E(h$ca8?Go4T@{>M&<2g6$u>dm?s>-yeGk4pML{fT|>4-ieSLhA1@C^7oVU ze~p>H&vo)XG+W7d5iL2#Hm%S7+=wU?(Wy7W+|7ey7J`>W5rwN*po8=DRH~ z(%NsGxwf6_8Gg}b$zMgolSwVgDzkeIwlnngHgpM1rRQDSOyuu8dYujy&QUKsNb=hV z({#Pe(5SrCe-u+;@|evwNx;8a*mJn1aAoDb%qz-yVov-}SRzyCX`Gf(V4`K?ydmm1 z{Ok&2#zRCj|B|^DK2Yc2AAf(jGTy%t%gCo!ddr%i*69#<`!G?KPzLUUg_ynCcz;8p z@5ll?uwx$$w-K23M(rattBxgdB^jh|)zf)X*3Zt1;)-z6bmGfQ4qd$75R&s(if!Bz zC4%qYENWO^b@Y37Bma)KqW%j!qnJ)}dVCkouDRg`$mFIrI|a?KTi7>~OwIdW9{K_c zpM}0Bt`gsE_PMVW%S3kf;F7UJH(+V5H&&-h%KK4F-9j_k&7l%Demwe^zU(!gt3OV6 zGk@h!`B$CyQic@YgJrHoZy;NyvM)_5>_wcOI_y(O;V^6DaXqg9%_tZ&_R4n|KlCNT z!&nx)lKyF`JnEq9;B_s;7pg6&A53D$>F9`MY;!MEoY1;#=4DZYfM6e=9RtDFKRTeS2IE|UAF^3N7Lmyc|5 z^L_8V^w!5NkSi*1-6h8r($mrPRG=i~4RLJ6vm@(pHbuVEUr5mb1FOBS%VDy(A+;&+wy0<+|;kXC2WM+b8^qa?!D2yO|561m}Jtg1e8uu-G( zdo2B$K@nC{5VVMRt2V)pQ~O3FE0{6RMiB_6#L;s*Fv@_DRgjTfuM$-p(p0$9V4jCO zJy!Si#j&sDQZ&aw-pc_lddZ035yTq6U4OoSRoo4eFw&kdRLxt|)N7ehu!?aYajd`Q zf>*IRM`Ix&$td?rQ9eH7r-EGXV)JAm8le~$pOt!-;RDFCc*(;xX2-9=pV-6dEAa;a zi7+kUPiw)0*;ZF@Mjmb5Cx=?vK(x}!=y&x53yKoN90IGZ(K&fEPc6gRL$tnWJi#)5 zZr54RNppRHsl0vyF(2Kt`&; zBE*wi1Y#LYC2&m>1=AG6K%rzPlYs9CM(aMJn4GYu*3@#sVd|l`{jI})=Lf!a;44Oj zNyZbHPy3Js^1-K~<`s>}m69oX2sPaavQF_?w0-=(BuF_Xtc&{1i%B}ZBsbJ!Q|%+K zn6P;?L%}GPf;$BXT2F97x*Jx+2R}2fv2Y+zbbPrRGTWWVKEX_x5LYS`7XrAjti5SF z(_!*`?`a$x&i05xow~2kF$KZg$;={0k+>Y|t1%i-SwtHTieX2B)nxP=LdlkCZL*5= zjuTv?0nmI^#=APm6Kh(7xR{Qy1W*_$r#K6@bl*cW*yTj0Hbco=e1* zT1QBkP$@L>k~iUbOAsCl2Y(Vyicuo}p+qoVM94i0^I5-nrhv+>b80e9ykHSFRnOFR zxNA)nq>cQrJ`?+>B3mzzDs&ysn9RSfGuOf?3CRYzbq`NT*-s?QwdEOX+B(${`OvFT zm|;0XbA~2MFAvpYdapCb8i8p0rJ-4j52>Kix4ua|fc;M_s6u_fXu!M@EEKh9<->H} zcHbGfd4qqQ5N|dtdQvM}h?Sry^JT}g=JjyHr-gSQ&~$e^*CSP%)VwFR9A%C$ps zxQ|es{rW$ieSE3Ta-yIu*A8|-*Q@Gnn;K|xg)JJYCQ8ZV>z2am*u^1AwoIiUQ1H28cXMiIiX-D>Qy?#A`@Pn- zFVZxPO|A>&xv@+PNV5Y8c{+!-2!|>LS&N=DJOn<|fE$3%+Bjcg{ewQ+q@qFEmJQdd z-EF~w{vyGLj#cS)^S)>0KV zea#7+X(F;N)MA63xh5S~bDgX-1URM8IBt7hw%XLE-RgXJyBk8w5N?9o*4GDZpw#x6kwQ4rzkak*+Q$Monb)w+ZsOoqV zBSdKkHPB{@Q|=p+_k4%oQmu4zzLSdjBwQxh`+1_r7Pp_B@K)6ZG^ZcD+f`k((0d0& zE=n{IV~aN^%J023;7SDl?9b=t)QK5U9=v^*sageEn_J&P^u%Qh_Cleui|=j=gc(Dq zDiPRM*WKQ|*)OTg*Y7<{q?B9f#5)k4v@*%ay})a1i2tPys!zmcaL`uQ4T=sQ-nkrk z0{dLf_1R>%6Lmc3h#EK~`b4{%ZDl9(DsG4sa6t|cTs3`$eH#$i$NtO_Plw`t;9Q*_ zT}F&Go~fK~jo{jkX`l2fo3@*8bu-+jAU2Hk*z!xo7d9XN7V9LE! zXWMGYWEUM+ZL-@C=so^f7AHeqaLr!Rmn3JSsvh3 z-Cx=!UE+AhjDGu(n~7VEIE4TDF$2@jxBe_%t9T(|KZ}XSM>Ur2yfgZ|xcKlLZ{7Xn zGSsAe#*ULuS1*b7VW&FQnBY$aCEXA<=(0|1no(@sC{Hc+_Qe0Je z|LT`bwunCmL)IrrWZVz)F25BZ*&wHn zd2>f9D*PFGRMdB=PV}MW-qX*7Wx)cRZ2|N*)7J~fKd6(gWVCTVj~F`I6?1y9@z^M* zc!YIhyQz$6vr2%xQI*V*c^yNtzrpx^YRCnAS0k8t6hFHXLD!^H(pE!7X7F74VOj#fzaCqXAcPnOT<&-7owXkYw_z15cT zk$dv#Y1+s2%p0E~C{8zbm$H1$3p39R`HzZ!oR|Op^zqh3)x!&(j^i31X6x5E_3ale zKQ7uZ7wG6orCXQXFD`q0F8eYs2ih-(eq4@VE{z<|$g}oGUtE3lxth+rnr*+D|8eyl zbG2~mdgy7s7tsmDrnCsnJnEi*C!xxxiAIxbc=DZzq`2%x}1-t$a zx8VQb^TM5zg>K?0RH=#;MCveH#{&u=}#&CuNxW~2ndMP)Si@FRy5w z$3nwGjo){Ad3&jNxv-fTz_F+}f8W6B2};YR_}=ZE)9WW;zExFK!RaOX*|Q6ai-l`f zSU4@AQH@z3iV=%_P8-JlZvX4s|2$il{PthWV;WJ8{X2@*pEcnB6^b^2s=K%Ezk>-4 z^i2Pm$Lu2b@mHhCDi+WCuWbFD>)t;wp-b7ttAEed|BHFdzRH|`U_#hJlYh-){x_J= zpLtAf>%o7r^{8~tn!;wENLM=SJSMqDpi!zau{jL+RERZ3?c0DT3S9QQD~!>cXluHf zBQyK?U>z1kyIlS^iq`#Lql{+q$M<$*S2D3mgF`|`5CvyBT(|OPul)HrzaMSYufZog zrhghuR#B0YcCf3)J5PpV<6@}&W@~IibPaUB>L1l^7nQxJ;+@Z+ZA9lL&F1H>~7>D{DF8lGj|z;?gAey3z6+ zMQjuilMQAnj5fZxDqIhg#^QA>8iyiO<%)hKeK$^-CpGc2&Sx{vDB=*%Ruh9H+4jsR ziwov+uYN$H*JXW;)~p#bkn$#$sDL&WlPoLiFC5tsOh3(YV!%&xsp2^9aJk0nI9opo z@6@o)7uoCoQh=HrU#EUIvS(FPN^oy9-xBR9TU_?lX0t52uNb$eVdv3ihUwm{tyBre z;bw&|{>5043_}>7)X??WR!#nz@^A|nlncgz~?)cElmPBM_KO!bo*>RD&wNK969-%%UGG%u#EWTQL;KSR_yfA`z z;aaK4k7s{arNCKsIPRb|di%@WFGRIXa!>3!E{KP6LmCY9L#?_ZI;xUP-l^u zemrYee|2l>Rd1y7q?6Ahw{PyNW!Mk+6GpDtcX$E~_Q)HrP8S(i%TGC<31S;fI%EXS zmg99_o&B(zVx){x$UnPUz9?!e|zB*Y57Q8-P zPI`TPwpQ@*`dn*s@PTJryCCNBaOySY%1J>^>iY8JHwFU`p#VHZG?;D|2~$CVY5LI6 zd%M1*5hw_!Vh4f#t{?3X3VOG%gT!;!A5N47Q&8+A$JW?#sbmr8_H|M>?FI@(WD!{^ zcG1o528j=4k+}7BF`e%QBZ#s|gB813==MSsRhHK43c5MI4tc0WWK$L>e&W&J3)36Q zrmpY%B;dIh-ioBBWvpruPTh;JQpus4>gy3}+KY6E$YEGj?7cUO88h2!HkC*&?0s-P zCVg>{1IL@85GLP`2~lD5r|j>OzqgM?(dM#ohSnpVJ|zxn$>q4)->>GmABQ5!<5Fn6 z@%a6Ie4$Dnk8b~fP7@YI8MOc@XWffWEy!jU+1qd;J17LLFu8bV5nWQ7}p=^T6s0imbi z*^3}@7y_U*_QjDx+AK+PVxr(<_q*d;H1zCX@Q~BnK4^%%O~y)In=5H6HRt z)E`1Cge+@wh2g`H&g0wz9IDW^@3F9!(Q)Y71dl0JxHoP|gq;LQ*uC)C_3$ zWXB*qGabNK%shl?7fsPK=trG?(l8N;d^cn3m(;1-ri%LbwvrIpSw4j?jPS)381=0W^Im0N=fX5H^JT zB$9;BrB)UuA%(-Pg6wEB@4`jT=+C7haRL}SqfAi&6W?i@$YRPVYUuo;cqBj^yR+CT z_T?YNr~Qu$_emp)4cOyQL%pgc>S+tLJhuS=Hp*ijTQQSQ-T=de2~hAfA#Yze7vF$$ zzt9Y`Sd$k8*FE>O!AELGurLn{wpNqTI;>0*AhW;?2*7MpW68C#I8A%oCboGF)N0d! zBfq0``D1&dy&d3oEfeAP_%4 zKUNp9v$J1aU10?kR&mkZ#3GxH1_lOy|Ng!B^QW4c8Wz`ocyx4ndP+hhA8cs@i5Sui}mP z5tu(%xpJ}kd#|ErL@hcvq;kfuyy(jz1}hGoGLuci>s$k)(?<`Tyh8pjRaPC(tmpsR zt(U)n|F7Z2|Nn2j{O?p&HQf12=-(3z`}qG%F#NOif}LQnmcE&xRc#}8`z3bkMW0ry zgP`v3-nhS1mc!41509sK2{}zRH@*$lW08$m;6IaHKY;Cxqu_O=HN~o|n12KQ|E01% zqaNM1;cKd~7A#f!7w~_o!gMf0m7XGWw&Bg@2&2irfd99y`-Re>-Ej)6#Vw5otB`(~ zOtsc?P1>*3U4td9%_qO@c1FShCg5zms0@AzUGzRX+5M@I^rtuO;`ByYU#7rYx8+M* zt`I^nl*>qIhe~{ks8LZNz(-9lZy|tECnV01nobr)Pb)KxA$@Z*h>OLgHPUJ+l*=i3 zFi0Pn%%X~?OvVbQZ3{^W7F#L&8C5jY_cIy+T@Q;EsNiA?dm#UEIacL+rCFT1{7qQY z1Uq*g8~eEBuLMKa^g4s4Ys8aHBh5VPU!>aAt*@kUJh1Lhb@*z%`oVpLjW*Te zczrb!*(PkEVIU7OM%kGZ5N3vm@ua7q8rRlnHl>+YU(~lc7UkfpdBSoVlr|>vGxAwB zD7835*JuJ0ZH9}l3U|A+${*kqt1wRRkQ7$8m#odPh8)U$jjA%$HhQMGi1&E-;%5cSdb13pcRYrLc34F#E3UGU(c z?jDxST8I7&YvevB`HIJm80Sa6H+;gMrBsH+9(6y5Pdbqcu~B{TuQnjVnRKK$vqxn`a#tFi#vN0pI$N=H0!%<|E03(XtkqNA5ZMm*tt?lv+6j%Q~EhB#;(HY za!6rio3uIfrakFo7WpE}X+dV;MN#=Rm`JtCXdnd?(Z#K(VES;j=B7Uf($BB^6sW~JZBKL2NxC5GvXav#cJI_blz zti5QTb7nZ6QlAXnAC;BMLi4xE+8QThRq9vP-+!Mx^q*ChQiSM#rLu@P#`hBiy8l*L z%&xLPzTh`d=gT0|_dR^WjpNBGj&K1PAz|~|?I%Ol|ER3cN7haUX_4ym;=PT~*Y6J= zuSjva)6vRH7ax4UJmQdAJ$pzi6qj+j#V&aeO2V^`Rar-0C~&aAf1{#csOp+wanWed zy?CW{hJ^>W{s8~u-;uRi3C|ae83@(nz=?~n3gfAvRYfk>AK-seh;P;5AK-tHN>{vZ z-tZw7_+O;vHt-klA3%RX!2i^vQmcOh{zsM=uKof3ACBx z34zE0fXd{nLep4dT0(I+2n;JD51_?0j&ix=h27yuN zH^dI(%q?F*-y$)u$U?$F2Qf(mH({^6C`*h0L*wS1qjEB8((jkWZs60_S5&8)0A}N) zoS762y-W){eSqwUVnl!g5HI*65Wrlq!%I;(atsGp)8UC=-q5iYOk84NNlLM8wQRmPmO25#DdsV`SJOBV)|#X&>} zSuoKfaT5l982}*!W>!H;EVFmuk?;o)xzFG*d86^RyqKomp+TaIGT9&mNU`|@EXu(> zj$z`1;2G9|2%$)v*|ceull}ho+aeVDq>`W^SKLm+&Zsg{Btfz#7`G45AUE)ZL?F3f ziU?~OzQkXy#!U>g&IL3mU$EAI6ruVth=J79G8_&XF#uN*^3O2}8V^;KSp)LBpy6T> z2>B=gBSHM;)Vm2l`rOFXgaXLfjG-dpzGz${KN_<|oq&~osF2VWnH>_R=osh?CQwTKqEir_X~zyPy`;&D9DTkIl8UwQWL6bxl)k|B56S2kRmX?!`cnMa7jIa zl6D~04-rc`_(;po??5~8^$B}A=hd0t0!SH9xVkHiWZnW0pDFm-BVEK;R~3Xz-FRfE z2#x#oz9TanE~uSk4^}C0##a=dJYyGhx>KnQ|r@|1wMN-vSVZG(yCMKriAN zlSYkhj3mVPk^*TUi?5PorzAi-j?r4{lT`7OaOW9*#Gdf$`cIrp2Xv2HHu{h4SAV^I zMS`9Oh-lH3Pb86*UKyPfImkEMLr7&@#8RK@$6BBH!O0s~X)MSA#8ABWylQj;EWE|9 z^YTNVd|%Mp73u3>peA+wv;vsu0KFE^%h+8)U0!V@dheKnFh3~M*&+M&dXvW>?lmJObyL3(`yPn#&7j-%wEBy<{*LZo!O`2I z@)pMOxUw4WlGv^4#fccyN_p%>+=< z1IgjicMuOQQiR|c+j1W3CijKeaT(;U1*Jp%@4$JwMa|1-by-GVPKkTY>j9_)PswA8 zkUVSl#3&z8U@bqw5o$~X7|{Sg%~4dC9OVgBSX3bJRou+6C;VVFs9ijKw;`r9DEi$m z(7T}MNL;XLJqS)K}G|z4t z^fhA4JSH4wX_rigvu3nF75gg$ml$bKp05pE_Yk-V;*dbT;{uoq-al}DqMBe|muU2u z!e?3xmBvXBAch!Em!iaUx!10DlLKb7{(ZFD4M+!+aM1r4BdqzL zbsoREzCJlQSzca7$jC`ZKH%iy!mjh?8r7KncjRW{6e*PbE0Lt5z zkHdzF{;=%-!2vL0S@y-ncIB!6ik}^RiplcU@8~tT9&~=P4aDLA*sj1N+*l6OA7f-u zI`?n0o$IsLg84*Ic(fhc!muhyQLu3m*4u*!$TR$NOUBk1-m} zd5kqiO-Gy4)$Q43e~i&dga553Ms=tAYcHstd^Q?CJKp^{n29w;`A5fpH=$u`(l>eLUyT%YQQOJY|3KEg>rWPyD=n@&kz{aJmpcgN>gHHgRrGc~!8ACz*;jaCs!SdA?g8rltQ_Ck{;BnL8)ID|FLA%S~eHQTQa62PR?0guU{YFgK*-n^#0m!_qbghp zl9BKa4j|GPV?d6pgODHuE9~}MP2v$ZGu8V*#^W%dX*0Z0@&0LHB+k!fR!TPGeoZFn z*epA9I`Hl%yxdCAjfN#sCSwp(AD##xk%IWsz64rGkQ~fH7^_h^-z@-C$;ex2C=ekG z1SWEaNB0JbBEDI{lb(d1B(hERL%Bv@oQMMu8R;rWj1;6qkOijaT7dF6KyI+1Ln$24xMaXMhZMY; zS`R^>Jpd4(1p{Re`2(rcRU=VB z)lkv?08zr_Tt!7ILE;;F!Nz*AK?iA5s`g}c>#9~9h-!mCG?)qL`$kNtn9mebrq7Pn zVXq-AsSVh)XO1yw31faYPLYX2Dx@`2=bXC~hXiFQtHNq(QZ64OVQgvhEb2m$I^RmI zG#`)jsyPSGHLsdK8c-le);6D+XU5cpLgYKe+V&H8p9fYLe6Pv^SngQjEa@T!!+y6; zu&v9zNCs|TyQb{&O36kyfgAJ_Ewk*MVytQUxD@Iz93u4b`G$yHU3J;|7c_x7!xt75 z0ykF6msA~LLAgtb2CTSFW>00DJP{ySHWu7RQX0WfV{ir=LX45`6OBy#bF+X-3b^sI zxaSkl1Dzs^y`ff@I>&e=W3$A1LxVXm8d7D?mOJI3_2iiL1O8gBFXk*6a4N2@Fqla62n;|91--0wWKnK(r7-%3kb?wp!X2M14j^@gmsFmd!*eq z5+cj@>gCpT$X0}Pz-IFFIng?!MG457$LAvQ_o{++7{w~NpBqrKU5qe{ns4zSw4GVA zK<}B3@pNLqw5MsfTvlR0NJ-CZEBW;C1DUpO^=-H%h@rw(&dR&@o1rjdF6Aw78!p!B z8Nr);WEU+2^&RFUkO}O9U~*ApH%_j4^y~u^^v;#Sw`cQd`#mT1qV6NR645aH7?)v} zdYO0&Z|^;WMTi;w0b_<#aL35Eo0D`$(C-aitkWh>Iq${w;OX3VQ;EpyquS}-6-Io} zdA%^idwDc3iU6@98qic3`kA)P0gCp`!(+WVv6?e5Tq|qHc;6sfTa!Dvb14aHxtRk! ze2@Ba_qUPKXO^Bz7<&2i2K%j+cBf0wO5|n9XZO8p4k-_oWW-km)XwB=ZxjL-6TO~zRttyAkHKvQ$|hsDp#SJhdIv-UGB_ju=uE80#Ok+;t1E2cK07zZ z%EE$GoA~&I+uPg6$HxT)1*WE^?d|Oijg9{P0odFfJNQsmS?T5FMRSu0tF(qce@;$L zR#H;Z)zvNjG>Af>_V)Jd?CfG<-%m_VV*7ZxA{HJzc))B^Z}D**o5WK)3}ZWZ8|U_l zR&i~STjZC{-ZPLUvcI?$sGPS3*kR=CI?{`w{)JVHU}DE zO0T;-;zsbd*r~rb(QR_%W@?*9C~GK*ip(|6c59ok5_@3Wo;Ha~W1eNNhJ9P}4wlAh}P zgENKSRVA(BAo`!i|Kdy$D(P0Bv;E@RZcLF{x%~EtQ2yL#zOr@a<<9Ka{ZEgryPmgx zz2sR%D{83VIrD_e5+6IYyBY>pl{O3dTkKR8Hfk-B*>@MunWomn>zMbt>b7Q?d3eqQ zoCnrp(d9gPXpvc`jds$IMJQIlJR*0o-@l!VfQQ4ax4DEnF7K!<9N>Wn~4&5 zkoV;uoY{HeTt{4w#&hOR2Zh%Y++q%Y=gj2On7=qvz^S~6H4VSYo|IV3x9GXWxf8)$oh<7696n6wg`3I?u_y3YP)Y(nB|HYYX#P0ut zoSD$(mGf!t|KQBS^fs@*IMe^E$npP?Gh2O#bnr5Vzj3D4*D*Y2#+JDKC(f+m>=ORP zR`mYgIrCH9*MH{BYbB3P-bsDM%N*orJ@GP!$Cp3mN6mu%rOe@=`RkuwM}z+^b2$IU z0{(wa<{;|;l7;{j9rjAX2iPciE=7tb>HssxDn^YKTvg+hMkquT34#J(=5Bx%g$BdB zy9vm2`+5Hy#acr+$f(dE&~R&j015*5J>E*NqQS_cLgp~za8jo$Af5_`CLqJ6Q`|i! zV8kEqxvY^gMCb&V6N-twdw`d_fPf6sjm%e3R{Q7y4*iW{c=AA*Jv<&tDcue5iiFG1 zuVDp?y8$sAa6=OWuJTFZvnd~vX!U|oAU4a~_Y^6~&;)4>p&)7x;Ks361n+qX&wajk z57H--1=_oTTeWu`OxZJvtGP)jksvo0g*0{9Qf7XlJH{^1Y}3_k@s}o=H&GF}U-nU8 zrd4geb1KNwYA$X89v!LnlxM^3)Ux?#0MUYmK=TyH^;T6#l&$l;&v$-PU_%@=d%(o< zA;3+308e{_Dx2NFddoY^XOCx-f}5x;4-mCeYS9(Tk6pDA=@D&Ty&Ng|Fy*@L@tqzq zp-Y2Mu=$Z*0#irC3LvFPVf#~Q$xnC)210FycAgMm0SNEeARi@=5aL8GAy;r8odM-$14Helh1J-96l9WjZ7FwCQE8RQ^u zE7$U<)ddJCCfK0N)?j*s0s#d{NORx}IEoo$BI98Kn6Jh&IJs7c=z^va9z?P3a=VJp zgj1;Fm+#hq0mlL%iwlatmMj;{KY{jQTx~H@6kd+e4eMt50p&360jzZisEp^@R9kAG zfNtnVLlD33bQ%O5u%N`W3cNqL0^Fm~08NWJ!IuFc{z0v9O2iO&py4G0cmfEN1%ZNJ zzIv`jqUH}C2a}+I0M>5n8_ntoJ`=B`5#-XYD&o{&*_+vnN>Aq^hLDs7+#T5ccu2Lcc>?H(A)XSI;s zm80jCz-f{=dS0nt1Y_R-P>K_9jB5yHWlu}7iDx@-COmG{}N!9h=NA|VKmeNg## zRSWIzI96i;!RuHX9}X13QoENF8}n)kj4Bmy0*G;yhBV>G*rXr!t?&$h!oQ%00$<_E zEC`t}MfK9w)WWZ1`N6_dtD`LR-j&h1+k*Z&(aP|B?t*N!S47r{t%ssihn)@2@NOM4he2BpO|Mo)a z=%+Hj@FqjZS*jWe<{}dIITq;mDlS(UblyF;X#dz_4*p)m2GD1Ar6k;~kP52w-FkI{ zAS&?|_1ouYcpPebnb;rP^gj5k>PE)z&8MxB>V>pw-yPHwih(Jv=Z|akPiR2L49_&I z{XVnl>Ko!4ZvCHDHXyp!oD9C+#1eAWwO|p438{$sP^wYcy zCH+*Vu5h$67wDy=mVm)?MT0Q)VgNde|A_u?N#K35uZXnAck#QR?JyoXPlOXVWKct` z^zPmH@H72zW2m+ap(~_Yg|S?-X*z^A+?vkA=!cIMsfY4;e;}!cT4z%PzmFwBtz}yO zGyYjZI&7HlkYcBSX%He(8EayRZ?g)=Sg5i>=T)TARjueSqV^!aR8^-RAm-X=TEIyW zj=x1kOVYa4T~{w1@@0ZMK2=vUi&EyK{kux}-%?{A;Z@3iPXNK|XYeSDS1C(`1(4$N zk)L|e(b6kN28)SHqEHIW&CM<@F2TXU0zR%?eQ)t-KELphE&YeLxA)WpF0 zGSrN&cbcj^{FtJ#*yvFdiqUH3$JCPlLq8)ENq$$F2TTl!gQIj?JbPLnZ%3-!?FNhn zGx7KyCnCD@UQ`^-dN?Wmw>9x?pL7y?z6_($Qw$#8|7lIkrehurni@zs3#e)jn3x?e z^3!DRkd=Eo`&x^+`Y(K6?Tamo3T_XO=cYAzruV1)7ngZgzh#8AXXLN1->jU!@_X8T z_(|wb{3M>)Xu%fDjd*7}NRpHh3V$22MAdkx#}2&m1X+X|9Q$2GM%mi$lKU~!tJoqa zZ-UmTzbW*ZN8{JTcAO03P8)(Wy-6GKw>oXC8RqlK-^R$(%P7Yx>l(6Q)hnGgQy#(> zkiZhC{BWbC$7fC~&IQKS402>W_^sib7{Mxvu*;g= z<1-HNt?w?2UrsA=ek3c3$VaUl^Hwcis+W`p!`7@`<*jGOU_vAf6pMjBBkP5?7dau)w{)+)HTMsx%sKA!)M_|TeQu6?F?z+DCih~5wHT!sTN5zdq|u*O z8((Ey{q0ms#rULGY8RgI(^Z7FIbrY1YvO$k?hxmX0`7gp&4Z2)JNZ?Q-%>Mx4x{J2 z?nbw@q(yl)FUGv{Y#G-f>&`xsU31~&s(Q-Qd}8`2oPduKeEe22@hu;1@!O{h#9Au@ z-uW5qXRpV6$X+h?8tGo!g9Do6Pp(DG#xB&Es%yGZSvI#zvP97__`IvI)!tO(&@JFm})N$FJGpS_5ZopLa`f7P@fs?_V2%3Csye8clNn)k~a z>1S!fT|~?SU;3MSza2_O9Gq135ZnmvAKP$2k%%;F2hg6~*B+=`*a!_!gZjHSQwd6$ z{n=Wjf;DprqJKRbKD{3O_|N8Ts*B4Rblz>;PWIUH%b+)4>$Z`ic1{f;*AVLIm_JeB zgt{UKu!L&-Q^jhsKM+GJJ!C@v52oW8_v=uJ45+84T#f%kaDh0RnTxmOtl@u6oC!>VSlxXT%!rASM=&h@AvcwJ6}xp=*|2P zP2`iN6n;EAM8qY7i&i{Gm)7i1K+B1f(|^G^{pcmn#>j%cIc>OLq1fA{ijLG58{Z?N z!exje0(_`epId@Q5$?(H$_IlN2E2q9)+(t-fP?V8`En2w*x6C!;l<~ctZxsF)1%>~ z+b2Y0@DQ-_WcUao5v`GYP@nzsywucSfn0Br2g$k1&GdZ>;T>rg77pL(y1h$GPezsd zP@%+K)sf0?o8-kgWQmiBVZz(|<#n0fwb!;O+R3~$(ikqgbZcYXPOLaNxdpi5cPa~d zoJ;AC4+ewVDZT#SRpFR*>9vdUh}c32#1$vBLJXPm;r8@N$)LZ3q%G42P2I>8Y3(It zp|#$X>1hwxvc5`-V{BAle+9sflYMDDiSr#SvCq7VuGORoxZPjXr=b9wV>GCRJz}TD zMcftenu=Z$Po~(nQlq|ES;Rb38N1t!_+o3=KC+8)`>`+LqZ#q@WuJv^UYWIIv!R*G zG`~6FXB72*Zl~T>jiF8D4W^*65|5kF`cEvZyUOYP|Lm2gkHrg+QkmXwr{hEzE4i9P zFU-7aqI~sWz%hd#(?9K7_fuxnJ;baqpZYA>GFnie#D7WA|GNY^qno###L}MWSsOjw zgiA)I>9aigzGCC~Z$rktsn`%VT019-)Tnd#Plv?)t)i5o zEsY}XFiw$%l7|~kvX6gG;V2r*uhhoUEd#QrD;OJC-UgQIXWY17soJQ;?4~a~!o*jX zu5@oT$hF`{8(-F+MxR@Pk7U?i&kyOG@;|FS==$EUFp=OZp6SM`ZI>}SIo{OtMB%_K z=+`1AGk?p&zJ1Sc*9EzU8e4zpIj{7$zCE-&GZq&78o0Pf_qnsV^Q;3(+@A9ZCnMTT ztaB84?e{A5UP~{-_)(R%kdy%t--J$*KgkJR z_n+v}ewIdTle2Y~UFMym&bREv-`mpfTM>pe-(LLsy@R4`n~?c%Sa9uf_m@K3WXAaS zQn|}L-Nd%(GD{i=ZQf@-KB?K}@v9#-L6`g1?=J{?bx!MZE)SgU^v+BPBbwe^med8m zS=!M#Yg@eh;$KFTxRc@6behN2;PvCvrA^XErxV#k5wyinCVmhk}q0s#<_y z0w701;70(92q54Q9)SkYScAZ|5yTS_gxwJ^07MH1G@K%y0U)~Ch-)4ogh<2#b&!@c zhy)i&g^F}2C#J+k!fF9~<4AQli2NvmY$D3fiI@xtkQ@QN=a3M8AZ9lz;+%*D8_9se z-1h)`mxE#v(QY1K3k=A>iI4^fkXuLRW)iVXM7U!JnNTq~{xOc&$f``j5Gd#sG}g`o z19-$5)q<|Tx=~n6taU8_){XATB&5dzrMz(#x}cGvSYuRNlYiVh3?Uo|B=Qn*cmSiu z_;>;kY$Dza4H|&PuSgS8B7vvs@n$&S{ZPUVl#r}Demj$p6$kD@#2h;j($|6vqyhU0 z@D?=DyB4H|1ppC{G7=2bg2;v;Ff4=vp47k#A(DX*1tfL(feB2Ags=d9KBpA%4eSO; zoIy(HWO^A0Z8U^`7{b4h4CsOsJ@5^%p#F1!sx}4G3Zk0;v%*t@(b)SqtR^bu1OfgY z1$qeuNRLwOS3zvnAZ{ec&;)uT3u^`kbITA>4hNx~@J~FMYXPEaoPKrJBat2rX7xxz zqf*qGW(A@01w>OOMG+f;AW1jDfOIb)`n#$3aOscs(gScw^ctyRe1z()5WfJd z;zXt@Dyx?PFi{6(R|M)DU_&`C{S&B!QBF+#pY({cx+SFXkIyCFg5D0`$ z$9GWj;2S3yp#ckN0w$0r8W1v%jPi?|z>6G{1xQaTWLPF>&L8~q90EfEVd^>jwGbhZ zw7LM|a>lGOzKkS|logT$QxafwFK=)-ThBUG&?L7xBLRQInbOGf_0Q8pg1@#T8lXUg zx-pOd$hR!)j|#}8N#f682njra$TZ8WC1a5U*lS6+BGx3-ZpEpLQ7hvIUym zN!jQ53?FfUjD^$20K0VoYYgNXDv@I(84OS2K;`5*Lm04$H`)qSQ3>onAtWLg=lMuC z>F`(nfOuu0Y-KiBBvw;5V&A`r1`gzsM2ED*%48R-bmzmeix6-#!qq}mY{H-Dl8ucR zjzI7&86axDNVz-zLZeh4j(OVx$(Df_L*rDCvFflgwc1kkkt}CIEPw(jw3R*mSoXc5 z&`Gx3H#30{T^8j+C}j#d)+jT~#$twwlS~N_*hu#1Vz>w35LlAa29d(A?vRn&n217t zFxIrv%md_&!MH*}O_d-rk$hfQ%(Y@zl`b5_Fi~jb^1|w8(LQf^rwdVRV8ssNf17t7 z;9F8$2~I(g_<<5X?=tv&z|XsQ*T~}X(!I>Y{lk5SssioQn2U=G!~Ar$#0Zm|Dk%YwY9bVstS!wOnR24OUL`| za2e)l@e5yeYHDgq`#XAO#-Ehr78MuOPK}txM<^&LWM*YWzOEb_A0OCU#Jfz~>MP<} zYR8x7@kg<)_al9S0|B*Vct1+!>z8T$ZBJWj@rN^1SdhnyjNOZK$L!>YlKg;xz~c6% z`1tt7rY8I?jLCoIRaZNvyP3|p%RIW-Jtd)P_Yyy{*Y$o7d{oPtewsPlRrhiFd2XhZ z|Kp^}{*Z=sxr7CUm%r2B9{#uE_5b)Ah_BEytRHSgOAJ{?_1e4HGs+C&t~q90<5y?RhBQcF&zEXc1E|?0#{{V_1>|6 zhRDPC;6hJG*(?(r*xB8-sIA7$=Lz&uav1+h^Kt&+^H@6$?oDDy zJc|G1Q*7*09Fh_yY`byAuSK+HZ+;F+>W+@wgokobv`>Z+-t%Q-pp#!8=*#4a#LwMu zRXE5}O-zhKkcW4QE8Ay9$(~zU0=}ArG-p%_3`3jj;5M~Ix6*)yf$nS@<1K$^pP!dYG$O1I2@NyiZum)Y&e4=oX{ z+(ydu^FK225tz^_qH#5{F+4J{y#hmC zeY4(z5`Mss30@Nmb!}H0z*Yzy2%`ZpiHZGJcN!}r*0~TjlY0YVkQZNj)wMk>I1=dt z)GHEc6}YcB7uI++y2$))={dckJK&EVN*8e9O$*#T{!5-!FM>iaa@2Nw zn}6ij2rbY26*DBua7Zy;XW+8?UR6qnnnG{|S1b6Pg}{e>A>yQV%6v-9ak6me9eorg zZsNy+5Csc4IkwBbne+PWS|{UShwj z0g4bwkl=sD;NHsjJVCL68#-#FF_y5a@>&FG5PY#0>r+Egn&he%W`0M)8tL?bNMHzv zCwrm36}l@7rNBHS;r!e$KD_;y#OWhRFbQkjO?KY9(K0~^| z7ZeLxRO`Mntn_~B#6>}2zZ2nFp|kIf*dgWYShms!&-cN;; zxii@ya5P{rTD%eL!vV=JY{@ zln#dl_Q(Q3Jj_Lbz=dQl7>ai92ysuoqGK}euY%jiDJy%?z86=9?Wzxbktn~?j%-QU z5KGFIXNglz)m`T_n1wPi@nYHlMGtk4UR}T|g7cs_C^wDQGV(+b?;%VpoKVw*3h7o% zg#5VMBd1O~MRi94A}I6$e6i<+D!o7*Je3iF3F7QCy4l$)q21~rB(arXIGllwWJ-En zWyNfO+MO{*D>*byLVQEAbqe{LZe3emcjkmE>BYMi=iJR)I8UO~KzzlhjJ*BF+ht)O z+V8I-(V7{|6}zo7o#Mb+uS8ICQwOH)KA5CZmOkO<>-fq%xJc$+m@ROCOVv za4wAh`hXda((Eurfu?2))((S3(c+pXP&NG}eH8#{I3ls>77a$^O8P$8Gz4k=Ipc&oo&|c|IrhU$z_QfZ| ziMRD1ecp-7xc$VkFZbF>ChU$+IO|Z7SZ<}=Lpp|@lVAaAH&Fg%APMj*Zn7|?gVLUd z>i*N0(^T)3`9$?}QRQNel~wC#DOYI>lYOL7+(9)xivmBlo2W{7z*=2nLXgx&*C}LgWD!7Jn#^@SO?a^ zrY><6GpoD?6xngMo#cOu5F4+VAYb*Dje0*cE; zwU?<;P(kijn4qWIv~P<`-Nq)`4_(MwhpLt=U5-=3q{SQgZc{F=J2ous84Hw%RXRu0(YrMVj|Wzu+I-j_Kk__ACHu?`i8DMwC4+S)CrNiv;J zzNr_LUigl$>HfI5!Lsv;Iu26Lp3_jP<-}J?Zsv)kdva^FKEp+%ShorWdZvn=r!Cog zDJHP;?(#_`_*Mp@#&2ki{)m0p>67D@`{HfyQ}JTW!(Rp$clG*jQu|8w>1mAOd=kWR z*-?8pUhFnw9k?7DF^}UYGTxdn<3n5(!dP!8){LS32d+ypVCQt-vgu@iI}UeLoa+qo zSoos+8&!V|BgzHXM2G9PM@hEnsD6q_ONeK6V5iY(ju)bLf|fCCKTPIy@7foOY8}ui zq10G2-m?n?yRu6$E#IzMO|fzPHsT?lCPxW{>lSHWUBj4EA5?FVk=kt9z2*%tipeYc zqT-nT`glj9nQfFXR+K2X>03ae3TWk!7GIkrxjZn=Bd?Y8w(Oq~cMZ5Kb|40!wAW%BHc^ceW(j?`$$JS$IYEzO^9byV{;G|g>+_NCnG zao4KosGFgVUEK8=Z0@hOr|N1pH4RKOo|cT&o%V>{Ga%hKY6UTW6CLp4B8<(sex|RE zH<|DlzMu!mdfefWU=uXFe!y){X8>K2dOqB(%s4BicU`X0*B)wNOHMHbx<8N3SF`SH}Bha1!sM)HFPQy^PGNFwwQ zS{%hnc^>-nx)uUs{d&siJj|I^L_?pBMgO{PjFRc>6kuRWFf~p8cIN4AUhQ)O0{IjE zh;%5;5!Dw7)r6ZQpB)(YjA&++Nv+k$8O~{dM%(p>P^Lj=Ka5IWWGJ_?BcGv<3i0hK zMc3>dO@kkDp1TIjNWw_02i>yWI&%Q?2!U8w~~9KKO=aPZrb>-DVscb96F(TotWUp8Nr3OyKxv;-$zS&UAc)9 z(i0k+^noBs!L9WM-f8kuO+VRZoI3IAKjw7Oc)m zO>mSfd7cywZa|=&=~mR_$~|tsM9X~@Bb=raJ&NX6LD;YCxS<|eVxyd8pqT1!PrKH0 zM4KI>;LIJElqN2bXq(h~o~XeI$NFyV7rqI)1qJF(cYw;!)vTnZGM?8dj9CizI5Gm@ z=V=t&paVv=2*4V@(0QeM1*Uf)W0#I8?$J`VW21kVkQSA<+L}j>$gdi>|6|C^YFJBc z{=tU9Lx&STkK^L6RHV@kBv-S1cY0G>aEX#JG*>2}4^IsV9qrwX!Z5GH??@J=PWyN} zktq0DeeALEtc)@#h1GmW6vJw%iiR~pato8eLj8I7(O|Zlg*WL+l_NsEo251C4euF* z$4z)dEtuZ?jL$#!ciJ{UXV6h$nT6K$bI*B*Jd{5Ud#WJvHD*fZ3hx_p=PwLU(zc0Q zV#KEO*&=JXgPWmdwr8KVRmQE)1##lD8gn$kDOHEuWEa#k zt6QLS-V!x+)N47qV%A!}9ZDiPCq@$dGf2HawQD=@!wHsj3^fdg*;+l@kPc;jYOv{)uaENzgoy{;wBsWg+JmC5`jTpYkys|~_b0Aut zU9439@od&DQ4vC4XABj}HC{T#p|JN>bKNVBP<_5wvQx!cL{g@zdbSPd zb#E#cL%;I%>rcpG5kCW+P8F?I{K{^4KJm%cvaS?fQ!Bo+SU%Dd*QcA#a9XRDRNS;n zoihR}9p=n9xpGMD(c%6a8(SM{K%1uWA$O=Sn`$wX-seuNlp}?!pvKR5!VmS=ZAujO z$(_S8?9CULfQ9r#vtRKRdoEd(hKmFKj~V&=?9}52p=_Yo zk3NRKXJ1Qs;#&F3NY(TTOKZuzq8?51m=L|`a;1C@)h2cgMo2_=P*=B5QMxO;2%z(0 zV_1g?kXku32a{&cX_;V~H@RFek;U=l%FSQF>K@ZD@HKil>1);4+T5RkJktpERTE?V zx;Vf~eW(0d0L`GfZf#h33e{cJA3i==CKI$hOXV{8Z|DF4#E1;+Ctt|t-4x_g=Yd9O zI|!mxb`>Vv8%3(2m^v!s)}&_oU2^AsBc8SU(u0lr_?f2+-i(r|p_+(n@)djKQ{bI3 zsFFBjMX|pSO=Oe7k+ur=gA6qvMfU3txu6bq!92gMoA)(oe|J#6vG%?%#yg@Mh7}tB z&i_liTPH+`+9=pz4;K7eG+W$2lUgN+RP+gL*j7y;R z+$*L)LD-Hp^EEZco@AEd!h$!%CVO$t?S{1W?>M&}-cH0ap4+Sc+2?sqR%nrxS$oi6 zyjYNBGm@b&QM?Ny41aw5#w&wcZ!-MpiUDoi&qvW7V7}^vH)LihaUH^KiWcTIeNl#D zTC~v9dqKzGs46Mn=zC?gGV=SDhpvXDN#g@I{pNnsAONrATKg#7Nlmda%CVk97_deb z_|40|SZ(05B;CDD1Y0*KDvtiB9>OXOE4Asz|KQTFvq)8hnrWP;y zBWFB36K%SehBjkVe%joKe$H9Y5zR42Env%4Z05uKMjJdTCX+yN(>d3Xmb`m1UiOM- z+hF=4do~(1Qx@~C30uNa*FWzisuD>*A#e}0Y+TSU_&yG^mHLj@Xx@rwjN<@CcGsM6 zv^|#xm zTiOce4FL(ZD$2H@?5XP$j%*Ty=L>&#TZ=es3>bX?sWn2<+I`ZI;y;GPFp&H-b( z!Y#{=ZsD3#tG_*k9~zBTDOp913SqO!Tz;OZiG+%S9}@6KeN%A@ajB-J_Nt)+)v>)4?Cu1eCvn{bP>YtUu!&4dyv&trj^ zBy-$}FfA6n%Qi>6BXk(>poLxhw~_MYH8PG}o;s7chivTr*E_kRnu0cH^QaezHVd&W zsYvDDK~OzxH3!i~atCc&$4-PG35_nOKmexf5gm71=VnwsON0AT{QS${D@qquk_dse zYTUcrIRcR6igbZ>4F{;R2DVW&b$qRNa|?u?lux;D6H51FR*;U~l0yCH&`%gT;f79| zc=JPdczoq6!RaT_PR>*QCC=kj3LQyl)+0o+a-q6TvW&~b?!7`{ zXT-75ITU%EaZHa{LTW~io(M76_HEs<`xYit27$oN&y9{Fr49KGg1qR?b;b&@oG@m)>!~3f(nMKsZ-p{Z*eO|N7=b`Sw5& zEru}T`{2O}^2HHa=5Nfwj}7aBhiaEY-#t81t4=q0A72%j{Su~m zFzf@dyq>4~BLQbD=Xrb)bMTPzWc(!sw3?(;Ypu4H{`GG%SqYAN{aq^r1nL{3!Br#a zsC~unRiA#ASKbBhhS4>)y~&an%}slOXhX=ep`u#3+TV>`jlVAntdy!hQ+ehDa$6guwCz4q!EA~YZJV2^Uo zdP*j{qq)M(KGi9TQrtC9Wn1zu=hy_)6C!!_YjQ+D>S5skPx+?3C-)s%zdyT%BF@xUE^QjWnc{8Vv zg;4Orgf%a%vxD2N-sC3MYBNh^#ChFdYg6@gBtOwUzad|rQe_rjLVDOQ3QV{HT7On) z(pU7xT}!&_g;e_ly6?-~>M>q7966q5lL<&lNcLWV;UsOx0BFsJw-?%U!P+3z=xMr` z5G!P(sCMLcEubC&DbV%Y3don7Pw0?ynS4=7rY%ttURBc<xBfyq~sVNJ>3{!%~J!7y6sVA<-gWn-oa6J{6sw1*k)*gBv*r(|yEz z?D@o|D|YZjZz|wNQ3k!-CeDFsTyXb2tGP<9^p$O)BJ33(p2l64RSIbl>viJE95#TB)T=!o8O8G(}Ov=UVq z>wBv18RGB*Z{YT$Ux!`fTZR=fRClE;D`hnJu(d#!W6cZc^U<=G)J1zW3X5B9#(@pc zbnCLk6100Cmt4`JT_XHf_DJDf!rq?iW!wVg_Z4oYXD-bU3MJ=zWT}H9yQ~F+&j!yS`SQDVfpRj1qPR&G&+>?>|M)1mD@IYM1kn^{R z>W31c=Cmem6=fbvrEbQoW>^c7BaE5@LcH-qzIjP;(%#~>BjvTTHS8$#wf0J9lMtD@ z#G>7z`U$6{}85@S>}Uu)*uOa$f8oTbZPz<9a!}+MSMl-M+0w;+ivpQWU``p zHWXcL+On2SU6pO(inZR#Fxn3VR_0kVr3czC^DWMte3ozx_t5S6T_Q@WWi9S zsSPEXrb8ifD~?&W&vI@$SK%ug?Gms$vrP!CixdL~-7DcN zz5)uWo~{VNg2&8@1#n6BJIXB{4AEx#D5ouEe@Hy5>=E;s;Rhv0=EoT0a2QN=m!c8* zHPnQR^M=P9jWE5k;;kh{z8XK6f9oi%bPGEw0Y$H^exLRjzR_Q9)3P}8B`T1Nlhg!3 z%7_I7aPR_cXjU{u+aX7$6Ya(8&X8Ygq@beKh>6;oOdU0Ga#oe3L zrRjZx(@6rS$($DJEhKd5ClAzGity!KWkxF}8Mz*t>??yL51InLbezb zWuqw+TT?g^RB5gxL8UkEu)lK)6n_B!U`17dQu-*!fvLiV5MoJUD0Ne4le;s7^KFXx z!04pUdk{HdyB1pHb`C&Zj-mun+!cDnQ0Nswx-uM1yb1O{gQ$>(!b#b2uR|iO%iPH7 z!k>{#D4lOcU)}zxg^C1w7x98^T0T%rF1aA0)?fTFuakRvD2`lz$|1bU(GblWS4=j^ zr5p8=Ohct1WJeCdlA%FyiqL1c^^@zqph<}k)eb8?^=COnKV{|c6Pt!Lp8JfnlXcmR z3P}q_;?k3x73pss4@NEI>?d{Z`S=7m;)8|=+o}!kj)5KbsR}kzEA2!j*o?0|I53_t z>LGdf3LAeVDDohQ;N?vZC2RBP%bF1~mL*j?Ky)|N-#aJYD}j{^r2xLZ$O5WAZOr1| zm!o!Rf;}05dkQ7%LxNN*L%mSC)zcp1_KOZZDh(u8azE ze+K4WX}Q7iof}5mbS5n&f8;${mk+y1#c*%<%Z^Uk0#s5WUOxV9m{2*tsFyw%`JNE}?k2xo*$W8cS_`Z5GWA?&AE6Gl)5}Mk=`!3gr=LSIhTm-$ zaSe7>``@5`GxAEK$wW;XFPZv!YeMxr{u*=0H}1-o6-TZIHxL-e&5K7x86OizU0ZpJ zEV$~4{G2;TPD>)WFN@(;vYjvF7h^HQ&Wtk~gDajzrP!*C*H25PZ+`yDT`ei3RuMC8 zmjt?DV^Jtzs}`<#%6c;Wx!v-h6`8W}B(mBBr#Umw+5)|XQ%AWy>?<35%RZGra-YP- z-~q!)kHS69(|p?(vmYf0(4@mH*qm*!#pN1j+uAn*gPt~=&pMAe=?>+e1te0iy_dhk*^ z$}(9GtbTAWk$I5(`Gtvy!136)_%yb>rY&}DIbp50vlFzqYbYRXKH9FZ#?%i>_@i~h z(1+Wj-uz`osXbxd8;LAeuDB-ZQouVbdn_apm-Pjy8<%=8JSv_fIm4?_!`ViMQX#II zLdzr>+FJi%`ohgN3ZdsK#CqDA}v`uj( z_RHd?-Tp0A_9Zwb$BYCRWHy*C!s z#U^vSJ;gp@Fafsy9 z=($fm{UhEG-p?82_pZxgxdVwZ(RiU$FUngm;z9l#To`n7NsZoR5cxssdA(kMooFZm zD!`4kX;EP5VSj##M!`j-4IgNUwS+dk_K}rVp4MY0*kzJGqmQk>?@JddKabQJpyb4c zUxz@N@%tP?9y)dTh$CwndTN^8aPq=X^GqWm2T|4{x!!I=l!z=ri@#M1TW8}{q@#+f zS>5eqk#LYFIOIO1+3RQiN&XLZBNdg6p3RF?&OVs|-3(xW2OB|Eht&S8yM|x{o7G@R z=NRMOYqSJmHey=D)D#98(fi5IQ=KSBj|eQKJtmN#OZu3~3?MavJ18aW(E8ahlFcAV zl=h6`v@8Z7c5w=qYCFHt5YD~U%sdNF5Lr{ipT&}&N{>hzG&pc1sftwWQY6gBk=8lP zB2-^w($*Wx+Rji8XU2m>qt}NhuA@VRyG zdUQ*oaWO&Ed^}GvOn)trC;-b~6jj{f23^2@a|*xQy?qivo4kXiAHH(p-F74UaEs56 z_PJlu_4;rmAEziV40922nmHo|v3d=$3P_`T zs&&DkQqb|aG;*pqtK#%`55eRp?PMZb_dUihMi~=Zygz+0h=(!$7a2;DX;QDB3DSF@ z`8cU{W1{$Ug^u+v6)@MEGZmhsB$JrDD{xDb;oQi`vd$FBy~sjdh+6VQ<4m&6jX{}n zCWZ+elerq`D=_m5pHOeeUoLW(va4{c$G`fizQdc>J7-famGGm z!uYl>YxE))M3*#iq5W1SPc0;2HY=~aIk|^1K@A`;)MWL-lm3Lncs`XRp-{? z7fBED@^q8FL<>?#EoDQ`ftyl&TQ_44m=cIw` zo)0E(@0R!p0nxt+mg@<9;31BP& zmnrOGF~R5^*vM2oBk5ouBw1;oq91>!4VEEF_Oy?8gW7@`@?1&t_S|&w;i`$fmlsWg zjBZRimr{|Di>7X>R8x~H`-rS8iD*@8$rm_b&ITJ?faG-bY~ znxd#EKfE-mGAwes49!GO&r}|sZ5b*9vokG!S5_Y9f?Coj2O;RM&zGl~R-|XEYzI_i z{}jUXB2P^2<}g(r8E6*<%DObb!dTBPzd*bYhm<#^~izHtndX z=(4O-N(^=(&}I#0@G3n^aRfFRSo7txH}P2w_i1?nwnBDS=OiZeqV3g3nLvkC=h(&1C&Nke) z_A6ROVIT4t*{75LYY_*W9ez#M%8P)+rS9OKOoDP9dVx3nrq! zdXtu)u-_RQKWfrwORpl7X@x$J!wyAz+Lfv;B_;uqA zC@*-2`u#5<{SR-*7Ya7jQnvIOW=Z6gFS06P+&_}yDz~v)W*x@Gk#G1~&!w)NEmXfZ zxtV*j-M+5*bCA|vZ27nQoHETORCw;q>1yU`Xg?BJF)U?c0263-OVjJM33x}rUcBD# z7A`EAlIdZH?i!Wqq+fDmt5!Pw89VqZ^$tTX%>K3eLJBV#xlUQuMpo9B#om~qPKLr> zhOAbJcN96UW$YqF5{-SscHy(o2&NXMN}0!;zh5hwYx4WRjy~dYo4Rx`9SoCwU75(9 z#ePsy&8RBn1WlI7Baq2Ou-_9t{3%0=p{1WXx#b1W`3(ams-|TUY?m5-dkL%jh5={= zNC~EH29FN-P_;rMJQsGsrwDQqUA9v3=0YFh|CDyY^%lx+AW`|WC6{VZlM zn^^`{85>|bRASv$a91KRcVtkuyqdXIZG)fu0B675`ie}3`OzEkK?m`tqh3mPSAuB0 zZv|8xjLw5b###p6GK(isb*!1Z8LdVL)rvvBvC=+x*xC*oU> z?w7M3EOTD+b3PVxzQJ?;d7k0cZ67{<2ynxKP|V7;;5jmYN0)#CJ`do4xXZZ(GYAt3 z2*ZLRu^|3hFfndE!41pf0ZQ%w2~2=LXj0#RL&T33XmATTLJ5+q3*sVRSrb4CwIF9b zQI!|2f&v(hz?I8aBudDI_Ta@Xf1perl07zFj{`$I2x68Od&eRu;0u!IrD8Y)q6-Hp@#N$0Euumm7{21%Q<;w~$u(<+fS^$OQOcdF9NAVASGM2@b@7 z`*eC4ynOg6IrGz1a0n*~=n;ZZ=mInoN}!`vN(z7l3o18XJ@W&JBUcrQAonKL?s*WJ zhyd{0>oh1}-))U}9t;ryGbJ!GyF)~T0S)Aa5k7;DVvT>|6YsOH5McdhtB<%J_J7QJ7S_B#~0f|6uVC-fcd=5h)$4T z0yqBzGonp-sbQ4l~{{?U(7z>0a}Uw%<+Xp`RHSl4y0}cbfW%=M)z~! z|DG$WJ9vXsb} z#%+Sy+hFlpFh8Fdge#S7>c+HXUtSRrz{U*lc^pjT@G9!HTApb^U}XbH>Oq&u4= za>a3uL{nsAq2^GPf)Gi0V%$x@Xidoe`~=xWVq9CvBXs=2p(x}fa03U5w!o26e2mpz zs&@Yhx%$e4-nq8A%^-3Vesu7CY=>$E^zM+vdwfU9dV~5Ifi`eF6bwAGI9`w1zft>x zF&}y@pYYnJt-g^WVB(|rr z;6{NRx*`xC1waY0f781HY{dHZboDpm`xUxXoVVW}6|L%Pzc)m0$|VCO8bJepwrR9h z={!Kcdx0h-_sBDV{IhCwgCTM2+zSR$Y z_~l6j=rhCW!-sbO=~usEp7XqU_MQ0NRmBG8S^C!ByA{j$5Jhxa{TuXl=76+!JL`@K z2;VS%fva^2)5_Qz{XAl;3S0eQl~vXM?TT$D zFBqpqTaSlcR$UFW2v{`MTwB-FpcU49T{x6}p9ejOPc4U*pd-OnWK|4jC3#6#j!%51 z$V<(O!=MS81>GxFq}8H0cc?K;qs_jRqAA)@E+MABqtcQY`7Z^Y6FRvf1iK2BWl7C$ zF&2tru7b9h14d9%7#(ZpROPh>%uIBMKT5wGmQz%mB0XvRc&J|r(2@ZmD4mRm=tbeN zzKCJ$77ZZUtFo6CVdhY4A zc^q9O$g0gw@B*nCF0K`D;xrJg*XjZ-9?Fca%)*9$d->?!1;qLjxkwhpCwNS)rEr^~ zxEDBr6L0=qKz!cSxnCbi{@ogz;k@wq!m@=?&tI8lq4vou*_=t!_17BB(p3XlhPc6c!bopEiL9 z4hY+c;rd5FJTU^Gpe4czh9c>bK<*kR57oGTlWD3o$oYrImI;9D3uuS%p+z=;M7mR1 z^1lSchDrnkIxar}q$LFFvp)xB?f(@J4|3ak03UgY5xc3+sfu^=xPqiSX!An;3W(Ii za(z%`bt)Z#`$c{e*h&XtfI#Fw0-~PEVR|v`KEO2w9;8<@1KM?jR70G86X{+z(mpzEgn7lCNbYq!mefV9KXqef)^ArR@O z@Wfo^`-wVb+4zk)$acT{m1zWcvFm0rndAiD=V|IvSRl2F&El~hK9nz!k8NX3kwSj zEHytrzx(lHZf?gl}-G^Q9U1;Us_&ST~nG`f4}u%d*`3(mdEDdzg4%+&YKo5uD{>>!%=-Z z{sY2ipdo_whvSml)K)hBFZb*ZX{Rt8m5NN6d?;qGelI0~L%+s+ycx4sU!XJapV(7! zs=+(VM%{mN&yHEFzbcq&u)Fx*qiu!&;GZ%h3P^3!%;bpW@#4~Wd~iQE;sz`LHvE_HyU6Z zSoE*IIrK!hZT@~EsgyF3mUnyKu7eWUpP><@tN^#7*DcZhAn@po%h&B4A=fVtLZo)H z^^-nC{%QO1{rzNml=fZ7?_WQcKYkEQUJdyJaJjfgn$ik| zdklLTvsQmhkozqE_#oe>2I%-wYb&M_4LIpM)UXb{)GvBbfhO|~>&;{-R;7~G4F`Aa zRhE(w(H)zm>Cq9F<@&8h$Hxbe*HjuL1TBWMr`EWX)`DEnVNAW*PPG|Nt!wNN^SRnJ z@uVk(4et%ASL^#m6zZBlRG)^Mj_hha*G$XuehHbI9;|C!mDh7`&o=)x)V`_C?P%2y zSxep#krQ{9*!4LV#l>}%9A)(+c^L(lC&;IZ4UKfGqWo}r4ST^NpvAm{8gbC#QH8V8P~a28vo+v$YBX#Vo>M54@7 z8c~(ZmZ`23HS8%F|8{Q-d&(#gR<}yXvc`ruq|g5LApUE0i>?G|NmxoV zs*34B{Fmw$l;-0<)h*BXZ*Odc&;M4pJbgoMG1aaAy$A8Px}~N@2l2AVU>ju+ks|z` z)h*0tnp{kEOHr4{_&DWJ^ErKd@c&-jO7(dAf4{ml_ok1O1F0hpM_^I(A@RsYQRJH2 z0HO!sV3{HS5ElrBVM0xqA1D-oO^u6C9y|r&1o!~&c#is%qToQHY$QN11F3GD8$nEg z01)G%u(RPP(s&9G?JBo+wG{}+g}_qx1%YJDP*nm~c%)DOr0yr0fDKV=-s3_hFsoZ- z3B&?H|a>)R$H247I zz_MKN5+={Ya6e)w5!vj8{4B}~L)NG>V~8*SfDd3yiVG+Wp+Q1Lc^`p9#qkLP>kVUw~u*qasugpCSd2wOH#rXY;yIu8BkkAEv29Du`?jKmfd z2N78TK!meEfI%M+-vp`730jM5GIUVx0wDU$rn1vX$bfEtBSgbwd#Z#w~|^~ozdED;;l^kjrJtm zp`S*{bO=3^ER^tgcF`rZq@aTWotl01kITlT^+4h%P9gJZFTupBHPF+7ZCrrl;LXAJ z_eyRk?{DTH2FcPqIgiimb=$|3*@(qsSG4n!+mjj0KX}bn$1GJ6Ut>Oc$B#a`@v42Z z$!rq*h6MR(o`f05w^hA!_xxG8P44FX9z>6Aoju+Z#WFC`pH2z}$d|BwBVmH5;nW7x zxE0_E6iH(hJjABfc{`TiFYk-FcE*j~d{<-4wWIw6CHN4~>?r6D*ygh#xCg^Z-f!+a zB=%-2>a3wo4hF!BkYyvLmDq?Enw(C%ONQExW~##>6j9HVkVd`xfrlC3pT2f?c?Y^M zFP&Me6FKo^h3lW!Z;qYNejSePU~f0yxmT}A(akw@`<@Pmpc5maUn<)^2d;9_6L zdye)x`;WzzOw`+aM*MArGn66QE*5RinA)D<06cSz(Td5DBpo_y#+Gk0yysgn`yJRs z+q!HK29s?@gN9K~fT!~mAnaB23ofvrk}<1JNOgJCoE^}+Ei!=%j1K^LXMs%}qN7w} z=GaUa4#6*O3>_eTDo{)05>CLXCOPtn)~sEbxJh!kzfuvPS~8|a@=+_3PDnOo;GMX! zW|c7~Al7v@a1oQ^yRj6)i6_8hGYr9uump|SKrE!u%T*%?GTsFaI2`s}U^9NKWbk15 znR$eMfLMY`Q9`zu%Pyydq;LG^Y;ejd;G2^drvo6)BuTX>8ZsNZ(&44mmiQ+dEXx7F z+kU2%9JCyetkDO&4bZb!O;9dRCd5l2iqQuo+sCH`;3BM9+n!xkrRZUBMF235Mo$6e ze-9bQ5s00;pRoU*VJ$;|9p=#Z_dkP3a%XM+U>mxvGPJ%ZySK4&=ygI%MeRg)S#L{Z zXI^;^@ZSR%TtfRd(F7toX^@ zRm&7~&(<;+jD7g|aQXAc!^ zHHiE_y121#^to;^gNUj}bn#zUi;XJ`j3hPE%QwNexJu9d6m^V&PfPwS|2xkZ4QJHA z3?kBhuKFu=IW42>7gUw<7kUZIV%*at% zh5(W+bc7SU+RKTKAqJuO0^pebg0%2ZJivmD4+jfpN*3ed5)uHcb*VT(;Suf?G{oay zrnfv@SvmPQ`z^}`P}esXPnbB`zNC-}k|yVi&K)}zsWe%5$N|0+S?Q4S@_B5df6O6< z2<>oBQ6PMlox5Zl9!)DvY^1K!uD52+4gecKQ(+E*2*LW5w;vRRy)Z#~?T0n?aaUueNN4g`1WFyaMB6TiK zH;Tw$##3!HFJj$v1Y#>|jSpEkqm7TNb=q_=g_^45EH8Q7RgRk0iil-$K?@YB7F+bR z-;03ml97~q8#)>k8@=sVKXo3KZw#&~k~482It5^@(vH`ZhHlkFzK$MS`P|Xor^7VEcV*_(TmL5T`|z33JUayU0j84MEMZgx3Vf_HH6G#0!h30vq=FX2U2xuDL6LrjM5;K?m@RbOZpmta4GAFO z>f2>-Fx?g+#rrPjNXniLb6oYQEqPD&s2yJ^w_S``ewu{DvvDzIF9;kN(_`%a;8<*q z=dB7rh0j*Ib-N~Gx2QaM`;eDKE=k5KJ8r3G{iY z3J5Q75CTaj6OW5vVZ~py!`Uir%uNhHnQakQQgWUogv@k(18lA_a>APggI6^$1iOwV z8s55b+oeN+GX?cD>ZAVNxPa`707ki*SQAE#K`3T%2;WH4)8Im@=!lTvwgDfgN>~+l ze3PP0F6F@y)V!;BK=cXL46x5;AiYf|sM1*;;4miUM99qUAv{e`yc~(|a3}P{kz$F8 z%b|TFrP9;t){2_Bh~pJn1<90;JE5!;vo7bNpwnH-R*M9#qx;=n2+1F}I#jR{A?5OZ zl>jT0unFyt%}mL|LhNAS>3ide4rE!Es%_{e?3L~*_wUh*7EP+jb7O4-aNPMChZ3r} z9Zb0_bC?c*Bo%rIP|1FpG*PtCvWmi8K=cJe3|cZ&7fO0=UvHN#^=jzE>ndlRy-6p! z;75e_CIvfv1iL8vE2E>FOl?4R$mc=9oYt43T@v}G~LPQE{|Ps$>GdTm?LZ3 zap^t#ijAOwBz#!es=rYe-k)}whio8if}-y=XTP-(w!9nQ(_b=pVq@6Kg#3XQc01t# zR_RdH7HZ#L0Ag3;u7^qqWXhXrRE`p5&E5`-c5yqL1eLFIA4Ab^SLq`hrXo!wSB+Gv zrC12Q2KV3*IbF9(x#cz$Qikwv0+O}m=;Ri#l@(!kffJ5j4%CNhJwFNDyPBLu9mE>_ z+$c_38{*7n*G`9jiS1a_KPXRV0pCwB6!|eU9&*$fx7msvSF@^FWPk@Qa#`JD|H8;T zTEjC-Q;L44=uanIP|hwFBtE(E^wnIK>@;m#_8?5KUjSfkq(`Ci-Vv_=5R|{i1fLrP zr2Y)N4;ai`Cl((>=jO#|d7qQoEC@3|(_+-bK2_4HYich?E6KU{`G5Vz;<2!Vrw|P4 zdHWrMY*;-_5q598^VUr%wDyyt~ceTd@9sy4$d6H&2{R7=rZdYv+L zpLG^#G5Hw-N(8spx-m>jS+>u|)>aE3_mPxxKYWfK5imo|&s}9D}83%CK-#L zm`C7}0!|~ht%2*a%qR~C7V8Q>6OQAACrXM9m*NJ|j8cK?(fHzcCUpQ<0n*39k*s5i z_$-3+V1uj@gbV0_ogEb%3#lLszXPno>ikt>ZdqrZ$~Y*$ zC!_3>mu|G|*jb*KATcsnvI9^tBgM^@LwteYtpq`hcoJ4SbS&Ha=b4qdf2tri{88%j z4qs0E4T!WyNhnW*d1$G&Hxi^Rg#-N<+R><{ z3qu3t9%J5oLyzUPz@ktUab^G)t*^&YSTZ&IA?NDTrB$&l2mU9Ln!WP0?M4~S`?`BL zs24ClqwSpX#w=~?7=RJaG&Mulk(%TcuPO^0*dv^G_r;P^gk(0yX=Y&eJPWEV$wl^p=}Pv``QxD#hht;=!IfQYFTjL&Y9Qf;*f3dLi}^D@z)co|A*qS4nm{Se*3@ zHI7LFK^L=-lcA)o6g?J|!3ct*LfnhZFqqQC2n3}SdhvFjMqC-nC2Hn{#(msMxyK5I zRQiiUxE`#rSuQ)BrY81FX4ZSL4*YnD-yQ;}ip}-*9vSr^a)=}Y2~cjAGm^3`jrcMG zLi5kU??7@P{3~)gu>;e(YQjt=BFhoQW}BJG%6~da)Uh#iCb6?x}hs5 zI!Vl4RO#G(oZh4v3WoAvgP!Sw;#jb{Yb-9y^{AN(V@Ti?xZW>|I2g*!<%lh-;bb20K z#^lHMq9U#I18cmDZ-!fY&QSXYS`E7i?2959_SRz9L9IKnJG2JTc&WN7Ok-o9mXA?) zyXuroykrbIYL5)=4;o7Nx3Tnd@ElmTOq_@cEvJSTvY5*Mp&H%)<+H-_gNM|9+vandON z>bPUt1jqP0#QlaeKS*Eg)I~2YL9xVX&pCl0I|pll268D(Qq8HSWa!mz;?vgNDO{_z zZ*)`{y63_vm%_AtQGQW;KLn5sBW0!@u?<-i#I^EpsqpW~NV}7$Y*DTxiYU7CU3s8z zp*FcIvw~$_@L1!KhgV#AtwJzlg&7N-<6Se>)DC@8mjmvRAj#m7)U&lHG}ig;>;!`L zzU4A_@Baoxkm7uuOf0OOE&Pf*oYjG6=;tLFZ3y0Y+=J0GFMAJxDAQ*=!fZm;I^9gMUEajwL^ zn#7)6%g$VfaM@wjO^Pv;akXs&Wamk_ODrx|r0BTcr-4ct>Q^G;C5Ca&)?6jcg?prK zUWYY~enl4hPq~aiaLq%!OQyg|3`P%z!*JHgnCN&xm)d>yeWdv>o^bCeA0_Ekv5OROS;^H@75_o?otb>YNAgheDT25 z_k9TcT8Ahbpsbq)K1HQHd_cu=#F#bi>B#E)>|xo|X}ARgr*#vsKalM^to=rkY9-cO zgRenvZ1dyuwpvYP4KJ~uP^@UvMq8ceH;`35AmK}2IYl)<4NdcJLmvyMuFTRbHb3Fl zO+MEq$xyoWR2>=T0wigOc(eEq%!ilfQ?d>%=2dUJC&lZ3Q)1N!G%lMi3GvO??53uz z5PBC^6!(U><5*oX+13z|#o0lpS8ul8o;hh@Q?ccOmOqw?mUe}ShSeG?;`z$~g(LVC z3P^T_Y_7@XNt&hi`R@Os6q{;83it%vT33603Y!YDzMGxHQHpkPLTyzg9~FpWi@+az zf|h+^$6rnhf2Ch*FUp@U-U&I z7Y8%#eNN=d7MJvZ>tu*A(E=P#bDk~0XQR3Lfd*5DfwS}UJRvb+XG=Tw zfyINS#3XEj!!CCHgGNW!6ejLc@6Eo%6A6W@;zdzxgEVYbX!Rz9QsCW_;=Kh=PCd?2 z^v`}VO9gegdmO_!)de5^2r-@4;rPVd%G6<=H+A;|QN%tkSxTdA>*b2QNpJjK=2MR6 z23Kx)Dua?uWs*3{Jm1l;TIEZNXE$FK<7SW8?XfcxTSMD)y#z)+L<%9RKw|c0Nxa+k zx5=69B$ag@)iU%O^S(^;W9g3h@}jX{_EsUS+b`m)E7Uxz!Ag|L-zyTc%CCIs3JG(X zdUfWKLixPdl2LPFPHHfX{p%=ee*YQwIkow%a;Pa8;Kss& zj6_jP_%URf62Rw?Zd8&=$J)vu`>w6??BeQ51WHhL%r@qY!o;Ng(J%zLMqiN#QC|F-E9uG}| zc@C!%FIE~GAsI}2A{lS8f@||`(QYz5RjSG19S%-B4l?n2Q(6@9C^}k(y6QgL$PlXn zkqec^IgSDwJL^C)GUu~8n2Ko%ji|`*u$CZu>jV#;AtaOzCQ`|qN=?!dXV1DlQ`dw#S8<4@9<^7) zc({_|yxwHy`&?Xr(5w#4(=h;~j1$bdn1WygB$nymtu>@N0_ZZ_^b2{ptda?7Z%ihu z3x-Zll^5Wbtbd#6kkRTn#>CwwCoyk&U78^%t8LbNDfKSP=%0;Qfs$K!b zba7cpgC_ME`*2so>Zk*Q`I%do;=e3*u+;m~d72T{ihyVon(J`P4Y3rKsl2pDlokRO zm+ighE@^3!PX@%`GO$m!kV33<^-Ar6ufzoCPZt#!x4wDxIM*;yu@m@p1 zOl6$)l5z{;oSt`%(tT#cs#d_{Z(X^tCA|#<-Ix?A@w1NU$EO%tykFXk@ zG{MBZ-$!QmPh@s@r#S3MtG)R-0Dq~>GQYV@NXmx=ce9~Czcywjt=h(=i`E-JO28`Z zU(o>F@&WR*DZ2q>WCGA=EbeSXhB+Z`vz28~$#89bHU#uBcx^Bjz^9I$H5NmC2&_7! zV9X&PiY7?HZA%@7&Odl#+E`Ju`1;6vN&i^XHQ)6SK2F7<{)ksg;iaKNFL^2Yu)sYz znCA{e_tLXB4}C_Bp9=t~;))syl?K-ZFtf0FQy4Qd`!dezu&iw368_YDK`E)w5H}-#7TFH|DnKM%$X|pe)*)|CN6< zdwsc(FzCLp` z91l(DH*IH8=DZhU_Bl}{xHG{aP;9W+YHL8i(d=D78(9_v?H%0%{iKR&ze@@0d0O7+ zj0Sr&&Oo-?ncv$K^lb8)Rt>B?N-{qc0q1F)Dv|Nhj_p$0=>Qo_BwiC1=ov0tsKqC$ z3-GM2dkS!qd5qx>WwwF{s*iW_+#0bul(g3|pX@7`r<^TS9Rv$iG|$4>*r zVylOt->{Fc?cz4Uv!aXLC^~apiZd>cP1PHd!%>}Fp-$Hvi875j1-P1or&u4}XUM%n&q>m4qjX}bP0g5oC= z3i{cnDH?*`Q@625+*!5X19)mthW8>n+?>VPyACY^9q&jWob0bt~RTpDXX)rJ2BXD@oe>tS862dXd7?_ zsv_>=dyZ#*zd|2|Eye~4y(FMNAg+WyD>*7tFe+Q(^^8pEk6e3V7w%=kXp+k?pW-oY zGN56(&Z(97#xh0T2~3Ld96EK;Br^Q$+@)Wjlexx z@fr|i-WyWrD`uTn4o_e)SyMtR`flQ{1r&3xUJpJhw@Mz*QvR;EliL0?nJZxF%PH3| z42wh=(8>MCZIe~tkN6qe*Tn5mVu6+gc~|o!3KUZE!qcTNp+0Z17HZGUa4X;I;flUC5PqxRTxGykzUlRR5Z+n2$2Yu*%HTxBi(V zP1_ltWB49jSPM-wS~U#Pa?h}~=N0(=R3XWVlDY6>v8mnmNuu~f+Sntk={nG7!Cynj zz)(DG3iWKsXLPXfh4UF1Sj?%}$NO-Sm>@Y@>4Z&=9XzhPPm0n5E6WOVJ_^~&uRzRh z6Z2LdR%hT4+zz_1;#8n-7f7>xx}VFvC4fgXb-ZygOgWZ>`$&t=C<)tG%jEVO4TJWk zOk{Ha3rXm~2ZplMDF-kc&MJ(#I(-)O+l9&}o?a4(Pni63^*GfW&UuiyG*2jL!s$Py zNRS7qZ%E|69r<_?PVg3XAPZC zDb9u+mW}d?WQ?)EDM_dGhumUq8(rtt$_D&HQJuR9QNZv?Zxj`C3duJYl5XgSbuFw> zzmixu547FtQ$l+?1_P`yvI1J zET5|PHdREk!j~uBP7A?E=ZlxwsDHpoCj^PzBdD~jB5e;g@A{wWPtL3uFv*U zb`;-{3U;iCs{+iG?@SUwB&Y9$2tih3c5Dtq0FUj2hRVm%Mbdj3*t%qKq8bv-cDtwj zQ2`1xo+To1FFx~U+yk{FGEFjN#N-1cVVf~RUzhBkFH}vgi(6L-+1*wRtNZLK6isy@p@USku^L6_g0+}a#Lp{4||`MLM4yS zElGypr&=~sSOcSHnaHg@vMF4Cs)6PN$nKxAj}%kPze5E%pq~&YUc$xwl(yrwm>r=5 zk{d-9278^5X}O^R+-AwMbq4zy`GF6iV=2wt8oObiVvljv$ltWiqRN<|9Wa6NNwMPz zsI<4FZZk=5jdaHj+fFr>s2;n`se!}fJ=yI9ifxMMCYj!S>IOm~v|bqXds%VJ6~(OtVrg?UuhC#>nra7 z)X4=9E&SBV4mB3J*WCNr3 zD1NwcY>nvSB9K}ef-D)Oh^TbFYb~A1SG}1AZhA@z-&-GDU-(N8LF((rxloj>ZB|n= zqeIH93kxdI>CDj-HX#Y#nhQ9;<&;dy8YK_uB*b*{rzbpiNlPjKR{Tb$P%8XX+A42$ z_`TBme)o33%NS0+<*dQ}@J?R3TAY0~^Qnar8? z48q*K^*+<_{Wx5uu*PtgxH53bx0#++=A!T#2ytKM9uFo_f}?oCFa%n>rSw zgmOe}WarA1GFLDML(BpwRK<4VMrgA&e{yy)U3bSolzoA_GzDK3(Y`77CX#Yr6^D$BG*+l3Ut%PB9w zwfhyjPLxUkJ{Bas1C(#R#ZGL72G1J z;)dB|36BLU%tTlM_FG%fi<+4vajx6b`iX9Eth2LfqOF;+%Rq zSq1W?CDb-A?{=%pBwiFuQ@+14vSINRQSrU;e}cXLwrd~7P8n%`Ga6ZJonSmxL)spX zB90PbGC)7lB5A$eUc_%DmWJ%tm4>0(LMuuVMBDje9U^lg7|L(lX#pDhf~yS+(8Ww@ z1}v(dx&~xcoFRvn4{UjEVAn2DqnR{1wqZhMeh>DlVli=(_iTnr*HpJL<6gdW;BRZU z^8#HY^p8bMvB?V(=Pi=UFHA*nvfOwD~Z;YFX(aQ;YjWYM}4iw_eZm#QY^Vby&L z05?j`sQUWG6;of`e82}5OsMqBW?SasrFjoLxfh=4nL}8ZakZPsyhz3-08Qve#Ed$J zlPuSi-Cf~bWIG>dsE!gfFPktwgy=oAbM}(bW4Ot^FKSV)NjX3xhZE>NNsKIvQVibN z^07uXtnwF2wdqlVq{zOc+N0Xm#K}0R`dbV3TLn^0F?_*8bHT&0HCCQX{t#2DU?6vk zCj0%Vvs49x_6kP-PKK)=V!tK$BV^rf=B8*LjW}rEOypL7%6_A zUYCYV?0~CC7yQy^)!d=t*D03Dv=Ovr8NQt*&(CC>-Wn}b0H=#29+bX8r-3+?4XjE$ z*Hwrk3}6l!nnR&4G)WxAYuW@1)Yl4g^t}IknZN#;ZtCZPC-ERTl`T_Lvx7p** z2V&D#)Ni+IKl(R&&-m;t`Em4p-J`ZsV54S|fPE&l+GeYiyssz9ue^&NYFpn{NTTx7 zKhCgLCHyl)flPTM zr1oNo3zl%!5XY2{)Wz!+jM_0Tfu?41GVP`7$}(zO)p_FvM+NWF22?^?zk79C-yaGh zUv)aMx%CWC?bb|$c4g7_#${kh<9|pnE_^!ndb(ZT0ZeTDa?XdMtC@C2tEEk{6zN$t zMJ16%oV4gqRc6k9J@Zh-AP|o^Wm=}#MJ;E+{MbaU+0d773?xZRsYSS3-Vt`hM*vc+-|ON|3d)c=qYf!1`kv1>i;{z^f-%>CR^3|} zzw_;J9x}*2|KOr@cWZ6iQWv~><`nsON|({e-S8Wu^_k@4X~?erOY3m@eRuY8(ir2z z*$Mr3L>H6{uf!oYLt^-q6zjhmbYAZ7D7PC@967#um1w|&|MXi(rSF4mqF-7o{?kss z0BhRxu<-mNc2=b(rbxMNEjsz#v${;8jb}cQjLt+Bcv4|G#k=$3BNodEukVyb4(_kd zIDRdIdTT_lsyBP_%|k41haTg=Ux(TaTKq~4K0W4Zrx=*f|2jXvs44*eVM9)`?K#p} zoks4Q(8_cs^r&uCbvUZvg1k_uJJm-vm=|stl3Bt!q~A)Z!Zyf$s#pj=2$gktab0`7 zy^Bh^n=yNA7D;1$AIBgj0Oh8^^qqTi6F<8auzpYn15SzckF5 zyG#1Pn9_>g`t?0Zfb-M^rSw*e$#InHGtmEc_x_o_u73b= zL4ZVN7%d=mg3S?6)fs#*vc;vxre&S~^{3xqgS$eVZnC9wg}NgA9BuFK&ZT;uzWsRd zvqzQ`4iN4bf>Quss?SdY%O&w(1~~>pd=^|vd=4&8z5Iegg`dX`p)!Lqvny&Ef~e$; z07Yy83<7+OnaLxmk}-C0O)w$Yib4`f2;H_^-RTohT>jOE5g_RB085F|-s%YyDi;%04padUVyN=!wMM=qz#{`Q(YQ6_j z6Vee)Re7=^EPN38AGy5P#tjvT*+h}EAdNJ01gK~mHqgZya!Jcm?ae7l`U#h2Rbm8; zPoZwL$bE+7T&U1`Phl$3uv}`$!XWGEzhi=hO-3aqs$&nUq9{47!WXe5PHIB(7?sAfb;ViQn@HYfe+EO=HR2c0Bq}Xxjoh z8RFjoU=ei_OMi0{jN8G}{B@b<4e<9IP*bZ?clv;-n#q?gM0W zK`4Rgu>J~--DThNu7>At*1|8+X%4|;Hg4XaI+p#0(4vRzOj%PV-|Bj9e`?|z0e{Dg z6+`iztXUJEV@*Ubpm12CM}tXB1|Cbc)@Kx<$%&PUBd8067_kZLi`F@QS1FN4vZfwc z#&DK6C2A5M4V#P0=FAzzip-N1gaPJpM;>c*XMGeUQM0=1e_Fw{488Xj^Aee);ez4c zztjBKOZqcz6fcL|Ob-jCR9`D+ghTh)4Sd1u9OBfz_OWdJY}Tgt0&})AbG+xd$)bHB zxJF6pdtvj;7SB}BaaUSy;!WS_2%wox>tx^Z-uCm~*2 zQpgfpUq_h00Ij6Q(YzA5tBAv7Q;T0c!nD32nlm6W01wrSGkg8%oJ-)%x8=jnWD!;R zeGaIByl=Ej9ks9CuGbIRsyk;R=idI9_ir31=@-5`VsBTaD5en?h)h(Yi{k$@T^P3xt*|2V)CqY69;^SOp z`R+L#z?C{b!bIs%zzhU&#=_D?^pAoyOX`x|1{1C0)o$iud0oGlHE7Y*<) z{Vkt@nf!57LaKcp2akN6$SPpG^i5@)Tyr}Xy1TuctaSKvtv3=Vahm)$k({~_@K7q#CR43|~1pG@zF9@sIz(-k>z1xpeVs(bu(TP!Y} zp^WG@_YwA!Xnw5ccGR+pDH69u&|tNGdzssClM3;nSbjL+$B%h61tu&Elt5A{lNd>d zg&`(0T{d+ylEZ;$=1H2en9Q?8TKk)>C+4pbI6>p2OLBDg)is`axtX!9&ksBh9#4|A zW3IZMlSHJFrYyA3Hnum)DVc?%qjGEnVa|8sWa`4ARaIN;FILrpbjX}*vv)X4Bj4&l zG%TtJsZx!8l@5mseJIVeep)&C1oACC;|G`<<*fOxzCL#AWT-tc zM+h$MO|X?#6zD?p=y^FTbA`cZjLbhX(@i8l$aPD2*jY>Q1mqQG6U#GmtX2QggKqeC zll6nMcJS0i!OzV@hNt5*FERxRI$~K61TN|>iwi~g>TmCJi1Pqh5c0*I%t8k-oQU(UfBDfRmpyhnOj;+4w1&SIuZ zp(@PjJjSgZ$D`NUMgr+(IDvYNf->)(Tll(eU5!r53N%In`quxwG z)H}*Gm0Ufs$DY)f|0zP$VMxw=lh`j$x$>rB+8h2-YkDet<*naDUUy6wVdgL}K8BTc zN{%~V&v9J7XI5=xYL9UluM1d2Kt<#68K=aaIPWWIML{#4l_L%lZU8pRC;G5=h*MeS z(_=3rA^o>Tv-}7$F(PIiQ)xgplXs^c_)Uhbg+?3?z-l0l+(S<8)Qe(eLO@{TrNA;v zEOJ=1D!L&#Op1k_^kmwt-n#yS$I>~`tU(bCbT!KBu1xcEU`4ao98Gxc75yHzZRu|I zl!}?7=>|mO)WY2FO9Ui|-Lt!67j@p7LDO!xHlzBEkZ8E-dd8dT?S8tiWMGLD#(B|8 zJW>&WkKLOc@|pj^+h0dT{kD7G_-BS1hHz*khi;@rL>;FjY8>CCb zp_J|xr8@+qOrFv2_uBiqu6ytO+rM=`>*3E?tYIx?!RI*7Md73Hw1Z5b!#Us!+ z16Gsyop6PoQm)OZQPosQr+jPtvQAq?3pZTXk$ybfm;CO_i8B46u8^L^Fij!5gMSIz zq^Z^|>ez6!*;i{^Jbq60bz%`jM1}hR zh`*TSoG|3~v0tp1(!2gL`OLtBOC(Rzx3^JF+>{oR|N0vbVT}Ww0S{k|GxhCjN`o8* zqAbKV-^B)Q&WM!RUAI>WJY--RLt=8JHD92b8sZe$qc>p9PsU6|1E#ZD+lc4g1G>E67~eb$p)ej#(;Xwgn$VeZW@BlX7wLGEtSqB!?`0HVVI5>4J^UvnQcDw=k| z(TzNnBj|?pGe#=z7(r*x;(M+i@lwAp3O{ZA$~&nwUwEH;5>Hl;_xVaWZQ&!D0maOq z3tHD=7`(fpLF({_eaHm|%ER+aoK7*@jKu$SGR)(%O}lY|J{M@?u6^K@xQZ4(4!_#I z#?vscP>JJFhwIX%zYHqlMZV32>LaCU-T$Kv4wFA)=3FBzA7Auhr#a{ zW2!Wko*xHAE5Q4+P=|SOW7a8eJ&ZRDWJ3c`_5I|hcn=7fhWuKHuN;BL9E3ekWBfCX z(eEwB{nq_}5pWv<+QY;BdSFa;S1wC3A)KV!k1?sRKT`KP%W&>f0T<(X^_3w76S0RT zO%^6Ju4y!F4;MOzrjD3sGghwWvrrYU(4{DYb>Q?}CJc3p-$6ap=S)C9%Zl-bJK<^- z5ynhyu~Qau*E5LoBLbmdQ&!$pRuNM+sZ};vQ!eBq_Gcud$W;z0{9}_<&aOyC*Htc4 z0`ACF?nG0b3{&fDQ(kcJc$q0*N)TVy>OFN+{s~io1=IFLQ$fXU{$0}>-&Svc&4i$9 zLgZ$`bZf$_W+J?6A|hs@Qfs2JW@4&qVp?Y6hHK)cW)ik*R}!vfH+|P`qRk{D*CZ3o zZehF6^39~m*QDyqZnv%7?lO}eSd*SGyR)!%XVvWP?%LfGvwPpx?t#q_&~*g4xeVR9 z46C^;@4Bprxt!FxoUFOL>bks^xdLbQ1N#gG%N6_~Og~jGv9q}{CrFt!M^TWOI37W= zh#_f5kuRc1=TMOFLKV+kQua=@859Y&k$4V4vW+1EEJ)G-r3v%z7VojId__Ga0g6bS zfd|w@qn#*?PXO&0pf&^OC~~}yK&VZuP|snA77>K@7~L6q>^qazFvkHK$PAA3JPX~N zPU4!vM;#oIMHr$!3%VM1gHIcwFA#<)MGTdNSGvC}{HZpTwl|D5gG`u;IYNp~6F`Ow zMPibhW~}7I{F{uFmMXF2mQS?w(K%vo074;7I)0=g6RWl1gk`7C;xCI+ zhULt5+u4irf&y>_S0~Ur^RQm|hbuOBHgbmmlMaM1b0rKH2MJpD6wvi#_ zrwIllf(2zlG_9fgh!9n-KwVJOv*N2L$I=pez%VDPb_0cH4-kZNM{ov42$n>ua=i(W zQ6c3-qhZ#dId(mr-+&1QAe1A+%eBzw2OGUYvq-_OvZ* z>QC}4QkUQ?PeB@sY?TXky1ug_0e~`3*}MVX-E9oX5c|ePnf{?URH#_j*0MmN_|>o7 zt@iQ)*53PxfZ71Upqz6V2)7iM+^e_MtbuM*4Q=5E7m=VMymBm!pIC_nS2X8b%NE(A zp0f6BD75-z-n`psOj`b$TGM=Cr?HN@aK@G@xQI(JDC}hK{72zaEhg`1+h@}I;_l{M zBCy9PJL#I0DMjyz6UvITDj#$r9;;S7IPE^jEqecqzweiM0oXQ1FtEDXZh-os{wI|B ziLIJc*ih&T!kR+TG|Sh}GQ(Ya!y-U!mxBZa5C@wpWuQpr*a7K-v926du!UN6A$hok zma2oz3vA)GImtRZNjRp%(P2L0U_Rer!Le{*K@JA|u?OK`Gq3!PKn~U(g!zX(2>TMP z`#3Q%2`ek>&!0b;QqI)X)v=l%U0vPp-@i9CHO0p#$jQl3)6inYKhDn19~KuSB&EyC z%QrVSLqb9Y1O%`?AxkUksr?^yJ!4pn(94|c)AI|ysE@pk&81sEoth5BwcT{X{YTc$ z@A$pR!_=E(MPq;H|NYnh5ZYDXY+L?!d(bD2@z0m-&qhCgzd{9~g91E*|0%San3Vj# z3GKGFz5Xk-+tuCk#~w5=IP}{dq#ru|pP}9Vum}B@q1_)vra#Is-o46(8QZ<8md*0L>h?d%FnqrKnjUJq{n|dxioc9u z^<#>B2MtrYb_b1fmVb<4dk4+Sp?rre>nV1Jt=q*FSBJlqVTZ4e-tm2IKb^7r{N}eZ ztmDV|-fv|X{}Be4#{Q@i!c}?HMSOGrs2irlf80Z<$50tXZB=>vj=^gmYYz(JKj~vn zwLj_SE~z~E-O771DDY)VJZ;cQyps_KtD=xo+FOyGR(y{Y;+)*e)KzF^;caQ>G)$bHt~;-mK#)*j@4 zad5GOA`rY>4yJLuTnXo@zFdvId3d=NuO#?&J^5elLAhaq-?j_CKkD28bdbK(Obv&D zuvf20@$dn$_$vf1p%?;$4?1N+?W-eE00;~qFgSS9h;{%MKm>k%i*sKdj|}!)2A7z! zGZ2?p-Wl|TOlSG^X(JIFf!{8Qy_DU&DfDZX-2Y|ZB@%f9gGb(eLked|ZtOcH%o_#J z=Dr<$fYs3mAx_Je0g&|P=P%b@g5lnHc*HfRjBWtT6OM-qL3t4^8l6a{g^(p4xsqKj z6TZsrgc#Sj(lub9webK|=$LD_Umi6?sPnq4CK&9zMAAA2(3@6=G90l`OTtmO++#p0 zAL80zE(*MTgx!Ooahgyle!9*mqdqJJb%_wM&kd(nHcNp80xXgUkgPXAR@f2(?ztK# zChMaikb(mc<>feY7zo6F6eufe8U>)($a^kvZ)eyCT*DyF2jG3g;n?i$HZJQVN?EZj z!I*qI9~UkZ0z$~(QXnuK!afisa+w65cs4*}d0;c(1~wX)B9nPlzDgB`0g=M4z5G^a zNnS`h(rb|GL&Yd7mrC%!jkPmRbqT)z*Fg68spnU$9$5q#Ey#ns zDgVtqK+Mbwmpwzw1yYl*ax-#rmGD6!Wz5bRDMXtKHtpZf2Y{|rCPYjRL6Fii#q>Gp z3|TT@%x?pyVYh`<;sqi7+1gKOY`nSEF_3+_Op8qqMHD{`P{A!&8C!s90aUK+27`*6 zl%5qBmHgvN37M_;%Vd>Gek8fF%b!v^g0K?tgj#bpT7i9_KqK z6#Hz&3N)}<%pX60{<^xtKHtwS&gT~vT3cHM1qIpJIcsZc@7_c3@bEA)GA^$!hlGUq z`v(*h6xiE4u%w=2eSw3+Lk<1yl$2DDj2<5x9*BvFbznN8V`7hvk1Q=M%P~!*Wu;h+ z#_Q3Z^v-%hLc)=Sk?6L{@yUs))#-Qd-*qgErlh3wO!aN=Y~}a0t(_cXzkYT9{{4*1 zOm}y8A%|CGBN*@UY>ud<^!n0I`)lu3W@@_!Yi7Pg)D^~-=g=g4amY)4URP8%)mOIt zb9!sZKmWyT-#4`OJujN3M=q`m+OD(Q%32;5Qb`&U1qsO@53tyvx|lUyX$PxyPn&@P|4G{*V~|3wSZ zuWdM(g9!RtPuOn+e>~7&(?zCPpo+DEluuXa{~j>JSK@x_3A2k$e(MQ2(v=6Bsy^79 zTz&e7pO7zL_@5>WXF1Z)KNCi+*$bIqX{?{nlA`~`-+n?p7FT~J4Z77&6MrTQsU)Zk z5vQpm)=$_>0X$ik5bJ6Byo8-F-rveZM$z0wkUkw@m?G7F3Eklq+2#_)9j?FDT>a*? zm;SgOU~OXUaQ6APlyvl2hPONsfj9_uF}ZVosh7#@RNj&Y4;e~b!cG`j?A7H0rUo>FNxw@txk)9EjIz%u5Yby&UGOa4yUQfYe)K_)S zK{+$0nv>74^00uHpQhUvQ$IFhSv@a+j~ettBc}VdA3*UNTGLWvjSW;nLWNqfURYPE zbWVbt{_wnzN+0X|WZknMl4#<7!s1hze4C=&9K0gVcoB40Y%uEjZn^%!Bvgl8d0@9v zgQCk3u)c@y9C37SwG3%5ckFC!`%cpi8PMugAp3G+ylLP8Ej8M z1IjU)UL;YK8AyW4NHsOndib#qGJG1q*c-)%mjP#vZZ zit9OQCQ!+@k6f7WJ@B5&Z_hQN_%V_1&Gv#zmZ`+<>4?yWD6t=xYg;E8%C%XU0)0hx zqssmF-#kX%h`()j_uE?jO|sWKMHL;Fjj`)LM-F;KBSkar#%eWjwAiTE^fb|Y7Vape zebYaG%goed$-VogND$3nSIbp~p&qm?siO;J$LnhtOJ*Drf7i7RF!HLMiyM_;Y4=amBT9t zZ?P=Q4TM!{R3^^ytc9Bjgmx{lED!*(GMdj)x#_fEvPz(VVS;rRfj#Ds@Npju21B3+(T`E3YcdBjX{YEG{ z@;!qSfm9^KyKnpx8bVB!-}E$O~%}mla7Ku;MFe;q5c{iMbHJ{@Bs=aW^leSKOBV!rr$oj0e1uzy3<#6q$ z$(IK_AHLOHjOx0MAvxr&PqMtO_s3I^JKkR54)z-3T|i~5wCC|n>!?tfymJy*9EY*l z4moI|UHljbu4Q))$BHQ2qPf$fLcv4GjG54mCK>ID_&YJ7Ix zwy>x;7a#*gRbCD4-V@h(`7xTO7~im*(Pa)YpPpD&K+!c9965#?QKNrLAAa#H@|~2e zTZ)YiuKu_!ae{b6PN!kMdGzK>PE|GSo^|un<)&HlC(d~#*8EQuTt;aKJ9UlyI{nD$ zC)WJQ^ZKvvzzfRtOUub##d&j?rwbdtVrp23PGC%u= ze&FC%|q@C%nNqEpVm%KK=FHM_$gJ@Oy2O!##4JV*)zzb`tnIHJ0O_UHpndz_`Zjvqz8xU zQ)F=4yhH4jG$woyu!(k?8d@YwThE>6w{G@&s1}?+26nHjaCI|862pdi60jc<M8gjDF>Es<-Mxu3Mlw;bG`pV$|G?*wprSqmJGfX^j&%9&=r1R*B}m z#rs-c>MgR;=9pf+iFB#D$RbO23YFs6nfF)KB7^w$zB@k;{&n zrXH@_H>L>fnO1(Nr|~Vrc2AzTnNjRWU)0i-H#T_r;g6G>Cr4vM6YPT&#M)%{WJh#n zRbP@yTocu5gN*}~i?`MCAu#ITqanT>)Z&G3poIHX$F?PInHU+V)(vz>^ke<55!@#W zQ457v5>E`+6#A2|PqIF+3m5LN637+ zoF@Ypa-G!Nu6V@{ABM~h*O?N(5fOSSZ!cW&BzsNQHrCcFx#CPG|0(N``Oo*gA74NM zIGxe)2%8EunSGD_55~u<+#<1pg`&4N#5#DFXIyy46#|9YLoVyU1vY1jw7cRuRtm%n zIy+ZnZN1h%c27mt1R~@Hh_zMXf_t7nI8L>{!%I5igl$ZDSYNsK9P&ByOX0Vdix}}? z;^19F)`K^;aU}|6gKkU5GI~LEj4BQ+86U{*mPon^yyGCgE0X!>=`o%4MLj|9K}qMg z{Jp}Xh~)Y>A)>>J7lxlSpL?|5Z>ero;9u*1i+dcx;*uNq{KpdB;Le`^!Y67`a@E28 zb}pAqta-=CUv;(KzQ)P%eI+ZR{{EN1SR& z7*%H$ih6>}O_imfk*dU;P=a-|GY_zUbP7-~2pJOnY(Gp~CeXuY3pwYdFBLQPt??g8Ru6P{8 zrbuJj4J zx5@cwgV2{`2A9tY!)18-NVI4qgePw|&?ZcC@DbVg)VPO^twVcPp2i(9VgCWP7crFd zDYzaJQt?pp?TCDaSafb%J~R`hOpcc@;hPGi<$V`JKdW-0Y_8%R&o>*kQR);x79JyX zceRBGkaZJFM@00p_j^!=lHVoq1Z~U5(Xj`a^gR9< zgp6{{iRk;txRI%8NwKHL$^Kpex40lwy}ILl6lk2(CDDhEyk4+!>fSK83NZAh@GYZL z2)Tt$W#Q81coXVIcp1@{uRnT1)!Z9p93d0$4ds&-8LlED2f>=RD0*i3oh=`= z_^5=t=RkE{%5T&D>PmSHldr$jiM`0#?~j&}5gFTo3&H9932lkX-AM`DPGIpFGOQCS z*F{#dd=uD2-pRda%odoYkm?GGEz5OJzjIeo*Nii@Hv87q}Eu%ha% zh3%?kkj(p4wqQrC&wOHILH0haIL=(IR?Z&8M%K^qjZ zI!iTr+@&`?I2lzXm(rhLatpkK3!1+oEfg}945=6Za*xtrqLy3}AMUR&bQT-@S0Ch% zt-L5`B~&Q$7Xg96tjg;f*(pN7_Fr{5zNQ-07W4ZMikrpw0V&%Eyi`;+CIK$ zKHob7&0udron9#H*F0f+3pjy?JtZL^&A9Y2t?=WX?8o6(Ud`V;sYNPBbfrY6i>ByG z%A6ySTFKqF$c!yaIeFo;-yFowE16_+s|=v}R{5slG>ompyStP%+BNs5*@mWGt%Ymk z^wO$9tHXqtv+7mk&I@HbtLPpCkEvX{7hhTGlPnD_Qz@fYQRUtp4VRsSiX)_1PyHAIrl4@#F*++s_} zrR8J2=OybGHiy@ms-}Z5X;mah4hXM{PH4!@1zWaNq)bW6(PcWAkQ#e|j`O0w6XcM- z50UE)OnVSmSP>T`RMi;SqD$6p??*v9QM(3X6k)57>2H@kHk0SAJ=ODohzRyPqC#cD z;D)&u2+PbPi;sMisGHI^oo!<2xrgikmlbK6ZnbZ=l%;&sxtSyqUjiR?wG3uZ5i~aq z_@Y)+3CW^#9aRZSOd<_@N$vCv5Ix%yVJla%3#;h{ zVv9vG(?M@c>G-`>GvmMjYEvcOV$K;Z7AS+u zi3r*WZ9k;e#-~vHAek$u@h@k*|3M-S))_w0ldv3H2v3bRz84|Un4kdNV|zmdeLNr9 zqiO){p)3T{IorIOS#0?4Z@@87V!?qkgnDuj zebbo_k;f058Hnp$Y~s8sxm)@g#$QBAcW0jWGjt6oC>Gs&=o!X9#9da^OaGqbJ6l!; z<881wW?xt|{{2T|bHgE`Mzj3KzQO_RS9JUq)st*7FKRlJ=Ou->x|`uTeM;~AIiUz? zaR+p7HgdRexmhK3C|r6l9dTQx{wkW3O~_v^}4TQxbOKBs^}?|e((`7Lqw`L9E--s-@r#0 zxp$;j2*UXz)^`2p3<5F&oCP`CgzJqjGxZi>rh+=U;e01RZGNUNn zN@^cT+!8l!Dekd&=R?Jv1Y6pn)+@1)VI30mxW7Qifz*2+c^1B!TP*lKK{2y=xvn3I zXLC9qxidm(4n({5M-}mMT+G2Q$pJkteUbCW2Bs}|A!FET$9sKNeygRr5GNXvj!$el(wx3h|1h0{k_h7ZJRL;+Hw#oME z)wU}GUzR^urwDoFJenE1W`Bi{EB21gLYjQdRm&Yftcg(k$MOo&7{7xPZaZphP>@1 zw2k_(y^2-A4L)|4>ldTWNe+LGt`F-2nxOgnjm#7cq8aC#3Lni`EVzR^Sb_@IW4pIo zkuw^1*1(4!$H?j|_Sx%<23Y+znwF!uw8pG8mmOT+i3vjH_r)YMioh0C)tPc0>tGRb z!`S7G8)y@jiXBp&amk2jwXBsO3}_P+((B%lhk^cUz_3dHE(??ekhoZc0ntU@W2T?vEoa&w{a}!GmYaOV)(yz|N)zIr<^rLTh zHD*K2G^*?vx0INM#L6Z|NO#v_lq9wTDEW`>$1n#}6Klq9WKMn#aonlT#*yVm=5EC^ zYHw;59N(LZG=O-N1RY(HD{P3Y=#XjjxXC&S-;K3uujszDv>V!lqm#dpm9!l*wrrxuAW?I&k+r4vmj8X- zvZ4okjI&UjnK1n$Lr=%qmmneIx2$H*(W7W%^Em;9SN9y4#q7I}XNCoc_Sn<~Rk=Si zzK%J!|MWKKgRYswYSUos*$wqtJ8OJsh+%n5w> z1?K~nGCvb{Zf;DDd@XvlswCKbS{C7D#8cAoExc!8>h=-y7k*jW14WJRdG{|eroTRz zl>dxNt}u4N`r*A5ZH?|&({&*x>ud6bU=8U&>d9XLO7wO*{ zXUOJc93}?@wwS;be{*zH%a`scD0`zyGOs!cKotK5XdiqmSS$aNf zp^O8)`ADwAGt%t)v^yCeNFBs4)*AMbX$naK9y^I$Ib3LtuQ30pig z6Sky--fjO{+7V)Sd)CTRif#L>w8|NeRgjBx=J!rG$Kp?o)GJTZ9j> zYB(}gQ~kXXW+hRvFl2aQFd1d&xnse?seW0+Ui*_v|G8Q0g>HuZv+2#ud~S=T%xR@ zHC=R<7z-7$6Dwmo2|t=zAZ>D%Xuv=XuAEial+_%SSDrvJm*~e)zq?Q*P}j8XW&K(v zQth+x=fcbf%@@_QvX6h-;?KicRoL_!L2SK_T~9wjsk(P%h_EYRoM6k|owCSdqbx^t zR&S;-eh~?y*xxH*90QX9eu91{>`Hj37P}IjtI+5weDr0cIHjDZMd*ZIEJ~!h;b=_x zKGgk&2j@XUsM0-w#(ui{SAXw>H6D2}7LGm%W2~4nPi0iGduZoVJ8$oonAYm>UIX4W z6Av^m>b|OUobrxSz8Fyk1D;j^zjwka=%HfL8}#eMoL1E>Vyi5B8eccY#WE!}vzmEa z*aaIFzHWCr#Io+-(*?HOD1LS58(QD)?H2oLwj(WTfc6+n%ma>2Kj1wHXeC+X@$TEA zr}?YID<^TIzGPPF*67*HFS2v-f&3kl(k=G(f#H~LV_hXWO?n`1*hzJ zOpJF@Xj3tJIo?Xpuqlf1d>;fk7fF;^P27w@dN;XYkQoE5A}o=2}|utPlI z8HvaC)L&&(>?}(uON7cRDABeb4K2Ne&E1_!cHI&KpWKs%-TJ4VQZx8f#*zup-hA z3k&B>EyGogUV|S#eLHW)kW@Q|sV%P3U9|LRRJ*1QE^bO)w2sA8yO*ea+%>#tn;Wk7 zY##i0=zH;cndFuCd$ms|85ix_8n1k32S1&+UA#GpdF8*Qw)Ab`qT_P-)w7GirC;AJ z-U6gGC<1@|&dx+ks3;1ZS!@hs6~;m|odHhu6+)#nH)?EG59d)Jp}a9ZgR@MCfd5KI z2m+r2CQrza3*Z?e03l5T0h7=wkUVG4gu+Bo2?gS*^SQ%}foMJynrunmUX(i!xDqiA z1kFi?Nj<3}i1uHvv_bSyjPG@}I*){Kg-Tc;#3<@e3 z;`y(vSdhA}CO-^F|H40p6JFHGYl+Dvbg{Ab{x%uKCxZ_sxy8khhc6Cb$Z~-o!W)=z z?{^{ROv_sOT;=12jvnkeNE~)b6iiuC_8R99fLAF+Wh@HR#@yk-=`$Q3aKx=AI@*_0 zrw3s?>)JSe)?-{uM;1F0am7d+!I($X!-5wq#mnpX;qbY)l1J=d_!S7>-Wbg4d4wwg zpzv@pc-P})@Hn4s5h@$4GCO0-c`!#f_C8%Q)ScN>8aT0Px#Vz~o*u?%&d4Nx@NrWV zgd8|jlkA*NK*?T<*C1l55#c`^=>;>?07Uk19Eo2DFcJeM7Q2Oud`9EbIDlpVsMz7o{IJdxCCzY{5i>y5BDx@YHyi@{3am6Ap9NIes?2={h>bxT zQSBSU1dd(ck~i9k_8`(rEY=|86*lGvARJ?0{`jf5lE(f)DF5_a{~<0^C}1)u%w6h8XP@whZK(Sd5pcO79afM|y&$N!Kk+4Mkc)R@OMWF3@@UqZ&O30UB;ezg@rIJy z^`nqr48ZIRT&r>BF9j8ZS!vyb(8I5AG+1mbl^n>B0f`sR3GajMDpMQ0ch$%P8JR-} zoN?ESos^Uz2n?=xE}#a%jh+k7K!75fiExhqk}=SIPXL;0A-3!*mH++bvVN&tA5rVeZs5ke~R9KH*g25a$$Uw;)MK2n4u;z*U9g z(IRo>Yog_aAcLiZ50=An*9c9TEw%N0t}O%P%Qj-U0d9)UV(&ww<|tX>qj8l&AI?RR zF1xTIL7otF!m>HTvO5SB!H@E#&ovf}kHANUyiTKfqwjQ{B8MLjQ-FteS_k8W>xRz6=g2kZ?;3t^6M6t0f8=fukxEPZ6I4-XTn)C9Z4=R8TT$G>xB$hRSvdhW0E0w74mg99nD^xb?wBtAW?CS8aV0G89w&s~CG;8R80;(5WC^H3kofP9s- zs+|mFuB#VJ)(%DUB<((#0QZh&S?1kLF6N4$Ts01uGh4O{`|7 zQ)g-Gy1ml1N+~AYFU}S)^%Di0FBBmfc>v)GkWuU<=$(G!R`%+VZGA}&S)xtbt&nGF zFD9+5&Lne6@t<*^LYvY_e>R8yy2ToH9%=8HMQ}rtGwO#%^XWkEN3B-Wa@| z$r0yrtfE%VTm z>ed{vMDsRb6?`kvCP%hSu+~-v#H+~3_XZ2xoQ^kik^r+==7lz?+7p;V1T8Juq>0Lq@<;#m9Vgglamuy+9|dQ_3ZrjVGG-gilv&Vsi{9LFU`!(GQ(NI z!o%NU-X=OW>)5Vyd%~ znoCOFH(In@a@#j}<_vgNERLRC=|%hhFWI609$mH*cX|7Npvxob|AHV{s&le`1$DfF?DV8?62a}e+G-<`hSB(a_0O@e~ziWQM7-+ zqJKe`e;1#g%r*aO-_YOaa%~wzwSl`nTrr8)V#fsAH)PX}$W}emn=IF_B~=I#`%iTF z@8Z*$?U1H_pvxvVK4bfawweAymwy!Ut#n%*&?*kmu1)JZ(PN8G|Deky4#PvOZfO)b zzl%>7QkP;g)heE_dNl5poUyfG4ef!*{KjQs|=l_W=JCLMZ$IlbMdew+^ zA<8IoW$TsD#M1XyD|$ZyxLJKjW35>!ma<#4!+D#wvFLJfr)jj<>i9ymcwLam-{^8I z#fMn;725R#pN3F&AtuY2^~Ar>WyceCGI`w{^+-e8bc;g;W$s}p7F}l22@Ih3R&#js7rK0{$q9=t6H^!C zQ*b%`jV?F0*kI9R|2@oK=j7X`aIF0TJ5M$Bh z(N4F&&}H?T2Uv8u`O@vbM3>D|9sb`%ms1_T{af+re#5Ne)%Syzt?KWG{-~kvpD_eC zejN4CEQt=i-PBjH6&~^*pFvUl(=TQHW4<-k)RY!cnN?P#&pQUpLdYqc8+GN8z#KoU3xrvL8f@fHEzwjcVDb;6eaUdlnc6*ZBs3>lRf%g%K_> z?tAR%LKbDjj!Sc-W_Fi?2p@*P!u}8&sUt90870oggGY=4a2ogX@fZ*zcD$=NpUiVX z{6Zt#l({(E&VhFckHE0G32f1*#hqc;=!3}PKt}i`A{zix#$(s$9Gx&@cpy-7f>Xf0 zMeE2D$f^ziBXwX!#s+?F_8il}D{}v2uK@=%-%RppdNMd5o8e`gh^|-Nd zUUeV`+QJ4#w4q4#J(C{eb~3$`LftYw2m9W^;8nMR@Xay6<9!sKR81f;_hgE5EefI3#!wA*^Fgn z;!v9J?ov0vvH2CX+qh6~@j4BMt8$US(s@1II#8np7qD-rGIAnLs432aPb?H{wW|wZ zlEf(Kd8xu^>j7;$+50RR!Q>499#}|*5RNc`I0tqKgm;pQybgxyU@&5D$`qKFHSwJh z5C&sJK!ow9W|4;tGYn`jk`IKh1C$Bt%HqPD6)W&_8yK*r6%(Qfu@g@ZNN$Pndq@bL z=mmr#G!URfnn0iG<6i%Cgd3k3OyYf=P>u0eoCf}M(Gd!rG;9B;f^0ZmvPK3`km?uLB0U;IP;GCW4|O@n#%c zIMIYC^%9@ta0YPjRj9ujCG#AJsdW8O{GblL^hGOh#ASaImVQ0x^xX@wT9+F~%9<62 z!0OO3MKaMG#`G2riE{%aMF7obr8l9$jq!{ad#9N+mttPMO)z6HD-CrA@~F|4pTBQ@ zJ^cEL_4Q#d1Vq7IR9yziNI!kS>u-(u|$H^{S=9&vx=cm+QYqW`+KZ@(q_!O&HVsG+!^szQ9}$IQLg zZ6DPkM-^c|u248gc=O|SR33@Ie#R2Rdlf*&9F%L#3QVuzT>8wn!rj@X9v4yt>?zCG z>cl=VE``Tz#e<##7n<#Ft*t7+A(L;FBEVY9zMt5 zqO@^UigNuKF&%}(bEq!>`|p$4l$L)rNSunybpaO78ZaX z#&nZ~a#`twI_!;((sOy+WOHNpWRM4~+QJJ{4|hYGU;q*iWO^#!Ee?Nx?XxRVqOOT} zase=6{FVN>85Fy12Oi=a{UeG10)eoTy12LmLPqxc_aCkO^||>4Z#uh}Uz}lQcXDzH zY%GC^iJ6m=>$>}RZC&lq@Nh~?(bmpRWlwEEbAg_oUenmyshP>s?J#5Uz}a+FMQV&6&2O>?pmQCx*Iziz4V;t|5c7|09Z^oWzTbB47^; zNP;)v*eJq7qw(tBQG}%M-%*60R6XzJ>a8cs9}jw3jy5@8tx=0VvMyhI?QJ#!qh!T~ z9f>Y7zJW}~am^_Kz9&X};iVl>9U?jEKA&Q{%M>B94_fQ3B0TR!F=aaw zu*A&NnC%t#DJ!x}*17GGrhpzM$cK0lF?T>k%CA!s+bEi6wtU$dO{DK4#)chTrm!c5 zoU#j^&c*JiW@>+I*fCnti~02RXIEf;eDLLsQfaQq36Ny*=-YecV-fpX*u|D7_!G}7 z4ma6A;>}=?KUji$#hQ9KG|G&OGkH0fA+(@Nu=uB^G6e9nUPWEYDa{W)=Q;TlDHMBQ zinXCrW3!GYb=U&~_>4tD^qjj;A<=^sO%$Fiw0@O%|7WSPTSCu8Ul0{;|N0AK4rf)o zZw3(?sUx=t|AZYm<+Q*^b5^26@J70Gpvpq) z-O3bue~FZkR_`5B2x!&LP|t+;th8#q24h9|%j?3`KBR zazyqHkS*loht2D|Qzj^|G1xId%RYgT_8=79VogyNIyk1L0UwccpQ@_@(+$M4}t- z#GwE!_q?)F4Jxame;Q9($e&oPk+A%@j+}c$e$=!REj~dzkclp98tCCmHFXUdxD zKDu3{zxFsH!+}MgFTazOb6f3fz8x4g8jR6FE#fPEi4O0(N5^{;U`8V{dG74X@-D=v zzH{Qid%XvNyi~T6F{z@?KNh}LFCn(PV%@|ym+P%ju<88>$^L=9l)ryH_{YICD52Z? z)<(^~z^nJS^`gToIqDq!ZWzw;O0mM%pDAM=817;H_cU=kqa63pD}m=_hS17)O3bRx zmLbF8eX+nb&k5|csvjqmvj%( zuAY^<=TPJTXG#cLT$bk%z^Bzq@ZDc$`+<1T%R+Qs47Lxu?32?naBueI{EF!EO5&dX zNm_fGG(*VS}#gO-8pJEe@27Gy8< zrkR#oWr?&J&>0xQ%|c$%S1tG8IC4?n*a4Ay6Vh*d?=cY!%9zl`l1~(6oz;WimIisi zGDhaU!oq=0V(Mlz@F(*aJVW_6=*a?LOkR!$+@4!gv7 zjcR=v@ghYYGhKA%bE7$U&CL;)ItTIvZDw|8Z@5>JHj`vLY^%ro{yj$xQA733J6xuH zuf0VnHhY4F2n@?S`E{uA9!7lW>yA(pq2##dGRTq}K6ZF|oUYwgdKz7?=8!WPLde01 zPG%qSk8B_lW`~F*)!k?N2`{4j0&hTloye*#a00)9+Ll{GF7L?ZsHn!`^6$!fp6ifF zzrZIM$7wUZBTim+j4@F5xhPy}w?s0+Y+!ePlVgWtnQl&ASVV zx#;|41B(IOlC2gTW2e;Oql}O1zVx2(X>!lUTv|0vS(}aEsvu(y6SH1I`cFG1?$b6D zJX-QNjKrFJusy+VU(+eS9zI27Z&~^r&-bIdLlRL-#vUg@rSGUSk}*8p_ITpr8oh;; z9s*9hE@Rdsb@I=@O{%Mj1kRJcpl)P4@RWKT8HUCS+H_x6T;dKV+n?sRG4TJec9(Hc z$KAT{{}aH>P(wEi-QDTXAs{J@1JWRZAdL>)NOyNAoe~a6cL_)+C84N*pki_G-uK@7 z-sd^>oX>d=FL<-&$E@r6u6mIme(QV#S7e-|urS7b0AD*xMt3tZR)#MN_*&NWE-Fjj zQhmBX*O%rhlk_3~T?=zc{L4O%qK1ONO;jqJjmKE83O%{td{Kt9}Ra_Ier#+Ss_+Wm>!gO|oed!-I z3u^s%i)cDuVOoZLa%)dS!hr_mZT6Qs@;P3$^H)y`A>9irS=4G3^)1#m1>NGUBic=Y z-SO_iw6~r`5yEDxo9{^vi+&XQD&R-l&t+V(pw%pSr{Ol?n9;#Vf8Vl=QD6Mh2*-x$ zqYwOCn`x_|HET8+2@|Wt#y^Ox$Y1NjAL37PQfWG=SoBwqW`b>8qpM?@Fr|%^}q}FW&I!BodbBy;^ox{3$kYzh*S_ zTNUP!Gc%tiVb!P^t||1jS7@gbRYZ&+wrvU$8Vaa}G&e zC$V-6ZRLruFDtn3Zb+^#{Jth^ahd8(7TM=_SA@n=FitI!F+-Ox2b5vi;cu~gy9Xpq z&dh8wTsmniHFxhNECjC2iD<5(3dBP0L7W2Fe9Do=y(s}sT*N?{DWevQ?<-@^T@4*7 z9X57O6m8@__WIOggwP?+<7JY2Y%)V%33*ZiWyB*~${kvoxSp3uNUmaux_n+4MtjKw z7Jt*_K8YN`J>H~Y=XME8l7T6Rs7ZJQgo|KljG~5K+2m?*Ju;6s;dtDzh5hIiTO-4h zw@f^{^QduE7~T@Of-$^5#`;=0E@^=u8I#a2azji4Y&}LiXr6!pqe5sLB)#HWfW*`j za8XTS#^8fu9_P)AL~fKzVu0E580{#}6$0L+6n!F4wJqWI(g=aaD^wCTZ=9^Qo6vE> z&iqYi=HcyjQI)5w1|*%1>Uh|fXr?rBB?CO8jb*~)J&tq==|sb%ZF3?{EXSX(?8c|4 zBo5ez>VPz)>xm0&mp0W}RB8*u%O_=(U9Rj@nY2(6f0Hd%PeaV^P)y=`tP;Dp{DRdE zN1Ce%2a79guabT+BeHxj{rC0QJLFaj;9hXa=r$1feW-eU6lnsTps#J}*&#f`$<@kf z+ao68A)Q`|j@*JO#VBW(1+oVZaPEeO6ha<-&dzYocrf=JadRc2IV+2=jAM@0lnp;s zY8=6t@}T+ElZ)!?>?pSpY*sAq6-%O#m}H7uVL*h$5kl|~M)Eqxdxvv;+q+6Ubtx_L z(V%>uEN?Mh-u&&jIow?+dFB(ZoCz5$MgV;S$}%P6sli)NPKNa<#aH-@5H zA;8??jjL_}NS;QZtXVoTZPEPJNv)iHfEHVgQZ5|hHSVsTQ9NsAA~T#5eyLZxl{W=W zCznurq<$+UH5?Wnr=xmR)oj^%0&GwCb{72?gBLEZo>`Jog-4NV1b-;}fy6`%+>OS$TP+XhmO* z&=&Bp%$whmd@GaJ5l}T~TvWC~dUL#b!;sUGhv+SD&3Q}0*N7VFovP2{HR%tEquuiK z^Mv$wYKE{CDSV28CBFG2U%4rS$+QH6BYR=O92&x-)?xVR}{iL$d=!} zbh#^f9#k^QQCsnzQJ;cC($c2!Ykg&SeWY>5$a{Xm2St->Rebb>=jMcsKc4o?m+#OK zNu@_D=OMJ-H_Zz>(Po-$rK9ft{o*-C7?~*R;d5hRj#6vkv@!(dO{8qW1R_6M0g`cfx zhBlQ1Vo~`vu9r<8UE6ee+T6(+-lf5q|DkCC5uNq9d`R$%NM$BnKN zktmGk^^O-Ls-hV-2`uMvj zZcg@YO!ohp#4%0{DohQ9&^)%D$}OevPn^;onks7+)I6SAP?%n_o?Z@_UM-kj>z&@% zn11u?YI=)tW=COW0aCbkJakYn^S*cHcw^?%ubC6Z*)xUNbL-i!A+z5LW`Fd~{@R%R z^J^Ahngc7&L2c&nL+4hN}GA=(0SUzdHTM2#?5)=-}5M@ z1vbS64x0t8&;^Av5Z^tRzXXow_ku`L4M=2B!e$YKTqF+zlOZ9zULa;K5HAu!cD)f% zT$JfU@*p9^C?I?bfSxQ}FGh@h0~}3Y_0T2!R1gj76(bJ3uNx$b16d1#q>^4i=0RW_ zAc_V_>q!aV0B{PJ&t}o-BPluZl_&;)hyba>EAd_s*Jqr*HY-1_FJaFCw>Phr&DF1e z6cUbJj7%aGK(3_Nz0t9-L!t^;!&@#I6B)Szt&=1Ve~ zR%Z3yq~btCTkAD~Z;RPBuEDbRf-s2wmiEcgo8Oy-Cm>49Fr!B+B><5|FA5p}c<7)Y zCV=B)3D)$Q_hd;L^`_4dU`D6?nFikyT#?uWG0(uH^uS6VuR!$uVDTAHS?D5f3iw9> zs7h~>N_>OBa|p%MV3FdyY_K~#XP&kqiH2=)lQb_BdY;z_$7hL%a^Y8hur zWVV1pCV+qIowMf>^yEN8@WW#z0mVL8z8)k$?aWM1Qgv zK3zhZ4B#Po`bt5(bFVi1w!8Ef`3->LA~2oEqBQ!`b<9taY4Ck7_(sEOOg(6_0j8;c zdr|3>@(Fx7`Qu^PURVD@3~qbt&)?9}*$fDj0+=f;%FF>QI55fFD{tF%=@Y=zRt|Lw zEPDbdC`mnaIII7&rTlA)H2EzE1==76L`vQV7` zl4Tu{Qvm(Z<^`Na*m$&@ zAqfi5k>@rscAHk{-Mv0Qj^zp{69NfEfwdkl<|!Ti{{2Cs3wWD%s9FR|B!Ot-F3P-) zE}6C;CLcus2NKLc=*-8$weKI80l_Wc$>t9e*Ci$|kir;nnshEMd!q7|ta2$_DCW4BbQaU_T7+Xy?a?Jr0#(FrE25yw!q9Rrs9q5aA2;G44mi(l_Yniq z!upJJn}q0Bpp-xOcYyw6z}52;2l|f#F@zCU;{E3J0m~360Fwr;?HB+8ihvWzfcQye zLA=ly7zrg0Ac!CRZ&ifyivO`4(~O4~0g8)`E!U7kjut6tf@m_XVg|YhDN7d{A)?H) z%%pfEf-(Hi9cGp|`VA=KVj6%)%v(Uhk^Jcs9QW}PO*!tjG%+KyFHdL5n+Ux)=HvC@ z{|=9-`iZBv6r%#-5mCn9qK!;LMxw&!vAcksuwyBDpms6dJWgyo9m#533WFCBTb67W zl|uPXoCB4#6)!+@p#_$SEswBJAf9} zy0t*7_9>=O^NRGExR70qk@R+X^-rG8yGZ~l@S8X|?D%z?Jh2Z+r?kudXzO*xqp#=N z5;;^YM;Fn8{Q@Zu)Elc$RzGU}?@|J4fsUuv9T@CkV3DtL9XdMlhr>Tt_X zq)nqp^LL>%Oac6-Wj&JA?{NFCPG`?A6WjTgd%utX2_l11&)cAtNy{$jXo4{svgve;4yTVfK!!LxBMgHAxBHp z$aXm?uC%$7$puc?EpMEX`f%JzUWv@T2?ygUB_g{Jstt2~e|fs9v$>uMxKJ|& z$+tAS*LAJa-EReLp|JoSk4`@52|XK#;7a?)r`~IwuBq;qrHUsJ`1522N?AkfWPsAl zqq&$2V03`cRLm(O0xe?ahX3kx#e%+D$q)g^lJYI?zY!08a_zr5oq#3kKl!Ujpd3(u z^!^c{Ay>_}LEt!~@Ra8`@q-8HJFRyJ&PEM}dX6C{oqSt$%f`WqAuU`j;gxK5L z*VNW^b$47`T%@F=?CkFL;|3@^r`+8=Sh6mfTUux57f()3>finHYJLCV!-vtaQC}Y) z{(Eg?NHWHNC6S~zXIEFZqdGJCwq`D_Tnc9M+w=dgmp%XUbl6RY|8F|%lC5$5Ut!Dt zT{`T4GCKapu;u@No%+Au^<1-4|GMibyvBI`30qDST$h-p^JV@4TXM@^Wh(ufJ0(?e zoesNR_VCJ8{8xAC8n$#XcoENZv*WKjWf-kDxm+LdAL+23fG_ViC(WkU`u}Bg{G-LR zJDS4&@98j>KiBE7)`QuSzv-}ljE;6s{eOWiJ3hYp3tLY2bpC^#`VZLhPCpI!%fVdv z`b)vTu;uDMC&%Z1ro#fAmS(Tnss9yhDV1saZ?NUx$?-3+C9PAbc;^zC0blAVZmVZl3{|{hGk4iS7 z>&Y?qXWrxg5VovWhn@W|VM{;V$&-JFEj><$X`P>zyrln6*wV_><^LSERGsu*__uV} z{|vVLf0_$wiE)_AuV$N7$-zS@KGQLpFRk$ z2}3S*-Q@`If^umoLkkIdNA+ey5xU`ca%vCnFM#)j)24AS%J~wv@&g95Tbiwisbj z06-wKdq!O%9|TthS z8=ypq7y$it-w~qQ!mcReqHj8=fHyQF71kO-V-PGw>%$ox1SmE~EgUXU5=L5rh4RwY z;!hbYaG`zRR}^05q+};!uzn#h84L?KbDfRk`uqeq#3Cs%2CN*7S(E?>k`fpOIWa0D z#__T}%#$>7khKC;V7_;3J{_k&pB7fZJQi+XYOYyjo8Epi z>IwsXzoLfUM3ehS(9M821+-Cj_E0{w4suD~OMVB$sAz_7p;fUANvG@#@JBJVP96)?d7Ytg}Q|1|Q7S#zJ}8-Bk=*$X4vM76X~rhkN+lz{tHQeXsFmz@(c6>hX>2;5`PS^b_g zVaBWS(S9cOzBn|etq8V#zp#y>4(chk?zvcw?r7)!=*qo4{?_wrt2HGOLjV;`B zy3yhHZchT9>koppQaqI~51mamG0xJ1P_E#zp>KMJ5|FA)J{0&K}=p8UYfu`tG7AXk`=x2he zl8!u-x1FJa=N^>A-aB_RdBd?pe=JX-Z>8eNT18KyBxXqLh~W zllO~j8!LMU^VJ>M!Ie*D7YARz9iCbr`Stx>dVS{5%HYDvbZlXGes9J6);uXG>G{Rk z>%IA*g}&0d*n`8ppsbLgp}PKwt~aZl86Cy@TSGH*4O>SWtMhI9pEoB)3kUi$fBpJ( zcCp{m(&CjD5nrC%*qZ9#;Bbwx7d_2kWMUZ^9qQ}vFK;dH9qwqGYMYuJFDoyLj*doU zoaPpl2nYz?Px8{x)a;z=%Pb2`$bMjCVs_23%E`%JC#2d(hTfi^>ZMHjKmQzBH%aR= zTetu7|N04g{fqzW?<&MHcl;M-eb{hh{GZJF^=owI=F-aQ>$Ua2 zmHIx0t=)gVMxz`*{Ijd@7eW17ssG<3kNQf-{^d2g_kxt`Z&$&nDEnW!3ffX*f4d6B zta>0Ooi-OkyuXi8#5{1FJo*QM`d*h#?dg9g>-v`AkRugH(NLYu2Qp2zR?rn$4id^L zxZV>0Vy5Ld-;OKnJVP++c3m^;9M!15oq8^gX?vL>-Q0@yi5zk1+o!76uhDQilpDeI zYqXXns|FSMq3y$pj(Q4KugA|wJjNip42&AYTgOFkFWox~JJ}t(DVF0^GnBA5S8f#o z#*8HL-LG_i+h8zALH3Fp6X41N`S#_o*-*HRZHaUrh=f@VsHS*0>uVOK6!*WlGI~md z9HP0Ra@mr<4QpWr1kPWngrH6Qw<0OQ=~UdyAzSGC<=O!+#9)x8gVrjymSa-TFwB2Q{mGvvGj~BPYuWvm|!-!~{ zG!t!ZI(09T)N6@o!6|U4m#A7^F*HoFZqb3;vcr`wq?$u!n38m1F6@aKANZw+oC{ZW zKGtc$^7>Y>7%nFK95YwU5lDCF%-$95!Y6B@Ifze%Qegx%p%X*plq%8Cthj;_xL;%l z_gI_*V$hKt`x+9a^DE4)o>L4biw%Hl!Er@#`GKJm=EIbpFK22818}k~$9y=(jU|q5ceb)>~I)f!Jt5ENGDb6=#pnX?| zCao%7{G+oF5v+2fKxsrbGCAkaLybhuKaS15k!&q8vdrGE%8u9mu~)Bh@J@AiG;wNx zl$sTOG&)Sg!Z?E$j7H9xgAkF6cL|>sHw)y<#0#c~$q&y%$AWf>b>>+tN;sLpj+j%QEZIRdFNEeK2 z)3*MUrmMiSeV`RImM-N(-F>xVub0jVmPo}q=E>x(s>SfJfNP(cg%&H)4fUIx#)^j+ zqlvvS@diO~=$*|{BL7$|{iR{(g{X%6?TI+rdlxqpLb;>GCUR*WY2(q9fVitL#O9Xv zs+kmbDjL4r9M1w11QwbEVB6VQr{`)j%)`iUz?U&1h-4SVW5iXtkXa@gPtoRp%On6N zOl(h3lsWX!fxtM$cE>w+*al&VH6{~8JE&^ibeCuXp^hV=>X>9g-|+~8AL2n3*2CQF z^Ak%GUk$q=Zndt}#nH8m#XDKO)8O{TO3ZYSx0C|-V)b_rzqVA%@K{?S(^y!(W2Crv z1UrJf!sNG4$WZ3kE8)jMZxA2Gks}m>JT9FOA{hdw(L>=EeoZDWk6hFoL3C>&DOBA^ z5d6D)n&U$P%{%W#QXV;0M?GHQXKkVE|9HNeP^Qs#Yf1|nEsjT}mcUC-C)&C!s21QK zPRUT$2ikEOp*9hz!YD;yc$}rtGJI^7rm~uvAa&dLBL@JllR6J+}fsmk8UJ ztsWKAq>0#UDqT4OKpH1Inow*d<{2v@@qAj9N5ZGK#oB`@DUxG zf0q4%IRE?{!;p+2O-k_bSpK)n7%!=lWZF?UaMBtXh z_wL^5_u48M(zt)j_f3LF-KAn6%fN%`$I)IUt}j^t>P=I^07V&1hUc7oF(Cx;ZM8$7 z&dLGAWV321n5o8)XIwg6AEb=G7p?T)uL}DX9}ziGXBn%=z8Z(Z?r zAEV^-yHfZtyJN|AJP2~3YmzV|-M%l*NHU~qFaCa~d0%545NNz{PcB?PW)*7^ z5q4kG<8@<_XSzT8NZ7ODPvB)y!Md=(8yF_qccy*OF!>Y7dI#uRGf?aNL%RnUcSjCD zhJ(>K6bfj3A8|{N@Gc)^cCzDZ9ekui021A?p+6BPbFd~sLKm?>CO$jP!KgnvgdqG1 zlI|=eZOo{kb&q-9p;h&soFh~tMdHtJC^-%@%x%m#7`C(HkuCP<8zn!9&n=?X$INOp zGRr6*lZaDM-;I5#OZ*3&6}ODY%w<-ITBJa4H5D+sc2B;9OjpA;7X*2m^tHz#1lZ|> zy_ghAg7ew@OZ?HP3n9*xDs+^l&oz82A|bUI>gglCJS||mEccN)%LZ=v`_UPnP z$ZDs>>NiN338R*{-%n22;8N_SJyXg>v~##TrU}G=RG(G>-=(kvXB$>z2Re|;*pVwA zXDUV+=s$RP{f6dnSP5zk3vQ)}V9_KoB#1|g#{2@i7=-f)qp>-f?o-irvNTtbBq@Q5 zSur;uE-cFiw@t95TN2&IJO??D=`*%DpXmDo{=TQmFC0L8m1gnTr0+BdiJg*?<^x|C z22Fj{5TS{|L`tu&#z&Vy&+vjeY7+2r+=Od{Yw*GKgTgbZDHy>2#$kf6SfUjV{C1Y^ zb&7KOLW_9?aXuf1pG$K{t`tVCyR%^K4U>9RZC>93sn75U{2qG#T?H~{mv#1dFI}v))?ry;bZGuub1IB(nTUxyy8+z5lLq0jH2x9Uhy;1 ze*52(qRT`nFPSxt7+BPUwg{d)*WyX-6mH)2)06-{U1X4tfo4J3b2(RNWgJ*3MT9Ke z-5TyaGYn%oNpo5adMd&n-AQcK9p_O?Z3f(%cgk@I7xpoCP^OA;C=csv(Ih4$HDtb~tL4!Cx)hDHpqQ0o{zXsyN`7TFI_9PDq!Ql3Fyt zy9mAF3d`jvCYDW*zer~YPZy1HUpI~7!Z81;G5dJN?|WhGzjB4LSR$5yljp%1sQlTt zlrvt)+?#POV$m+G@K2pG3k~TuA*pdwYB9O7diT~KoxW2(TTob>7>$SsZ~35mT6^Sz z2_WTWe%h>!2C`xf=*eRcK~hxAt6Y$-{7?QchX~PgwT$U(?YA22Wp-&Ii&iIxwzJNa zJ~5Sj&C;Kof&^XUkq4ZjY|!*H)Y~)9H+uyw->l{7iMvu&%i|=)cl1AZhIp^qm3~t> z=Zd*-41B{AFN>`mPjdGzYJHcu&Mm-26mE9_q0BGoTe&fprdNSer+M#qq*zSTd}PvA++ z5@M4YpaTc2nm%4lLdm*xE(+M90+}xxtfR$KVjIIWtAq^HwkrV9ytHB&;+E5LcEg9+ z9JC=)tY#@SedbIz;^Oh}gzRG?brIN(4*uFKiKPSEtF*Q#EuJp}3L&kPT3C$`NlvaR zZ8(kRlUg-qq$gj`6Jx3-3_qccdeJLU|5Hx+<*hrRYY(^HhyLXBtJX|NF>SglS%!Yi z?4kypC zbFsFT59B}eLExE#t9>UR(OeUI5rIP~XEkBu8Wf}1MA$9$jO&+%qC zgita8)38aO!)pK~Ikb&kOB6j$kBRG0&>BD=84zAqD{#;X2b#ip?k_?Y(*=8kprx-Q6;_2^fB{%)~G;7rA#DvG7jk#m>dlHT>eRk6L6n`03cUj{`pYWR& z+J)-~?&}GDF~!F83?nD?yQ=Qoyn0{_mhulOHk(RZl=4qxA92VIBwC|GUUqoCyG=Fc zm$C{D8bwKQMG&#s<*!P&jo$WavHqfD%+-b$M!>r<}NYU_;Z|UOrk96IBqs*a>AYWGS$i2SMr9RGwHsKzqhmI( zlD$pl0?z=gJbLa0`MD31cA$UB-+9!!n;)x#vG8DmB^6P2%7pqnH*61*IX@lBu?^9*mDybYgv$tRBqT{HU%)$mW+6VzEy#S>a zCZgLX6Y>su)u_~`yznQX6yf`#TXdaYYX=<|-QL0J=Dx^7uaVKUyhK_Y_ z!+!9^UG&!42`;wG0Soj*v0}9>1~XS7h2dnOgJ+rpH(z>Q(HxXE_+tS#QF-%x`VB6H_3k*4;@;ibIU2$TqDRs2S3DGy@#H28L3?zY z2Ib?jPuHxsmX)TADJHMt3kHCiPCY|G=(gESxw6_3?p4M)@TW6qzxWQd5U)3axHdqu zJs(z>2hYx@S!Jzs*x{_mmf#O*gT~6~f9>}+2T6&S!3f7kpU#&(oqu@l*esnp^}C)h zY8q!Wr-IqgY(O|A5ZA`?=-atDG9jV_Zko;u3Qy5|Vq-4;=pgaQl#$j4O)DUQvS=|B zXIP(qMMxK`Xh}9&!fg>Ne-N^HB|7w3+WI>YMUT5=0GYU^i zaC=bfgUR_^lJ*t6EF!w2?!D1AqaqtFwUP(-jl9E?i7oV5k<(+odSQ}@*924X&&;Wl zu#WK}jZgZAlrdlo6qMLjpE;0oIsRU)ISYsWe4bD|8lXoW^bu8khvXM;*dG~TefIqw zPA%01f?we=o@$+r)$jfoD`1*wo`H6hIA2-$1dFveZ3h497GXi!Jy3o72YYgKa&Wu+ z`dA$G`jF>RG7pce7Uv!R<*%+J_o?c&+MYP>zI&HCk=~YI{U%aLnZ%umJ_RDeqC05g z^l`8Kh8ZB$dlux4JYZnxQ#XBv2`_9}HNzW9-mm*I5FV8>bE1Z+B5=EHcr5ycA@0led~I-v*(zpL*|U=3ZO>peuNd(8-{c|dck9+@Ip*)fTm$$+6Qwh3gYYT zvS=e~`L-W5ydT;_bh<}SrYGffS>9_gkYT2+Zz22$O~1?cw8%GpgTnSiU+qmeFSgpi zC&sgne)$$ms$b`0IzWHO!fD&`DwEj#qr z`r_-unD=8<$aG@aq7cDwm7R~9CDx>VVJL83n>)vnc7gjwLpqMJOF4w*~woKOmo+rw=94o4-}oCRS-3d!LI`_Gh%J zZz*02JoC*3I_loX@5Zu(V`c_N;ZZ1xg2yyb6p>!6GILWzC=c8WAe1_?3?bW(Vc@2= z<)MOt91pj7ZVbT&s6gW>z~z*O1PiSWpZ~p^@BTktY_I zwx3V;#>pU&l=I8Vlbvo@x$N7qg(*vdSdLxxA)IRs+lJIBzE*Vuco)5FSpFQ&qt#fy^4y(B@L9WTm|1nLxx1X__g;*hi_|cOP+ccb;H{CRoLd4TU8~ zs9|D54LobJh&F3*!(NUyPykML(lYsM>5t<^P0ipU7T^B%35%o|m|D3thr_Ex<)AN$ z+q}rgSecO5m$t|uwco_F{YDtsklpvMle3)<=GnRU!_Nt*1{%*Vi*p)z0_YRP>ZCVH z7M%7zKMS*ftI9#eEIp~D*o-#y>F#^Y;8{*MCXbi6p{CXI-aOz_$Z1;pgkte<?6o-8zRUF|wEDmo z>M|lbr<>8#i7b05ENr&m%ArML7#R^(={07zuU<9{lgj0J=#&7n7*Jf3dbMk6!mR`) zRLixg-pdF!@93it)cDTf4H1VC@sxj^q`}k}fEI0G9fWNn0$53aem=(R-F-g#Gp$*Y zbmHkBoGG^KMt)lWssDT-g%!|slFb%-i<}sD(si;VK6gj;T=gCp^Ub(?{?EB}N$AmU zpIu_EP-)jAcU@UIu>(y%Cj zLN$Sh1Eqs_y(u@|5+6y4qp&QmYnY1BJ2$4xSwAz!Ngw2L2)_@`dIIZ)Q7TkYGGmiD zqA}swA`7a&-7zjrMt#P&A#Scu6I4sst60jQqF2g`(>PR`{*g$QM-k=HV^`tZaw^WfAq04Rsr|T&=-PI}Y_9~`vXVxg; z(T;t?=Pdu4*qOd_s*ku5Dpz5mRR@W7#D_Q!pPL`U9OM#gV-SZ9YQKD=#I^$U?IqyO zKLv1$`JvUwBla*Fo3&hi-*Aq)7Ls@uEfXEJN&lhd631mq+4!~=^t{Csjc&S-HRb`+ zv(hEq{JcVV6_?v5M9E`R0L_C!j{6W7CZRb0{&wH=+YWfdnn}*odYKJ8Luha$@-xGsH2TUU}b#=JewejfN=uNsxBj~?EWW9Cq?A|9mEAp+T&c1LM+EL1}C?Onv%cIlfOT!H_l&yf7O8pcdR@w$L=`vgjJRj zNv9{3q}y&;A-?Iw)Q*oG1gG8Ri&PhSP{m6M$3KE0YlaEgcN-lBZ_}nC;dsJ>p7K8~ z%@L?q_lu~USg9>;MJq`JzM8gm>aQTtA<`IBj~l@HTBhH4Cj0`XH>@Z^cz5JI1-UE5 zU??$L)+0|eepTVhrz;{IM&idZN{lB7v3Hj4j&_ad6Gm&So0xMw$>YPL5`0tk)Cq?7 zhR9hyF7L#XF}|4#T(TFEucKy-|3qEIx2h)G-M0BP-xIg7bayq-YLLB~uQ=U9E=1{k zuW?am2|-L)Low&e$W!~RM`Sym^?<_~seqpfay~0na zR*hVtCeRlc4W*E`6&^eG52L~6dVEyRh}-vdaQ98d?y3_4`*N1&Xxz)03Ag)fORT@# zBqqcMYIs|*!KQ+ooi@iPD4{a)1Uvd+>AdddFJ>Q&b)(k}TFr+0oQ8Aal+~)OD*@j< zg%4JqCA!$Es?1%5H*&yUwql~9EVljcxa}kF_tcltYpPL+JWVmuOe9bELu_Zs_{A_0?X@(gf_|*Ysn=WY zB5A=NNBGLj-s75U8H{x{#ahdJ`^6V*H^c|lmnh02=Xo@&AKCaQ_j^gnjgTM-xZ3T_ zj(+>KQ$fvyv6+V*5rxx5AQOobelg)Wb4B^CLh%xBtrSoLtr4HlrYT$0dSC9Ir(C4D zN~>vWD!f?IwwFz+S_$g@nJ{ioeD;8`Q)XZ7ox|hTg!B*>fOFWn@=)1xQ-gf(G#Ea8 z&nfrvjcV={Ex(g=Qq_LrAcXb}H5kzqQaT`ZsmuI>UQnMC9#hP+_;Qg3$15e19+A0T@n3G2s z$8Wq%UQXcC<3s7e3gS3nx{(nW<4n}O1u&FSVD|N>p-x_!;czl4d@RYcQ3a4a_}dne z(ws)LQX+Vm^3R!n&o}B!`@4Z;3L;tv1}#{T2Dkx4jy0r3gCk>`9rU@aN>oURWYpc8 zuf%yo!LmGj6DMMb1Hq2P!l+d6rHgNOT{Vkgfr~-H$mhsatuK1cRe{(xA=_(c1EslF?c;* z^3re|jqut*#EylhUGubUDho!4U6s4D+^M)-iIaush3`5wcv?%!Da&Bu2c|H>p|mAH zj&4uKg*9Q>%hVWz0Bw78Q>A?$(3frx0aVzS#PP_=+{k33NS6#1EZ~k!mdOtO&dUw)JbF7RCani*4o>*ztZ<8j`;z2K4nkF< zSz0YwIbNWqc_OQ>$VDVMTP1xjnglXl~r2)GJL@lkNzo^UZrGCOC(plfABVaj_lUFBbQM?s;Xb!gHw$ zpWEFQ;ub4z^58biR2=|o$&lGxOF$-i;R8jrO@bv`fhB4lqsp>ho!PVB6>@k9^Y$cAu@Vkp)IVZ<{=hwLj*^R3@;K*hHIQ_muyBIcrEY_)bC}}2q0pxi zCDfNiV$y+lILP&f;q`~C-(62-Ec>)Hla99ahvf{G5)ww`sDj!uURFxpQ*fnssz(ja z?dsrMjuKrR>(@t$i&T};bfq4b6s5d@ct&D!ZdGWJs;j6g##h@}Iv__Xd-1c})YENW zAiMI_PI8)NMrK^Kh#%!sdvn8mS3G3J9O|*dT6(ESip_0b`kE5NdAxfpla;D{)4cOZ z%KbSwHddRWpW-1Ts^$@&UmGV=8YM{ApiXX_zHF_!9D&?jRCHdU^oxk0v>;BLNcd$? zgIY$_yJGt%boIlS=*HDgq2^NnJReL$mdbMjb4#Tqz41Nkkum*qr|@CA%%gAA{DUMr zC|6-FpPMOn7oU?P`g*RjN4>3L=@zwY*e)lI&vCZoR7X*VxH;bS3mT92sr#1Mky`OC zh-a#q#{MO>wE-TpIqE4c73XDc$rTIwV3dvVNOhlB88azR<8Q7?)6RSiV)EzAkqF}R88iOTwx6E#`5xN{Ipn|N%0q{ayKp8N6y=xhcPI6$(fR66YR*J zua*0YD=5;dEDuOfXScg{Jy3t&zP62Iz(^Y%R^6k{@^iNe;Yobv7IxtkNq5Mp_#8tQ zC>r#V^IX&31`QQj2y9KD*d%miP3*$i21t#nCA979B6z9UVG zsDV>WmX%<$Y+4bN}nD}{GV4DX#Jcsf6Y)^hKE>AQ4CKV+a zsgYYl1zALMee!QF_eYZzMCm?{xLQPOnK)LAKd2%fmUp}j1gT5ZJeZW>mWFYwAk`u)F|`_5sL}X_+>sIo<$OMPLJy6z>rh>T z>t3fmsK(F~U6)1^@BKh5isO-bc{ z`chyc>K@^6nY?;id^c|}Ji7_J9(@&(nj)po>wL3-NyQZzr5$iz*S*!sN_G6DA(kjS zV&v35U^}I^);%WHqMivOy`0r`15TIFL3_C7nz_~Yky82msO}*Vy>6>V@j3}Cvnbm- z!$Nsv%fOgIcZjO?h2UqWPvR|$ z*rHvE8HWi)DYonQod$Y_tz|d;UP^;(@0pIji{v>)6oJ}6s9kVlFUVrUHSj}u$J5?7 z-8QiTEIjGGpSTqRH(H?qusa9+)4wQMV&EHOvjP*HAGgN8=*s^w*I3BABkJV*8O$C(&8Nh+@s0?Ii%k6{(z#$X@QbD@Wmw2n zhp@4M!_2}q>R>M{mN~LS~XV zuJbyN&-ZpqD7k9ZikeIq$h!WX5fP)h9|Msfbx7S5evEs(DvV*gc%Qx{5YPPb0(8a0 zS=XN1xzl$3vsTdurT%nv=86+^>93bU&sTf;YE19m!g|uy2D081wxMnW{fZ0G9Xg|l zEg5mS6?;EyQaT6U-}1`voI0u(=vBAzb1*kJoX@6UHh08n3iFb8SF0^vtq$f#{xmd> zZCYjriQYHcSdrse2j^0%np&EOf4J~uc;klOHHGQPv|o~CiVJ58$qIM#K-!}R#jNWZ z@(`EJ*O#d(I>VK}lwP4Sd?lPZVbK=LM++kaVK}|yagd4hsiT|$PQr*m92JiQ^N{&Z?N(^-h$9j!9Fe8>+HR=xZHRNe+G%-DyFug7+| zzY)KN*J^sQ`rBkJJQdHk+);kHo0lpT_Pp)8h`9t&#t#u>So6R<)!6n7a9jjQ`VfqW{Y)(BgmjdZ1+F4~6hKUhu z*TW74Dzi_wzT8?Wi+iU&*<&RcD)5JkS%{0gAIPrsMT~u`-)zX@iFx?9+a`36D_V_i z6qV~1zxtJXYjkMKhjC8Ut>l&a>u*jPdmk@&IyET!-Lo~Pmy)857nD5GeMr19w=e|p zh0TY`439?4{HU5&XhKP%t#Ir~{qF_Qe`Xn@`o z;2OP9DPXxc#8&>)FKg?QhLORU7Vcg+S1t2uNz%N@+aYuM^opCVdUXs1lml;t?rN6c z7?aMDkr$xjDQ7BhY5$KawwvvoB|Yqyq{g^dwq8-P$fFPcsaAdaUXB*CJ>AlK&-E?5 zKDcG10791`XeT(FgEycRr19$-(yq~7IJ+6Ey3qEojV}l7p*NgW;VyRAw2SissdxE3 z&Nsf~^2-w^{L8kn3EWzdG}al28xordK6Ib~LoIEHBpo*p8~jyEcL=5~tCeS5m78s- zI+Dh7a7?Lld2|L`IE>g=x?8KeIVqpXxpKbn)e(>rr)4%+CTOvlNc}D$QO;@y?UM>l zqK0|)1tnODGd;7?`;eXpCY~>RH5uB}g|w~O*j}H8{j>1p#>qJNm>s?85T|!hIEn_B zRH>(04Sq{g30e)GT!QD}=>SIP@H>uEjYs__HcfYvsrV1S#KB&Uq_-7C3>*y`-&=wo zn~PS`jkD9@raq2VimYA#MRm59C;q6}O2K0T2eop?Q&x!v8{L8Zv+;Fr2eaw)(MAWU zV~f@sGL5&r>!K8B#F8!X8yXJM)^i$R(3n2LG9;kKmnUhdR2hphly}+7SOREMMldqd zXhKS{vM{&%0{P`MRFYlC)ww5VTaWIyY4nJO#eTgI-h_l1jdM&A+qJv$V_D1GB?S&9 zaH;1b5L{O(o~CSu)s%*$QQBuEX?yD|+FVXk-YtLdM_(W~;h%-Cvn?wvnVphxpWEMh z^@cq@t`RWKdzRbp6d_$WXjL`%3Mn0%-}t_LF$k&sXXsc2AqG`G|qiNV|4} z{(XzDhY~kp_7$sqIOhczVmfW^5nUa4|7tx1XG z+EO5JnsGZ!dG|~wrdxu_cu?nV0Ql~b3JgoCoZTgQeJR2qUa2kURZw{5{ zUWBlXRnREf2eC-&=M)+@?|F;%zG$xy7`LRL@WQE;pr}7N4nK|cXr*(f$jjD^Z+h?oB5qg{}V7$Xb z>puN*Qr*{2p%O>-1~;(}C>+SD{K3iemBVqzLbGmVKgKk|!iPF&+Y&@O*?>}6>S2_K zOf(}EQ8RCt^PB_csTvj*R3yAz*P|d?QfZ5ibki<0fWGF?(!G0E*@K}^-n8FV=VW_q zmZNtD(PrAFsXfLquBF-)R}?d=vGUs-WiyMU49}spYA)vTr(9#!vvnGyJPzVdi{b!! z`%{qTce=Sm)Ki~^u^XiP!I%li4}pa}D1Weg&MD_Fmm= z!WAk+eOhAT=RD8P<)iEr#wMQopsm#%{naF6Pa{u87<1y9e_!V25hIJ7D4o{$Rwn_u zbyw{0IyK|dGhg|||H5OJv*-|d<1vbdGLt#`3A>k_t5Bs{2gz{8J3yRYznt=KxV z*b{&gOk%zgoK%NI6k@QtuG(MSs(#iRz8wM*4&S4*1hYG#D)Xh$07mL0fr6AYQ>d*2 z6F)7x?1C?tJbG5kDOaf)`a{3mWgEf}MMCT?nrWZEq$s`FH8pr74GX2Mq-&Tbv*OMSgHO=ZBABF*0FM`Mr}~24|XeDvNy; z<2o+}fLP-YSnv4r>%FN=Q4p9xoVo^P|ZiA%jH^m)Wy!N-H;TDQTS^D};4h+r{~$bAb`fMF~guc=2q$U%sIAp=n!dpe)EQ*CG_<%o&+b!o1A<+5(Gp}hI;&2 znL~fGAC#j0f?Ahz@2E3H6@Gl4oFvs>Y*{p+eN7)a!a;k<`+DH0a0eZ7xSG2^NwQS9&MSi@duNSi?l?d^& z`CT92G~P2l#IRnv=!Nd((*yqTA>aUz!V;#XM!t3uvOR1my)mlFm!54d+3=&CMMJ2_0p;io1 z((ID6SXn+oeV&-LkOdf%v4B^lGSGO%l^Tqm;%(mfEFR?KspNrFu-< ztX)p4-$`mh#Ie3f>rBzf>}4`uwzy|;vuo6+3lXtL!LNZ$D#YHhx|f>B8up|&!@~n; z=}B)QM@*vJkd~U#jQV5CAdMs>e#xny9Oy4I!LJXrbeV8ng zvOXKC!+cRkT^_Fq0m4Ta?e#%lPP50}CXBk-t&2m-=S`@OKtJ9eW&f?uCd@|Tfp z%Dw~#Tdl@kTAm2VZTFPKD>UbfT5GSu&TnBPybXb`a6254DOv>_!E=XX4>SFlh zaG-voD_K!)F#+=N2qZQKCMOo887aOwLa-l;wtq1&9lpdOtA_T;PcJfa@CkUgjFiLC zUE){kEazkC=&NnM{LDs-js4l-p{%<9Jg9jm<9?%j&Wga zdWgSc*q%6U#8UAKnA=wP%@TX6@kGXSr2kV7&+&aGe#VS1`jpKLCEH55)tj){9G0R) z#-G8wT@`fihSW^1sw>#1JQvOLuMe(FJPR*RRaIS(4Yp#K#Cu_c;x`&@nE*kdTCU4J z5|4nZDo3JLqE_7^As~P6RX-}16)o{&p$rkIxpe`e8+795!pl+NvsC&V8T86sEc2ek zryrKnxhY+}_t16uPC735C2(m@xGl`uxgtwctWy0Qc<~BBvdBr@!TIxk8lU)``Oo}m z$eXJSf#2u+@1Dd;zO7<0uuwBHg^_}Fi^^rfuC}mVrcKRK6u=KoSSWRHy5<)8uqe9w z)kx)6bBe{T712IYvA4z|_@Q<26BhKx9&-vczZw{1jnjLS!>dk1exN9|RnG;lYId+) z`4TvfiXdc{hoz`Ww}6)g8)%Q5Vaw#@CCK`=Cz-M06^nWrypw9N9wO@Djr(7f)q~mys8JG4HmMt205lvTB1+LpWQ_9(g7`tivH?I?}9v>G;7&p&^ zyUeHvzjV*ZN<|1OSsA>KIYY<{Ih6IO5t%=Oz94?Wotxs(m zE>vi~APArSY@-XQZy}d?oD{z}SF>!Z3o!BUR7ZFd3u4OsR`}&l?Cq=vsQdlNPcIs? z8oJF#wZrryDPJN(-UxlX+t%G5B-B+ntJ>^3%INAqbrsez7(vO5t~l(D>ZxR*fYrzs z3v^O3N~OE>DAL03JFZ2a5eU(=Lf;<>oV3%BOd5o>qeqB%V-KyVKvhKU2Zb(M0kBdW za8Zl~Yad`HAz(!mGA0H^J0NtUvu=5d=o+}?D71=Qy&rSG@wA)OwX(tEtxeUDkxz^_ zZ?H+Aa&@k%V9jpjy~6aWO@m2A!Hh>tj{r7At#C?!jnvKSDr%?;zk=|SwAT(UM6312 zjFe;&Aw&yJZCueSeIjbvH!$tix?lerx2~6N5~N0^5`Wi_lfLd^4P<^-_ODi9!;GP( zOJ1)~RK)``Qv*mL(5Ah$`Hz88c!XbERYQ2!(l5+ZcYG_~mHh>wC)k1YroM(sHX4G} zYC_3w$YVvD`o-fjy3Jpgt*D+To*-{m^as@Go(9-hKI+zd#o1MrR~L5Y!_gB38@iVa z=Ik&_`X*96Gk>x?x-vH;jT}!_4r&q~`V*?zy;2oEVfl4;NcgZgu-%nDdRS7D39&Ye z4%EEKH6pKmMSJrDYc{cCYv?|^fw8dhF&FMk*Albe)WP9g#;^Sz59Xc-QJ)BN znuv&N#K5(tNt|4>1lrK z)54N};eKmpPs@HkE$4n#ss60m=~->;v-*-}jRVh`*PgZhenve14^p4%beigpo$4)_ z>L2*O>wZqp$77#QmOOtp@cjAO^O@hz$=uWbv+n1VdNCO0PKLS>5$+hc6&3;_Pv^74 zOf4W_BEk_3Pv4wLC&RAdX5Rl!HY38o77)`-C~q*7jt^!>ngvjBIAP|8Nzz3$9E^q= zApxpElqq@E0X0W`E79|4hG80EfFjd#z`R|Zzw;A?9 zX)_*oMGJ^?@M1$bJS7BXD7E+p3jr4|E`=}X&{AV*0RuGLWP1L>^t|t2genRUAEXMJ zM);Dsz!^i^D7*zJQ$XTfmfF=zs4?yPm9{209EAjVE@a4V6Zb0#%lpD8EhzB zr+>zsh?bz$Ow_CFK~W1N{Ho~+@ed+@9br#^E8K$H zZ*pwiUw$}<$Z$5z_^{j`bzzmT+VuzP@rTwIfSKap_UN@k^2@{blwm<@RVXredaVq* zx}~~Wj^3!kY|Kds=d3TR5zb(~NVp?zeU*o9El8~pw~;g#kIlvPV7LMSJ}gE5qlK#L5d!?-bZA2RaVpeIYuogu+xBe#pPVf6 zs|>eW@n8Ee-OM>McU$aS-rD!89(?Y+Q(9lS2!~0MKftT$P$9%;pO6`(zr%iQ}@0uGguNl3%t@%zi1gucH zZL;dpV;;$7RdU=Q+Qt=R#XG$-bA5U_p#7demCZjJS_jy!JYUx(hvJcPfSw?rP! z{GB0ZQT9w9E@TBdu0vbPK0GvCx2;K26pR$?ZQ`g=*5MdyTgKavuyMNYMG*JWYc?WIsM7HNZ^Ka7O@^j)uG8V1;cz$Ueul z4}La2`6=e}run)n9{6`!G72aI3?ak+2@eAR(C_~nVFf_*VoUp zlzx7Gl0gr7@10CcPS)-G-uZLpoH6iVY&X7V>qbt5bjHT;n;!waCn<%I!2h$){~8Z# z`mfTGX8#!v^K^;(FVm6^;`jf%JBUrFIfv4knp;}ii03R?XIJ-mlc)cGfrnYvS(VKH z53b>#wB-M5c$lcQW<~9P3&jMEh1C9cJgjc^?7@Fgiusq<(74!S_wavs4gcU_l7siX z|0%_Ex4i24?`g?@;bFyeQmjv6A=JDk%4J={DNO$p9_E0Q4%qlN9`=)ebH3iX$>l%c zVc!TNdSXB)_>a@uPX{mW-g$CfK8A~K;-DX2xc=98*o>TO5_g2**%F?2>0!kUfh6DU zRMFacehyUYKWWMT6&~iEXSkDNc-ufX-AHkN=dPkG<=Z?PRhYKF{*`~@VPgLZ#q1XO zp1XtI_O1K7#lhoZ?@Ge{TUzqpc-UTf0_#6%$-iP=l^KfXX-R^^{QZBVCI7_^Hg~TUHxb9h51Kod{0~}sy&e2o2fn>OXd}TT4vC|z0f+6A z!sltpf3bsPeTfhMhj^I8d0O&+i-*xD9sW;v*zq{`zwxkhckurl4-;wm`u`;!CjE1- z`hTC69Qgk6f21X^|301+c_46}P$!T;6hN>R>|6rIeKy3A@o)%$#()qg0QkP4Mg}0u z^lktQf+b)eTu6&iFuf<~@mCtBY;`Ciwhj1cg2Pbsvw{Aw$bdhbKb4lE@lYBPXi1<9 zqDCZ%vI7uy90nE>i362mp`d?IXuA%y5^QyL!O+^?O7w3kVcRRGMLKXeme2q5@TAQ&S6 zqQI8HX9|iCq5yDL9S7<3GvzZW2Q~spf-=hhk{NR^eW4n(u%aENh(Y{l!ho2M01CnK z96$mGW969C65fI$G=?aQH-{KXu(TqEcti&gB!niF0wx#=l0EK#Zyo^l>I~X?aDlrP zRZTmu#UG^11I^d(otY?OR1yI&1&JA0c(DZ$C5|U(ZDyFJc%XC2$@J_jfS4!-YRMK_0TF_1sEj(ur8&t6^1S$rgVoXWhNg(cUZD%mp5b? zqChs=;mPw;+v3y9c=+=CP3Fn16H)XFN@b=8eo&l{00Bf9i-eSRy=C%AH7NrxxKfm3 z1Sr%d1ej0i0d^3ax!giQy^Hda$*|2m02H=_1T_xepl0kqCKyxn)1yW7!^G11ZKaO7 zyt5z`YYF4OiL;>X7bu4*M^JHGWY^u_AK}t~RfIQDgyVGD!%!j3j!) zFv>fzhe%np1%|5U@#*Lh?TOE#HEVfg`J#*_6A7e#1(Uq!b%0c~nBybmC47D*2C|cU zM(meQ)~>I;^XF#*h^+u2g1{3J)uA*t7$_eWLWL?xg!^t93-Rp1!z5oZ9xx@-liR`d z+(Tz7Dz`t{Y~F(agT>-orK*y03M=>Da_d_sFF+TEQAAT*J{Bs-F3wOAHNnl6L;Iv= zm{J9Jyf7{U(2917J#yRwCn3|feu-3ksdJ_-SDDWL-C9)R=!9inaRpSf{9)jXA>FDcUHwg zoNQ+F5I>$?7txE*;Y&bY8a8*#QiCoPQ@(84kbX!T!2P8){_M8)FPp4@iSxQw@}Sc& z^^M8d4VH#%FB- zPapvD7nFQHy`7z%9UpFOzZ}_my*fMD{rPC`=-rF$_4%z=Pv_<)PLJ1C7AFdeuD{!y z|L|^oe}89hXLaob>D64%`zo)wjut_&Sr6KVr~VVJoI4Z`IEi%$)*zj+5)fsfs)0UC+VfPs%v6swQYyR&*aGfMKjTPs3_ z+Y_D+Ry=Hq-&pD&8LFsjE$Hpde>z^>-a`0w@}{IUudmEIGuQv?*N?-!<>PY$ubwxI z4d%aJ8yuT#nd-}HZ+{S9cyq8RX5e8_>tO9eVp4DQjoNy`+C&eICj|ST^hlYCA z-n{62+`c{6lGl*2x73+do!bArZ+?S3F*#D!d4K6~PEC3I?)#PFoyp1B$!9Mo|NPpk zC)n5YRFb=szQ3R8sE+T+cet0~6qn>OS{oQkxY60&KGk|NyCtu-t|l`p%fP^Zg@rXd z`exHeTXAWjkchawgVTA1k~{17;QRbyPpSEBX(+_CE(7*Z#$>{WHc>SpjoZ{|-L>=P^Dl z7l@;DI=>R~9|o}XFs0ZQFm%c9hIh*4p4Rn8Q4ji~e(9nRcjcLP!hc}T)wT06zRW>? zWcxo1;1w~bt^)i@{eO({Uo?LNqvH%|FRvy2#~6<>6d+70 zm2jO=@5S$ut1ds_{rNQX{XYh9RsrexaEcUgcJyrUJoxy)RFK_}@0j95i9Ged{LKG# zhCYi<{p^z`XVqSw)jACFDkKK5$M1jmaQChPw>#mB=j_^*(|o-++dMa4xWhRge$v91 zi=bUO#}m)T_-!9~<~&#SNf5@-Z_{*X>-^dVVw;K$3DwGQpSH`xXyn(v$uSfc^>he9 zqq+2zgvH+G4Sa}n*WyP0fCK)%^(~xb;Y=Kg^rGWtBkhI*Z@$Qbgf~xytWErc? zLfT6d&*{}>&GaBz^!KyS-VJ+K?#F|?lq<73)u{P(cib9!0KJKRnbzXtov{iAdV z6>Vy2bkl`)d<>gq1?H4M)TzhNATqY;v77Apl;ik??X_I0B&KjThDatz6-q`Q%ssxD zeKCHL-3ilYx3WbOR1ZvBp}`cw7u{?yWr%E?y67LH6u~W9J>=7JK3}Q0c$1oa;kRN5 zr|oUyQhmck*4Uhsi4a$hfw_-Lm1-Ry7+SkUx^87yDV%h zn2h}Mm_8$2-kd2hXf)mLb~kd{gFVKfD2Jqn2f?tO?`KHyw95GC3%Kfm-mt`kj%3t{ z+N3YjX|qx^@49Q4XZkoT$Ga6~kO~;u>>KIrr7E`9m9hD!<%}e)f6D(}f77s(lkB0Dg{p*7-`Y@mFvx zB`nzR?KrNo-rj^5f5XySLUr^O&kq<8ateAof(B@WwrUh`Lvk>szkH#D(gbzCPp8SV zD-sc_ts8-ezE2f{MpAI{QA+jNa{dmMki1v!>Gms*1+SXJv7AvY#KCo_yjM_i22NJ4 z*L`CIR<)04muupgWTf*mVCa30rFyf5bDb_opnHDt{M}0`PVTKO%3Achq0 zUA!v%mIOfs*R;J~Qh2}La#N2gKa*2X`}>v_Z6}soZ(m*pEfQihE=)v`=ku?dXdkDs zsjUnv3I-CJvk|NFYQzXd@_h^&0BQuYUj{!}&3w}NXoD_2fKQrzh+_tU2l?@7^KZ6j zqlw8HC_Ex!U56rrk3gUFH!*QT(qPZoXMZkaq zfatfKkZtH4X=Pm15?8~ihozb;l|!1t#2E@|@Gz<1qH$Tp-kFZ$Gc5&)$)w(&9^Yu} zO?>M=9!W7AOFmKvXv!`PzAkd#5YOEXx_ix?DxLuK`ZL9skmxM><>gWWbk`Ay4)auQW_9(Dqm{#g zwRgjHrYa)Jwh|D?-^R%Eht@W`qXtYTHWBqThU#h}@5+GbMfdB1ufB#|1*0BuLZgP( zkk=7RoMP|f^ofv|3a|VtD0ASq+ckY79Mv|hcJ{B#711;FJ8L5cu*O;i^>N;$ckcni zwK5wFP5xCnxSx)~7TK9s2fYI1UghGzHR73Xu3JcT z({^YSF_)lJ_O>G{%B0en2F<)CbG6C8H|G(;mdl}j-tCIJF%Fs3e7#D@4#Hz~M?Wh} zL0=rjZNeE3x3ic=Old1FFu_n2`H$F54&I2&Mdm&;6-?PzP2`{eLHN-1lc6p@EX|+~ zMf~1Bo%e_(<})O+JOOc@Z;~@~7bnbR8G6X6su=LPjBO*v6UJ*4G zpb)7+w;Z2wBZ%Rm!aKI7BwYntg;K}>;>={$EAQIXg>3mnD@}x=_f@BkZ-VSe32jWy7JDEHrof{- z^h}~>cP;b|7_3?=RwyhS>v@I7GJx`InVo~+N1p@sM)Pj;ILgZ6J$FSs*psmy2=*L! zur)VtVuFe&dy<_4{SEXxITP+9U$F&{vw`3>OterKG(O32nJFs6P&p;ZDTd^~T8sQp zWrw}TNQHB}#mH0;g)56vdKMbYT@L=3AauhvE?E~iVur=pDL9h#e2##7&Y676f>5usAkld9!ckN_$a1P(g#6AVWD z9!`+91^HV*h~1K6tU9_@`lY_MR0RpQ=c0N&jl##xRuYXp=EFHA<-WRKx_t3g>%zTE z(LCRp2#FjhdpE0UaLx-M20lfMlpw#35WGd%>%MQQ9$8U$7p$=zwwWi-ST284Hgx5k zsomEr4Du3>Cm^iWUWzPg7lb3am~0f=?bKBw!Wy(}gpju`W^Io^1uRr2+%xOPb(o`X zp@jToyrI4Tn61{@6PmX_k@8(gp#F<~@u^8biVexD{S|cXOY}XK zjk47{r~mC$-R?J>`Ca3w2g`f`6ICET;f#adErT}!-SAMQ?~1qQ?4y;yY;1`~FAMBW zSk#hG!VOTj2t`w7EzEo&F9Z;x%r{4t^5kBU@lM56LWN~PF&E)O(RSJqxvMG+hyn)Z zaQo1e(l<|in;Ih8zxw-+h?UlaULZoLdhQb-0O9JrU3vGVVG-xgp{N>>S)V{Zft2V? z=Z_Kjf=gF)9RyEgUAkB(P7K5p&=TGRBfUuhc_zu!T>v63N`p1JYFHh_ZcOQ8BE*?I zdjlM~3E{Ccq9sTs_DF-O6K0tCOvts8syBEV;;*OqN&v95B=<|IypQeOH3;B3p%i*z z2`j6O|5-{Rm9f4w!B?%^CnEonTVX8wk^NaDB+CoZqXY|Qx%mK`A7tgKg5mCD6+2~d zpw*pyOQCzn3ur%a^mR#;e^4X*FigE?_vURk7q+8VOF1(p zR71f-vx8jF%t;Np<^lMp9sj*jl!8R~=Jn$cySppA48hq6sk%C3T^R}>Eck*=Fs6DH zi3kSaycjIH8wLFxS%(VcL2<4AGI^|Umm|Z*Du%8`8y^xlO5Epox17EM*-vTk`DJZZ zHAru>dYVb)k6}_~E@-Go*OW*RRPHMcm(;!7d9}JLn;;(f-l9v5IGJ z?$BF1-f9fw33iZJt}~+w1{*S5pt|2wYp@t!boo1D$d9&_5Ey46z)b{|B;JA_K*f;I zx9=$K-4%saOZ=r^uoww!ur?t2sj#gGrHTV)U@;*JXSqpC4!i#)04j%snvyjS1fU<| zeO2GWnc#UyLX6XVU81lgj36IOK+VpnGJ2Me=ht^7N+dk>BqnCwyyD5wz`#+ja8i&O z{*8BVx$37pqxN?N@Vm~$00m=~=%i$Zl6-pu;HH2fXG*!DDgb#PdlS&i5%L`ob7-7maj`q{d~P3EAyC@H4iC-BpaPwAf!Gov9~9{BK7<(6 zv?^oTsQk4>37VpUuEqewgfu8b)*Ung;gbqQS0N>ZYE>Z6I-wCt*5@V_-!ROk^mh(OR*H|fgPP95<$PO63do{~F z{YIFsLP$SAacQw#8@fp;uK)Vp8p!JMptU?fy~(tO@B-FJwjYr(QEGn^h*xbUBqYFnE<;yIpf* za>Wl#0>vsbj5b*!2KfIdk!&)xf*yACzR-yg|Y_!r+*&O}xZ3?0Uxt&`O>mOuJtXkUVNuO-5 z^tjd3+@JnczZ@)V;6>QoT$0?VyGc7=G}JQ@6GAlTCSKH)V;*Tvy)2G9*(}NP$M0v@lT*~8>ElS z@a?;+;K@B{i5~I;N^F$;!5GYYw!T=Tdy;)*_pR;ycwtnr{iv@C8L*cyvHSwQV+$QT zC}P!W-rZ5UU@~PpP&RP$GVP&ZH>HT?dew!^`V{Xt{zyapWB3&%v#G$#SmfiK7(nC) z3%NOw>)zrSMZEAySdiN^TLh@u4aiC^$+y|)= zBpxonCtTX=N7z}P7M>qs7}{C)1l7WM8zgq*{HuD~0#%hI(jG7kMF~w|xH46h{GmS? zlSG|osf>qH)3U$TSHn=yWeu~dhp%pI_8FZOSqYH@)Fpj`t?s?|fJI?m>>Dm6tP6Z} z_V1av;dD2T_yeql%m@R(8YQIzdOA_;dN+|9$|-7f9`(vAeGg1zvFCHK<=h)T5J4SV zkdSae3)~{7-Qjfgm+fulx5(=#?eQBnYCvdY5G+l9OlJ^{Ed-RF_sHFH?H_HB6NbKS z)Yh^{z2u(z_v@NGGl=Zbku;d3LyWYRyDJ2(MIwSv zJBaG$uU&|6=Rn;X2ZFGhy~N7XGck643R5eOuHvY49M^~|@s1GpNZ(hj&NnPKyHvo~ z6#5vQNd6H%xari*^yGyrsgGDUe~jr2G#k)H*)R!6jh=^s?O`+w4(PVmUv}6ncj@^e zrlU+LwdK?>nUQMSQC6`6p@4glVn`n%f{W^10NrXnX=kP zo$C}8u*u(10wi~9Ui{A4T_Q$Y4BJ#wWwgt5j^?&RKwS1UF=$u}=WB(iQ?%13DZ+Nj)_9w!W3rzSthPdd zet;oFTdq~U&Nck8bk_ac026wy!?#KN4iV0s&PYr-MK-qsgIS2%3jA5PH+#7^+YN7- zPY&{p*Fa0^TBKT;1eiF%yT{buC;@7GvU|B}V9LHjDP?fw*YlJ8ps_ElFP+nIbOncR4kqx6FN-Y_trnv%0Zd>YU@LH&;^UsQoUyqdlf%96$fW;(GZlHE|?_*`Y`N3 z$x<=C=-s)vmy~D9jCT79AKfYL(BB9thu9xrf!8GSYl>Zh?r1U)xQ-SeQ23`Q1ZdtU zrXS`S=}`udP7c3&A=N`HjFPxh04PtUM+qn<6xO@L>1D1vv8Ry9ag>0{{jYwXy|hM> z=sEj0fz9Du3BIo00RRgm(hCJ{0HocdJZgl~O`ClT$T-jQ&{t*ihTA=Mqrq5W(U2Fo zz`#cEL(!Xe&}z4_taHy)$39zkjPXcRc*gGhs-q2uBW^am(f5S^7XEzj8pOlC@MOqq zO%JCYh>fXTTBLA&cWvd1&-m3&Mf?y*N~Grm{0OH~`h078`mT-rM+afHVxWDP$lV+c&IS$(Gc82tQl z1-#yKSfHg*UfeD2;;wR|mQXW4U6L4>IUP^;qY^g=TBZ)rdZ_Qrf02ogAd_urjzobe zn;`8^qZzmA&DP>4q?>#L#iV z>fq`jXJE&a;w!)Ld9|1z@&-@|5llGZOA)b5F&3`2KdRa~U&wB$Q1TD>Oe379(~!k{ z{stW?__li+hQ1k4PN5|63EQX0diA%wh^!AIDK4CcD&ejP=He^DW^Zr9N!ZaAT|Tv4 zgSvR9GhSNRwZIjcXa|67Qr9z3= z$cUqO%4($qLBTcwH~SIW{BpI6V|*ZWtr1EyMUXt*a3Bs#(E(*7-N0?{GqS(+)cu875#j|s`4mFiqK%+%$5lMXGxy=Kix~+t2~!ZAV7NdHMxhoo z94LAkZwNj=ttGHs$bTVC;t`~+RX5$<(2vt$cS~VBVq%dZw&$H+)If1*AEkWPq*$1d zar*s~kwgIX4b6zdsf;tB=(4*d&qd^i%F@2d>x`T+A# zTzxGkR+$lhU3jrjoO3?obG3-tL9}_SS*_cX=uE#+3t2z=`QY$3abl&NkYoaknmRl; z#E_u;jE537bi;H=`#X{+P>TY}GbH+f949s?%y0f4OF>tG7mPB|Gy%CAUkKJm7Qfldw4+ zGL3Z-4A0dP4zXJjl~<(#X|FRU_a>RhpH;Fx_3a+lwRpWL3@bL}6MHR8!1!+3u%Gb?!SN+%6J`$AFGf(ya{b|1rAj-Dk}8_+uI6?^(`U*N`j zw%sw|`nen9`dc_jX_b45HA^5zzLVNm{7?&Xm4(%!GJ!hf?w+@iFM&rLYVyh-&xDw= zA2%{oq$-I+Zou!I7%@?)N?hh`DSr+j7<6-BEO^&2Frj5Ck^3gYDX$sD9tVC$=uXBV z3Exe#afcof!CLfLbrn(G?klV_gnfB4GpphJt-O^PNcldj8=0Jm(WAz_VF*_*tR3BO84g~I?uionx+Swpbp z&8SNDJ;pw0y4&n9C1u^VCA%iHPtrUbaNirQF^RaVw_@fa^BkagvI$SWc#@^qJ;GXg zpMnpX)8Id7ku?zlDp)<0i-P%tPQ?KfEbvT^q@03^{3k;+3WImWAW^TK%vbEa07euXaJe|aI8B?03+RaHLCA0VZAx@R60TQ?F#M42ZoeWWwHs^dxU;VW&zWLFl zdX5*vF!XtWdk)o(ipd%1O5hvDY9=V^;>^LeMMtGEwWsEuzd`3IsKen)On@y0(UEb1 zAu-YhgB}U5GjR^);A;}q`O%hcCE0XivcWoQt~JIpsHA|s%zP$#_Mjk%H#Uv`)+>l` zP6(WdPQD}O&ou8%_2Nlk29q4q$@erI~l{kLmFP2Kx zL(MGid+$rPM1{HyD`UQ^uvPC>sPvlK4Nbz#E82_xm-KYoV zQvjW$3751EE9V~O(t1Yhy9StBvKsE1iFI3iI}uc+?t}2nHA9JzD9a(f3+ivE|YwOK+Q{RA-#;Nu)*GYiwrch!?N{T~p z-%2j88vR*WoEY1$II1|!&xp7l4B?At(UqqSpz<7$1|Kzgl?&wPW4on#4-~FNV&;9|{Hz+(^@^K|}^qA-)VyRv`vnn3GhU)cQCCzJ&Ng0_%_2e9(cA(~K_Y9DT zR))BU!HcjF&KTK5`9&=%^E=Aeb+zGvR*{{##%`D5Vdr>QooU1o;Y6M0OQjVT-`AF&QB$elx{g@4kZdu8defWI!gm$iIuamIbabc@9F^J7g4+e`xJl7 zZ$N-mtgu6+ISw`g$UM%bIxaXRunFNP zdH2EgNu+C@O5Uh^KMkOA%fLu=l17H zBsQG-JeY%DQ557)Y;0t{Ya9Ui-b42T4#$HE4&t)2{+qN5$s_>K@Ey6J_ZUNfki(x$nPkDc)+0}2v%^D# z7(rl3Li5Y>bxhGmkmeUW2C{RsMh2gf?&?!IwjN+Jq*6+8QRTVjS&SXA8ASpQ;WMtT zSz(&?ALq-8H_X*O8+Q+s`BN%9e_w({eraY7f+} zp5!pAp-a4bn`wMuR{gMA)g!HKbYodVhW@@?<*D-4nJM*KZKT+e6bdH20Cp|@+RUOj zSFm+refgi;7AMDg+WZ-MEa4_Wq(UX5GXYq%1(q2SDcx6E-Rk|je(iiW*f602onZaA zUic=7spkIV%&;`9QI;)Y{@26tDSyv{>OtJ4h09}YVWOTyeq_SIV8CP9kwU9SO2z5A zounZG+d6B-9Xw}{oyoRfT`o5IEVLxT!5Y;xn>nYScdsiS3ESl{m{dBnEMp$gGQz-| z#7WjfV%K*di){oLne_Gl{S$(hO|;Bh%&i zd+~)x?rcF$)T(x?Y`)5<(vQ{~;!C>XWRnqp5k{Q+7@z8?Y9!aBpsIUf3lW{(-Wpk6 z9=_4o9pR4u?5Nt2|5S8IXJ{}Yi~TPRe9Yk8WFrOEuSqSmSAbAD`#gH>)N4d39)qMi zOFF$#W~kGBr$;@kb<59vz9H%QuC@Z+o0k4shVN(pZLyJm)nO>HFt6s#yXW3}OE`gH zh*o+#(S!})`c)j(0&OOas-W*&;^F@|;ZSPdzUmbvh_>*_pQbg?(5Wz48FS(8s9$ zh@6(wL*47>*i)W~KUn=_t8oQieni&F`t7S!o2)W zC_j-u1HR_t@&~(aCLzIMVmlHuo!Z~8X9!^)t#pIcIK_q?>AeJCU|A`u(Sm3H=E>wr z0>b|S8d+|dp;84B*TY*rtPQ^AC7TC^%s)Af&Io(pF8nXPyjB}-<9PE{jrEVGGI~|| zl#ZYcgUU;1?F&DUaNtZ%R_rb2+ze4j`Q*C?U7VAT4wb4=NRP|^}dfGVtM?Li@);J zu4m`U1$r26rac*3lq^s$CIW}s%l=Jd+2<8*oVulOX|;|I6@9wUE}*OC4*$t#!dwC% z>yej#kFp`B(3fp3GUD^!;n|DP{I&kq{wC*$j55@=7-rN&OB<%c1`m`R$UhXIi*1r* zd(O(xhkxr6J4-u$k$f#~3l4dQRftxjKLwC=exNovbO2)JJezU1J{*QiC|m7zn@tf^ z-wc?fWr@f*uKbn-20h+b&}yS;=aSTTbEOWYAi4qmMJh;T z)n3^tRDn&L85^IXu3`_EBb7pJghZ5S&}S=L~}u=NfSZ%8W8-< z51~cqe|P@d*o=<`gj%HS^K91?zHA?|`m^B`T9HHWEWjr8;jiS~dAPOGra@K%b3LZ* z_Z+#oT}n>7=KuXd<{J1~K6=F+k&*jJG3|r&{0i_~dsAYwr;zFfwGJR)l%S-c)wlFG zXaMERoRS2HbfzI}Mu_~%#dprd?t%OZnI{_pV0m{>$TleL zaAWOT4}pVg?drJLxLE1`>7jNytzx!(VPaXO)>ohh;ci`%-61OQE~tY!%!HFbtbz=9 z)2So189rWV$Zfqc9Y zfW>({{+z$AGQM7$AzFX-r2elVgR_Q+{vQRA&0q3bHW(2DF80s(&bI+C8=?c=(%)j5 zd_m{A`ET<9OCHT46N_^?L`uy{5~DXh4UB628S;D3vw!+9zCWU5osB+M_%^xmzS=QU zrENvEQ|#LB5*;t;$0GG#&ve$NRHTZt-oYyAA-^7rOiS_inR~!X{o)_x2Q#ax8K0SN-5xgPc#fe9kevdGkea_B0T3&ozE*1vluVT_-!1jY_ zytr?ffxzdfj}38-;eCwyn;CJ_Us@aeauIEdgQw}sm%}@=Is>>wxpT@Y=c9V!Qjltx&XP=WFCO5RsOC4 zJ~1%`ZxYz$OC7S+R8n3s%=NXAkQWW}bEke&SWEGq| z*t>}Wa()!?dGp7=1XH)jz&^~y!I~Qjm7o~yc02N6ZJyC5eS1?x&$)m)^82{?q%FnV zMLpIiy=q40hhnE5Ke{WDk5Mq8E@>hF2D!EFvED1%Fg1Lph-i?k>gG(-iTh9^-vJ>W z<$#iGQ_v_>E@Wz_(MP}fl%NSU2><|_rQa~lj3gpyq+W%XMSK_XAKNyQbD3EuiX5S@ z^3XHq(SI6?Gz8LRhh_a)g{m=iFwN-?+-TDAr7lb&_c$o*fgX;LFBnTZ0YWDWxyl{& zF7pdGb&pAbl32JD(O?5C%!)2E>uzO>31Y@lF{& zl!nWWv#rEs|IpSb_g$TmB=3JFTJR4%-8%^ml=7$ZxGnCyMGw@6SBjeK5{r&sWwMy_uEd-wB zj%+M_|8K(}T;{>l!!YrC?t!Bg6jhN)w`5Kc;6Y=ENLvhWwdtn;uMG~ty zcOOeHoDDbml_xG}JD=Ns)!bl` zw9aq8Wf8i|GfB$TkyclDL4`_?)p^czG z&{q9Q9@%>7`hCjvMpKa!O4R+;jSK#wE;Ba^amO`_VlSMLcM<8{KF9asaQ=%sJ=47W zzo=R%Vk$ze8YtR@sm`}k3T}X>iCj_4*J0CKH=it}fF^SL zST>loE%%6X5DIfiUxYi$7N}^Uzy{s8rmC2N{>BhOT<)tAnPL6+8TYbG$)g{e2e4y( z7D#fUj>G$U1vj;Fp}36bPN{Xz>>p3z(qi7YImNx)@4!PJ=LCC zSOr;Ae3=dPS|4z_qUMxv5*!eWfruO5GjrvTV#RO-lYN=PWI5}^Xd7mEzhnmeD1{-# zn(oNVqbE&Va}p0@HwYQr!XMZKaC?wIGW97uXW}PTR`(J^m+R340t5BCUIv|%Q*0t5 zX5E&`<=l2H4&Wut7hAdTtR3#Fk)9Jil3We$%m4 zt|1#k0{inen^UCz>5LC#L?mU00ZPCq^B>Ydn=3@Swv}l^9m1z&*h1d@8dtnCeZ@rE ztmxq%?YNiC@8Du(4dRPVsF;06?t_~I=ymTV!Q14s73nj0t!{YbDFXIC%i6Rq=cb~1 zmEh8dTm9xT&g!|~fk2M+E!_!225sp$8YrudS(ZIwu-endRUi`!OA0%G+>gd38@Ij9 zV;7rM;s#)zu5>!~cgqu^zLRv*Ud_6zvTkphoP}N{TL0Yj%etYq8M&vgc;F0bS5A5k@Ch55%)YE7Gjt3jdnBu!D%xMjhWtLdm!q%5%!eikxt-B_yu@W3{8k03+ z#sJSLMOcd~3e1r2TSEBO-UHg^zn{-jgpdtFsS7rmSmTc5N2+k$7vBWMR6W?v4M8ul z#KiVEC6#tP*P1jR)i%LhMQ@TTJu-`o%=%^SmBI;mNm|wX)}&mfsSY|FMhC{qL`7?X zE(pf+W10%C!kzq1TOQVdo{vl~$csF(vgAMo*~Ay|LKlNWa9>V+4tyqHY6nbFN{O6C zU$jrFK2jQod5cc=#|$*aL{+`Mvqd>xHpz66U?0)e*nM(xRI%vfeGuQKz*}$fWP$); z`RutsVExxv@spngqqv3m6pL$J8cl;fG3M*;RWFY=s8z%{#>;~DzXR`49>G+n-U3I~G_TdU=t73HT*P*PEn+8ZA)C>*H&shd z!hINd@$VRPg&&9GzTR;K%I`bGcxfqO09)Z>=2*m>1aL=*DYKXL;$x;Yy!fWKYNn?2 zT$)d#Ky0VTx~ir0VoE^p#qWNXBgLs2T{fz+lF0)jZNwkMVbX-KPn zwkpBinVkLxXw2`snEUK*z6hRCt>3}svH{@5G9ZW_gZoZ~RZK~DqWgt)FfC7fTsFsB0%++l(0r1T`Enuc>h^AuRF1niUm z4+*HUOsC-`_+8xINiZe5CZZ{`LYQ1+%W)%J`!`+;7N3{HxG2J+3i5Co^)`39eGFM= zE%?v>*%+qW#D;o&1V@ZHIwxH}f5am4f8W%O#a{g;H) zaLP(RkQ9|$sW_PN7MM369}iIh>v{z*8s#Z}%VM{_SQ?5KS6@>-j`S+5OWYFmEV0<}6W` zMX}!hWp75fR`_AXTBbWCE)&#s1J;NW2%}+lQ^H6Ee?3-gc8j1o>@#>jPFLsarxMsc(9zpzlCTHziHtfKmF{r!{wEut323k3b6- z7t)<`N3cl!Xl`95*Qexn@FXDjGhXho1&4heenKhTSH7q=Jl{_ z_3J=xSh2;!Yr_XcS&iLBO_|1Tq^#}~xDffaT!8ThmO?l|AkXo;Eg5BFvxCiWi?thCC5glLHH=LyBTI;|=Htwz|IQsKy%5@G3oimED%l~%yq?wo!FGTBo>cL%R5NT1 z;(XOFWBJY{m)9L{<_bk!B|V*>qkP7&+u?cK1QtmhE#SV!M-C`&Kg{yM<#ulD0yOx0)q z+;N)#<0=>9S11}l2AwRONCW$V9qV+ z0_yK2YHZA*AMYMGP*@ol`MTqc4AQYBfuV)|%oRtM6_x=9_d)W(Y-Zuki=M9O<}EQDz}XpqL^G8yPU_{B;{)~$k{aWlgj+!HalSu*GC^`R zwj0YLXUI^{C1g77dW%0iU8ttnZ@8NL7Bkftl9Zvqgb#9UJU{TC~L{LDb`t1ChKuZI| zX@~HX6Fd%wZ>CiFlW&G2ZVFXAFP->yc|Q3L`^+L z<4*((SM~k5$6Ebxf=N`upDt~@+z-aSPR1QdAy3^bz)1JT*4IJL-JP&O?{o(*TUrt6 zsp>5FuG2WN_FXesyj?!(SAl8Dk~4iU;;YqWR8@?Nn672o@swJ;N0P%l5AdtQmb;x@ zz>DV(uLa7VDYCmYev1FfBCC)L6Qap|UmdI0vN*lp(BPelUYF93_ro=1dbp4BWZwFb zFbnT_7pc$`*;E#U9WeQ|ys)t_BFi;4kq7?!QR;)7(uyUlE_bNuMzX^6sDDUG=8jyv9vJN&!(#DHFwpE*_FrwoV#`X+`>@Tm54!*b zTtg}kGE|{GYm|nCrWZO22E^AfFTCJAiLX&rphhtYc~-Z3@QV$ zLn^y2C7MJ=scyL)*wsyV{Dh46N8m=krtopFzmxe{n3C(?CX8!lR4T7umLXH{@9J{9 zQ;jJXQ0epOExSyo^_?K8E>fOEZcoz6R)n~qQU8sHIYZbA=H^n}O3?>qch$1QJIG|D zvhDB9K>4>efmN)+Lg0{Ye=Pddq1LGB~WLB|rg}0TT^7!8-^Pi&{zx z4J}=Ja*EYI;^8NQp2t z)V&uff$Qf{`I@UMHaJFStEda}b}W~%w|RGWHfF6wmaO;;6_nHqx1Js!>mw>EW;wLF z3X+`5jo)lyE%J=!8M9m-N+`z_mEI*WR&%WH|Q(cd&07?#Jc@rF# zi~%IWWddK-j3Jila`={cKt(qDh7z)#GLv;>1SbTwQ|41vRIAvnD%I*I&o1%-4>C&QqOl97VMBT>6|p6XOk)Js$t(qy5-BcNnZ`=mm1$exo!E)jN-UzTqYMsD;m%2jc#vxQ``ve90tD?zhuju*BvQ zH-NErn0r*4#;sUfy_@~-Kr?dci_;D0Uftk!(wy0aa%kZ=9B)kZ&f{Dsk zO|`KCGS%S^xNfU$e>HA^5K`PbN5zKV-1E3+cKoY2rK`;&L9hX2RJWADht5vj)`F}P zWQK9Nc?IN<8slQkP#uoCGU_30B?cg$sUs7#F(d_T{o{8h5{W@#v$|9S5Ifg8Ewp=k(%d!gZ9;4|L1p{Ys1Mk8t!cOU;CR~>_B8kP>y9xsn4CTrft>Bket>z@C#GxJ=jQ%$5k_ZLw$AC)v(Yil z4_c9Z!`Ah~JA4?F+FaN!R5P+4j_kLV=jKEA$4VeI!+p<%UT})>rRSe0Tzw5_X+)R~ zf;lp2_`Ik{546Gk`~PjRXb~Wnfk8={3w$Vm8T`eFauB|!szTs#PhwR76+MGD4$4F| z4((1&hrhM#FYsF(2mzwK)abPXk#XJ+u1DvmDnHd(r$XpnKm7w*oioR3a*I`xsY{lH z+E3(x1SV|SwJc9vgH!X6{^f+?1K_c}zJ3uMSsl5)(vC;^DRt5w< zw^E{P{NJ71hJy0yZ@+c3^R`Yw*oahgC~t?Y^$*c!V@Th>ZC>Pu<*%W4#eUyiJuB89p{7Y+&v(|Z)C=gA-p>%T=Cl56ftTz?RBi*rZ(01a^2#}3KYBbs_LxL+n~d$ zOVKt1aaofxNI=oj%Xd2UmO|fQcoplUFK&x-oq5=q%I#3SFaCtxFA(vi(QTaU~|)>o>K0#7H#!2rlTmi zUQxO2b4?Qa^*b-dt+L^OG?x8rQgKqO^GPr)39}CLF595BEuZ1v5Z)@cwzlb$=}#pu za?iZlJi4awC^b|knZf_5EzqK9R^!rW0_{ieukna{i01AFuXeDX^p#8j$l-10^Z~B2 zFl~4ml*;2ml^4a6FO0UU_cY|=NQLltc2@ffzqcJ#}>53@%5GVTH z%EZY^K7Q1xJr1Q_+LbVCZvmjb8}J?>FmCNx-@E^8az9G;5M9#5oqCs^Ko1fK>qAtL z;kbGJ^}gnr$`o=tTHe`X#wy<_NUN8XXcH1y5}m7Ty9?|q*Z$WQLj~Xv$x?+~d5!m}myX0Yd{Q&I=BgM^B7JUH)%uW{LBTQhD}Xf)-q5z!fLVk<}e+ywShPR5L@M(#gz=g&NXWK9h#*|YX?LP=bI0i-m#hk z1Y#10$6DpoJLSW7F~dUMA8}v3>#V>ccmT_F$kaZYpO&t7@jxWPZ}{3JDfsetN1%)z zzkv>bHq3R~EtOgwMjjE?R|Hgu06=Im!3OR8@RX=bVYP}-1@>uvQo59+yJy(Y{T@>y z|0Vto<=tN)8+oF3aTyr$I_y-OjcVHt)mz&9Ve9_9!bYmJulQi7mjXOh6V9R;)G2I1 zAE6q4{yaQ} z)M7*pNFah&*j)`ir_PI)$+E)mwNOcy%%$ylOTB_rf%@?E_x4JT6>gwsW z`b^g6>i3QHdueFEb?n_%Ihal8OVJpgTJlXNeh=>3BEE@w20hdz{hNcb)#>_LOOdFK z+D5TVK18tXE2s`(Ia`%YNaRH+L?C6J+Y*2&P{jMaRFWAcEJ7%^MC|+6&Etq!ai$qrBTx^R*qVDthTu+m7mG41qv1Dgs^n4X3ix~ z8OU{EgqwOcBu*214zsgY-91u;C`Mml*fjcE7Oz?C@;!#snY45nVw3D^tlMf0=Qf|# z%B}aGO^V@K&@T%ab5~+6$w=-W@6S$B0gbFdz4+W_J-=7u#+JD5Ih_o}v0Fa4c1JnU zf!tMLLV&Gqg)7>QlVSYAjUhBr^5YlNVZ>Au^5-j>1>XKf)SFJgEcEX3(x&sxB1E8t zVTc*+oaI2WlE{T%ZvZO9E`n>GVu`N0B^~>BP)UH$sv;8B3z^q4t69Im16dHH*wi$W zb_1c-95#cJpCb5R*~;Vn9QFz=RR`yP*5^|;VllV%ZhLZlu=yZl&>3Vyx&-FKssI_~%)ozn-CpS6USa6dD{u&u{yfmx)jb3=rN!irz85 zB|i^b3GY^}L`P6mr7AdFv0F2-M}xR7nx4uiUk6=oB4ugsm!oG|Uw#^nNH+;T-7J<1 zGP+0$JI+qzAF*uXx%xOE5)(%8NjNb;zoy99eIrI-mxXU@WvYs^@-=27B(oOpCOh^*&o9}L`WG{mx z@nlqsnZfYF^`FWaPeX{BpAD>ee&0>LB|=1ipHkH#nKZ&XEAHbRW?Oaj*#vr&uj+_n zlwrJPfT21nkDS)xohwuiFg+RJ@s&N3i5>>sJPBN1y=Wq|L~5Kk@cc71qLj+l?QI7u zb_?GDsw{=v%qvQF<&8;tF&5&wsLO)S1q!#pQk7a>ML!whDLtH6I!0~$IhHzQVj!;b z%DqDCLWg!35yppCke?*H`e9PPx*V=(zI=zm0sn%ew4s*Tpe6k`iJOLyOSiDtp8mSj zDTy&^NibFQCkP};2QEi|?Si$--jFQyO>!b;auoun_zu%Ny>>>PFGCo-sKxC55vIpQ z4g?*T)X6N2y3o2G95t=6$d|6~rBKt1u)jN+Txe&S$JTAVDy5BaMcx8%2*xITb+)f< zGWwQuxKj)6&{(E#dh^={-uP+!*Q+hqLwzLLp4s-yM;W93MA7A=Y7iat=i6xD6sTkZ z{NAgJxl*y#++5Dr+MiqBR1jDtQ4MWo_YDeGg@IVMHqfcsT}V z+JIYRqG3h=M6=zChXY4WrR9A1Lx@l zaa6D6X0qV}6fl3kCd=PEA{{EZlO|$;oIk4w`y8ig%jE;7terg)y9Su6JGTJR>j(mt zjTfl)94g?@`;BI-ZKaCFS6i|P#^wqOm|faOkeyPN(7zzn@4V#;P2;<{L~KhzR@X9-&4lVT-xWY4=8fW zx$JIvTk5P8HVAl44Oe_&>tZWjaR=Jj{JRtMlzNM6$y6z+K~5GVe?U8vRBsJUbw?z{ zX4Cf6Em|(-ul3M*{-i4UqYHNdm=db$Bwgs%Ho=E`i7;jAo~K``B`cU+Sr#1P+mpyelGkF-Vfdg?uhdj;#TZDx6{pi zvi-5tqurV13&;Hkn!MZjQ4MsVCw?7B}+L0u!6 z>gV1ucqzrqNuUSvtlq#DS=m)^JR^O&OZ84*?;ObAq9AiT-fFEP;K91NVLTGL4@fbZ zz4bR+Nt$gML=fIqu_objlV_ zE9GRfcsq`0u^r2ogf8p4zXG^92f$-#hINRc6oYpTX%UZTr`M`}2K3)A7`Zr?6B=!p z8KfFG^x>4;cq9;ljzIAId3@^gJjL0f>hgehc(G|L1!Fk9b3;&HJa+{;zkfdr1X&0WG&=gBy{gy4DZcjVfx3f38<(DFQ`&CSv&YrNLdB1LZd{72 zaPtQheo)Ns-8CLS&N%y}4_=C5a|gs6ZSpX>4`^7vd+~5`uKuc%x}lkhY!wqP0PkG(y)GHdAX45=vI5wE9KS3;wR4Cg*(w@G_P=wXfT5e`;AyVUiJmjDWjg$lxx! zM*?qj+8;X^==awFjObtRhF97-vX34zY9HzKgF5Ne21hg#J|maT8Vg-2`$U5M2LpQ< zl^=F`)E)_%vPCi3cOpqBI>6|Ivp$~&dT-v}uym+>{3eSRGGy8%NH=)n6i|mKHF9zN zVa_w}PAK{I;I-|09OCqI*1;agHVa>%{PP)i*SvD*vQB$yy9)T3pK1@mebxtw=YF=F zgjl&r_WCw6;bV~f*=a*UoE^jD5Fe^-O}0q6t@0#;#O4-F--nW z!swImPOY{^y<5Rk!OkVg`8`L{j$I!9+|h)eJ03(sDnsg2AEy{6nLK<^J~a<#wNh4> zX4b@6suMgV&AE>O9UmeP|5XvUAGhPH7TVy83omM_Dp)o)$7~Er ztDJM)Mftw5o_jrWf)3M@GNOBER(9~Y!ddc{*?zw?4X=kCk#B#V3ND%qeZDrG9vRc7 zMlZk>Q9s|F7o^%03;OTeN`kLEZb1xLfSOJ^K3VDjbC-RgA?hLk$+e)fU@&K{Y`myH znLg2S-snu?jPmJY?|a?8&OqU7QA?Lj9B~Q(JgT@|2AK`WQY299gwfEcXy|u#fuilN z%3pySpY*crI*O@Tcm-*}io$2NmrDjd-T~DN9qtn^tZY_Kb{-M7lgHG$yNheRW!HBv zalTj_(d@Y)R+ZPu5RP^<&sSdcE4uq zn*9bUix{pmOIe8fAXYVrkHAbU8Oe>w9=iI7n7y4)fAgB=&Djg_Y=l_pZRKs)9;x&_ zz2ej9zsw-x|JL;~%2RJ@i(IA~RK~Gh|I~SliF-u*GEv!jTSZBa&Hk_h;?!M+bWcz8a}C!~Zxv`DlAxZKy<_-4i>EN!}0R8m%toRf_I@$c8w!Xk^o zbzO=EzzssUk0l??t|k|2m@fL^l2l%XbGA%O12Lnl~Qgo*q~Nn2v7dUjsnIr4Dp zmAH&Ck?&qr;-s+>_CUK8<+sq6A#Rdw{P^1kfX*&~`J{@z3{n)9i15Wplyi%#JZ`0D z+a6K5EHvLj%Uo1X_{4uJy(cFR>#^wx|CacyyzfXtK`w~o2Xb;c5pV){(Mp*9^Z`vW z-uPQ0_YJtq{2^VmnTU}EyD3hIkt=Cta9wIH2};)e3F5UnFJwXWte9g!U9nip6b3QX zH`{2tvC>k~ACJwE$hudPYbllHmoNWofDfCh=JLwd*r|j>;XYV{@c*L+Ah_~lDvmqI zg>1zyvU@_>HD-okdU~I$y7&_0;#a1iyg?cObcV_&3XA*G?^Yhl^q87@!4@YZrd*BIN+%#V_oKn}Y^PwD;TJR2~k#eJ6djU&NWePejm# zx)*$>b9?0WZCfny{dsUg-GC6&o+x7D#P#)r*BQUOMc&b#)Pq4;0w`%t=Iie)gkZ__(Gjn`iHBSP2-KIk|!fT6_7@ zLCH8Gl~>KBP_od)krTxS1YOcL!`T@yiw0IWYH;g!l0AIJJNg)u*DgjMB{9y4SWX!g zY9=|BjMKTG@YcEId`E|0x3$+XxWT#4pL?yP6LJ~+rfek$VE4x?q`I!w8*+$3*4`_r zG{cbx1YmSh7~eU;hopy7e~0@8K(J~nIOB?DRSw@g=_L=8NV1 zs}G~M!&ynMJa?l6O}_>>3v=q?Oqv%y=eCUDhllS9Q^m?g~@rVEuuh9T_#>c ziz4dmpARC)KyHbj;%(GYWMhU-C3gz6`GJHE=jo2c>Bp}w5rJ}8G9o4n2xwS>HUWZ3 zFU0Hx#=_)3le$ejsApoKbov-MSv&3=xUaJ(Rd1(G+aNdZ7X@dku>%FTcAu~cn0roe zb5O#L0MaG;q3Bl*>0Vnk!h+w3S_GQDt=B6=C#YDO(5P(Qn0Sa$H>+!=%fpR> z8m!uc=u%oieWnVfa|CcHAEcf$2ejWN1EK4OK8?r!t3ty-qf+z!in;Tv4!9qT1tBe{ zxIrJ}LM)k2)0e4Bv>+69CN2oYu+(6a=qTZ$#iOg@m|1)Hgy(-_v$#A7u^#%d=wZElF*mfiSb`DRZ4UU&ri}HH z=UV0m&%0#{hwcDnmzF^`fo#zk5;r`Ft{iIAz-Rdy_(`=6wh2)PU!yX_y1dI)ENJD@ zAKUmn=oK4g>E&85&mwk3}B8~SLxoN782N=z#PgJZvwb*@*(s*oh z?D4aaU-ZBb-5{QKW;ap?j3JQ?Zx{A4_qvPxxQ4ErhWFKqR?ggyeEO>pY9N5y7NSiu z)nQ@=GgyJLgv~=+M#a5*U~c(mRba0xuVIZaz*iCT38g%nfUdI`s6m1z?__?ce)IPW zX^(QP{$*DDW#v@-m%Y{_4=$m%^1hL*08{pZ>4@qrc3u+fpbQ zm@2Ja1&cX*=SWmn@gvs1*jVrHcfgPB_hR*~wMoCcoa?i0`COt~mplax+w#k*tU7&c zlaw`;5-E1E!v5$pfj#_omY;7m#aG#8*+N3mDI@;ia~bzw+(>Nq0-8_SSR1AK6o7HO*cXD_7zT zkuy@8AV^Nwp;7V)j~n@_I1bRmG=z{B?Z9zYTmwqKx9{&Yo~q$a2$y!q6+~mWY9dWq z$rpcozuMh!k*K3|o^%GRd9>P6&Y)V$OeR{bF-G0;;ya<(ADVh}V8ZUMeptj&9%@)* zIK+mfsiq0s*1a+WRo%VMZSCUdMF-krn2~~9H!Q_tWucjUiR_10q012N7)c`jVsDJN za^jJu6De^&p=#{#;TU`k*m%kGMAW??8-h94qa^dH%S!jo9BBZBlDNF8m8|ZarB8#; z%U*WRleVCX9$yK(%NM2#I8mgZioD4MoAi`$wYU+Oeg~wmbNtE$8DY4yX9C0issJGw zLb|(r2#T1Dk))+X|2%E2tH--~_WlN*)JcC!`);2(PfR`12X%sV|A zm}OuppvnPc;D#i;vCEIX$g`C*a{XlR1cmvr#1eQMp7x8wR@{!Zp7IY0~%k?Aa9@oE87c5TkF8A)mA9^GLQf4qV^GM9-?BE9x%WW? z3J&VU3@rFh@`Zl}m=#O!n2QwQ0KTNYsY0>iOPw;OL zRgj#v)+E~K1L)zH(9ZzsC^uhD3ZzI%xSODjMg`n89Q>I#Wiy(~>g?X)OFUAC)DeGG zTWgf|JbvCmxj+*X8}YE>X=O4Up1*@vT1_#%U>+uz#p|Ttzq9JEPW*;7Eb{8Eo3E5! z%$ahXLHZ8MqBCi1vL5Y&ZePe+YUI_}ZUkr5{@cS>WR-ghPZ^z3OWcDM9B)`-xpQQMj z)9`>1>`X25Zk1qORz{(mYsO7LMLhVua#mPG>T(V~%DWsH_pm)feb6U*C*GcehS?br zLL$^OoZ|WYQPG@LnVbsfev}~H4q_@w%JPZADEMhp3MW@hih)WV^;Co!r?#|ejlNIP z)&y1DWHqrr+)W}@d@6K0%KL@3ReU$6nG!;^Tv*6Py~#K#>~okfv&})kBmQ}li%B5j zWeA&zJ;74z2TYPd)@{?GxeQgV=h3e6kAap66!4shl2XtIPTPp=48#v%{Z2^@piQ;D zwl+$G1D+D#sZyyP<>+EjsoIa(kzhxmG9`2zi6V4;zoGMrZSoK~(!y0hK-<0VrHG~p zj{q6ZQ}rFC7N*|MN$>c~gDuVQ12Zs=W|m*%m?x>&F_js-kqkKcm8KL-H7h3&5RCV? zDJj~?G_aN>Vl7R@nyHAE<-96v{|RHUvwnSWMR~22q=RuiT^c6`_%_3WNLkwSR~#o$ zw=l(3u!h9-)V~wY;n{AM`;A|iLDSvT?ncjCsSoQIw5uT|fSG@%Tsg}vkZUE1u^i#-W-N}_(& z^KtZ&9l9)zQo_*SNk#cqW~1A^_+?{HCMs(dYHI!oipNO5u%mSO-|`PW4g}}=;88vo zTy-=I6P8Z_{7fRsrMrXQ5-rBLMPDL^c(B<85HPC=6Rc9!ea_( zliX?At?K9Q9!Ba3FLUR=ioF$wgLFiXwO^sRJSL?M4bzS$Ej_b09-){(PuhKAT2IGG zY_RWsQs`=pX{#6*I2#Tfhrc?1Q&3fKkQ3l}JS`2npP|7jApG_T0_$o0`t?n0sUM32 zfkwyJJ-sw&pPu}a$?2A2gg!IuS8QimaPdYHhdUp|g1d9zMQVD>EBAyVvB zaAOLS`R5l_>$49=HPJ^oSBZ0h7ynUDQVhB~uZKtyVcP7p5 zj1d#8N%oV=VjIRh9ddXnKJNzaw10YOIs`LyW@T1FFxSf29b~-nXbfIncm>HM>;Hmm}a5 zkJhxOXczPXA5X+1UdWNY>tsg47?? z6@0j}QZJ^xyvYWxH3siHB7Bz3gLa>3KnO{y>~r^+xp;D|mpZuL)u%4(JM+R{_1WrK z%}Uf#M~BVd?4fxxP2LXb_)ZI?>@%jR^Q+qJs(`BZ@G`3aD19TrpUuC2seVja_j&9$ zjflw()V(MW@_SQ3L~|e2RN?FkwM`9wjLlJbRgv;JK*JO>?k*5VJRje03zkHTeE-8us!wJ0$E_30^|1u+l9(P+CVz7sO7vG?d?Z*Syns7CW5E)=p6UPiA1dIj>cS0eDi zIw?Tr@lh}{?DMqUC9E)L#4AJ0=-d1dU3%r>dDQXOf9e^pxL@jUlR26wzC3|vp4y=YJW^S%I-`om63=C{CrQzC@Wilq#2kEELiym9gG1e3Y;wKtria~F6 zp3OIjOWLNDC(*gt=%PUs7E^qS^GaXI209E>?Uu{{De<@oDQJUJ|oHA~nmpkVi4~Qpy?r z#_r8$m)8K>UlSKFy`%k46A4NR?a)Z=A$spw!MFUxN!4ge}sEU)Q=q2kI#Ns71^_eRn7t)8(H}x$N*NE=6kU@=HIN_pAqMH zGh2MOjd;@gbo{hDGKq?xjLv0nrx=-JcjW@ARWAl-8Gk2fW1{A>o6HcgAGMXzd)g3~ zXRH;78&H}rbvNB`-;HM=&a>-(PPD_BPQvIC&d*Qv=lSN#ElbLX(IiZPOQQ8WB$h0; zmr(iBh0$=L#S)oNsFFJuL>aHIFN}cwpCgEfa@ZnWzmH?>Hpvz*K&&ZrJY7_7W^2qo zzhw00@9KZpL6Ysz)9T)m*xY2IXh7jgsss5 zl48X+e}Q5JtXn7^t`^9_iYL|5<3=}D+?s|M;$bs&Lq~JZs%U*JmG4Kj&JB@P0Y)VW za8oo~^GjJ-vrgRe=F<}9lDzHkb3n-%0Kg==VshhX@u_PMzl4ztd+p`HH9~5s zj3&03Bl#dz)pU}_d)x#FdXtc#*W1n&*(VP%d|IU}*V znV_&Ar*5%Xo@BIrmgUSPcOB0Zre)YVRy1}kCZWKq(*nN5ZLSol!<6G3Q z#)_iC8naR&yZ77Txu#atl8Eh)%D2HK>6!xp-#j1oCM)J;;`G0c@ddq6Baf?kCe41* zEci|YvyC5kKgR+m3~+?0ko~Ik)>Nvkr#mOglG~3nbh=U9R+mBo)%D4o1PPRuo6_j_ z{>ny#!w&eWlClos?w(OSbU?rfM2sJ#0F?x7llbPKiuonY=N(AsU4$v?6NK-{6``Yf z(`2D~Fe|rAl3$Cg9MNM?O<^S};@cBd(K)`5P#u=I=pxR!RnG@uTnl#N5)GUIl#P zZgb9@hZ6W)bq-*mDgYb6z$_i?N|IA!iysO{iN01+iEkxoRw5Ko_*Z_PWMYV2vrDJl z%@c)2cULj054S*;|Zf+Tc$=5BiTxH!7x5C23Lh_C>Y%qR}I_YGmRVXMh&&hAPl4*QYn=ayarIa# zrQ9LU0-uTftsgFPK4w;U=um$+Vnnu>7!P`=V3IR)40Av#fo6(Odu{##>{v?1IEe}T zq%S#od&*$Cqo$mS7hzO{&L-sw?={r#ntmMk&6UDi>serrh8MoOyRrj=h z@iLN)rP1Oes>b>NDH?a;DqiGS81k08gzbRG+5^wa0qjOo{w6Xs+TmN#K#0PA}&Z)&lj^l&3JzXW#4hCZfw-v-OF@63kqN#@jHGe3%{= zk74P78uYX8I0F@P+G}G6Qd89Tq=lYM9PbXM`c5W^X@-8M8_D}BzOUShgM>FNo3@|6 zK;j8gw$)=56B(a-%sZn508GOt1?PR3w8O6P${@W#ECIkbIh-TLDG@~h@VZZNqAVK+ z_m<(}y-su;7nyT6sa^xtrhuz#Q<8ep085WubKqy0hbM{5c8LWX^j26!(Q#S>;`(!8 zNjnY=Fn};~_BDG4*?R2~9D{I*aa$ahda{!hL-pYpts!$R;&#$Iw;GEnhT#RO!s6Qp zEZ|% zi@9Dml9n&z;rK7z?BGHYgUQkc8brm+7nVnzMKFFCm z+e+_jk`&o{G@Js-ou(*-PZGH85qle7UJGOQS?z4C#h{e|ag}3Gh<!2OBx))6Z3$Q~Y-H;k zG!&E^0PKXUQ9l2^SG;5W9%FAeNXP}`T0rOCh>_SvMvhe8{`(o{d z4ywz(-% zF>F|P^>tq{<@b|_!>3zcH7TL&GX{$_@{|91QNVhRICTPVx?Iz=5sF<4WdAdh%&jc3 zs1n-CLa+qPh1U~u^Phw>9bP@;{E8!sYhv~Tj0t6njcOvRg!zGdG7O3WhjeT~v28cL z%_;f21~4Y#Ry>-h>K%j8r2SM&6l&(tiqb1Kj=LtNPB>ZymVT+;|T^dbkZ6o`7#Sdz&NrBPraG916BuiD7 zpqIL=B#N;LJa3iFdQybxRU-sPfR;5{H;`}(ye!@LViVN=T_}Q8j08lE*;S{kWLMp(;!D1q)LMoR8v@?B!|maGKw42zPkZ( zSJGjoHsmDrmGev|V|P<7v=x6p-j){!*1skdZPs1uCD$DY4~sM? z#mPnz4NxApKlNoKKMAKaqGO32gsvoDJ-G>DCFyR@DmjL@85lsT;Y6ocQR(rLqjZMg z7DErJ2L%&Y-H%1hiE-o?jOCZ$D;voBhy+0x7$hD(;U&KN5jgi6ew*6(OK?i~-RwVX zJWEkO$p~Ss+(5Zv^%3mRzq-0$j$+Rel*9=$*EX00PO0qID(44YNo(Y@ERh39InRt{ zFub{;vutgZqC;=3RW-jGbDRzHq*E8+^1Li(y`vmtJWhSs~&e zCC7Z^MCfBYFY90OX{9#3!G#-&WOBT3 zU9f>|UNMPmON`o30^Um^I56*uSPdNDxd7)`wTL;Bi_(gHaj2|58R)+u7oNQ%$p)k-W*UDo5OwC+Nmf#>%>KtrXn4;bC7s

N*t4g;P5V#=m81k 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%0A94J8(uV70oi9$Q3`fvC{R44I@dY$e2o~gV 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