From e43fb0d0ff7662d9fc82ffa1174d0f6d370a6fdc Mon Sep 17 00:00:00 2001 From: andyeisenberg Date: Thu, 2 Apr 2026 07:47:45 -0400 Subject: [PATCH] Latest build deployed. --- .mapping.json | 2 +- _static/._207.a2b404e695486dde.js | Bin 0 -> 163 bytes _static/._207.a2b404e695486dde.js.LICENSE.txt | Bin 0 -> 163 bytes _static/._207.a2b404e695486dde.js.gz | Bin 0 -> 163 bytes _static/._207.a2b404e695486dde.js.map | Bin 0 -> 163 bytes _static/._207.a2b404e695486dde.js.map.gz | Bin 0 -> 163 bytes _static/._268.60719f20e69f885e.js | Bin 0 -> 163 bytes _static/._268.60719f20e69f885e.js.gz | Bin 0 -> 163 bytes _static/._268.60719f20e69f885e.js.map | Bin 0 -> 163 bytes _static/._268.60719f20e69f885e.js.map.gz | Bin 0 -> 163 bytes _static/._39.15b22d3dac60149d.js | Bin 0 -> 163 bytes _static/._39.15b22d3dac60149d.js.LICENSE.txt | Bin 0 -> 163 bytes _static/._39.15b22d3dac60149d.js.gz | Bin 0 -> 163 bytes _static/._39.15b22d3dac60149d.js.map | Bin 0 -> 163 bytes _static/._39.15b22d3dac60149d.js.map.gz | Bin 0 -> 163 bytes _static/._420.e197c63136060d40.js | Bin 0 -> 163 bytes _static/._420.e197c63136060d40.js.LICENSE.txt | Bin 0 -> 163 bytes _static/._420.e197c63136060d40.js.gz | Bin 0 -> 163 bytes _static/._420.e197c63136060d40.js.map | Bin 0 -> 163 bytes _static/._420.e197c63136060d40.js.map.gz | Bin 0 -> 163 bytes _static/._466.63840a83388af9f2.js | Bin 0 -> 163 bytes _static/._466.63840a83388af9f2.js.gz | Bin 0 -> 163 bytes _static/._466.63840a83388af9f2.js.map | Bin 0 -> 163 bytes _static/._466.63840a83388af9f2.js.map.gz | Bin 0 -> 163 bytes _static/._486.b03e25ab1e190440.js | Bin 0 -> 163 bytes _static/._486.b03e25ab1e190440.js.gz | Bin 0 -> 163 bytes _static/._486.b03e25ab1e190440.js.map | Bin 0 -> 163 bytes _static/._486.b03e25ab1e190440.js.map.gz | Bin 0 -> 163 bytes _static/._529.f5fdfcbb88388877.js | Bin 0 -> 163 bytes _static/._529.f5fdfcbb88388877.js.gz | Bin 0 -> 163 bytes _static/._529.f5fdfcbb88388877.js.map | Bin 0 -> 163 bytes _static/._529.f5fdfcbb88388877.js.map.gz | Bin 0 -> 163 bytes _static/._566.8345f32fac0929c0.js | Bin 0 -> 163 bytes _static/._566.8345f32fac0929c0.js.gz | Bin 0 -> 163 bytes _static/._566.8345f32fac0929c0.js.map | Bin 0 -> 163 bytes _static/._566.8345f32fac0929c0.js.map.gz | Bin 0 -> 163 bytes _static/._576.17e80ff72c52b54b.js | Bin 0 -> 163 bytes _static/._576.17e80ff72c52b54b.js.gz | Bin 0 -> 163 bytes _static/._576.17e80ff72c52b54b.js.map | Bin 0 -> 163 bytes _static/._576.17e80ff72c52b54b.js.map.gz | Bin 0 -> 163 bytes _static/._680.eb99211d1806dba1.js | Bin 0 -> 163 bytes _static/._680.eb99211d1806dba1.js.gz | Bin 0 -> 163 bytes _static/._680.eb99211d1806dba1.js.map | Bin 0 -> 163 bytes _static/._680.eb99211d1806dba1.js.map.gz | Bin 0 -> 163 bytes _static/._759.7032c311ffc20fc3.js | Bin 0 -> 163 bytes _static/._759.7032c311ffc20fc3.js.gz | Bin 0 -> 163 bytes _static/._759.7032c311ffc20fc3.js.map | Bin 0 -> 163 bytes _static/._759.7032c311ffc20fc3.js.map.gz | Bin 0 -> 163 bytes _static/._819.a9dba7a670e07497.js | Bin 0 -> 163 bytes _static/._819.a9dba7a670e07497.js.gz | Bin 0 -> 163 bytes _static/._819.a9dba7a670e07497.js.map | Bin 0 -> 163 bytes _static/._819.a9dba7a670e07497.js.map.gz | Bin 0 -> 163 bytes _static/._919.4801fda4dafcc487.js | Bin 0 -> 163 bytes _static/._919.4801fda4dafcc487.js.gz | Bin 0 -> 163 bytes _static/._919.4801fda4dafcc487.js.map | Bin 0 -> 163 bytes _static/._919.4801fda4dafcc487.js.map.gz | Bin 0 -> 163 bytes _static/._prefix-268.67f2441667bc7c43.css | Bin 0 -> 163 bytes _static/._prefix-268.67f2441667bc7c43.css.gz | Bin 0 -> 163 bytes _static/._prefix-268.67f2441667bc7c43.css.map | Bin 0 -> 163 bytes .../._prefix-268.67f2441667bc7c43.css.map.gz | Bin 0 -> 163 bytes _static/._prefix-39.ec5d93a85cddac28.css | Bin 0 -> 163 bytes _static/._prefix-39.ec5d93a85cddac28.css.gz | Bin 0 -> 163 bytes _static/._prefix-39.ec5d93a85cddac28.css.map | Bin 0 -> 163 bytes .../._prefix-39.ec5d93a85cddac28.css.map.gz | Bin 0 -> 163 bytes ...refix-runestone.a4a209ed3a55c515.bundle.js | Bin 0 -> 163 bytes ...one.a4a209ed3a55c515.bundle.js.LICENSE.txt | Bin 0 -> 163 bytes ....a4a209ed3a55c515.bundle.js.LICENSE.txt.gz | Bin 0 -> 163 bytes ...ix-runestone.a4a209ed3a55c515.bundle.js.gz | Bin 0 -> 163 bytes ...x-runestone.a4a209ed3a55c515.bundle.js.map | Bin 0 -> 163 bytes ...unestone.a4a209ed3a55c515.bundle.js.map.gz | Bin 0 -> 163 bytes ..._prefix-runtime.d2d4c56cb9826035.bundle.js | Bin 0 -> 163 bytes ...efix-runtime.d2d4c56cb9826035.bundle.js.gz | Bin 0 -> 163 bytes ...fix-runtime.d2d4c56cb9826035.bundle.js.map | Bin 0 -> 163 bytes ...-runtime.d2d4c56cb9826035.bundle.js.map.gz | Bin 0 -> 163 bytes _static/207.a2b404e695486dde.js | 3 + _static/207.a2b404e695486dde.js.LICENSE.txt | 6 + _static/207.a2b404e695486dde.js.gz | Bin 0 -> 29018 bytes _static/207.a2b404e695486dde.js.map | 1 + _static/207.a2b404e695486dde.js.map.gz | Bin 0 -> 59537 bytes _static/268.60719f20e69f885e.js | 2 + _static/268.60719f20e69f885e.js.gz | Bin 0 -> 6532 bytes _static/268.60719f20e69f885e.js.map | 1 + _static/268.60719f20e69f885e.js.map.gz | Bin 0 -> 20013 bytes _static/39.15b22d3dac60149d.js | 3 + _static/39.15b22d3dac60149d.js.LICENSE.txt | 5 + _static/39.15b22d3dac60149d.js.gz | Bin 0 -> 29751 bytes _static/39.15b22d3dac60149d.js.map | 1 + _static/39.15b22d3dac60149d.js.map.gz | Bin 0 -> 91209 bytes _static/420.e197c63136060d40.js | 3 + _static/420.e197c63136060d40.js.LICENSE.txt | 5 + _static/420.e197c63136060d40.js.gz | Bin 0 -> 29749 bytes _static/420.e197c63136060d40.js.map | 1 + _static/420.e197c63136060d40.js.map.gz | Bin 0 -> 91210 bytes _static/466.63840a83388af9f2.js | 2 + _static/466.63840a83388af9f2.js.gz | Bin 0 -> 5747 bytes _static/466.63840a83388af9f2.js.map | 1 + _static/466.63840a83388af9f2.js.map.gz | Bin 0 -> 23542 bytes _static/486.b03e25ab1e190440.js | 2 + _static/486.b03e25ab1e190440.js.gz | Bin 0 -> 8486 bytes _static/486.b03e25ab1e190440.js.map | 1 + _static/486.b03e25ab1e190440.js.map.gz | Bin 0 -> 22838 bytes _static/529.f5fdfcbb88388877.js | 2 + _static/529.f5fdfcbb88388877.js.gz | Bin 0 -> 2823 bytes _static/529.f5fdfcbb88388877.js.map | 1 + _static/529.f5fdfcbb88388877.js.map.gz | Bin 0 -> 8404 bytes _static/566.8345f32fac0929c0.js | 2 + _static/566.8345f32fac0929c0.js.gz | Bin 0 -> 4276 bytes _static/566.8345f32fac0929c0.js.map | 1 + _static/566.8345f32fac0929c0.js.map.gz | Bin 0 -> 12127 bytes _static/576.17e80ff72c52b54b.js | 2 + _static/576.17e80ff72c52b54b.js.gz | Bin 0 -> 2849 bytes _static/576.17e80ff72c52b54b.js.map | 1 + _static/576.17e80ff72c52b54b.js.map.gz | Bin 0 -> 10249 bytes _static/680.eb99211d1806dba1.js | 2 + _static/680.eb99211d1806dba1.js.gz | Bin 0 -> 1426 bytes _static/680.eb99211d1806dba1.js.map | 1 + _static/680.eb99211d1806dba1.js.map.gz | Bin 0 -> 4362 bytes _static/759.7032c311ffc20fc3.js | 2 + _static/759.7032c311ffc20fc3.js.gz | Bin 0 -> 4355 bytes _static/759.7032c311ffc20fc3.js.map | 1 + _static/759.7032c311ffc20fc3.js.map.gz | Bin 0 -> 13003 bytes _static/819.a9dba7a670e07497.js | 2 + _static/819.a9dba7a670e07497.js.gz | Bin 0 -> 3343 bytes _static/819.a9dba7a670e07497.js.map | 1 + _static/819.a9dba7a670e07497.js.map.gz | Bin 0 -> 9471 bytes _static/919.4801fda4dafcc487.js | 2 + _static/919.4801fda4dafcc487.js.gz | Bin 0 -> 4639 bytes _static/919.4801fda4dafcc487.js.map | 1 + _static/919.4801fda4dafcc487.js.map.gz | Bin 0 -> 14020 bytes _static/_runestone-services.xml | 6 +- _static/prefix-268.67f2441667bc7c43.css | 2 + _static/prefix-268.67f2441667bc7c43.css.gz | Bin 0 -> 5603 bytes _static/prefix-268.67f2441667bc7c43.css.map | 1 + .../prefix-268.67f2441667bc7c43.css.map.gz | Bin 0 -> 8990 bytes _static/prefix-39.ec5d93a85cddac28.css | 2 + _static/prefix-39.ec5d93a85cddac28.css.gz | Bin 0 -> 2801 bytes _static/prefix-39.ec5d93a85cddac28.css.map | 1 + _static/prefix-39.ec5d93a85cddac28.css.map.gz | Bin 0 -> 4110 bytes ...refix-runestone.a4a209ed3a55c515.bundle.js | 3 + ...one.a4a209ed3a55c515.bundle.js.LICENSE.txt | 83 ++++ ....a4a209ed3a55c515.bundle.js.LICENSE.txt.gz | Bin 0 -> 594 bytes ...ix-runestone.a4a209ed3a55c515.bundle.js.gz | Bin 0 -> 25035 bytes ...x-runestone.a4a209ed3a55c515.bundle.js.map | 1 + ...unestone.a4a209ed3a55c515.bundle.js.map.gz | Bin 0 -> 75116 bytes .../prefix-runtime.d2d4c56cb9826035.bundle.js | 2 + ...efix-runtime.d2d4c56cb9826035.bundle.js.gz | Bin 0 -> 3112 bytes ...fix-runtime.d2d4c56cb9826035.bundle.js.map | 1 + ...-runtime.d2d4c56cb9826035.bundle.js.map.gz | Bin 0 -> 8473 bytes _static/webpack_static_imports.json | 2 +- _static/webpack_static_imports.json.gz | Bin 154 -> 154 bytes _static/webpack_static_imports.xml | 6 +- app-Chi-squared-table.html | 371 ++++++++++++++++++ app-Phi-table.html | 10 +- backmatter-2.html | 10 +- backmatter-3.html | 24 +- backmatter-4.html | 327 +++++++++++++++ backmatter.html | 13 +- ch-Confidence-Intervals.html | 10 +- ch-Expected-Value.html | 10 +- ch-Hypothesis-Testing.html | 10 +- ch-Introduction.html | 10 +- ch-Linear-Regression.html | 10 +- ch-Probability.html | 10 +- ch-Random-Variables.html | 10 +- front-colophon.html | 10 +- frontmatter.html | 12 +- index.html | 2 +- .../fact-geometric-probability-formula.html | 34 ++ knowl/xref/table-Chi-squared.html | 69 ++++ lunr-pretext-search-index.js | 78 +++- my-great-book.html | 10 +- sec-CLT.html | 10 +- sec-Chi-Squared.html | 172 +++++++- sec-Conditional-Probability.html | 10 +- sec-Confidence-Intervals.html | 10 +- sec-Continuous-RVs.html | 10 +- sec-Correlation.html | 10 +- sec-Covariance.html | 10 +- sec-Discrete-RVs.html | 10 +- sec-Expected-Value.html | 10 +- sec-Independent-Events.html | 10 +- sec-Introduction.html | 10 +- sec-Joint-Distributions.html | 10 +- sec-Likelihood.html | 10 +- sec-Linear-Regression.html | 10 +- sec-One-Sample-Tests.html | 10 +- sec-Power.html | 10 +- sec-Probability.html | 10 +- sec-Set-Theory.html | 10 +- sec-Two-Sample-Tests.html | 10 +- sec-Variance.html | 10 +- 191 files changed, 1444 insertions(+), 128 deletions(-) create mode 100755 _static/._207.a2b404e695486dde.js create mode 100755 _static/._207.a2b404e695486dde.js.LICENSE.txt create mode 100755 _static/._207.a2b404e695486dde.js.gz create mode 100755 _static/._207.a2b404e695486dde.js.map create mode 100755 _static/._207.a2b404e695486dde.js.map.gz create mode 100755 _static/._268.60719f20e69f885e.js create mode 100755 _static/._268.60719f20e69f885e.js.gz create mode 100755 _static/._268.60719f20e69f885e.js.map create mode 100755 _static/._268.60719f20e69f885e.js.map.gz create mode 100755 _static/._39.15b22d3dac60149d.js create mode 100755 _static/._39.15b22d3dac60149d.js.LICENSE.txt create mode 100755 _static/._39.15b22d3dac60149d.js.gz create mode 100755 _static/._39.15b22d3dac60149d.js.map create mode 100755 _static/._39.15b22d3dac60149d.js.map.gz create mode 100755 _static/._420.e197c63136060d40.js create mode 100755 _static/._420.e197c63136060d40.js.LICENSE.txt create mode 100755 _static/._420.e197c63136060d40.js.gz create mode 100755 _static/._420.e197c63136060d40.js.map create mode 100755 _static/._420.e197c63136060d40.js.map.gz create mode 100755 _static/._466.63840a83388af9f2.js create mode 100755 _static/._466.63840a83388af9f2.js.gz create mode 100755 _static/._466.63840a83388af9f2.js.map create mode 100755 _static/._466.63840a83388af9f2.js.map.gz create mode 100755 _static/._486.b03e25ab1e190440.js create mode 100755 _static/._486.b03e25ab1e190440.js.gz create mode 100755 _static/._486.b03e25ab1e190440.js.map create mode 100755 _static/._486.b03e25ab1e190440.js.map.gz create mode 100755 _static/._529.f5fdfcbb88388877.js create mode 100755 _static/._529.f5fdfcbb88388877.js.gz create mode 100755 _static/._529.f5fdfcbb88388877.js.map create mode 100755 _static/._529.f5fdfcbb88388877.js.map.gz create mode 100755 _static/._566.8345f32fac0929c0.js create mode 100755 _static/._566.8345f32fac0929c0.js.gz create mode 100755 _static/._566.8345f32fac0929c0.js.map create mode 100755 _static/._566.8345f32fac0929c0.js.map.gz create mode 100755 _static/._576.17e80ff72c52b54b.js create mode 100755 _static/._576.17e80ff72c52b54b.js.gz create mode 100755 _static/._576.17e80ff72c52b54b.js.map create mode 100755 _static/._576.17e80ff72c52b54b.js.map.gz create mode 100755 _static/._680.eb99211d1806dba1.js create mode 100755 _static/._680.eb99211d1806dba1.js.gz create mode 100755 _static/._680.eb99211d1806dba1.js.map create mode 100755 _static/._680.eb99211d1806dba1.js.map.gz create mode 100755 _static/._759.7032c311ffc20fc3.js create mode 100755 _static/._759.7032c311ffc20fc3.js.gz create mode 100755 _static/._759.7032c311ffc20fc3.js.map create mode 100755 _static/._759.7032c311ffc20fc3.js.map.gz create mode 100755 _static/._819.a9dba7a670e07497.js create mode 100755 _static/._819.a9dba7a670e07497.js.gz create mode 100755 _static/._819.a9dba7a670e07497.js.map create mode 100755 _static/._819.a9dba7a670e07497.js.map.gz create mode 100755 _static/._919.4801fda4dafcc487.js create mode 100755 _static/._919.4801fda4dafcc487.js.gz create mode 100755 _static/._919.4801fda4dafcc487.js.map create mode 100755 _static/._919.4801fda4dafcc487.js.map.gz create mode 100755 _static/._prefix-268.67f2441667bc7c43.css create mode 100755 _static/._prefix-268.67f2441667bc7c43.css.gz create mode 100755 _static/._prefix-268.67f2441667bc7c43.css.map create mode 100755 _static/._prefix-268.67f2441667bc7c43.css.map.gz create mode 100755 _static/._prefix-39.ec5d93a85cddac28.css create mode 100755 _static/._prefix-39.ec5d93a85cddac28.css.gz create mode 100755 _static/._prefix-39.ec5d93a85cddac28.css.map create mode 100755 _static/._prefix-39.ec5d93a85cddac28.css.map.gz create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt.gz create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js.gz create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map create mode 100755 _static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map.gz create mode 100755 _static/._prefix-runtime.d2d4c56cb9826035.bundle.js create mode 100755 _static/._prefix-runtime.d2d4c56cb9826035.bundle.js.gz create mode 100755 _static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map create mode 100755 _static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map.gz create mode 100755 _static/207.a2b404e695486dde.js create mode 100755 _static/207.a2b404e695486dde.js.LICENSE.txt create mode 100755 _static/207.a2b404e695486dde.js.gz create mode 100755 _static/207.a2b404e695486dde.js.map create mode 100755 _static/207.a2b404e695486dde.js.map.gz create mode 100755 _static/268.60719f20e69f885e.js create mode 100755 _static/268.60719f20e69f885e.js.gz create mode 100755 _static/268.60719f20e69f885e.js.map create mode 100755 _static/268.60719f20e69f885e.js.map.gz create mode 100755 _static/39.15b22d3dac60149d.js create mode 100755 _static/39.15b22d3dac60149d.js.LICENSE.txt create mode 100755 _static/39.15b22d3dac60149d.js.gz create mode 100755 _static/39.15b22d3dac60149d.js.map create mode 100755 _static/39.15b22d3dac60149d.js.map.gz create mode 100755 _static/420.e197c63136060d40.js create mode 100755 _static/420.e197c63136060d40.js.LICENSE.txt create mode 100755 _static/420.e197c63136060d40.js.gz create mode 100755 _static/420.e197c63136060d40.js.map create mode 100755 _static/420.e197c63136060d40.js.map.gz create mode 100755 _static/466.63840a83388af9f2.js create mode 100755 _static/466.63840a83388af9f2.js.gz create mode 100755 _static/466.63840a83388af9f2.js.map create mode 100755 _static/466.63840a83388af9f2.js.map.gz create mode 100755 _static/486.b03e25ab1e190440.js create mode 100755 _static/486.b03e25ab1e190440.js.gz create mode 100755 _static/486.b03e25ab1e190440.js.map create mode 100755 _static/486.b03e25ab1e190440.js.map.gz create mode 100755 _static/529.f5fdfcbb88388877.js create mode 100755 _static/529.f5fdfcbb88388877.js.gz create mode 100755 _static/529.f5fdfcbb88388877.js.map create mode 100755 _static/529.f5fdfcbb88388877.js.map.gz create mode 100755 _static/566.8345f32fac0929c0.js create mode 100755 _static/566.8345f32fac0929c0.js.gz create mode 100755 _static/566.8345f32fac0929c0.js.map create mode 100755 _static/566.8345f32fac0929c0.js.map.gz create mode 100755 _static/576.17e80ff72c52b54b.js create mode 100755 _static/576.17e80ff72c52b54b.js.gz create mode 100755 _static/576.17e80ff72c52b54b.js.map create mode 100755 _static/576.17e80ff72c52b54b.js.map.gz create mode 100755 _static/680.eb99211d1806dba1.js create mode 100755 _static/680.eb99211d1806dba1.js.gz create mode 100755 _static/680.eb99211d1806dba1.js.map create mode 100755 _static/680.eb99211d1806dba1.js.map.gz create mode 100755 _static/759.7032c311ffc20fc3.js create mode 100755 _static/759.7032c311ffc20fc3.js.gz create mode 100755 _static/759.7032c311ffc20fc3.js.map create mode 100755 _static/759.7032c311ffc20fc3.js.map.gz create mode 100755 _static/819.a9dba7a670e07497.js create mode 100755 _static/819.a9dba7a670e07497.js.gz create mode 100755 _static/819.a9dba7a670e07497.js.map create mode 100755 _static/819.a9dba7a670e07497.js.map.gz create mode 100755 _static/919.4801fda4dafcc487.js create mode 100755 _static/919.4801fda4dafcc487.js.gz create mode 100755 _static/919.4801fda4dafcc487.js.map create mode 100755 _static/919.4801fda4dafcc487.js.map.gz create mode 100755 _static/prefix-268.67f2441667bc7c43.css create mode 100755 _static/prefix-268.67f2441667bc7c43.css.gz create mode 100755 _static/prefix-268.67f2441667bc7c43.css.map create mode 100755 _static/prefix-268.67f2441667bc7c43.css.map.gz create mode 100755 _static/prefix-39.ec5d93a85cddac28.css create mode 100755 _static/prefix-39.ec5d93a85cddac28.css.gz create mode 100755 _static/prefix-39.ec5d93a85cddac28.css.map create mode 100755 _static/prefix-39.ec5d93a85cddac28.css.map.gz create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt.gz create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js.gz create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js.map create mode 100755 _static/prefix-runestone.a4a209ed3a55c515.bundle.js.map.gz create mode 100755 _static/prefix-runtime.d2d4c56cb9826035.bundle.js create mode 100755 _static/prefix-runtime.d2d4c56cb9826035.bundle.js.gz create mode 100755 _static/prefix-runtime.d2d4c56cb9826035.bundle.js.map create mode 100755 _static/prefix-runtime.d2d4c56cb9826035.bundle.js.map.gz create mode 100755 app-Chi-squared-table.html create mode 100755 backmatter-4.html create mode 100755 knowl/xref/fact-geometric-probability-formula.html create mode 100755 knowl/xref/table-Chi-squared.html diff --git a/.mapping.json b/.mapping.json index 88e5c63..e0e506a 100755 --- a/.mapping.json +++ b/.mapping.json @@ -1 +1 @@ -{"source/main.ptx": ["my-great-book", "frontmatter", "front-colophon", "ch-Introduction", "sec-Introduction", "ch-Probability", "sec-Set-Theory", "sec-Probability", "sec-Conditional-Probability", "sec-Independent-Events", "ch-Random-Variables", "sec-Discrete-RVs", "sec-Continuous-RVs", "sec-Joint-Distributions", "ch-Expected-Value", "sec-Expected-Value", "sec-Variance", "sec-Covariance", "ch-Confidence-Intervals", "sec-Likelihood", "sec-CLT", "sec-Confidence-Intervals", "ch-Hypothesis-Testing", "sec-One-Sample-Tests", "sec-Two-Sample-Tests", "sec-Power", "sec-Chi-Squared", "ch-Linear-Regression", "sec-Correlation", "sec-Linear-Regression", "backmatter", "app-Phi-table"]} \ No newline at end of file +{"source/main.ptx": ["my-great-book", "frontmatter", "front-colophon", "ch-Introduction", "sec-Introduction", "ch-Probability", "sec-Set-Theory", "sec-Probability", "sec-Conditional-Probability", "sec-Independent-Events", "ch-Random-Variables", "sec-Discrete-RVs", "sec-Continuous-RVs", "sec-Joint-Distributions", "ch-Expected-Value", "sec-Expected-Value", "sec-Variance", "sec-Covariance", "ch-Confidence-Intervals", "sec-Likelihood", "sec-CLT", "sec-Confidence-Intervals", "ch-Hypothesis-Testing", "sec-One-Sample-Tests", "sec-Two-Sample-Tests", "sec-Power", "sec-Chi-Squared", "ch-Linear-Regression", "sec-Correlation", "sec-Linear-Regression", "backmatter", "app-Phi-table", "app-Chi-squared-table"]} \ No newline at end of file diff --git a/_static/._207.a2b404e695486dde.js b/_static/._207.a2b404e695486dde.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._207.a2b404e695486dde.js.LICENSE.txt b/_static/._207.a2b404e695486dde.js.LICENSE.txt new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._207.a2b404e695486dde.js.gz b/_static/._207.a2b404e695486dde.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._207.a2b404e695486dde.js.map b/_static/._207.a2b404e695486dde.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._207.a2b404e695486dde.js.map.gz b/_static/._207.a2b404e695486dde.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._268.60719f20e69f885e.js b/_static/._268.60719f20e69f885e.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._268.60719f20e69f885e.js.gz b/_static/._268.60719f20e69f885e.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._268.60719f20e69f885e.js.map b/_static/._268.60719f20e69f885e.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._268.60719f20e69f885e.js.map.gz b/_static/._268.60719f20e69f885e.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._39.15b22d3dac60149d.js b/_static/._39.15b22d3dac60149d.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._39.15b22d3dac60149d.js.LICENSE.txt b/_static/._39.15b22d3dac60149d.js.LICENSE.txt new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._39.15b22d3dac60149d.js.gz b/_static/._39.15b22d3dac60149d.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._39.15b22d3dac60149d.js.map b/_static/._39.15b22d3dac60149d.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._39.15b22d3dac60149d.js.map.gz b/_static/._39.15b22d3dac60149d.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._420.e197c63136060d40.js b/_static/._420.e197c63136060d40.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._420.e197c63136060d40.js.LICENSE.txt b/_static/._420.e197c63136060d40.js.LICENSE.txt new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._420.e197c63136060d40.js.gz b/_static/._420.e197c63136060d40.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._420.e197c63136060d40.js.map b/_static/._420.e197c63136060d40.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._420.e197c63136060d40.js.map.gz b/_static/._420.e197c63136060d40.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._466.63840a83388af9f2.js b/_static/._466.63840a83388af9f2.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._466.63840a83388af9f2.js.gz b/_static/._466.63840a83388af9f2.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._466.63840a83388af9f2.js.map b/_static/._466.63840a83388af9f2.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._466.63840a83388af9f2.js.map.gz b/_static/._466.63840a83388af9f2.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._486.b03e25ab1e190440.js b/_static/._486.b03e25ab1e190440.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._486.b03e25ab1e190440.js.gz b/_static/._486.b03e25ab1e190440.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._486.b03e25ab1e190440.js.map b/_static/._486.b03e25ab1e190440.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._486.b03e25ab1e190440.js.map.gz b/_static/._486.b03e25ab1e190440.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._529.f5fdfcbb88388877.js b/_static/._529.f5fdfcbb88388877.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._529.f5fdfcbb88388877.js.gz b/_static/._529.f5fdfcbb88388877.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._529.f5fdfcbb88388877.js.map b/_static/._529.f5fdfcbb88388877.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._529.f5fdfcbb88388877.js.map.gz b/_static/._529.f5fdfcbb88388877.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._566.8345f32fac0929c0.js b/_static/._566.8345f32fac0929c0.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._566.8345f32fac0929c0.js.gz b/_static/._566.8345f32fac0929c0.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._566.8345f32fac0929c0.js.map b/_static/._566.8345f32fac0929c0.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._566.8345f32fac0929c0.js.map.gz b/_static/._566.8345f32fac0929c0.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._576.17e80ff72c52b54b.js b/_static/._576.17e80ff72c52b54b.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._576.17e80ff72c52b54b.js.gz b/_static/._576.17e80ff72c52b54b.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._576.17e80ff72c52b54b.js.map b/_static/._576.17e80ff72c52b54b.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._576.17e80ff72c52b54b.js.map.gz b/_static/._576.17e80ff72c52b54b.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._680.eb99211d1806dba1.js b/_static/._680.eb99211d1806dba1.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._680.eb99211d1806dba1.js.gz b/_static/._680.eb99211d1806dba1.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._680.eb99211d1806dba1.js.map b/_static/._680.eb99211d1806dba1.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._680.eb99211d1806dba1.js.map.gz b/_static/._680.eb99211d1806dba1.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._759.7032c311ffc20fc3.js b/_static/._759.7032c311ffc20fc3.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._759.7032c311ffc20fc3.js.gz b/_static/._759.7032c311ffc20fc3.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._759.7032c311ffc20fc3.js.map b/_static/._759.7032c311ffc20fc3.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._759.7032c311ffc20fc3.js.map.gz b/_static/._759.7032c311ffc20fc3.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._819.a9dba7a670e07497.js b/_static/._819.a9dba7a670e07497.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._819.a9dba7a670e07497.js.gz b/_static/._819.a9dba7a670e07497.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._819.a9dba7a670e07497.js.map b/_static/._819.a9dba7a670e07497.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._819.a9dba7a670e07497.js.map.gz b/_static/._819.a9dba7a670e07497.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._919.4801fda4dafcc487.js b/_static/._919.4801fda4dafcc487.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._919.4801fda4dafcc487.js.gz b/_static/._919.4801fda4dafcc487.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._919.4801fda4dafcc487.js.map b/_static/._919.4801fda4dafcc487.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._919.4801fda4dafcc487.js.map.gz b/_static/._919.4801fda4dafcc487.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-268.67f2441667bc7c43.css b/_static/._prefix-268.67f2441667bc7c43.css new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-268.67f2441667bc7c43.css.gz b/_static/._prefix-268.67f2441667bc7c43.css.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-268.67f2441667bc7c43.css.map b/_static/._prefix-268.67f2441667bc7c43.css.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-268.67f2441667bc7c43.css.map.gz b/_static/._prefix-268.67f2441667bc7c43.css.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-39.ec5d93a85cddac28.css b/_static/._prefix-39.ec5d93a85cddac28.css new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-39.ec5d93a85cddac28.css.gz b/_static/._prefix-39.ec5d93a85cddac28.css.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-39.ec5d93a85cddac28.css.map b/_static/._prefix-39.ec5d93a85cddac28.css.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-39.ec5d93a85cddac28.css.map.gz b/_static/._prefix-39.ec5d93a85cddac28.css.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt.gz b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.LICENSE.txt.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.gz b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map.gz b/_static/._prefix-runestone.a4a209ed3a55c515.bundle.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js b/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.gz b/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map b/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map.gz b/_static/._prefix-runtime.d2d4c56cb9826035.bundle.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..d4c638481f3a3a657f36d188ef835324080a1acd GIT binary patch literal 163 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUl?c_=|y<2;dkJ5(HHS(lG;wxzV&S oBE&_L^K!kB^sueM$V05C2SK>z>% literal 0 HcmV?d00001 diff --git a/_static/207.a2b404e695486dde.js b/_static/207.a2b404e695486dde.js new file mode 100755 index 0000000..549bef6 --- /dev/null +++ b/_static/207.a2b404e695486dde.js @@ -0,0 +1,3 @@ +/*! For license information please see 207.a2b404e695486dde.js.LICENSE.txt */ +"use strict";(self.webpackChunkWebComponents=self.webpackChunkWebComponents||[]).push([[207],{78207:(e,t,n)=>{function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;tMn});var c=l(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),d=l(/Edge/i),u=l(/firefox/i),h=l(/safari/i)&&!l(/chrome/i)&&!l(/android/i),g=l(/iP(ad|od|hone)/i),p=l(/chrome/i)&&l(/android/i),f={capture:!1,passive:!1};function m(e,t,n){e.addEventListener(t,n,!c&&f)}function b(e,t,n){e.removeEventListener(t,n,!c&&f)}function v(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function _(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function y(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&v(e,t):v(e,t))||r&&e===n)return e;if(e===n)break}while(e=_(e))}return null}var E,w=/\s+/g;function x(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(w," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(w," ")}}function S(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function A(e,t){var n="";if("string"==typeof e)n=e;else do{var r=S(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function k(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,i=r.length;if(n)for(;o=i:o<=i))return r;if(r===N())break;r=B(r,!1)}return!1}function T(e,t,n,r){for(var o=0,i=0,a=e.children;i2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(n,U);X.pluginEvent.bind(Pe)(e,t,o({dragEl:W,parentEl:G,ghostEl:q,rootEl:Z,nextEl:V,lastDownEl:J,cloneEl:Q,cloneHidden:ee,dragStarted:ge,putSortable:ae,activeSortable:Pe.active,originalEvent:r,oldIndex:te,oldDraggableIndex:re,newIndex:ne,newDraggableIndex:oe,hideGhostForTarget:Ie,unhideGhostForTarget:Be,cloneNowHidden:function(){ee=!0},cloneNowShown:function(){ee=!1},dispatchSortableEvent:function(e){K({sortable:t,name:e,originalEvent:r})}},i))};function K(e){!function(e){var t=e.sortable,n=e.rootEl,r=e.name,i=e.targetEl,a=e.cloneEl,s=e.toEl,l=e.fromEl,u=e.oldIndex,h=e.newIndex,g=e.oldDraggableIndex,p=e.newDraggableIndex,f=e.originalEvent,m=e.putSortable,b=e.extraEventProperties;if(t=t||n&&n[$]){var v,_=t.options,y="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||c||d?(v=document.createEvent("Event")).initEvent(r,!0,!0):v=new CustomEvent(r,{bubbles:!0,cancelable:!0}),v.to=s||n,v.from=l||n,v.item=i||n,v.clone=a,v.oldIndex=u,v.newIndex=h,v.oldDraggableIndex=g,v.newDraggableIndex=p,v.originalEvent=f,v.pullMode=m?m.lastPutMode:void 0;var E=o(o({},b),X.getEventProperties(r,t));for(var w in E)v[w]=E[w];n&&n.dispatchEvent(v),_[y]&&_[y].call(t,v)}}(o({putSortable:ae,cloneEl:Q,targetEl:W,rootEl:Z,oldIndex:te,oldDraggableIndex:re,newIndex:ne,newDraggableIndex:oe},e))}var W,G,q,Z,V,J,Q,ee,te,ne,re,oe,ie,ae,se,le,ce,de,ue,he,ge,pe,fe,me,be,ve=!1,_e=!1,ye=[],Ee=!1,we=!1,xe=[],Se=!1,Ae=[],ke="undefined"!=typeof document,Ne=g,Oe=d||c?"cssFloat":"float",Ce=ke&&!p&&!g&&"draggable"in document.createElement("div"),Te=function(){if(ke){if(c)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),De=function(e,t){var n=S(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=T(e,0,t),i=T(e,1,t),a=o&&S(o),s=i&&S(i),l=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+O(o).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+O(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&a.float&&"none"!==a.float){var d="left"===a.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return o&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||l>=r&&"none"===n[Oe]||i&&"none"===n[Oe]&&l+c>r)?"vertical":"horizontal"},Me=function(e){function t(e,n){return function(r,o,i,a){var s=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==e&&(n||s))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,o,i,a),n)(r,o,i,a);var l=(n?r:o).options.group.name;return!0===e||"string"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var n={},r=e.group;r&&"object"==i(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},Ie=function(){!Te&&q&&S(q,"display","none")},Be=function(){!Te&&q&&S(q,"display","")};ke&&document.addEventListener("click",(function(e){if(_e)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),_e=!1,!1}),!0);var Re=function(e){if(W){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,i=e.clientY,ye.some((function(e){var t=e[$].options.emptyInsertThreshold;if(t&&!D(e)){var n=O(e),r=o>=n.left-t&&o<=n.right+t,s=i>=n.top-t&&i<=n.bottom+t;return r&&s?a=e:void 0}})),a);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[$]._onDragOver(n)}}var o,i,a},Le=function(e){W&&W.parentNode[$]._isOutsideThisEl(e.target)};function Pe(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=s({},t),e[$]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return De(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Pe.supportPointer&&"PointerEvent"in window&&!h,emptyInsertThreshold:5};for(var r in X.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in Me(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&Ce,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?m(e,"pointerdown",this._onTapStart):(m(e,"mousedown",this._onTapStart),m(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(m(e,"dragover",this),m(e,"dragenter",this)),ye.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),s(this,z())}function je(e,t,n,r,o,i,a,s){var l,u,h=e[$],g=h.options.onMove;return!window.CustomEvent||c||d?(l=document.createEvent("Event")).initEvent("move",!0,!0):l=new CustomEvent("move",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=n,l.draggedRect=r,l.related=o||t,l.relatedRect=i||O(t),l.willInsertAfter=s,l.originalEvent=a,e.dispatchEvent(l),g&&(u=g.call(h,l,a)),u}function $e(e){e.draggable=!1}function ze(){Se=!1}function Fe(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function He(e){return setTimeout(e,0)}function Xe(e){return clearTimeout(e)}Pe.prototype={constructor:Pe,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(pe=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,W):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,s=(a||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=r.filter;if(function(e){Ae.length=0;for(var t=e.getElementsByTagName("input"),n=t.length;n--;){var r=t[n];r.checked&&Ae.push(r)}}(n),!W&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||r.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!h||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=y(s,r.draggable,n,!1))&&s.animated||J===s)){if(te=M(s),re=M(s,r.draggable),"function"==typeof c){if(c.call(this,e,s,this))return K({sortable:t,rootEl:l,name:"filter",targetEl:s,toEl:n,fromEl:n}),Y("filter",t,{evt:e}),void(o&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=y(l,r.trim(),n,!1))return K({sortable:t,rootEl:r,name:"filter",targetEl:s,fromEl:n,toEl:n}),Y("filter",t,{evt:e}),!0}))))return void(o&&e.cancelable&&e.preventDefault());r.handle&&!y(l,r.handle,n,!1)||this._prepareDragStart(e,a,s)}}},_prepareDragStart:function(e,t,n){var r,o=this,i=o.el,a=o.options,s=i.ownerDocument;if(n&&!W&&n.parentNode===i){var l=O(n);if(Z=i,G=(W=n).parentNode,V=W.nextSibling,J=n,ie=a.group,Pe.dragged=W,se={target:W,clientX:(t||e).clientX,clientY:(t||e).clientY},ue=se.clientX-l.left,he=se.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,W.style["will-change"]="all",r=function(){Y("delayEnded",o,{evt:e}),Pe.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!u&&o.nativeDraggable&&(W.draggable=!0),o._triggerDragStart(e,t),K({sortable:o,name:"choose",originalEvent:e}),x(W,a.chosenClass,!0))},a.ignore.split(",").forEach((function(e){k(W,e.trim(),$e)})),m(s,"dragover",Re),m(s,"mousemove",Re),m(s,"touchmove",Re),m(s,"mouseup",o._onDrop),m(s,"touchend",o._onDrop),m(s,"touchcancel",o._onDrop),u&&this.nativeDraggable&&(this.options.touchStartThreshold=4,W.draggable=!0),Y("delayStart",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(d||c))r();else{if(Pe.eventCanceled)return void this._onDrop();m(s,"mouseup",o._disableDelayedDrag),m(s,"touchend",o._disableDelayedDrag),m(s,"touchcancel",o._disableDelayedDrag),m(s,"mousemove",o._delayedDragTouchMoveHandler),m(s,"touchmove",o._delayedDragTouchMoveHandler),a.supportPointer&&m(s,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){W&&$e(W),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;b(e,"mouseup",this._disableDelayedDrag),b(e,"touchend",this._disableDelayedDrag),b(e,"touchcancel",this._disableDelayedDrag),b(e,"mousemove",this._delayedDragTouchMoveHandler),b(e,"touchmove",this._delayedDragTouchMoveHandler),b(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?m(document,"pointermove",this._onTouchMove):m(document,t?"touchmove":"mousemove",this._onTouchMove):(m(W,"dragend",this),m(Z,"dragstart",this._onDragStart));try{document.selection?He((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(ve=!1,Z&&W){Y("dragStarted",this,{evt:t}),this.nativeDraggable&&m(document,"dragover",Le);var n=this.options;!e&&x(W,n.dragClass,!1),x(W,n.ghostClass,!0),Pe.active=this,e&&this._appendGhost(),K({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(le){this._lastX=le.clientX,this._lastY=le.clientY,Ie();for(var e=document.elementFromPoint(le.clientX,le.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(le.clientX,le.clientY))!==t;)t=e;if(W.parentNode[$]._isOutsideThisEl(e),t)do{if(t[$]&&t[$]._onDragOver({clientX:le.clientX,clientY:le.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Be()}},_onTouchMove:function(e){if(se){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,i=q&&A(q,!0),a=q&&i&&i.a,s=q&&i&&i.d,l=Ne&&be&&I(be),c=(o.clientX-se.clientX+r.x)/(a||1)+(l?l[0]-xe[0]:0)/(a||1),d=(o.clientY-se.clientY+r.y)/(s||1)+(l?l[1]-xe[1]:0)/(s||1);if(!Pe.active&&!ve){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))r.right+10||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+10}(e,i,this)&&!m.animated){if(m===W)return H(!1);if(m&&a===e.target&&(s=m),s&&(n=O(s)),!1!==je(Z,a,W,t,s,n,e,!!s))return F(),a.appendChild(W),G=a,X(),H(!0)}else if(m&&function(e,t,n){var r=O(T(n.el,0,n.options,!0));return t?e.clientXd+c*i/2:lu-me)return-fe}else if(l>d+c*(1-o)/2&&lu-c*i/2)?l>d+c/2?1:-1:0}(e,s,n,i,A?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,we,pe===s),0!==v){var B=M(W);do{B-=v,E=G.children[B]}while(E&&("none"===S(E,"display")||E===q))}if(0===v||E===s)return H(!1);pe=s,fe=v;var R=s.nextElementSibling,L=!1,j=je(Z,a,W,t,s,n,e,L=1===v);if(!1!==j)return 1!==j&&-1!==j||(L=1===j),Se=!0,setTimeout(ze,30),F(),L&&!R?a.appendChild(W):s.parentNode.insertBefore(W,L?R:s),N&&P(N,0,I-N.scrollTop),G=W.parentNode,void 0===_||we||(me=Math.abs(_-O(s)[k])),X(),H(!0)}if(a.contains(W))return H(!1)}return!1}function z(l,c){Y(l,p,o({evt:e,isOwner:u,axis:i?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:h,fromSortable:g,target:s,completed:H,onMove:function(n,r){return je(Z,a,W,t,n,O(n),e,r)},changed:X},c))}function F(){z("dragOverAnimationCapture"),p.captureAnimationState(),p!==g&&g.captureAnimationState()}function H(t){return z("dragOverCompleted",{insertion:t}),t&&(u?d._hideClone():d._showClone(p),p!==g&&(x(W,ae?ae.options.ghostClass:d.options.ghostClass,!1),x(W,l.ghostClass,!0)),ae!==p&&p!==Pe.active?ae=p:p===Pe.active&&ae&&(ae=null),g===p&&(p._ignoreWhileAnimating=s),p.animateAll((function(){z("dragOverAnimationComplete"),p._ignoreWhileAnimating=null})),p!==g&&(g.animateAll(),g._ignoreWhileAnimating=null)),(s===W&&!W.animated||s===a&&!s.animated)&&(pe=null),l.dragoverBubble||e.rootEl||s===document||(W.parentNode[$]._isOutsideThisEl(e.target),!t&&Re(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function X(){ne=M(W),oe=M(W,l.draggable),K({sortable:p,name:"change",toEl:a,newIndex:ne,newDraggableIndex:oe,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){b(document,"mousemove",this._onTouchMove),b(document,"touchmove",this._onTouchMove),b(document,"pointermove",this._onTouchMove),b(document,"dragover",Re),b(document,"mousemove",Re),b(document,"touchmove",Re)},_offUpEvents:function(){var e=this.el.ownerDocument;b(e,"mouseup",this._onDrop),b(e,"touchend",this._onDrop),b(e,"pointerup",this._onDrop),b(e,"touchcancel",this._onDrop),b(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;ne=M(W),oe=M(W,n.draggable),Y("drop",this,{evt:e}),G=W&&W.parentNode,ne=M(W),oe=M(W,n.draggable),Pe.eventCanceled||(ve=!1,we=!1,Ee=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Xe(this.cloneId),Xe(this._dragStartId),this.nativeDraggable&&(b(document,"drop",this),b(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),h&&S(document.body,"user-select",""),S(W,"transform",""),e&&(ge&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),q&&q.parentNode&&q.parentNode.removeChild(q),(Z===G||ae&&"clone"!==ae.lastPutMode)&&Q&&Q.parentNode&&Q.parentNode.removeChild(Q),W&&(this.nativeDraggable&&b(W,"dragend",this),$e(W),W.style["will-change"]="",ge&&!ve&&x(W,ae?ae.options.ghostClass:this.options.ghostClass,!1),x(W,this.options.chosenClass,!1),K({sortable:this,name:"unchoose",toEl:G,newIndex:null,newDraggableIndex:null,originalEvent:e}),Z!==G?(ne>=0&&(K({rootEl:G,name:"add",toEl:G,fromEl:Z,originalEvent:e}),K({sortable:this,name:"remove",toEl:G,originalEvent:e}),K({rootEl:G,name:"sort",toEl:G,fromEl:Z,originalEvent:e}),K({sortable:this,name:"sort",toEl:G,originalEvent:e})),ae&&ae.save()):ne!==te&&ne>=0&&(K({sortable:this,name:"update",toEl:G,originalEvent:e}),K({sortable:this,name:"sort",toEl:G,originalEvent:e})),Pe.active&&(null!=ne&&-1!==ne||(ne=te,oe=re),K({sortable:this,name:"end",toEl:G,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Y("nulling",this),Z=W=G=q=V=Q=J=ee=se=le=ge=ne=oe=te=re=pe=fe=ae=ie=Pe.dragged=Pe.ghost=Pe.clone=Pe.active=null,Ae.forEach((function(e){e.checked=!0})),Ae.length=ce=de=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":W&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,o=n.length,i=this.options;r/g,">").replace(/"/g,""").replace(/'/g,"'")}function ct(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const dt=e=>!!e.scope||e.sublanguage&&e.language;class ut{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=lt(e)}openNode(e){if(!dt(e))return;let t="";t=e.sublanguage?`language-${e.language}`:((e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){dt(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const ht=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class gt{constructor(){this.rootNode=ht(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=ht({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{gt._collapse(e)})))}}class pt extends gt{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){return new ut(this,this.options).value()}finalize(){return!0}}function ft(e){return e?"string"==typeof e?e:e.source:null}function mt(e){return _t("(?=",e,")")}function bt(e){return _t("(?:",e,")*")}function vt(e){return _t("(?:",e,")?")}function _t(...e){return e.map((e=>ft(e))).join("")}function yt(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>ft(e))).join("|")+")"}function Et(e){return new RegExp(e.toString()+"|").exec("").length-1}const wt=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function xt(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let r=ft(e),o="";for(;r.length>0;){const e=wt.exec(r);if(!e){o+=r;break}o+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?o+="\\"+String(Number(e[1])+t):(o+=e[0],"("===e[0]&&n++)}return o})).map((e=>`(${e})`)).join(t)}const St="[a-zA-Z]\\w*",At="[a-zA-Z_]\\w*",kt="\\b\\d+(\\.\\d+)?",Nt="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Ot="\\b(0b[01]+)",Ct={begin:"\\\\[\\s\\S]",relevance:0},Tt={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Ct]},Dt={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Ct]},Mt=function(e,t,n={}){const r=ct({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const o=yt("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:_t(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},It=Mt("//","$"),Bt=Mt("/\\*","\\*/"),Rt=Mt("#","$"),Lt={scope:"number",begin:kt,relevance:0},Pt={scope:"number",begin:Nt,relevance:0},jt={scope:"number",begin:Ot,relevance:0},$t={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Ct,{begin:/\[/,end:/\]/,relevance:0,contains:[Ct]}]}]},zt={scope:"title",begin:St,relevance:0},Ft={scope:"title",begin:At,relevance:0},Ht={begin:"\\.\\s*"+At,relevance:0};var Xt=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:St,UNDERSCORE_IDENT_RE:At,NUMBER_RE:kt,C_NUMBER_RE:Nt,BINARY_NUMBER_RE:Ot,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=_t(t,/.*\b/,e.binary,/\b.*/)),ct({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:Ct,APOS_STRING_MODE:Tt,QUOTE_STRING_MODE:Dt,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:Mt,C_LINE_COMMENT_MODE:It,C_BLOCK_COMMENT_MODE:Bt,HASH_COMMENT_MODE:Rt,NUMBER_MODE:Lt,C_NUMBER_MODE:Pt,BINARY_NUMBER_MODE:jt,REGEXP_MODE:$t,TITLE_MODE:zt,UNDERSCORE_TITLE_MODE:Ft,METHOD_GUARD:Ht,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function Ut(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function Yt(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function Kt(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Ut,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function Wt(e,t){Array.isArray(e.illegal)&&(e.illegal=yt(...e.illegal))}function Gt(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function qt(e,t){void 0===e.relevance&&(e.relevance=1)}const Zt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=_t(n.beforeMatch,mt(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},Vt=["of","and","for","in","not","or","if","then","parent","list","value"];function Jt(e,t,n="keyword"){const r=Object.create(null);return"string"==typeof e?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach((function(n){Object.assign(r,Jt(e[n],t,n))})),r;function o(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((function(t){const n=t.split("|");r[n[0]]=[e,Qt(n[0],n[1])]}))}}function Qt(e,t){return t?Number(t):function(e){return Vt.includes(e.toLowerCase())}(e)?0:1}const en={},tn=e=>{console.error(e)},nn=(e,...t)=>{console.log(`WARN: ${e}`,...t)},rn=(e,t)=>{en[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),en[`${e}/${t}`]=!0)},on=new Error;function an(e,t,{key:n}){let r=0;const o=e[n],i={},a={};for(let e=1;e<=t.length;e++)a[e+r]=o[e],i[e+r]=!0,r+=Et(t[e-1]);e[n]=a,e[n]._emit=i,e[n]._multi=!0}function sn(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw tn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),on;if("object"!=typeof e.beginScope||null===e.beginScope)throw tn("beginScope must be object"),on;an(e,e.begin,{key:"beginScope"}),e.begin=xt(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw tn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),on;if("object"!=typeof e.endScope||null===e.endScope)throw tn("endScope must be object"),on;an(e,e.end,{key:"endScope"}),e.end=xt(e.end,{joinWith:""})}}(e)}function ln(e){function t(t,n){return new RegExp(ft(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=Et(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(xt(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ct(e.classNameAliases||{}),function n(o,i){const a=o;if(o.isCompiled)return a;[Yt,Gt,sn,Zt].forEach((e=>e(o,i))),e.compilerExtensions.forEach((e=>e(o,i))),o.__beforeBegin=null,[Kt,Wt,qt].forEach((e=>e(o,i))),o.isCompiled=!0;let s=null;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),s=o.keywords.$pattern,delete o.keywords.$pattern),s=s||/\w+/,o.keywords&&(o.keywords=Jt(o.keywords,e.case_insensitive)),a.keywordPatternRe=t(s,!0),i&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/),o.end&&(a.endRe=t(a.end)),a.terminatorEnd=ft(a.end)||"",o.endsWithParent&&i.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+i.terminatorEnd)),o.illegal&&(a.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return ct(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:cn(e)?ct(e,{starts:e.starts?ct(e.starts):null}):Object.isFrozen(e)?ct(e):e}("self"===e?o:e)}))),o.contains.forEach((function(e){n(e,a)})),o.starts&&n(o.starts,i),a.matcher=function(e){const t=new r;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(a),a}(e)}function cn(e){return!!e&&(e.endsWithParent||cn(e.starts))}class dn extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const un=lt,hn=ct,gn=Symbol("nomatch");var pn=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:pt};function l(e){return s.noHighlightRe.test(e)}function c(e,t,n){let r="",o="";"object"==typeof t?(r=e,n=t.ignoreIllegals,o=t.language):(rn("10.7.0","highlight(lang, code, ...args) has been deprecated."),rn("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),o=e,r=t),void 0===n&&(n=!0);const i={code:r,language:o};v("before:highlight",i);const a=i.result?i.result:d(i.language,i.code,n);return a.code=i.code,v("after:highlight",a),a}function d(e,n,r,a){const l=Object.create(null);function c(){if(!S.keywords)return void k.addText(N);let e=0;S.keywordPatternRe.lastIndex=0;let t=S.keywordPatternRe.exec(N),n="";for(;t;){n+=N.substring(e,t.index);const o=E.case_insensitive?t[0].toLowerCase():t[0],i=(r=o,S.keywords[r]);if(i){const[e,r]=i;if(k.addText(n),n="",l[o]=(l[o]||0)+1,l[o]<=7&&(O+=r),e.startsWith("_"))n+=t[0];else{const n=E.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0];e=S.keywordPatternRe.lastIndex,t=S.keywordPatternRe.exec(N)}var r;n+=N.substring(e),k.addText(n)}function h(){null!=S.subLanguage?function(){if(""===N)return;let e=null;if("string"==typeof S.subLanguage){if(!t[S.subLanguage])return void k.addText(N);e=d(S.subLanguage,N,!0,A[S.subLanguage]),A[S.subLanguage]=e._top}else e=u(N,S.subLanguage.length?S.subLanguage:null);S.relevance>0&&(O+=e.relevance),k.addSublanguage(e._emitter,e.language)}():c(),N=""}function g(e,t){let n=1;const r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}const r=E.classNameAliases[e[n]]||e[n],o=t[n];r?k.addKeyword(o,r):(N=o,c(),N=""),n++}}function p(e,t){return e.scope&&"string"==typeof e.scope&&k.openNode(E.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(k.addKeyword(N,E.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),N=""):e.beginScope._multi&&(g(e.beginScope,t),N="")),S=Object.create(e,{parent:{value:S}}),S}function m(e,t,n){let r=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(e.endRe,n);if(r){if(e["on:end"]){const n=new st(e);e["on:end"](t,n),n.isMatchIgnored&&(r=!1)}if(r){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return m(e.parent,t,n)}function b(e){return 0===S.matcher.regexIndex?(N+=e[0],1):(D=!0,0)}function v(e){const t=e[0],r=n.substring(e.index),o=m(S,e,r);if(!o)return gn;const i=S;S.endScope&&S.endScope._wrap?(h(),k.addKeyword(t,S.endScope._wrap)):S.endScope&&S.endScope._multi?(h(),g(S.endScope,e)):i.skip?N+=t:(i.returnEnd||i.excludeEnd||(N+=t),h(),i.excludeEnd&&(N=t));do{S.scope&&k.closeNode(),S.skip||S.subLanguage||(O+=S.relevance),S=S.parent}while(S!==o.parent);return o.starts&&p(o.starts,e),i.returnEnd?0:t.length}let _={};function y(t,i){const a=i&&i[0];if(N+=t,null==a)return h(),0;if("begin"===_.type&&"end"===i.type&&_.index===i.index&&""===a){if(N+=n.slice(i.index,i.index+1),!o){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=_.rule,t}return 1}if(_=i,"begin"===i.type)return function(e){const t=e[0],n=e.rule,r=new st(n),o=[n.__beforeBegin,n["on:begin"]];for(const n of o)if(n&&(n(e,r),r.isMatchIgnored))return b(t);return n.skip?N+=t:(n.excludeBegin&&(N+=t),h(),n.returnBegin||n.excludeBegin||(N=t)),p(n,e),n.returnBegin?0:t.length}(i);if("illegal"===i.type&&!r){const e=new Error('Illegal lexeme "'+a+'" for mode "'+(S.scope||"")+'"');throw e.mode=S,e}if("end"===i.type){const e=v(i);if(e!==gn)return e}if("illegal"===i.type&&""===a)return 1;if(T>1e5&&T>3*i.index)throw new Error("potential infinite loop, way more iterations than matches");return N+=a,a.length}const E=f(e);if(!E)throw tn(i.replace("{}",e)),new Error('Unknown language: "'+e+'"');const w=ln(E);let x="",S=a||w;const A={},k=new s.__emitter(s);!function(){const e=[];for(let t=S;t!==E;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>k.openNode(e)))}();let N="",O=0,C=0,T=0,D=!1;try{for(S.matcher.considerAll();;){T++,D?D=!1:S.matcher.considerAll(),S.matcher.lastIndex=C;const e=S.matcher.exec(n);if(!e)break;const t=y(n.substring(C,e.index),e);C=e.index+t}return y(n.substring(C)),k.closeAllNodes(),k.finalize(),x=k.toHTML(),{language:e,value:x,relevance:O,illegal:!1,_emitter:k,_top:S}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:un(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:C,context:n.slice(C-100,C+100),mode:t.mode,resultSoFar:x},_emitter:k};if(o)return{language:e,value:un(n),illegal:!1,relevance:0,errorRaised:t,_emitter:k,_top:S};throw t}}function u(e,n){n=n||s.languages||Object.keys(t);const r=function(e){const t={value:un(e),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),o=n.filter(f).filter(b).map((t=>d(t,e,!1)));o.unshift(r);const i=o.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(f(e.language).supersetOf===t.language)return 1;if(f(t.language).supersetOf===e.language)return-1}return 0})),[l,c]=i,u=l;return u.secondBest=c,u}function h(e){let t=null;const r=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=s.languageDetectRe.exec(t);if(n){const t=f(n[1]);return t||(nn(i.replace("{}",n[1])),nn("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>l(e)||f(e)))}(e);if(l(r))return;if(v("before:highlightElement",{el:e,language:r}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new dn("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const o=t.textContent,a=r?c(o,{language:r,ignoreIllegals:!0}):u(o);e.innerHTML=a.value,function(e,t,r){const o=t&&n[t]||r;e.classList.add("hljs"),e.classList.add(`language-${o}`)}(e,r,a.language),e.result={language:a.language,re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),v("after:highlightElement",{el:e,result:a,text:o})}let g=!1;function p(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(h):g=!0}function f(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function m(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{n[e.toLowerCase()]=t}))}function b(e){const t=f(e);return t&&!t.disableAutodetect}function v(e,t){const n=e;r.forEach((function(e){e[n]&&e[n](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){g&&p()}),!1),Object.assign(e,{highlight:c,highlightAuto:u,highlightAll:p,highlightElement:h,highlightBlock:function(e){return rn("10.7.0","highlightBlock will be removed entirely in v12.0"),rn("10.7.0","Please use highlightElement now."),h(e)},configure:function(e){s=hn(s,e)},initHighlighting:()=>{p(),rn("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){p(),rn("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,r){let i=null;try{i=r(e)}catch(e){if(tn("Language definition for '{}' could not be registered.".replace("{}",n)),!o)throw e;tn(e),i=a}i.name||(i.name=n),t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&m(i.aliases,{languageName:n})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]},listLanguages:function(){return Object.keys(t)},getLanguage:f,registerAliases:m,autoDetection:b,inherit:hn,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),r.push(e)}}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString="11.7.0",e.regex={concat:_t,lookahead:mt,either:yt,optional:vt,anyNumberOfTimes:bt};for(const e in Xt)"object"==typeof Xt[e]&&it.exports(Xt[e]);return Object.assign(e,Xt),e}({}),fn=pn;pn.HighlightJS=pn,pn.default=pn;var mn=fn;class bn{el;_dropArea;_dragArea;_dropSortable;_dragSortable;parentElement;_prevPosition;reusable;randomize;storedSourceBlocks;storedSourceBlockExplanations;blockOrder;hljsLanguage;initialized;constructor(e,t,n){this.el=document.createElement("div"),this.el.classList.add("hparsons-input"),this.parentElement=e,this.el.id="hparsonstool-"+this.parentElement.toolNumber+"-parsons-input";const r=document.createElement("div");r.innerText="Drag or click the blocks below to form your code:",r.classList.add("hparsons-tip"),this.el.append(r),this._dragArea=document.createElement("div"),this.el.appendChild(this._dragArea),this._dragArea.classList.add("drag-area");const o=document.createElement("div");o.innerText="Your code (click on a block to remove it):",o.classList.add("hparsons-tip"),this.el.append(o),this._dropArea=document.createElement("div"),this.el.appendChild(this._dropArea),this._dropArea.classList.add("drop-area"),this._prevPosition=-1,this.storedSourceBlocks=[],this.blockOrder=[],this.storedSourceBlockExplanations=null,this.reusable=t,this.randomize=n,this._dragSortable=null,this._dropSortable=null,this._initSortable(),this.initialized=!1}getText=e=>{let t="";if(this._dropArea.hasChildNodes()){let n=this._dropArea.firstChild;for(t+=this._getTextFromBlock(n);n.nextSibling;)n=n.nextSibling,t+=e?" ":"",t+=this._getTextFromBlock(n);return t}return t};getBlockIndices=()=>{const e=this._dropArea.querySelectorAll(".parsons-block");return Array.from(e).map((e=>parseInt(e.dataset.index||"-1")))};_getTextFromBlock=e=>{if("raw"==this.parentElement.language)return e.innerHTML;if(!e.lastChild||e.lastChild.nodeType!=Node.ELEMENT_NODE)return e.textContent||"";const t=e.lastChild.classList.contains("parsons-tooltip")&&e.lastChild.textContent?.length||0;return t>0?(e.textContent||"").slice(0,-t):e.textContent||""};shuffleArray(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}}setSourceBlocks=(e,t)=>{this.blockOrder=[];for(let t=0;t{for(;this._dragArea.firstChild;)this._dragArea.removeChild(this._dragArea.firstChild);for(;this._dropArea.firstChild;)this._dropArea.removeChild(this._dropArea.firstChild);for(let e=0;e{this._onBlockClicked(t,e)},this.storedSourceBlockExplanations&&this.storedSourceBlockExplanations[this.blockOrder[e]]){const n=document.createElement("div");n.innerText=this.storedSourceBlockExplanations[this.blockOrder[e]],n.classList.add("parsons-tooltip"),t.appendChild(n)}}};_onBlockClicked=(e,t)=>{if(e.parentElement==this._dragArea){let n;if(this.reusable){const t=e.cloneNode(!0);t.onclick=e=>this._onBlockClicked(t,e),this._dropArea.appendChild(t),n=this._getBlockPosition(t)}else this._dropArea.appendChild(e),n=this._getBlockPosition(e);const r={type:"input",action:et.InputAction.ADD,position:[-1,n],answer:this._getTextArray()};t.isTrusted&&this.parentElement.logEvent(r)}else{const t=this._getBlockPosition(e);this.reusable?this._dropArea.removeChild(e):this._dragArea.appendChild(e);const n={type:"input",action:et.InputAction.REMOVE,position:[t,-1],answer:this._getTextArray()};this.parentElement.logEvent(n)}};_initSortable=()=>{this.reusable?(this._dragSortable=new Pe(this._dragArea,{group:{name:"shared",pull:"clone",put:!1},sort:!1,direction:"horizontal",animation:150,draggable:".parsons-block",onClone:e=>{const t=e.clone;t.onclick=e=>this._onBlockClicked(t,e)}}),this._dropSortable=new Pe(this._dropArea,{group:"shared",direction:"horizontal",animation:150,draggable:".parsons-block",onAdd:e=>{const t={type:"input",action:et.InputAction.ADD,position:[-1,this._getBlockPosition(e.item)],answer:this._getTextArray()};this.parentElement.logEvent(t)},onStart:e=>{this._prevPosition=this._getBlockPosition(e.item)},onEnd:e=>{let t,n=et.InputAction.MOVE;const r=this._dropArea.getBoundingClientRect().top,o=this._dropArea.getBoundingClientRect().bottom;if(e.originalEvent.clientY>o||e.originalEvent.clientY{const t={type:"input",action:et.InputAction.ADD,position:[-1,this._getBlockPosition(e.item)],answer:this._getTextArray()};this.parentElement.logEvent(t)},onStart:e=>{this._prevPosition=this._getBlockPosition(e.item)},onEnd:e=>{let t=this._getBlockPosition(e.item);const n={type:"input",action:-1==t?et.InputAction.REMOVE:et.InputAction.MOVE,position:[this._prevPosition,t],answer:this._getTextArray()};this.parentElement.logEvent(n)}}))};updateTestStatus=e=>{this._dropArea.classList.contains(e)||(this._dropArea.classList.contains("Pass")?this._dropArea.classList.remove("Pass"):this._dropArea.classList.contains("Fail")?this._dropArea.classList.remove("Fail"):this._dropArea.classList.contains("Error")&&this._dropArea.classList.remove("Error"),this._dropArea.classList.add(e))};_getBlockPosition=e=>{let t=-1;const n=this._dropArea;if(n)for(t=0;t{let e=[];if(this._dropArea.hasChildNodes()){let t=this._dropArea.firstChild;for(e.push(this._getTextFromBlock(t));t.nextSibling;)t=t.nextSibling,e.push(this._getTextFromBlock(t))}return e};removeFormat=()=>{if(this._dropArea.hasChildNodes()){let e=this._dropArea.firstChild;for(e.style.removeProperty("background-color");e.nextSibling;)e=e.nextSibling,e.style.removeProperty("background-color")}};resetInput=()=>{if(this.reusable)for(;this._dropArea.firstChild;)this._dropArea.removeChild(this._dropArea.firstChild);else this._resetInput()};restoreAnswer(e){this.resetInput();const t=/^\s+$/;for(let n=0;nTn(e,t,n-1)))}mn.registerLanguage("javascript",(function(e){const t=e.regex,n=vn,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let o;">"===r&&(((e,{after:t})=>{const n="",k={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(A)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[b]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:m,CLASS_REFERENCE:_},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,u,h,g,{match:/\$\d+/},l,_,{className:"attr",begin:n+t.lookahead(":"),relevance:0},k,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[g,e.REGEXP_MODE,{className:"function",begin:A,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:m}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},y,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[b]},E,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},v,S,{match:/\$[(.]/}]}})),mn.registerLanguage("sql",(function(e){const t=e.regex,n=e.COMMENT("--","$"),r=["true","false","unknown"],o=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],a=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=i,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),c={begin:t.concat(/\b/,t.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:n}={}){const r=n;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e))}(l,{when:e=>e.length<3}),literal:r,type:o,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...a),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:l.concat(a),literal:r,type:o}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},c,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}})),mn.registerLanguage("java",(function(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+Tn("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),o={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},i={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},a={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Cn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Cn,i]}})),mn.registerLanguage("xml",(function(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=e.inherit(o,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[o,s,a,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[o,i,s,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}})),mn.registerLanguage("python",(function(e){const t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],o={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},i={className:"meta",begin:/^(>>>|\.\.\.) /},a={className:"subst",begin:/\{/,end:/\}/,keywords:o,illegal:/#/},s={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,i,s,a]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,i,s,a]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,a]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,a]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,u=`\\b|${r.join("|")}`,h={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\b(${c})[jJ](?=${u})`}]},g={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},p={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",i,h,l,e.HASH_COMMENT_MODE]}]};return a.contains=[l,h,i],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|->|\?)|=>/,contains:[i,h,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[p]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[h,p,l]}]}}));class Dn extends HTMLElement{root;_parsonsData;parsonsExplanation;hparsonsInput;inputType;static toolCount=0;toolNumber;temporaryInputEvent;language;hljsLanguage;codeBefore;codeAfter;constructor(){super(),Dn.toolCount+=1,this.toolNumber=Dn.toolCount,this.root=this;const e=!!this.getAttribute("reuse"),t=!!this.getAttribute("randomize");this.hparsonsInput=new bn(this,e,t),this._parsonsData=new Array,this.parsonsExplanation=null,this.inputType="parsons",this.language=this.getAttribute("language")||"none";let n=new Map(Object.entries({html:"xml",python:"python",javascript:"javascript",java:"java",sql:"sql"}));this.hljsLanguage=n.get(this.language),this.initInput(),this.temporaryInputEvent=null,this.codeBefore=null,this.codeAfter=null}set parsonsData(e){this._parsonsData=e,"parsons"==this.inputType&&this.hparsonsInput.setSourceBlocks(e,this.parsonsExplanation)}get parsonsData(){return this._parsonsData}logEvent=e=>{const t=new CustomEvent("micro-parsons",{bubbles:!0,detail:{...e}});this.dispatchEvent(t)};initInput(){this.inputType="parsons",this._parsonsData=new Array,this.parsonsExplanation=null;const e=null!=this.getAttribute("reuse"),t=null!=this.getAttribute("randomize");this.hparsonsInput=new bn(this,e,t),this.root.appendChild(this.hparsonsInput.el)}resetInput(){this.hparsonsInput.resetInput(),this.logEvent({type:"reset"})}restoreAnswer(e){this.hparsonsInput.restoreAnswer(e)}restoreAnswerByIndices(e){this.hparsonsInput.restoreAnswerByIndices(e)}getCurrentInput(e){return this.hparsonsInput.getText(e)}getParsonsTextArray(){return this.hparsonsInput._getTextArray()}getBlockIndices(){return this.hparsonsInput.getBlockIndices()}setCodeContext(e){if(e.before){let t;this.codeBefore=e.before,this.querySelector(".context.before")?t=this.querySelector(".context.before"):(t=document.createElement("pre"),t.className="context before",this.querySelector(".hparsons-input").insertBefore(t,this.querySelector(".drop-area"))),t.innerHTML=this.codeBefore,this.hljsLanguage&&(t.className="context before",t.classList.add(this.hljsLanguage),mn.highlightElement(t))}if(e.after){let t;this.codeAfter=e.after,this.querySelector(".context.after")?t=this.querySelector(".context.after"):(t=document.createElement("pre"),t.className="context after",this.querySelector(".hparsons-input").appendChild(t)),t.innerHTML=this.codeAfter,this.hljsLanguage&&(t.className="context after",t.classList.add(this.hljsLanguage),mn.highlightElement(t))}}}const Mn=e=>{let t;try{t=document.querySelector(e.selector)}catch{throw"micro-parsons: init: selector error"}if(null==t||"DIV"!=t.tagName)throw"micro-parsons: element not a div";const n=-1==["javascript","sql","java","html","python","raw"].indexOf(e.language||"")?"":`language='${e.language}'`,r=e.id?`id='${e.id}'`:"",o=``;t.innerHTML=o;const i=t.firstChild;i.parsonsExplanation=e.parsonsTooltips,i.parsonsData=e.parsonsBlocks,e.context&&i.setCodeContext(e.context)};customElements.define("micro-parsons",Dn)}}]); +//# sourceMappingURL=207.a2b404e695486dde.js.map \ No newline at end of file diff --git a/_static/207.a2b404e695486dde.js.LICENSE.txt b/_static/207.a2b404e695486dde.js.LICENSE.txt new file mode 100755 index 0000000..843b4fd --- /dev/null +++ b/_static/207.a2b404e695486dde.js.LICENSE.txt @@ -0,0 +1,6 @@ +/**! + * Sortable 1.14.0 + * @author RubaXa + * @author owenm + * @license MIT + */ diff --git a/_static/207.a2b404e695486dde.js.gz b/_static/207.a2b404e695486dde.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..f1a14e9f41311308d7ea659e207b814741a84bd7 GIT binary patch literal 29018 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\n * @author\towenm \n * @license MIT\n */\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e){if(\"undefined\"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var s=a(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i),l=a(/Edge/i),c=a(/firefox/i),d=a(/safari/i)&&!a(/chrome/i)&&!a(/android/i),u=a(/iP(ad|od|hone)/i),h=a(/chrome/i)&&a(/android/i),g={capture:!1,passive:!1};function p(e,t,n){e.addEventListener(t,n,!s&&g)}function f(e,t,n){e.removeEventListener(t,n,!s&&g)}function m(e,t){if(t){if(\">\"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function b(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function v(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(\">\"===t[0]?e.parentNode===n&&m(e,t):m(e,t))||r&&e===n)return e;if(e===n)break}while(e=b(e))}return null}var _,y=/\\s+/g;function E(e,t,n){if(e&&t)if(e.classList)e.classList[n?\"add\":\"remove\"](t);else{var r=(\" \"+e.className+\" \").replace(y,\" \").replace(\" \"+t+\" \",\" \");e.className=(r+(n?\" \"+t:\"\")).replace(y,\" \")}}function w(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,\"\"):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf(\"webkit\")||(t=\"-webkit-\"+t),r[t]=n+(\"string\"==typeof n?\"\":\"px\")}}function x(e,t){var n=\"\";if(\"string\"==typeof e)n=e;else do{var r=w(e,\"transform\");r&&\"none\"!==r&&(n=r+\" \"+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function S(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,i=r.length;if(n)for(;o=i:o<=i))return r;if(r===A())break;r=M(r,!1)}return!1}function O(e,t,n,r){for(var o=0,i=0,a=e.children;i2&&void 0!==arguments[2]?arguments[2]:{},o=r.evt,a=i(r,H);F.pluginEvent.bind(Re)(e,n,t({dragEl:Y,parentEl:K,ghostEl:G,rootEl:W,nextEl:q,lastDownEl:Z,cloneEl:V,cloneHidden:J,dragStarted:ue,putSortable:oe,activeSortable:Re.active,originalEvent:o,oldIndex:Q,oldDraggableIndex:te,newIndex:ee,newDraggableIndex:ne,hideGhostForTarget:De,unhideGhostForTarget:Me,cloneNowHidden:function(){J=!0},cloneNowShown:function(){J=!1},dispatchSortableEvent:function(e){U({sortable:n,name:e,originalEvent:o})}},a))};function U(e){!function(e){var n=e.sortable,r=e.rootEl,o=e.name,i=e.targetEl,a=e.cloneEl,c=e.toEl,d=e.fromEl,u=e.oldIndex,h=e.newIndex,g=e.oldDraggableIndex,p=e.newDraggableIndex,f=e.originalEvent,m=e.putSortable,b=e.extraEventProperties;if(n=n||r&&r[P]){var v,_=n.options,y=\"on\"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||s||l?(v=document.createEvent(\"Event\")).initEvent(o,!0,!0):v=new CustomEvent(o,{bubbles:!0,cancelable:!0}),v.to=c||r,v.from=d||r,v.item=i||r,v.clone=a,v.oldIndex=u,v.newIndex=h,v.oldDraggableIndex=g,v.newDraggableIndex=p,v.originalEvent=f,v.pullMode=m?m.lastPutMode:void 0;var E=t(t({},b),F.getEventProperties(o,n));for(var w in E)v[w]=E[w];r&&r.dispatchEvent(v),_[y]&&_[y].call(n,v)}}(t({putSortable:oe,cloneEl:V,targetEl:Y,rootEl:W,oldIndex:Q,oldDraggableIndex:te,newIndex:ee,newDraggableIndex:ne},e))}var Y,K,G,W,q,Z,V,J,Q,ee,te,ne,re,oe,ie,ae,se,le,ce,de,ue,he,ge,pe,fe,me=!1,be=!1,ve=[],_e=!1,ye=!1,Ee=[],we=!1,xe=[],Se=\"undefined\"!=typeof document,Ae=u,Ne=l||s?\"cssFloat\":\"float\",ke=Se&&!h&&!u&&\"draggable\"in document.createElement(\"div\"),Oe=function(){if(Se){if(s)return!1;var e=document.createElement(\"x\");return e.style.cssText=\"pointer-events:auto\",\"auto\"===e.style.pointerEvents}}(),Te=function(e,t){var n=w(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=O(e,0,t),i=O(e,1,t),a=o&&w(o),s=i&&w(i),l=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+N(o).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+N(i).width;if(\"flex\"===n.display)return\"column\"===n.flexDirection||\"column-reverse\"===n.flexDirection?\"vertical\":\"horizontal\";if(\"grid\"===n.display)return n.gridTemplateColumns.split(\" \").length<=1?\"vertical\":\"horizontal\";if(o&&a.float&&\"none\"!==a.float){var d=\"left\"===a.float?\"left\":\"right\";return!i||\"both\"!==s.clear&&s.clear!==d?\"horizontal\":\"vertical\"}return o&&(\"block\"===a.display||\"flex\"===a.display||\"table\"===a.display||\"grid\"===a.display||l>=r&&\"none\"===n[Ne]||i&&\"none\"===n[Ne]&&l+c>r)?\"vertical\":\"horizontal\"},Ce=function(e){function t(e,n){return function(r,o,i,a){var s=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==e&&(n||s))return!0;if(null==e||!1===e)return!1;if(n&&\"clone\"===e)return e;if(\"function\"==typeof e)return t(e(r,o,i,a),n)(r,o,i,a);var l=(n?r:o).options.group.name;return!0===e||\"string\"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var r={},o=e.group;o&&\"object\"==n(o)||(o={name:o}),r.name=o.name,r.checkPull=t(o.pull,!0),r.checkPut=t(o.put),r.revertClone=o.revertClone,e.group=r},De=function(){!Oe&&G&&w(G,\"display\",\"none\")},Me=function(){!Oe&&G&&w(G,\"display\",\"\")};Se&&document.addEventListener(\"click\",(function(e){if(be)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),be=!1,!1}),!0);var Ie=function(e){if(Y){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,i=e.clientY,ve.some((function(e){var t=e[P].options.emptyInsertThreshold;if(t&&!T(e)){var n=N(e),r=o>=n.left-t&&o<=n.right+t,s=i>=n.top-t&&i<=n.bottom+t;return r&&s?a=e:void 0}})),a);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[P]._onDragOver(n)}}var o,i,a},Be=function(e){Y&&Y.parentNode[P]._isOutsideThisEl(e.target)};function Re(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw\"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(e));this.el=e,this.options=t=o({},t),e[P]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?\">li\":\">*\",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Te(e,this.options)},ghostClass:\"sortable-ghost\",chosenClass:\"sortable-chosen\",dragClass:\"sortable-drag\",ignore:\"a, img\",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(\"Text\",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:\"data-id\",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:\"sortable-fallback\",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Re.supportPointer&&\"PointerEvent\"in window&&!d,emptyInsertThreshold:5};for(var r in F.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Ce(t),this)\"_\"===i.charAt(0)&&\"function\"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&ke,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?p(e,\"pointerdown\",this._onTapStart):(p(e,\"mousedown\",this._onTapStart),p(e,\"touchstart\",this._onTapStart)),this.nativeDraggable&&(p(e,\"dragover\",this),p(e,\"dragenter\",this)),ve.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),o(this,j())}function Le(e,t,n,r,o,i,a,c){var d,u,h=e[P],g=h.options.onMove;return!window.CustomEvent||s||l?(d=document.createEvent(\"Event\")).initEvent(\"move\",!0,!0):d=new CustomEvent(\"move\",{bubbles:!0,cancelable:!0}),d.to=t,d.from=e,d.dragged=n,d.draggedRect=r,d.related=o||t,d.relatedRect=i||N(t),d.willInsertAfter=c,d.originalEvent=a,e.dispatchEvent(d),g&&(u=g.call(h,d,a)),u}function Pe(e){e.draggable=!1}function je(){we=!1}function $e(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function ze(e){return setTimeout(e,0)}function Fe(e){return clearTimeout(e)}Re.prototype={constructor:Re,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(he=null)},_getDirection:function(e,t){return\"function\"==typeof this.options.direction?this.options.direction.call(this,e,t,Y):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&\"touch\"===e.pointerType&&e,s=(a||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=r.filter;if(function(e){xe.length=0;var t=e.getElementsByTagName(\"input\"),n=t.length;for(;n--;){var r=t[n];r.checked&&xe.push(r)}}(n),!Y&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||r.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!d||!s||\"SELECT\"!==s.tagName.toUpperCase())&&!((s=v(s,r.draggable,n,!1))&&s.animated||Z===s)){if(Q=C(s),te=C(s,r.draggable),\"function\"==typeof c){if(c.call(this,e,s,this))return U({sortable:t,rootEl:l,name:\"filter\",targetEl:s,toEl:n,fromEl:n}),X(\"filter\",t,{evt:e}),void(o&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(\",\").some((function(r){if(r=v(l,r.trim(),n,!1))return U({sortable:t,rootEl:r,name:\"filter\",targetEl:s,fromEl:n,toEl:n}),X(\"filter\",t,{evt:e}),!0}))))return void(o&&e.cancelable&&e.preventDefault());r.handle&&!v(l,r.handle,n,!1)||this._prepareDragStart(e,a,s)}}},_prepareDragStart:function(e,t,n){var r,o=this,i=o.el,a=o.options,d=i.ownerDocument;if(n&&!Y&&n.parentNode===i){var u=N(n);if(W=i,K=(Y=n).parentNode,q=Y.nextSibling,Z=n,re=a.group,Re.dragged=Y,ie={target:Y,clientX:(t||e).clientX,clientY:(t||e).clientY},ce=ie.clientX-u.left,de=ie.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,Y.style[\"will-change\"]=\"all\",r=function(){X(\"delayEnded\",o,{evt:e}),Re.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!c&&o.nativeDraggable&&(Y.draggable=!0),o._triggerDragStart(e,t),U({sortable:o,name:\"choose\",originalEvent:e}),E(Y,a.chosenClass,!0))},a.ignore.split(\",\").forEach((function(e){S(Y,e.trim(),Pe)})),p(d,\"dragover\",Ie),p(d,\"mousemove\",Ie),p(d,\"touchmove\",Ie),p(d,\"mouseup\",o._onDrop),p(d,\"touchend\",o._onDrop),p(d,\"touchcancel\",o._onDrop),c&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Y.draggable=!0),X(\"delayStart\",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(l||s))r();else{if(Re.eventCanceled)return void this._onDrop();p(d,\"mouseup\",o._disableDelayedDrag),p(d,\"touchend\",o._disableDelayedDrag),p(d,\"touchcancel\",o._disableDelayedDrag),p(d,\"mousemove\",o._delayedDragTouchMoveHandler),p(d,\"touchmove\",o._delayedDragTouchMoveHandler),a.supportPointer&&p(d,\"pointermove\",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Y&&Pe(Y),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;f(e,\"mouseup\",this._disableDelayedDrag),f(e,\"touchend\",this._disableDelayedDrag),f(e,\"touchcancel\",this._disableDelayedDrag),f(e,\"mousemove\",this._delayedDragTouchMoveHandler),f(e,\"touchmove\",this._delayedDragTouchMoveHandler),f(e,\"pointermove\",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||\"touch\"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?p(document,\"pointermove\",this._onTouchMove):p(document,t?\"touchmove\":\"mousemove\",this._onTouchMove):(p(Y,\"dragend\",this),p(W,\"dragstart\",this._onDragStart));try{document.selection?ze((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(me=!1,W&&Y){X(\"dragStarted\",this,{evt:t}),this.nativeDraggable&&p(document,\"dragover\",Be);var n=this.options;!e&&E(Y,n.dragClass,!1),E(Y,n.ghostClass,!0),Re.active=this,e&&this._appendGhost(),U({sortable:this,name:\"start\",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ae){this._lastX=ae.clientX,this._lastY=ae.clientY,De();for(var e=document.elementFromPoint(ae.clientX,ae.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ae.clientX,ae.clientY))!==t;)t=e;if(Y.parentNode[P]._isOutsideThisEl(e),t)do{if(t[P]){if(t[P]._onDragOver({clientX:ae.clientX,clientY:ae.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Me()}},_onTouchMove:function(e){if(ie){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,i=G&&x(G,!0),a=G&&i&&i.a,s=G&&i&&i.d,l=Ae&&fe&&D(fe),c=(o.clientX-ie.clientX+r.x)/(a||1)+(l?l[0]-Ee[0]:0)/(a||1),d=(o.clientY-ie.clientY+r.y)/(s||1)+(l?l[1]-Ee[1]:0)/(s||1);if(!Re.active&&!me){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))r.right+o||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+o}(e,i,this)&&!m.animated){if(m===Y)return H(!1);if(m&&a===e.target&&(s=m),s&&(r=N(s)),!1!==Le(W,a,Y,n,s,r,e,!!s))return F(),a.appendChild(Y),K=a,Z(),H(!0)}else if(m&&function(e,t,n){var r=N(O(n.el,0,n.options,!0)),o=10;return t?e.clientXd+c*i/2:lu-pe)return-ge}else if(l>d+c*(1-o)/2&&lu-c*i/2))return l>d+c/2?1:-1;return 0}(e,s,r,i,A?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,ye,he===s),0!==_){var B=C(Y);do{B-=_,x=K.children[B]}while(x&&(\"none\"===w(x,\"display\")||x===G))}if(0===_||x===s)return H(!1);he=s,ge=_;var L=s.nextElementSibling,j=!1,$=Le(W,a,Y,n,s,r,e,j=1===_);if(!1!==$)return 1!==$&&-1!==$||(j=1===$),we=!0,setTimeout(je,30),F(),j&&!L?a.appendChild(Y):s.parentNode.insertBefore(Y,j?L:s),M&&R(M,0,I-M.scrollTop),K=Y.parentNode,void 0===y||ye||(pe=Math.abs(y-N(s)[D])),Z(),H(!0)}if(a.contains(Y))return H(!1)}return!1}function z(l,c){X(l,p,t({evt:e,isOwner:u,axis:i?\"vertical\":\"horizontal\",revert:o,dragRect:n,targetRect:r,canSort:h,fromSortable:g,target:s,completed:H,onMove:function(t,r){return Le(W,a,Y,n,t,N(t),e,r)},changed:Z},c))}function F(){z(\"dragOverAnimationCapture\"),p.captureAnimationState(),p!==g&&g.captureAnimationState()}function H(t){return z(\"dragOverCompleted\",{insertion:t}),t&&(u?d._hideClone():d._showClone(p),p!==g&&(E(Y,oe?oe.options.ghostClass:d.options.ghostClass,!1),E(Y,l.ghostClass,!0)),oe!==p&&p!==Re.active?oe=p:p===Re.active&&oe&&(oe=null),g===p&&(p._ignoreWhileAnimating=s),p.animateAll((function(){z(\"dragOverAnimationComplete\"),p._ignoreWhileAnimating=null})),p!==g&&(g.animateAll(),g._ignoreWhileAnimating=null)),(s===Y&&!Y.animated||s===a&&!s.animated)&&(he=null),l.dragoverBubble||e.rootEl||s===document||(Y.parentNode[P]._isOutsideThisEl(e.target),!t&&Ie(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function Z(){ee=C(Y),ne=C(Y,l.draggable),U({sortable:p,name:\"change\",toEl:a,newIndex:ee,newDraggableIndex:ne,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){f(document,\"mousemove\",this._onTouchMove),f(document,\"touchmove\",this._onTouchMove),f(document,\"pointermove\",this._onTouchMove),f(document,\"dragover\",Ie),f(document,\"mousemove\",Ie),f(document,\"touchmove\",Ie)},_offUpEvents:function(){var e=this.el.ownerDocument;f(e,\"mouseup\",this._onDrop),f(e,\"touchend\",this._onDrop),f(e,\"pointerup\",this._onDrop),f(e,\"touchcancel\",this._onDrop),f(document,\"selectstart\",this)},_onDrop:function(e){var t=this.el,n=this.options;ee=C(Y),ne=C(Y,n.draggable),X(\"drop\",this,{evt:e}),K=Y&&Y.parentNode,ee=C(Y),ne=C(Y,n.draggable),Re.eventCanceled||(me=!1,ye=!1,_e=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Fe(this.cloneId),Fe(this._dragStartId),this.nativeDraggable&&(f(document,\"drop\",this),f(t,\"dragstart\",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),d&&w(document.body,\"user-select\",\"\"),w(Y,\"transform\",\"\"),e&&(ue&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),G&&G.parentNode&&G.parentNode.removeChild(G),(W===K||oe&&\"clone\"!==oe.lastPutMode)&&V&&V.parentNode&&V.parentNode.removeChild(V),Y&&(this.nativeDraggable&&f(Y,\"dragend\",this),Pe(Y),Y.style[\"will-change\"]=\"\",ue&&!me&&E(Y,oe?oe.options.ghostClass:this.options.ghostClass,!1),E(Y,this.options.chosenClass,!1),U({sortable:this,name:\"unchoose\",toEl:K,newIndex:null,newDraggableIndex:null,originalEvent:e}),W!==K?(ee>=0&&(U({rootEl:K,name:\"add\",toEl:K,fromEl:W,originalEvent:e}),U({sortable:this,name:\"remove\",toEl:K,originalEvent:e}),U({rootEl:K,name:\"sort\",toEl:K,fromEl:W,originalEvent:e}),U({sortable:this,name:\"sort\",toEl:K,originalEvent:e})),oe&&oe.save()):ee!==Q&&ee>=0&&(U({sortable:this,name:\"update\",toEl:K,originalEvent:e}),U({sortable:this,name:\"sort\",toEl:K,originalEvent:e})),Re.active&&(null!=ee&&-1!==ee||(ee=Q,ne=te),U({sortable:this,name:\"end\",toEl:K,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){X(\"nulling\",this),W=Y=K=G=q=V=Z=J=ie=ae=ue=ee=ne=Q=te=he=ge=oe=re=Re.dragged=Re.ghost=Re.clone=Re.active=null,xe.forEach((function(e){e.checked=!0})),xe.length=se=le=0},handleEvent:function(e){switch(e.type){case\"drop\":case\"dragend\":this._onDrop(e);break;case\"dragenter\":case\"dragover\":Y&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect=\"move\");e.cancelable&&e.preventDefault()}(e));break;case\"selectstart\":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,o=n.length,i=this.options;r/g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")}function st(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const lt=e=>!!e.scope||e.sublanguage&&e.language;class ct{constructor(e,t){this.buffer=\"\",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=at(e)}openNode(e){if(!lt(e))return;let t=\"\";t=e.sublanguage?`language-${e.language}`:((e,{prefix:t})=>{if(e.includes(\".\")){const n=e.split(\".\");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${\"_\".repeat(t+1)}`))].join(\" \")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){lt(e)&&(this.buffer+=\"\")}value(){return this.buffer}span(e){this.buffer+=``}}const dt=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class ut{constructor(){this.rootNode=dt(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=dt({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return\"string\"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){\"string\"!=typeof e&&e.children&&(e.children.every((e=>\"string\"==typeof e))?e.children=[e.children.join(\"\")]:e.children.forEach((e=>{ut._collapse(e)})))}}class ht extends ut{constructor(e){super(),this.options=e}addKeyword(e,t){\"\"!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){\"\"!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){return new ct(this,this.options).value()}finalize(){return!0}}function gt(e){return e?\"string\"==typeof e?e:e.source:null}function pt(e){return bt(\"(?=\",e,\")\")}function ft(e){return bt(\"(?:\",e,\")*\")}function mt(e){return bt(\"(?:\",e,\")?\")}function bt(...e){return e.map((e=>gt(e))).join(\"\")}function vt(...e){const t=function(e){const t=e[e.length-1];return\"object\"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return\"(\"+(t.capture?\"\":\"?:\")+e.map((e=>gt(e))).join(\"|\")+\")\"}function _t(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}const yt=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;function Et(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let r=gt(e),o=\"\";for(;r.length>0;){const e=yt.exec(r);if(!e){o+=r;break}o+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),\"\\\\\"===e[0][0]&&e[1]?o+=\"\\\\\"+String(Number(e[1])+t):(o+=e[0],\"(\"===e[0]&&n++)}return o})).map((e=>`(${e})`)).join(t)}const wt=\"[a-zA-Z]\\\\w*\",xt=\"[a-zA-Z_]\\\\w*\",St=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",At=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",Nt=\"\\\\b(0b[01]+)\",kt={begin:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},Ot={scope:\"string\",begin:\"'\",end:\"'\",illegal:\"\\\\n\",contains:[kt]},Tt={scope:\"string\",begin:'\"',end:'\"',illegal:\"\\\\n\",contains:[kt]},Ct=function(e,t,n={}){const r=st({scope:\"comment\",begin:e,end:t,contains:[]},n);r.contains.push({scope:\"doctag\",begin:\"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)\",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const o=vt(\"I\",\"a\",\"is\",\"so\",\"us\",\"to\",\"at\",\"if\",\"in\",\"it\",\"on\",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:bt(/[ ]+/,\"(\",o,/[.]?[:]?([.][ ]|[ ])/,\"){3}\")}),r},Dt=Ct(\"//\",\"$\"),Mt=Ct(\"/\\\\*\",\"\\\\*/\"),It=Ct(\"#\",\"$\"),Bt={scope:\"number\",begin:St,relevance:0},Rt={scope:\"number\",begin:At,relevance:0},Lt={scope:\"number\",begin:Nt,relevance:0},Pt={begin:/(?=\\/[^/\\n]*\\/)/,contains:[{scope:\"regexp\",begin:/\\//,end:/\\/[gimuy]*/,illegal:/\\n/,contains:[kt,{begin:/\\[/,end:/\\]/,relevance:0,contains:[kt]}]}]},jt={scope:\"title\",begin:wt,relevance:0},$t={scope:\"title\",begin:xt,relevance:0},zt={begin:\"\\\\.\\\\s*\"+xt,relevance:0};var Ft=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\\b\\B/,IDENT_RE:wt,UNDERSCORE_IDENT_RE:xt,NUMBER_RE:St,C_NUMBER_RE:At,BINARY_NUMBER_RE:Nt,RE_STARTERS_RE:\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",SHEBANG:(e={})=>{const t=/^#![ ]*\\//;return e.binary&&(e.begin=bt(t,/.*\\b/,e.binary,/\\b.*/)),st({scope:\"meta\",begin:t,end:/$/,relevance:0,\"on:begin\":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:kt,APOS_STRING_MODE:Ot,QUOTE_STRING_MODE:Tt,PHRASAL_WORDS_MODE:{begin:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},COMMENT:Ct,C_LINE_COMMENT_MODE:Dt,C_BLOCK_COMMENT_MODE:Mt,HASH_COMMENT_MODE:It,NUMBER_MODE:Bt,C_NUMBER_MODE:Rt,BINARY_NUMBER_MODE:Lt,REGEXP_MODE:Pt,TITLE_MODE:jt,UNDERSCORE_TITLE_MODE:$t,METHOD_GUARD:zt,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{\"on:begin\":(e,t)=>{t.data._beginMatch=e[1]},\"on:end\":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function Ht(e,t){\".\"===e.input[e.index-1]&&t.ignoreMatch()}function Xt(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function Ut(e,t){t&&e.beginKeywords&&(e.begin=\"\\\\b(\"+e.beginKeywords.split(\" \").join(\"|\")+\")(?!\\\\.)(?=\\\\b|\\\\s)\",e.__beforeBegin=Ht,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function Yt(e,t){Array.isArray(e.illegal)&&(e.illegal=vt(...e.illegal))}function Kt(e,t){if(e.match){if(e.begin||e.end)throw new Error(\"begin & end are not supported with match\");e.begin=e.match,delete e.match}}function Gt(e,t){void 0===e.relevance&&(e.relevance=1)}const Wt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error(\"beforeMatch cannot be used with starts\");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=bt(n.beforeMatch,pt(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},qt=[\"of\",\"and\",\"for\",\"in\",\"not\",\"or\",\"if\",\"then\",\"parent\",\"list\",\"value\"];function Zt(e,t,n=\"keyword\"){const r=Object.create(null);return\"string\"==typeof e?o(n,e.split(\" \")):Array.isArray(e)?o(n,e):Object.keys(e).forEach((function(n){Object.assign(r,Zt(e[n],t,n))})),r;function o(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((function(t){const n=t.split(\"|\");r[n[0]]=[e,Vt(n[0],n[1])]}))}}function Vt(e,t){return t?Number(t):function(e){return qt.includes(e.toLowerCase())}(e)?0:1}const Jt={},Qt=e=>{console.error(e)},en=(e,...t)=>{console.log(`WARN: ${e}`,...t)},tn=(e,t)=>{Jt[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Jt[`${e}/${t}`]=!0)},nn=new Error;function rn(e,t,{key:n}){let r=0;const o=e[n],i={},a={};for(let e=1;e<=t.length;e++)a[e+r]=o[e],i[e+r]=!0,r+=_t(t[e-1]);e[n]=a,e[n]._emit=i,e[n]._multi=!0}function on(e){!function(e){e.scope&&\"object\"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),\"string\"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),\"string\"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Qt(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\"),nn;if(\"object\"!=typeof e.beginScope||null===e.beginScope)throw Qt(\"beginScope must be object\"),nn;rn(e,e.begin,{key:\"beginScope\"}),e.begin=Et(e.begin,{joinWith:\"\"})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Qt(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\"),nn;if(\"object\"!=typeof e.endScope||null===e.endScope)throw Qt(\"endScope must be object\"),nn;rn(e,e.end,{key:\"endScope\"}),e.end=Et(e.end,{joinWith:\"\"})}}(e)}function an(e){function t(t,n){return new RegExp(gt(t),\"m\"+(e.case_insensitive?\"i\":\"\")+(e.unicodeRegex?\"u\":\"\")+(n?\"g\":\"\"))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=_t(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(Et(e,{joinWith:\"|\"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),\"begin\"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes(\"self\"))throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");return e.classNameAliases=st(e.classNameAliases||{}),function n(o,i){const a=o;if(o.isCompiled)return a;[Xt,Kt,on,Wt].forEach((e=>e(o,i))),e.compilerExtensions.forEach((e=>e(o,i))),o.__beforeBegin=null,[Ut,Yt,Gt].forEach((e=>e(o,i))),o.isCompiled=!0;let s=null;return\"object\"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),s=o.keywords.$pattern,delete o.keywords.$pattern),s=s||/\\w+/,o.keywords&&(o.keywords=Zt(o.keywords,e.case_insensitive)),a.keywordPatternRe=t(s,!0),i&&(o.begin||(o.begin=/\\B|\\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\\B|\\b/),o.end&&(a.endRe=t(a.end)),a.terminatorEnd=gt(a.end)||\"\",o.endsWithParent&&i.terminatorEnd&&(a.terminatorEnd+=(o.end?\"|\":\"\")+i.terminatorEnd)),o.illegal&&(a.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((function(e){return function(e){e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return st(e,{variants:null},t)})));if(e.cachedVariants)return e.cachedVariants;if(sn(e))return st(e,{starts:e.starts?st(e.starts):null});if(Object.isFrozen(e))return st(e);return e}(\"self\"===e?o:e)}))),o.contains.forEach((function(e){n(e,a)})),o.starts&&n(o.starts,i),a.matcher=function(e){const t=new r;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:\"begin\"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:\"end\"}),e.illegal&&t.addRule(e.illegal,{type:\"illegal\"}),t}(a),a}(e)}function sn(e){return!!e&&(e.endsWithParent||sn(e.starts))}class ln extends Error{constructor(e,t){super(e),this.name=\"HTMLInjectionError\",this.html=t}}const cn=at,dn=st,un=Symbol(\"nomatch\");var hn=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const i=\"Could not find the language '{}', did you forget to load/include a language module?\",a={disableAutodetect:!0,name:\"Plain text\",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\\blang(?:uage)?-([\\w-]+)\\b/i,classPrefix:\"hljs-\",cssSelector:\"pre code\",languages:null,__emitter:ht};function l(e){return s.noHighlightRe.test(e)}function c(e,t,n){let r=\"\",o=\"\";\"object\"==typeof t?(r=e,n=t.ignoreIllegals,o=t.language):(tn(\"10.7.0\",\"highlight(lang, code, ...args) has been deprecated.\"),tn(\"10.7.0\",\"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\"),o=e,r=t),void 0===n&&(n=!0);const i={code:r,language:o};v(\"before:highlight\",i);const a=i.result?i.result:d(i.language,i.code,n);return a.code=i.code,v(\"after:highlight\",a),a}function d(e,n,r,a){const l=Object.create(null);function c(){if(!S.keywords)return void N.addText(k);let e=0;S.keywordPatternRe.lastIndex=0;let t=S.keywordPatternRe.exec(k),n=\"\";for(;t;){n+=k.substring(e,t.index);const o=E.case_insensitive?t[0].toLowerCase():t[0],i=(r=o,S.keywords[r]);if(i){const[e,r]=i;if(N.addText(n),n=\"\",l[o]=(l[o]||0)+1,l[o]<=7&&(O+=r),e.startsWith(\"_\"))n+=t[0];else{const n=E.classNameAliases[e]||e;N.addKeyword(t[0],n)}}else n+=t[0];e=S.keywordPatternRe.lastIndex,t=S.keywordPatternRe.exec(k)}var r;n+=k.substring(e),N.addText(n)}function h(){null!=S.subLanguage?function(){if(\"\"===k)return;let e=null;if(\"string\"==typeof S.subLanguage){if(!t[S.subLanguage])return void N.addText(k);e=d(S.subLanguage,k,!0,A[S.subLanguage]),A[S.subLanguage]=e._top}else e=u(k,S.subLanguage.length?S.subLanguage:null);S.relevance>0&&(O+=e.relevance),N.addSublanguage(e._emitter,e.language)}():c(),k=\"\"}function g(e,t){let n=1;const r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}const r=E.classNameAliases[e[n]]||e[n],o=t[n];r?N.addKeyword(o,r):(k=o,c(),k=\"\"),n++}}function p(e,t){return e.scope&&\"string\"==typeof e.scope&&N.openNode(E.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(N.addKeyword(k,E.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),k=\"\"):e.beginScope._multi&&(g(e.beginScope,t),k=\"\")),S=Object.create(e,{parent:{value:S}}),S}function m(e,t,n){let r=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(e.endRe,n);if(r){if(e[\"on:end\"]){const n=new it(e);e[\"on:end\"](t,n),n.isMatchIgnored&&(r=!1)}if(r){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return m(e.parent,t,n)}function b(e){return 0===S.matcher.regexIndex?(k+=e[0],1):(D=!0,0)}function v(e){const t=e[0],r=n.substring(e.index),o=m(S,e,r);if(!o)return un;const i=S;S.endScope&&S.endScope._wrap?(h(),N.addKeyword(t,S.endScope._wrap)):S.endScope&&S.endScope._multi?(h(),g(S.endScope,e)):i.skip?k+=t:(i.returnEnd||i.excludeEnd||(k+=t),h(),i.excludeEnd&&(k=t));do{S.scope&&N.closeNode(),S.skip||S.subLanguage||(O+=S.relevance),S=S.parent}while(S!==o.parent);return o.starts&&p(o.starts,e),i.returnEnd?0:t.length}let _={};function y(t,i){const a=i&&i[0];if(k+=t,null==a)return h(),0;if(\"begin\"===_.type&&\"end\"===i.type&&_.index===i.index&&\"\"===a){if(k+=n.slice(i.index,i.index+1),!o){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=_.rule,t}return 1}if(_=i,\"begin\"===i.type)return function(e){const t=e[0],n=e.rule,r=new it(n),o=[n.__beforeBegin,n[\"on:begin\"]];for(const n of o)if(n&&(n(e,r),r.isMatchIgnored))return b(t);return n.skip?k+=t:(n.excludeBegin&&(k+=t),h(),n.returnBegin||n.excludeBegin||(k=t)),p(n,e),n.returnBegin?0:t.length}(i);if(\"illegal\"===i.type&&!r){const e=new Error('Illegal lexeme \"'+a+'\" for mode \"'+(S.scope||\"\")+'\"');throw e.mode=S,e}if(\"end\"===i.type){const e=v(i);if(e!==un)return e}if(\"illegal\"===i.type&&\"\"===a)return 1;if(C>1e5&&C>3*i.index){throw new Error(\"potential infinite loop, way more iterations than matches\")}return k+=a,a.length}const E=f(e);if(!E)throw Qt(i.replace(\"{}\",e)),new Error('Unknown language: \"'+e+'\"');const w=an(E);let x=\"\",S=a||w;const A={},N=new s.__emitter(s);!function(){const e=[];for(let t=S;t!==E;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>N.openNode(e)))}();let k=\"\",O=0,T=0,C=0,D=!1;try{for(S.matcher.considerAll();;){C++,D?D=!1:S.matcher.considerAll(),S.matcher.lastIndex=T;const e=S.matcher.exec(n);if(!e)break;const t=y(n.substring(T,e.index),e);T=e.index+t}return y(n.substring(T)),N.closeAllNodes(),N.finalize(),x=N.toHTML(),{language:e,value:x,relevance:O,illegal:!1,_emitter:N,_top:S}}catch(t){if(t.message&&t.message.includes(\"Illegal\"))return{language:e,value:cn(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:T,context:n.slice(T-100,T+100),mode:t.mode,resultSoFar:x},_emitter:N};if(o)return{language:e,value:cn(n),illegal:!1,relevance:0,errorRaised:t,_emitter:N,_top:S};throw t}}function u(e,n){n=n||s.languages||Object.keys(t);const r=function(e){const t={value:cn(e),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),o=n.filter(f).filter(b).map((t=>d(t,e,!1)));o.unshift(r);const i=o.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(f(e.language).supersetOf===t.language)return 1;if(f(t.language).supersetOf===e.language)return-1}return 0})),[l,c]=i,u=l;return u.secondBest=c,u}function h(e){let t=null;const r=function(e){let t=e.className+\" \";t+=e.parentNode?e.parentNode.className:\"\";const n=s.languageDetectRe.exec(t);if(n){const t=f(n[1]);return t||(en(i.replace(\"{}\",n[1])),en(\"Falling back to no-highlight mode for this block.\",e)),t?n[1]:\"no-highlight\"}return t.split(/\\s+/).find((e=>l(e)||f(e)))}(e);if(l(r))return;if(v(\"before:highlightElement\",{el:e,language:r}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\"),console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\"),console.warn(\"The element with unescaped HTML:\"),console.warn(e)),s.throwUnescapedHTML)){throw new ln(\"One of your code blocks includes unescaped HTML.\",e.innerHTML)}t=e;const o=t.textContent,a=r?c(o,{language:r,ignoreIllegals:!0}):u(o);e.innerHTML=a.value,function(e,t,r){const o=t&&n[t]||r;e.classList.add(\"hljs\"),e.classList.add(`language-${o}`)}(e,r,a.language),e.result={language:a.language,re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),v(\"after:highlightElement\",{el:e,result:a,text:o})}let g=!1;function p(){if(\"loading\"===document.readyState)return void(g=!0);document.querySelectorAll(s.cssSelector).forEach(h)}function f(e){return e=(e||\"\").toLowerCase(),t[e]||t[n[e]]}function m(e,{languageName:t}){\"string\"==typeof e&&(e=[e]),e.forEach((e=>{n[e.toLowerCase()]=t}))}function b(e){const t=f(e);return t&&!t.disableAutodetect}function v(e,t){const n=e;r.forEach((function(e){e[n]&&e[n](t)}))}\"undefined\"!=typeof window&&window.addEventListener&&window.addEventListener(\"DOMContentLoaded\",(function(){g&&p()}),!1),Object.assign(e,{highlight:c,highlightAuto:u,highlightAll:p,highlightElement:h,highlightBlock:function(e){return tn(\"10.7.0\",\"highlightBlock will be removed entirely in v12.0\"),tn(\"10.7.0\",\"Please use highlightElement now.\"),h(e)},configure:function(e){s=dn(s,e)},initHighlighting:()=>{p(),tn(\"10.6.0\",\"initHighlighting() deprecated. Use highlightAll() now.\")},initHighlightingOnLoad:function(){p(),tn(\"10.6.0\",\"initHighlightingOnLoad() deprecated. Use highlightAll() now.\")},registerLanguage:function(n,r){let i=null;try{i=r(e)}catch(e){if(Qt(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!o)throw e;Qt(e),i=a}i.name||(i.name=n),t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&m(i.aliases,{languageName:n})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]},listLanguages:function(){return Object.keys(t)},getLanguage:f,registerAliases:m,autoDetection:b,inherit:dn,addPlugin:function(e){!function(e){e[\"before:highlightBlock\"]&&!e[\"before:highlightElement\"]&&(e[\"before:highlightElement\"]=t=>{e[\"before:highlightBlock\"](Object.assign({block:t.el},t))}),e[\"after:highlightBlock\"]&&!e[\"after:highlightElement\"]&&(e[\"after:highlightElement\"]=t=>{e[\"after:highlightBlock\"](Object.assign({block:t.el},t))})}(e),r.push(e)}}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=\"11.7.0\",e.regex={concat:bt,lookahead:pt,either:vt,optional:mt,anyNumberOfTimes:ft};for(const e in Ft)\"object\"==typeof Ft[e]&&rt.exports(Ft[e]);return Object.assign(e,Ft),e}({}),gn=hn;hn.HighlightJS=hn,hn.default=hn;var pn=gn;class fn{el;_dropArea;_dragArea;_dropSortable;_dragSortable;parentElement;_prevPosition;reusable;randomize;storedSourceBlocks;storedSourceBlockExplanations;blockOrder;hljsLanguage;initialized;constructor(e,t,n){this.el=document.createElement(\"div\"),this.el.classList.add(\"hparsons-input\"),this.parentElement=e,this.el.id=\"hparsonstool-\"+this.parentElement.toolNumber+\"-parsons-input\";const r=document.createElement(\"div\");r.innerText=\"Drag or click the blocks below to form your code:\",r.classList.add(\"hparsons-tip\"),this.el.append(r),this._dragArea=document.createElement(\"div\"),this.el.appendChild(this._dragArea),this._dragArea.classList.add(\"drag-area\");const o=document.createElement(\"div\");o.innerText=\"Your code (click on a block to remove it):\",o.classList.add(\"hparsons-tip\"),this.el.append(o),this._dropArea=document.createElement(\"div\"),this.el.appendChild(this._dropArea),this._dropArea.classList.add(\"drop-area\"),this._prevPosition=-1,this.storedSourceBlocks=[],this.blockOrder=[],this.storedSourceBlockExplanations=null,this.reusable=t,this.randomize=n,this._dragSortable=null,this._dropSortable=null,this._initSortable(),this.initialized=!1}getText=e=>{let t=\"\";if(this._dropArea.hasChildNodes()){let n=this._dropArea.firstChild;for(t+=this._getTextFromBlock(n);n.nextSibling;)n=n.nextSibling,t+=e?\" \":\"\",t+=this._getTextFromBlock(n);return t}return t};getBlockIndices=()=>{const e=this._dropArea.querySelectorAll(\".parsons-block\");return Array.from(e).map((e=>parseInt(e.dataset.index||\"-1\")))};_getTextFromBlock=e=>{if(\"raw\"==this.parentElement.language)return e.innerHTML;if(!e.lastChild||e.lastChild.nodeType!=Node.ELEMENT_NODE)return e.textContent||\"\";const t=e.lastChild.classList.contains(\"parsons-tooltip\")&&e.lastChild.textContent?.length||0;return t>0?(e.textContent||\"\").slice(0,-t):e.textContent||\"\"};shuffleArray(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}}setSourceBlocks=(e,t)=>{this.blockOrder=[];for(let t=0;t{for(;this._dragArea.firstChild;)this._dragArea.removeChild(this._dragArea.firstChild);for(;this._dropArea.firstChild;)this._dropArea.removeChild(this._dropArea.firstChild);for(let e=0;e{this._onBlockClicked(t,e)},this.storedSourceBlockExplanations&&this.storedSourceBlockExplanations[this.blockOrder[e]]){const n=document.createElement(\"div\");n.innerText=this.storedSourceBlockExplanations[this.blockOrder[e]],n.classList.add(\"parsons-tooltip\"),t.appendChild(n)}}};_onBlockClicked=(e,t)=>{if(e.parentElement==this._dragArea){let n;if(this.reusable){const t=e.cloneNode(!0);t.onclick=e=>this._onBlockClicked(t,e),this._dropArea.appendChild(t),n=this._getBlockPosition(t)}else this._dropArea.appendChild(e),n=this._getBlockPosition(e);const r={type:\"input\",action:Je.InputAction.ADD,position:[-1,n],answer:this._getTextArray()};t.isTrusted&&this.parentElement.logEvent(r)}else{const t=this._getBlockPosition(e);this.reusable?this._dropArea.removeChild(e):this._dragArea.appendChild(e);const n={type:\"input\",action:Je.InputAction.REMOVE,position:[t,-1],answer:this._getTextArray()};this.parentElement.logEvent(n)}};_initSortable=()=>{this.reusable?(this._dragSortable=new Re(this._dragArea,{group:{name:\"shared\",pull:\"clone\",put:!1},sort:!1,direction:\"horizontal\",animation:150,draggable:\".parsons-block\",onClone:e=>{const t=e.clone;t.onclick=e=>this._onBlockClicked(t,e)}}),this._dropSortable=new Re(this._dropArea,{group:\"shared\",direction:\"horizontal\",animation:150,draggable:\".parsons-block\",onAdd:e=>{const t={type:\"input\",action:Je.InputAction.ADD,position:[-1,this._getBlockPosition(e.item)],answer:this._getTextArray()};this.parentElement.logEvent(t)},onStart:e=>{this._prevPosition=this._getBlockPosition(e.item)},onEnd:e=>{let t,n=Je.InputAction.MOVE;const r=this._dropArea.getBoundingClientRect().top,o=this._dropArea.getBoundingClientRect().bottom;if(e.originalEvent.clientY>o||e.originalEvent.clientY{const t={type:\"input\",action:Je.InputAction.ADD,position:[-1,this._getBlockPosition(e.item)],answer:this._getTextArray()};this.parentElement.logEvent(t)},onStart:e=>{this._prevPosition=this._getBlockPosition(e.item)},onEnd:e=>{let t=this._getBlockPosition(e.item);const n={type:\"input\",action:-1==t?Je.InputAction.REMOVE:Je.InputAction.MOVE,position:[this._prevPosition,t],answer:this._getTextArray()};this.parentElement.logEvent(n)}}))};updateTestStatus=e=>{this._dropArea.classList.contains(e)||(this._dropArea.classList.contains(\"Pass\")?this._dropArea.classList.remove(\"Pass\"):this._dropArea.classList.contains(\"Fail\")?this._dropArea.classList.remove(\"Fail\"):this._dropArea.classList.contains(\"Error\")&&this._dropArea.classList.remove(\"Error\"),this._dropArea.classList.add(e))};_getBlockPosition=e=>{let t=-1;const n=this._dropArea;if(n)for(t=0;t{let e=[];if(this._dropArea.hasChildNodes()){let t=this._dropArea.firstChild;for(e.push(this._getTextFromBlock(t));t.nextSibling;)t=t.nextSibling,e.push(this._getTextFromBlock(t))}return e};removeFormat=()=>{if(this._dropArea.hasChildNodes()){let e=this._dropArea.firstChild;for(e.style.removeProperty(\"background-color\");e.nextSibling;)e=e.nextSibling,e.style.removeProperty(\"background-color\")}};resetInput=()=>{if(this.reusable)for(;this._dropArea.firstChild;)this._dropArea.removeChild(this._dropArea.firstChild);else this._resetInput()};restoreAnswer(e){this.resetInput();const t=/^\\s+$/;for(let n=0;n\",o=\"\",i={begin:/<[A-Za-z0-9\\\\._:-]+/,end:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if(\"<\"===r||\",\"===r)return void t.ignoreMatch();let o;\">\"===r&&(((e,{after:t})=>{const n=\"\",O={match:[/const|var|let/,/\\s+/,n,/\\s*/,/=\\s*/,/(async\\s*)?/,t.lookahead(k)],keywords:\"async\",className:{1:\"keyword\",3:\"title.function\"},contains:[_]};return{name:\"Javascript\",aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],keywords:a,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:E},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:\"shebang\",binary:\"node\",relevance:5}),{label:\"use_strict\",className:\"meta\",relevance:10,begin:/^\\s*['\"]use (strict|asm)['\"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,g,p,f,{match:/\\$\\d+/},d,E,{className:\"attr\",begin:n+t.lookahead(\":\"),relevance:0},O,{begin:\"(\"+e.RE_STARTERS_RE+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",keywords:\"return throw case\",relevance:0,contains:[f,e.REGEXP_MODE,{className:\"function\",begin:k,returnBegin:!0,end:\"\\\\s*=>\",contains:[{className:\"params\",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:v}]}]},{begin:/,/,relevance:0},{match:/\\s+/,relevance:0},{variants:[{begin:r,end:o},{match:/<[A-Za-z0-9\\\\._:-]+\\s*\\/>/},{begin:i.begin,\"on:begin\":i.isTrulyOpeningTag,end:i.end}],subLanguage:\"xml\",contains:[{begin:i.begin,end:i.end,skip:!0,contains:[\"self\"]}]}]},w,{beginKeywords:\"while if switch catch for\"},{begin:\"\\\\b(?!function)\"+e.UNDERSCORE_IDENT_RE+\"\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)\\\\s*\\\\{\",returnBegin:!0,label:\"func.def\",contains:[_,e.inherit(e.TITLE_MODE,{begin:n,className:\"title.function\"})]},{match:/\\.\\.\\./,relevance:0},A,{match:\"\\\\$\"+n,relevance:0},{match:[/\\bconstructor(?=\\s*\\()/],className:{1:\"title.function\"},contains:[_]},x,{relevance:0,match:/\\b[A-Z][A-Z_0-9]+\\b/,className:\"variable.constant\"},y,N,{match:/\\$[(.]/}]}};var An=function(e){const t=e.regex,n=/[\\p{XID_Start}_]\\p{XID_Continue}*/u,r=[\"and\",\"as\",\"assert\",\"async\",\"await\",\"break\",\"case\",\"class\",\"continue\",\"def\",\"del\",\"elif\",\"else\",\"except\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\"is\",\"lambda\",\"match\",\"nonlocal|10\",\"not\",\"or\",\"pass\",\"raise\",\"return\",\"try\",\"while\",\"with\",\"yield\"],o={$pattern:/[A-Za-z]\\w+|__\\w+__/,keyword:r,built_in:[\"__import__\",\"abs\",\"all\",\"any\",\"ascii\",\"bin\",\"bool\",\"breakpoint\",\"bytearray\",\"bytes\",\"callable\",\"chr\",\"classmethod\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"exec\",\"filter\",\"float\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"hex\",\"id\",\"input\",\"int\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"list\",\"locals\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"range\",\"repr\",\"reversed\",\"round\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"vars\",\"zip\"],literal:[\"__debug__\",\"Ellipsis\",\"False\",\"None\",\"NotImplemented\",\"True\"],type:[\"Any\",\"Callable\",\"Coroutine\",\"Dict\",\"List\",\"Literal\",\"Generic\",\"Optional\",\"Sequence\",\"Set\",\"Tuple\",\"Type\",\"Union\"]},i={className:\"meta\",begin:/^(>>>|\\.\\.\\.) /},a={className:\"subst\",begin:/\\{/,end:/\\}/,keywords:o,illegal:/#/},s={begin:/\\{\\{/,relevance:0},l={className:\"string\",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,end:/\"\"\"/,contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,i,s,a]},{begin:/([fF][rR]|[rR][fF]|[fF])\"\"\"/,end:/\"\"\"/,contains:[e.BACKSLASH_ESCAPE,i,s,a]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])\"/,end:/\"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])\"/,end:/\"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,a]},{begin:/([fF][rR]|[rR][fF]|[fF])\"/,end:/\"/,contains:[e.BACKSLASH_ESCAPE,s,a]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c=\"[0-9](_?[0-9])*\",d=`(\\\\b(${c}))?\\\\.(${c})|\\\\b(${c})\\\\.`,u=`\\\\b|${r.join(\"|\")}`,h={className:\"number\",relevance:0,variants:[{begin:`(\\\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\\\b(${c})[jJ](?=${u})`}]},g={className:\"comment\",begin:t.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\\b\\B/,endsWithParent:!0}]},p={className:\"params\",variants:[{className:\"\",begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:[\"self\",i,h,l,e.HASH_COMMENT_MODE]}]};return a.contains=[l,h,i],{name:\"Python\",aliases:[\"py\",\"gyp\",\"ipython\"],unicodeRegex:!0,keywords:o,illegal:/(<\\/|->|\\?)|=>/,contains:[i,h,{begin:/\\bself\\b/},{beginKeywords:\"if\",relevance:0},l,g,e.HASH_COMMENT_MODE,{match:[/\\bdef/,/\\s+/,n],scope:{1:\"keyword\",3:\"title.function\"},contains:[p]},{variants:[{match:[/\\bclass/,/\\s+/,n,/\\s*/,/\\(\\s*/,n,/\\s*\\)/]},{match:[/\\bclass/,/\\s+/,n]}],scope:{1:\"keyword\",3:\"title.class\",6:\"title.class.inherited\"}},{className:\"meta\",begin:/^[\\t ]*@/,end:/(?=#)|$/,contains:[h,p,l]}]}},Nn=\"[0-9](_*[0-9])*\",kn=`\\\\.(${Nn})`,On=\"[0-9a-fA-F](_*[0-9a-fA-F])*\",Tn={className:\"number\",variants:[{begin:`(\\\\b(${Nn})((${kn})|\\\\.)?|(${kn}))[eE][+-]?(${Nn})[fFdD]?\\\\b`},{begin:`\\\\b(${Nn})((${kn})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)`},{begin:`(${kn})[fFdD]?\\\\b`},{begin:`\\\\b(${Nn})[fFdD]\\\\b`},{begin:`\\\\b0[xX]((${On})\\\\.?|(${On})?\\\\.(${On}))[pP][+-]?(${Nn})[fFdD]?\\\\b`},{begin:\"\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b\"},{begin:`\\\\b0[xX](${On})[lL]?\\\\b`},{begin:\"\\\\b0(_*[0-7])*[lL]?\\\\b\"},{begin:\"\\\\b0[bB][01](_*[01])*[lL]?\\\\b\"}],relevance:0};function Cn(e,t,n){return-1===n?\"\":e.replace(t,(r=>Cn(e,t,n-1)))}var Dn=function(e){const t=e.regex,n=\"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*\",r=n+Cn(\"(?:<\"+n+\"~~~(?:\\\\s*,\\\\s*\"+n+\"~~~)*>)?\",/~~~/g,2),o={keyword:[\"synchronized\",\"abstract\",\"private\",\"var\",\"static\",\"if\",\"const \",\"for\",\"while\",\"strictfp\",\"finally\",\"protected\",\"import\",\"native\",\"final\",\"void\",\"enum\",\"else\",\"break\",\"transient\",\"catch\",\"instanceof\",\"volatile\",\"case\",\"assert\",\"package\",\"default\",\"public\",\"try\",\"switch\",\"continue\",\"throws\",\"protected\",\"public\",\"private\",\"module\",\"requires\",\"exports\",\"do\",\"sealed\",\"yield\",\"permits\"],literal:[\"false\",\"true\",\"null\"],type:[\"char\",\"boolean\",\"long\",\"float\",\"int\",\"byte\",\"short\",\"double\"],built_in:[\"super\",\"this\"]},i={className:\"meta\",begin:\"@\"+n,contains:[{begin:/\\(/,end:/\\)/,contains:[\"self\"]}]},a={className:\"params\",begin:/\\(/,end:/\\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:\"Java\",aliases:[\"jsp\"],keywords:o,illegal:/<\\/|#/,contains:[e.COMMENT(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,contains:[{begin:/\\w+@/,relevance:0},{className:\"doctag\",begin:\"@[A-Za-z]+\"}]}),{begin:/import java\\.[a-z]+\\./,keywords:\"import\",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/\"\"\"/,end:/\"\"\"/,className:\"string\",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\\b(?:class|interface|enum|extends|implements|new)/,/\\s+/,n],className:{1:\"keyword\",3:\"title.class\"}},{match:/non-sealed/,scope:\"keyword\"},{begin:[t.concat(/(?!else)/,n),/\\s+/,n,/\\s+/,/=(?!=)/],className:{1:\"type\",3:\"variable\",5:\"operator\"}},{begin:[/record/,/\\s+/,n],className:{1:\"keyword\",3:\"title.class\"},contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:\"new throw return else\",relevance:0},{begin:[\"(?:\"+r+\"\\\\s+)\",e.UNDERSCORE_IDENT_RE,/\\s*(?=\\()/],className:{2:\"title.function\"},keywords:o,contains:[{className:\"params\",begin:/\\(/,end:/\\)/,keywords:o,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Tn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Tn,i]}};var Mn=function(e){const t=e.regex,n=e.COMMENT(\"--\",\"$\"),r=[\"true\",\"false\",\"unknown\"],o=[\"bigint\",\"binary\",\"blob\",\"boolean\",\"char\",\"character\",\"clob\",\"date\",\"dec\",\"decfloat\",\"decimal\",\"float\",\"int\",\"integer\",\"interval\",\"nchar\",\"nclob\",\"national\",\"numeric\",\"real\",\"row\",\"smallint\",\"time\",\"timestamp\",\"varchar\",\"varying\",\"varbinary\"],i=[\"abs\",\"acos\",\"array_agg\",\"asin\",\"atan\",\"avg\",\"cast\",\"ceil\",\"ceiling\",\"coalesce\",\"corr\",\"cos\",\"cosh\",\"count\",\"covar_pop\",\"covar_samp\",\"cume_dist\",\"dense_rank\",\"deref\",\"element\",\"exp\",\"extract\",\"first_value\",\"floor\",\"json_array\",\"json_arrayagg\",\"json_exists\",\"json_object\",\"json_objectagg\",\"json_query\",\"json_table\",\"json_table_primitive\",\"json_value\",\"lag\",\"last_value\",\"lead\",\"listagg\",\"ln\",\"log\",\"log10\",\"lower\",\"max\",\"min\",\"mod\",\"nth_value\",\"ntile\",\"nullif\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"position\",\"position_regex\",\"power\",\"rank\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"row_number\",\"sin\",\"sinh\",\"sqrt\",\"stddev_pop\",\"stddev_samp\",\"substring\",\"substring_regex\",\"sum\",\"tan\",\"tanh\",\"translate\",\"translate_regex\",\"treat\",\"trim\",\"trim_array\",\"unnest\",\"upper\",\"value_of\",\"var_pop\",\"var_samp\",\"width_bucket\"],a=[\"create table\",\"insert into\",\"primary key\",\"foreign key\",\"not null\",\"alter table\",\"add constraint\",\"grouping sets\",\"on overflow\",\"character set\",\"respect nulls\",\"ignore nulls\",\"nulls first\",\"nulls last\",\"depth first\",\"breadth first\"],s=i,l=[\"abs\",\"acos\",\"all\",\"allocate\",\"alter\",\"and\",\"any\",\"are\",\"array\",\"array_agg\",\"array_max_cardinality\",\"as\",\"asensitive\",\"asin\",\"asymmetric\",\"at\",\"atan\",\"atomic\",\"authorization\",\"avg\",\"begin\",\"begin_frame\",\"begin_partition\",\"between\",\"bigint\",\"binary\",\"blob\",\"boolean\",\"both\",\"by\",\"call\",\"called\",\"cardinality\",\"cascaded\",\"case\",\"cast\",\"ceil\",\"ceiling\",\"char\",\"char_length\",\"character\",\"character_length\",\"check\",\"classifier\",\"clob\",\"close\",\"coalesce\",\"collate\",\"collect\",\"column\",\"commit\",\"condition\",\"connect\",\"constraint\",\"contains\",\"convert\",\"copy\",\"corr\",\"corresponding\",\"cos\",\"cosh\",\"count\",\"covar_pop\",\"covar_samp\",\"create\",\"cross\",\"cube\",\"cume_dist\",\"current\",\"current_catalog\",\"current_date\",\"current_default_transform_group\",\"current_path\",\"current_role\",\"current_row\",\"current_schema\",\"current_time\",\"current_timestamp\",\"current_path\",\"current_role\",\"current_transform_group_for_type\",\"current_user\",\"cursor\",\"cycle\",\"date\",\"day\",\"deallocate\",\"dec\",\"decimal\",\"decfloat\",\"declare\",\"default\",\"define\",\"delete\",\"dense_rank\",\"deref\",\"describe\",\"deterministic\",\"disconnect\",\"distinct\",\"double\",\"drop\",\"dynamic\",\"each\",\"element\",\"else\",\"empty\",\"end\",\"end_frame\",\"end_partition\",\"end-exec\",\"equals\",\"escape\",\"every\",\"except\",\"exec\",\"execute\",\"exists\",\"exp\",\"external\",\"extract\",\"false\",\"fetch\",\"filter\",\"first_value\",\"float\",\"floor\",\"for\",\"foreign\",\"frame_row\",\"free\",\"from\",\"full\",\"function\",\"fusion\",\"get\",\"global\",\"grant\",\"group\",\"grouping\",\"groups\",\"having\",\"hold\",\"hour\",\"identity\",\"in\",\"indicator\",\"initial\",\"inner\",\"inout\",\"insensitive\",\"insert\",\"int\",\"integer\",\"intersect\",\"intersection\",\"interval\",\"into\",\"is\",\"join\",\"json_array\",\"json_arrayagg\",\"json_exists\",\"json_object\",\"json_objectagg\",\"json_query\",\"json_table\",\"json_table_primitive\",\"json_value\",\"lag\",\"language\",\"large\",\"last_value\",\"lateral\",\"lead\",\"leading\",\"left\",\"like\",\"like_regex\",\"listagg\",\"ln\",\"local\",\"localtime\",\"localtimestamp\",\"log\",\"log10\",\"lower\",\"match\",\"match_number\",\"match_recognize\",\"matches\",\"max\",\"member\",\"merge\",\"method\",\"min\",\"minute\",\"mod\",\"modifies\",\"module\",\"month\",\"multiset\",\"national\",\"natural\",\"nchar\",\"nclob\",\"new\",\"no\",\"none\",\"normalize\",\"not\",\"nth_value\",\"ntile\",\"null\",\"nullif\",\"numeric\",\"octet_length\",\"occurrences_regex\",\"of\",\"offset\",\"old\",\"omit\",\"on\",\"one\",\"only\",\"open\",\"or\",\"order\",\"out\",\"outer\",\"over\",\"overlaps\",\"overlay\",\"parameter\",\"partition\",\"pattern\",\"per\",\"percent\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"period\",\"portion\",\"position\",\"position_regex\",\"power\",\"precedes\",\"precision\",\"prepare\",\"primary\",\"procedure\",\"ptf\",\"range\",\"rank\",\"reads\",\"real\",\"recursive\",\"ref\",\"references\",\"referencing\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"release\",\"result\",\"return\",\"returns\",\"revoke\",\"right\",\"rollback\",\"rollup\",\"row\",\"row_number\",\"rows\",\"running\",\"savepoint\",\"scope\",\"scroll\",\"search\",\"second\",\"seek\",\"select\",\"sensitive\",\"session_user\",\"set\",\"show\",\"similar\",\"sin\",\"sinh\",\"skip\",\"smallint\",\"some\",\"specific\",\"specifictype\",\"sql\",\"sqlexception\",\"sqlstate\",\"sqlwarning\",\"sqrt\",\"start\",\"static\",\"stddev_pop\",\"stddev_samp\",\"submultiset\",\"subset\",\"substring\",\"substring_regex\",\"succeeds\",\"sum\",\"symmetric\",\"system\",\"system_time\",\"system_user\",\"table\",\"tablesample\",\"tan\",\"tanh\",\"then\",\"time\",\"timestamp\",\"timezone_hour\",\"timezone_minute\",\"to\",\"trailing\",\"translate\",\"translate_regex\",\"translation\",\"treat\",\"trigger\",\"trim\",\"trim_array\",\"true\",\"truncate\",\"uescape\",\"union\",\"unique\",\"unknown\",\"unnest\",\"update\",\"upper\",\"user\",\"using\",\"value\",\"values\",\"value_of\",\"var_pop\",\"var_samp\",\"varbinary\",\"varchar\",\"varying\",\"versioning\",\"when\",\"whenever\",\"where\",\"width_bucket\",\"window\",\"with\",\"within\",\"without\",\"year\",\"add\",\"asc\",\"collation\",\"desc\",\"final\",\"first\",\"last\",\"view\"].filter((e=>!i.includes(e))),c={begin:t.concat(/\\b/,t.either(...s),/\\s*\\(/),relevance:0,keywords:{built_in:s}};return{name:\"SQL\",case_insensitive:!0,illegal:/[{}]|<\\//,keywords:{$pattern:/\\b[\\w\\.]+/,keyword:function(e,{exceptions:t,when:n}={}){const r=n;return t=t||[],e.map((e=>e.match(/\\|\\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e))}(l,{when:e=>e.length<3}),literal:r,type:o,built_in:[\"current_catalog\",\"current_date\",\"current_default_transform_group\",\"current_path\",\"current_role\",\"current_schema\",\"current_transform_group_for_type\",\"current_user\",\"session_user\",\"system_time\",\"system_user\",\"current_time\",\"localtime\",\"current_timestamp\",\"localtimestamp\"]},contains:[{begin:t.either(...a),relevance:0,keywords:{$pattern:/[\\w\\.]+/,keyword:l.concat(a),literal:r,type:o}},{className:\"type\",begin:t.either(\"double precision\",\"large object\",\"with timezone\",\"without timezone\")},c,{className:\"variable\",begin:/@[a-z0-9]+/},{className:\"string\",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/\"/,end:/\"/,contains:[{begin:/\"\"/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:\"operator\",begin:/[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}};var In=function(e){const t=e.regex,n=t.concat(/[\\p{L}_]/u,t.optional(/[\\p{L}0-9_.-]*:/u),/[\\p{L}0-9_.-]*/u),r={className:\"symbol\",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\\s/,contains:[{className:\"keyword\",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\\n/}]},i=e.inherit(o,{begin:/\\(/,end:/\\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:\"string\"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:\"string\"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:\"HTML, XML\",aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:\"meta\",begin://,relevance:10,contains:[o,s,a,i,{begin:/\\[/,end:/\\]/,contains:[{className:\"meta\",begin://,contains:[o,i,s,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:\"meta\",end:/\\?>/,variants:[{begin:/<\\?xml/,relevance:10,contains:[s]},{begin:/<\\?[a-z][a-z0-9]+/}]},{className:\"tag\",begin:/)/,end:/>/,keywords:{name:\"style\"},contains:[l],starts:{end:/<\\/style>/,returnEnd:!0,subLanguage:[\"css\",\"xml\"]}},{className:\"tag\",begin:/)/,end:/>/,keywords:{name:\"script\"},contains:[l],starts:{end:/<\\/script>/,returnEnd:!0,subLanguage:[\"javascript\",\"handlebars\",\"xml\"]}},{className:\"tag\",begin:/<>|<\\/>/},{className:\"tag\",begin:t.concat(//,/>/,/\\s/)))),end:/\\/?>/,contains:[{className:\"name\",begin:n,relevance:0,starts:l}]},{className:\"tag\",begin:t.concat(/<\\//,t.lookahead(t.concat(n,/>/))),contains:[{className:\"name\",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}};pn.registerLanguage(\"javascript\",Sn),pn.registerLanguage(\"sql\",Mn),pn.registerLanguage(\"java\",Dn),pn.registerLanguage(\"xml\",In),pn.registerLanguage(\"python\",An);class Bn extends HTMLElement{root;_parsonsData;parsonsExplanation;hparsonsInput;inputType;static toolCount=0;toolNumber;temporaryInputEvent;language;hljsLanguage;codeBefore;codeAfter;constructor(){super(),Bn.toolCount+=1,this.toolNumber=Bn.toolCount,this.root=this;const e=!!this.getAttribute(\"reuse\"),t=!!this.getAttribute(\"randomize\");this.hparsonsInput=new fn(this,e,t),this._parsonsData=new Array,this.parsonsExplanation=null,this.inputType=\"parsons\",this.language=this.getAttribute(\"language\")||\"none\";let n=new Map(Object.entries({html:\"xml\",python:\"python\",javascript:\"javascript\",java:\"java\",sql:\"sql\"}));this.hljsLanguage=n.get(this.language),this.initInput(),this.temporaryInputEvent=null,this.codeBefore=null,this.codeAfter=null}set parsonsData(e){this._parsonsData=e,\"parsons\"==this.inputType&&this.hparsonsInput.setSourceBlocks(e,this.parsonsExplanation)}get parsonsData(){return this._parsonsData}logEvent=e=>{const t=new CustomEvent(\"micro-parsons\",{bubbles:!0,detail:{...e}});this.dispatchEvent(t)};initInput(){this.inputType=\"parsons\",this._parsonsData=new Array,this.parsonsExplanation=null;const e=null!=this.getAttribute(\"reuse\"),t=null!=this.getAttribute(\"randomize\");this.hparsonsInput=new fn(this,e,t),this.root.appendChild(this.hparsonsInput.el)}resetInput(){this.hparsonsInput.resetInput();this.logEvent({type:\"reset\"})}restoreAnswer(e){this.hparsonsInput.restoreAnswer(e)}restoreAnswerByIndices(e){this.hparsonsInput.restoreAnswerByIndices(e)}getCurrentInput(e){return this.hparsonsInput.getText(e)}getParsonsTextArray(){return this.hparsonsInput._getTextArray()}getBlockIndices(){return this.hparsonsInput.getBlockIndices()}setCodeContext(e){if(e.before){let t;this.codeBefore=e.before,this.querySelector(\".context.before\")?t=this.querySelector(\".context.before\"):(t=document.createElement(\"pre\"),t.className=\"context before\",this.querySelector(\".hparsons-input\").insertBefore(t,this.querySelector(\".drop-area\"))),t.innerHTML=this.codeBefore,this.hljsLanguage&&(t.className=\"context before\",t.classList.add(this.hljsLanguage),pn.highlightElement(t))}if(e.after){let t;this.codeAfter=e.after,this.querySelector(\".context.after\")?t=this.querySelector(\".context.after\"):(t=document.createElement(\"pre\"),t.className=\"context after\",this.querySelector(\".hparsons-input\").appendChild(t)),t.innerHTML=this.codeAfter,this.hljsLanguage&&(t.className=\"context after\",t.classList.add(this.hljsLanguage),pn.highlightElement(t))}}}const Rn=e=>{let t;try{t=document.querySelector(e.selector)}catch{throw\"micro-parsons: init: selector error\"}if(null==t||\"DIV\"!=t.tagName)throw\"micro-parsons: element not a div\";const n=-1==[\"javascript\",\"sql\",\"java\",\"html\",\"python\",\"raw\"].indexOf(e.language||\"\")?\"\":`language='${e.language}'`,r=e.id?`id='${e.id}'`:\"\",o=``;t.innerHTML=o;const i=t.firstChild;i.parsonsExplanation=e.parsonsTooltips,i.parsonsData=e.parsonsBlocks,e.context&&i.setCodeContext(e.context)};customElements.define(\"micro-parsons\",Bn);export{Rn as InitMicroParsons,Bn as MicroParsonsElement};\n//# sourceMappingURL=micro-parsons.js.map\n"],"names":["e","t","n","Object","keys","getOwnPropertySymbols","r","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","o","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","Symbol","iterator","constructor","prototype","value","configurable","writable","assign","hasOwnProperty","call","this","a","window","navigator","userAgent","match","s","l","c","d","u","h","g","capture","passive","p","addEventListener","f","removeEventListener","m","substring","matches","msMatchesSelector","webkitMatchesSelector","b","host","document","nodeType","parentNode","v","_","y","E","classList","className","replace","w","style","defaultView","getComputedStyle","currentStyle","indexOf","x","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","S","getElementsByTagName","i","A","scrollingElement","documentElement","N","getBoundingClientRect","top","left","bottom","right","height","width","innerHeight","innerWidth","parseInt","k","M","O","children","display","Re","ghost","dragged","draggable","T","lastElementChild","previousElementSibling","C","nodeName","toUpperCase","clone","D","scrollLeft","scrollTop","clientWidth","scrollWidth","clientHeight","scrollHeight","overflowX","overflowY","body","I","Math","round","B","setTimeout","R","L","Polymer","jQuery","Zepto","dom","cloneNode","P","Date","getTime","j","captureAnimationState","options","animation","slice","el","target","rect","thisAnimationDuration","fromRect","addAnimationState","removeAnimationState","splice","Number","animateAll","clearTimeout","prevFromRect","prevToRect","toRect","sqrt","pow","animate","max","animationResetTimer","animationTime","animatingX","animatingY","forRepaintDummy","offsetWidth","easing","animated","$","z","initializeByDefault","F","mount","pluginName","concat","pluginEvent","eventCanceled","cancel","sortable","initializePlugins","defaults","modifyOption","getEventProperties","eventProperties","optionListeners","H","X","evt","propertyIsEnumerable","bind","dragEl","Y","parentEl","K","ghostEl","G","rootEl","W","nextEl","q","lastDownEl","Z","cloneEl","V","cloneHidden","J","dragStarted","ue","putSortable","oe","activeSortable","active","originalEvent","oldIndex","Q","oldDraggableIndex","te","newIndex","ee","newDraggableIndex","ne","hideGhostForTarget","De","unhideGhostForTarget","Me","cloneNowHidden","cloneNowShown","dispatchSortableEvent","U","name","targetEl","toEl","fromEl","extraEventProperties","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","dispatchEvent","re","ie","ae","se","le","ce","de","he","ge","pe","fe","me","be","ve","_e","ye","Ee","we","xe","Se","Ae","Ne","ke","createElement","Oe","cssText","pointerEvents","Te","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","marginLeft","marginRight","flexDirection","gridTemplateColumns","split","float","clear","Ce","group","join","checkPull","pull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","Ie","touches","clientX","clientY","some","emptyInsertThreshold","_onDragOver","Be","_isOutsideThisEl","toString","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","Le","onMove","draggedRect","related","relatedRect","willInsertAfter","Pe","je","$e","tagName","src","href","charCodeAt","ze","Fe","contains","_getDirection","type","pointerType","shadowRoot","path","composedPath","checked","button","isContentEditable","trim","_prepareDragStart","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","appendChild","dataTransfer","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","_ignoreWhileAnimating","nextElementSibling","isOwner","axis","revert","dragRect","targetRect","canSort","fromSortable","completed","changed","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","toArray","getAttribute","set","closest","option","destroy","Array","querySelectorAll","removeAttribute","utils","on","off","css","find","is","extend","throttle","toggleClass","index","nextTick","cancelNextTick","detectDirection","getChild","create","version","He","Xe","Ue","Ye","Ke","Ge","We","qe","Ze","pid","Ve","Je","Qe","scroll","scrollSensitivity","scrollSpeed","scrollFn","vx","vy","layer","bubbleScroll","et","changedTouches","onSpill","tt","nt","startIndex","dragStart","drop","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","InputAction","ADD","MOVE","REMOVE","rt","exports","ot","Map","delete","Error","Set","add","freeze","getOwnPropertyNames","isFrozen","default","it","data","isMatchIgnored","ignoreMatch","at","st","lt","scope","sublanguage","language","ct","buffer","classPrefix","walk","addText","openNode","prefix","includes","shift","map","repeat","span","closeNode","dt","ut","rootNode","stack","root","pop","closeAllNodes","toJSON","JSON","stringify","_walk","_collapse","every","ht","super","addKeyword","addSublanguage","toHTML","finalize","gt","source","pt","bt","ft","mt","vt","_t","RegExp","exec","yt","Et","joinWith","String","wt","xt","St","At","Nt","kt","begin","relevance","Ot","end","illegal","Tt","Ct","excludeBegin","Dt","Mt","It","Bt","Rt","Lt","Pt","jt","$t","zt","Ft","__proto__","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","binary","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","_beginMatch","Ht","input","Xt","Ut","beginKeywords","__beforeBegin","keywords","Yt","isArray","Kt","Gt","Wt","beforeMatch","starts","endsParent","qt","Zt","toLowerCase","Vt","Jt","Qt","console","error","en","log","tn","nn","rn","key","_emit","_multi","beginScope","_wrap","endScope","skip","returnBegin","excludeEnd","returnEnd","an","case_insensitive","unicodeRegex","matchIndexes","regexes","matchAt","position","addRule","compile","matcherRe","lastIndex","findIndex","rules","multiRegexes","count","regexIndex","getMatcher","resumingScanAtSamePosition","considerAll","compilerExtensions","classNameAliases","isCompiled","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","terminatorEnd","illegalRe","variants","cachedVariants","sn","matcher","rule","ln","html","cn","dn","un","hn","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","languages","__emitter","ignoreIllegals","code","result","startsWith","subLanguage","_top","_emitter","parent","languageName","badRule","mode","unshift","message","_illegalBy","context","resultSoFar","errorRaised","supersetOf","secondBest","warn","innerHTML","text","readyState","highlight","highlightAuto","highlightAll","highlightElement","highlightBlock","configure","initHighlighting","initHighlightingOnLoad","registerLanguage","rawDefinition","aliases","unregisterLanguage","listLanguages","getLanguage","registerAliases","autoDetection","inherit","addPlugin","block","debugMode","safeMode","versionString","regex","lookahead","either","optional","anyNumberOfTimes","gn","HighlightJS","pn","fn","_dropArea","_dragArea","_dropSortable","_dragSortable","parentElement","_prevPosition","reusable","randomize","storedSourceBlocks","storedSourceBlockExplanations","blockOrder","hljsLanguage","initialized","id","toolNumber","innerText","append","_initSortable","getText","hasChildNodes","firstChild","_getTextFromBlock","getBlockIndices","dataset","lastChild","Node","ELEMENT_NODE","shuffleArray","random","setSourceBlocks","_resetInput","onclick","_onBlockClicked","_getBlockPosition","action","answer","_getTextArray","isTrusted","logEvent","onClone","onAdd","onStart","onEnd","updateTestStatus","remove","childNodes","removeFormat","removeProperty","resetInput","restoreAnswer","click","restoreAnswerByIndices","mn","bn","vn","_n","yn","En","wn","xn","Nn","kn","On","Tn","Cn","isTrulyOpeningTag","after","keyword","literal","built_in","label","PARAMS_CONTAINS","CLASS_REFERENCE","exceptions","when","Bn","HTMLElement","_parsonsData","parsonsExplanation","hparsonsInput","inputType","static","temporaryInputEvent","codeBefore","codeAfter","toolCount","entries","python","javascript","java","sql","initInput","parsonsData","detail","getCurrentInput","getParsonsTextArray","setCodeContext","before","querySelector","Rn","selector","reuse","parsonsTooltips","parsonsBlocks","customElements","define"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/207.a2b404e695486dde.js.map.gz b/_static/207.a2b404e695486dde.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..589944fa217539f8e2ac7e3ec75f7ae28ff8736e GIT binary patch literal 59537 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.r(e),i.d(e,{default:()=>o});var s=i(78673),n=(i(64466),i(9919),i(48819),i(73565),i(58529),i(56759),i(52420),i(14566));class r extends n.MatchingProblem{constructor(t){super(t),this.renderTimedIcon(this.containerDiv),this.hideButtons(),this.needsReinitialization=!0}hideButtons(){this.gradeBtn.style.display="none",this.helpBtn.style.display="none"}renderTimedIcon(t){var e=document.createElement("div"),i=document.createElement("img");i.src="../_static/clock.png",i.style.width="15px",i.style.height="15px",e.className="timeTip",e.title="",e.appendChild(i),t.prepend(e)}checkCorrectTimed(){switch(this.correct){case!0:return"T";case!1:return"F";default:return null}}hideFeedback(){this.connList.style.display="none"}reinitializeListeners(){}}void 0===window.component_factory&&(window.component_factory={}),window.component_factory.matching=function(t){return t.timed?new r(t):new n.MatchingProblem(t)};var a=i(10662);class o extends s.A{constructor(t){super(t);var e=t.orig;this.origElem=e,this.divid=e.id,this.children=this.origElem.childNodes,this.visited=[],this.timeLimit=0,this.limitedTime=!1,isNaN($(this.origElem).data("time"))||(this.timeLimit=60*parseInt($(this.origElem).data("time"),10),this.startingTime=this.timeLimit,this.limitedTime=!0),this.showFeedback=!0,this.origElem.hasAttribute("data-no-feedback")&&(this.showFeedback=!1),this.origElem.hasAttribute("data-show-feedback")&&("yes"===this.origElem.getAttribute("data-show-feedback")?this.showFeedback=!0:this.showFeedback=!1),this.showResults=!1,this.origElem.hasAttribute("data-result")&&(this.showResults=!1),this.random=!1,this.origElem.hasAttribute("data-random")&&(this.random=!0),this.showTimer=!0,this.origElem.hasAttribute("data-no-timer")&&(this.showTimer=!1),this.origElem.hasAttribute("data-timer")&&("yes"===this.origElem.getAttribute("data-timer")?this.showTimer=!0:this.showTimer=!1),this.fullwidth=!1,this.origElem.hasAttribute("data-fullwidth")&&(this.fullwidth=!0),this.nopause=!1,this.origElem.hasAttribute("data-no-pause")&&(this.nopause=!0),this.origElem.hasAttribute("data-pause")&&("yes"===this.origElem.getAttribute("data-pause")?this.nopause=!1:this.nopause=!0),eBookConfig.enableScratchAC=!1,this.running=0,this.paused=0,this.done=0,this.taken=0,this.score=0,this.incorrect=0,this.correctStr="",this.incorrectStr="",this.skippedStr="",this.skipped=0,this.currentQuestionIndex=0,this.renderedQuestionArray=[],this.getNewChildren(),eBookConfig.enableDebug||(document.body.oncontextmenu=function(){return!1}),this.checkAssessmentStatus().then(function(){this.renderTimedAssess()}.bind(this))}getNewChildren(){this.newChildren=[];let t=this.origElem.querySelectorAll(".runestone");for(var e=0;e1&&this.renderNavControls(),this.renderSubmitButton(),this.renderFeedbackContainer(),this.useRunestoneServices=eBookConfig.useRunestoneServices,$(this.origElem).replaceWith(this.containerDiv),this.styleExamElements(),this.checkServer("timedExam",!0)}disableCutCopyPaste(){document.addEventListener("cut",(function(t){t.preventDefault()})),document.addEventListener("copy",(function(t){t.preventDefault()})),document.addEventListener("paste",(function(t){t.preventDefault()}))}renderContainer(){this.containerDiv=document.createElement("div"),this.fullwidth&&$(this.containerDiv).attr({style:"max-width:none"}),this.containerDiv.classList.add("runestone-sphinx"),this.containerDiv.id=this.divid,this.timedDiv=document.createElement("div"),this.navDiv=document.createElement("div"),$(this.navDiv).attr({style:"text-align:center"}),this.flagDiv=document.createElement("div"),$(this.flagDiv).attr({style:"text-align: center"}),this.switchContainer=document.createElement("div"),this.switchContainer.classList.add("switchcontainer"),this.switchDiv=document.createElement("div"),this.timedDiv.appendChild(this.navDiv),this.timedDiv.appendChild(this.flagDiv),this.timedDiv.appendChild(this.switchContainer),this.switchContainer.appendChild(this.switchDiv),$(this.timedDiv).attr({id:"timed_Test",style:"display:none"})}renderTimer(){this.wrapperDiv=document.createElement("div"),this.timerContainer=document.createElement("P"),this.wrapperDiv.id=this.divid+"-startWrapper",this.timerContainer.id=this.divid+"-output",this.wrapperDiv.appendChild(this.timerContainer),this.showTime()}renderControlButtons(){this.controlDiv=document.createElement("div"),$(this.controlDiv).attr({id:"controls",style:"text-align: center"}),this.startBtn=document.createElement("button"),this.pauseBtn=document.createElement("button"),$(this.startBtn).attr({class:"btn btn-success",id:"start",tabindex:"0",role:"button"}),this.startBtn.textContent="Start",this.startBtn.addEventListener("click",async function(){$(this.finishButton).hide(),$(this.flagButton).show();let t=document.createElement("p");t.innerHTML="Warning: You will not be able to continue the exam if you close this tab, close the window, or navigate away from this page! Make sure you click the Finish Exam button when you are done to submit your work!",this.controlDiv.appendChild(t),t.classList.add("examwarning"),await this.renderTimedQuestion(),this.startAssessment()}.bind(this),!1),$(this.pauseBtn).attr({class:"btn btn-default",id:"pause",disabled:"true",tabindex:"0",role:"button"}),this.pauseBtn.textContent="Pause",this.pauseBtn.addEventListener("click",function(){this.pauseAssessment()}.bind(this),!1),this.taken||this.controlDiv.appendChild(this.startBtn),this.nopause||this.controlDiv.appendChild(this.pauseBtn),this.containerDiv.appendChild(this.wrapperDiv),this.containerDiv.appendChild(this.controlDiv)}renderNavControls(){var t,e;this.pagNavList=document.createElement("ul"),$(this.pagNavList).addClass("pagination"),this.leftContainer=document.createElement("li"),this.leftNavButton=document.createElement("button"),this.leftNavButton.innerHTML="‹ Prev",$(this.leftNavButton).attr("aria-label","Previous"),$(this.leftNavButton).attr("tabindex","0"),$(this.leftNavButton).attr("role","button"),$(this.rightNavButton).attr("id","prev"),$(this.leftNavButton).css("cursor","pointer"),this.leftContainer.appendChild(this.leftNavButton),this.pagNavList.appendChild(this.leftContainer),this.flaggingPlace=document.createElement("ul"),$(this.flaggingPlace).addClass("pagination"),this.flagContainer=document.createElement("li"),this.flagButton=document.createElement("button"),$(this.flagButton).addClass("flagBtn"),this.flagButton.innerHTML="Flag Question",$(this.flagButton).attr("aria-labelledby","Flag"),$(this.flagButton).attr("tabindex","5"),$(this.flagButton).attr("role","button"),$(this.flagButton).attr("id","flag"),$(this.flagButton).css("cursor","pointer"),this.flagContainer.appendChild(this.flagButton),this.flaggingPlace.appendChild(this.flagContainer),this.rightContainer=document.createElement("li"),this.rightNavButton=document.createElement("button"),$(this.rightNavButton).attr("aria-label","Next"),$(this.rightNavButton).attr("tabindex","0"),$(this.rightNavButton).attr("role","button"),$(this.rightNavButton).attr("id","next"),this.rightNavButton.innerHTML="Next ›",$(this.rightNavButton).css("cursor","pointer"),this.rightContainer.appendChild(this.rightNavButton),this.pagNavList.appendChild(this.rightContainer),this.ensureButtonSafety(),this.navDiv.appendChild(this.pagNavList),this.flagDiv.appendChild(this.flaggingPlace),this.break=document.createElement("br"),this.navDiv.appendChild(this.break),this.qNumList=document.createElement("ul"),$(this.qNumList).attr("id","pageNums"),this.qNumWrapperList=document.createElement("ul"),$(this.qNumWrapperList).addClass("pagination");for(var i=0;i ul > li:eq("+this.currentQuestionIndex+")").addClass("broken"),"exam_ended"==this.renderedQuestionArray[this.currentQuestionIndex].state&&$("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").addClass("toolate"),this.renderedQuestionArray[this.currentQuestionIndex].question.isAnswered&&($("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").addClass("answered"),await this.renderedQuestionArray[this.currentQuestionIndex].question.checkCurrentAnswer(),this.done||await this.renderedQuestionArray[this.currentQuestionIndex].question.logCurrentAnswer())}async handleNextPrev(t){this.taken||await this.navigateAway();var e=$(t.target).text();if(e.match(/Next/)){if($(this.rightContainer).hasClass("disabled"))return;this.currentQuestionIndex++}else if(e.match(/Prev/)){if($(this.leftContainer).hasClass("disabled"))return;this.currentQuestionIndex--}await this.renderTimedQuestion(),this.ensureButtonSafety();for(var i=0;i ul > li:eq("+this.currentQuestionIndex+")").addClass("active"),$("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").hasClass("flagcolor")?this.flagButton.innerHTML="Unflag Question":this.flagButton.innerHTML="Flag Question"}async handleFlag(t){$(t.target).text().match(/Flag Question/)?($("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").addClass("flagcolor"),this.flagButton.innerHTML="Unflag Question"):($("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").removeClass("flagcolor"),this.flagButton.innerHTML="Flag Question")}async handleNumberedNav(t){this.taken||await this.navigateAway();for(var e=0;ethis.renderedQuestionArray.length&&(console.log(`Error: bad index for ${s}`),this.currentQuestionIndex=n),$("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").addClass("active"),$("ul#pageNums > ul > li:eq("+this.currentQuestionIndex+")").hasClass("flagcolor")?this.flagButton.innerHTML="Unflag Question":this.flagButton.innerHTML="Flag Question",await this.renderTimedQuestion(),this.ensureButtonSafety()}navBtnListeners(){this.pagNavList.addEventListener("click",this.handleNextPrev.bind(this),!1),this.qNumList.addEventListener("click",this.handleNumberedNav.bind(this),!1)}flagBtnListener(){this.flaggingPlace.addEventListener("click",this.handleFlag.bind(this),!1)}renderSubmitButton(){this.buttonContainer=document.createElement("div"),$(this.buttonContainer).attr({style:"text-align:center"}),this.finishButton=document.createElement("button"),$(this.finishButton).attr({id:"finish",class:"btn btn-primary"}),this.finishButton.textContent="Finish Exam",this.finishButton.addEventListener("click",async function(){let t=this.renderedQuestionArray.filter((t=>!t.question.isAnswered)).length,e=t>0?`You have skipped ${t} question(s).`:"";window.confirm(`${e} Clicking OK means you are ready to submit your answers and are finished with this assessment.`)&&(await this.finishAssessment(),$(this.flagButton).hide())}.bind(this),!1),this.controlDiv.appendChild(this.finishButton),$(this.finishButton).hide(),this.timedDiv.appendChild(this.buttonContainer)}ensureButtonSafety(){0===this.currentQuestionIndex&&(1!=this.renderedQuestionArray.length&&$(this.rightContainer).removeClass("disabled"),$(this.leftContainer).addClass("disabled")),this.currentQuestionIndex>=this.renderedQuestionArray.length-1&&(1!=this.renderedQuestionArray.length&&$(this.leftContainer).removeClass("disabled"),$(this.rightContainer).addClass("disabled")),this.currentQuestionIndex>0&&this.currentQuestionIndexYou have already taken this exam",this.scoreDiv.style.display="block"):(this.scoreDiv.id=this.divid+"results",this.scoreDiv.style.display="none"),this.containerDiv.appendChild(this.scoreDiv)}createRenderedQuestionArray(){for(var t,e=0;e0&&(i=$(i).children("[data-component]")[0],t.orig=i),$(i).is("[data-component]")&&this.renderedQuestionArray.push(t)}}randomizeRQA(){for(var t,e,i=this.renderedQuestionArray.length;0!==i;)e=Math.floor(Math.random()*i),i-=1,t=this.renderedQuestionArray[i],this.renderedQuestionArray[i]=this.renderedQuestionArray[e],this.renderedQuestionArray[e]=t}async renderTimedQuestion(){if(this.currentQuestionIndex>=this.renderedQuestionArray.length)return;let t,e=this.renderedQuestionArray[this.currentQuestionIndex];if("prepared"===e.state||"forreview"===e.state||"broken_exam"===e.state&&e.initAttempts<3){let t=e.orig;if($(t).is("[data-component=selectquestion]"))if(this.done&&"prepared"==e.state)this.renderedQuestionArray[this.currentQuestionIndex].state="exam_ended";else{e.rqa=this.renderedQuestionArray;let t=new a.default(e);this.renderedQuestionArray[this.currentQuestionIndex]={question:t};try{await t.initialize(),"broken_exam"==e.state&&$(`ul#pageNums > ul > li:eq(${this.currentQuestionIndex})`).removeClass("broken")}catch(t){e.state="broken_exam",this.renderedQuestionArray[this.currentQuestionIndex]=e,console.log(`Error initializing question: Details ${t}`)}}else if($(t).is("[data-component]")){let i=$(t).data("component");this.renderedQuestionArray[this.currentQuestionIndex]={question:window.component_factory[i](e),state:e.state}}}else if("broken_exam"===e.state)return;t=this.renderedQuestionArray[this.currentQuestionIndex].question,"forreview"===e.state&&(await t.component_ready_promise,await t.checkCurrentAnswer(),t.renderFeedback(),t.disableInteraction()),this.visited.includes(this.currentQuestionIndex)||(this.visited.push(this.currentQuestionIndex),this.visited.length!==this.renderedQuestionArray.length||this.done||$(this.finishButton).show()),t.containerDiv&&(0==t.containerDiv.classList.contains("runestone")&&t.containerDiv.classList.add("runestone"),$(this.switchDiv).replaceWith(t.containerDiv),this.switchDiv=t.containerDiv),t.needsReinitialization&&t.reinitializeListeners(this.taken)}handlePrevAssessment(){$(this.startBtn).hide(),$(this.pauseBtn).attr("disabled",!0),$(this.finishButton).attr("disabled",!0),this.running=0,this.done=1,this.showResults&&this.showFeedback?($(this.timedDiv).show(),this.restoreAnsweredQuestions()):($(this.pauseBtn).hide(),$(this.timerContainer).hide())}startAssessment(){if(this.taken)this.handlePrevAssessment();else{if($("#relations-next").hide(),$("#relations-prev").hide(),$(this.startBtn).hide(),$(this.pauseBtn).attr("disabled",!1),0===this.running&&0===this.paused){this.running=1,this.lastTime=Date.now(),$(this.timedDiv).show(),this.increment(),this.logBookEvent({event:"timedExam",act:"start",div_id:this.divid});var t=new Date,e={answer:[0,0,this.renderedQuestionArray.length,0],timestamp:t};localStorage.setItem(this.localStorageKey(),JSON.stringify(e))}$(window).on("beforeunload",function(t){if(!this.done)return t.preventDefault(),t.returnValue="Are you sure you want to leave? Your work will be lost! And you will need your instructor to reset the exam!","Are you sure you want to leave? Your work will be lost!"}.bind(this)),window.addEventListener("pagehide",async function(t){this.done||(await this.finishAssessment(),console.log("Exam exited by leaving page"))}.bind(this))}}pauseAssessment(){0===this.done&&(1===this.running?(this.logBookEvent({event:"timedExam",act:"pause",div_id:this.divid}),this.running=0,this.paused=1,this.pauseBtn.innerHTML="Resume",$(this.timedDiv).hide()):(this.logBookEvent({event:"timedExam",act:"resume",div_id:this.divid}),this.running=1,this.paused=0,this.increment(),this.pauseBtn.innerHTML="Pause",$(this.timedDiv).show()))}showTime(){if(this.showTimer){var t=Math.floor(this.timeLimit/60),e=Math.floor(this.timeLimit)%60,i=t,s=e;t<10&&(i="0"+t),e<10&&(s="0"+e);var n="Time Remaining ";this.limitedTime||(n="Time Taken ");var r=n+i+":"+s;if(this.done||this.taken){var a=Math.floor(this.timeTaken/60),o=Math.floor(this.timeTaken%60);a<10&&(a="0"+a),o<10&&(o="0"+o),r="Time taken: "+a+":"+o}this.timerContainer.innerHTML=r;for(var h=document.getElementsByClassName("timeTip"),d=0;d<=h.length-1;d++)h[d].title=r}else $(this.timerContainer).hide()}increment(){1!==this.running||this.taken||setTimeout(function(){let t=Date.now();if(this.limitedTime?this.timeLimit=this.timeLimit-Math.floor((t-this.lastTime)/1e3):this.timeLimit=this.timeLimit+Math.floor((t-this.lastTime)/1e3),this.lastTime=t,localStorage.setItem(eBookConfig.email+":"+this.divid+"-time",this.timeLimit),this.showTime(),this.timeLimit>0)this.increment();else if($(this.startBtn).attr({disabled:"true"}),$(this.finishButton).attr({disabled:"true"}),this.running=0,this.done=1,!this.taken){this.taken=!0;let t=document.createElement("h1");t.innerHTML="Sorry but you ran out of time. Your answers are being submitted",this.controlDiv.appendChild(t),this.finishAssessment()}}.bind(this),1e3)}styleExamElements(){$(this.timerContainer).css({width:"50%",margin:"0 auto","background-color":"#DFF0D8","text-align":"center",border:"2px solid #DFF0D8","border-radius":"25px"}),$(this.scoreDiv).css({width:"50%",margin:"0 auto","background-color":"#DFF0D8","text-align":"center",border:"2px solid #DFF0D8","border-radius":"25px"}),$(".tooltipTime").css({margin:"0",padding:"0","background-color":"black",color:"white"})}async finishAssessment(){$("#relations-next").show(),$("#relations-prev").show(),this.showFeedback||($(this.timedDiv).hide(),$(this.pauseBtn).hide(),$(this.timerContainer).hide()),this.findTimeTaken(),this.running=0,this.done=1,this.taken=1,await this.finalizeProblems(),this.checkScore(),this.displayScore(),this.storeScore(),this.logScore(),$(this.pauseBtn).attr("disabled",!0),this.finishButton.disabled=!0,$(window).off("beforeunload");let t=this.divid;setTimeout((function(){jQuery.ajax({url:eBookConfig.app+"/assignments/student_autograde",type:"POST",dataType:"JSON",data:{assignment_id:t,is_timed:!0},success:function(t){0==t.success?console.log(t.message):console.log("Autograder completed")}})}),2e3)}async finalizeProblems(){var t=this.renderedQuestionArray[this.currentQuestionIndex].question;await t.checkCurrentAnswer(),await t.logCurrentAnswer(),t.renderFeedback(),t.disableInteraction();for(var e=0;e0?this.correctStr=this.correctStr.substring(0,this.correctStr.length-2):this.correctStr="None",this.skippedStr.length>0?this.skippedStr=this.skippedStr.substring(0,this.skippedStr.length-2):this.skippedStr="None",this.incorrectStr.length>0?this.incorrectStr=this.incorrectStr.substring(0,this.incorrectStr.length-2):this.incorrectStr="None"}findTimeTaken(){this.limitedTime?this.timeTaken=this.startingTime-this.timeLimit:this.timeTaken=this.timeLimit}storeScore(){var t=[];t.push(this.score,this.correctStr,this.incorrect,this.incorrectStr,this.skipped,this.skippedStr,this.timeTaken);var e=new Date,i=JSON.stringify({answer:t,timestamp:e});localStorage.setItem(this.localStorageKey(),i)}logScore(){this.logBookEvent({event:"timedExam",act:"finish",div_id:this.divid,correct:this.score,incorrect:this.incorrect,skipped:this.skipped,time_taken:this.timeTaken})}shouldUseServer(t){var e;if(0===localStorage.length)return!0;var i=localStorage.getItem(this.localStorageKey());if(null===i)return!0;try{var s=JSON.parse(i).answer;if(4==s.length){if(t.correct==s[0]&&t.incorrect==s[1]&&t.skipped==s[2]&&t.timeTaken==s[3])return!0}else if(7==s.length&&t.correct==s[0]&&t.incorrect==s[2]&&t.skipped==s[4]&&t.timeTaken==s[6])return!1;e=new Date(JSON.parse(i[1]).timestamp)}catch(t){return console.log(t.message),localStorage.removeItem(this.localStorageKey()),!0}return!(new Date(t.timestamp)0&&null!==localStorage.getItem(this.localStorageKey())?(this.taken=1,this.restoreAnswers("")):this.taken=0}async restoreAnswers(t){var e;if(this.taken=1,""===t){let t,i=!1;try{t=JSON.parse(localStorage.getItem(this.localStorageKey())),e=t.answer}catch(t){console.log(`Error parsing stored Timed data for ${this.divid}: ${t.message}`),i=!0}if(i||t.timestamp0||this.incorrectStr.length>0||this.skippedStr.length>0?(e=`Num Correct: ${this.score}. Questions: ${this.correctStr}
Num Wrong: ${this.incorrect}. Questions: ${this.incorrectStr}
Num Skipped: ${this.skipped}. Questions: ${this.skippedStr}
`,t=this.score+this.incorrect+this.skipped,e+="Percent Correct: "+(this.score/t*100).toFixed(2)+"%",$(this.scoreDiv).html(e),this.scoreDiv.style.display="block"):(e=`Num Correct: ${this.score}
Num Wrong: ${this.incorrect}
Num Skipped: ${this.skipped}
`,t=this.score+this.incorrect+this.skipped,e+="Percent Correct: "+(this.score/t*100).toFixed(2)+"%",$(this.scoreDiv).html(e),this.scoreDiv.style.display="block"),this.highlightNumberedList()}else $(this.scoreDiv).html("Thank you for taking the exam. Your answers have been recorded."),this.scoreDiv.style.display="block"}highlightNumberedList(){var t=this.correctStr,e=this.incorrectStr,i=this.skippedStr;t=t.replace(/ /g,"").split(","),e=e.replace(/ /g,"").split(","),i=i.replace(/ /g,"").split(","),$((function(){var s=$("ul#pageNums > ul > li");s.hasClass("answered")&&s.removeClass("answered");for(var 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 literal 0 HcmV?d00001 diff --git a/_static/268.60719f20e69f885e.js.map b/_static/268.60719f20e69f885e.js.map new file mode 100755 index 0000000..865582b --- /dev/null +++ b/_static/268.60719f20e69f885e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"268.60719f20e69f885e.js","mappings":"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","sources":["webpack://WebComponents/./runestone/matching/js/timed_matching.js","webpack://WebComponents/./runestone/timed/js/timed.js"],"sourcesContent":["import {MatchingProblem} from \"./matching.js\";\n\nexport default class TimedMatching extends MatchingProblem {\n constructor(opts) {\n super(opts);\n this.renderTimedIcon(this.containerDiv);\n this.hideButtons();\n this.needsReinitialization = true;\n }\n\n hideButtons() {\n this.gradeBtn.style.display = \"none\";\n this.helpBtn.style.display = \"none\";\n }\n\n renderTimedIcon(component) {\n // renders the clock icon on timed components. The component parameter\n // is the element that the icon should be appended to.\n var timeIconDiv = document.createElement(\"div\");\n var timeIcon = document.createElement(\"img\");\n timeIcon.src = \"../_static/clock.png\";\n timeIcon.style.width = \"15px\";\n timeIcon.style.height = \"15px\";\n\n timeIconDiv.className = \"timeTip\";\n timeIconDiv.title = \"\";\n timeIconDiv.appendChild(timeIcon);\n component.prepend(timeIconDiv);\n }\n\n checkCorrectTimed() {\n // Returns if the question was correct, incorrect, or skipped (return null in the last case)\n switch (this.correct) {\n case true:\n return \"T\";\n case false:\n return \"F\";\n default:\n return null;\n }\n }\n\n hideFeedback() {\n this.connList.style.display = \"none\";\n }\n\n reinitializeListeners() {\n // maybe need to reinitialize the listeners\n }\n}\n\nif (typeof window.component_factory === \"undefined\") {\n window.component_factory = {};\n}\nwindow.component_factory.matching = function (opts) {\n if (opts.timed) {\n return new TimedMatching(opts);\n }\n return new MatchingProblem(opts);\n};\n","/*==========================================\n======== Master timed.js =========\n============================================\n=== This file contains the JS for ===\n=== the Runestone timed component. ===\n============================================\n=== Created By ===\n=== Kirby Olson ===\n=== 6/11/15 ===\n==========================================*/\n\"use strict\";\n\nimport RunestoneBase from \"../../common/js/runestonebase.js\";\nimport TimedFITB from \"../../fitb/js/timedfitb.js\";\nimport TimedMC from \"../../mchoice/js/timedmc.js\";\nimport TimedShortAnswer from \"../../shortanswer/js/timed_shortanswer.js\";\nimport ACFactory from \"../../activecode/js/acfactory.js\";\nimport TimedClickableArea from \"../../clickableArea/js/timedclickable\";\nimport TimedDragNDrop from \"../../dragndrop/js/timeddnd.js\";\nimport TimedParsons from \"../../parsons/js/timedparsons.js\";\nimport TimedMatching from \"../../matching/js/timed_matching.js\";\nimport SelectOne from \"../../selectquestion/js/selectone\";\nimport \"../css/timed.less\";\n\n// Timed constructor\nexport default class Timed extends RunestoneBase {\n constructor(opts) {\n super(opts);\n var orig = opts.orig;\n this.origElem = orig; // the entire element of this timed assessment and all of its children\n this.divid = orig.id;\n this.children = this.origElem.childNodes;\n this.visited = [];\n this.timeLimit = 0;\n this.limitedTime = false;\n if (!isNaN($(this.origElem).data(\"time\"))) {\n this.timeLimit = parseInt($(this.origElem).data(\"time\"), 10) * 60; // time in seconds to complete the exam\n this.startingTime = this.timeLimit;\n this.limitedTime = true;\n }\n this.showFeedback = true;\n if (this.origElem.hasAttribute(\"data-no-feedback\")) {\n this.showFeedback = false;\n }\n // check for attribute data-show-feedback = yes\n if (this.origElem.hasAttribute(\"data-show-feedback\")) {\n if (this.origElem.getAttribute(\"data-show-feedback\") === \"yes\") {\n this.showFeedback = true;\n } else {\n this.showFeedback = false;\n }\n }\n this.showResults = false;\n if (this.origElem.hasAttribute(\"data-result\")) {\n this.showResults = false;\n }\n this.random = false;\n if (this.origElem.hasAttribute(\"data-random\")) {\n this.random = true;\n }\n this.showTimer = true;\n if (this.origElem.hasAttribute(\"data-no-timer\")) {\n this.showTimer = false;\n }\n if (this.origElem.hasAttribute(\"data-timer\")) {\n if (\n this.origElem.getAttribute(\"data-timer\") === \"yes\"\n ) {\n this.showTimer = true;\n } else {\n this.showTimer = false;\n }\n }\n this.fullwidth = false;\n if (this.origElem.hasAttribute(\"data-fullwidth\")) {\n this.fullwidth = true;\n }\n this.nopause = false;\n if (this.origElem.hasAttribute(\"data-no-pause\")) {\n this.nopause = true;\n }\n if (this.origElem.hasAttribute(\"data-pause\")) {\n if (this.origElem.getAttribute(\"data-pause\") === \"yes\") {\n this.nopause = false;\n } else {\n this.nopause = true;\n }\n }\n eBookConfig.enableScratchAC = false;\n this.running = 0;\n this.paused = 0;\n this.done = 0;\n this.taken = 0;\n this.score = 0;\n this.incorrect = 0;\n this.correctStr = \"\";\n this.incorrectStr = \"\";\n this.skippedStr = \"\";\n this.skipped = 0;\n this.currentQuestionIndex = 0; // Which question is currently displaying on the page\n this.renderedQuestionArray = []; // list of all problems\n this.getNewChildren();\n // One small step to eliminate students from doing view source\n // this won't stop anyone with determination but may prevent casual peeking\n if (!eBookConfig.enableDebug) {\n document.body.oncontextmenu = function () {\n return false;\n };\n }\n this.checkAssessmentStatus().then(\n function () {\n this.renderTimedAssess();\n }.bind(this)\n );\n }\n\n getNewChildren() {\n this.newChildren = [];\n let runestoneChildren = this.origElem.querySelectorAll(\".runestone\");\n for (var i = 0; i < runestoneChildren.length; i++) {\n this.newChildren.push(runestoneChildren[i]);\n }\n }\n\n async checkAssessmentStatus() {\n // Has the user taken this exam? Inquiring minds want to know\n // If a user has not taken this exam then we want to make sure\n // that if a question has been seen by the student before we do\n // not populate previous answers.\n let sendInfo = {\n div_id: this.divid,\n course_name: eBookConfig.course,\n };\n console.log(sendInfo);\n if (eBookConfig.useRunestoneServices) {\n let request = new Request(\n `${eBookConfig.new_server_prefix}/assessment/tookTimedAssessment`,\n {\n method: \"POST\",\n headers: this.jsonHeaders,\n body: JSON.stringify(sendInfo),\n }\n );\n let response = await fetch(request);\n let data = await response.json();\n data = data.detail;\n this.taken = data.tookAssessment;\n this.assessmentTaken = this.taken;\n if (!this.taken) {\n localStorage.clear();\n }\n console.log(\"done with check status\");\n return response;\n } else {\n this.taken = false;\n this.assessmentTaken = false;\n return Promise.resolve();\n }\n }\n\n /*===============================\n === Generating new Timed HTML ===\n ===============================*/\n async renderTimedAssess() {\n console.log(\"rendering timed \");\n // create renderedQuestionArray returns a promise\n //\n this.createRenderedQuestionArray();\n if (this.random) {\n this.randomizeRQA();\n }\n this.renderContainer();\n this.renderTimer();\n await this.renderControlButtons();\n // If we decide to disable cut/copy/paste, uncomment the line below \n // this.disableCutCopyPaste();\n this.containerDiv.appendChild(this.timedDiv); // This can't be appended in renderContainer because then it renders above the timer and control buttons.\n if (this.renderedQuestionArray.length > 1) this.renderNavControls();\n this.renderSubmitButton();\n this.renderFeedbackContainer();\n this.useRunestoneServices = eBookConfig.useRunestoneServices;\n // Replace intermediate HTML with rendered HTML\n $(this.origElem).replaceWith(this.containerDiv);\n // check if already taken and if so show results\n this.styleExamElements(); // rename to renderPossibleResults\n this.checkServer(\"timedExam\", true);\n }\n\n disableCutCopyPaste() {\n document.addEventListener(\"cut\", function (e) {\n e.preventDefault();\n });\n document.addEventListener(\"copy\", function (e) {\n e.preventDefault();\n });\n document.addEventListener(\"paste\", function (e) {\n e.preventDefault();\n });\n }\n\n renderContainer() {\n this.containerDiv = document.createElement(\"div\"); // container for the entire Timed Component\n if (this.fullwidth) {\n // allow the container to fill the width - barb\n $(this.containerDiv).attr({\n style: \"max-width:none\",\n });\n }\n this.containerDiv.classList.add(\"runestone-sphinx\");\n this.containerDiv.id = this.divid;\n this.timedDiv = document.createElement(\"div\"); // div that will hold the questions for the timed assessment\n this.navDiv = document.createElement(\"div\"); // For navigation control\n $(this.navDiv).attr({\n style: \"text-align:center\",\n });\n this.flagDiv = document.createElement(\"div\"); // div that will hold the \"Flag Question\" button\n $(this.flagDiv).attr({\n style: \"text-align: center\",\n });\n this.switchContainer = document.createElement(\"div\");\n this.switchContainer.classList.add(\"switchcontainer\");\n this.switchDiv = document.createElement(\"div\"); // is replaced by the questions\n this.timedDiv.appendChild(this.navDiv);\n this.timedDiv.appendChild(this.flagDiv); // add flagDiv to timedDiv, which holds components for navigation and questions for timed assessment\n this.timedDiv.appendChild(this.switchContainer);\n this.switchContainer.appendChild(this.switchDiv);\n $(this.timedDiv).attr({\n id: \"timed_Test\",\n style: \"display:none\",\n });\n }\n\n renderTimer() {\n this.wrapperDiv = document.createElement(\"div\");\n this.timerContainer = document.createElement(\"P\");\n this.wrapperDiv.id = this.divid + \"-startWrapper\";\n this.timerContainer.id = this.divid + \"-output\";\n this.wrapperDiv.appendChild(this.timerContainer);\n this.showTime();\n }\n\n renderControlButtons() {\n this.controlDiv = document.createElement(\"div\");\n $(this.controlDiv).attr({\n id: \"controls\",\n style: \"text-align: center\",\n });\n this.startBtn = document.createElement(\"button\");\n this.pauseBtn = document.createElement(\"button\");\n $(this.startBtn).attr({\n class: \"btn btn-success\",\n id: \"start\",\n tabindex: \"0\",\n role: \"button\",\n });\n this.startBtn.textContent = \"Start\";\n this.startBtn.addEventListener(\n \"click\",\n async function () {\n $(this.finishButton).hide(); // hide the finish button for now\n $(this.flagButton).show();\n let mess = document.createElement(\"p\");\n mess.innerHTML =\n \"Warning: You will not be able to continue the exam if you close this tab, close the window, or navigate away from this page! Make sure you click the Finish Exam button when you are done to submit your work!\";\n this.controlDiv.appendChild(mess);\n mess.classList.add(\"examwarning\");\n await this.renderTimedQuestion();\n this.startAssessment();\n }.bind(this),\n false\n );\n $(this.pauseBtn).attr({\n class: \"btn btn-default\",\n id: \"pause\",\n disabled: \"true\",\n tabindex: \"0\",\n role: \"button\",\n });\n this.pauseBtn.textContent = \"Pause\";\n this.pauseBtn.addEventListener(\n \"click\",\n function () {\n this.pauseAssessment();\n }.bind(this),\n false\n );\n if (!this.taken) {\n this.controlDiv.appendChild(this.startBtn);\n }\n if (!this.nopause) {\n this.controlDiv.appendChild(this.pauseBtn);\n }\n this.containerDiv.appendChild(this.wrapperDiv);\n this.containerDiv.appendChild(this.controlDiv);\n }\n\n renderNavControls() {\n // making \"Prev\" button\n this.pagNavList = document.createElement(\"ul\");\n $(this.pagNavList).addClass(\"pagination\");\n this.leftContainer = document.createElement(\"li\");\n this.leftNavButton = document.createElement(\"button\");\n this.leftNavButton.innerHTML = \"‹ Prev\";\n $(this.leftNavButton).attr(\"aria-label\", \"Previous\");\n $(this.leftNavButton).attr(\"tabindex\", \"0\");\n $(this.leftNavButton).attr(\"role\", \"button\");\n $(this.rightNavButton).attr(\"id\", \"prev\");\n $(this.leftNavButton).css(\"cursor\", \"pointer\");\n this.leftContainer.appendChild(this.leftNavButton);\n this.pagNavList.appendChild(this.leftContainer);\n // making \"Flag Question\" button\n this.flaggingPlace = document.createElement(\"ul\");\n $(this.flaggingPlace).addClass(\"pagination\");\n this.flagContainer = document.createElement(\"li\");\n this.flagButton = document.createElement(\"button\");\n $(this.flagButton).addClass(\"flagBtn\");\n this.flagButton.innerHTML = \"Flag Question\"; // name on button\n $(this.flagButton).attr(\"aria-labelledby\", \"Flag\");\n $(this.flagButton).attr(\"tabindex\", \"5\");\n $(this.flagButton).attr(\"role\", \"button\");\n $(this.flagButton).attr(\"id\", \"flag\");\n $(this.flagButton).css(\"cursor\", \"pointer\");\n this.flagContainer.appendChild(this.flagButton); // adding button to container\n this.flaggingPlace.appendChild(this.flagContainer); // adding container to flaggingPlace\n // making \"Next\" button\n this.rightContainer = document.createElement(\"li\");\n this.rightNavButton = document.createElement(\"button\");\n $(this.rightNavButton).attr(\"aria-label\", \"Next\");\n $(this.rightNavButton).attr(\"tabindex\", \"0\");\n $(this.rightNavButton).attr(\"role\", \"button\");\n $(this.rightNavButton).attr(\"id\", \"next\");\n this.rightNavButton.innerHTML = \"Next ›\";\n $(this.rightNavButton).css(\"cursor\", \"pointer\");\n this.rightContainer.appendChild(this.rightNavButton);\n this.pagNavList.appendChild(this.rightContainer);\n this.ensureButtonSafety();\n this.navDiv.appendChild(this.pagNavList);\n this.flagDiv.appendChild(this.flaggingPlace); // adds flaggingPlace to the flagDiv\n this.break = document.createElement(\"br\");\n this.navDiv.appendChild(this.break);\n // render the question number jump buttons\n this.qNumList = document.createElement(\"ul\");\n $(this.qNumList).attr(\"id\", \"pageNums\");\n this.qNumWrapperList = document.createElement(\"ul\");\n $(this.qNumWrapperList).addClass(\"pagination\");\n var tmpLi, tmpA;\n for (var i = 0; i < this.renderedQuestionArray.length; i++) {\n tmpLi = document.createElement(\"li\");\n tmpA = document.createElement(\"a\");\n tmpA.innerHTML = i + 1;\n $(tmpA).css(\"cursor\", \"pointer\");\n if (i === 0) {\n $(tmpLi).addClass(\"active\");\n }\n tmpLi.appendChild(tmpA);\n this.qNumWrapperList.appendChild(tmpLi);\n }\n this.qNumList.appendChild(this.qNumWrapperList);\n this.navDiv.appendChild(this.qNumList);\n this.navBtnListeners();\n this.flagBtnListener(); // listens for click on flag button\n $(this.flagButton).hide();\n }\n\n // when moving off of a question in an active exam:\n // 1. show that the question has been seen, or mark it broken if it is in error.\n // 2. check and log the current answer\n async navigateAway() {\n if (\n this.renderedQuestionArray[this.currentQuestionIndex].state ==\n \"broken_exam\"\n ) {\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"broken\");\n }\n if (\n this.renderedQuestionArray[this.currentQuestionIndex].state ==\n \"exam_ended\"\n ) {\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"toolate\");\n }\n if (\n this.renderedQuestionArray[this.currentQuestionIndex].question\n .isAnswered\n ) {\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"answered\");\n await this.renderedQuestionArray[\n this.currentQuestionIndex\n ].question.checkCurrentAnswer();\n if (!this.done) {\n await this.renderedQuestionArray[\n this.currentQuestionIndex\n ].question.logCurrentAnswer();\n }\n }\n }\n async handleNextPrev(event) {\n if (!this.taken) {\n await this.navigateAway();\n }\n var target = $(event.target).text();\n if (target.match(/Next/)) {\n // checks given text to match \"Next\"\n if ($(this.rightContainer).hasClass(\"disabled\")) {\n return;\n }\n this.currentQuestionIndex++;\n } else if (target.match(/Prev/)) {\n // checks given text to match \"Prev\"\n if ($(this.leftContainer).hasClass(\"disabled\")) {\n return;\n }\n this.currentQuestionIndex--;\n }\n await this.renderTimedQuestion();\n this.ensureButtonSafety();\n for (var i = 0; i < this.qNumList.childNodes.length; i++) {\n for (\n var j = 0;\n j < this.qNumList.childNodes[i].childNodes.length;\n j++\n ) {\n $(this.qNumList.childNodes[i].childNodes[j]).removeClass(\n \"active\"\n );\n }\n }\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"active\");\n if (\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).hasClass(\"flagcolor\")\n ) {\n // checking for class\n this.flagButton.innerHTML = \"Unflag Question\"; // changes text on button\n } else {\n this.flagButton.innerHTML = \"Flag Question\"; // changes text on button\n }\n }\n\n async handleFlag(event) {\n // called when flag button is clicked\n var target = $(event.target).text();\n if (target.match(/Flag Question/)) {\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"flagcolor\"); // class will change color of question block\n this.flagButton.innerHTML = \"Unflag Question\";\n } else {\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).removeClass(\"flagcolor\"); // will restore current color of question block\n this.flagButton.innerHTML = \"Flag Question\"; // also sets name back\n }\n }\n\n async handleNumberedNav(event) {\n if (!this.taken) {\n await this.navigateAway();\n }\n for (var i = 0; i < this.qNumList.childNodes.length; i++) {\n for (\n var j = 0;\n j < this.qNumList.childNodes[i].childNodes.length;\n j++\n ) {\n $(this.qNumList.childNodes[i].childNodes[j]).removeClass(\n \"active\"\n );\n }\n }\n\n var target = $(event.target).text();\n let oldIndex = this.currentQuestionIndex;\n this.currentQuestionIndex = parseInt(target) - 1;\n if (this.currentQuestionIndex > this.renderedQuestionArray.length) {\n console.log(`Error: bad index for ${target}`);\n this.currentQuestionIndex = oldIndex;\n }\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\"\n ).addClass(\"active\");\n if (\n $(\n \"ul#pageNums > ul > li:eq(\" + this.currentQuestionIndex + \")\" // checking for flagcolor class\n ).hasClass(\"flagcolor\")\n ) {\n this.flagButton.innerHTML = \"Unflag Question\";\n } else {\n this.flagButton.innerHTML = \"Flag Question\";\n }\n await this.renderTimedQuestion();\n this.ensureButtonSafety();\n }\n\n // set up events for navigation\n navBtnListeners() {\n // Next and Prev Listener\n this.pagNavList.addEventListener(\n \"click\",\n this.handleNextPrev.bind(this),\n false\n );\n\n // Numbered Listener\n this.qNumList.addEventListener(\n \"click\",\n this.handleNumberedNav.bind(this),\n false\n );\n }\n\n // set up event for flag\n flagBtnListener() {\n this.flaggingPlace.addEventListener(\n \"click\",\n this.handleFlag.bind(this), // calls this to take action\n false\n );\n }\n\n renderSubmitButton() {\n this.buttonContainer = document.createElement(\"div\");\n $(this.buttonContainer).attr({\n style: \"text-align:center\",\n });\n this.finishButton = document.createElement(\"button\");\n $(this.finishButton).attr({\n id: \"finish\",\n class: \"btn btn-primary\",\n });\n this.finishButton.textContent = \"Finish Exam\";\n this.finishButton.addEventListener(\n \"click\",\n async function () {\n let skipped =\n this.renderedQuestionArray.filter((x) => !x.question.isAnswered).length;\n let skipstr = skipped > 0 ? `You have skipped ${skipped} question(s).` : \"\";\n if (\n window.confirm(\n `${skipstr} Clicking OK means you are ready to submit your answers and are finished with this assessment.`\n )\n ) {\n await this.finishAssessment();\n $(this.flagButton).hide();\n }\n }.bind(this),\n false\n );\n this.controlDiv.appendChild(this.finishButton);\n $(this.finishButton).hide();\n this.timedDiv.appendChild(this.buttonContainer);\n }\n ensureButtonSafety() {\n if (this.currentQuestionIndex === 0) {\n if (this.renderedQuestionArray.length != 1) {\n $(this.rightContainer).removeClass(\"disabled\");\n }\n $(this.leftContainer).addClass(\"disabled\");\n }\n if (\n this.currentQuestionIndex >=\n this.renderedQuestionArray.length - 1\n ) {\n if (this.renderedQuestionArray.length != 1) {\n $(this.leftContainer).removeClass(\"disabled\");\n }\n $(this.rightContainer).addClass(\"disabled\");\n }\n if (\n this.currentQuestionIndex > 0 &&\n this.currentQuestionIndex < this.renderedQuestionArray.length - 1\n ) {\n $(this.rightContainer).removeClass(\"disabled\");\n $(this.leftContainer).removeClass(\"disabled\");\n }\n }\n renderFeedbackContainer() {\n this.scoreDiv = document.createElement(\"P\");\n if (this.taken) {\n this.scoreDiv.innerHTML = \"

You have already taken this exam

\";\n this.scoreDiv.style.display = \"block\";\n } else {\n this.scoreDiv.id = this.divid + \"results\";\n this.scoreDiv.style.display = \"none\";\n }\n this.containerDiv.appendChild(this.scoreDiv);\n }\n\n createRenderedQuestionArray() {\n // this finds all the assess questions in this timed assessment\n // We need to make a list of all the questions up front so we can set up navigation\n // but we do not want to render the questions until the student has navigated\n // Also adds them to this.renderedQuestionArray\n\n // todo: This needs to be updated to account for the runestone div wrapper.\n\n // To accommodate the selectquestion type -- which is async! we need to wrap\n // all of this in a promise, so that we don't continue to render the timed\n // exam until all of the questions have been realized.\n var opts;\n for (var i = 0; i < this.newChildren.length; i++) {\n var tmpChild = this.newChildren[i];\n opts = {\n state: \"prepared\",\n orig: tmpChild,\n question: {},\n useRunestoneServices: eBookConfig.useRunestoneServices,\n timed: true,\n assessmentTaken: this.taken,\n timedWrapper: this.divid,\n initAttempts: 0,\n };\n if ($(tmpChild).children(\"[data-component]\").length > 0) {\n tmpChild = $(tmpChild).children(\"[data-component]\")[0];\n opts.orig = tmpChild;\n }\n if ($(tmpChild).is(\"[data-component]\")) {\n this.renderedQuestionArray.push(opts);\n }\n }\n }\n\n randomizeRQA() {\n var currentIndex = this.renderedQuestionArray.length,\n temporaryValue,\n randomIndex;\n // While there remain elements to shuffle...\n while (currentIndex !== 0) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n // And swap it with the current element.\n temporaryValue = this.renderedQuestionArray[currentIndex];\n this.renderedQuestionArray[currentIndex] =\n this.renderedQuestionArray[randomIndex];\n this.renderedQuestionArray[randomIndex] = temporaryValue;\n }\n }\n\n async renderTimedQuestion() {\n if (this.currentQuestionIndex >= this.renderedQuestionArray.length) {\n // sometimes the user clicks in the event area for the qNumList\n // But misses a number in that case the text is the concatenation\n // of all the numbers in the list!\n return;\n }\n // check the renderedQuestionArray to see if it has been rendered.\n let opts = this.renderedQuestionArray[this.currentQuestionIndex];\n let currentQuestion;\n if (\n opts.state === \"prepared\" ||\n opts.state === \"forreview\" ||\n (opts.state === \"broken_exam\" && opts.initAttempts < 3)\n ) {\n let tmpChild = opts.orig;\n if ($(tmpChild).is(\"[data-component=selectquestion]\")) {\n if (this.done && opts.state == \"prepared\") {\n this.renderedQuestionArray[\n this.currentQuestionIndex\n ].state = \"exam_ended\";\n } else {\n // SelectOne is async and will replace itself in this array with\n // the actual selected question\n opts.rqa = this.renderedQuestionArray;\n let newq = new SelectOne(opts);\n this.renderedQuestionArray[this.currentQuestionIndex] = {\n question: newq,\n };\n try {\n await newq.initialize();\n if (opts.state == \"broken_exam\") {\n // remove the broken class from this question if we get here.\n $(\n `ul#pageNums > ul > li:eq(${this.currentQuestionIndex})`\n ).removeClass(\"broken\");\n }\n } catch (e) {\n opts.state = \"broken_exam\";\n this.renderedQuestionArray[this.currentQuestionIndex] =\n opts;\n console.log(\n `Error initializing question: Details ${e}`\n );\n }\n }\n } else if ($(tmpChild).is(\"[data-component]\")) {\n let componentKind = $(tmpChild).data(\"component\");\n this.renderedQuestionArray[this.currentQuestionIndex] = {\n question: window.component_factory[componentKind](opts),\n state: opts.state,\n };\n }\n } else if (opts.state === \"broken_exam\") {\n return;\n }\n\n currentQuestion =\n this.renderedQuestionArray[this.currentQuestionIndex].question;\n if (opts.state === \"forreview\") {\n await currentQuestion.component_ready_promise;\n await currentQuestion.checkCurrentAnswer();\n currentQuestion.renderFeedback();\n currentQuestion.disableInteraction();\n }\n\n if (!this.visited.includes(this.currentQuestionIndex)) {\n this.visited.push(this.currentQuestionIndex);\n if (\n this.visited.length === this.renderedQuestionArray.length &&\n !this.done\n ) {\n $(this.finishButton).show();\n }\n }\n\n if (currentQuestion.containerDiv) {\n if (\n currentQuestion.containerDiv.classList.contains(\"runestone\") ==\n false\n ) {\n currentQuestion.containerDiv.classList.add(\"runestone\");\n }\n $(this.switchDiv).replaceWith(currentQuestion.containerDiv);\n this.switchDiv = currentQuestion.containerDiv;\n }\n\n // If the timed component has listeners, those might need to be reinitialized\n // This flag will only be set in the elements that need it--it will be undefined in the others and thus evaluate to false\n if (currentQuestion.needsReinitialization) {\n currentQuestion.reinitializeListeners(this.taken);\n }\n }\n\n /*=================================\n === Timer and control Functions ===\n =================================*/\n handlePrevAssessment() {\n $(this.startBtn).hide();\n $(this.pauseBtn).attr(\"disabled\", true);\n $(this.finishButton).attr(\"disabled\", true);\n this.running = 0;\n this.done = 1;\n // showFeedback sand showResults should both be true before we show the\n // questions and their state of correctness.\n if (this.showResults && this.showFeedback) {\n $(this.timedDiv).show();\n this.restoreAnsweredQuestions(); // do not log these results\n } else {\n $(this.pauseBtn).hide();\n $(this.timerContainer).hide();\n }\n }\n startAssessment() {\n if (!this.taken) {\n $(\"#relations-next\").hide(); // hide the next page button for now\n $(\"#relations-prev\").hide(); // hide the previous button for now\n $(this.startBtn).hide();\n $(this.pauseBtn).attr(\"disabled\", false);\n if (this.running === 0 && this.paused === 0) {\n this.running = 1;\n this.lastTime = Date.now();\n $(this.timedDiv).show();\n this.increment();\n this.logBookEvent({\n event: \"timedExam\",\n act: \"start\",\n div_id: this.divid,\n });\n var timeStamp = new Date();\n var storageObj = {\n answer: [0, 0, this.renderedQuestionArray.length, 0],\n timestamp: timeStamp,\n };\n localStorage.setItem(\n this.localStorageKey(),\n JSON.stringify(storageObj)\n );\n }\n $(window).on(\n \"beforeunload\",\n function (event) {\n // this actual value gets ignored by newer browsers\n if (this.done) {\n return;\n }\n event.preventDefault();\n event.returnValue =\n \"Are you sure you want to leave? Your work will be lost! And you will need your instructor to reset the exam!\";\n return \"Are you sure you want to leave? Your work will be lost!\";\n }.bind(this)\n );\n window.addEventListener(\n \"pagehide\",\n async function (event) {\n if (!this.done) {\n await this.finishAssessment();\n console.log(\"Exam exited by leaving page\");\n }\n }.bind(this)\n );\n } else {\n this.handlePrevAssessment();\n }\n }\n pauseAssessment() {\n if (this.done === 0) {\n if (this.running === 1) {\n this.logBookEvent({\n event: \"timedExam\",\n act: \"pause\",\n div_id: this.divid,\n });\n this.running = 0;\n this.paused = 1;\n this.pauseBtn.innerHTML = \"Resume\";\n $(this.timedDiv).hide();\n } else {\n this.logBookEvent({\n event: \"timedExam\",\n act: \"resume\",\n div_id: this.divid,\n });\n this.running = 1;\n this.paused = 0;\n this.increment();\n this.pauseBtn.innerHTML = \"Pause\";\n $(this.timedDiv).show();\n }\n }\n }\n\n showTime() {\n if (this.showTimer) {\n var mins = Math.floor(this.timeLimit / 60);\n var secs = Math.floor(this.timeLimit) % 60;\n var minsString = mins;\n var secsString = secs;\n if (mins < 10) {\n minsString = \"0\" + mins;\n }\n if (secs < 10) {\n secsString = \"0\" + secs;\n }\n var beginning = \"Time Remaining \";\n if (!this.limitedTime) {\n beginning = \"Time Taken \";\n }\n var timeString = beginning + minsString + \":\" + secsString;\n if (this.done || this.taken) {\n var minutes = Math.floor(this.timeTaken / 60);\n var seconds = Math.floor(this.timeTaken % 60);\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n timeString = \"Time taken: \" + minutes + \":\" + seconds;\n }\n this.timerContainer.innerHTML = timeString;\n var timeTips = document.getElementsByClassName(\"timeTip\");\n for (var i = 0; i <= timeTips.length - 1; i++) {\n timeTips[i].title = timeString;\n }\n } else {\n $(this.timerContainer).hide();\n }\n }\n\n increment() {\n // if running (not paused) and not taken\n if (this.running === 1 && !this.taken) {\n setTimeout(\n function () {\n // When a browser loses focus, setTimeout may not be called on the\n // schedule expected. Browsers are free to save power by lengthening\n // the interval to some longer time. So we cannot just subtract 1\n // from the timeLimit we need to measure the elapsed time from the last\n // call to the current call and subtract that number of seconds.\n let currentTime = Date.now();\n if (this.limitedTime) {\n // If there's a time limit, count down to 0\n this.timeLimit =\n this.timeLimit -\n Math.floor((currentTime - this.lastTime) / 1000);\n } else {\n // Else count up to keep track of how long it took to complete\n this.timeLimit =\n this.timeLimit +\n Math.floor((currentTime - this.lastTime) / 1000);\n }\n this.lastTime = currentTime;\n localStorage.setItem(\n eBookConfig.email + \":\" + this.divid + \"-time\",\n this.timeLimit\n );\n this.showTime();\n if (this.timeLimit > 0) {\n this.increment();\n // ran out of time\n } else {\n $(this.startBtn).attr({\n disabled: \"true\",\n });\n $(this.finishButton).attr({\n disabled: \"true\",\n });\n this.running = 0;\n this.done = 1;\n if (!this.taken) {\n this.taken = true;\n // embed the message in the page -- an alert actually prevents\n // the answers from being submitted and if a student closes their\n // laptop then the answers will not be submitted ever! Even when they\n // reopen the laptop their session cookie is likely invalid.\n let mess = document.createElement(\"h1\");\n mess.innerHTML =\n \"Sorry but you ran out of time. Your answers are being submitted\";\n this.controlDiv.appendChild(mess);\n this.finishAssessment();\n }\n }\n }.bind(this),\n 1000\n );\n }\n }\n\n styleExamElements() {\n // Checks if this exam has been taken before\n $(this.timerContainer).css({\n width: \"50%\",\n margin: \"0 auto\",\n \"background-color\": \"#DFF0D8\",\n \"text-align\": \"center\",\n border: \"2px solid #DFF0D8\",\n \"border-radius\": \"25px\",\n });\n $(this.scoreDiv).css({\n width: \"50%\",\n margin: \"0 auto\",\n \"background-color\": \"#DFF0D8\",\n \"text-align\": \"center\",\n border: \"2px solid #DFF0D8\",\n \"border-radius\": \"25px\",\n });\n $(\".tooltipTime\").css({\n margin: \"0\",\n padding: \"0\",\n \"background-color\": \"black\",\n color: \"white\",\n });\n }\n\n async finishAssessment() {\n $(\"#relations-next\").show(); // show the next page button for now\n $(\"#relations-prev\").show(); // show the previous button for now\n if (!this.showFeedback) {\n // bje - changed from showResults\n $(this.timedDiv).hide();\n $(this.pauseBtn).hide();\n $(this.timerContainer).hide();\n }\n this.findTimeTaken();\n this.running = 0;\n this.done = 1;\n this.taken = 1;\n await this.finalizeProblems();\n this.checkScore();\n this.displayScore();\n this.storeScore();\n this.logScore();\n $(this.pauseBtn).attr(\"disabled\", true);\n this.finishButton.disabled = true;\n $(window).off(\"beforeunload\");\n // turn off the pagehide listener\n let assignment_id = this.divid;\n setTimeout(function () {\n jQuery.ajax({\n url: eBookConfig.app + \"/assignments/student_autograde\",\n type: \"POST\",\n dataType: \"JSON\",\n data: {\n assignment_id: assignment_id,\n is_timed: true,\n },\n success: function (retdata) {\n if (retdata.success == false) {\n console.log(retdata.message);\n } else {\n console.log(\"Autograder completed\");\n }\n },\n });\n }, 2000);\n }\n\n // finalizeProblems\n // ----------------\n async finalizeProblems() {\n // Because we have submitted each question as we navigate we only need to\n // send the final version of the question the student is on when they press the\n // finish exam button.\n\n var currentQuestion =\n this.renderedQuestionArray[this.currentQuestionIndex].question;\n await currentQuestion.checkCurrentAnswer();\n await currentQuestion.logCurrentAnswer();\n currentQuestion.renderFeedback();\n currentQuestion.disableInteraction();\n\n for (var i = 0; i < this.renderedQuestionArray.length; i++) {\n let currentQuestion = this.renderedQuestionArray[i];\n // set the state to forreview so we know that feedback may be appropriate\n if (currentQuestion.state !== \"broken_exam\") {\n currentQuestion.state = \"forreview\";\n currentQuestion.question.disableInteraction();\n }\n }\n\n if (!this.showFeedback) {\n this.hideTimedFeedback();\n }\n }\n\n // restoreAnsweredQuestions\n // ------------------------\n restoreAnsweredQuestions() {\n for (var i = 0; i < this.renderedQuestionArray.length; i++) {\n var currentQuestion = this.renderedQuestionArray[i];\n if (currentQuestion.state === \"prepared\") {\n currentQuestion.state = \"forreview\";\n }\n }\n }\n\n // hideTimedFeedback\n // -----------------\n hideTimedFeedback() {\n for (var i = 0; i < this.renderedQuestionArray.length; i++) {\n var currentQuestion = this.renderedQuestionArray[i].question;\n currentQuestion.hideFeedback();\n }\n }\n\n // checkScore\n // ----------\n // This is a simple all or nothing score of one point per question for\n // that includes our best guess if a question was skipped.\n checkScore() {\n this.correctStr = \"\";\n this.skippedStr = \"\";\n this.incorrectStr = \"\";\n // Gets the score of each problem\n for (var i = 0; i < this.renderedQuestionArray.length; i++) {\n var correct =\n this.renderedQuestionArray[i].question.checkCorrectTimed();\n if (correct == \"T\") {\n this.score++;\n this.correctStr = this.correctStr + (i + 1) + \", \";\n } else if (correct == \"F\") {\n this.incorrect++;\n this.incorrectStr = this.incorrectStr + (i + 1) + \", \";\n } else if (correct === null || correct === \"I\") {\n this.skipped++;\n this.skippedStr = this.skippedStr + (i + 1) + \", \";\n } else {\n // ignored question; just do nothing\n }\n }\n // remove extra comma and space at end if any\n if (this.correctStr.length > 0)\n this.correctStr = this.correctStr.substring(\n 0,\n this.correctStr.length - 2\n );\n else this.correctStr = \"None\";\n if (this.skippedStr.length > 0)\n this.skippedStr = this.skippedStr.substring(\n 0,\n this.skippedStr.length - 2\n );\n else this.skippedStr = \"None\";\n if (this.incorrectStr.length > 0)\n this.incorrectStr = this.incorrectStr.substring(\n 0,\n this.incorrectStr.length - 2\n );\n else this.incorrectStr = \"None\";\n }\n findTimeTaken() {\n if (this.limitedTime) {\n this.timeTaken = this.startingTime - this.timeLimit;\n } else {\n this.timeTaken = this.timeLimit;\n }\n }\n storeScore() {\n var storage_arr = [];\n storage_arr.push(\n this.score,\n this.correctStr,\n this.incorrect,\n this.incorrectStr,\n this.skipped,\n this.skippedStr,\n this.timeTaken\n );\n var timeStamp = new Date();\n var storageObj = JSON.stringify({\n answer: storage_arr,\n timestamp: timeStamp,\n });\n localStorage.setItem(this.localStorageKey(), storageObj);\n }\n // _`timed exam endpoint parameters`\n //----------------------------------\n logScore() {\n this.logBookEvent({\n event: \"timedExam\",\n act: \"finish\",\n div_id: this.divid,\n correct: this.score,\n incorrect: this.incorrect,\n skipped: this.skipped,\n time_taken: this.timeTaken,\n });\n }\n shouldUseServer(data) {\n // We override the RunestoneBase version because there is no \"correct\" attribute, and there are 2 possible localStorage schemas\n // --we also want to default to local storage because it contains more information specifically which questions are correct, incorrect, and skipped.\n var storageDate;\n if (localStorage.length === 0) return true;\n var storageObj = localStorage.getItem(this.localStorageKey());\n if (storageObj === null) return true;\n try {\n var storedData = JSON.parse(storageObj).answer;\n if (storedData.length == 4) {\n if (\n data.correct == storedData[0] &&\n data.incorrect == storedData[1] &&\n data.skipped == storedData[2] &&\n data.timeTaken == storedData[3]\n )\n return true;\n } else if (storedData.length == 7) {\n if (\n data.correct == storedData[0] &&\n data.incorrect == storedData[2] &&\n data.skipped == storedData[4] &&\n data.timeTaken == storedData[6]\n ) {\n return false; // In this case, because local storage has more info, we want to use that if it's consistent\n }\n }\n storageDate = new Date(JSON.parse(storageObj[1]).timestamp);\n } catch (err) {\n // error while parsing; likely due to bad value stored in storage\n console.log(err.message);\n localStorage.removeItem(this.localStorageKey());\n return true;\n }\n var serverDate = new Date(data.timestamp);\n if (serverDate < storageDate) {\n this.logScore();\n return false;\n }\n return true;\n }\n\n checkLocalStorage() {\n var len = localStorage.length;\n if (len > 0) {\n if (localStorage.getItem(this.localStorageKey()) !== null) {\n this.taken = 1;\n this.restoreAnswers(\"\");\n } else {\n this.taken = 0;\n }\n } else {\n this.taken = 0;\n }\n }\n async restoreAnswers(data) {\n this.taken = 1;\n var tmpArr;\n if (data === \"\") {\n let error = false;\n let storageObj;\n try {\n storageObj = JSON.parse(\n localStorage.getItem(this.localStorageKey())\n );\n tmpArr = storageObj.answer;\n } catch (err) {\n // error while parsing; likely due to bad value stored in storage\n console.log(`Error parsing stored Timed data for ${this.divid}: ${err.message}`);\n error = true;\n }\n if (error || storageObj.timestamp < eBookConfig.termStartDate) {\n localStorage.removeItem(this.localStorageKey());\n this.taken = 0;\n return;\n }\n } else {\n // Parse results from the database\n tmpArr = [\n parseInt(data.correct),\n parseInt(data.incorrect),\n parseInt(data.skipped),\n parseInt(data.time_taken),\n data.reset,\n ];\n this.setLocalStorage(tmpArr);\n }\n if (tmpArr.length == 1) {\n // Exam was previously reset\n this.reset = true;\n this.taken = 0;\n return;\n }\n if (tmpArr.length == 4) {\n // Accidental Reload OR Database Entry\n this.score = tmpArr[0];\n this.incorrect = tmpArr[1];\n this.skipped = tmpArr[2];\n this.timeTaken = tmpArr[3];\n } else if (tmpArr.length == 5) {\n this.score = tmpArr[0];\n this.incorrect = tmpArr[1];\n this.skipped = tmpArr[2];\n this.timeTaken = tmpArr[3];\n } else if (tmpArr.length == 7) {\n // Loaded Completed Exam\n this.score = tmpArr[0];\n this.correctStr = tmpArr[1];\n this.incorrect = tmpArr[2];\n this.incorrectStr = tmpArr[3];\n this.skipped = tmpArr[4];\n this.skippedStr = tmpArr[5];\n this.timeTaken = tmpArr[6];\n } else {\n // Set localStorage in case of \"accidental\" reload\n this.score = 0;\n this.incorrect = 0;\n this.skipped = this.renderedQuestionArray.length;\n this.timeTaken = 0;\n }\n if (this.taken) {\n if (this.skipped === this.renderedQuestionArray.length) {\n this.showFeedback = false;\n }\n this.handlePrevAssessment();\n }\n await this.renderTimedQuestion();\n this.displayScore();\n this.showTime();\n }\n setLocalStorage(parsedData) {\n var timeStamp = new Date();\n var storageObj = {\n answer: parsedData,\n timestamp: timeStamp,\n };\n localStorage.setItem(\n this.localStorageKey(),\n JSON.stringify(storageObj)\n );\n }\n displayScore() {\n if (this.showResults) {\n var scoreString = \"\";\n var numQuestions;\n var percentCorrect;\n // if we have some information\n if (\n this.correctStr.length > 0 ||\n this.incorrectStr.length > 0 ||\n this.skippedStr.length > 0\n ) {\n scoreString = `Num Correct: ${this.score}. Questions: ${this.correctStr}
Num Wrong: ${this.incorrect}. Questions: ${this.incorrectStr}
Num Skipped: ${this.skipped}. Questions: ${this.skippedStr}
`;\n numQuestions = this.score + this.incorrect + this.skipped;\n percentCorrect = (this.score / numQuestions) * 100;\n scoreString +=\n \"Percent Correct: \" + percentCorrect.toFixed(2) + \"%\";\n $(this.scoreDiv).html(scoreString);\n this.scoreDiv.style.display = \"block\";\n } else {\n scoreString = `Num Correct: ${this.score}
Num Wrong: ${this.incorrect}
Num Skipped: ${this.skipped}
`;\n numQuestions = this.score + this.incorrect + this.skipped;\n percentCorrect = (this.score / numQuestions) * 100;\n scoreString +=\n \"Percent Correct: \" + percentCorrect.toFixed(2) + \"%\";\n $(this.scoreDiv).html(scoreString);\n this.scoreDiv.style.display = \"block\";\n }\n this.highlightNumberedList();\n } else {\n $(this.scoreDiv).html(\n \"Thank you for taking the exam. Your answers have been recorded.\"\n );\n this.scoreDiv.style.display = \"block\";\n }\n }\n highlightNumberedList() {\n var correctCount = this.correctStr;\n var incorrectCount = this.incorrectStr;\n var skippedCount = this.skippedStr;\n correctCount = correctCount.replace(/ /g, \"\").split(\",\");\n incorrectCount = incorrectCount.replace(/ /g, \"\").split(\",\");\n skippedCount = skippedCount.replace(/ /g, \"\").split(\",\");\n $(function () {\n var numberedBtns = $(\"ul#pageNums > ul > li\");\n if (numberedBtns.hasClass(\"answered\")) {\n numberedBtns.removeClass(\"answered\");\n }\n for (var i = 0; i < correctCount.length; i++) {\n var test = parseInt(correctCount[i]) - 1;\n numberedBtns\n .eq(parseInt(correctCount[i]) - 1)\n .addClass(\"correctCount\");\n }\n for (var j = 0; j < incorrectCount.length; j++) {\n numberedBtns\n .eq(parseInt(incorrectCount[j]) - 1)\n .addClass(\"incorrectCount\");\n }\n for (var k = 0; k < skippedCount.length; k++) {\n numberedBtns\n .eq(parseInt(skippedCount[k]) - 1)\n .addClass(\"skippedCount\");\n }\n });\n }\n}\n\n/*=======================================================\n=== Function that calls the constructors on page load ===\n=======================================================*/\n$(document).on(\"runestone:login-complete\", function () {\n $(\"[data-component=timedAssessment]\").each(function (index) {\n window.componentMap[this.id] = new Timed({\n orig: this,\n useRunestoneServices: eBookConfig.useRunestoneServices,\n });\n });\n});\n"],"names":["TimedMatching","MatchingProblem","constructor","opts","super","this","renderTimedIcon","containerDiv","hideButtons","needsReinitialization","gradeBtn","style","display","helpBtn","component","timeIconDiv","document","createElement","timeIcon","src","width","height","className","title","appendChild","prepend","checkCorrectTimed","correct","hideFeedback","connList","reinitializeListeners","window","component_factory","matching","timed","Timed","orig","origElem","divid","id","children","childNodes","visited","timeLimit","limitedTime","isNaN","$","data","parseInt","startingTime","showFeedback","hasAttribute","getAttribute","showResults","random","showTimer","fullwidth","nopause","eBookConfig","enableScratchAC","running","paused","done","taken","score","incorrect","correctStr","incorrectStr","skippedStr","skipped","currentQuestionIndex","renderedQuestionArray","getNewChildren","enableDebug","body","oncontextmenu","checkAssessmentStatus","then","renderTimedAssess","bind","newChildren","runestoneChildren","querySelectorAll","i","length","push","sendInfo","div_id","course_name","course","console","log","useRunestoneServices","request","Request","new_server_prefix","method","headers","jsonHeaders","JSON","stringify","response","fetch","json","detail","tookAssessment","assessmentTaken","localStorage","clear","Promise","resolve","createRenderedQuestionArray","randomizeRQA","renderContainer","renderTimer","renderControlButtons","timedDiv","renderNavControls","renderSubmitButton","renderFeedbackContainer","replaceWith","styleExamElements","checkServer","disableCutCopyPaste","addEventListener","e","preventDefault","attr","classList","add","navDiv","flagDiv","switchContainer","switchDiv","wrapperDiv","timerContainer","showTime","controlDiv","startBtn","pauseBtn","class","tabindex","role","textContent","async","finishButton","hide","flagButton","show","mess","innerHTML","renderTimedQuestion","startAssessment","disabled","pauseAssessment","tmpLi","tmpA","pagNavList","addClass","leftContainer","leftNavButton","rightNavButton","css","flaggingPlace","flagContainer","rightContainer","ensureButtonSafety","break","qNumList","qNumWrapperList","navBtnListeners","flagBtnListener","navigateAway","state","question","isAnswered","checkCurrentAnswer","logCurrentAnswer","handleNextPrev","event","target","text","match","hasClass","j","removeClass","handleFlag","handleNumberedNav","oldIndex","buttonContainer","filter","x","skipstr","confirm","finishAssessment","scoreDiv","tmpChild","timedWrapper","initAttempts","is","temporaryValue","randomIndex","currentIndex","Math","floor","currentQuestion","rqa","newq","initialize","componentKind","component_ready_promise","renderFeedback","disableInteraction","includes","contains","handlePrevAssessment","restoreAnsweredQuestions","lastTime","Date","now","increment","logBookEvent","act","timeStamp","storageObj","answer","timestamp","setItem","localStorageKey","on","returnValue","mins","secs","minsString","secsString","beginning","timeString","minutes","timeTaken","seconds","timeTips","getElementsByClassName","setTimeout","currentTime","email","margin","border","padding","color","findTimeTaken","finalizeProblems","checkScore","displayScore","storeScore","logScore","off","assignment_id","jQuery","ajax","url","app","type","dataType","is_timed","success","retdata","message","hideTimedFeedback","substring","storage_arr","time_taken","shouldUseServer","storageDate","getItem","storedData","parse","err","removeItem","checkLocalStorage","restoreAnswers","tmpArr","error","termStartDate","reset","setLocalStorage","parsedData","numQuestions","scoreString","toFixed","html","highlightNumberedList","correctCount","incorrectCount","skippedCount","replace","split","numberedBtns","eq","k","each","index","componentMap"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/268.60719f20e69f885e.js.map.gz b/_static/268.60719f20e69f885e.js.map.gz new file mode 100755 index 0000000000000000000000000000000000000000..5b1887e40e3e3ac85c77515434fc997529c3a018 GIT binary patch literal 20013 zcmV(oK=HpHiwFP!000026YaeVSK~O7F#K0CZ0{~CbOKG&H1zcBNt_S@glqTE*VAJX zCowp7upMsm@ZaCMNVa6lPM~Mz+dbdTc^*2prBbO>sw$OAr9T&LoG@|&e_?xlWntiY z&cgP>t2b|}Z&o+gwg#_Ooi|&9w{JI`>SeUBvM{zM6W1R`Q0VHU-f~vD^?J9y^08iz z8Y``Oy>6`x8+Gf(S~;f&t6u+Xt+eabsYOMb`1`Q6vR|+7Q_=dc(WIx=O0RCMHFoHs zjSmOA^t-b%g<`i2fMs1G#8#bv6Q~ZC*zc&!^R1KY=2ql)axA!d(*Q7+#dW!h@nOA&v!EKV}1{Bpl%ltwgydlb4;zC z;olQ1c>_I6-y@p!Gx*cGYaHVH&qqkh&+x~(1MKn53D5_Tzp;1|!5;zM)+gh;6Cg6yKZ36< zU%>uMgNyXPVW_taqKMbX5ZMz%zD8uO8i-9DptS>{)MmpX(AG)-6zey|!xa<`uqA4v zHL}zXR}C7JbNush3n5x-1f^3)O6)Hq3Ra5-(c@8UBNQMDz9J^w5uDe;&eni&R~*2U znR#g82=uV?@C6y|vWSfdpi6BWUD7}M@U&mIMvWSiWyrW9E2J-7f^kB8u#dP|Ucy0hFILy?Ex%e#=T7)__$C0IvfQsDym3@v4Qm;H0zsMykbw z#zspW^*20vZUb?Kf$E?fOG=Z5Xp=7Kkled!v`K$rK~ObYYFnT8>0yt{wMbhv8NFA~ zME4lp?C%ipk7PIy1xQ_;csr>!ur6RG0X!QN8iHL$c5QDW#hY~!_$Q<=I|rnMHn`N4 zMZ*=5Y2;aHA3lnopu77h$J-NTThJY2fQJOMI*bL{B&XEE*#;x@W(UdwyOOf%-Z#Wp zqRj8ZZ4*+W8(Qg!RR5tBgM)(-EH> zi5{R_+mze3d+Fp4J4L8@?sT{Wsgam)phCa4F ztn;_mZ8T}DgAIOs(2;! zdobZ|*Sl1b#cnG#566wfpajz3Bz@hMlavGp3SjzvW7UN~K(US{m{s4(R>6@;tK7{~ z1)tI?51A_PYA;VPV z8g@u$hFK7I5(HCbV@I7-)LWQTo4dtjs1HzPtE3FzhZY^o&Rrc};2fpcknH=|y3wp` zn%TInlSJ|wcRM)L9T;|NZ==BkLkn(@u8F6#oahJv;&w>u$JyRLh~8gyke%JejaC2@ z@un!i0M2VWIUa-gg)_sm1g9}5XVf;8{D|EX1qH}0jRa5|p4y+kLiqw`1^YPyWa9OG2X{d z%JA9T7z+I3u+3NipY26$HZMUe{Z5s;C^CM3=qL!C?XzWbf|Gkq`_d;S`yD^wq8T4L zUR%ZGb%)TjXlA2!Rp(+y*t18v&2$uYGCbi~0hvZ*3c!kd3^n#H_muHCzhvnS^QVn? zvc`vzQ)VaXoC`5Iul8sq_Q_))<2^#2?Y)PVH29#IV=@`_|vAKU3`Wo{;oH5HhEoki0a(V{a9+CXBsA_VkmIa8(UcpekWtr@EG9#7c1|f0IxruXy z8yLcQo5vCr!bWB=McoN^lH7q~wDzp^3|%t?<#0~Qi^<^}l^2tPxz#WhbM(Qyl!M6> z>}_ZRMRfqLt&TEKy>+e3G7aX$sxh45K5OkTI}%cBzuw~lm)S|PnHh>4o7zI|t#eL8WvgXa zoU%K`Z{AYzll4xHTh3X9?QUIjoVhs4hyr zp^`^zxT6k@8@u?S>oY5WN+fTYPCG*kDI#&Nh2I0?3+Mg*j+`X-EIMwHS0I~I@!I%$H&i8bZfQaW(`4G zot4+{_H9G7ka_}PmTxp~cO;oQpI{)Gbs@6Em-Lq{)$4X56i&Iie_*J-N^X<(nw0_rBO+)6j8=WElaZW-6_-0=$wVe4PLD6^ zou^Ev*70bL8RGJC6WFHxNzhg|mVmii8;who9Yv-C+x5r`-GDgqoE9eau!z+>;oYTa zb8+{CJ^^cgG8%LN;Yd1s2B>l3CA9jJ1G8_D;^N!B_4qMz= z2+=O@>2Lk5^Q86Ud4i72HTfworGf@Kq}uEPChgx5N?O>Em$a`0#s<0vglFIl+n{2< zgM9)IC`&tgb#>4;EXB1T>P815;9*0py@AG9>oi3LOayd|#rx_C;)dZ3RCw11gyy;m zEli-b*o3INc9t+oA`ByJm#0#h2na4b;52d zuc7$KrS}e)ZVx6PfkwIV>87K=ws+Wr(?e~yrhN(7L)O>aWvSh2)khfypYEot&3jm_ z%Z9)l0DfNIL1J9CUXwWZxW3E#Z!O`jhc?)sa!;`@VJqf{mn)2%uy$#RH&W}J)^~Uggf%|#m~FQ>cxH{q9&|p{1VsTW~bPh&5U6A7TY$&DmUbmjfgg| z7)~ZShCc-)zCtT6FmSn!@gOEUC19@<{At}->n3BPnP|eqH6hH5gUgn26AT3HKI2lG z2N%)KYKlpm!6d=+{wAmi8d#bT4alLtaua_O^85n1%w!aaN`H~HJ$fg0-tB3g#qiSMw$Htz+DW#X}4xir`?k538{W}&F5fS|31~1@+^m%Pb7PGwOkh>O_l&7$fW~fB7 z)sKcae_CJkYP5WAQ$Ge?S7+-UJ$gv2)*Z3rUK%$@3-5g#uDv>$Q@1-Ld9leI`dfFx zZhoG0ID+p|SP;9k4C={HQjW^Q-|QDV5BB6nZkwV|0F@EPUb+oG1D+Q1)`k@t-`_N{ z@2}`Rtm{qhQAR;$JrM_TkM`*$1q`zC@>Hn>hLTApbncKb+IvKwdmOc9eXT1NX2lES z);cXT#|`9-0sBYxSJ7c)eZ&brSld@#ofE%l@9M7_;&I&ND54gH$XGI>k_dQy*;Rra zC%iQLXkd=9g(e7fx+@pcT?$wMM(D3MWy4+C-cz<7ZbO`igu# z-3N6jtP$J2x9mbZ+qbV15F%VPY%}xnm=nSiN(ay#hG9(Gxx$Dm3H@YFUH&{==0F^C*0NvfE zu$@ukfFEJ$gt9GeuvI#2bcy#y9H%{OkWJej)VfMk?#V0R20WCl-!>F8Ko(-+jds+T z>t_nBawM?PWbvBfHBG11;mBk+WB5|%p>f}2bmK1YYx@fYltta-of2ab?MQ!ad(`}3 zDk0W)u)3;Qz8(|ICg%l5ne8N%d#F`+)KCoe_ll4EmzKn3!cp_1Mj&3mx{L<4v+$6`V!1P6i1SQ?I@_nhQ^*m( zj)?uGh++^tdxjW~p~bk?MDWAm${S#agSCAF>PMz-argw#>>Q;~O}HO%ZAf#Bl+wPx zmy&VVl)KPZhiF5MnkPtBjBDDf3vyCS*0>S0wXgy6+h>#hf;DSzJhiF+J-0+OOJ><|dXso|xvHXG0$FIZ&2S)PUbTZ+a z6nRKfAj8&v%F12z+3wb_c}FB{ zlIT0UCRx%QlSh1KWw?uKWwnXnmDq;ZDWL^v>(eSn?!DQey6DrQ1-FBIIwmvaIBn5R zJ?wJ*d)HQdO3Mw>3fRn-Oek=BFXi`Zk_ZuvMqg+w4mlkPAlTFbnPuT5q`Arn#I9X`fhcshmvi(CRKaD?Wup@xN;dfnO8iDW2Gxw!r-R|XsE%@S${@Fn zq&EA=Ar|eLH97oA7+^IC7(z>~iV*j^j;d20STC<0@CpP6x^|>FZ%!y8%1Y;7>w`dN zOaWv~G2x8|(hgA(oTKr7THo5A5iGeXTqqz1`|IslZeg|bWN(&{hN>q&^)A$N1#~cA z|AJ%Rb_@ZL-F!ggRcls2fw~kwxB_gI1P3jozcNSDuH_&r^5M!Gz=SeUCsG?K;v_1B`sb4 z)h$V9=Wf!3*BI|`C7Af9t>mEL2id|2wjk8uSrP?}R#Z1;cZ+bL3!60(Hf!9@za2?) z5bSgZ45B@=RxY+{XW8W^=(ZR7JUAv-`oZLQ_HrV3Mhtp=EYGVPv!xU=oah+MsDoHQ zJw_|<;D(=W`P&^o-5=v*Js2I%vo@09SS%_|Sd+JKYf;QgHZ6z3%Ys|8{ZvK{8|%l4 z-}0gH8pDnN0(wmy;TMn-`IHTshc3$@cI>RU#MvTR7XxUmG@O^kb{8w}xQBFTvrdF0 z^+#s{`+T@5J==lCb=~LaH-GX#q%e@8z% ztGj%VEsOJKwwH*T*BV@E*cj0Pvr$7jP)0&ae8ywx@@0)T%OXBN#AojJh0}x=#fRd6 zZFGYDY+W!paTB@j^BMoNXW`$`GYovU=j#~SG{T$R5z_hXP6o%jgC_*QZ8owWKNDlU zLT3yZwjOThw(ihw;WP{NiZ@_;ctnR*Ol}fE*XP})rLx-QKLfz1ud8|{rfIOnm?QzG<*0QSP|LtkhqV__ISMPsFCc#)%{kEu%w z*Zvh{C9&PZHwZBujs4}hyk)l-~W{eK>vR=qvg;R%Nn z6}c5e2vbT?0kPg8Ssgah{j@72H%t^f?7gO1Z|t4z{Eo~D2LB$7_bMG`I3JzL@eUdy zg$^AWC!bc+=Wp}rP04wKT#}e^enUo$_kECC-l}8KD6i%@iMK8E}PSa znfVZzwMOl*C{4uGDS2Js_x@eOJJpI=xV%y#k#8xoz*%}>_d-`Ba zx544_)QS@+Lu<1mF|_DVYB`LUg?oh5|2Aa@g1={s<9Umu{~fP$VCmAUw>K=}nA*OX zEpQ`mGd~jT5WP;V&ONa|hDyUKi@jXUbmmz7>xS}1lHKxlKZ`O+u-S&Mcb2M-yBvb&k1LELNk_B+PhiIrF=Sc1H%I+**_IY|__D(^^;N)acEd&kv1PT?WombuAhDYYMqY4Mq+aNlnIkiWp6e#vu~YO3g-gpQnZ+ zIs`TkR*46l2aUya?o#=xxe@GZ;a z9iAToTyeDE_|!}s?p%uZ8+d-B%m|EQZQuW|>FZe<(D>$*f*d~3M#ZEMEa=$)wCdhQ z3DhHuOJ#@|(68n$1EqpatFYi*b4LMal>mIeNM=y~=Q84KmB{3*F|{a^>axKv?aL(IA9})Z zn|7_8M8j?>o{qSk^>hpmxqMg2?$q%4l=_(Ak0@Epr9~>i+UFA)568J89A{B$ylOE% z=mhnY##eK077iD8pf)y6$3d(ci{djg?F8Kajds$`C8pDoXWF!OUgz9nyf1pm%|z6l z(Avqja?QQjS2`mOUZOvo4wqTD@agW2_$1;Mr**hKWIreiFis+H!#i**0SK+YdPA8m z_f!AtWpnd{O#QbfBunp@^{zzjOza0OvB;~72{(~XD0QNBIL!yr(zy+b@oO)vEJVRH z>^afG_Sc15=VD^_uC{BnbLYYe#*@Hz{5YyrYvI&)q8J`)V>|ARTz^=*jB2qvcKSc$ z8%}sS4-Bf80Kj_R6FjWIkD&sh<3i;yuKd{*4IGETh3AYPD}yi?SH3M&Yf97K7T$gH zzxmD`)#*C}d+NoNo@Yl<7JL{D zBAkww<4xu$pERHCc~6eIhD)s`3P#Y110xgkt|~5+ufYF^5h_W=s9O1eW#n^ZVu$wF ziJee`=Q1bf(`d8aZpX`-`F8FizvhBK>zwdZ;F7b zz0k2^r^R3wzb*9Ln{Ny12&r|;D!SvLUQt%6Mq!UATCLW8L@^9*uSOK9PW+)hB1sJz zja#=LkErI_#^kQ7WGQ;;(_TW;+L z+M6@Th^P=x9OIY4sQk+Y;s{96~KMMchP0;Hiqm_i+z zpxgR;o+Q-Hw}lTH*^+7l+lxx;?d0kSAy-@pJEhclG>DBI5HlAbuMKhohQmK_qxcDO zAdyxMR&+q_MY+Km+xIXhQM|!?)ao$tWyJ(I!H1z;jPEB-FsR(Rem}UaCQS5WV56`G z%-$nzQ<&-l5V?Jrd9vx^DwRJU-%%4qMXFNAK-t06?-66^iUD!M7gdsCT7Tt0IJdeI z(p1Q!BwtcCqneV^h%4yW+JC*D`@e6#{KXh`fw>))UZ{ELouTmDpb5YS;Fk*KLazvg z$AWq9tTKSP#x10!@zbd^2C|~Rs+4{PCdq#miQ;~xaj(BOmfm;6i~Guv7X|(tr7M*; zwY9a{+D3NTJrVE!ssU#&Okwha!Qu8|A)H-Q$ zD@Xt!hTG|UXy}y(ZhVp0Uie_D*0uCX<-4iuBqOewox2&&HvU@<$(#GBaF-aR$~=FFx`!EELge zsVNZ(zmbAn)TZLSNLuQi6G=lGB>4w1a}#^H%=}KwZk?~6Z*-##7KAR!WfH#lJ8Q|} zJG92I41PxaLl&bSyJ2cL1_LTCL=m72-J}n;5079NKmj)fTLLW_Fk&;UfO+WlMH5xG zpG88}LgQUUia#6zJ4e|nH*Vyj@OoeQ`aSy%kvwq6E}C|$*^eH6aQaAb)K_RzC`C|F z{o;bDcewasQNv}a+P7nSk*z;aoJ%>|Cf7EytkVHAcLu1H%G&Bu<-aO#R+;>W8W>s; zOk`vSumMo^dtlu2(A?Q$L(5|Ro!wrs0HEg_VoEdX=xL{CLl z17Sip4`%4ZGrt zA{2s{3C7RIg{l|gl0cth4&ZDFe_{gQj0{VuB3me-$$YI9Higv-_@0Z!~592B6}zIA?gL8u}0#ZF?|%D&f?JEchYJX7ZDDhnFWmPPXV|ep9pKYc(k))IE6=1T?uX!}QFtPU&x2^w4u8b>}XkKxUp^v^w&Y_j;GP$QWZwh z&nTH02xPYi7^pT>gh2JeMRzEaR-BJHmuPmtbG|!2{hD1wfTdkY+y++B+64GHyyvxJ z5Y{~pdm=o}yfxOrz0a4#rpa`%;NJ z(~j=_UZr5jGET@{n>|z@*un}+D`Ib4ef)Q&(($jSZitfscp4Tdw>EAs1eGg4xYgiv zU|up1&@mN1h_k@36~A)pBp}A{9agkqc5c}*P6s;`Bna@rad4#se=hC`Uol_d!vF;- z!0iVbAVgsjOr{>rZk&H^FpVngWr?af7ev609e)s@7c?{1+?yY6e_L7Ju4G)+ARZ#; zhi{LaZB5(o2c`6*=J)rbz;mizFkF<4FJ+7b6&MgU@fMsp;f>pKq8#%OKRZM==m>gG zPx;AU1^)5kPZd5C{sCimeTVjILmr>yF@|%M4DEzi7duK<7RdgEqLw9hW($Y}rF=NBNGf^*^ zz{sFpwr_1%+z%Wu6&3|iO*PO2N=nP>gndq;iK6&V6|{uydZyL7G#IED5Qe87dT~=k^^`RbaiMIR^G@ zT%i3F{H|Zg5DPx{X!S&Tn4}fQAlMhd4SO7E;ZLsK9+L;{SENtXG@z!j z7sgHHx60a*O727ZMo>H|8nmJ*J$*$9@v|`Tv8#0)4s8b#UllVB%@bO@3_3wrGgo6PuqX45gZY%6<%dUE8 zTe<}{mWa1N8jC0sjAfwBWyJV6h$0ub@6-r|FgPP4K=`ct2on@GEw^)~w~>|A`JJp& z?0&z6%OANF4&Y%XA>eea;N(PuQx&VGChwu>l0khaZ3uAtXIdhe@Yghz2`Ez7-4vUU zu+$upJH%>eHTAx;XsEtiRVPeVz`}WJL~z8rxhqKe6AI9^ ziX46r6|&Y!<(7PjIJ%J%3`wl7uqkTC%)BU{6UAs{$Uk#<3IJqi@gifg8JW(d#WBY& ze1Oj6Bw50h!i$=hcSV{*Si(82aT_B3;ZvhMlg@;5G5WEgcG_}QY*v<`hc9V+`U8QBCO&yjDzSx&qEK$(vYQm_cp}{IrUB*D7R8-79PZw%9 z7>&3zvR8=N{7BPg$ula8PRq8eY$`K;Que9X|G2yIV&dG5U||0*hU|-bB85X zb6ZLgeh%Z26hhNOlB3@gTC<&b0NzzkQr)OfD%Mk8jw^(3Z$a#H3867r$g1vLg9eq*aAxFOMAA7nh5;!X{Yl<2#16v^Cv{|Gq8! z8Ueri!{5&B5I5|$E1!cYTLtL*#nmvb*(t0B>|1}DhSi`!dk=+sUO)?CjCisyR+48& z#K}^Cw9q#WIuS%19@W4NtY3bu2_!I{RQR(6Xc#sEwZp{4wUngrEiS>alpUhq+9xa{ zS^(qguyPxOSHI-KoDJec6J$@;;aGwXP3}V;z1`qXeGbLc&|~t{Za@QWN8eK0QUln=K5@ftEW*fSbw4G@)~2 zSony}4FLwSOPNHTdPZHGR$fBRvv8V`$73iqx(({za|ZETR-)$?)P^Qm%{*Pl z1PJvX|MvFP>#cVcCRo0|T3sP(zAf0HYrpjD3&%q*50e`=6^$e_gOH+w0jxfuCW;lV zRbn%Rc+e?d*X?u733YdNlRX;U-ZYGYP}B@uHW$l>InUTSl<9Tsm$sOhEg2${=}3-c4sa=QvJ}o9 z(5)Bu%vT6{Huk2uvoUYAxh9UGo}4s;c~E@HjM4bQ>>rWSMYu?i*M;RMtXXyem9V)P zt}>q#(7Lx)g<_s`hhVD|%{7uh&*yqwfIXA*3#4FHd~-MEuRo9ME~xrf2yZ`!uAx?D z=3*BssO&aY-ALZI-*0<;vQ-+>xsS8=6;h z*ipi9mkmv-u{UWP+)!}!U_c?#N*Fe7lT>)9$oaLMR9vfaR6&w1!W?o*Ua+wpUSZV8 zMHpaQf{W(>aR&*&J7E}v)dcFRst9Jl-5DcJn+-FB{FUcihj zj+Vzgily9v8g*JRUi!3p{O8Dm^!PzhME|3x5(fc>^8W2)k#iv5yQ&-Uk#3;O{~Ws5 z5~Z9N&N*5y1RF3eYDH1f5 zSR)W@o`beEdVm%woF^x^%6y$lZ*}Qs=4`TG>~QFy!SsULtMZE_avbL)F6kpD>{zTJ zrnMzg#10K!R2hP5fTbla7AP(s^Sj9PQGO_27>#s1S|(XideBXW%F+nj8Ae0V&@M0M zqlNQ*#*ukOpV=W;*k|1*^^bM=?-;=ec9kOrxnLVoTEY46OLHAje39F``OB2W zOlv)_H2)FxrA!>OaC?D=>yxDtttuxjrT-x78LFF(=oUFKKl%fM8?y(peCR|h2Mq4a zlG6xJa+l6*$9RH^6%E2OC>exmqc4^1e`OUxCogezq1q`wt3i7Qj~2Q`wqZu#X&i)zyz}Bu#^v!3qyMX*Ba$ZX{{Lz~B%MO`XR-k8G;ho*XJwG*AiC^VghvITvx9*$w{bP9evty^;23B*G^H zIz5QL3j-s7?E;)O@nC9E$~6&Go_AJpt@RSZ!xq}h8xW;_4=yt_t{46uqQF(m&QQf4~; zbCk@E%il&ykct2CAM=*}^`}YwlWg~VQa@(Wl^5hD$Qdz|^lio=u;cs!YgX921e;l8 z{5pE|TcV%zv;s+1reAAND5sWmsQIk->^Yiq5tL$QIISlW8ax$)+4(3klzkhlvnaqEB|Y1h z>xAqoP5{Rgbd(*7PDRP&TZV8kfbGYwr)AfoTwcPz*4Mz+(eFoLa8Q2C(QiewIkOat zgMP3rQsvX-E?E1*fj;ypQ9V4_yeA-}QQ(%H285br=*-n}?6p+N&uKf9E_-xAIvOP1)ivbV~&NgK@F?`Krl-gDj zQ5C@wab_hc<4COgE~Zj-#z4pI%IZpSCPrloT2N~#Nu&y#=Yud> zG-q^~v6A(jICyaYEWdxZy&P|G%UPc;=TP-XbkTZkY-4zxNa{l?x6yPk099C3DXLM^%Fq}{%MrjS))NCukV50?7gJ8a85aO!cr5bDL4=$dKoq*;2*m59{g zwOu+b3VegeDqyN!ig+5fa$vZa7HwxN>n zA{vq@|2HYQaa4Knr}J1c9z`^NobA(3qkf;glpysfOYOUUb~PlfZc2)ndE_saBPk7w zE@Awt;ryM2T!F9=EAf;AO-Zp!R!b?B%QbwCz9wr*Nm;DZr1Ji+JhhQAfyxY-f|#-l zd}Rp8f%-$Zf8NbiclP0kY!%&^JhQm)Pj_&Gn)lwbA#kRcI&rHS-WK9b`%YB6G$^=z zMgpK!cX8!+b6-d#0Seaz4%Y15f$Uxb{+Av!nLl7o->oyIw0bO|X`W-0G^X=i%2WnI z$=oFG6jgJS^3^+ekeS`hLK@83bS5+EyjxFcRzxiuaw*A-TLDUL%d*Nvyw6F!)2ylK zh1$4WORm~ofg+d!Y)m&sOP}zCqutJ{`*QilSB&Q(vpMj+d#r#?dASHq95}d?C7^En z@}(;baj1E&H3DnN!G79E4p3WoPZD1~Q+>k8>^qh!Gq5~y)axG3dyjinn-Wf!a z%VZSjQv!Y030ui4*9sF8WTw+vk(G{j*^4_+o51B&zaVkte5{&)1rsWC3WJxpK3AqNqACaB2B{ z=YFwhp_RRaC?UwwlMYTW_wmYasT%mkKzf$yQ{M}0^UkVr`#|ngP0mq=4n6kN-Oygj z5D)UWLq7;PCpZi~-W(DJw-ML^W{_uh{d@G4Ioa;d>#GuT zI&&UH+}*lXS^|^n>S1(f=#CxZB+J4tB@_mp2N2n8r>KFL5tSOsMcmfB~&#_5Zz~zThKjzi`9_I|(EeUcxuCk8>z&MR=CB zlXga7EqpUyJK8V`K8QICP(@lFN&|RPnwRWFCW?4Vn|)_ytq<-*yH){=c6sqze15w+sJJG)N{k8+b(O zs71O7n6%Ln`MQ$JiA}c}swNUTA5ncUtq zT2a8$9pd6r3z77LZ&5FV8}&v`f9m1dV?q%a)k>uymT`Q}D|GnQ2@Ex!1hmXUqZo(Y z@wLmz4dES>L=u*a1R)sXLc||B%%0HFnT$xTv$|B` zvd4~1>mqij+Y_`cuwYsZ9Xy4=dlU;6XwilAjy$OnId;%<=vgq3)45t4cp^Z}<5$wy zY?cPfZCixSe_~i1^_VKJR5(H&mTr_4dUZxDK}ysaK?0f5FUw0ST4GTp#!KDlwggIN zZFP0EaG6yasU#@T!Xn)3>4YvJcO3XPM2|R(7CO0+4KW4}FHYuM+2aX}lk+zbXZfEY zPMM1;^=c|D6opF7@BgAjhZ0SXmX)Vyy6mM}NRz_FMxJs7$4JYfwQ_fG6;7^ne2OCA zpRf#3!=Y@yg2EV&YhZVu$;orwZKXSvz9I-lSstIM0sq z%JgvRyqg&f=YU$^yC(5ICESG(o3*qf^YSI7+4Y<-7A{rqz9QU~(M;GBGAT}ClR~?2 zkT!f!8y!~S9$-5;nbl)cf%ffYf(LyW2NS;eS#3(aEGumba1MW|RL~*8xy7K${T#u9 z!9;*ho5MXtAQoRK8eF*)XzICF4iLxn!GLi4GhzkjxkqfYRvy7eYmT`t71O<)XF(X= z(*Zj4#%88}mEEz)`T5Yv4q9n|UmE%Qw7a}=^`GPseSDUe(=g9bUzIpNvrd)#1=SgQ z-QujA?jSvyng-JIJmsAat?FEU46|Bo{24tW*xNyqNw0~szx;wb&kwL0OuQ_LTW=yKuN zh72fF06*W3+<4Ztu40cRH|Ok~t#^3Ze;2z-C4hq)NIpSOgC(U!s-F zc^vz!5tW#e8L=hv#V7m~@gJ%Xro|jN$QFMx+DEfZ)DQYT7{zHFhXL4RW5W#u6nlDx zlRy7WoTM-KO7S-Z-@IU$|MHyZseA$1pWc$CE+V)5@uq;t?kjekIp_A3t;T}2T=%P6ABA$7shL-gxS^~3#@)O`cZzC+H{Ot+}gXX zc*{a3M$}68jYXNNsE)^5IJT(F>{oY#B>-W`Ki@5(Z!y>9xP^)5q5rhK@@V$$$N5d9gcz( zt~))9(cxf2ZoC334O$#zG9YL4yu+Pf6XPE5CIZm5}{oA@*xg4~!D(_X~I=Lh+J4z*2k z(?mDy#Jo(JTD%6*B(Lba2F5*BA{SLOXW+q=3LuQ`8w7v~2@P|)F0C>FeV(W$pj!fq zLP^?HaCIP?91ur0{sD26`@2mqnwkO#F0G78CG!tK&u1> zAm4Uk&ZCg@n6&zYt%1LfQ5dTyCe?6rR}L{4VsPV)LrFWdcV93~QxA!DtxWMyWZx{~ zt$E8BO^3$(iXl8CJw>Tuv{QyrGIqsSWrjEZ?s=HKulQ4#5C8gCMSb^ep;Jmg=EY)U zHD=AenHNz*>$uS`f|V0_!u!p9Ok|YX$9^nI@gdH-J9lwtqwzkrd24urIS^o$JHi3) z-PPSd=i-OL0A6PC*HMvqcV^_*}Vr2%y ztQ60emC~uSQbsy+^5VHp@Z?VJWDc=p&&G=bJPIwdn3bQ)(L5Q(K!k!LHwu=SM93hu zfBeD6d1=`XB3jsMc4&_sSVBdA$dWH-{>LR#|7Ol4D~r>fBR*TiWf$abpBaxWSZTYM zT@!ZOF6T|bTic~f2;KM*t0@m9%N6WSh|uY&*Z&w%x+tnO@|;bdj~CIA8>}r^FTuy<9G`duzcNOn+4aFX9@E|kmB^N`gQfYF{?yUD;c^> zy|o$jlG_WkTCZl*QgozNZ~eRBU}5R$GDC=qV*eYdy7~V-RbM@es;{3()i>XtaE*bW zD{VW_HfTpANW)ZxD~ZI=&xke_XwNF1oen8`gGnMd zRON4+X~4Hj)kJga=htLO~!aOWUA3vf2g8{Z?>_@F{wOoan3`iu?wqJ?@MzNbwtE)*D0GnexMRvWeBF z9!V&yZMqRUgJ;h0DeSGtyIl{%%qa9pJ-%nZopDQrC*b=W!^rRHB+q8qFy|V~F9ujx z%n?dFgA-;Sf+w_y43+l^B4#t7R5JYy(kUyUMDjZUR@Np*BQ0EOV*i_Efro*orRdO8o5wr zc}Y)uAf+$tY=*0Zi46HxliMIwL&X%^s25CZli5XuIWoIoy1ZH{h|H)`_JGVsV>)Rl zrU`x~LCI|{TtG4O)=c`HPRrw_g^cQgnL{|4Q})pPo(9$}<%_bc%SKFJn=q~SdM*YE zfSq;fU`SBq=oIxfu}7ulgS;zp_;A*GXd|E9USC3|1=q}jAPrGj?3J;Y=JVo$>)#8m zv(NT@qvYzc_3>!3S$)Fj&aPFDC)!npZ-8InVRe3=T==yv#d|g&d1Gq6S zwcmVyH;3pvb7I{M0xFI&sRskP+*i(pCsGj|MU^nA5MP86T} z$nIjymszr8t4mG8W;VVaeytwG9=RpU6>w11SuOgziBopXUcPXomj}9j*|!(!{><;V%WUc z0MCa?aVl;O*u$f_ijQ*cbgafrv0Uc=(oL+=3dTLfIg*v?^!wv*I<8pK=`BodD)LxO zZdZXiM1}j+|`ed(- zB=B-p;x22HG{DmN1fVJBK`J$^DZIyJZPjG9s{~(uUvy9WF*lWt1)UMq5vaz&j(g|y z7hmy4|G$^zZ%GfWjN-Aks9;gJ_;}KFb>*Iexw&i>8_nX9|6_yy0c>E5j~tFXOaUyf z^2VfSi?h>vnb9^SQu_cF!4(}Vqq)LQXWh^pbuI$ZTprk!4_RcgZ(cBfT= z4lW)XUCG?FnMF{4@f1)Q)YZqQfO%1N*%pAGTi!!3)YEEf0?9B!KBT30rbLf%N7N`q>Ed+hZ5t76#?eboe=5>XKy*_ z+7mu&t??8F3mE2(fj~MpO$0D(~F`YlWr=w;t zE3g67@bItD@d(24Cj2cSFCqYKVw2pAWCJXu=2TD$BJ8jSf9a?=!9}wGYsgGvR63^S zl?(>(gl8n+5zA&nwh1kI6up&B6{dxc<^~bUa3ujDgN&p0OdF`1b_@g}H(K7b1zqCk>dy zN5zeV1hAvJ3~9n~bz=2VaVj85=%PsRno?21@4?jbmQ0vpdNkq)pT-lNY1jr@kk~mt9j(+{Q$O%yYMrGISjBL3E|~@y7aaHhFui;@ zLA~i*OcB|OppT^jA194-7X!ymC6A>N=q$G5X+(35U?_8r3n3(zxYO4fON62F?ivsG z^3`%dSob{aIdTALE~MWy!hi5|W5*u^%vV2{r@)eroF6_<6n+w7BA__~A{YLe` zF=X)TH2DSS{@|d4A27oPE|PNW#G{~3(-V)MV%5ti@OP6Z^mh>-3Xd1Tj$rN(HUkHE zLexRz=>{*P9WYQzQk>xWg~)_{>S!aW;Mh3$$9zo^Hxqa_P9kGY3r1bNjW-#u)<%wI@u(y<$8s^vo8;0Ru8JdW-*A`ko*Dkd7viY6CRgO3eB?{0`9aTS zphym(cR2fu6jH1+hK^m= zZ)q0MK|_{Ul6r0=4_+pkSUpqBA}ITccPtKJgmKpbdvPO(Ylk48#pp|I%Q{RF_L2rN zSrsPGb^!Slw6N-dz$nbUzSIhQdRryn!1ZGKaVNA&#Pb9-TR2WwPU8XT`(QSZ7KwU8 zJ8@omB`pz(x~1N{oX91Koq97g+kYb(mVnH?jH1KZ*EWmnYtbGXGpgyb&swP9qPd)W zO1WP-Cd{gs&LO7OWJ-B`=ZS@~@kA~%gGea|Kby=;KF!u7PaZQ&5(|%$swYiG+PWb& zl=~_8Su$0!&qKPB_HHs7WZz-cPADeVI3SyGcQ9G9cw$GOc$YjR>6R0O#0QbBSG<GSkaVmCsVG4rO$SUGL{xGLCq$|Z2CSjeTpc(WDKQCtxU`XDr=iD&I`;W~;s|r~1OJp+JZQ~A z$u)Q+gheYNn1oo@P8U-RaR4f106Zuni2EZkD)n;$X<@-`!-O-^;9O}=B&|j?~nOCU=8s zN6QzgJ0dki@B?}Z8I8m%f}KM7f`fpIZUQLem9n{"use strict";i.r(e),i.d(e,{default:()=>_});var s=i(78673);i(75794),i(56906),i(78811);class n{constructor(t){this.problem=t}inverseLISIndices(t){for(var e=[],i=0;in&&rh&&(h=c.length,l=c)}var d=[],u=0;for(let e=0;el.length?d.push(e):t[e]==l[u]?u+=1:d.push(e);return d}grade(){var t=this.problem;t.clearFeedback(),this.correctLines=0,this.percentLines=0,this.incorrectIndents=0;var e,i=t.solution,s=t.answerLines();this.percentLines=Math.min(s.length,i.length)/Math.max(s.length,i.length),s.lengtht[s].indent&&this.indentLeft.push(e[s]);return this.incorrectIndents=this.indentLeft.length+this.indentRight.length,0==this.incorrectIndents}checkCorrectOrdering(t,e){let i=!0;this.correctLines=0,this.solutionLength=t.length;let s=Math.min(t.length,e.length);for(let n=0;n0&&u.length>0;)if(c.length<=u.length){a=c,c=[];for(let t of a)for(let e of o(t))if(l.has(e)||(c.push(e),l.set(e,t)),h.has(e))return[l,h,e]}else{a=u,u=[];for(let t of a)for(let e of r(t))if(h.has(e)||(u.push(e),h.set(e,t)),l.has(e))return[l,h,e]}throw new d("No path between "+e.toString()+" and "+i.toString()+".")}(t,e,i),o=[];null!=r;)o.push(r),r=s.get(r);for(r=n.get(o[0]),o.reverse();null!=r;)o.push(r),r=n.get(r)}(t,e,i)}catch(t){if(t instanceof d)return!1;throw t}return!0}class o{constructor(){this.graph={},this.node=new Map,this.adj=new Map,this.pred=new Map,this.succ=this.adj,this.edge=this.adj}addNode(t){this.succ.has(t)||(this.succ.set(t,new Map),this.pred.set(t,new Map),this.node.set(t))}addEdge(t,e){this.succ.has(t)||(this.succ.set(t,new Map),this.pred.set(t,new Map),this.node.set(t,{})),this.succ.has(e)||(this.succ.set(e,new Map),this.pred.set(e,new Map),this.node.set(e,{}));var i=this.adj.get(t).get(e)||{};this.succ.get(t).set(e,i),this.pred.get(e).set(t,i)}nodes(t=!1){return Array.from(t?this.node.entries():this.node.keys())}edges(t,e=!1){return Array.from(this.edgesIter(t,e))}nodesIter(t=!1){return t?toIterator(this.node):this.node.keys()}get(t){var e=this.adj.get(t);if(void 0===e)throw new KeyError("Graph does not contain node "+t+".");return e}numberOfNodes(){return this.node.size}*nbunchIter(t){if(null==t)yield*this.adj.keys();else if(this.hasNode(t))yield t;else{var e=this.adj;try{for(var i of toIterator(t))e.has(i)&&(yield i)}catch(t){if(t instanceof TypeError)throw new h("nbunch is not a node or a sequence of nodes")}}}*edgesIter(t,e=!1){var i;for(var s of((!0===(i=t)||!1===i||function(t){return!!t&&"object"==typeof t}(i)&&"[object Boolean]"==Object.prototype.toString.call(i))&&(e=t,t=void 0),void 0===t?this.adj:mapIterator(this.nbunchIter(t),(t=>tuple2(t,this.adj.get(t))))))for(var n of s[1]){var r=[s[0],n[0]];e&&(r[2]=n[1]),yield r}}reverse(t=!0){var e;if(t)(e=new this.constructor(null,{name:"Reverse of ("+this.name+")"})).addNodesFrom(this),e.addEdgesFrom(mapIterator(this.edgesIter(null,!0),(t=>tuple3c(t[1],t[0],deepcopy(t[2]),t)))),e.graph=deepcopy(this.graph),e.node=deepcopy(this.node);else{var i=this.pred,s=this.succ;this.succ=i,this.pred=s,this.adj=this.succ,e=this}return e}successorsIter(t){var e=this.succ.get(t);if(void 0!==e)return e.keys();throw new h(sprintf('The node "%j" is not in the digraph.',t))}predecessorsIter(t){var e=this.pred.get(t);if(void 0!==e)return e.keys();throw new h(sprintf('The node "%j" is not in the digraph.',t))}successors(t){return Array.from(this.successorsIter(t))}predecessors(t){return Array.from(this.predecessorsIter(t))}}class a{constructor(t){this.name="JSNetworkXException",this.message=t}}class l extends a{constructor(t){super(t),this.name="JSNetworkXAlgorithmError"}}class h extends a{constructor(t){super(t),this.name="JSNetworkXError"}}class c extends l{constructor(t){super(t),this.name="JSNetworkXUnfeasible"}}class d extends c{constructor(t){super(t),this.name="JSNetworkXNoPath"}}function u(t){var e=new o;for(let i of t){e.addNode(i.tag);for(let t of i.depends)e.addEdge(t,i.tag)}return e}function p(t,e){for(let i of t.edges())if(!e.has(i[0])&&!e.has(i[1]))return!1;return!0}class v extends n{inverseLISIndices(t,e){var i=this.problem.solution,s=e.map((t=>t.lines[0]));let n=u(i),a=new Set,l=new o;for(let t of s){for(let e of a)r(n,{source:t.tag,target:e.tag})&&l.addEdge(t.tag,e.tag);a.add(t)}let h=null,c=function(t){let e={};for(let i=0;i<=t.length;i++)e[i]=[];for(let i=0;i{for(let e=0;ei&&this.indentLeft.push(t.lines[0])}return this.incorrectIndents=this.indentLeft.length+this.indentRight.length,0==this.incorrectIndents}checkCorrectOrdering(t,e){if(!function(t){try{return function(t,e){var i=new Set,s=[],n=new Set;null==e&&(e=t.nodesIter());for(let l of e){if(n.has(l))return;for(var r=[l];r.length>0;){var o=r[r.length-1];if(n.has(o))r.pop();else{i.add(o);var a=[];t.get(o).forEach((function(t,e){if(!n.has(e)){if(i.has(e))throw new c("Graph contains a cycle.");a.push(e)}})),a.length>0?r.push.apply(r,a):(n.add(o),s.unshift(o))}}}}(t),!0}catch(t){if(t instanceof c)return!1;throw t}}(u(t)))throw"Dependency between blocks does not form a Directed Acyclic Graph; Problem unsolvable.";let i=new Set,s=!0;this.correctLines=0,this.solutionLength=t.length;let n=Math.min(t.length,e.length);for(let t=0;tt.trimStart().toLowerCase().startsWith("class ")))?this.text.toLowerCase().startsWith("class")?this.indent=0:this.indent=n.length-this.text.length:this.text.toLowerCase().startsWith("def")?this.indent=0:this.indent=n.length-this.text.length}else this.text=n.replace(/^\s*/,""),this.indent=n.length-this.text.length;"natural"==t.options.language||"math"==t.options.language?s=i?document.createElement("div"):document.createElement("p"):(s=document.createElement("code"),$(s).addClass(t.options.prettifyLanguage)),s.id=t.counterId+"-line-"+this.index,s.innerHTML+=this.text,this.view=s,t.lines.push(this)}initializeWidth(){this.width=$(this.view).outerWidth(!0)-this.problem.options.pixelsPerIndent*this.indent,this.view.fontSize=window.getComputedStyle(this.view,null).getPropertyValue("font-size"),this.view.pixelsPerIndent=this.problem.options.pixelsPerIndent,this.view.indent=this.indent;var t=document.createElement("canvas").getContext("2d"),e=window.getComputedStyle(this.view,null).getPropertyValue("font-family").split(", "),i="abcdefghijklmnopqrstuvwxyz0123456789,./!@#$%^&*-+";t.font=this.view.fontSize+" serif";var s=t.measureText(i).width;for(let n=0;n0&&$(o.view).addClass("indent"+r),n.appendChild(o.view)}var a=document.createElement("div");$(a).addClass("labels"),"left"==this.problem.options.numbered?($(n).addClass("border_left"),$(i).prepend(a),$(i).css({"justify-content":"flex-start"})):"right"==this.problem.options.numbered&&($(a).addClass("border_left"),$(a).css({float:"right"}),$(i).css({"justify-content":"space-between"}),$(i).append(a)),this.view=i,this.isPlaceholder=!1}addLine(t){if($(t.view).removeClass("indent1 indent2 indent3 indent4 indent5 indent6"),this.problem.noindent)t.indent>0&&$(t.view).addClass("indent"+t.indent);else{var e=this.lines,i=e[0].indent;for(let t=1;tt.indent)for(let i=0;i0&&($(t.view).removeClass("indent1 indent2 indent3 indent4 indent5 indent6"),$(t.view).addClass("indent"+t.indent))}this.indent=0,$(this.view).css({"padding-left":"",width:this.problem.areaWidth-22})}addLabel(t,e){var i=document.createElement("div");$(i).addClass("block-label"),"right"==this.problem.options.numbered&&$(i).addClass("right-label"),"left"==this.problem.options.numbered&&$(i).addClass("left-label"),$(i).append(document.createTextNode(t)),$(this.view).children(".labels")[0].append(i),0!=this.labels.length&&$(i).css("margin-top",(e-this.labels[this.labels.length-1][1]-1)*this.lines[e].view.offsetHeight),this.labels.push([t,e])}initializeInteractivity(){if($(this.view).hasClass("disabled"))return this;$(this.view).attr("tabindex","-1"),this.hammer=new(m().Manager)(this.view,{recognizers:[[m().Pan,{direction:m().DIRECTION_ALL,threshold:0,pointers:1}]]});var t=this;this.hammer.on("panstart",(function(e){t.panStart(e)})),this.hammer.on("panend",(function(e){t.panEnd(e)})),this.hammer.on("panmove",(function(e){t.panMove(e)}))}enabled(){return void 0!==$(this.view).attr("tabindex")}isDistractor(){return this.lines[0].distractor}inSourceArea(){var t=this.problem.sourceArea.childNodes;for(let e=0;e=0;s--){var i=t[s];if(i.pairedBin()==e)return i}return t[t.length-1]}}pairedBin(){for(var t=this.problem.pairedBins,e=0;e=0){for(t=0;t0)return s}for(t=0;t=s)break}this.problem.textMoving=!0,this.problem.sourceArea.insertBefore(this.view,e.view),$(this.view).focus()}else this.indent=this.indent-1;this.problem.state=void 0,this.problem.updateView()}}moveUp(){if(this.inSourceArea()){let n=this.problem.sourceBlocks();var t=this.verticalOffset(),e=this.validSourceIndexes();for(let r=0;r=t)return this.problem.textMoving=!0,this.problem.answerArea.insertBefore(this.view,s.view),$(this.view).focus(),this.problem.state=void 0,this.problem.updateView(),this}this.problem.textMoving=!0,this.problem.answerArea.appendChild(this.view),$(this.view).focus(),this.problem.state=void 0,this.problem.updateView()}else this.indent!==this.problem.indent&&(this.indent=this.indent+1,this.problem.state=void 0,this.problem.updateView())}moveDown(){if(this.inSourceArea()){let s=this.problem.sourceBlocks();var t=this.validSourceIndexes();for(let t=0;t1)return this.problem.textMoving=!0,this.problem.sourceArea.insertBefore(this.view,s[i].view),$(this.view).focus(),this.problem.state=void 0,this.problem.updateView(),this}}else{let t=this.problem.answerBlocks();for(var s=0;s=0;i--){var s=t[i];if(e)return this.problem.textFocus=s,s.makeTabIndex(),$(s.view).focus(),this;s.view.id==this.view.id&&(e=!0)}}selectRight(){if(this.inSourceArea()){var t=this.verticalOffset(),e=this.problem.enabledAnswerBlocks();if(0==e.length)return this;for(var i=e[0],s=i.verticalOffset()-t,n=1;n1?`${i} blocks are missing here`:`${i} block is missing here`,$(this.view).append(n),this.isPlaceholder=!0}}class k extends g{constructor(t){super(t,"placeholder",!1),this.isPlaceholderLine=!0}}class y extends b{constructor(t,e){super(t,e),this.isSettled=!0,$(this.view).addClass("settled-block"),$(this.view).addClass("disabled");let i=document.createElement("span");i.classList.add("settled-tooltip"),$(this.view).append(i),$(this.view).find(".settled-tooltip").text("OK")}setBlocksBefore(t){this.blocksBefore=t;var e=t>1?"s":"";if(this.blocksAfter){var i=this.blocksAfter>1?"s":"";$(this.view).find(".settled-tooltip").html(`${t} block${e} ⬆️️), ${this.blocksAfter} block${i} ⬇️`)}else $(this.view).find(".settled-tooltip").html(`${t} block${e} ⬆️️`)}setBlocksAfter(t){this.blocksAfter=t;var e=t>1?"s":"";if(this.blocksBefore){var i=this.blocksBefore>1?"s":"";$(this.view).find(".settled-tooltip").html(`${this.blocksBefore} block${i} ⬆️, ${t} block${e} ⬇️`)}else $(this.view).find(".settled-tooltip").html(`${t} block${e} ️️⬇️`)}}class x extends s.A{constructor(t){super(t);var e=t.orig;this.containerDiv=e,this.origElem=$(e).find("pre.parsonsblocks")[0],this.question=$(e).find(".parsons_question")[0],this.useRunestoneServices=t.useRunestoneServices,this.divid=t.orig.id;var i=super.localStorageKey();this.storageId=i,this.children=this.origElem.childNodes,this.contentArray=[],x.counter++,this.counterId="parsons-"+x.counter,this.initializeOptions(),this.grader="dag"===this.options.grader?new v(this):new n(this),this.grader.showfeedback=this.showfeedback;var s=$(this.origElem).html();this.blockIndex=0,this.checkCount=0,this.numDistinct=0,this.hasSolved=!1,this.initializeLines(s.trim()),this.initializeView(),this.caption="Parsons",this.addCaption("runestone"),this.checkServer("parsons",!0),this.runnableDiv=null}initializeOptions(){var t={pixelsPerIndent:30},e=$(this.origElem).data("maxdist"),i=$(this.origElem).data("order"),s=$(this.origElem).data("noindent"),n=$(this.origElem).data("adaptive"),r=$(this.origElem).data("numbered"),o=$(this.origElem).data("grader"),a=$(this.origElem).data("scaffolding");if(t.numbered=r,t.grader=o,t.scaffolding=a,void 0!==e&&(t.maxdist=e),void 0!==i){i=i.match(/\d+/g);for(var l=0;lt.replace(/\s+/g,"")))).indexOf("#tag:"),""==(y=o.substring(w+5,o.indexOf(";",w+5)))&&(y="block-"+r),x=o.indexOf(";depends:");let t=o.substring(x+9,o.indexOf(";",x+9));h=t.length>0?t.split(","):[]}if(o.includes('class="displaymath')?a.displaymath=!0:a.displaymath=!1,o=o.replace(/#(paired|distractor|settled|tag:.*;.*;)/,(function(t,e){return a[e]=!0,""})),a.settled&&r>0&&u.length>0&&!u[u.length-1].isSettled){var d=new k(this);u.push(d),d.distractor=!0,d.paired=!1,d.distractHelptext="",d.groupWithNext=!1,d.indent=0}a.settled&&(n=!0);var u=[];if(a.displaymath)p=[o];else var p=o.split("\n");for(var v=0;v0){for(v=0;v0&&(n-=1),e.indent=n}}else{s=s.sort((function(t,e){return t-e}));for(let t=0;tt.replace(/\s+/g,"")))).indexOf("#tag:"),""==(y=o.substring(w+5,o.indexOf(";",w+5)))&&(y="block-"+r),x=o.indexOf(";depends:");let t=o.substring(x+9,o.indexOf(";",x+9));h=t.length>0?t.split(","):[]}if(o.includes('class="displaymath')?a.displaymath=!0:a.displaymath=!1,o=o.replace(/\s*#(paired|distractor|tag:.*;.*;)\s*/g,(function(t,e){return a[e]=!0,""})),u=[],a.displaymath)p=[o];else p=o.split("\n");for(v=0;v0){for(v=0;vawait f.queueMathJax(t[0]))):void 0!==MathJax.startup&&await f.queueMathJax(t[0])),u=Math.max(u,t.outerWidth(!0)),t.width(u-22);var e=3.8;let i=t.outerHeight(!0);38!=i&&(e=3.1*(i-38)/21),p+=i+g*e}.bind(this),s=0;s0&&a<=4?$(this.answerArea).addClass("answer"+a):$(this.answerArea).addClass("answer");var m=[],b=[];for(s=0;s0&&(m.push(b),b=[]):(b.push(w),w.groupWithNext||(m.push(b),b=[]))}var k,y=[],x=[],_=[];if(this.pairDistractors||!this.options.adaptive){for(s=m.length-1;s>-1;s--)if((b=m[s])[0].paired)for(k=b.length-1;k>-1;k--)x.unshift(b[k].index);else if(x.length>0){for(k=b.length-1;k>-1;k--)x.unshift(b[k].index);y.unshift(x),x=[]}for(s=0;sor{
"),_.push(C),this.sourceArea.appendChild(C)}}else y=[];p+=10*y.length,this.areaHeight=p+40,$(this.sourceArea).css({width:this.areaWidth+2,height:p}),$(this.answerArea).css({width:this.options.pixelsPerIndent*a+this.areaWidth+2,height:p}),this.pairedBins=y,this.pairedDivs=_,null!=this.options.numbered&&this.addBlockLabels(t.concat(e)),this.state=void 0,this.updateView(),h&&$(l).replaceWith(this.outerDiv)}initializeInteractivity(){for(var t=0;t(s=this.dateFromTimestamp(s))?t:e}async loadData(t){try{if(!0===this.options.scaffolding){null==(i=t.source)&&(i=t.trash);var e=t.answer;void 0!==(n=null==(s=t.adaptive)?{}:this.optionsFromHash(s)).noindent&&(this.noindent=!0),void 0!==n.checkCount&&(this.checkCount=n.checkCount),void 0!==n.hasSolved&&(this.hasSolved=n.hasSolved),await this.initializeAreas(this.blocksFromSource(),this.settledBlocksFromSource(),n)}else{var i,s,n;null==(i=t.source)&&(i=t.trash),e=t.answer,void 0!==(n=null==(s=t.adaptive)?{}:this.optionsFromHash(s)).noindent&&(this.noindent=!0),void 0!==n.checkCount&&(this.checkCount=n.checkCount),void 0!==n.hasSolved&&(this.hasSolved=n.hasSolved),null==i||null==e||1==e.length?await this.initializeAreas(this.blocksFromSource(),[],n):(this.initializeAreas(this.blocksFromHash(i),this.blocksFromHash(e),n),this.grade=this.grader.grade(),"correct"==this.grade?this.correct=!0:0==this.answerLines().length?this.correct=null:this.correct=!1)}}catch(e){await this.initializeAreas(this.blocksFromSource(),[],n),console.log(`Error restoring answer for student ${t.sid} in ${t.div_id}. Defaulting to original state.`)}!0!==this.needsReinitialization&&(this.initializeInteractivity(),this.isTimed&&!this.assessmentTaken&&this.resetView())}localData(){var t=localStorage.getItem(this.storageId);return null!==t&&"{"==t.charAt(0)?JSON.parse(t):{}}restoreAnswers(t){this.loadData(t)}checkLocalStorage(){if(this.graderactive)return;const t=this.localData();t.timestamp&&t.timestamp0&&(e.adaptive=i)}else e=t;localStorage.setItem(this.storageId,JSON.stringify(e))}async updatePlaceholders(){setTimeout((()=>{var t,e,i,s=this.answerBlocks();for(t=0;t0&&!s[t-1].isSettled&&!s[t-1].isPlaceholder&&(e=!0),t{for(var t=this.answerBlocks(),e=0;e=e;o--)if(t[o].afterSettledBlockCount==r){n=t[o];break}if(t[o].afterSettledBlockCount!=r)return void console.log("error moving up; no placeholder found");if($(n.view).hasClass("hide")){$(n.view).removeClass("hide");for(var a=0;a0&&(i.disabled=s),i}answerHash(){for(var t=[],e=this.answerBlocks(),i=0;ib&&(f-=1),e.lines[e.lines.length-1].indent==g.lines[0].indent&&(f+=1),f>=p&&(p=f,v=u)}for(e=d[v],g=d[v+1],u=0;u-1?r.push(e):a.push(s):r.push(e);n=r,r=[]}}if(this.recentAttempts<2?this.pairDistractors=!1:this.pairDistractors=!0,void 0===this.options.order){var c=[],d=[];for(s=0;s1)for(d=this.shuffled(d),p=0;p=0){for(var p=s;$.inArray(t[p-1],r)<0;)p--;var v=$.inArray(t[p-1],r),g=$.inArray(t[s],r);r.splice(g,1),r.splice(v,0,t[s])}return r}blockFromHash(t){for(var e=t.split("_"),i=[],s=0;s0&&l.setBlocksBefore(a),o=l,r++,n=0,s=[]}else s[0].distractor||n++,s=[];return i.length>0&&i[i.length-1].isSettled&&(this.lastBlockSettled=!0),console.log("settledblocksfromsource",i),i}getBlockById(t){for(var e=0;e1?$.i18n("msg_parson_correct",this.checkCount):$.i18n("msg_parson_correct_first_try");this.options.runnable&&(i+=" "+$.i18n("msg_parson_correct_runnable")),setTimeout((()=>{t.html(i)}),10),this.showBlockExplanations()}if("incorrectTooShort"===this.grade&&(e.addClass("incorrect"),this.messageDiv.style.visibility="visible",t.attr("class","alert alert-danger"),setTimeout((()=>{t.html($.i18n("msg_parson_too_short"))}),10)),"incorrectIndent"===this.grade){var i=[];for(let t=0;t{1==i.length?t.html($.i18n("msg_parson_wrong_indent")):t.html($.i18n("msg_parson_wrong_indents"))}),10)}if("incorrectMoveBlocks"===this.grade){var s=this.answerBlocks(),n=[],r=[],o=[];for(let t=0;t{t.html($.i18n("msg_parson_wrong_order"))}),10)}}showBlockExplanations(){if(this.blockExplanations&&0!==Object.keys(this.blockExplanations).length){this.hideBlockExplanations();for(var t=this.answerBlocks(),e=0;e{e.html($.i18n("msg_parson_not_solution"))}),10),t.lines[0].distractHelptext&&(t.view.setAttribute("data-toggle","tooltip"),t.view.setAttribute("title",t.lines[0].distractHelptext)),t.disable(),t.inSourceArea())$(t.view).css({"border-color":"#000","background-color":"#fff"}),$(t.view).animate({opacity:.3,"border-color":"#d3d3d3","background-color":"#efefef"},{duration:2e3,complete:function(){$(t.view).css({"border-color":"","background-color":""})}});else{var i=this.sourceArea.getBoundingClientRect(),s=t.pageXCenter()-1,n=t.pageYCenter(),r=i.left+window.pageXOffset+i.width/2,o=i.top+window.pageYOffset+t.view.getBoundingClientRect().height/2,a=t.slideUnderBlock();void 0!==a&&(o+=a.view.getBoundingClientRect().height+20,o+=parseInt($(a.view).css("top")));var l=this;$(t.view).css({"border-color":"#000","background-color":"#fff"}),$(t.view).animate({opacity:1},{duration:4*Math.sqrt(Math.pow(o-n,2)+Math.pow(r-s,2))+500,start:function(){l.moving=t,l.movingX=s,l.movingY=n,l.updateView()},progress:function(t,e,i){l.movingX=s*(1-e)+r*e,l.movingY=n*(1-e)+o*e,l.updateView()},complete:function(){delete l.moving,delete l.movingX,delete l.movingY,l.updateView(),$(t.view).animate({opacity:.3,"border-color":"#d3d3d3","background-color":"#efefef"},{duration:1e3,complete:function(){$(t.view).css({opacity:"","border-color":"","background-color":""}),$(t.view).addClass("disabled")}})}})}}removeIndentation(){var t=$(this.messageDiv);this.messageDiv.style.visibility="visible",t.attr("class","alert alert-info"),setTimeout((()=>{t.html($.i18n("msg_parson_provided_indent"))}),10);for(var e,i,s=200,n=0;n0&&e.indexOf(s)<0)return s;return null}getFurthestBlock(){for(var t=this.solutionBlocks(),e=this.answerBlocks(),i=0,s=0,n=null,r=null,o=0,a=null,l=0,h=0;h0&&(a=t[o-1],l=e.indexOf(a),(s=Math.abs(h-l))>i&&(i=s,n=r));return n}combineBlocks(){var t=this.solutionBlocks(),e=this.answerBlocks(),i=this.sourceBlocks(),s=$(this.messageDiv);this.messageDiv.style.visibility="visible",s.attr("class","alert alert-info"),setTimeout((()=>{s.html($.i18n("msg_parson_combined_blocks"))}),10);var n=null,r=null;null==(r=this.getSolutionBlockInSource())&&(r=this.getFurthestBlock());var o=t.indexOf(r);n=t[o-1];var a=e.indexOf(n),l=e.indexOf(r),h=!1;a>=0&&l>=0?h=a+1!==l:a<0&&l<0?h=(a=i.indexOf(n))+1!==(l=i.indexOf(r)):(h=!0,a<0&&(a=i.indexOf(n)),l<0&&(l=i.indexOf(r)));var c=l3?(alert($.i18n("msg_parson_will_combine")),this.combineBlocks(),this.logMove("combinedBlocks")):(alert($.i18n("msg_parson_three_blocks_left")),this.canHelp=!1):(alert($.i18n("msg_parson_remove_incorrect")),this.removeDistractor(t),this.logMove("removedDistractor-"+t.hash()))}helpMe(){this.clearFeedback(),this.numDistinct<3?alert($.i18n("msg_parson_atleast_three_attempts")):(this.gotHelp=!0,this.makeEasier())}dateFromTimestamp(t){var e=new Date(t);if(isNaN(e.getTime())){var i=t.split(/[- :]/);e=new Date(i[0],i[1]-1,i[2],i[3],i[4],i[5])}return e}shuffled(t){for(var e,i,s=t.length,n=t.slice();0!==s;)i=Math.floor(Math.random()*s),e=n[s-=1],n[s]=n[i],n[i]=e;return n}enterKeyboardMode(){$(this.keyboardTip).show(),$(this.sourceLabel).hide(),$(this.answerLabel).hide(),this.clearFeedback()}exitKeyboardMode(){$(this.keyboardTip).hide(),$(this.sourceLabel).show(),$(this.answerLabel).show()}clearFeedback(){$(this.answerArea).removeClass("incorrect correct");for(var t=this.answerArea.childNodes,e=0;e=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom?"answer":t>=(i=this.sourceArea.getBoundingClientRect()).left&&t<=i.right&&e>=i.top&&e<=i.bottom?"source":"moving"}updateView(){var t,e,i,s=this.state,n=this.movingState(),r=!0,o=!0,a="moving"==n;s==n&&("rest"==n?(r=!1,o=!1):"source"==n?o=!1:"answer"==n?r=!1:"moving"==n&&(o=!1,r=!1)),void 0!==this.moving&&(t=$(this.moving.view).outerHeight(!0),$(this.moving.view).detach());var l,h,c=this.areaWidth-22;if(r){e=0;var d=this.sourceBlocks();if("source"==n){var u=!1,p=this.moving.pairedBin(),v=[];for(y=0;yor{")}1==_.length&&$(C).html("")}}if(o)if(e=0,i=this.areaWidth+this.indent*this.options.pixelsPerIndent-22,d=this.answerBlocks(),"answer"==n){u=!1,f=this.movingX-this.answerArea.getBoundingClientRect().left-window.pageXOffset-c/2-11;var A=Math.round(f/this.options.pixelsPerIndent);for(A<0?A=0:A>this.indent?A=this.indent:f=A*this.options.pixelsPerIndent,m=this.movingY-this.answerArea.getBoundingClientRect().top-window.pageYOffset,this.moving.indent=A,y=0;y=10&&(o+=" "),t[a].addLabel(o,0),s++}n+this.pairedBins.length>=10&&(this.areaWidth+=5,$(this.sourceArea).css({width:$(this.sourceArea).width()+5}),$(this.answerArea).css({width:$(this.answerArea).width()+5}))}resetView(){if(this.clearFeedback(),!0===this.options.scaffolding){const t=document.querySelector(`#copy-answer-button-${this.divid}`);t&&t.classList.add("copy-button-hide")}var t,e=document.body.scrollTop;for(let e=0;e{$.i18n().load({"pt-br":{msg_parson_check_me:"Verificar",msg_parson_reset:"Resetar",msg_parson_help:"Ajuda",msg_parson_too_short:"Seu programa é muito curto. Adicione mais blocos.",msg_parson_drag_from_here:"Arraste daqui",msg_parson_drag_to_here:"Largue os blocos aqui",msg_parson_correct_first_try:"Perfeito! Você levou apenas uma tentativa para resolver. Bom trabalho!",msg_parson_correct:"Perfeito! Você levou $1 tentativas para resolver. Clique em Resetar para tentar resolver em uma tentativa.",msg_parson_wrong_indent:"Este bloco não está indentado corretamente. Indente mais arrastando-o para a direita ou reduza a indentação arrastando para a esquerda.",msg_parson_wrong_indents:"Estes blocos não estão indentados corretamente. Para indentar mais, arraste o bloco para a direita. Para reduzir a indentação, arraste para a esquerda.",msg_parson_wrong_order:"Blocos destacados no seu programa estão errados ou estão na ordem errada. Isso pode ser resolvido movendo, excluindo ou substituindo os blocos destacados.",msg_parson_arrow_navigate:"Use as teclas de setas para navegar. Espaço para selecionar/ desmarcar blocos para mover.",msg_parson_help_info:"Clique no botão Ajuda se você quiser facilitar o problema",msg_parson_not_solution:"Foi desabilitado um bloco de código desnecessário (que não faz parte da solução).",msg_parson_provided_indent:"Foi fornecida a indentação.",msg_parson_combined_blocks:"Dois blocos de códigos foram combinados em um.",msg_parson_remove_incorrect:"Será removido um bloco de código incorreto da área de resposta",msg_parson_will_combine:"Serão combinados dois blocos",msg_parson_atleast_three_attempts:"Você deve tentar pelo menos três vezes antes de pedir ajuda",msg_parson_three_blocks_left:"Restam apenas 3 blocos corretos. Você deve colocá-los em ordem",msg_parson_will_provide_indent:"Será fornecida a indentação"}})},75794:()=>{$.i18n().load({en:{msg_parson_check_me:"Check",msg_parson_reset:"Reset",msg_parson_help:"Help me",msg_parson_too_short:"Your answer is too short. Add more blocks.",msg_parson_drag_from_here:"Drag from here",msg_parson_drag_to_here:"Drop blocks here",msg_parson_correct_first_try:"Perfect! It took you only one try to solve this. Great job!",msg_parson_correct:"Perfect! It took you $1 tries to solve this. Click Reset to try to solve it in one attempt.",msg_parson_correct_runnable:"Click Run below to test out your solution.",msg_parson_wrong_indent:"This block is not indented correctly. Either indent it more by dragging it right or reduce the indention by dragging it left.",msg_parson_wrong_indents:"These blocks are not indented correctly. To indent a block more, drag it to the right. To reduce the indention, drag it to the left.",msg_parson_wrong_order:"Highlighted blocks in your answer are wrong or are in the wrong order. This can be fixed by moving, removing, or replacing highlighted blocks.",msg_parson_arrow_navigate:"Arrow keys to navigate. Space to select / deselect block to move.",msg_parson_help_info:"Click on the Help Me button if you want to make the problem easier",msg_parson_not_solution:"Disabled an unneeded code block (one that is not part of the solution).",msg_parson_provided_indent:"Provided the indentation.",msg_parson_combined_blocks:"Combined two code blocks into one.",msg_parson_remove_incorrect:"Will remove an incorrect code block from answer area",msg_parson_will_combine:"Will combine two blocks",msg_parson_atleast_three_attempts:"You must make at least three distinct full attempts at a solution before you can get help",msg_parson_three_blocks_left:"There are only 3 correct blocks left. You should be able to put them in order",msg_parson_will_provide_indent:"Will provide indentation"}})},78811:()=>{function t(){var e=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);return t=function(){return e},e}!function(){var e="break continue do else for if return while ",i=e+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try ",s=i+"alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",n=i+"boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",r=i+"debugger eval export function get null set undefined var with Infinity NaN ",o="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",a=e+"and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",l=e+"alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",h=e+"case done elif esac eval fi function in local set then until ",c=s+(n+"as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ")+r+o+a+l+h;function d(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}function u(t,e,i,s){t.unshift(i,s||0);try{e.splice.apply(e,t)}finally{t.splice(0,2)}}var p=function(){for(var t=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"],e="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)",i=0;i:&])/g,"\\$1")}return e+="|^)\\s*$",new RegExp(e)}(),v=/&/g,g=//g,m=/\"/g;function b(t){return t.replace(v,"&").replace(g,"<").replace(f,">")}var w=/</g,k=/>/g,y=/'/g,$=/"/g,x=/&/g,_=/ /g;function C(t){var e=t.indexOf("&");if(e<0)return t;for(--e;(e=t.indexOf("&#",e+1))>=0;){var i=t.indexOf(";",e);if(i>=0){var s=t.substring(e+3,i),n=10;s&&"x"===s.charAt(0)&&(s=s.substring(1),n=16);var r=parseInt(s,n);isNaN(r)||(t=t.substring(0,e)+String.fromCharCode(r)+t.substring(i+1))}}return t.replace(w,"<").replace(k,">").replace(y,"'").replace($,'"').replace(x,"&").replace(_," ")}function I(t){return"XMP"===t.tagName}function A(t,e){switch(t.nodeType){case 1:var i=t.tagName.toLowerCase();e.push("<",i);for(var s=0;s");for(var r=t.firstChild;r;r=r.nextSibling)A(r,e);!t.firstChild&&/^(?:br|link|img)$/.test(i)||e.push("");break;case 2:e.push(t.name.toLowerCase(),'="',function(t){return t.replace(v,"&").replace(g,"<").replace(f,">").replace(m,""")}(t.value),'"');break;case 3:case 4:e.push(b(t.nodeValue))}}var S=null;function T(t){if(null===S){var e=document.createElement("PRE");e.appendChild(document.createTextNode('\n')),S=!/||<\/?[a-zA-Z][^>]*>|<)/g,D=/^ + + + + + + + + + + + + + + +\chi^2 Critical Values + + + + + + + + + + + + + + + + + + + + +Skip to main content
+

Math 1044 Notes

+ +
+
+
+

+Section B.1 \(\chi^2\) Critical Values +

+
Table B.1.1. \(\chi^2\) Critical Values
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Degrees of FreedomCritical value for \(p = 0.05\) +
\(1\)\(3.841\)
\(2\)\(5.991\)
\(3\)\(7.815\)
\(4\)\(9.488\)
\(5\)\(11.070\)
\(6\)\(12.592\)
\(7\)\(14.067\)
\(8\)\(15.507\)
\(9\)\(16.919\)
\(10\)\(18.307\)
+
+
+ + + diff --git a/app-Phi-table.html b/app-Phi-table.html index 13b16c2..bb5e824 100755 --- a/app-Phi-table.html +++ b/app-Phi-table.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/backmatter-2.html b/backmatter-2.html index e2f3e83..1d4c1dc 100755 --- a/backmatter-2.html +++ b/backmatter-2.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/backmatter-3.html b/backmatter-3.html index 344a46f..f5ee3c4 100755 --- a/backmatter-3.html +++ b/backmatter-3.html @@ -14,7 +14,7 @@ -Colophon +\chi^2 Critical Values Table @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -135,7 +135,7 @@ eBookConfig.enable_chatcodes = false; -PrevUpNext +PrevUpNext -

    -Colophon Colophon +

    +Appendix B \(\chi^2\) Critical Values Table

    -
    This book was authored in PreTeXt. -
    -
    +

    diff --git a/ch-Expected-Value.html b/ch-Expected-Value.html index 9e5bcf9..bb98218 100755 --- a/ch-Expected-Value.html +++ b/ch-Expected-Value.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/ch-Hypothesis-Testing.html b/ch-Hypothesis-Testing.html index 3ae46a2..ea1feaf 100755 --- a/ch-Hypothesis-Testing.html +++ b/ch-Hypothesis-Testing.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/ch-Introduction.html b/ch-Introduction.html index 210a58f..cffe6fa 100755 --- a/ch-Introduction.html +++ b/ch-Introduction.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/ch-Linear-Regression.html b/ch-Linear-Regression.html index 7aaf43c..320a47b 100755 --- a/ch-Linear-Regression.html +++ b/ch-Linear-Regression.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/ch-Probability.html b/ch-Probability.html index 6c1c3e2..dbcac29 100755 --- a/ch-Probability.html +++ b/ch-Probability.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/ch-Random-Variables.html b/ch-Random-Variables.html index efdf975..277fe3b 100755 --- a/ch-Random-Variables.html +++ b/ch-Random-Variables.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/front-colophon.html b/front-colophon.html index d4eb540..26a5ba4 100755 --- a/front-colophon.html +++ b/front-colophon.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/frontmatter.html b/frontmatter.html index 53d12f1..94c04fa 100755 --- a/frontmatter.html +++ b/frontmatter.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • @@ -311,7 +315,7 @@ eBookConfig.enable_chatcodes = false;
    Andy Eisenberg
    Mathematics Department
    Temple University
    -
    March 19, 2026
    +
    April 2, 2026
    diff --git a/sec-CLT.html b/sec-CLT.html index 3f234c4..d5df140 100755 --- a/sec-CLT.html +++ b/sec-CLT.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Chi-Squared.html b/sec-Chi-Squared.html index a04937f..bfe58d3 100755 --- a/sec-Chi-Squared.html +++ b/sec-Chi-Squared.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,21 +302,179 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • Section 5.4 \(\chi^2\) Test

    -
    Text of section. +
    In our previous hypothesis tests, we’ve asked about the correct value of some distribution parameter. But we might also be interested in whether a particular type of distribution fits the data in the first place. In this situation, we can try to measure the extent to which the observed data differs from what would be expected under a particular distribution.
    -

    +

    +Definition 5.4.1. +

    +
    +
    Suppose \(O_1, \dotsc, O_n\) are observed data with expected values \(E_1, \dotsc, E_n\text{.}\) The \(\chi^2\) statistic is:
    +
    +\begin{gather*} +\chi^2 = \sum_{i=1}^n \frac{(O_i - E_i)^2}{E_i}. +\end{gather*} +
    + +
    +
    The expression \(O_i - E_i\) directly measures the difference between an observation and its expected value. However, if we simply summed up these differences, then one observation which is higher than its expected value and another that’s lower would have differences that cancel out. Squaring the term ensures that any difference contributes positively when summed together. And dividing by \(E_i\) ensures that the differences are expressed relative to the size of the expected value. A difference of \(0.1\) might sound like a small difference, but it would have a different interpretation if the expected value is \(100\) than if the expected value is \(0.01\text{.}\) +
    +
    So the overall number \(\chi^2\) is designed to be a measurement of how much the observed data differs from expectation. It seems like \(\chi^2\) could be higher or lower simply as the result of the number of terms involved in the summation. How much difference is enough to reject the distribution which generated those expected values? It seems that it should depend on that number of terms. +
    +

    +Definition 5.4.2. +

    +
    If the data collected fall into \(n\) categories, then we will say that there are \(n - 1\) degrees of freedom. +
    +
    Suppose our data comes from polling \(100\) respondents and arranging their responses into \(n\) categories. Then, if we know how many people fall into categories \(1, 2, \dotsc, n-1\text{,}\) we will automatically know how many people fall into the final category, simply because the total number of respondents is already known. +
    +
    For each different number of degrees of freedom, there will be a different critical value of the \(\chi^2\) statistic, above which we’ll say that the data differs sufficiently from expectation for us to reject the distribution being tested. A table of critical \(\chi^2\) values is provided in Section B.1. +
    +

    +Example 5.4.3. +

    +
    Suppose \(100\) people are surveyed about their favorite color among four choices. The results are below. Is this data consistent with the hypothesis that each of the four colors is equally likely to be a favorite? +
    + + + + + + + + + + + + + + + + + + + + +
    ColorChosen as Favorite
    Blue\(37\)
    Green\(26\)
    Purple\(15\)
    Red\(22\)
    +
    In this case, if each color is equally likely to be a favorite, then we would expect \(25\) respondents to choose each color. So the \(\chi^2\) statistic is:
    +
    +\begin{gather*} +\chi^2 = \frac{(37 - 25)^2}{25} + \frac{(26 - 25)^2}{25} + \frac{(15 - 25)^2}{25} + \frac{(22 - 25)^2}{25} = 10.16. +\end{gather*} +
    +
    Since the data fall into four categories, the number of degrees of freedom is \(4 - 1 = 3\text{.}\) From the table in Table B.1.1, the critical value is \(7.815\text{.}\) Since \(10.16 \gt 7.815\text{,}\) our collected data is sufficiently different to reject the hypothesis of equal color preferences.
    + +
    +
    In the previous example, we’re testing an extrinsic hypothesis, i.e., a hypothesis made entirely without reference to the data. Knowing that we planned to poll \(100\) people, we could determine our expected values for this hypothesis before even conducting the survey. However, sometimes we need to use the collected data to estimate the value(s) of one or more parameters of a distribution. In such a situation, we say the hypothesis is intrinsic, and we adjust our calculation of degrees of freedom. +
    +

    +Definition 5.4.4. +

    +
    Suppose it takes \(m\) measurements to fully specify the collected data, and suppose there are \(k\) parameters that are estimated using the data. Then the number of degrees of freedom is \(m - k\) +
    +

    +Example 5.4.5. +

    +
    Is the data below consistent with a geometric distribution? +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    NumberObservation
    \(1\)\(59\)
    \(2\)\(21\)
    \(3\)\(11\)
    \(4\)\(8\)
    \(5\)\(1\)
    +
    In order to compare this data to a geometric distribution, we would need to know the value of the parameter \(\theta\) for the distribution. Based on the collected data, we could provide a maximum likelihood estimate:
    +
    +\begin{align*} +\widehat{\theta} \amp = \frac{59 + 21 + 11 + 8 + 1}{1 \cdot 59 + 2\cdot 21 + 3\cdot 11 + 4\cdot 8 + 5\cdot 1} \\ +\amp = \frac{100}{171} \\ +\amp \approx 0.58. +\end{align*} +
    +
    We can use Fact 2.1.14 with the parameter value \(0.58\) to generate expected values for our data. For example:
    +
    +\begin{align*} +g(2; 0.58) \amp = (1 - 0.58)^{1}(0.58) = 0.2436, +\end{align*} +
    +
    so we would expect \(0.2436 \times 100 = 24.36\) observations for the number \(2\text{.}\) The rest of the expected values are calculated similarly:
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NumberObservationExpected
    \(1\)\(59\)\(58\)
    \(2\)\(21\)\(24.36\)
    \(3\)\(11\)\(10.23\)
    \(4\)\(8\)\(4.30\)
    \(5\)\(1\)\(1.80\)
    +
    Now we can calculate the \(\chi^2\) statistic:
    +
    +\begin{align*} +\chi^2 \amp = \frac{(59 - 58)^2}{58} + \dotsb + \frac{(1 - 1.8)^2}{1.8} \approx 4.08. +\end{align*} +
    +
    With \(5\) categories, it takes \(4\) measurements to fully specify the data. Then, we used the data itself to estimate the value of one parameter, \(\widehat{\theta}\text{.}\) So the number of degrees of freedom is \(4 - 1 = 3\text{,}\) with critical \(\chi^2\) value \(7.815\text{.}\) Since \(4.08 \lt 7.815\text{,}\) our data is not sufficiently different from expected to reject the hypothesis of a geometric distribution.
    + +
    +

    Exercises Exercises

    1.

    A store owner wants to determine how much shelf space to allocate to each of the drinks that they sell. They survey their customers about their favorite drinks. Is the data below consistent with the null hypothesis that each type of drink will be equally preferred? -
    Table 5.4.1.
    +
    Table 5.4.6.
    @@ -337,7 +495,7 @@ eBookConfig.enable_chatcodes = false;
    A particular drug is administered in 100 independent trials. In each trial, the drug is administered to four people, and we count how many respond to the drug. The table below shows how many trials have each different count of people who respond to the drug.
    -
    Table 5.4.2.
    drink type water
    +
    Table 5.4.7.
    diff --git a/sec-Conditional-Probability.html b/sec-Conditional-Probability.html index 38de418..3fec981 100755 --- a/sec-Conditional-Probability.html +++ b/sec-Conditional-Probability.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Confidence-Intervals.html b/sec-Confidence-Intervals.html index 50873d8..a3c5bd0 100755 --- a/sec-Confidence-Intervals.html +++ b/sec-Confidence-Intervals.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Continuous-RVs.html b/sec-Continuous-RVs.html index d0d7290..1753718 100755 --- a/sec-Continuous-RVs.html +++ b/sec-Continuous-RVs.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Correlation.html b/sec-Correlation.html index fa491d0..1c9b9bb 100755 --- a/sec-Correlation.html +++ b/sec-Correlation.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Covariance.html b/sec-Covariance.html index b6e5c0d..7bb16b0 100755 --- a/sec-Covariance.html +++ b/sec-Covariance.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Discrete-RVs.html b/sec-Discrete-RVs.html index bd72df8..19b9789 100755 --- a/sec-Discrete-RVs.html +++ b/sec-Discrete-RVs.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Expected-Value.html b/sec-Expected-Value.html index 15ad3f8..d2fd61d 100755 --- a/sec-Expected-Value.html +++ b/sec-Expected-Value.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Independent-Events.html b/sec-Independent-Events.html index 9e74136..6af7fa0 100755 --- a/sec-Independent-Events.html +++ b/sec-Independent-Events.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Introduction.html b/sec-Introduction.html index d7c2bb1..b9a2602 100755 --- a/sec-Introduction.html +++ b/sec-Introduction.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Joint-Distributions.html b/sec-Joint-Distributions.html index c3cfdf0..7152b54 100755 --- a/sec-Joint-Distributions.html +++ b/sec-Joint-Distributions.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Likelihood.html b/sec-Likelihood.html index ae3dd2b..4a2ee18 100755 --- a/sec-Likelihood.html +++ b/sec-Likelihood.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Linear-Regression.html b/sec-Linear-Regression.html index 8a8bc24..03488c1 100755 --- a/sec-Linear-Regression.html +++ b/sec-Linear-Regression.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-One-Sample-Tests.html b/sec-One-Sample-Tests.html index a2d6065..8c46d86 100755 --- a/sec-One-Sample-Tests.html +++ b/sec-One-Sample-Tests.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Power.html b/sec-Power.html index 38c6f5d..665ff0c 100755 --- a/sec-Power.html +++ b/sec-Power.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Probability.html b/sec-Probability.html index 9d87337..2d15181 100755 --- a/sec-Probability.html +++ b/sec-Probability.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Set-Theory.html b/sec-Set-Theory.html index e08c092..ad52f31 100755 --- a/sec-Set-Theory.html +++ b/sec-Set-Theory.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Two-Sample-Tests.html b/sec-Two-Sample-Tests.html index ac0f295..f78ea29 100755 --- a/sec-Two-Sample-Tests.html +++ b/sec-Two-Sample-Tests.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • diff --git a/sec-Variance.html b/sec-Variance.html index e4affcf..72d1978 100755 --- a/sec-Variance.html +++ b/sec-Variance.html @@ -101,14 +101,14 @@ eBookConfig.allow_pairs = false; eBookConfig.enableScratchAC = false; eBookConfig.build_info = ""; eBookConfig.python3 = null; -eBookConfig.runestone_version = '7.11.19'; +eBookConfig.runestone_version = '7.12.2'; eBookConfig.jobehost = ''; eBookConfig.proxyuri_runs = ''; eBookConfig.proxyuri_files = ''; eBookConfig.enable_chatcodes = false; - + @@ -302,7 +302,11 @@ eBookConfig.enable_chatcodes = false; -
  • +
  • + + +
  • +
  • # who respond to drug 0