Spaces:
Running
Running
Commit
·
d311a6c
1
Parent(s):
ae672e2
nvm run build
Browse files- dist/assets/images/256px-PDF.png +3 -0
- dist/assets/images/placeholder.png +3 -0
- dist/bibliography.bib +24 -0
- dist/distill.bundle.js +0 -0
- dist/fragments/banner.html +1 -0
- dist/index.html +454 -0
- dist/main.bundle.js +106 -0
- dist/style.css +599 -0
- package.json +1 -1
dist/assets/images/256px-PDF.png
ADDED
![]() |
Git LFS Details
|
dist/assets/images/placeholder.png
ADDED
![]() |
Git LFS Details
|
dist/bibliography.bib
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@article{example2023,
|
2 |
+
title={Example Paper Title},
|
3 |
+
author={Example, Author and Another, Author},
|
4 |
+
journal={Journal of Examples},
|
5 |
+
volume={1},
|
6 |
+
number={1},
|
7 |
+
pages={1--10},
|
8 |
+
year={2023},
|
9 |
+
publisher={Example Publisher}
|
10 |
+
}
|
11 |
+
|
12 |
+
@online{distill,
|
13 |
+
title={Distill},
|
14 |
+
url={https://distill.pub},
|
15 |
+
year={2016},
|
16 |
+
publisher={Distill Working Group}
|
17 |
+
}
|
18 |
+
|
19 |
+
@book{textbook2022,
|
20 |
+
title={An Example Textbook},
|
21 |
+
author={Author, Example},
|
22 |
+
year={2022},
|
23 |
+
publisher={Example Academic Press}
|
24 |
+
}
|
dist/distill.bundle.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dist/fragments/banner.html
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
<div> <div id="88bd2bde-2a9d-42b6-bea3-2a6d06b034ea" class="plotly-graph-div" style="height:400px; width:1200px;"></div> <script type="text/javascript"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("88bd2bde-2a9d-42b6-bea3-2a6d06b034ea")) { Plotly.newPlot( "88bd2bde-2a9d-42b6-bea3-2a6d06b034ea", [{"customdata":[["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["smol dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["biiig dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"]],"hoverlabel":{"namelength":0},"hovertemplate":"Dot category: %{customdata[0]}","marker":{"color":{"dtype":"f8","bdata":"NSuP9zcJI0DzwFYGn0gaQLZzmkZHByFA+P+aDpbfHkCwxIAvKbMiQLxO7ywDOSFAkrQilW9qGkA42CJpbWcUQBsoeWzpYyBAQjfOKzOZHkAirl5Y47kZQHo9O10vahVA9tL3qjtYIEDDffk1l7UjQO4gDWWi9RhAbl4O21pGHEC2NukPe44cQEBdAmUkehhAaO9vYTNPGEAkKuTDTKQeQCwfNyVGoRZA7AXlPkQVFUBBS1LPtqEhQHjQxmS+fSBAzIXDZfEoGEDwmCYU3FQjQNBMefzIwx5APDOqSw25FUCJceoo8vQeQP7yGSlEKyNAQTLBxzJtHUDBmCp6+7oiQBoQiWhE8yFA8nURfbx6IUBmXmxn2ucZQCV81yB8MR1APe9aowa5IED5TDni5\u002fMiQE8Bv4u6zhxAuahCRUDHGUAuRAEnvokVQK9yTdCItxdAS9Rm\u002fEJxFUAkVNMOqH0XQLUcVRC3QhVAr9JC7d6BFECx6VQKAsMZQJiTu8jHAiBASNpbXE+iIEBuNZJTAhkjQDf4LRmEZRxAAc\u002fXZA4iGEBoI3er6SwbQDzSHSGc\u002fiBALJKQx8UFGUBnxhDVR5kZQNxdroKZTRVAmIzuoRi0G0DXi1x1ruEXQH4OD4n5ghhA2GYHR1L1HkBGY0\u002fvvsMgQFQklZCQ6x5AUoEYHYbFFEC9SZgflvgbQDubyvxZJR9Al0AR8t+YG0BjEwai1O8jQIm9fGx9DB9AJ\u002fViqUi9FkCP01kOAW8ZQF\u002fwJr5pmCBAsN8BVrmfHECAA0NocFweQEK4F2+EXxtA6ie8cVJaIUADJI6NekMdQB2bndnvwxdAjTccD2guFUBBMr6RvxEhQHnH3ClkthtASKBd2FYgIkAOCefEnMwiQB71sK8twR5AKix3z3LvIECge2K95\u002fQjQKKwiqhdnhdApBqwIX9fGkBjBAhPEWAbQNxyN8qJEBZAFRHupGPBHEBM28zFik0gQHsg478ihhlAx1QGiQRgIkB193H6ybMjQAAXe2\u002fpiiJAFofW\u002fyalIEAvhq2s3p8bQCAw71hf8SNAOICnOo\u002fwGUABkT73IBIUQDqKRFRq7iFAWuOaJsGiGkCdNtGT1T0eQPwUzYZdhhxA226rezPlIEAK2rKtZCYhQM6e29Px6RlALDlNZmBcIkBF51ygESIbQARdbLsmGiBAcPPGqWmoI0AA9vbuxj0fQFLy6PqqKSJAX2nTXbL2FkDk6uyOBjsgQBIKnNMwzSFADkUJljHpFUBRWFONQhkfQF7mpoKcuR5AS6GPzhyaIECWv1cvA3QiQCTJYvjoRh5AFSMr+II+I0DAVgHpCp0ZQDLZRRIwCx5AToyx0piwIECo1p8Myr0fQOSPrLgYpBZAM1UrnbGlIEDy552AKr4YQE8C39hIuiJAmPTyZN1jG0B9p4nAEOscQDBHdvtiPBZAATP1FnlSIUC9lsGRS2sUQHTHAX8sViBAxsOQHXPOFUD8JQEmPBgcQPrz2LeufxZAhNMjenowHUBT+7k7bO8YQASsYAOMfhlAef5a6KU8F0BMqKTYMfQZQIBwogq5mh5AsyQGXIyzHECm+hE9MjwiQLKGFnhocB1ADTMLPgRxFUCO9NdLNYEhQMy\u002fTuw\u002fwxpAeqAQGXgoGEDg1wTLsCwcQMC+x+kqLCNAQy3+JdgJFkDajzrsrUUUQCi4qErh6RxASsFgzXDsGkAtogkxtf8jQPLsdJgkxhxAKjnbSbMrIECWefuN6fMiQKbpd2eHxh9AbEz3spPGI0CA3RaqTq4UQJhk6nfe8xRAWbiqkx5oHkBbUE1wC4MjQLr9sg+1+CFAaXQ1CDK4GEBi8yblEzcjQOUy6xGLuyJA2vM+aS8eIUBDzKhWJ4UjQM2IV\u002fUqhxpAgZjH335aGUC\u002fCbav8yQYQBN9THrmgxZAykj1ErUCHkANqY5Z1e4hQPjVtvSFrSFAIIEFQhyPHkCW76\u002fZUPEaQEo256Q8ORxAblmeP4aiIkCueeDEm3UjQEXS4+kRdiJAjeNXaVm9GkDYxejIj50fQKO+bcSJdiNAr5cChkQcF0Dvt+qkTPcVQPShkHR4MR9AonlqcvnTGEBvTbvwc\u002fggQB\u002fmUxg9DBRA36HYc0QHI0A\u002fOMEnWU4cQI\u002f5IjbVpSBADkL2EA7EGkA7x\u002f0ADSEhQGOxHli7QBpAElvxWLuVIEAEPS8PokEaQGoP7+CiqhtAelK\u002fncH7FUC6io+f4MgeQI8O806nQR1AAJb6Oue1FEDH30BZI3gZQLSKZLXNqSNAt0nJeolIIkBu3y6iCqsXQLINEatrzRZAIvn0fdw4FEDA2IWf83UeQKEy+iUjBCBArE1hmsbGI0BklE0I9kwZQGM7pV3HHCBA\u002fhDNXYsOH0AhE22eArIgQIYTUgxigRdAXitsu7eYGkA9RXE5IPYjQDxwmauxkRlAfDYQL6rVI0BUgV+Ks3kgQG6AnJhXXR1A8or\u002f2hwSFUAIgfUlIwsZQDTcZVLumhxA6QjirXc3FUA10SE2ppkaQG\u002fchBsurRZAEKqnjjRRG0DbXS+XVOMjQCR+klfDvCBAcvT5sjPmG0AuEZiM9VkiQE7\u002f9nPMwxhAzUNaGpsYIkAMFl+iM4geQAbi0IVJkSJAXxa114t\u002fH0A4LZs7SxMhQCPR49QEkxtA1Jk77+3lIECI0aR07toVQIsuW1P1hBdAR4MfDSR2IECzOdYNDI4hQOpD59D\u002fEBZAiERnFZezHECEaCFOJH0iQJ6LD6MStRpAIPg8FEDaFkC77pOHxHsXQIKYaKpe0hxACHYgLLeVH0CMjGdWsu0gQAp8kRBXiiFABnaqzwIiHED4o8ohaUYjQB6ez25KZhVAODyihKQZGEAVl18M61sVQGTFlTpa1iBANQ9RIDogI0A0b3ba87kVQAxFuokw1xlAVn0YdOV5IkCZF1qq3xEYQF70crxSgRhAmjv\u002fDYqqI0A2Tf\u002f9wFcUQF0zMnYpyBVAp+Va3dnnI0DrnbA6MMwgQK2PaoBKXx9AvDk4yCcMHkCMHtGK3hUiQOBifysgRyJATjUTFEe3IEAgYn34c1QgQEvJtnn6nB9ArB0t3VRRHkCp64NUq68jQOwK\u002foo\u002fQiFAfOBrePfqI0DdiBMwugIdQOw4g57jZiJA\u002fmRSrrobIUDgwI46TQMcQLbiHMtOfyNA\u002fKVcwF8gFEC+RWrXTB8eQOZRReUF0xRAJG5asaiVIEDakyC8ttwcQGbJjrgiCyJAFUL1ynSOHEBCG81wE28UQCrioPQFRyNA2PjDcDBsGUB4mAX+diMVQFdwfQyOxiBA9OHZFopzHUDVGh8\u002frCMjQMrNAYaphxVAaZIfeQx9HkBDOPxNx0IjQE9mdsWUJyJAX\u002fQc\u002f+2mFEAfi1InuigXQFDGmnvezBZA6PU\u002fkkx1IkCftvrATAcYQJhU2m0ywhhAa+DPV2YBFkBjxzSzkyYhQAdYVtH4tBtAQnTQUPrvH0Blcff07xgjQOomWdPlGRVAHftwUzmWF0Cu3UU8\u002fQMjQGNEGODnGyFAI9CO58OXIkC4uGz9+GkeQL9mwKcK2SFAiCDh8DB0HkA\u002ffgMr1AoXQCqEn79enR5A5\u002f4QbQF\u002fFUDo63HexOYbQKGlPexgAiNA7w5z3\u002fe7FUD7w0ihBSwWQPObsdTv1xlARBUncGKNIkBziwdUxmAhQIJc4VeMchZAyNWlhm3JGkD1cSz66tgWQH3dkv6F9hlAnJZtjukzHkC+gt+\u002fyXceQGuFps\u002fhsyJA5RxPbzDJHUBngvyx1AkcQPq8r9pjxhlA6lCggb+pIEAkljYd5PkUQAoR+A4uZBxAepH5CPOWF0D2xOpi0owXQOzzMRoF\u002fRVAimoq9\u002fDjHkBCnaUXrbgbQBvV9Dlc+RxAzhvtX0bDIUBeDedw3NgiQI9ETzyi9h9ASi4PNTLaHUCaJ5fLdK8gQMj5UGSR6xVAUmrCJdbYIkAZMNcR95keQKkPSNYCCCBAXFQQu7B0IUDjTOlgmtAVQDw40sx3lyBAHcAuNNttF0Cz7w7mKb0hQH2I2dYpoBVArnEF66FxFUDiyzTxOfsVQD10LW8mDRpApmGJNN4AIkDWaZ3JVGcdQDlgj\u002fvhrhxAso53sF8EIkB4DnaJeHkiQIxYL6+8JyBAWHPi7bYIFUBHMGhAEY4dQH\u002fu5BowQCBA3KbYZVFMGkDeyXgP+iwhQCIhfAhIyBlApYieNe1bHkBjEq8JlEcZQIsVC53D8x1AKiHzjaXiHkAcYAKff1EeQOIpVwfIViFArTruYthVG0DnODsdngYeQIqpzBDaiSJAetNrtQUVF0Cs5RrCv1MXQPy\u002fs1wPBx9AcVZi3gmMG0AAcSNO7GAhQO7DrwgelBdA4I9\u002fCbbRFUD02rnmUXYiQA0nAofWmxZA9lpQ2knmGEBIzd08bWMjQHRwoyEaExxAnDR0LaLVFUANmCOh5FUhQJSfonbdfxtAUjbX2LijF0DaEYkjMwgfQKvTLhO59x9AAdAuHiVqFkD+wSLgFSYhQM4UO56kBBpAwBrh7AVxFEBnSg21iIIdQEU3tP5vTiFA\u002fH7caY8FGEA1ZCiKw6MaQNRXiCFsAhxAHKfehkc5G0CMiz3qO38XQCjWrBo0vB1AHUNHqkXNGED42SOQswwWQINqqlljQCFASO0cCsKpHUDXqSebilQZQDc5kkkoYxlAQvk0RIkGG0CCYbCOrWgeQIA\u002fqE12PhtAcXFUY4VkI0AOyXgkkBIeQKJvQPHYtiFAe0EZtDaYIUD8\u002fQlH7V0WQHM7peTEYyJAijXMZdN3H0C+JmlrDr8eQB5qjSf0CxhA9uOfyXiRIUDyfwSTBPkgQEfe0AG38CBAZrKTYsMAFUBS7s8vM4YdQP8kigLgehdAKT1cehiLIECGFsISqFcZQEtuU8KPBSFADHYpuE\u002fUH0Bzii+nNJogQBKLWoeEPRZA6JhcA0n8HECo043e+PsaQKiwTkQ\u002fhiBAYIbQ2Ag+I0BAUs3h0hUVQFMSLlE9sCBAa858w+OnFEBUZbCvilMZQLXSXhGnYiNAXrgm5HR0I0AtIFA36OMiQL7jBurC8BpA+IKdy5PfIUCyBWnn55gaQCBSf8phhhdA0Wa39GivHUAWl8V29VsdQN0iq6mx7CFAgOs7Eh6sFED2xGaxhMkVQMnA1q8QoBtAKjYhWCp0GkD+bx8TmFMZQI3ZsRBNnCJAqemy4d0BHEAm4+7jnmAbQC7zeSXclRpA6d6Q6mIlG0Cp0Zf1k10WQNQhSlVqBxxAHAGbxJfFFUC2J3iKX1cYQJwxxnwaMRRA7ZKHBBWwIEDKKimWtkohQHaPE1U0cyFAM3OghPxkHkAgTj3nsEoYQNTXKBxhYh9AOxQ8ny92IUAM9NL\u002fsfIjQHSF5K38QBpA2FyPhk6SGkAk3MpoeFAUQAPDfMo61B9AuD4ny5LdHEBcOdiDMTgUQEageTdcbBVAkiFjKsK8GkDdjkY8xpkgQA=="},"colorscale":[[0,"rgb(78, 165, 183)"],[0.5,"rgb(206, 192, 250)"],[1,"rgb(232, 137, 171)"]],"opacity":0.9,"size":{"dtype":"f8","bdata":"NSuP9zcJI0DzwFYGn0gaQLZzmkZHByFA+P+aDpbfHkCwxIAvKbMiQLxO7ywDOSFAkrQilW9qGkA42CJpbWcUQBsoeWzpYyBAQjfOKzOZHkAirl5Y47kZQHo9O10vahVA9tL3qjtYIEDDffk1l7UjQO4gDWWi9RhAbl4O21pGHEC2NukPe44cQEBdAmUkehhAaO9vYTNPGEAkKuTDTKQeQCwfNyVGoRZA7AXlPkQVFUBBS1LPtqEhQHjQxmS+fSBAzIXDZfEoGEDwmCYU3FQjQNBMefzIwx5APDOqSw25FUCJceoo8vQeQP7yGSlEKyNAQTLBxzJtHUDBmCp6+7oiQBoQiWhE8yFA8nURfbx6IUBmXmxn2ucZQCV81yB8MR1APe9aowa5IED5TDni5\u002fMiQE8Bv4u6zhxAuahCRUDHGUAuRAEnvokVQK9yTdCItxdAS9Rm\u002fEJxFUAkVNMOqH0XQLUcVRC3QhVAr9JC7d6BFECx6VQKAsMZQJiTu8jHAiBASNpbXE+iIEBuNZJTAhkjQDf4LRmEZRxAAc\u002fXZA4iGEBoI3er6SwbQDzSHSGc\u002fiBALJKQx8UFGUBnxhDVR5kZQNxdroKZTRVAmIzuoRi0G0DXi1x1ruEXQH4OD4n5ghhA2GYHR1L1HkBGY0\u002fvvsMgQFQklZCQ6x5AUoEYHYbFFEC9SZgflvgbQDubyvxZJR9Al0AR8t+YG0BjEwai1O8jQIm9fGx9DB9AJ\u002fViqUi9FkCP01kOAW8ZQF\u002fwJr5pmCBAsN8BVrmfHECAA0NocFweQEK4F2+EXxtA6ie8cVJaIUADJI6NekMdQB2bndnvwxdAjTccD2guFUBBMr6RvxEhQHnH3ClkthtASKBd2FYgIkAOCefEnMwiQB71sK8twR5AKix3z3LvIECge2K95\u002fQjQKKwiqhdnhdApBqwIX9fGkBjBAhPEWAbQNxyN8qJEBZAFRHupGPBHEBM28zFik0gQHsg478ihhlAx1QGiQRgIkB193H6ybMjQAAXe2\u002fpiiJAFofW\u002fyalIEAvhq2s3p8bQCAw71hf8SNAOICnOo\u002fwGUABkT73IBIUQDqKRFRq7iFAWuOaJsGiGkCdNtGT1T0eQPwUzYZdhhxA226rezPlIEAK2rKtZCYhQM6e29Px6RlALDlNZmBcIkBF51ygESIbQARdbLsmGiBAcPPGqWmoI0AA9vbuxj0fQFLy6PqqKSJAX2nTXbL2FkDk6uyOBjsgQBIKnNMwzSFADkUJljHpFUBRWFONQhkfQF7mpoKcuR5AS6GPzhyaIECWv1cvA3QiQCTJYvjoRh5AFSMr+II+I0DAVgHpCp0ZQDLZRRIwCx5AToyx0piwIECo1p8Myr0fQOSPrLgYpBZAM1UrnbGlIEDy552AKr4YQE8C39hIuiJAmPTyZN1jG0B9p4nAEOscQDBHdvtiPBZAATP1FnlSIUC9lsGRS2sUQHTHAX8sViBAxsOQHXPOFUD8JQEmPBgcQPrz2LeufxZAhNMjenowHUBT+7k7bO8YQASsYAOMfhlAef5a6KU8F0BMqKTYMfQZQIBwogq5mh5AsyQGXIyzHECm+hE9MjwiQLKGFnhocB1ADTMLPgRxFUCO9NdLNYEhQMy\u002fTuw\u002fwxpAeqAQGXgoGEDg1wTLsCwcQMC+x+kqLCNAQy3+JdgJFkDajzrsrUUUQCi4qErh6RxASsFgzXDsGkAtogkxtf8jQPLsdJgkxhxAKjnbSbMrIECWefuN6fMiQKbpd2eHxh9AbEz3spPGI0CA3RaqTq4UQJhk6nfe8xRAWbiqkx5oHkBbUE1wC4MjQLr9sg+1+CFAaXQ1CDK4GEBi8yblEzcjQOUy6xGLuyJA2vM+aS8eIUBDzKhWJ4UjQM2IV\u002fUqhxpAgZjH335aGUC\u002fCbav8yQYQBN9THrmgxZAykj1ErUCHkANqY5Z1e4hQPjVtvSFrSFAIIEFQhyPHkCW76\u002fZUPEaQEo256Q8ORxAblmeP4aiIkCueeDEm3UjQEXS4+kRdiJAjeNXaVm9GkDYxejIj50fQKO+bcSJdiNAr5cChkQcF0Dvt+qkTPcVQPShkHR4MR9AonlqcvnTGEBvTbvwc\u002fggQB\u002fmUxg9DBRA36HYc0QHI0A\u002fOMEnWU4cQI\u002f5IjbVpSBADkL2EA7EGkA7x\u002f0ADSEhQGOxHli7QBpAElvxWLuVIEAEPS8PokEaQGoP7+CiqhtAelK\u002fncH7FUC6io+f4MgeQI8O806nQR1AAJb6Oue1FEDH30BZI3gZQLSKZLXNqSNAt0nJeolIIkBu3y6iCqsXQLINEatrzRZAIvn0fdw4FEDA2IWf83UeQKEy+iUjBCBArE1hmsbGI0BklE0I9kwZQGM7pV3HHCBA\u002fhDNXYsOH0AhE22eArIgQIYTUgxigRdAXitsu7eYGkA9RXE5IPYjQDxwmauxkRlAfDYQL6rVI0BUgV+Ks3kgQG6AnJhXXR1A8or\u002f2hwSFUAIgfUlIwsZQDTcZVLumhxA6QjirXc3FUA10SE2ppkaQG\u002fchBsurRZAEKqnjjRRG0DbXS+XVOMjQCR+klfDvCBAcvT5sjPmG0AuEZiM9VkiQE7\u002f9nPMwxhAzUNaGpsYIkAMFl+iM4geQAbi0IVJkSJAXxa114t\u002fH0A4LZs7SxMhQCPR49QEkxtA1Jk77+3lIECI0aR07toVQIsuW1P1hBdAR4MfDSR2IECzOdYNDI4hQOpD59D\u002fEBZAiERnFZezHECEaCFOJH0iQJ6LD6MStRpAIPg8FEDaFkC77pOHxHsXQIKYaKpe0hxACHYgLLeVH0CMjGdWsu0gQAp8kRBXiiFABnaqzwIiHED4o8ohaUYjQB6ez25KZhVAODyihKQZGEAVl18M61sVQGTFlTpa1iBANQ9RIDogI0A0b3ba87kVQAxFuokw1xlAVn0YdOV5IkCZF1qq3xEYQF70crxSgRhAmjv\u002fDYqqI0A2Tf\u002f9wFcUQF0zMnYpyBVAp+Va3dnnI0DrnbA6MMwgQK2PaoBKXx9AvDk4yCcMHkCMHtGK3hUiQOBifysgRyJATjUTFEe3IEAgYn34c1QgQEvJtnn6nB9ArB0t3VRRHkCp64NUq68jQOwK\u002foo\u002fQiFAfOBrePfqI0DdiBMwugIdQOw4g57jZiJA\u002fmRSrrobIUDgwI46TQMcQLbiHMtOfyNA\u002fKVcwF8gFEC+RWrXTB8eQOZRReUF0xRAJG5asaiVIEDakyC8ttwcQGbJjrgiCyJAFUL1ynSOHEBCG81wE28UQCrioPQFRyNA2PjDcDBsGUB4mAX+diMVQFdwfQyOxiBA9OHZFopzHUDVGh8\u002frCMjQMrNAYaphxVAaZIfeQx9HkBDOPxNx0IjQE9mdsWUJyJAX\u002fQc\u002f+2mFEAfi1InuigXQFDGmnvezBZA6PU\u002fkkx1IkCftvrATAcYQJhU2m0ywhhAa+DPV2YBFkBjxzSzkyYhQAdYVtH4tBtAQnTQUPrvH0Blcff07xgjQOomWdPlGRVAHftwUzmWF0Cu3UU8\u002fQMjQGNEGODnGyFAI9CO58OXIkC4uGz9+GkeQL9mwKcK2SFAiCDh8DB0HkA\u002ffgMr1AoXQCqEn79enR5A5\u002f4QbQF\u002fFUDo63HexOYbQKGlPexgAiNA7w5z3\u002fe7FUD7w0ihBSwWQPObsdTv1xlARBUncGKNIkBziwdUxmAhQIJc4VeMchZAyNWlhm3JGkD1cSz66tgWQH3dkv6F9hlAnJZtjukzHkC+gt+\u002fyXceQGuFps\u002fhsyJA5RxPbzDJHUBngvyx1AkcQPq8r9pjxhlA6lCggb+pIEAkljYd5PkUQAoR+A4uZBxAepH5CPOWF0D2xOpi0owXQOzzMRoF\u002fRVAimoq9\u002fDjHkBCnaUXrbgbQBvV9Dlc+RxAzhvtX0bDIUBeDedw3NgiQI9ETzyi9h9ASi4PNTLaHUCaJ5fLdK8gQMj5UGSR6xVAUmrCJdbYIkAZMNcR95keQKkPSNYCCCBAXFQQu7B0IUDjTOlgmtAVQDw40sx3lyBAHcAuNNttF0Cz7w7mKb0hQH2I2dYpoBVArnEF66FxFUDiyzTxOfsVQD10LW8mDRpApmGJNN4AIkDWaZ3JVGcdQDlgj\u002fvhrhxAso53sF8EIkB4DnaJeHkiQIxYL6+8JyBAWHPi7bYIFUBHMGhAEY4dQH\u002fu5BowQCBA3KbYZVFMGkDeyXgP+iwhQCIhfAhIyBlApYieNe1bHkBjEq8JlEcZQIsVC53D8x1AKiHzjaXiHkAcYAKff1EeQOIpVwfIViFArTruYthVG0DnODsdngYeQIqpzBDaiSJAetNrtQUVF0Cs5RrCv1MXQPy\u002fs1wPBx9AcVZi3gmMG0AAcSNO7GAhQO7DrwgelBdA4I9\u002fCbbRFUD02rnmUXYiQA0nAofWmxZA9lpQ2knmGEBIzd08bWMjQHRwoyEaExxAnDR0LaLVFUANmCOh5FUhQJSfonbdfxtAUjbX2LijF0DaEYkjMwgfQKvTLhO59x9AAdAuHiVqFkD+wSLgFSYhQM4UO56kBBpAwBrh7AVxFEBnSg21iIIdQEU3tP5vTiFA\u002fH7caY8FGEA1ZCiKw6MaQNRXiCFsAhxAHKfehkc5G0CMiz3qO38XQCjWrBo0vB1AHUNHqkXNGED42SOQswwWQINqqlljQCFASO0cCsKpHUDXqSebilQZQDc5kkkoYxlAQvk0RIkGG0CCYbCOrWgeQIA\u002fqE12PhtAcXFUY4VkI0AOyXgkkBIeQKJvQPHYtiFAe0EZtDaYIUD8\u002fQlH7V0WQHM7peTEYyJAijXMZdN3H0C+JmlrDr8eQB5qjSf0CxhA9uOfyXiRIUDyfwSTBPkgQEfe0AG38CBAZrKTYsMAFUBS7s8vM4YdQP8kigLgehdAKT1cehiLIECGFsISqFcZQEtuU8KPBSFADHYpuE\u002fUH0Bzii+nNJogQBKLWoeEPRZA6JhcA0n8HECo043e+PsaQKiwTkQ\u002fhiBAYIbQ2Ag+I0BAUs3h0hUVQFMSLlE9sCBAa858w+OnFEBUZbCvilMZQLXSXhGnYiNAXrgm5HR0I0AtIFA36OMiQL7jBurC8BpA+IKdy5PfIUCyBWnn55gaQCBSf8phhhdA0Wa39GivHUAWl8V29VsdQN0iq6mx7CFAgOs7Eh6sFED2xGaxhMkVQMnA1q8QoBtAKjYhWCp0GkD+bx8TmFMZQI3ZsRBNnCJAqemy4d0BHEAm4+7jnmAbQC7zeSXclRpA6d6Q6mIlG0Cp0Zf1k10WQNQhSlVqBxxAHAGbxJfFFUC2J3iKX1cYQJwxxnwaMRRA7ZKHBBWwIEDKKimWtkohQHaPE1U0cyFAM3OghPxkHkAgTj3nsEoYQNTXKBxhYh9AOxQ8ny92IUAM9NL\u002fsfIjQHSF5K38QBpA2FyPhk6SGkAk3MpoeFAUQAPDfMo61B9AuD4ny5LdHEBcOdiDMTgUQEageTdcbBVAkiFjKsK8GkDdjkY8xpkgQA=="}},"mode":"markers","showlegend":false,"x":{"dtype":"f8","bdata":"ZaZJYVHlA0DmuLID8asAQLKPz+BPTdA\u002f5f5a+KGH6j80JHzLf1HsP2LrYV2TLwNAzIeQle4k8T+KwUeudAkEQH6AjqCL0QVAaja7ae7M\u002fj+a\u002fNdmJ+r0P6oQfmdibfg\u002fynzdDP+b2z9k07IszIvlPwL6k9GlJQNADJnTzltQB0AVAYZ2zG4DQDIaHeZofQRAE6ge4I1d+z+UCLa4WIHzPwjSkmGUDrA\u002fFP\u002fx8mgF8z+A0ydwAF7PP8+iGoSjlwNAXXn9e8rl5z\u002fgCExiRNIBQONJe\u002fR0+eg\u002f1LRMUcCR9T+57Wnf+0cBQOxPFX6s8gJA3YnoU3hsAkCqzPCNmPz1P179nEf9P\u002f8\u002f1+uIDtAVAkBqDbwN8eMFQMBw0mhajPM\u002fLJMqd6O+8T8Ea\u002fPpNGnCPyDwxEL+vgRATJnORxoBBUA6JZUI\u002f8v2P\u002flJS3BKWwBAbUkXrjhJ5z+O8Mtkq\u002fj5P9pKkjl3cPQ\u002fqFbcxuHy3D82CojwFjcGQIatSsHD5+0\u002fUyL0tx40\u002fz\u002fm8YEgKnH+P0zlKQoR\u002fgJA2GY9A3PI\u002fz+m+zSwPu\u002f+P7mcLhcCdf0\u002f4UxKp4IVAEBeBvaxAZEGQKD8JBQ+b+M\u002fMI9ipyinrj+G8JNULukFQES\u002fNrlICf0\u002fijKrOxMK6D909Bir4Rn8P4UTS8y0BgFA3O0Dbt209z9hG0KsbnQCQJ7QJYDoOwZA59YRMkP6AUBDY1\u002fPlOgGQPDJnszvLuM\u002fkPnByo5l8T+FqLY241r\u002fPzQaYz5vxAZAtmf\u002f9SfX\u002fj+8M1SHJrUFQHT45EAd9QJA8X8jCst5\u002fD9rW6dEZz4AQGqsYNCPUQBAIglU6pkc+j8O0Lx8tdDjPyKuYuGqftk\u002fEWhIG\u002fkS6j+nubUD7nIEQKxJsvivteQ\u002fZh5lXNUQ9D+Ma4fa7ET3P\u002fRJzCV1Vfg\u002fPXNWwDyX+T\u002fZcT\u002f9z\u002f\u002f9P5oQ+dID5vI\u002fcHO5LZ\u002fB+j+u2ezZnxf0P6p4eMrFh\u002fs\u002fvhwSxSV21T+GT9OIjx0AQDu+GFcwzwJAuuSNDdef+T+vGUl9XZPsPxqOXI4fk\u002fk\u002fEt3q5iAlAkCaUelOu48GQKFruUniL+o\u002fOHPEHrGc\u002fj81roPeI5vzP4CXfoUegPo\u002fFl4eqEOb8j\u002fyYx1BWBnjP0mh5fVJevI\u002fmt84a6b6B0DmaDZRgOfxP7yQ+ZKK\u002fQJAhR6q4jXUA0AwUHFh9ZrmP6bEkeD24PI\u002fpfqGG0ro6D9SrmZZvfn5P617cj6t+Pk\u002fAtKPombCAEAIz7j+22kHQIjwJicF0v8\u002f9FIlLAGaBkA4ae+Vo+XsP5kRN6ETqQFAQ+ZMMmqR8D\u002fpc+KGkxHzP0mupFe20eQ\u002fRycll1mH6D8bcc7al3PsPzoCPtsuFgNAUPC20QQjAUCfG2ekqeYDQMPopcVK4QFAavX9OsN88z\u002fOPq1Xqfj+P\u002fuZAfDKRgRAfI7EhOMVBUD4\u002f07cyQy4P\u002fuaEjay3gVAGtOVviZU9T9Skr0xq6HiP2gHXiBiFwJAtJdZLE+34j81FmF63Z3oPykCwpQxWfQ\u002fEIQ6gkeB+D+AMmtJGi32P7WGN9J1rPY\u002fGcDF2Drb5z8igcQg9pPwPyhaBeicsrY\u002fwM37H1fQoz9cHNBkuLHIP+Q4u+aKBfs\u002fN5SBADuYB0DN\u002fBCTwZcGQES7vYWJXMY\u002fVtFO6L0g+T\u002fmxu9uy+baP12ufoz5n+k\u002frKQNF67tBkCCo75Ksm\u002f+P3p0cBefIOI\u002fQKq1f9q3ij8jHp9hryT6P2+VWVrCDvk\u002f+FsJwpvt+j\u002fOzCYOeoYDQCaqMtD+LPg\u002fJrPNvMZk0z9wCfpDsbiqP6qCqyYCbAJAaCutMuUb9D9cLTnOZb8HQDg+gHvAsNk\u002fjF0bhK0Y1z+yZCGPqfIFQPRsXUxxo8w\u002fRriHyWe4+T+QLhULnafOP64IXtao\u002fQFASuS4VtNf2T+Q3HPLLNUGQDh1Dgu8Rek\u002fHkeoCKPU0T8IQhqMit\u002fdP4cO8zGUdeo\u002f+clG2KP1AkCslyTMFWP\u002fP32GaiCo7ABA0H5Q8uGBsz9GyJDmg9YBQCCPlLZDogRAVki1\u002fTXFAUC8oS+JjQb0PyDi+08GybU\u002fipMGiOd9BkAgZizYBgj4P+y78YN0HdQ\u002fg\u002f8UgZy\u002fAkAVLYKorQnrP16zwP1WWANAvTDFI4nB+j8QrgzrNt6pP5kD0z\u002feNAdAbPge8aX6AUD5O6mjSdnrP8h9Wcuz9Mk\u002fLIV4NetsA0Ds0wRETFr\u002fP0555dkm\u002fAdA\u002fPtRWHT28j\u002f6bPRHyP4CQLB+lKbkdeo\u002fvfpAOHly8z9NoZMPtj7pP8oXWpPrbf0\u002fz6M6CLQ3AkDuSDgupw0FQLNtC\u002fcUbeI\u002fSLoRyYIn2z8rmTuT6hMBQAlENslpRek\u002fPM2USDkR4T86FStCNKwHQKq88OSwaPY\u002fA+e1HcyNAUDAhKPPzqXeP\u002foNZOIssPs\u002fg+Zj1RFPA0AAdIQK522dP\u002fJOKJKKNfI\u002fYLIkqq4KA0BeBsTEPYn3PzTg\u002f+87PsI\u002fFpdHapie8z8uv3FZ8Q8EQEr9\u002frd\u002f+fY\u002fkJz\u002f9xquBkBpFwBsgtzqPwjV2j7ei9E\u002ffyNZyKYk\u002fz+y4nNxi0YGQN0eeVwVRAFAyyLKWh6o6j8esYZ5hDUBQJWaq\u002flDTO8\u002fhHEqIgKd\u002fz+OHcs6Sp74P\u002fEoJXwjKgNAOsV1hUXi8D9J9PSp1er9PydnLA8O4AZACPMIgnQEzD9b6zAb023qPw3pYE5o0fo\u002fVtNm\u002ffuu1T9yPp2fAr\u002fkP09hxV5pD\u002fw\u002fBnImapkf3T\u002f4LIEgbn7APygmZ\u002fCNu88\u002fmI7faU1A0T\u002fmupa79zXxP5GkSZ9FMPE\u002fQFE+uLiZqT9\u002f2dbLXX72P8oZF2c5Lfg\u002feLsMehR5B0CSjvD007UCQNmd1FisI+Y\u002f8m5qYyTu9j9KWWwqZD7aPwzh7jbxegZAcMNvLry6pD98f6w0Fp0CQK56fBZo7\u002fA\u002fOJ4B0UPOyj9MdghIojDqPwiA2KmYbLc\u002f9PHUk15+3D8uxGCJUjoEQE1JNnuEzeQ\u002f+h17pQDn5T9o+Ikb\u002fdTwPynhfnTnm\u002f4\u002fxwYRUcAp6T+u3v12g8PyP3JiXGiQgv8\u002fGOo\u002fxnVi4z+UqqfijHAEQMzNCL56gv0\u002fShUSt7LmAkDN5MfgXPP1P3N5aEoeYPI\u002fZCashnM2+j9OTBnRqsHhP782zjXuMgZAQoomp\u002fxC9z+gEqhOFisFQLBsDwOvRO8\u002fHmTPoaZS9j+sNWdC7AvMPwsO0L+ix+Y\u002fMVF5sL4A5j+CnBF9Q2f9PzPgSzI6hgZAFrS5UvdC0z+U+2DouW3qP1IOZfE0lO8\u002f9FpG5gIS9T\u002fLsS7iLMz4P1peCFO4wQJAOLZuHf6o2j\u002fsNYwTLSEDQPjA30y\u002fFQRAtVOFZEAG6D9YLls6YbrwPyM7oRBXsOI\u002fMlddUCKcA0D4nHf+iebkP+\u002fAQhmt+\u002f0\u002fY41NdjuUAkDcKRCr5Vr7P4gjP4CYv\u002fU\u002fDiA6xnouAUADgVH8mg3sP2QyTLegi\u002fQ\u002fXAWrj4pW\u002fT9beN3LcjwHQCszw3hjVANAQKfKhlmeqj+FHx2URL\u002flP55Mnu7b9fE\u002f2eqQqlkP8z+iLCRTK8LUP+0M6Hf5YABARCxLaXoe8D+EOdTVgEz5P7wKgJa3\u002fwFAcHBGqWGy8D8i4Y9e4SD\u002fP63jGAbHseA\u002fCviL2Sw30D+khCIrLqsDQGBlwLQdQwRAWFXE3YabAECq72ZYCtvlPxSQjSeXO\u002fo\u002fEEZZEInb8z8HO4ZR1EzsP2j0r\u002fEuowVAggrmnJow1j8IZ2gUas38PyaZ\u002fbKxIQFAWh2VLtyP4D\u002fWl31g8lvzP3wnt7\u002fQePk\u002foiet2Y6y1j8LxqFBAjP\u002fPz5FUoX73wJAUr5qqjiVAUBKb5R43af\u002fP5qBTZbguARAgZCvVAW39T8mvYLxJy\u002f4P8hzIOTqzeg\u002fI\u002ffr81iR9T\u002fSfVPvAjrrPyhJOprDhP8\u002fdsolZwIL9T9omss5bbX7P1oQj1FJVvU\u002fjSTnPjk3\u002fj9l6cZYsMTpP3Rp8FK7egRA0l8u2Vcf3z99KxuGsSDqP0fl3OaDdAFAzuB1\u002feUMBkCOVnwZvgftP7LD92e0Ods\u002fHulOdAKlA0Akmu9SeSLwPwC3q53ldME\u002faK3P5wF+AUAspXt4xzL8PzR0KxEgMPQ\u002fEOnVj1TfAkB9WTlMeTblP1xK5GkCFPw\u002fiCRctYE8A0Dq+zywrlftP0CCKEgUgdY\u002fynt13lPj5j8X0B3X+QP0PwpPSjtzV\u002f4\u002fAF2zRIHtkT+SoCw5TgYAQGYyiUpOD\u002fU\u002fTLCxrbOABkCmlLv8qhLcP2CezFgBEAVAIKW3NV+GAkDgVaiqNwfXP0KLh8LBzvw\u002f87WfwG6pB0CcVXKTnMPzP+blzMYJRARA\u002fZJxBmDP6T+QsiBIf7aoP1y1gTxv\u002f\u002fE\u002fiouTYkOZAEDR2XLfTfvmP60psePbuwJARgypgY1fAEBwucPgLuIAQH49bZjbzwBALecwHu\u002f+BkD093bca1vaP3Q2rYG+Mto\u002fKDuV2kWJ3j9COoWSEbsAQPhEdxHmZrc\u002fej4QF71Q8T9yrx183WEFQIq7+I5Qj\u002fo\u002fxJmZYqnm1T\u002fUAVD74jDfP\u002fRUaSjRQ\u002fA\u002foeL9w4FR4T9waOCchiH8P9yC2Tz2SQdAqFCvs\u002fKyAUBPoDpMEdvlPwAtf\u002fOeLN8\u002fMqEGusm4AkDIaOIln1jKPxI3j1Tr\u002fOE\u002fKzASUGRGAEB\u002fdTTfozIBQPD4EklwJgRAxAE8m2a4AkBWKndw37P2P2p9ffzHBvQ\u002fdg8g7HB63D\u002ftvJc3H1H8P+J3mo3ANwRAT5MUl3\u002feAUAmcEUrIvPxP8rrFYUoZ98\u002f0zAMR1OJ\u002fT+CPWZRIjXsP+hHML9YPMU\u002fxK5SKoZrBkCWahlpkN3kP\u002fIfpXo4d\u002fA\u002f0EOUVbjZB0ApWEMiyiEBQGWsC2FRhgVAOOaDmen72j8W7rd\u002fUTAHQCIB68ebPfA\u002fcWv47kEg4z8YKyDH+WgCQKjllCbQmbM\u002fV9QlCQu7BkBAAJ+s4BQBQGJL+EvHjgRAYqgl\u002f96fAkAr5J1taEr3PzAHwmpZv\u002fA\u002f9L7Tu0Uczz+9Vf6h6z3hPzcMkKLz2ARACGw1Mxl\u002fxT+UxnlotAj5P5Dj2GnbJso\u002fSk4gOj0yBkD4UJLHEn8GQFzq40Y3pvg\u002fBBCl1pghBUAE6XAEyWj8P3xKlFEJIMs\u002fCUOD5Z2k+j9aj6Dfx3HhPxBXLjdYias\u002fD7JdzbwV4T8+PsttGwQHQCD\u002fTb8NCdE\u002fNbRQAzrtBUAsWSyrK7HRP0B79I8oNY0\u002fdFb4B0PKxT8Cx6nZrd7dP75VB2h8u\u002f4\u002fHmwpK9Pp+D\u002f0S7xenYgDQDrD6a1bXeg\u002fbbcRR34r9T\u002fTSbkebCnyPwUmQObrE+g\u002fXv5T4U5u9j964epGVXvnP6H1O7DRrQRA2\u002ftfX8VB5D9094tpfITgP\u002ft14u6zwO4\u002feJnMO\u002f0N7T81G8OpMkfhP4xrBTCPTNI\u002fyg79\u002f8gc9z9TXlNcxDEDQA=="},"y":{"dtype":"f8","bdata":"cH9iISbfuD+Gjzada6LYP1SVraWrBOQ\u002fECAcF5Ozoz+Il+rvJGPBP5jdCsyiguw\u002f\u002fpXtDf1J7T8toa9MU0HlP9Bl09IPQMo\u002frJaFQHoB2T8EfztEDL7fP1B4biaYqKs\u002f8Y5ciKeu4T+BmmzIr\u002fnjP\u002f17i9rnHuQ\u002fYJ6kIeG45D9YM\u002fkgeKfpPwJEWuewVdE\u002fk9sZfvw37z9UTeu+\u002fKfPP1TKGwjRM+I\u002fdNlJRqr67j+oT7Pb+erNP7UrdQP5j+4\u002fqHphX9b82z\u002fe7m4XazLaP4uHWj6bSeE\u002fWN0LYH5O5j\u002f7h6NNjVTjP2LNky4\u002f0OI\u002fAOSoFsH+4T9MEdoEV7HdP4zdo5o8acs\u002fWLXLEtb71D\u002fcUdd\u002fiInoPyIYSEPvH+E\u002fzl+Vsd\u002fs3z\u002faVgqX193UP+e3xz2mauo\u002fmlqZDd533D\u002ffLu3FKQzkP+AQ74rtHq0\u002fyErpWFMi2D9cQrY7AbnvPzfEmPqu6+4\u002f8AFGDuCL0T9MwLmT2CDbPwIH4KACqdc\u002f+5uufM7d6j84+1xqANPLP+i2Mfi7o7Y\u002fm2Kn6Jz07j9809mlCPjOP54\u002fIDVCieI\u002fmDDJiWvT0T8UW1KYRN7FP+CjraUE67Y\u002ftKYkr2Oq7z+CdXpZ4ZDQP9pyrPmXj9k\u002fZCVaCHVI5j+UuIKpHrPNP8FJh4XB+eE\u002fWFrH33rawz91vyrPiQPnP060T1Ztd+o\u002fkD2WzmWY7z92xccJ6OzuPxjlL+h\u002fILg\u002f3jfF3XJA7j\u002fQBAairMjGP\u002fyppg9LtuI\u002f1gtecfMu2z9grdrfO++3P1rp\u002fL4E3NE\u002ficU\u002f9sDl4j\u002fI\u002fkfy5NPLP9ASF3TbpLE\u002f1xnsJqN26j\u002fh\u002f8fVBCPoPzzzFtLmWu4\u002fONxzPlIAvz9EE3j3ml3KP4ioPoq+lLY\u002fHGUtBbx2wz+8TDIpyQjPP+TvEU\u002f13Mo\u002fztcZP8v71z8kebOR93nfP\u002f4MxL09I9M\u002fwPGgtHS67T9Aud3x86m7P\u002fENg7ueveU\u002fftxPg45h2j\u002fnKhdSL\u002fnkP\u002fDIcMkyI8s\u002flJYcUnB67z\u002fAEmujlo6GPzYIGwfLgdg\u002fuESpPDAQ7z+A6X0SLZN2P07yR25fO+4\u002f57ZHr7Q26j8hTqrmioLpP2RGC86\u002fJOs\u002fEKJAXARZ4z\u002f0Nrxn7mrRPwTnRDGi8so\u002fSks1\u002fVHp4z9ZHnJOCvPoPzCvYHSL18g\u002fEm37s7wI7z+TOF2Qor\u002frP9MKm1HRPuA\u002fmoI6\u002fCAh0D9yupQQ4v7aP7hdpAPzcN0\u002fzBLTXgEI2j9Qk6ity4S0P\u002fBAycg7P+s\u002fUK3jxFxWuj+UVccMwdDcP+DqHB6Cfpg\u002fEKy5CQCyuT9yU2MzVTToP9myjRnB0uM\u002fyLFVl1Wm0D\u002fgDcPiu9GfPxH9fO8zruo\u002frggXDEvr6j8g67riwCebP1I1ud+piO8\u002fWIKX21Uf4j9GmSLnQ7vdP5geXK1iKdU\u002friR6MrW70j8ifdiFQTDiP6QWLSZuMN0\u002fdA7Ugoff6D\u002fS5KvSFlrdP+FylSZtMuI\u002ftlJUCo2P5z\u002f8ezEULwbuP2BayNz4qZ4\u002fp1UXea4g7z+dk5g0dnXhP7CwkMi+Yus\u002fXsyhqhia1j\u002fSSWnRyxzcP3A2uJ\u002f9b9I\u002f4MVYpjxs4D9rpsVMgz\u002fvP7ue6UoXWug\u002fjYWHKkVm5D9QBeQ5OTHMP+0UktAT4eM\u002fGtxIwRGJ2j\u002f+eAKX0d7iPyHVIt4\u002fuOs\u002fu+HucEwi7z\u002fQsI13+L7YPwUsDru6keI\u002fBNfetb8+7j+JinLERcvgPyppFoPWz9o\u002fwMnh6ho+0z8xiddjfj\u002fqP\u002fiHRnJzTrA\u002fyGrZCaSQ4T++qptXy7XnP8CbBlsaJN0\u002fUyDnGQrN7z8gD4gxk1GZP96CTrjbouc\u002feLc17B5m5T\u002fg0BSUYFnjP9QZzqkKycY\u002fRTi6X3cK4D+M7mg+qWLQP9SiS3EVr8A\u002fDfe+V\u002fDx5z9OsA8satfhP24zYk5BNtc\u002fuQHk1sOA6T+YC1MIh9+1P3Gkh8mZDOQ\u002fiBC\u002fI30nzT8PwGvS2aXvP8q13tQj\u002f+o\u002fQf7MoTNq5z8wd6Ve8IrLPxMD+kAaoeU\u002fEKsRujmfpD8IjAKNKeLcP3bbgmh9ct0\u002f7CP0SutO3T+6L0FewzraP94r23k4Gug\u002fkA7Zs4D01z966TgQoJXZP\u002fQOOWuAt8o\u002flH2MHOm3xj985pPXuQrqPz1bPZ6jGeU\u002fuAJJtvpv2D8UgiSPNo\u002fhP9h3D6rGqL8\u002femiHLsqG1T+QjyuG7kiuPyhROUq46s0\u002fxideE6GQ6z+MMh\u002fXaTHUP9+Ar+yC6Os\u002fABDP+TiDVD9wpfLBg36oP6snBDazge0\u002fYbDcu0Kx5z\u002fEX6O3epLuP6ch2UUe1uI\u002fmBJDPCd\u002f5j8hdewsyxTrPyAx+0UR2t0\u002f8Hi0XGUlqD90A1XI\u002f47uPzjoENg4Suc\u002f2+FEXcL97T8nsWUbyNzoP1\u002fSgreNIeY\u002fAYhGXhAY4T9wBJim1hKlPzS3xEW8se8\u002fh3K5iGei5D8hiNiqc0XrPzyVssiuVdY\u002fC+uxdA0Q5T\u002foygoEQK+4P5jKznpljME\u002f8C6L61U4vz+IXlE9P8nZP1hSbOM\u002fneI\u002ffPNQ66Pt4D8aejNXdtHTP3uClad6kOE\u002fyLfTs6Gt0T9nmWXJJzzoPyhKT1wBlNI\u002fwI\u002fNFdX2qD84nvHFGUPkPylxyUVyYOI\u002fDRZKQz045z+sqZ7+7WjcPwCMdWKOssA\u002fhLJXtHdM6D\u002flKuNZTybqP4ShawGGAdQ\u002fBGRNkQ\u002fd5T+8ud+JkoTGP0SPwP6ZBe8\u002ffldNWju+0D8wuXC7pXe2P4ANy+iR73Y\u002fOPEeEL3J0D9ovzKSle+xP3zhxpYR2Ng\u002fqHSQD4rrtD\u002fIdod774TKP60+bRLAou4\u002fHJPFTgLH1j\u002fo36zGcti5P5J6QiV9IO4\u002f8I7UIBAHsT\u002f3oXyXEFvjP3Yi4lCrS9s\u002fPXF4AAwn5D834YLRLefsPwAtfN5KvL8\u002fxg2AXmhx0D\u002fwtaT1GGTaP9fqpbQjA+M\u002fKTe+UfOO6T+6VsN4r4nVP9gYYrSI5dc\u002fdD9XVU0LyD+WyLbUe6jlP6pC7bx7gOM\u002fNnyTie3s0j9llOohdgXmPwzHPhqb7dc\u002fymccnhfW4j+WPguxVNfQPzTJENPY1u8\u002f7EjLTNid6T8Gmn1jCk\u002fXP7yUknDeat4\u002fvLU+7Vw5zz9g0nw9KHmkP1jNvtYGJ9s\u002fhPL5Xydz0T8tq8zuPyHsP9WorCa\u002fXek\u002f+yp9nS+D4z+L5nsCTCzqP1x+ul+5S9U\u002fGOGvX4ss2D\u002fNlsUH86zlP6GEdPrT9+g\u002fxzc2vxjB6j\u002f3TZXHGvfiP\u002fqS2rRvlNU\u002fS2pHvDZw6z+7GMLh3gjnP6a9x2Pkpus\u002f1JmpT1pEyT82h2kTdEjvPwRhR9aBC+8\u002ft+6jIIBI5D+1bAwI8K\u002fqP8JAPZFRT+c\u002fF9c7tfGS4j94Y9BCflrHP\u002fAu4cshTtY\u002fQCfDNwoyzj+ECan+0k7TPz7jqM8VBus\u002fsry0Btuj2T+xEei0XG7hP2+p5pw8We8\u002fCvTCJcvQ2T\u002fwfouU627bPzbL0rxeSNE\u002fSvZDmHWd2T\u002fOPaySqGDsP\u002fDMavHKVaI\u002fotuclkDR4z+7658CHo7oPzoYtbNUdu0\u002fLYe\u002fKfc45D8tN2BsZTXnP7Qt+yVxA+4\u002fktIsLr3r0D9LPsWs7NLgPynH+wIJDek\u002fEz4WIunp5D\u002fMJsCb3wPaP+BdtHmEka8\u002f1KKh5c4w4T9Qz1Pi9Q7NPyCSkwTGiKI\u002fAHd1k59Jmj\u002fETynUKPfQP8yuZX4PL8Q\u002fO34TJFJl5T\u002f493MDCMzlP\u002fP8xwg5ue4\u002f4kwd07cs7z8R4i9OWOPlP2zQQhWUPMk\u002fgZDjica65j\u002f5buYTMw\u002fqP1wWrHambsg\u002fBmmP26wL6z8IOCL6pqHAP+l99vABZ+E\u002fpn0TJ4f95j+o\u002fE+7ary7P+48GjvJ2e0\u002f7KoB3R317D+4Fk13HA7eP+KPVIJYB9Y\u002frMwFaa0v1j8YJEwtU1G8P+ANgKuJzJc\u002fhNeUC3cA7z9ouBLOqhHIPwwWxX87bMs\u002ftNqvNXZTzD8T+0lIctjtP+VSqo8GF+s\u002fLCmwuSJS2j+4BaK5THXNP2AMmPbWMaM\u002fEMWQhPFLsD+GsvylVHTfP3Avp7NfE+s\u002fuGlXKH5B1z9CH+Z8AZXpPyQlnXKBTdY\u002fknVPVpdZ7T8GCn73ApjmP76+hgRAHOc\u002fQFh\u002fVeUMlj968sO6rhHoP2okUF9bEOc\u002faF4i93G42T9sjO9tATvjP0j30CRKfr8\u002fmItrKbjVtT9EMx5fNGLYP1MCmbF8beI\u002fEN9P0nKp7j\u002fokXOePEPrPzQLIcE\u002fysY\u002fAdPXAz8B6T+oUQMEaQDjP8SwQhBw6c4\u002fHK826V3M1j8g2A3piu7HP7z+tsYFKOY\u002fcMY32CBdyj9Q1f\u002fP8cTPP7pT3dtmxe8\u002fuOkUhe4Xwj9IZ79sJ5jcP6agvaiiUeA\u002fQJTXOuicxT8oI53C2N\u002fBP6onWAhfWdY\u002firqTNAz57z\u002fA1W6genWbP9kF6+qQQek\u002fqzmLJeAk5T+gt63ohemjP4BDryTkCag\u002fQJbkO5iFmT\u002fgUkSQHtWaPxxFMGEpEMs\u002fFiyHyWiE2T+Mmq6o4sHZP1cp8LhVZOw\u002fgc9gLcDT4j9Z2o0L2E3kPyZciQJCg9Y\u002fuMj3k8Kgsz+2hlIUbdvWP+RQp+OPPcY\u002fTt6vELP27T9WrCHNd1rrP5rAm9VuYtQ\u002fsori2n2L1D9y54Y7rX7eP2JaN3aTGe8\u002fyDFd\u002fdAszj8QdeVhZ7W5P0gFtI0k988\u002feo85vECE7j9inVyB81LuP3aVZMxledw\u002fIITWrUyl7T+vCO68XrziP3itbaIKA8Y\u002f3XgAe1vg6T8NQQDyv\u002fvoP9dJLYOM4+s\u002fw\u002f\u002fi7cYB4j9cD0m9c8nOP\u002feO9umqvOE\u002fZv8cZmZK5z9zeJFnt2PtP9vWRWTGEeM\u002fqMiVW22o2D8tvsAd\u002f4TkPzx385td19M\u002f4OqVv3zL7j8K6vYrATnrPzVfIJsis+w\u002f0T3W94ln5j+mwAcnzd3cP9hFs4pCO7w\u002fgik4z5Aq0j+4uMxSGuHAP6vFk0IUzug\u002fnHA74II2zD+oajhg2ZDfP0ire\u002fEy\u002fe4\u002fYIfRmK4Psj8KtKBD77XSP5AcJF5CFbU\u002fXDgDiW7l0T8YgkZUOWDKP75viylnQNc\u002fmODKQLSItT\u002f1GidFidTuPxNjBwjXN+k\u002feJoeeJs7vT+CHWu7SCLTPyCuqVjs\u002f5A\u002f3snCbF3+0z+AMzads2vRP\u002fpBsnkcsdY\u002fdG0oeU+AzD8ubss5DivdP83wQNRTQuw\u002f0HMxgeyxqT\u002fAVCzJ\u002fgC6Px\u002fF0Hf\u002fh+s\u002fDCqSMDpm1T+iU4Lx4gffP4ZdjcLVmdM\u002fuMyyKr1DyT\u002fIEwq60TXoP2aog8ykL9A\u002fzYZh8G1K6D\u002fpO4sG7CvrP9RIFLkqYdE\u002fcGClag11zT8AiLuKcY3ZP3htdc47Kss\u002fnqaBMP2C1T+qTzG670nrPx5wmwWI9do\u002fQDGvQ0Vjij+n6KEqWC\u002fnPw=="},"type":"scatter"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"margin":{"l":0,"r":0,"t":0,"b":0},"xaxis":{"showgrid":false,"zeroline":false,"showticklabels":false,"range":[0,3]},"yaxis":{"showgrid":false,"zeroline":false,"showticklabels":false,"scaleanchor":"x","scaleratio":1,"range":[0,1]},"width":1200,"height":400,"paper_bgcolor":"white","plot_bgcolor":"white","showlegend":false}, {"displayModeBar": false, "responsive": true, "scrollZoom": false} ) }; </script> </div>
|
dist/index.html
ADDED
@@ -0,0 +1,454 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html>
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<script src="distill.bundle.js" type="module" fetchpriority="high" blocking></script>
|
6 |
+
<script src="main.bundle.js" type="module" fetchpriority="low" defer></script>
|
7 |
+
<script src="https://cdn.plot.ly/plotly-3.0.0.min.js" charset="utf-8"></script>
|
8 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
9 |
+
<meta charset="utf8">
|
10 |
+
<base target="_blank">
|
11 |
+
<title>A Primer on LLM Embeddings: Understanding the Semantic Backbone of AI</title>
|
12 |
+
<link rel="stylesheet" href="style.css">
|
13 |
+
</head>
|
14 |
+
|
15 |
+
<body>
|
16 |
+
<d-front-matter>
|
17 |
+
<script id='distill-front-matter' type="text/json">{
|
18 |
+
"title": "A Primer on LLM Embeddings: Understanding the Semantic Backbone of AI",
|
19 |
+
"description": "The role of embeddings in traditional NLP, and their application to LLMs.",
|
20 |
+
"published": "Mar 18, 2025",
|
21 |
+
"affiliation": {
|
22 |
+
"name": "University of Bologna"
|
23 |
+
},
|
24 |
+
"authors": [
|
25 |
+
{
|
26 |
+
"author":"Hesam Sheikh Hassani",
|
27 |
+
"authorURL":"https://huggingface.co/hesamation"
|
28 |
+
}
|
29 |
+
],
|
30 |
+
"katex": {
|
31 |
+
"delimiters": [
|
32 |
+
{"left": "$$", "right": "$$", "display": false}
|
33 |
+
]
|
34 |
+
}
|
35 |
+
}
|
36 |
+
</script>
|
37 |
+
</d-front-matter>
|
38 |
+
<d-title>
|
39 |
+
<h1 class="l-page" style="text-align: center;">A Primer on LLM Embeddings:<br>Understanding the Semantic Backbone of AI</h1>
|
40 |
+
<div id="title-plot" class="main-plot-container l-screen" style="overflow-x: hidden; width: 100%; text-align: center;">
|
41 |
+
<div style="display: flex; justify-content: center; position: relative;">
|
42 |
+
<div> <div id=88bd2bde-2a9d-42b6-bea3-2a6d06b034ea class=plotly-graph-div style="height:400px; width:1200px;"></div> <script>window.PLOTLYENV=window.PLOTLYENV||{},document.getElementById("88bd2bde-2a9d-42b6-bea3-2a6d06b034ea")&&Plotly.newPlot("88bd2bde-2a9d-42b6-bea3-2a6d06b034ea",[{customdata:[["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["smol dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["biiig dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["biiig dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["a dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["biiig dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["a dot"],["smol dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["smol dot"],["smol dot"],["biiig dot"],["smol dot"],["smol dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["a dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["a dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["ok-ish dot"],["biiig dot"],["a dot"],["biiig dot"],["biiig dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["smol dot"],["biiig dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["a dot"],["biiig dot"],["smol dot"],["a dot"],["smol dot"],["ok-ish dot"],["biiig dot"],["biiig dot"],["biiig dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["smol dot"],["smol dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["ok-ish dot"],["smol dot"],["smol dot"],["smol dot"],["a dot"],["a dot"],["a dot"],["a dot"],["smol dot"],["a dot"],["a dot"],["biiig dot"],["ok-ish dot"],["ok-ish dot"],["smol dot"],["a dot"],["ok-ish dot"],["smol dot"],["smol dot"],["ok-ish dot"],["a dot"]],hoverlabel:{namelength:0},hovertemplate:"Dot category: %{customdata[0]}",marker:{color:{dtype:"f8",bdata:"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"},colorscale:[[0,"rgb(78, 165, 183)"],[.5,"rgb(206, 192, 250)"],[1,"rgb(232, 137, 171)"]],opacity:.9,size:{dtype:"f8",bdata:"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"}},mode:"markers",showlegend:!1,x:{dtype:"f8",bdata:"ZaZJYVHlA0DmuLID8asAQLKPz+BPTdA/5f5a+KGH6j80JHzLf1HsP2LrYV2TLwNAzIeQle4k8T+KwUeudAkEQH6AjqCL0QVAaja7ae7M/j+a/NdmJ+r0P6oQfmdibfg/ynzdDP+b2z9k07IszIvlPwL6k9GlJQNADJnTzltQB0AVAYZ2zG4DQDIaHeZofQRAE6ge4I1d+z+UCLa4WIHzPwjSkmGUDrA/FP/x8mgF8z+A0ydwAF7PP8+iGoSjlwNAXXn9e8rl5z/gCExiRNIBQONJe/R0+eg/1LRMUcCR9T+57Wnf+0cBQOxPFX6s8gJA3YnoU3hsAkCqzPCNmPz1P179nEf9P/8/1+uIDtAVAkBqDbwN8eMFQMBw0mhajPM/LJMqd6O+8T8Ea/PpNGnCPyDwxEL+vgRATJnORxoBBUA6JZUI/8v2P/lJS3BKWwBAbUkXrjhJ5z+O8Mtkq/j5P9pKkjl3cPQ/qFbcxuHy3D82CojwFjcGQIatSsHD5+0/UyL0tx40/z/m8YEgKnH+P0zlKQoR/gJA2GY9A3PI/z+m+zSwPu/+P7mcLhcCdf0/4UxKp4IVAEBeBvaxAZEGQKD8JBQ+b+M/MI9ipyinrj+G8JNULukFQES/NrlICf0/ijKrOxMK6D909Bir4Rn8P4UTS8y0BgFA3O0Dbt209z9hG0KsbnQCQJ7QJYDoOwZA59YRMkP6AUBDY1/PlOgGQPDJnszvLuM/kPnByo5l8T+FqLY241r/PzQaYz5vxAZAtmf/9SfX/j+8M1SHJrUFQHT45EAd9QJA8X8jCst5/D9rW6dEZz4AQGqsYNCPUQBAIglU6pkc+j8O0Lx8tdDjPyKuYuGqftk/EWhIG/kS6j+nubUD7nIEQKxJsvivteQ/Zh5lXNUQ9D+Ma4fa7ET3P/RJzCV1Vfg/PXNWwDyX+T/ZcT/9z//9P5oQ+dID5vI/cHO5LZ/B+j+u2ezZnxf0P6p4eMrFh/s/vhwSxSV21T+GT9OIjx0AQDu+GFcwzwJAuuSNDdef+T+vGUl9XZPsPxqOXI4fk/k/Et3q5iAlAkCaUelOu48GQKFruUniL+o/OHPEHrGc/j81roPeI5vzP4CXfoUegPo/Fl4eqEOb8j/yYx1BWBnjP0mh5fVJevI/mt84a6b6B0DmaDZRgOfxP7yQ+ZKK/QJAhR6q4jXUA0AwUHFh9ZrmP6bEkeD24PI/pfqGG0ro6D9SrmZZvfn5P617cj6t+Pk/AtKPombCAEAIz7j+22kHQIjwJicF0v8/9FIlLAGaBkA4ae+Vo+XsP5kRN6ETqQFAQ+ZMMmqR8D/pc+KGkxHzP0mupFe20eQ/Rycll1mH6D8bcc7al3PsPzoCPtsuFgNAUPC20QQjAUCfG2ekqeYDQMPopcVK4QFAavX9OsN88z/OPq1Xqfj+P/uZAfDKRgRAfI7EhOMVBUD4/07cyQy4P/uaEjay3gVAGtOVviZU9T9Skr0xq6HiP2gHXiBiFwJAtJdZLE+34j81FmF63Z3oPykCwpQxWfQ/EIQ6gkeB+D+AMmtJGi32P7WGN9J1rPY/GcDF2Drb5z8igcQg9pPwPyhaBeicsrY/wM37H1fQoz9cHNBkuLHIP+Q4u+aKBfs/N5SBADuYB0DN/BCTwZcGQES7vYWJXMY/VtFO6L0g+T/mxu9uy+baP12ufoz5n+k/rKQNF67tBkCCo75Ksm/+P3p0cBefIOI/QKq1f9q3ij8jHp9hryT6P2+VWVrCDvk/+FsJwpvt+j/OzCYOeoYDQCaqMtD+LPg/JrPNvMZk0z9wCfpDsbiqP6qCqyYCbAJAaCutMuUb9D9cLTnOZb8HQDg+gHvAsNk/jF0bhK0Y1z+yZCGPqfIFQPRsXUxxo8w/RriHyWe4+T+QLhULnafOP64IXtao/QFASuS4VtNf2T+Q3HPLLNUGQDh1Dgu8Rek/HkeoCKPU0T8IQhqMit/dP4cO8zGUdeo/+clG2KP1AkCslyTMFWP/P32GaiCo7ABA0H5Q8uGBsz9GyJDmg9YBQCCPlLZDogRAVki1/TXFAUC8oS+JjQb0PyDi+08GybU/ipMGiOd9BkAgZizYBgj4P+y78YN0HdQ/g/8UgZy/AkAVLYKorQnrP16zwP1WWANAvTDFI4nB+j8QrgzrNt6pP5kD0z/eNAdAbPge8aX6AUD5O6mjSdnrP8h9Wcuz9Mk/LIV4NetsA0Ds0wRETFr/P0555dkm/AdA/PtRWHT28j/6bPRHyP4CQLB+lKbkdeo/vfpAOHly8z9NoZMPtj7pP8oXWpPrbf0/z6M6CLQ3AkDuSDgupw0FQLNtC/cUbeI/SLoRyYIn2z8rmTuT6hMBQAlENslpRek/PM2USDkR4T86FStCNKwHQKq88OSwaPY/A+e1HcyNAUDAhKPPzqXeP/oNZOIssPs/g+Zj1RFPA0AAdIQK522dP/JOKJKKNfI/YLIkqq4KA0BeBsTEPYn3PzTg/+87PsI/FpdHapie8z8uv3FZ8Q8EQEr9/rd/+fY/kJz/9xquBkBpFwBsgtzqPwjV2j7ei9E/fyNZyKYk/z+y4nNxi0YGQN0eeVwVRAFAyyLKWh6o6j8esYZ5hDUBQJWaq/lDTO8/hHEqIgKd/z+OHcs6Sp74P/EoJXwjKgNAOsV1hUXi8D9J9PSp1er9PydnLA8O4AZACPMIgnQEzD9b6zAb023qPw3pYE5o0fo/VtNm/fuu1T9yPp2fAr/kP09hxV5pD/w/BnImapkf3T/4LIEgbn7APygmZ/CNu88/mI7faU1A0T/mupa79zXxP5GkSZ9FMPE/QFE+uLiZqT9/2dbLXX72P8oZF2c5Lfg/eLsMehR5B0CSjvD007UCQNmd1FisI+Y/8m5qYyTu9j9KWWwqZD7aPwzh7jbxegZAcMNvLry6pD98f6w0Fp0CQK56fBZo7/A/OJ4B0UPOyj9MdghIojDqPwiA2KmYbLc/9PHUk15+3D8uxGCJUjoEQE1JNnuEzeQ/+h17pQDn5T9o+Ikb/dTwPynhfnTnm/4/xwYRUcAp6T+u3v12g8PyP3JiXGiQgv8/GOo/xnVi4z+UqqfijHAEQMzNCL56gv0/ShUSt7LmAkDN5MfgXPP1P3N5aEoeYPI/ZCashnM2+j9OTBnRqsHhP782zjXuMgZAQoomp/xC9z+gEqhOFisFQLBsDwOvRO8/HmTPoaZS9j+sNWdC7AvMPwsO0L+ix+Y/MVF5sL4A5j+CnBF9Q2f9PzPgSzI6hgZAFrS5UvdC0z+U+2DouW3qP1IOZfE0lO8/9FpG5gIS9T/LsS7iLMz4P1peCFO4wQJAOLZuHf6o2j/sNYwTLSEDQPjA30y/FQRAtVOFZEAG6D9YLls6YbrwPyM7oRBXsOI/MlddUCKcA0D4nHf+iebkP+/AQhmt+/0/Y41NdjuUAkDcKRCr5Vr7P4gjP4CYv/U/DiA6xnouAUADgVH8mg3sP2QyTLegi/Q/XAWrj4pW/T9beN3LcjwHQCszw3hjVANAQKfKhlmeqj+FHx2URL/lP55Mnu7b9fE/2eqQqlkP8z+iLCRTK8LUP+0M6Hf5YABARCxLaXoe8D+EOdTVgEz5P7wKgJa3/wFAcHBGqWGy8D8i4Y9e4SD/P63jGAbHseA/CviL2Sw30D+khCIrLqsDQGBlwLQdQwRAWFXE3YabAECq72ZYCtvlPxSQjSeXO/o/EEZZEInb8z8HO4ZR1EzsP2j0r/EuowVAggrmnJow1j8IZ2gUas38PyaZ/bKxIQFAWh2VLtyP4D/Wl31g8lvzP3wnt7/QePk/oiet2Y6y1j8LxqFBAjP/Pz5FUoX73wJAUr5qqjiVAUBKb5R43af/P5qBTZbguARAgZCvVAW39T8mvYLxJy/4P8hzIOTqzeg/I/fr81iR9T/SfVPvAjrrPyhJOprDhP8/dsolZwIL9T9omss5bbX7P1oQj1FJVvU/jSTnPjk3/j9l6cZYsMTpP3Rp8FK7egRA0l8u2Vcf3z99KxuGsSDqP0fl3OaDdAFAzuB1/eUMBkCOVnwZvgftP7LD92e0Ods/HulOdAKlA0Akmu9SeSLwPwC3q53ldME/aK3P5wF+AUAspXt4xzL8PzR0KxEgMPQ/EOnVj1TfAkB9WTlMeTblP1xK5GkCFPw/iCRctYE8A0Dq+zywrlftP0CCKEgUgdY/ynt13lPj5j8X0B3X+QP0PwpPSjtzV/4/AF2zRIHtkT+SoCw5TgYAQGYyiUpOD/U/TLCxrbOABkCmlLv8qhLcP2CezFgBEAVAIKW3NV+GAkDgVaiqNwfXP0KLh8LBzvw/87WfwG6pB0CcVXKTnMPzP+blzMYJRARA/ZJxBmDP6T+QsiBIf7aoP1y1gTxv//E/iouTYkOZAEDR2XLfTfvmP60psePbuwJARgypgY1fAEBwucPgLuIAQH49bZjbzwBALecwHu/+BkD093bca1vaP3Q2rYG+Mto/KDuV2kWJ3j9COoWSEbsAQPhEdxHmZrc/ej4QF71Q8T9yrx183WEFQIq7+I5Qj/o/xJmZYqnm1T/UAVD74jDfP/RUaSjRQ/A/oeL9w4FR4T9waOCchiH8P9yC2Tz2SQdAqFCvs/KyAUBPoDpMEdvlPwAtf/OeLN8/MqEGusm4AkDIaOIln1jKPxI3j1Tr/OE/KzASUGRGAEB/dTTfozIBQPD4EklwJgRAxAE8m2a4AkBWKndw37P2P2p9ffzHBvQ/dg8g7HB63D/tvJc3H1H8P+J3mo3ANwRAT5MUl3/eAUAmcEUrIvPxP8rrFYUoZ98/0zAMR1OJ/T+CPWZRIjXsP+hHML9YPMU/xK5SKoZrBkCWahlpkN3kP/IfpXo4d/A/0EOUVbjZB0ApWEMiyiEBQGWsC2FRhgVAOOaDmen72j8W7rd/UTAHQCIB68ebPfA/cWv47kEg4z8YKyDH+WgCQKjllCbQmbM/V9QlCQu7BkBAAJ+s4BQBQGJL+EvHjgRAYqgl/96fAkAr5J1taEr3PzAHwmpZv/A/9L7Tu0Uczz+9Vf6h6z3hPzcMkKLz2ARACGw1Mxl/xT+UxnlotAj5P5Dj2GnbJso/Sk4gOj0yBkD4UJLHEn8GQFzq40Y3pvg/BBCl1pghBUAE6XAEyWj8P3xKlFEJIMs/CUOD5Z2k+j9aj6Dfx3HhPxBXLjdYias/D7JdzbwV4T8+PsttGwQHQCD/Tb8NCdE/NbRQAzrtBUAsWSyrK7HRP0B79I8oNY0/dFb4B0PKxT8Cx6nZrd7dP75VB2h8u/4/HmwpK9Pp+D/0S7xenYgDQDrD6a1bXeg/bbcRR34r9T/TSbkebCnyPwUmQObrE+g/Xv5T4U5u9j964epGVXvnP6H1O7DRrQRA2/tfX8VB5D9094tpfITgP/t14u6zwO4/eJnMO/0N7T81G8OpMkfhP4xrBTCPTNI/yg79/8gc9z9TXlNcxDEDQA=="},y:{dtype:"f8",bdata:"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"},type:"scatter"}],{template:{data:{histogram2dcontour:[{type:"histogram2dcontour",colorbar:{outlinewidth:0,ticks:""},colorscale:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]]}],choropleth:[{type:"choropleth",colorbar:{outlinewidth:0,ticks:""}}],histogram2d:[{type:"histogram2d",colorbar:{outlinewidth:0,ticks:""},colorscale:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]]}],heatmap:[{type:"heatmap",colorbar:{outlinewidth:0,ticks:""},colorscale:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]]}],contourcarpet:[{type:"contourcarpet",colorbar:{outlinewidth:0,ticks:""}}],contour:[{type:"contour",colorbar:{outlinewidth:0,ticks:""},colorscale:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]]}],surface:[{type:"surface",colorbar:{outlinewidth:0,ticks:""},colorscale:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]]}],mesh3d:[{type:"mesh3d",colorbar:{outlinewidth:0,ticks:""}}],scatter:[{fillpattern:{fillmode:"overlay",size:10,solidity:.2},type:"scatter"}],parcoords:[{type:"parcoords",line:{colorbar:{outlinewidth:0,ticks:""}}}],scatterpolargl:[{type:"scatterpolargl",marker:{colorbar:{outlinewidth:0,ticks:""}}}],bar:[{error_x:{color:"#2a3f5f"},error_y:{color:"#2a3f5f"},marker:{line:{color:"#E5ECF6",width:.5},pattern:{fillmode:"overlay",size:10,solidity:.2}},type:"bar"}],scattergeo:[{type:"scattergeo",marker:{colorbar:{outlinewidth:0,ticks:""}}}],scatterpolar:[{type:"scatterpolar",marker:{colorbar:{outlinewidth:0,ticks:""}}}],histogram:[{marker:{pattern:{fillmode:"overlay",size:10,solidity:.2}},type:"histogram"}],scattergl:[{type:"scattergl",marker:{colorbar:{outlinewidth:0,ticks:""}}}],scatter3d:[{type:"scatter3d",line:{colorbar:{outlinewidth:0,ticks:""}},marker:{colorbar:{outlinewidth:0,ticks:""}}}],scattermap:[{type:"scattermap",marker:{colorbar:{outlinewidth:0,ticks:""}}}],scattermapbox:[{type:"scattermapbox",marker:{colorbar:{outlinewidth:0,ticks:""}}}],scatterternary:[{type:"scatterternary",marker:{colorbar:{outlinewidth:0,ticks:""}}}],scattercarpet:[{type:"scattercarpet",marker:{colorbar:{outlinewidth:0,ticks:""}}}],carpet:[{aaxis:{endlinecolor:"#2a3f5f",gridcolor:"white",linecolor:"white",minorgridcolor:"white",startlinecolor:"#2a3f5f"},baxis:{endlinecolor:"#2a3f5f",gridcolor:"white",linecolor:"white",minorgridcolor:"white",startlinecolor:"#2a3f5f"},type:"carpet"}],table:[{cells:{fill:{color:"#EBF0F8"},line:{color:"white"}},header:{fill:{color:"#C8D4E3"},line:{color:"white"}},type:"table"}],barpolar:[{marker:{line:{color:"#E5ECF6",width:.5},pattern:{fillmode:"overlay",size:10,solidity:.2}},type:"barpolar"}],pie:[{automargin:!0,type:"pie"}]},layout:{autotypenumbers:"strict",colorway:["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],font:{color:"#2a3f5f"},hovermode:"closest",hoverlabel:{align:"left"},paper_bgcolor:"white",plot_bgcolor:"#E5ECF6",polar:{bgcolor:"#E5ECF6",angularaxis:{gridcolor:"white",linecolor:"white",ticks:""},radialaxis:{gridcolor:"white",linecolor:"white",ticks:""}},ternary:{bgcolor:"#E5ECF6",aaxis:{gridcolor:"white",linecolor:"white",ticks:""},baxis:{gridcolor:"white",linecolor:"white",ticks:""},caxis:{gridcolor:"white",linecolor:"white",ticks:""}},coloraxis:{colorbar:{outlinewidth:0,ticks:""}},colorscale:{sequential:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]],sequentialminus:[[0,"#0d0887"],[.1111111111111111,"#46039f"],[.2222222222222222,"#7201a8"],[.3333333333333333,"#9c179e"],[.4444444444444444,"#bd3786"],[.5555555555555556,"#d8576b"],[.6666666666666666,"#ed7953"],[.7777777777777778,"#fb9f3a"],[.8888888888888888,"#fdca26"],[1,"#f0f921"]],diverging:[[0,"#8e0152"],[.1,"#c51b7d"],[.2,"#de77ae"],[.3,"#f1b6da"],[.4,"#fde0ef"],[.5,"#f7f7f7"],[.6,"#e6f5d0"],[.7,"#b8e186"],[.8,"#7fbc41"],[.9,"#4d9221"],[1,"#276419"]]},xaxis:{gridcolor:"white",linecolor:"white",ticks:"",title:{standoff:15},zerolinecolor:"white",automargin:!0,zerolinewidth:2},yaxis:{gridcolor:"white",linecolor:"white",ticks:"",title:{standoff:15},zerolinecolor:"white",automargin:!0,zerolinewidth:2},scene:{xaxis:{backgroundcolor:"#E5ECF6",gridcolor:"white",linecolor:"white",showbackground:!0,ticks:"",zerolinecolor:"white",gridwidth:2},yaxis:{backgroundcolor:"#E5ECF6",gridcolor:"white",linecolor:"white",showbackground:!0,ticks:"",zerolinecolor:"white",gridwidth:2},zaxis:{backgroundcolor:"#E5ECF6",gridcolor:"white",linecolor:"white",showbackground:!0,ticks:"",zerolinecolor:"white",gridwidth:2}},shapedefaults:{line:{color:"#2a3f5f"}},annotationdefaults:{arrowcolor:"#2a3f5f",arrowhead:0,arrowwidth:1},geo:{bgcolor:"white",landcolor:"#E5ECF6",subunitcolor:"white",showland:!0,showlakes:!0,lakecolor:"white"},title:{x:.05},mapbox:{style:"light"}}},margin:{l:0,r:0,t:0,b:0},xaxis:{showgrid:!1,zeroline:!1,showticklabels:!1,range:[0,3]},yaxis:{showgrid:!1,zeroline:!1,showticklabels:!1,scaleanchor:"x",scaleratio:1,range:[0,1]},width:1200,height:400,paper_bgcolor:"white",plot_bgcolor:"white",showlegend:!1},{displayModeBar:!1,responsive:!0,scrollZoom:!1})</script> </div>
|
43 |
+
</div>
|
44 |
+
<p style="text-align: cekter; font-style: italic; margin-top: 10px; max-width: 900px; margin-left: auto; margin-right: auto;">It's nice to have a cute interactive banner!</p>
|
45 |
+
|
46 |
+
</div>
|
47 |
+
</d-title>
|
48 |
+
<d-byline></d-byline>
|
49 |
+
<d-article>
|
50 |
+
<d-contents>
|
51 |
+
</d-contents>
|
52 |
+
|
53 |
+
<p>Welcome to the Distill Blog Template! This framework is based on the <a href="https://distill.pub/">distill.pub</a> design and has been adapted to make it easy for you to create beautiful, interactive technical blogs. Whether you're writing about machine learning, data science, physics, or any technical topic, this template provides the structure and components you need.</p>
|
54 |
+
|
55 |
+
<aside>Reading time: 10-15 minutes.</aside>
|
56 |
+
|
57 |
+
<p>This template includes support for mathematics, interactive visualizations, citations, footnotes, and more. In this guide, we'll walk you through the structure of the template and how to customize it for your own blog.</p>
|
58 |
+
|
59 |
+
<aside>If you have questions or remarks open a discussion on the <a href="https://huggingface.co/spaces/lvwerra/distill-blog-template/discussions?status=open&type=discussion">Community tab</a>!</aside>
|
60 |
+
|
61 |
+
<p>The template is built with the following features in mind:</p>
|
62 |
+
|
63 |
+
<p><strong>1. Beautiful typography and layout</strong>: The template follows Distill's clean, readable design principles with responsive layouts that work well on desktop and mobile.</p>
|
64 |
+
|
65 |
+
<p><strong>2. Support for interactive components</strong>: You can include interactive visualizations, like the memory widget shown below:</p>
|
66 |
+
|
67 |
+
<h2>Getting Started with the Template</h2>
|
68 |
+
|
69 |
+
<p>Let's walk through how to use this template to create your own blog:</p>
|
70 |
+
|
71 |
+
<h3>Installation and Setup</h3>
|
72 |
+
|
73 |
+
<p>First, duplicate the repository and clone it to your local machine and install the dependencies:</p>
|
74 |
+
|
75 |
+
|
76 |
+
<d-code block language="bash">
|
77 |
+
git clone https://huggingface.co/spaces/lvwerra/distill-blog-template
|
78 |
+
cd distill-blog-template
|
79 |
+
npm install
|
80 |
+
</d-code>
|
81 |
+
|
82 |
+
<p>To run the development server:</p>
|
83 |
+
|
84 |
+
<d-code block language="bash">
|
85 |
+
npm run dev
|
86 |
+
</d-code>
|
87 |
+
|
88 |
+
<p>This will start a local server at <code> http://localhost:8080 </code> where you can preview your blog as you edit it.</p>
|
89 |
+
|
90 |
+
<h3>Editing the Front Matter</h3>
|
91 |
+
|
92 |
+
<p>The front matter contains metadata about your blog post, such as the title, description, and author information. Edit the <code><d-front-matter></code> section at the top of <code>src/index.html</code>:</p>
|
93 |
+
|
94 |
+
<d-code block language="html"><d-front-matter>
|
95 |
+
<script id='distill-front-matter' type="text/json">{
|
96 |
+
"title": "Your Blog Title",
|
97 |
+
"description": "A brief description of your blog",
|
98 |
+
"published": "Month Day, Year",
|
99 |
+
"affiliation": {"name": "Your Organization"},
|
100 |
+
"authors": [
|
101 |
+
{
|
102 |
+
"author":"Your Name",
|
103 |
+
"authorURL":"https://your-website.com"
|
104 |
+
}
|
105 |
+
],
|
106 |
+
"katex": {
|
107 |
+
"delimiters": [
|
108 |
+
{"left": "$$", "right": "$$", "display": false}
|
109 |
+
]
|
110 |
+
}
|
111 |
+
}
|
112 |
+
</script>
|
113 |
+
</d-front-matter></d-code>
|
114 |
+
|
115 |
+
<p>An the corresponding entries in <code>src/distill.js</code> in the <code>bylineTemplate</code>.</p>
|
116 |
+
|
117 |
+
<h3>Writing Your Content</h3>
|
118 |
+
|
119 |
+
<p>Your main content goes within the <code><d-article></code> tags. You can use standard HTML tags with some special Distill components:</p>
|
120 |
+
|
121 |
+
<h4>Mathematical Equations</h4>
|
122 |
+
|
123 |
+
<p>You can include inline math using <code><d-math>x^2 + y^2 = z^2</d-math></code> which renders as <d-math>x^2 + y^2 = z^2</d-math>.</p>
|
124 |
+
|
125 |
+
<p>For block equations, use <code><d-math block>E = mc^2</d-math></code>:</p>
|
126 |
+
|
127 |
+
<d-math block>E = mc^2</d-math>
|
128 |
+
|
129 |
+
<h4>Code</h4>
|
130 |
+
|
131 |
+
<p>It's great to include code samples in your blog post. In-line you can do it via the <code><code></code> tags. For code blocks you can use the <code><d-code block language="clike"></d-code></code> tags. Take the for example the following block:</p>
|
132 |
+
|
133 |
+
<d-code block language="html">
|
134 |
+
<d-code block language="python">
|
135 |
+
def print_hello_world():
|
136 |
+
print("hello world")
|
137 |
+
</d-code>
|
138 |
+
</d-code>
|
139 |
+
|
140 |
+
<p>It will render as:</p>
|
141 |
+
|
142 |
+
<d-code block language="python">
|
143 |
+
def print_hello_world():
|
144 |
+
print("hello world")
|
145 |
+
</d-code>
|
146 |
+
|
147 |
+
<p>Finally, if you want to include code from GitHub you can use <a href="www.emgithub.com">emgithub.com</a> and for example create a collapsable widget like this:</p>
|
148 |
+
|
149 |
+
<d-code block language="html">
|
150 |
+
<details style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; margin: 1em 0;">
|
151 |
+
<summary style="padding: 12px; cursor: pointer; user-select: none; background: #f3f4f6; border-bottom: 1px solid #d0d7de;">
|
152 |
+
👉 Naive DP implementation with overlap in Picotron (Click to expand)
|
153 |
+
</summary>
|
154 |
+
<div class="code-embed-container" style="margin: 0; border-radius: 0; overflow-x: scroll; width: max-content; min-width: 100%; font-size: 8px;"></div>
|
155 |
+
<script
|
156 |
+
src="https://emgithub.com/embed-v2.js?target=https%3A%2F%2Fgithub.com%2Fhuggingface%2Fpicotron%2Fblob%2F0035cce0e04afd6192763b11efe50010d8ad0f71%2Fpicotron%2Fdata_parallel%2Fdata_parallel.py%23L10-L60&style=github&type=code&showBorder=off&showLineNumbers=on&showFileMeta=on&showCopy=on&showFullPath=on">
|
157 |
+
</script>
|
158 |
+
</div>
|
159 |
+
</details>
|
160 |
+
</d-code>
|
161 |
+
|
162 |
+
<p>Which will display as follows:</p>
|
163 |
+
|
164 |
+
<details style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; margin: 1em 0;">
|
165 |
+
<summary style="padding: 12px; cursor: pointer; user-select: none; background: #f3f4f6; border-bottom: 1px solid #d0d7de;">
|
166 |
+
👉 Naive DP implementation with overlap in Picotron (Click to expand)
|
167 |
+
</summary>
|
168 |
+
<div class="code-embed-container" style="margin: 0; border-radius: 0; overflow-x: scroll; width: max-content; min-width: 100%; font-size: 8px;"></div>
|
169 |
+
<script
|
170 |
+
src="https://emgithub.com/embed-v2.js?target=https%3A%2F%2Fgithub.com%2Fhuggingface%2Fpicotron%2Fblob%2F0035cce0e04afd6192763b11efe50010d8ad0f71%2Fpicotron%2Fdata_parallel%2Fdata_parallel.py%23L10-L60&style=github&type=code&showBorder=off&showLineNumbers=on&showFileMeta=on&showCopy=on&showFullPath=on">
|
171 |
+
</script>
|
172 |
+
</div>
|
173 |
+
</details>
|
174 |
+
|
175 |
+
|
176 |
+
<h4>Asides</h4>
|
177 |
+
|
178 |
+
<p>You can include side notes using the <code><aside>...</aside></code> tag:</p>
|
179 |
+
|
180 |
+
<aside>This is a side note that will appear in the margin.</aside>
|
181 |
+
|
182 |
+
<h4>Figures and Images</h4>
|
183 |
+
|
184 |
+
<p>Include figures with captions:</p>
|
185 |
+
|
186 |
+
<d-code block language="html">
|
187 |
+
<figure>
|
188 |
+
<img src="/assets/images/placeholder.png" alt="A placeholder image">
|
189 |
+
<figcaption>Caption for your figure</figcaption>
|
190 |
+
</figure>
|
191 |
+
</d-code>
|
192 |
+
|
193 |
+
<p>This will show the following:</p>
|
194 |
+
|
195 |
+
<figure>
|
196 |
+
<img src="/assets/images/placeholder.png" alt="A placeholder image">
|
197 |
+
<figcaption>Caption for your figure</figcaption>
|
198 |
+
</figure>
|
199 |
+
|
200 |
+
<h4>Tables</h4>
|
201 |
+
|
202 |
+
<p>You can easily add tables with the default HTML formatting:</p>
|
203 |
+
|
204 |
+
<d-code block language="html">
|
205 |
+
<table>
|
206 |
+
<thead>
|
207 |
+
<tr>
|
208 |
+
<th><strong>Model</strong></th>
|
209 |
+
<th><strong>Accuracy</strong></th>
|
210 |
+
<th><strong>Speed</strong></th>
|
211 |
+
</tr>
|
212 |
+
</thead>
|
213 |
+
<tbody>
|
214 |
+
<tr>
|
215 |
+
<td>Model A</td>
|
216 |
+
<td>95%</td>
|
217 |
+
<td>Fast</td>
|
218 |
+
</tr>
|
219 |
+
<tr>
|
220 |
+
<td>Model B</td>
|
221 |
+
<td>98%</td>
|
222 |
+
<td>Medium</td>
|
223 |
+
</tr>
|
224 |
+
<tr>
|
225 |
+
<td>Model C</td>
|
226 |
+
<td>99%</td>
|
227 |
+
<td>Slow</td>
|
228 |
+
</tr>
|
229 |
+
</tbody>
|
230 |
+
</table>
|
231 |
+
</d-code>
|
232 |
+
|
233 |
+
<p>This will render as a table as expected:</p>
|
234 |
+
|
235 |
+
<table>
|
236 |
+
<thead>
|
237 |
+
<tr>
|
238 |
+
<th><strong>Model</strong></th>
|
239 |
+
<th><strong>Accuracy</strong></th>
|
240 |
+
<th><strong>Speed</strong></th>
|
241 |
+
</tr>
|
242 |
+
</thead>
|
243 |
+
<tbody>
|
244 |
+
<tr>
|
245 |
+
<td>Model A</td>
|
246 |
+
<td>95%</td>
|
247 |
+
<td>Fast</td>
|
248 |
+
</tr>
|
249 |
+
<tr>
|
250 |
+
<td>Model B</td>
|
251 |
+
<td>98%</td>
|
252 |
+
<td>Medium</td>
|
253 |
+
</tr>
|
254 |
+
<tr>
|
255 |
+
<td>Model C</td>
|
256 |
+
<td>99%</td>
|
257 |
+
<td>Slow</td>
|
258 |
+
</tr>
|
259 |
+
</tbody>
|
260 |
+
</table>
|
261 |
+
|
262 |
+
<h4>Citations</h4>
|
263 |
+
|
264 |
+
<p>Citations can be included using <code><d-cite bibtex-key="example2023"></d-cite></code> tags and a separate bibliography file:</p>
|
265 |
+
|
266 |
+
<p>As shown in the paper<d-cite bibtex-key="example2023"></d-cite>, this approach has several advantages.</p>
|
267 |
+
|
268 |
+
<h3>Building and Deploying</h3>
|
269 |
+
|
270 |
+
<p>When you're ready to build your blog for production:</p>
|
271 |
+
|
272 |
+
<pre><code>npm run build</code></pre>
|
273 |
+
|
274 |
+
<p>This will create optimized files in the <code>dist/</code> directory. You can then commit and push the changes back to the space and see the result.</p>
|
275 |
+
|
276 |
+
<h2>Interactive Components</h2>
|
277 |
+
|
278 |
+
<p>You can for example include interactive Plotly visualizations in your blog by creating HTML fragments:</p>
|
279 |
+
|
280 |
+
<p>To generate these charts, run the included Python script:</p>
|
281 |
+
|
282 |
+
<d-code block language="bash">
|
283 |
+
pip install numpy plotly pandas
|
284 |
+
python plotly_example.py
|
285 |
+
</d-code>
|
286 |
+
|
287 |
+
<p>This creates HTML fragments in the <code>src/fragments/</code> directory that you can include in your blog using the <code>id</code> attribute matching the fragment name.</p>
|
288 |
+
|
289 |
+
<h3>Using HTML Fragments</h3>
|
290 |
+
|
291 |
+
<p>This template supports HTML fragments, which are useful for including complex visualizations or interactive components:</p>
|
292 |
+
|
293 |
+
<ol>
|
294 |
+
<li>Create a new HTML file in the <code>src/fragments/</code> directory, e.g., <code>src/fragments/my-visualization.html</code></li>
|
295 |
+
<li>Include it in your main document using <code>{{{fragment-my-visualization}}}</code></li>
|
296 |
+
</ol>
|
297 |
+
|
298 |
+
<p>Fragments can contain HTML, CSS, and JavaScript. They're loaded asynchronously, which helps keep your main document lightweight.</p>
|
299 |
+
|
300 |
+
|
301 |
+
<h2>Advanced Customization</h2>
|
302 |
+
|
303 |
+
<h3>Styling</h3>
|
304 |
+
|
305 |
+
<p>You can customize the appearance of your blog by editing <code>src/style.css</code>. The template uses CSS variables for colors, fonts, and spacing, making it easy to adjust the overall look and feel.</p>
|
306 |
+
|
307 |
+
<h3>Adding JavaScript</h3>
|
308 |
+
|
309 |
+
<p>For interactive components, add your JavaScript code to <code>src/index.js</code> or create new modules and import them. The template uses webpack to bundle JavaScript files.</p>
|
310 |
+
|
311 |
+
<h3>Bibliography</h3>
|
312 |
+
|
313 |
+
<p>Edit <code>src/bibliography.bib</code> to include your citations in BibTeX format.</p>
|
314 |
+
|
315 |
+
<h2>Best Practices</h2>
|
316 |
+
|
317 |
+
<ul>
|
318 |
+
<li>Keep your content focused and concise</li>
|
319 |
+
<li>Use visualizations to explain complex concepts</li>
|
320 |
+
<li>Break down long articles into clear sections with descriptive headings</li>
|
321 |
+
<li>Use mathematics sparingly and always explain the notation</li>
|
322 |
+
<li>Optimize images and interactive components for fast loading</li>
|
323 |
+
</ul>
|
324 |
+
|
325 |
+
<h2>Conclusion</h2>
|
326 |
+
|
327 |
+
<p>This template gives you everything you need to create beautiful, interactive technical blogs. By combining clear writing with interactive visualizations and mathematical notation, you can effectively communicate complex ideas to your audience.</p>
|
328 |
+
|
329 |
+
<p>For more examples and inspiration, visit <a href="https://distill.pub/">distill.pub</a>.</p>
|
330 |
+
|
331 |
+
|
332 |
+
|
333 |
+
</d-article>
|
334 |
+
|
335 |
+
<d-appendix>
|
336 |
+
<d-bibliography src="bibliography.bib"></d-bibliography>
|
337 |
+
<style>
|
338 |
+
d-appendix .citation {
|
339 |
+
font-size: 11px;
|
340 |
+
line-height: 15px;
|
341 |
+
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
342 |
+
padding-left: 18px;
|
343 |
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
344 |
+
background: rgba(0, 0, 0, 0.02);
|
345 |
+
padding: 10px 18px;
|
346 |
+
border-radius: 3px;
|
347 |
+
color: rgba(150, 150, 150, 1);
|
348 |
+
overflow: hidden;
|
349 |
+
margin-top: -12px;
|
350 |
+
white-space: pre-wrap;
|
351 |
+
word-wrap: break-word;
|
352 |
+
}
|
353 |
+
</style>
|
354 |
+
|
355 |
+
<h3 id="citation">Citation</h3>
|
356 |
+
<p>For attribution in academic contexts, please cite this work as</p>
|
357 |
+
<pre
|
358 |
+
class="citation short">"The Distill Blog Template", 2025.</pre>
|
359 |
+
<p>BibTeX citation</p>
|
360 |
+
<pre class="citation long">@misc{distill_blog_template,
|
361 |
+
title={The Distill Blog Template},
|
362 |
+
author={Some Authors et al},
|
363 |
+
year={2025},
|
364 |
+
}</pre>
|
365 |
+
</d-appendix>
|
366 |
+
<script>
|
367 |
+
function toggleTOC() {
|
368 |
+
const content = document.querySelector('.toc-content');
|
369 |
+
const icon = document.querySelector('.toggle-icon');
|
370 |
+
|
371 |
+
content.classList.toggle('collapsed');
|
372 |
+
icon.classList.toggle('collapsed');
|
373 |
+
}
|
374 |
+
</script>
|
375 |
+
|
376 |
+
<script>
|
377 |
+
const article = document.querySelector('d-article');
|
378 |
+
const toc = document.querySelector('d-contents');
|
379 |
+
if (toc) {
|
380 |
+
const headings = article.querySelectorAll('h2, h3, h4');
|
381 |
+
// let ToC = `<nav role="navigation" class="l-text figcaption"><h3>Table of contents</h3>`;
|
382 |
+
let ToC = `<nav role="navigation" class="l-text figcaption"><div class="toc-header" onclick="toggleTOC()">
|
383 |
+
<span class="toc-title">Table of Contents</span>
|
384 |
+
<span class="toggle-icon">▼</span>
|
385 |
+
</div><div class="toc-content">`;
|
386 |
+
let prevLevel = 0;
|
387 |
+
|
388 |
+
for (const el of headings) {
|
389 |
+
// should element be included in TOC?
|
390 |
+
const isInTitle = el.parentElement.tagName == 'D-TITLE';
|
391 |
+
const isException = el.getAttribute('no-toc');
|
392 |
+
if (isInTitle || isException) continue;
|
393 |
+
el.setAttribute('id', el.textContent.toLowerCase().replaceAll(" ", "_"))
|
394 |
+
const link = '<a target="_self" href="' + '#' + el.getAttribute('id') + '">' + el.textContent + '</a>';
|
395 |
+
|
396 |
+
const level = el.tagName === 'H2' ? 0 : (el.tagName === 'H3' ? 1 : 2);
|
397 |
+
while (prevLevel < level) {
|
398 |
+
ToC += '<ul>'
|
399 |
+
prevLevel++;
|
400 |
+
}
|
401 |
+
while (prevLevel > level) {
|
402 |
+
ToC += '</ul>'
|
403 |
+
prevLevel--;
|
404 |
+
}
|
405 |
+
if (level === 0)
|
406 |
+
ToC += '<div>' + link + '</div>';
|
407 |
+
else
|
408 |
+
// else if (level === 1)
|
409 |
+
ToC += '<li>' + link + '</li>';
|
410 |
+
}
|
411 |
+
|
412 |
+
while (prevLevel > 0) {
|
413 |
+
ToC += '</ul>'
|
414 |
+
prevLevel--;
|
415 |
+
}
|
416 |
+
ToC += '</div></nav>';
|
417 |
+
toc.innerHTML = ToC;
|
418 |
+
toc.setAttribute('prerendered', 'true');
|
419 |
+
const toc_links = document.querySelectorAll('d-contents > nav div a');
|
420 |
+
|
421 |
+
window.addEventListener('scroll', (_event) => {
|
422 |
+
if (typeof (headings) != 'undefined' && headings != null && typeof (toc_links) != 'undefined' && toc_links != null) {
|
423 |
+
find_active: {
|
424 |
+
for (let i = headings.length - 1; i >= 0; i--) {
|
425 |
+
const heading = headings[i];
|
426 |
+
// Skip headings that shouldn't be in TOC
|
427 |
+
if (heading.parentElement.tagName == 'D-TITLE' || heading.getAttribute('no-toc')) {
|
428 |
+
continue;
|
429 |
+
}
|
430 |
+
|
431 |
+
if (heading.getBoundingClientRect().top - 50 <= 0) {
|
432 |
+
// Find matching TOC link by href
|
433 |
+
const headingId = heading.getAttribute('id');
|
434 |
+
const activeLink = Array.from(toc_links).find(link =>
|
435 |
+
link.getAttribute('href') === '#' + headingId
|
436 |
+
);
|
437 |
+
|
438 |
+
if (activeLink && !activeLink.classList.contains("active")) {
|
439 |
+
toc_links.forEach(link => link.classList.remove("active"));
|
440 |
+
activeLink.classList.add('active');
|
441 |
+
}
|
442 |
+
break find_active;
|
443 |
+
}
|
444 |
+
}
|
445 |
+
toc_links.forEach(link => link.classList.remove("active"));
|
446 |
+
}
|
447 |
+
}
|
448 |
+
});
|
449 |
+
}
|
450 |
+
</script>
|
451 |
+
|
452 |
+
</body>
|
453 |
+
|
454 |
+
</html>
|
dist/main.bundle.js
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* ATTENTION: An "eval-source-map" devtool has been used.
|
3 |
+
* This devtool is neither made for production nor for readable output files.
|
4 |
+
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
5 |
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
6 |
+
* or disable the default devtool with "devtool: false".
|
7 |
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
8 |
+
*/
|
9 |
+
/******/ (() => { // webpackBootstrap
|
10 |
+
/******/ "use strict";
|
11 |
+
/******/ var __webpack_modules__ = ({
|
12 |
+
|
13 |
+
/***/ "./src/fragmentLoader.js":
|
14 |
+
/*!*******************************!*\
|
15 |
+
!*** ./src/fragmentLoader.js ***!
|
16 |
+
\*******************************/
|
17 |
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
18 |
+
|
19 |
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadFragments: () => (/* binding */ loadFragments)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction loadFragments() {\n return _loadFragments.apply(this, arguments);\n}\nfunction _loadFragments() {\n _loadFragments = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var fragmentElements, FetchQueue, fetchQueue, currentIndex, elements;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n // Find all elements with ids starting with 'fragment-'\n fragmentElements = Array.from(document.querySelectorAll('[id^=\"fragment-\"]'));\n FetchQueue = /*#__PURE__*/function () {\n function FetchQueue() {\n var maxConcurrent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;\n _classCallCheck(this, FetchQueue);\n this.queue = [];\n this.maxConcurrent = maxConcurrent;\n this.activeFetches = 0;\n this.maxRetries = 3; // Maximum number of retry attempts\n this.baseDelay = 1000; // Base delay in milliseconds (1 second)\n }\n return _createClass(FetchQueue, [{\n key: \"sleep\",\n value: function () {\n var _sleep = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(ms) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", new Promise(function (resolve) {\n return setTimeout(resolve, ms);\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function sleep(_x) {\n return _sleep.apply(this, arguments);\n }\n return sleep;\n }()\n }, {\n key: \"fetchWithRetry\",\n value: function () {\n var _fetchWithRetry = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(fragmentPath) {\n var retryCount,\n response,\n delay,\n _args2 = arguments;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n retryCount = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 0;\n _context2.prev = 1;\n _context2.next = 4;\n return fetch(fragmentPath);\n case 4:\n response = _context2.sent;\n if (response.ok) {\n _context2.next = 7;\n break;\n }\n throw new Error(\"HTTP error! status: \".concat(response.status));\n case 7:\n _context2.next = 9;\n return response.text();\n case 9:\n return _context2.abrupt(\"return\", _context2.sent);\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](1);\n if (!(retryCount < this.maxRetries)) {\n _context2.next = 20;\n break;\n }\n // Exponential backoff: 1s, 2s, 4s\n delay = this.baseDelay * Math.pow(2, retryCount);\n console.warn(\"Retry \".concat(retryCount + 1, \"/\").concat(this.maxRetries, \" for \").concat(fragmentPath, \" after \").concat(delay, \"ms\"));\n _context2.next = 19;\n return this.sleep(delay);\n case 19:\n return _context2.abrupt(\"return\", this.fetchWithRetry(fragmentPath, retryCount + 1));\n case 20:\n throw _context2.t0;\n case 21:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[1, 12]]);\n }));\n function fetchWithRetry(_x2) {\n return _fetchWithRetry.apply(this, arguments);\n }\n return fetchWithRetry;\n }()\n }, {\n key: \"addFetch\",\n value: function () {\n var _addFetch = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(element) {\n var _this = this;\n var fragmentName, fragmentPath;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n fragmentName = element.id.replace('fragment-', '');\n fragmentPath = \"fragments/\".concat(fragmentName, \".html\");\n return _context5.abrupt(\"return\", new Promise(/*#__PURE__*/function () {\n var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(resolve, reject) {\n var fetchPromise;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n try {\n fetchPromise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var html, temp, scripts;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return _this.fetchWithRetry(fragmentPath);\n case 3:\n html = _context3.sent;\n // Process the fragment\n temp = document.createElement('div');\n temp.innerHTML = html;\n element.innerHTML = temp.innerHTML;\n\n // Handle scripts\n scripts = temp.getElementsByTagName('script');\n Array.from(scripts).forEach(function (oldScript) {\n var newScript = document.createElement('script');\n Array.from(oldScript.attributes).forEach(function (attr) {\n newScript.setAttribute(attr.name, attr.value);\n });\n newScript.textContent = oldScript.textContent;\n oldScript.parentNode.removeChild(oldScript);\n document.body.appendChild(newScript);\n });\n _this.activeFetches--;\n resolve();\n _context3.next = 18;\n break;\n case 13:\n _context3.prev = 13;\n _context3.t0 = _context3[\"catch\"](0);\n console.error(\"Failed to load fragment \".concat(fragmentPath, \" after \").concat(_this.maxRetries, \" retries:\"), _context3.t0);\n _this.activeFetches--;\n reject(_context3.t0);\n case 18:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 13]]);\n }))();\n _this.queue.push(fetchPromise);\n _this.activeFetches++;\n } catch (error) {\n reject(error);\n }\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x4, _x5) {\n return _ref.apply(this, arguments);\n };\n }()));\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n function addFetch(_x3) {\n return _addFetch.apply(this, arguments);\n }\n return addFetch;\n }()\n }, {\n key: \"processNext\",\n value: function () {\n var _processNext = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(element) {\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n if (!(this.activeFetches < this.maxConcurrent && element)) {\n _context6.next = 3;\n break;\n }\n _context6.next = 3;\n return this.addFetch(element);\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function processNext(_x6) {\n return _processNext.apply(this, arguments);\n }\n return processNext;\n }()\n }]);\n }(); // Initialize queue\n fetchQueue = new FetchQueue(3);\n currentIndex = 0;\n elements = fragmentElements; // Assuming this is defined elsewhere\n // Initial loading of first 3 elements\n case 5:\n if (!(currentIndex < elements.length && currentIndex < 3)) {\n _context7.next = 11;\n break;\n }\n _context7.next = 8;\n return fetchQueue.processNext(elements[currentIndex]);\n case 8:\n currentIndex++;\n _context7.next = 5;\n break;\n case 11:\n if (!(currentIndex < elements.length)) {\n _context7.next = 20;\n break;\n }\n _context7.next = 14;\n return Promise.race(fetchQueue.queue);\n case 14:\n // Remove completed fetch from queue\n fetchQueue.queue = fetchQueue.queue.filter(function (p) {\n return p.status === 'pending';\n });\n // Add next element to queue\n _context7.next = 17;\n return fetchQueue.processNext(elements[currentIndex]);\n case 17:\n currentIndex++;\n _context7.next = 11;\n break;\n case 20:\n _context7.next = 22;\n return Promise.all(fetchQueue.queue);\n case 22:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _loadFragments.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1VBQ3ZFO1VBQUEvQixTQUFBLENBQUE3RCxJQUFBO1VBQUEsT0FDTXlELFVBQVUsQ0FBQ3VGLFdBQVcsQ0FBQ3JGLFFBQVEsQ0FBQ0QsWUFBWSxDQUFDLENBQUM7UUFBQTtVQUNwREEsWUFBWSxFQUFFO1VBQUNHLFNBQUEsQ0FBQTdELElBQUE7VUFBQTtRQUFBO1VBQUE2RCxTQUFBLENBQUE3RCxJQUFBO1VBQUEsT0FJYnVCLE9BQU8sQ0FBQzZILEdBQUcsQ0FBQzNGLFVBQVUsQ0FBQ1csS0FBSyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFQLFNBQUEsQ0FBQS9CLElBQUE7TUFBQTtJQUFBLEdBQUF3QixRQUFBO0VBQUEsQ0FDdEM7RUFBQSxPQUFBRCxjQUFBLENBQUFKLEtBQUEsT0FBQUQsU0FBQTtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvZ3Bvc3QvLi9zcmMvZnJhZ21lbnRMb2FkZXIuanM/YWMzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJhc3luYyBmdW5jdGlvbiBsb2FkRnJhZ21lbnRzKCkge1xyXG4gICAgLy8gRmluZCBhbGwgZWxlbWVudHMgd2l0aCBpZHMgc3RhcnRpbmcgd2l0aCAnZnJhZ21lbnQtJ1xyXG4gICAgY29uc3QgZnJhZ21lbnRFbGVtZW50cyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkXj1cImZyYWdtZW50LVwiXScpKTtcclxuICAgIFxyXG4gICAgY2xhc3MgRmV0Y2hRdWV1ZSB7XHJcbiAgICAgICAgY29uc3RydWN0b3IobWF4Q29uY3VycmVudCA9IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5xdWV1ZSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLm1heENvbmN1cnJlbnQgPSBtYXhDb25jdXJyZW50O1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUZldGNoZXMgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLm1heFJldHJpZXMgPSAzOyAvLyBNYXhpbXVtIG51bWJlciBvZiByZXRyeSBhdHRlbXB0c1xyXG4gICAgICAgICAgICB0aGlzLmJhc2VEZWxheSA9IDEwMDA7IC8vIEJhc2UgZGVsYXkgaW4gbWlsbGlzZWNvbmRzICgxIHNlY29uZClcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFzeW5jIHNsZWVwKG1zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFzeW5jIGZldGNoV2l0aFJldHJ5KGZyYWdtZW50UGF0aCwgcmV0cnlDb3VudCA9IDApIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZnJhZ21lbnRQYXRoKTtcclxuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCB0aGlzLm1heFJldHJpZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBFeHBvbmVudGlhbCBiYWNrb2ZmOiAxcywgMnMsIDRzXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsYXkgPSB0aGlzLmJhc2VEZWxheSAqIE1hdGgucG93KDIsIHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUmV0cnkgJHtyZXRyeUNvdW50ICsgMX0vJHt0aGlzLm1heFJldHJpZXN9IGZvciAke2ZyYWdtZW50UGF0aH0gYWZ0ZXIgJHtkZWxheX1tc2ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2xlZXAoZGVsYXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoV2l0aFJldHJ5KGZyYWdtZW50UGF0aCwgcmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFzeW5jIGFkZEZldGNoKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnROYW1lID0gZWxlbWVudC5pZC5yZXBsYWNlKCdmcmFnbWVudC0nLCAnJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50UGF0aCA9IGBmcmFnbWVudHMvJHtmcmFnbWVudE5hbWV9Lmh0bWxgO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hQcm9taXNlID0gKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLmZldGNoV2l0aFJldHJ5KGZyYWdtZW50UGF0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIGZyYWdtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmlubmVySFRNTCA9IGh0bWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRlbXAuaW5uZXJIVE1MO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgc2NyaXB0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0cyA9IHRlbXAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuZnJvbShzY3JpcHRzKS5mb3JFYWNoKG9sZFNjcmlwdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuZnJvbShvbGRTY3JpcHQuYXR0cmlidXRlcykuZm9yRWFjaChhdHRyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2NyaXB0LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NjcmlwdC50ZXh0Q29udGVudCA9IG9sZFNjcmlwdC50ZXh0Q29udGVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvbGRTY3JpcHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobmV3U2NyaXB0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUZldGNoZXMtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGZyYWdtZW50ICR7ZnJhZ21lbnRQYXRofSBhZnRlciAke3RoaXMubWF4UmV0cmllc30gcmV0cmllczpgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUZldGNoZXMtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXVlLnB1c2goZmV0Y2hQcm9taXNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUZldGNoZXMrKztcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhc3luYyBwcm9jZXNzTmV4dChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUZldGNoZXMgPCB0aGlzLm1heENvbmN1cnJlbnQgJiYgZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGRGZXRjaChlbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJbml0aWFsaXplIHF1ZXVlXHJcbiAgICBjb25zdCBmZXRjaFF1ZXVlID0gbmV3IEZldGNoUXVldWUoMyk7XHJcbiAgICBsZXQgY3VycmVudEluZGV4ID0gMDtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZnJhZ21lbnRFbGVtZW50czsgLy8gQXNzdW1pbmcgdGhpcyBpcyBkZWZpbmVkIGVsc2V3aGVyZVxyXG5cclxuICAgIC8vIEluaXRpYWwgbG9hZGluZyBvZiBmaXJzdCAzIGVsZW1lbnRzXHJcbiAgICB3aGlsZSAoY3VycmVudEluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIGN1cnJlbnRJbmRleCA8IDMpIHtcclxuICAgICAgICBhd2FpdCBmZXRjaFF1ZXVlLnByb2Nlc3NOZXh0KGVsZW1lbnRzW2N1cnJlbnRJbmRleF0pO1xyXG4gICAgICAgIGN1cnJlbnRJbmRleCsrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFByb2Nlc3MgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGZldGNoZXMgY29tcGxldGVcclxuICAgIHdoaWxlIChjdXJyZW50SW5kZXggPCBlbGVtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAvLyBXYWl0IGZvciBhbnkgZmV0Y2ggdG8gY29tcGxldGVcclxuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoZmV0Y2hRdWV1ZS5xdWV1ZSk7XHJcbiAgICAgICAgLy8gUmVtb3ZlIGNvbXBsZXRlZCBmZXRjaCBmcm9tIHF1ZXVlXHJcbiAgICAgICAgZmV0Y2hRdWV1ZS5xdWV1ZSA9IGZldGNoUXVldWUucXVldWUuZmlsdGVyKHAgPT4gcC5zdGF0dXMgPT09ICdwZW5kaW5nJyk7XHJcbiAgICAgICAgLy8gQWRkIG5leHQgZWxlbWVudCB0byBxdWV1ZVxyXG4gICAgICAgIGF3YWl0IGZldGNoUXVldWUucHJvY2Vzc05leHQoZWxlbWVudHNbY3VycmVudEluZGV4XSk7XHJcbiAgICAgICAgY3VycmVudEluZGV4Kys7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2FpdCBmb3IgcmVtYWluaW5nIGZldGNoZXMgdG8gY29tcGxldGVcclxuICAgIGF3YWl0IFByb21pc2UuYWxsKGZldGNoUXVldWUucXVldWUpO1xyXG59XHJcblxyXG5leHBvcnQgeyBsb2FkRnJhZ21lbnRzIH0iXSwibmFtZXMiOlsiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiaSIsIlN5bWJvbCIsImEiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsImxvYWRGcmFnbWVudHMiLCJfbG9hZEZyYWdtZW50cyIsIl9jYWxsZWU3IiwiZnJhZ21lbnRFbGVtZW50cyIsIkZldGNoUXVldWUiLCJmZXRjaFF1ZXVlIiwiY3VycmVudEluZGV4IiwiZWxlbWVudHMiLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJtYXhDb25jdXJyZW50IiwidW5kZWZpbmVkIiwicXVldWUiLCJhY3RpdmVGZXRjaGVzIiwibWF4UmV0cmllcyIsImJhc2VEZWxheSIsIl9zbGVlcCIsIl9jYWxsZWUiLCJtcyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzZXRUaW1lb3V0Iiwic2xlZXAiLCJfeCIsIl9mZXRjaFdpdGhSZXRyeSIsIl9jYWxsZWUyIiwiZnJhZ21lbnRQYXRoIiwicmV0cnlDb3VudCIsInJlc3BvbnNlIiwiZGVsYXkiLCJfYXJnczIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJmZXRjaCIsIm9rIiwiY29uY2F0Iiwic3RhdHVzIiwidGV4dCIsInQwIiwiTWF0aCIsInBvdyIsImNvbnNvbGUiLCJ3YXJuIiwiZmV0Y2hXaXRoUmV0cnkiLCJfeDIiLCJfYWRkRmV0Y2giLCJfY2FsbGVlNSIsImVsZW1lbnQiLCJfdGhpcyIsImZyYWdtZW50TmFtZSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsImlkIiwicmVwbGFjZSIsIl9yZWYiLCJfY2FsbGVlNCIsInJlamVjdCIsImZldGNoUHJvbWlzZSIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsIl9jYWxsZWUzIiwiaHRtbCIsInRlbXAiLCJzY3JpcHRzIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwib2xkU2NyaXB0IiwibmV3U2NyaXB0IiwiYXR0cmlidXRlcyIsImF0dHIiLCJzZXRBdHRyaWJ1dGUiLCJ0ZXh0Q29udGVudCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImVycm9yIiwiX3g0IiwiX3g1IiwiYWRkRmV0Y2giLCJfeDMiLCJfcHJvY2Vzc05leHQiLCJfY2FsbGVlNiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsInByb2Nlc3NOZXh0IiwiX3g2IiwicmFjZSIsImZpbHRlciIsImFsbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/fragmentLoader.js\n");
|
20 |
+
|
21 |
+
/***/ }),
|
22 |
+
|
23 |
+
/***/ "./src/index.js":
|
24 |
+
/*!**********************!*\
|
25 |
+
!*** ./src/index.js ***!
|
26 |
+
\**********************/
|
27 |
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
28 |
+
|
29 |
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _fragmentLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fragmentLoader */ \"./src/fragmentLoader.js\");\n/* harmony import */ var _syncHFSpacesURLHash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./syncHFSpacesURLHash */ \"./src/syncHFSpacesURLHash.js\");\n// import { plotClusters } from './clusters'\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n console.log(\"DOMContentLoaded\");\n (0,_fragmentLoader__WEBPACK_IMPORTED_MODULE_0__.loadFragments)();\n init_memory_plot();\n (0,_syncHFSpacesURLHash__WEBPACK_IMPORTED_MODULE_1__.syncHFSpacesURLHash)();\n}, {\n once: true\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDZ0Q7QUFDVztBQUUzREUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0VBQ2hEQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztFQUMvQkwsOERBQWEsQ0FBQyxDQUFDO0VBQ2ZNLGdCQUFnQixDQUFDLENBQUM7RUFDbEJMLHlFQUFtQixDQUFDLENBQUM7QUFDekIsQ0FBQyxFQUFFO0VBQUVNLElBQUksRUFBRTtBQUFLLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL2Jsb2dwb3N0Ly4vc3JjL2luZGV4LmpzP2I2MzUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgcGxvdENsdXN0ZXJzIH0gZnJvbSAnLi9jbHVzdGVycydcclxuaW1wb3J0IHsgbG9hZEZyYWdtZW50cyB9IGZyb20gJy4vZnJhZ21lbnRMb2FkZXInXHJcbmltcG9ydCB7IHN5bmNIRlNwYWNlc1VSTEhhc2ggfSBmcm9tICcuL3N5bmNIRlNwYWNlc1VSTEhhc2gnXHJcblxyXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCAoKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkRPTUNvbnRlbnRMb2FkZWRcIik7XHJcbiAgICBsb2FkRnJhZ21lbnRzKCk7XHJcbiAgICBpbml0X21lbW9yeV9wbG90KCk7XHJcbiAgICBzeW5jSEZTcGFjZXNVUkxIYXNoKCk7XHJcbn0sIHsgb25jZTogdHJ1ZSB9KTtcclxuIl0sIm5hbWVzIjpbImxvYWRGcmFnbWVudHMiLCJzeW5jSEZTcGFjZXNVUkxIYXNoIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY29uc29sZSIsImxvZyIsImluaXRfbWVtb3J5X3Bsb3QiLCJvbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/index.js\n");
|
30 |
+
|
31 |
+
/***/ }),
|
32 |
+
|
33 |
+
/***/ "./src/syncHFSpacesURLHash.js":
|
34 |
+
/*!************************************!*\
|
35 |
+
!*** ./src/syncHFSpacesURLHash.js ***!
|
36 |
+
\************************************/
|
37 |
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
38 |
+
|
39 |
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ syncHFSpacesURLHash: () => (/* binding */ syncHFSpacesURLHash)\n/* harmony export */ });\nvar queryArg = \"section\";\nfunction syncHFSpacesURLHash() {\n // Handle explicit section requests (don't update hash automatically on load)\n var hasExplicitRequest = handleExplicitSectionRequest();\n\n // Set up hash change monitoring\n updateHashBasedOnHashChange();\n\n // Always set up scroll monitoring to update hash during scrolling\n setupScrollMonitoring();\n\n // If no explicit request, we don't update the hash on initial load\n // The hash will only start updating when the user scrolls\n}\nfunction handleExplicitSectionRequest() {\n // Check for section parameter in URL\n var urlParams = new URLSearchParams(window.location.search);\n var sectionId = urlParams.get(queryArg);\n\n // If we have an explicit section request\n if (sectionId) {\n var targetElement = document.getElementById(sectionId);\n if (targetElement) {\n // Slight delay to ensure the browser doesn't try to do its own scrolling first\n setTimeout(function () {\n targetElement.scrollIntoView();\n history.replaceState(null, null, \"#\".concat(sectionId));\n }, 100);\n }\n return true;\n }\n\n // No explicit section parameter found\n return false;\n}\nfunction setupScrollMonitoring() {\n // Variables to manage throttling\n var isScrolling = false;\n var lastKnownScrollPosition = 0;\n var initialScroll = true;\n\n // Add the scroll event listener\n window.addEventListener('scroll', function () {\n lastKnownScrollPosition = window.scrollY;\n if (!isScrolling) {\n window.requestAnimationFrame(function () {\n // Skip the first scroll event which might be browser's automatic scroll\n // to a hash on page load\n if (initialScroll) {\n initialScroll = false;\n } else {\n updateHashBasedOnScroll(lastKnownScrollPosition);\n }\n isScrolling = false;\n });\n }\n isScrolling = true;\n });\n}\n\n// Function to update the URL hash based on scroll position\nfunction updateHashBasedOnScroll(scrollPosition) {\n var closestHeading = findClosestHeading(scrollPosition);\n\n // Update the URL hash if we found a closest element\n if (closestHeading && closestHeading.id) {\n // Only update if the hash is different to avoid unnecessary operations\n if (window.location.hash !== \"#\".concat(closestHeading.id)) {\n silentlyUpdateHash(closestHeading.id);\n postMessageToHFSpaces(closestHeading.id);\n }\n }\n}\n\n// Find the closest heading to the current scroll position\nfunction findClosestHeading(scrollPosition) {\n // Get only heading elements with IDs that we want to track\n var headingsWithIds = Array.from(document.querySelectorAll('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]'));\n\n // Skip if there are no headings with IDs\n if (headingsWithIds.length === 0) return null;\n\n // Find the element closest to the middle of the viewport\n var closestHeading = null;\n var closestDistance = Infinity;\n var viewportMiddle = scrollPosition + window.innerHeight / 2;\n\n // Iterate through all headings to find the closest one\n headingsWithIds.forEach(function (heading) {\n var headingTop = heading.getBoundingClientRect().top + scrollPosition;\n var distance = Math.abs(headingTop - viewportMiddle);\n if (distance < closestDistance) {\n closestDistance = distance;\n closestHeading = heading;\n }\n });\n return closestHeading;\n}\n\n// Update hash without triggering scroll or other side effects\nfunction silentlyUpdateHash(id) {\n history.replaceState(null, null, \"#\".concat(id));\n}\nfunction updateHashBasedOnHashChange() {\n window.addEventListener('hashchange', function () {\n var elementId = window.location.hash.slice(1);\n postMessageToHFSpaces(elementId);\n });\n}\nfunction postMessageToHFSpaces(elementId) {\n var parentOrigin = \"https://huggingface.co\";\n window.parent.postMessage({\n queryString: \"\".concat(queryArg, \"=\").concat(elementId)\n }, parentOrigin);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3luY0hGU3BhY2VzVVJMSGFzaC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBTUEsUUFBUSxHQUFHLFNBQVM7QUFFMUIsU0FBU0MsbUJBQW1CQSxDQUFBLEVBQUc7RUFDN0I7RUFDQSxJQUFNQyxrQkFBa0IsR0FBR0MsNEJBQTRCLENBQUMsQ0FBQzs7RUFFekQ7RUFDQUMsMkJBQTJCLENBQUMsQ0FBQzs7RUFFN0I7RUFDQUMscUJBQXFCLENBQUMsQ0FBQzs7RUFFdkI7RUFDQTtBQUNGO0FBRUEsU0FBU0YsNEJBQTRCQSxDQUFBLEVBQUc7RUFDdEM7RUFDQSxJQUFNRyxTQUFTLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0VBQzdELElBQU1DLFNBQVMsR0FBR0wsU0FBUyxDQUFDTSxHQUFHLENBQUNaLFFBQVEsQ0FBQzs7RUFFekM7RUFDQSxJQUFJVyxTQUFTLEVBQUU7SUFDYixJQUFNRSxhQUFhLEdBQUdDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDSixTQUFTLENBQUM7SUFDeEQsSUFBSUUsYUFBYSxFQUFFO01BQ2pCO01BQ0FHLFVBQVUsQ0FBQyxZQUFNO1FBQ2ZILGFBQWEsQ0FBQ0ksY0FBYyxDQUFDLENBQUM7UUFDOUJDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLE1BQUFDLE1BQUEsQ0FBTVQsU0FBUyxDQUFFLENBQUM7TUFDbkQsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNUO0lBQ0EsT0FBTyxJQUFJO0VBQ2I7O0VBRUE7RUFDQSxPQUFPLEtBQUs7QUFDZDtBQUVBLFNBQVNOLHFCQUFxQkEsQ0FBQSxFQUFHO0VBQy9CO0VBQ0EsSUFBSWdCLFdBQVcsR0FBRyxLQUFLO0VBQ3ZCLElBQUlDLHVCQUF1QixHQUFHLENBQUM7RUFDL0IsSUFBSUMsYUFBYSxHQUFHLElBQUk7O0VBRXhCO0VBQ0FmLE1BQU0sQ0FBQ2dCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxZQUFXO0lBQzNDRix1QkFBdUIsR0FBR2QsTUFBTSxDQUFDaUIsT0FBTztJQUV4QyxJQUFJLENBQUNKLFdBQVcsRUFBRTtNQUNoQmIsTUFBTSxDQUFDa0IscUJBQXFCLENBQUMsWUFBVztRQUN0QztRQUNBO1FBQ0EsSUFBSUgsYUFBYSxFQUFFO1VBQ2pCQSxhQUFhLEdBQUcsS0FBSztRQUN2QixDQUFDLE1BQU07VUFDTEksdUJBQXVCLENBQUNMLHVCQUF1QixDQUFDO1FBQ2xEO1FBQ0FELFdBQVcsR0FBRyxLQUFLO01BQ3JCLENBQUMsQ0FBQztJQUNKO0lBRUFBLFdBQVcsR0FBRyxJQUFJO0VBQ3BCLENBQUMsQ0FBQztBQUNKOztBQUVBO0FBQ0EsU0FBU00sdUJBQXVCQSxDQUFDQyxjQUFjLEVBQUU7RUFDL0MsSUFBTUMsY0FBYyxHQUFHQyxrQkFBa0IsQ0FBQ0YsY0FBYyxDQUFDOztFQUV6RDtFQUNBLElBQUlDLGNBQWMsSUFBSUEsY0FBYyxDQUFDRSxFQUFFLEVBQUU7SUFDdkM7SUFDQSxJQUFJdkIsTUFBTSxDQUFDQyxRQUFRLENBQUN1QixJQUFJLFNBQUFaLE1BQUEsQ0FBU1MsY0FBYyxDQUFDRSxFQUFFLENBQUUsRUFBRTtNQUNwREUsa0JBQWtCLENBQUNKLGNBQWMsQ0FBQ0UsRUFBRSxDQUFDO01BQ3JDRyxxQkFBcUIsQ0FBQ0wsY0FBYyxDQUFDRSxFQUFFLENBQUM7SUFDMUM7RUFDRjtBQUNGOztBQUVBO0FBQ0EsU0FBU0Qsa0JBQWtCQSxDQUFDRixjQUFjLEVBQUU7RUFDMUM7RUFDQSxJQUFNTyxlQUFlLEdBQUdDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDdkIsUUFBUSxDQUFDd0IsZ0JBQWdCLENBQUMsZ0RBQWdELENBQUMsQ0FBQzs7RUFFL0c7RUFDQSxJQUFJSCxlQUFlLENBQUNJLE1BQU0sS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJOztFQUU3QztFQUNBLElBQUlWLGNBQWMsR0FBRyxJQUFJO0VBQ3pCLElBQUlXLGVBQWUsR0FBR0MsUUFBUTtFQUM5QixJQUFNQyxjQUFjLEdBQUdkLGNBQWMsR0FBR3BCLE1BQU0sQ0FBQ21DLFdBQVcsR0FBRyxDQUFDOztFQUU5RDtFQUNBUixlQUFlLENBQUNTLE9BQU8sQ0FBQyxVQUFBQyxPQUFPLEVBQUk7SUFDakMsSUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUNFLHFCQUFxQixDQUFDLENBQUMsQ0FBQ0MsR0FBRyxHQUFHcEIsY0FBYztJQUN2RSxJQUFNcUIsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0wsVUFBVSxHQUFHSixjQUFjLENBQUM7SUFFdEQsSUFBSU8sUUFBUSxHQUFHVCxlQUFlLEVBQUU7TUFDOUJBLGVBQWUsR0FBR1MsUUFBUTtNQUMxQnBCLGNBQWMsR0FBR2dCLE9BQU87SUFDMUI7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPaEIsY0FBYztBQUN2Qjs7QUFFQTtBQUNBLFNBQVNJLGtCQUFrQkEsQ0FBQ0YsRUFBRSxFQUFFO0VBQzlCYixPQUFPLENBQUNDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxNQUFBQyxNQUFBLENBQU1XLEVBQUUsQ0FBRSxDQUFDO0FBQzVDO0FBRUEsU0FBUzNCLDJCQUEyQkEsQ0FBQSxFQUFHO0VBQ3JDSSxNQUFNLENBQUNnQixnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsWUFBTTtJQUMxQyxJQUFNNEIsU0FBUyxHQUFHNUMsTUFBTSxDQUFDQyxRQUFRLENBQUN1QixJQUFJLENBQUNxQixLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9DbkIscUJBQXFCLENBQUNrQixTQUFTLENBQUM7RUFDbEMsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxTQUFTbEIscUJBQXFCQSxDQUFDa0IsU0FBUyxFQUFFO0VBQ3hDLElBQU1FLFlBQVksR0FBRyx3QkFBd0I7RUFDN0M5QyxNQUFNLENBQUMrQyxNQUFNLENBQUNDLFdBQVcsQ0FBQztJQUFFQyxXQUFXLEtBQUFyQyxNQUFBLENBQUtwQixRQUFRLE9BQUFvQixNQUFBLENBQUlnQyxTQUFTO0VBQUcsQ0FBQyxFQUFFRSxZQUFZLENBQUM7QUFDdEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ibG9ncG9zdC8uL3NyYy9zeW5jSEZTcGFjZXNVUkxIYXNoLmpzPzY3MjciXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcXVlcnlBcmcgPSBcInNlY3Rpb25cIjtcclxuXHJcbmZ1bmN0aW9uIHN5bmNIRlNwYWNlc1VSTEhhc2goKSB7XHJcbiAgLy8gSGFuZGxlIGV4cGxpY2l0IHNlY3Rpb24gcmVxdWVzdHMgKGRvbid0IHVwZGF0ZSBoYXNoIGF1dG9tYXRpY2FsbHkgb24gbG9hZClcclxuICBjb25zdCBoYXNFeHBsaWNpdFJlcXVlc3QgPSBoYW5kbGVFeHBsaWNpdFNlY3Rpb25SZXF1ZXN0KCk7XHJcbiAgXHJcbiAgLy8gU2V0IHVwIGhhc2ggY2hhbmdlIG1vbml0b3JpbmdcclxuICB1cGRhdGVIYXNoQmFzZWRPbkhhc2hDaGFuZ2UoKTtcclxuICBcclxuICAvLyBBbHdheXMgc2V0IHVwIHNjcm9sbCBtb25pdG9yaW5nIHRvIHVwZGF0ZSBoYXNoIGR1cmluZyBzY3JvbGxpbmdcclxuICBzZXR1cFNjcm9sbE1vbml0b3JpbmcoKTtcclxuICBcclxuICAvLyBJZiBubyBleHBsaWNpdCByZXF1ZXN0LCB3ZSBkb24ndCB1cGRhdGUgdGhlIGhhc2ggb24gaW5pdGlhbCBsb2FkXHJcbiAgLy8gVGhlIGhhc2ggd2lsbCBvbmx5IHN0YXJ0IHVwZGF0aW5nIHdoZW4gdGhlIHVzZXIgc2Nyb2xsc1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVFeHBsaWNpdFNlY3Rpb25SZXF1ZXN0KCkge1xyXG4gIC8vIENoZWNrIGZvciBzZWN0aW9uIHBhcmFtZXRlciBpbiBVUkxcclxuICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gIGNvbnN0IHNlY3Rpb25JZCA9IHVybFBhcmFtcy5nZXQocXVlcnlBcmcpO1xyXG4gIFxyXG4gIC8vIElmIHdlIGhhdmUgYW4gZXhwbGljaXQgc2VjdGlvbiByZXF1ZXN0XHJcbiAgaWYgKHNlY3Rpb25JZCkge1xyXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb25JZCk7XHJcbiAgICBpZiAodGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICAvLyBTbGlnaHQgZGVsYXkgdG8gZW5zdXJlIHRoZSBicm93c2VyIGRvZXNuJ3QgdHJ5IHRvIGRvIGl0cyBvd24gc2Nyb2xsaW5nIGZpcnN0XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRhcmdldEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCBgIyR7c2VjdGlvbklkfWApO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIFxyXG4gIC8vIE5vIGV4cGxpY2l0IHNlY3Rpb24gcGFyYW1ldGVyIGZvdW5kXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXR1cFNjcm9sbE1vbml0b3JpbmcoKSB7XHJcbiAgLy8gVmFyaWFibGVzIHRvIG1hbmFnZSB0aHJvdHRsaW5nXHJcbiAgbGV0IGlzU2Nyb2xsaW5nID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RLbm93blNjcm9sbFBvc2l0aW9uID0gMDtcclxuICBsZXQgaW5pdGlhbFNjcm9sbCA9IHRydWU7XHJcbiAgXHJcbiAgLy8gQWRkIHRoZSBzY3JvbGwgZXZlbnQgbGlzdGVuZXJcclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZnVuY3Rpb24oKSB7XHJcbiAgICBsYXN0S25vd25TY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgXHJcbiAgICBpZiAoIWlzU2Nyb2xsaW5nKSB7XHJcbiAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgLy8gU2tpcCB0aGUgZmlyc3Qgc2Nyb2xsIGV2ZW50IHdoaWNoIG1pZ2h0IGJlIGJyb3dzZXIncyBhdXRvbWF0aWMgc2Nyb2xsXHJcbiAgICAgICAgLy8gdG8gYSBoYXNoIG9uIHBhZ2UgbG9hZFxyXG4gICAgICAgIGlmIChpbml0aWFsU2Nyb2xsKSB7XHJcbiAgICAgICAgICBpbml0aWFsU2Nyb2xsID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVwZGF0ZUhhc2hCYXNlZE9uU2Nyb2xsKGxhc3RLbm93blNjcm9sbFBvc2l0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXNTY3JvbGxpbmcgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlzU2Nyb2xsaW5nID0gdHJ1ZTtcclxuICB9KTtcclxufVxyXG5cclxuLy8gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBVUkwgaGFzaCBiYXNlZCBvbiBzY3JvbGwgcG9zaXRpb25cclxuZnVuY3Rpb24gdXBkYXRlSGFzaEJhc2VkT25TY3JvbGwoc2Nyb2xsUG9zaXRpb24pIHtcclxuICBjb25zdCBjbG9zZXN0SGVhZGluZyA9IGZpbmRDbG9zZXN0SGVhZGluZyhzY3JvbGxQb3NpdGlvbik7XHJcbiAgXHJcbiAgLy8gVXBkYXRlIHRoZSBVUkwgaGFzaCBpZiB3ZSBmb3VuZCBhIGNsb3Nlc3QgZWxlbWVudFxyXG4gIGlmIChjbG9zZXN0SGVhZGluZyAmJiBjbG9zZXN0SGVhZGluZy5pZCkge1xyXG4gICAgLy8gT25seSB1cGRhdGUgaWYgdGhlIGhhc2ggaXMgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wZXJhdGlvbnNcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaGFzaCAhPT0gYCMke2Nsb3Nlc3RIZWFkaW5nLmlkfWApIHtcclxuICAgICAgc2lsZW50bHlVcGRhdGVIYXNoKGNsb3Nlc3RIZWFkaW5nLmlkKTtcclxuICAgICAgcG9zdE1lc3NhZ2VUb0hGU3BhY2VzKGNsb3Nlc3RIZWFkaW5nLmlkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEZpbmQgdGhlIGNsb3Nlc3QgaGVhZGluZyB0byB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb25cclxuZnVuY3Rpb24gZmluZENsb3Nlc3RIZWFkaW5nKHNjcm9sbFBvc2l0aW9uKSB7XHJcbiAgLy8gR2V0IG9ubHkgaGVhZGluZyBlbGVtZW50cyB3aXRoIElEcyB0aGF0IHdlIHdhbnQgdG8gdHJhY2tcclxuICBjb25zdCBoZWFkaW5nc1dpdGhJZHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2gxW2lkXSwgaDJbaWRdLCBoM1tpZF0sIGg0W2lkXSwgaDVbaWRdLCBoNltpZF0nKSk7XHJcblxyXG4gIC8vIFNraXAgaWYgdGhlcmUgYXJlIG5vIGhlYWRpbmdzIHdpdGggSURzXHJcbiAgaWYgKGhlYWRpbmdzV2l0aElkcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBGaW5kIHRoZSBlbGVtZW50IGNsb3Nlc3QgdG8gdGhlIG1pZGRsZSBvZiB0aGUgdmlld3BvcnRcclxuICBsZXQgY2xvc2VzdEhlYWRpbmcgPSBudWxsO1xyXG4gIGxldCBjbG9zZXN0RGlzdGFuY2UgPSBJbmZpbml0eTtcclxuICBjb25zdCB2aWV3cG9ydE1pZGRsZSA9IHNjcm9sbFBvc2l0aW9uICsgd2luZG93LmlubmVySGVpZ2h0IC8gMjtcclxuICBcclxuICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIGhlYWRpbmdzIHRvIGZpbmQgdGhlIGNsb3Nlc3Qgb25lXHJcbiAgaGVhZGluZ3NXaXRoSWRzLmZvckVhY2goaGVhZGluZyA9PiB7XHJcbiAgICBjb25zdCBoZWFkaW5nVG9wID0gaGVhZGluZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyBzY3JvbGxQb3NpdGlvbjtcclxuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoaGVhZGluZ1RvcCAtIHZpZXdwb3J0TWlkZGxlKTtcclxuICAgIFxyXG4gICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdERpc3RhbmNlKSB7XHJcbiAgICAgIGNsb3Nlc3REaXN0YW5jZSA9IGRpc3RhbmNlO1xyXG4gICAgICBjbG9zZXN0SGVhZGluZyA9IGhlYWRpbmc7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgXHJcbiAgcmV0dXJuIGNsb3Nlc3RIZWFkaW5nO1xyXG59XHJcblxyXG4vLyBVcGRhdGUgaGFzaCB3aXRob3V0IHRyaWdnZXJpbmcgc2Nyb2xsIG9yIG90aGVyIHNpZGUgZWZmZWN0c1xyXG5mdW5jdGlvbiBzaWxlbnRseVVwZGF0ZUhhc2goaWQpIHtcclxuICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCBgIyR7aWR9YCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZUhhc2hCYXNlZE9uSGFzaENoYW5nZSgpIHtcclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScsICgpID0+IHtcclxuICAgIGNvbnN0IGVsZW1lbnRJZCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO1xyXG4gICAgcG9zdE1lc3NhZ2VUb0hGU3BhY2VzKGVsZW1lbnRJZCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBvc3RNZXNzYWdlVG9IRlNwYWNlcyhlbGVtZW50SWQpIHtcclxuICBjb25zdCBwYXJlbnRPcmlnaW4gPSBcImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY29cIjtcclxuICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHsgcXVlcnlTdHJpbmc6IGAke3F1ZXJ5QXJnfT0ke2VsZW1lbnRJZH1gIH0sIHBhcmVudE9yaWdpbik7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHN5bmNIRlNwYWNlc1VSTEhhc2ggfTtcclxuIl0sIm5hbWVzIjpbInF1ZXJ5QXJnIiwic3luY0hGU3BhY2VzVVJMSGFzaCIsImhhc0V4cGxpY2l0UmVxdWVzdCIsImhhbmRsZUV4cGxpY2l0U2VjdGlvblJlcXVlc3QiLCJ1cGRhdGVIYXNoQmFzZWRPbkhhc2hDaGFuZ2UiLCJzZXR1cFNjcm9sbE1vbml0b3JpbmciLCJ1cmxQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsInNlY3Rpb25JZCIsImdldCIsInRhcmdldEVsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2V0VGltZW91dCIsInNjcm9sbEludG9WaWV3IiwiaGlzdG9yeSIsInJlcGxhY2VTdGF0ZSIsImNvbmNhdCIsImlzU2Nyb2xsaW5nIiwibGFzdEtub3duU2Nyb2xsUG9zaXRpb24iLCJpbml0aWFsU2Nyb2xsIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNjcm9sbFkiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ1cGRhdGVIYXNoQmFzZWRPblNjcm9sbCIsInNjcm9sbFBvc2l0aW9uIiwiY2xvc2VzdEhlYWRpbmciLCJmaW5kQ2xvc2VzdEhlYWRpbmciLCJpZCIsImhhc2giLCJzaWxlbnRseVVwZGF0ZUhhc2giLCJwb3N0TWVzc2FnZVRvSEZTcGFjZXMiLCJoZWFkaW5nc1dpdGhJZHMiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwiY2xvc2VzdERpc3RhbmNlIiwiSW5maW5pdHkiLCJ2aWV3cG9ydE1pZGRsZSIsImlubmVySGVpZ2h0IiwiZm9yRWFjaCIsImhlYWRpbmciLCJoZWFkaW5nVG9wIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiZGlzdGFuY2UiLCJNYXRoIiwiYWJzIiwiZWxlbWVudElkIiwic2xpY2UiLCJwYXJlbnRPcmlnaW4iLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsInF1ZXJ5U3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/syncHFSpacesURLHash.js\n");
|
40 |
+
|
41 |
+
/***/ })
|
42 |
+
|
43 |
+
/******/ });
|
44 |
+
/************************************************************************/
|
45 |
+
/******/ // The module cache
|
46 |
+
/******/ var __webpack_module_cache__ = {};
|
47 |
+
/******/
|
48 |
+
/******/ // The require function
|
49 |
+
/******/ function __webpack_require__(moduleId) {
|
50 |
+
/******/ // Check if module is in cache
|
51 |
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
52 |
+
/******/ if (cachedModule !== undefined) {
|
53 |
+
/******/ return cachedModule.exports;
|
54 |
+
/******/ }
|
55 |
+
/******/ // Create a new module (and put it into the cache)
|
56 |
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
57 |
+
/******/ // no module.id needed
|
58 |
+
/******/ // no module.loaded needed
|
59 |
+
/******/ exports: {}
|
60 |
+
/******/ };
|
61 |
+
/******/
|
62 |
+
/******/ // Execute the module function
|
63 |
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
64 |
+
/******/
|
65 |
+
/******/ // Return the exports of the module
|
66 |
+
/******/ return module.exports;
|
67 |
+
/******/ }
|
68 |
+
/******/
|
69 |
+
/************************************************************************/
|
70 |
+
/******/ /* webpack/runtime/define property getters */
|
71 |
+
/******/ (() => {
|
72 |
+
/******/ // define getter functions for harmony exports
|
73 |
+
/******/ __webpack_require__.d = (exports, definition) => {
|
74 |
+
/******/ for(var key in definition) {
|
75 |
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
76 |
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
77 |
+
/******/ }
|
78 |
+
/******/ }
|
79 |
+
/******/ };
|
80 |
+
/******/ })();
|
81 |
+
/******/
|
82 |
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
83 |
+
/******/ (() => {
|
84 |
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
85 |
+
/******/ })();
|
86 |
+
/******/
|
87 |
+
/******/ /* webpack/runtime/make namespace object */
|
88 |
+
/******/ (() => {
|
89 |
+
/******/ // define __esModule on exports
|
90 |
+
/******/ __webpack_require__.r = (exports) => {
|
91 |
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
92 |
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
93 |
+
/******/ }
|
94 |
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
95 |
+
/******/ };
|
96 |
+
/******/ })();
|
97 |
+
/******/
|
98 |
+
/************************************************************************/
|
99 |
+
/******/
|
100 |
+
/******/ // startup
|
101 |
+
/******/ // Load entry module and return exports
|
102 |
+
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
|
103 |
+
/******/ var __webpack_exports__ = __webpack_require__("./src/index.js");
|
104 |
+
/******/
|
105 |
+
/******/ })()
|
106 |
+
;
|
dist/style.css
ADDED
@@ -0,0 +1,599 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* style.css */
|
2 |
+
/* Define colors */
|
3 |
+
:root {
|
4 |
+
--distill-gray: rgb(107, 114, 128);
|
5 |
+
--distill-gray-light: rgb(185, 185, 185);
|
6 |
+
--distill-gray-lighter: rgb(228, 228, 228);
|
7 |
+
--distill-gray-lightest: rgb(245, 245, 245);
|
8 |
+
--distill-blue: #007BFF;
|
9 |
+
}
|
10 |
+
|
11 |
+
/* Container for the controls */
|
12 |
+
[id^="plot-"] {
|
13 |
+
display: flex;
|
14 |
+
flex-direction: column;
|
15 |
+
align-items: center;
|
16 |
+
gap: 15px; /* Adjust the gap between controls as needed */
|
17 |
+
}
|
18 |
+
[id^="plot-"] figure {
|
19 |
+
margin-bottom: 0px;
|
20 |
+
margin-top: 0px;
|
21 |
+
padding: 0px;
|
22 |
+
}
|
23 |
+
.plotly_caption {
|
24 |
+
font-style: italic;
|
25 |
+
margin-top: 10px;
|
26 |
+
}
|
27 |
+
|
28 |
+
.plotly_controls {
|
29 |
+
display: flex;
|
30 |
+
flex-wrap: wrap;
|
31 |
+
flex-direction: row;
|
32 |
+
justify-content: center;
|
33 |
+
align-items: flex-start;
|
34 |
+
gap: 30px;
|
35 |
+
}
|
36 |
+
|
37 |
+
|
38 |
+
.plotly_input_container {
|
39 |
+
display: flex;
|
40 |
+
align-items: center;
|
41 |
+
flex-direction: column;
|
42 |
+
gap: 10px;
|
43 |
+
}
|
44 |
+
|
45 |
+
/* Style for the select dropdown */
|
46 |
+
.plotly_input_container > select {
|
47 |
+
padding: 2px 4px;
|
48 |
+
/* border: 1px solid #ccc; */
|
49 |
+
line-height: 1.5em;
|
50 |
+
text-align: center;
|
51 |
+
border-radius: 4px;
|
52 |
+
font-size: 12px;
|
53 |
+
background-color: var(--distill-gray-lightest);
|
54 |
+
outline: none;
|
55 |
+
}
|
56 |
+
|
57 |
+
/* Style for the range input */
|
58 |
+
|
59 |
+
.plotly_slider {
|
60 |
+
display: flex;
|
61 |
+
align-items: center;
|
62 |
+
gap: 10px;
|
63 |
+
}
|
64 |
+
|
65 |
+
.plotly_slider > input[type="range"] {
|
66 |
+
-webkit-appearance: none;
|
67 |
+
height: 2px;
|
68 |
+
background: var(--distill-gray-light);
|
69 |
+
border-radius: 5px;
|
70 |
+
outline: none;
|
71 |
+
}
|
72 |
+
|
73 |
+
.plotly_slider > span {
|
74 |
+
font-size: 14px;
|
75 |
+
line-height: 1.6em;
|
76 |
+
min-width: 16px;
|
77 |
+
}
|
78 |
+
|
79 |
+
.plotly_slider > input[type="range"]::-webkit-slider-thumb {
|
80 |
+
-webkit-appearance: none;
|
81 |
+
appearance: none;
|
82 |
+
width: 18px;
|
83 |
+
height: 18px;
|
84 |
+
border-radius: 50%;
|
85 |
+
background: var(--distill-blue);
|
86 |
+
cursor: pointer;
|
87 |
+
}
|
88 |
+
|
89 |
+
.plotly_slider > input[type="range"]::-moz-range-thumb {
|
90 |
+
width: 18px;
|
91 |
+
height: 18px;
|
92 |
+
border-radius: 50%;
|
93 |
+
background: var(--distill-blue);
|
94 |
+
cursor: pointer;
|
95 |
+
}
|
96 |
+
|
97 |
+
/* Style for the labels */
|
98 |
+
.plotly_input_container > label {
|
99 |
+
font-size: 14px;
|
100 |
+
font-weight: bold;
|
101 |
+
}
|
102 |
+
|
103 |
+
.main-plot-container {
|
104 |
+
margin-top: 21px;
|
105 |
+
margin-bottom: 35px;
|
106 |
+
}
|
107 |
+
|
108 |
+
.main-plot-container > figure {
|
109 |
+
display: block !important;
|
110 |
+
/* Let this be handled by graph-container */
|
111 |
+
margin-bottom: 0px;
|
112 |
+
margin-top: 0px;
|
113 |
+
}
|
114 |
+
.main-plot-container > div {
|
115 |
+
display: none !important;
|
116 |
+
}
|
117 |
+
|
118 |
+
|
119 |
+
@media (min-width: 768px) {
|
120 |
+
.main-plot-container > figure {
|
121 |
+
display: none !important;
|
122 |
+
}
|
123 |
+
.main-plot-container > div {
|
124 |
+
display: flex !important;
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
d-byline .byline {
|
129 |
+
grid-template-columns: 1fr;
|
130 |
+
grid-column: text;
|
131 |
+
font-size: 0.9rem;
|
132 |
+
line-height: 1.8em;
|
133 |
+
}
|
134 |
+
|
135 |
+
@media (min-width: 768px) {
|
136 |
+
d-byline .byline {
|
137 |
+
grid-template-columns: 5fr 1fr 1fr;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
#title-plot {
|
142 |
+
margin-top: 0px;
|
143 |
+
margin-bottom: 0px;
|
144 |
+
}
|
145 |
+
|
146 |
+
d-contents > nav a.active {
|
147 |
+
text-decoration: underline;
|
148 |
+
}
|
149 |
+
|
150 |
+
@media (max-width: 1199px) {
|
151 |
+
d-contents {
|
152 |
+
display: none;
|
153 |
+
background: white;
|
154 |
+
justify-self: start;
|
155 |
+
align-self: start;
|
156 |
+
padding-bottom: 0.5em;
|
157 |
+
margin-bottom: 1em;
|
158 |
+
padding-left: 0.25em;
|
159 |
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
160 |
+
border-bottom-width: 1px;
|
161 |
+
border-bottom-style: solid;
|
162 |
+
border-bottom-color: rgba(0, 0, 0, 0.1);
|
163 |
+
overflow-y: scroll;
|
164 |
+
height: calc(100vh - 40px);
|
165 |
+
scrollbar-width: none;
|
166 |
+
z-index: -100;
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
d-contents a:hover {
|
171 |
+
border-bottom: none;
|
172 |
+
}
|
173 |
+
|
174 |
+
toc-title {
|
175 |
+
font-weight: bold;
|
176 |
+
font-size: 1.2em;
|
177 |
+
color: #333;
|
178 |
+
}
|
179 |
+
|
180 |
+
toggle-icon {
|
181 |
+
transition: transform 0.3s;
|
182 |
+
}
|
183 |
+
|
184 |
+
toggle-icon.collapsed {
|
185 |
+
transform: rotate(90deg);
|
186 |
+
}
|
187 |
+
|
188 |
+
.toc-content {
|
189 |
+
margin-top: 15px;
|
190 |
+
overflow: hidden;
|
191 |
+
/* max-height: 1000px; */
|
192 |
+
transition: max-height 0.3s ease-out;
|
193 |
+
}
|
194 |
+
|
195 |
+
.toc-content.collapsed {
|
196 |
+
max-height: 0;
|
197 |
+
margin-top: 0;
|
198 |
+
}
|
199 |
+
|
200 |
+
@media (min-width: 1200px) {
|
201 |
+
d-article {
|
202 |
+
/* Ensure d-article does not prevent sticky positioning */
|
203 |
+
overflow: visible;
|
204 |
+
}
|
205 |
+
|
206 |
+
d-contents {
|
207 |
+
align-self: start;
|
208 |
+
background: white;
|
209 |
+
grid-column-start: 1 !important;
|
210 |
+
grid-column-end: 4 !important;
|
211 |
+
grid-row: auto / span 6;
|
212 |
+
justify-self: end;
|
213 |
+
margin-top: 0em;
|
214 |
+
padding-right: 3em;
|
215 |
+
padding-left: 2em;
|
216 |
+
/* border-right: 1px solid rgba(0, 0, 0, 0.1);
|
217 |
+
border-right-width: 1px;
|
218 |
+
border-right-style: solid;
|
219 |
+
border-right-color: rgba(0, 0, 0, 0.1); */
|
220 |
+
position: -webkit-sticky; /* For Safari */
|
221 |
+
position: sticky;
|
222 |
+
top: 10px; /* Adjust this value if needed */
|
223 |
+
overflow-y: auto;
|
224 |
+
height: calc(100vh - 40px);
|
225 |
+
scrollbar-width: none;
|
226 |
+
transition: max-height 0.3s ease-out;
|
227 |
+
z-index: -100;
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
d-contents nav h3 {
|
232 |
+
margin-top: 0;
|
233 |
+
margin-bottom: 1em;
|
234 |
+
}
|
235 |
+
|
236 |
+
d-contents nav div div {
|
237 |
+
color: rgba(0, 0, 0, 0.8);
|
238 |
+
font-weight: bold;
|
239 |
+
}
|
240 |
+
|
241 |
+
d-contents nav a {
|
242 |
+
color: rgba(0, 0, 0, 0.8);
|
243 |
+
border-bottom: none;
|
244 |
+
text-decoration: none;
|
245 |
+
}
|
246 |
+
|
247 |
+
d-contents li {
|
248 |
+
list-style-type: none;
|
249 |
+
}
|
250 |
+
|
251 |
+
d-contents ul, d-article d-contents ul {
|
252 |
+
padding-left: 1em;
|
253 |
+
}
|
254 |
+
|
255 |
+
d-contents nav ul li {
|
256 |
+
margin-bottom: .25em;
|
257 |
+
}
|
258 |
+
|
259 |
+
d-contents nav a:hover {
|
260 |
+
text-decoration: underline solid rgba(0, 0, 0, 0.6);
|
261 |
+
}
|
262 |
+
|
263 |
+
d-contents nav ul {
|
264 |
+
margin-top: 0;
|
265 |
+
margin-bottom: 6px;
|
266 |
+
}
|
267 |
+
|
268 |
+
|
269 |
+
d-contents nav > div {
|
270 |
+
display: block;
|
271 |
+
outline: none;
|
272 |
+
margin-bottom: 0.5em;
|
273 |
+
}
|
274 |
+
|
275 |
+
d-contents nav > div > a {
|
276 |
+
font-size: 13px;
|
277 |
+
font-weight: 600;
|
278 |
+
}
|
279 |
+
|
280 |
+
d-article aside {
|
281 |
+
margin-bottom: 1em;
|
282 |
+
}
|
283 |
+
|
284 |
+
d-article img {
|
285 |
+
max-width: 100%;
|
286 |
+
}
|
287 |
+
|
288 |
+
@media (min-width: 768px) {
|
289 |
+
d-article aside {
|
290 |
+
margin-bottom: 0;
|
291 |
+
}
|
292 |
+
}
|
293 |
+
|
294 |
+
d-contents nav > div > a:hover,
|
295 |
+
d-contents nav > ul > li > a:hover {
|
296 |
+
text-decoration: none;
|
297 |
+
}
|
298 |
+
|
299 |
+
.note-box {
|
300 |
+
background-color: #f6f8fa;
|
301 |
+
border-left: 4px solid #444444;
|
302 |
+
padding: 1rem;
|
303 |
+
margin: 1rem 0; /* Keep this modest margin */
|
304 |
+
border-radius: 6px;
|
305 |
+
/* Add this to ensure the box only takes up needed space */
|
306 |
+
display: inline-block;
|
307 |
+
width: 100%;
|
308 |
+
}
|
309 |
+
|
310 |
+
.note-box-title {
|
311 |
+
margin: 0;
|
312 |
+
color: #444444;
|
313 |
+
font-weight: 600;
|
314 |
+
font-size: 1em;
|
315 |
+
}
|
316 |
+
|
317 |
+
.note-box-content {
|
318 |
+
margin-top: 0.5rem;
|
319 |
+
margin-bottom: 0; /* Ensure no bottom margin */
|
320 |
+
color: #24292f;
|
321 |
+
font-size: 0.9em;
|
322 |
+
line-height: 1.5em;
|
323 |
+
}
|
324 |
+
|
325 |
+
/* For dark mode support */
|
326 |
+
@media (prefers-color-scheme: dark) {
|
327 |
+
.note-box {
|
328 |
+
background-color: #1c1c1c;
|
329 |
+
border-left-color: #888888;
|
330 |
+
}
|
331 |
+
.note-box-title {
|
332 |
+
color: #888888;
|
333 |
+
}
|
334 |
+
.note-box-content {
|
335 |
+
color: #d4d4d4;
|
336 |
+
}
|
337 |
+
}
|
338 |
+
|
339 |
+
d-article {
|
340 |
+
font-size: 1.0em;
|
341 |
+
}
|
342 |
+
|
343 |
+
.figure-legend {
|
344 |
+
font-size: 0.9em;
|
345 |
+
font-style: italic;
|
346 |
+
color: var(--distill-gray);
|
347 |
+
line-height: 1.5em;
|
348 |
+
}
|
349 |
+
|
350 |
+
d-code {
|
351 |
+
font-size: 12px;
|
352 |
+
}
|
353 |
+
|
354 |
+
.large-image-background {
|
355 |
+
width: 100vw;
|
356 |
+
padding-top: 10px;
|
357 |
+
padding-bottom: 10px;
|
358 |
+
margin-left: calc(-50vw + 50%);
|
359 |
+
margin-right: calc(-50vw + 50%);
|
360 |
+
background: white;
|
361 |
+
height: fit-content; /* This will make it match the image height */
|
362 |
+
display: flex;
|
363 |
+
justify-content: center; /* This will center your image */
|
364 |
+
}
|
365 |
+
|
366 |
+
.large-image-background-transparent {
|
367 |
+
/* width: 100vw; */
|
368 |
+
padding-top: 10px;
|
369 |
+
padding-bottom: 10px;
|
370 |
+
/* margin-left: calc(-50vw + 50%); */
|
371 |
+
margin-left:-100px;
|
372 |
+
margin-right: -100px;
|
373 |
+
/* margin-right: calc(-50vw + 50%); */
|
374 |
+
/* background: white; */
|
375 |
+
height: fit-content; /* This will make it match the image height */
|
376 |
+
display: flex;
|
377 |
+
justify-content: center; /* This will center your image */
|
378 |
+
}
|
379 |
+
|
380 |
+
.boxed-image {
|
381 |
+
padding: 0.5rem;
|
382 |
+
background: white;
|
383 |
+
border-radius: 12px;
|
384 |
+
border: 1px solid #e5e7eb;
|
385 |
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
386 |
+
}
|
387 |
+
|
388 |
+
d-article li {
|
389 |
+
margin-bottom: 0.0em;
|
390 |
+
}
|
391 |
+
|
392 |
+
d-article ul ul {
|
393 |
+
margin-bottom: 0.0em;
|
394 |
+
}
|
395 |
+
|
396 |
+
d-article ol ol {
|
397 |
+
margin-bottom: 0.0em;
|
398 |
+
}
|
399 |
+
|
400 |
+
d-article hr {
|
401 |
+
grid-column: text;
|
402 |
+
}
|
403 |
+
|
404 |
+
/* Memory visualization */
|
405 |
+
#graph-all {
|
406 |
+
min-width: 500px;
|
407 |
+
margin-right: 10px;
|
408 |
+
margin-bottom: 2rem;
|
409 |
+
padding: 0.5rem;
|
410 |
+
background: #f9fafb;
|
411 |
+
border-radius: 12px;
|
412 |
+
border: 1px solid #e5e7eb;
|
413 |
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
414 |
+
}
|
415 |
+
|
416 |
+
|
417 |
+
/* Main container styles */
|
418 |
+
#controls {
|
419 |
+
max-width: 1200px;
|
420 |
+
/* margin: 2rem auto; */
|
421 |
+
margin-bottom: 2rem;
|
422 |
+
margin-left: 10px;
|
423 |
+
padding: 0.6rem;
|
424 |
+
background: #f9fafb;
|
425 |
+
border-radius: 12px;
|
426 |
+
border: 1px solid #e5e7eb;
|
427 |
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
428 |
+
}
|
429 |
+
|
430 |
+
/* Grid layout */
|
431 |
+
#controls {
|
432 |
+
display: grid;
|
433 |
+
grid-template-columns: 1fr 1fr;
|
434 |
+
/* gap: 2rem; */
|
435 |
+
}
|
436 |
+
|
437 |
+
/* Cell styles */
|
438 |
+
.cell {
|
439 |
+
margin-bottom: 0.2rem;
|
440 |
+
}
|
441 |
+
|
442 |
+
/* Label styles */
|
443 |
+
label {
|
444 |
+
display: block;
|
445 |
+
/* margin-bottom: 0.5rem; */
|
446 |
+
font-size: 0.8rem;
|
447 |
+
font-weight: 500;
|
448 |
+
color: #374151;
|
449 |
+
}
|
450 |
+
|
451 |
+
/* Input container for range + number combination */
|
452 |
+
.input-container {
|
453 |
+
display: flex;
|
454 |
+
gap: 1rem;
|
455 |
+
align-items: center;
|
456 |
+
}
|
457 |
+
|
458 |
+
/* Range input styling */
|
459 |
+
input[type="range"] {
|
460 |
+
flex: 1;
|
461 |
+
height: 6px;
|
462 |
+
background: #e5e7eb;
|
463 |
+
border-radius: 3px;
|
464 |
+
appearance: none;
|
465 |
+
outline: none;
|
466 |
+
}
|
467 |
+
|
468 |
+
input[type="range"]::-webkit-slider-thumb {
|
469 |
+
appearance: none;
|
470 |
+
width: 16px;
|
471 |
+
height: 16px;
|
472 |
+
background: #3b82f6;
|
473 |
+
border-radius: 50%;
|
474 |
+
cursor: pointer;
|
475 |
+
transition: background 0.15s ease;
|
476 |
+
}
|
477 |
+
|
478 |
+
input[type="range"]::-webkit-slider-thumb:hover {
|
479 |
+
background: #2563eb;
|
480 |
+
}
|
481 |
+
|
482 |
+
/* Number input styling */
|
483 |
+
input[type="number"] {
|
484 |
+
width: 80px;
|
485 |
+
padding: 0.5rem;
|
486 |
+
border: 1px solid #e5e7eb;
|
487 |
+
border-radius: 6px;
|
488 |
+
font-size: 0.9rem;
|
489 |
+
color: #374151;
|
490 |
+
}
|
491 |
+
|
492 |
+
/* Select styling */
|
493 |
+
select {
|
494 |
+
width: 100%;
|
495 |
+
padding: 0.5rem;
|
496 |
+
border: 1px solid #e5e7eb;
|
497 |
+
border-radius: 6px;
|
498 |
+
background: white;
|
499 |
+
font-size: 0.9rem;
|
500 |
+
color: #374151;
|
501 |
+
cursor: pointer;
|
502 |
+
}
|
503 |
+
|
504 |
+
/* Checkbox styling */
|
505 |
+
input[type="checkbox"] {
|
506 |
+
width: 1.2rem;
|
507 |
+
height: 1.2rem;
|
508 |
+
margin-right: 0.5rem;
|
509 |
+
border: 2px solid #e5e7eb;
|
510 |
+
border-radius: 4px;
|
511 |
+
cursor: pointer;
|
512 |
+
}
|
513 |
+
|
514 |
+
/* Column specific styles */
|
515 |
+
.column-1 {
|
516 |
+
padding-right: 0.5rem;
|
517 |
+
}
|
518 |
+
|
519 |
+
.column-2 {
|
520 |
+
padding-left: 0.5rem;
|
521 |
+
}
|
522 |
+
|
523 |
+
/* Checkbox container */
|
524 |
+
.checkbox-container {
|
525 |
+
display: flex;
|
526 |
+
align-items: center;
|
527 |
+
margin-bottom: 1rem;
|
528 |
+
}
|
529 |
+
|
530 |
+
/* Memory visualization styles */
|
531 |
+
.memory-block {
|
532 |
+
background: #fff;
|
533 |
+
border-radius: 8px;
|
534 |
+
padding: 1rem;
|
535 |
+
margin-bottom: 1rem;
|
536 |
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
537 |
+
}
|
538 |
+
|
539 |
+
.memory-title {
|
540 |
+
font-size: 1.1rem;
|
541 |
+
font-weight: 500;
|
542 |
+
color: #374151;
|
543 |
+
margin-bottom: 0.5rem;
|
544 |
+
}
|
545 |
+
|
546 |
+
.memory-value {
|
547 |
+
font-size: 1.5rem;
|
548 |
+
font-weight: 600;
|
549 |
+
color: #3b82f6;
|
550 |
+
}
|
551 |
+
|
552 |
+
/* Responsive adjustments */
|
553 |
+
@media (max-width: 768px) {
|
554 |
+
#controls {
|
555 |
+
grid-template-columns: 1fr;
|
556 |
+
padding: 1rem;
|
557 |
+
}
|
558 |
+
|
559 |
+
.column-1, .column-2 {
|
560 |
+
padding: 0;
|
561 |
+
}
|
562 |
+
}
|
563 |
+
|
564 |
+
/* Hover states and transitions */
|
565 |
+
input:hover, select:hover {
|
566 |
+
border-color: #3b82f6;
|
567 |
+
}
|
568 |
+
|
569 |
+
input:focus, select:focus {
|
570 |
+
border-color: #2563eb;
|
571 |
+
outline: none;
|
572 |
+
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
|
573 |
+
}
|
574 |
+
|
575 |
+
/* Add smooth transitions */
|
576 |
+
input, select, button {
|
577 |
+
transition: all 0.15s ease;
|
578 |
+
}
|
579 |
+
|
580 |
+
/* Preset dropdown special styling */
|
581 |
+
select[name="presets"] {
|
582 |
+
background-color: #f3f4f6;
|
583 |
+
font-weight: 500;
|
584 |
+
}
|
585 |
+
|
586 |
+
/* Memory graph enhancements */
|
587 |
+
.activation-memory {
|
588 |
+
background: #dbeafe;
|
589 |
+
padding: 1rem;
|
590 |
+
border-radius: 8px;
|
591 |
+
margin-bottom: 1rem;
|
592 |
+
}
|
593 |
+
|
594 |
+
.gradient-memory {
|
595 |
+
background: #ede9fe;
|
596 |
+
padding: 1rem;
|
597 |
+
border-radius: 8px;
|
598 |
+
}
|
599 |
+
|
package.json
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
"main": "index.js",
|
13 |
"scripts": {
|
14 |
"dev": "webpack serve --open",
|
15 |
-
"build": "NODE_ENV=production webpack"
|
16 |
},
|
17 |
"author": "",
|
18 |
"license": "ISC",
|
|
|
12 |
"main": "index.js",
|
13 |
"scripts": {
|
14 |
"dev": "webpack serve --open",
|
15 |
+
"build": "NODE_ENV=production & webpack"
|
16 |
},
|
17 |
"author": "",
|
18 |
"license": "ISC",
|