summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--default.nix20
-rw-r--r--srv-dev-env.sh2
-rw-r--r--srv/default.nix4
-rw-r--r--srv/src/http/api.go116
-rw-r--r--srv/src/http/static/api.js (renamed from static/src/assets/api.js)4
-rw-r--r--srv/src/http/static/component-oriented-design/v1/main.go (renamed from static/src/assets/component-oriented-design/v1/main.go)0
-rw-r--r--srv/src/http/static/component-oriented-design/v1/main.md (renamed from static/src/assets/component-oriented-design/v1/main.md)0
-rw-r--r--srv/src/http/static/component-oriented-design/v1/main_test.go (renamed from static/src/assets/component-oriented-design/v1/main_test.go)0
-rw-r--r--srv/src/http/static/component-oriented-design/v1/main_test.md (renamed from static/src/assets/component-oriented-design/v1/main_test.md)0
-rw-r--r--srv/src/http/static/component-oriented-design/v2/main.go (renamed from static/src/assets/component-oriented-design/v2/main.go)0
-rw-r--r--srv/src/http/static/component-oriented-design/v2/main.md (renamed from static/src/assets/component-oriented-design/v2/main.md)0
-rw-r--r--srv/src/http/static/component-oriented-design/v3/main.go (renamed from static/src/assets/component-oriented-design/v3/main.go)0
-rw-r--r--srv/src/http/static/component-oriented-design/v3/main.md (renamed from static/src/assets/component-oriented-design/v3/main.md)0
-rw-r--r--srv/src/http/static/dog-money.png (renamed from static/src/assets/dog-money.png)bin45500 -> 45500 bytes
-rw-r--r--srv/src/http/static/fontawesome/LICENSE.txt (renamed from static/src/assets/fontawesome/LICENSE.txt)0
-rw-r--r--srv/src/http/static/fontawesome/css/all.css (renamed from static/src/assets/fontawesome/css/all.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/all.min.css (renamed from static/src/assets/fontawesome/css/all.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/brands.css (renamed from static/src/assets/fontawesome/css/brands.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/brands.min.css (renamed from static/src/assets/fontawesome/css/brands.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/fontawesome.css (renamed from static/src/assets/fontawesome/css/fontawesome.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/fontawesome.min.css (renamed from static/src/assets/fontawesome/css/fontawesome.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/regular.css (renamed from static/src/assets/fontawesome/css/regular.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/regular.min.css (renamed from static/src/assets/fontawesome/css/regular.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/solid.css (renamed from static/src/assets/fontawesome/css/solid.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/solid.min.css (renamed from static/src/assets/fontawesome/css/solid.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/svg-with-js.css (renamed from static/src/assets/fontawesome/css/svg-with-js.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/svg-with-js.min.css (renamed from static/src/assets/fontawesome/css/svg-with-js.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/v4-shims.css (renamed from static/src/assets/fontawesome/css/v4-shims.css)0
-rw-r--r--srv/src/http/static/fontawesome/css/v4-shims.min.css (renamed from static/src/assets/fontawesome/css/v4-shims.min.css)0
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-brands-400.eot (renamed from static/src/assets/fontawesome/webfonts/fa-brands-400.eot)bin134294 -> 134294 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-brands-400.svg (renamed from static/src/assets/fontawesome/webfonts/fa-brands-400.svg)0
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-brands-400.ttf (renamed from static/src/assets/fontawesome/webfonts/fa-brands-400.ttf)bin133988 -> 133988 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff (renamed from static/src/assets/fontawesome/webfonts/fa-brands-400.woff)bin89988 -> 89988 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff2 (renamed from static/src/assets/fontawesome/webfonts/fa-brands-400.woff2)bin76736 -> 76736 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-regular-400.eot (renamed from static/src/assets/fontawesome/webfonts/fa-regular-400.eot)bin34034 -> 34034 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-regular-400.svg (renamed from static/src/assets/fontawesome/webfonts/fa-regular-400.svg)0
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-regular-400.ttf (renamed from static/src/assets/fontawesome/webfonts/fa-regular-400.ttf)bin33736 -> 33736 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff (renamed from static/src/assets/fontawesome/webfonts/fa-regular-400.woff)bin16276 -> 16276 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff2 (renamed from static/src/assets/fontawesome/webfonts/fa-regular-400.woff2)bin13224 -> 13224 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-solid-900.eot (renamed from static/src/assets/fontawesome/webfonts/fa-solid-900.eot)bin203030 -> 203030 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-solid-900.svg (renamed from static/src/assets/fontawesome/webfonts/fa-solid-900.svg)0
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-solid-900.ttf (renamed from static/src/assets/fontawesome/webfonts/fa-solid-900.ttf)bin202744 -> 202744 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff (renamed from static/src/assets/fontawesome/webfonts/fa-solid-900.woff)bin101648 -> 101648 bytes
-rw-r--r--srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff2 (renamed from static/src/assets/fontawesome/webfonts/fa-solid-900.woff2)bin78268 -> 78268 bytes
-rw-r--r--srv/src/http/static/friendly.css (renamed from static/src/assets/friendly.css)0
-rw-r--r--srv/src/http/static/maddy-vps/success.png (renamed from static/src/assets/maddy-vps/success.png)bin9360 -> 9360 bytes
-rw-r--r--srv/src/http/static/main.css (renamed from static/src/assets/main.css)0
-rw-r--r--srv/src/http/static/markov/Makefile (renamed from static/src/assets/markov/Makefile)0
-rw-r--r--srv/src/http/static/markov/Makefile.md (renamed from static/src/assets/markov/Makefile.md)0
-rw-r--r--srv/src/http/static/markov/markov.nix (renamed from static/src/assets/markov/markov.nix)0
-rw-r--r--srv/src/http/static/markov/markov.nix.md (renamed from static/src/assets/markov/markov.nix.md)0
-rw-r--r--srv/src/http/static/normalize.css (renamed from static/src/assets/normalize.css)0
-rw-r--r--srv/src/http/static/overpass-regular.woff (renamed from static/src/assets/overpass-regular.woff)bin40240 -> 40240 bytes
-rw-r--r--srv/src/http/static/qrcode.min.js (renamed from static/src/assets/qrcode.min.js)0
-rw-r--r--srv/src/http/static/skeleton.css (renamed from static/src/assets/skeleton.css)0
-rw-r--r--srv/src/http/static/solvePow.js (renamed from static/src/assets/solvePow.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/CW.js (renamed from static/src/assets/trading-in-the-rain/CW.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/Distributor.js (renamed from static/src/assets/trading-in-the-rain/Distributor.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt (renamed from static/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js (renamed from static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/MusicBox.js (renamed from static/src/assets/trading-in-the-rain/MusicBox.js)2
-rw-r--r--srv/src/http/static/trading-in-the-rain/RainCanvas.js (renamed from static/src/assets/trading-in-the-rain/RainCanvas.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/SeriesComposer.js (renamed from static/src/assets/trading-in-the-rain/SeriesComposer.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/key.gpg (renamed from static/src/assets/trading-in-the-rain/key.gpg)bin669 -> 669 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/main.js (renamed from static/src/assets/trading-in-the-rain/main.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js)0
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js (renamed from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js)0
-rw-r--r--srv/src/http/static/utils.js (renamed from static/src/assets/utils.js)0
-rw-r--r--srv/src/http/static/viz/1/cljs/core.cljs (renamed from static/src/assets/viz/1/cljs/core.cljs)0
-rw-r--r--srv/src/http/static/viz/1/cljs/core.js (renamed from static/src/assets/viz/1/cljs/core.js)0
-rw-r--r--srv/src/http/static/viz/1/cljs/core.js.map (renamed from static/src/assets/viz/1/cljs/core.js.map)0
-rw-r--r--srv/src/http/static/viz/1/cljs_deps.js (renamed from static/src/assets/viz/1/cljs_deps.js)0
-rw-r--r--srv/src/http/static/viz/1/clojure/set.cljs (renamed from static/src/assets/viz/1/clojure/set.cljs)0
-rw-r--r--srv/src/http/static/viz/1/clojure/set.cljs.cache.edn (renamed from static/src/assets/viz/1/clojure/set.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/clojure/set.js (renamed from static/src/assets/viz/1/clojure/set.js)0
-rw-r--r--srv/src/http/static/viz/1/clojure/set.js.map (renamed from static/src/assets/viz/1/clojure/set.js.map)0
-rw-r--r--srv/src/http/static/viz/1/clojure/string.cljs (renamed from static/src/assets/viz/1/clojure/string.cljs)0
-rw-r--r--srv/src/http/static/viz/1/clojure/string.cljs.cache.edn (renamed from static/src/assets/viz/1/clojure/string.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/clojure/string.js (renamed from static/src/assets/viz/1/clojure/string.js)0
-rw-r--r--srv/src/http/static/viz/1/clojure/string.js.map (renamed from static/src/assets/viz/1/clojure/string.js.map)0
-rw-r--r--srv/src/http/static/viz/1/goog/array/array.js (renamed from static/src/assets/viz/1/goog/array/array.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/asserts/asserts.js (renamed from static/src/assets/viz/1/goog/asserts/asserts.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/base.js (renamed from static/src/assets/viz/1/goog/base.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/debug/entrypointregistry.js (renamed from static/src/assets/viz/1/goog/debug/entrypointregistry.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/debug/error.js (renamed from static/src/assets/viz/1/goog/debug/error.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/deps.js (renamed from static/src/assets/viz/1/goog/deps.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/disposable/disposable.js (renamed from static/src/assets/viz/1/goog/disposable/disposable.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/disposable/idisposable.js (renamed from static/src/assets/viz/1/goog/disposable/idisposable.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/browserfeature.js (renamed from static/src/assets/viz/1/goog/dom/browserfeature.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/dom.js (renamed from static/src/assets/viz/1/goog/dom/dom.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/nodetype.js (renamed from static/src/assets/viz/1/goog/dom/nodetype.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/safe.js (renamed from static/src/assets/viz/1/goog/dom/safe.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/tagname.js (renamed from static/src/assets/viz/1/goog/dom/tagname.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/dom/tags.js (renamed from static/src/assets/viz/1/goog/dom/tags.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/browserevent.js (renamed from static/src/assets/viz/1/goog/events/browserevent.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/browserfeature.js (renamed from static/src/assets/viz/1/goog/events/browserfeature.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/event.js (renamed from static/src/assets/viz/1/goog/events/event.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/eventid.js (renamed from static/src/assets/viz/1/goog/events/eventid.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/events.js (renamed from static/src/assets/viz/1/goog/events/events.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/eventtype.js (renamed from static/src/assets/viz/1/goog/events/eventtype.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/listenable.js (renamed from static/src/assets/viz/1/goog/events/listenable.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/listener.js (renamed from static/src/assets/viz/1/goog/events/listener.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/events/listenermap.js (renamed from static/src/assets/viz/1/goog/events/listenermap.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/fs/url.js (renamed from static/src/assets/viz/1/goog/fs/url.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/safehtml.js (renamed from static/src/assets/viz/1/goog/html/safehtml.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/safescript.js (renamed from static/src/assets/viz/1/goog/html/safescript.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/safestyle.js (renamed from static/src/assets/viz/1/goog/html/safestyle.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/safestylesheet.js (renamed from static/src/assets/viz/1/goog/html/safestylesheet.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/safeurl.js (renamed from static/src/assets/viz/1/goog/html/safeurl.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/trustedresourceurl.js (renamed from static/src/assets/viz/1/goog/html/trustedresourceurl.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/html/uncheckedconversions.js (renamed from static/src/assets/viz/1/goog/html/uncheckedconversions.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/i18n/bidi.js (renamed from static/src/assets/viz/1/goog/i18n/bidi.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/labs/useragent/browser.js (renamed from static/src/assets/viz/1/goog/labs/useragent/browser.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/labs/useragent/engine.js (renamed from static/src/assets/viz/1/goog/labs/useragent/engine.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/labs/useragent/platform.js (renamed from static/src/assets/viz/1/goog/labs/useragent/platform.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/labs/useragent/util.js (renamed from static/src/assets/viz/1/goog/labs/useragent/util.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/math/coordinate.js (renamed from static/src/assets/viz/1/goog/math/coordinate.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/math/integer.js (renamed from static/src/assets/viz/1/goog/math/integer.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/math/long.js (renamed from static/src/assets/viz/1/goog/math/long.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/math/math.js (renamed from static/src/assets/viz/1/goog/math/math.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/math/size.js (renamed from static/src/assets/viz/1/goog/math/size.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/object/object.js (renamed from static/src/assets/viz/1/goog/object/object.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/reflect/reflect.js (renamed from static/src/assets/viz/1/goog/reflect/reflect.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/string/const.js (renamed from static/src/assets/viz/1/goog/string/const.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/string/string.js (renamed from static/src/assets/viz/1/goog/string/string.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/string/stringbuffer.js (renamed from static/src/assets/viz/1/goog/string/stringbuffer.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/string/stringformat.js (renamed from static/src/assets/viz/1/goog/string/stringformat.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/string/typedstring.js (renamed from static/src/assets/viz/1/goog/string/typedstring.js)0
-rw-r--r--srv/src/http/static/viz/1/goog/useragent/useragent.js (renamed from static/src/assets/viz/1/goog/useragent/useragent.js)0
-rw-r--r--srv/src/http/static/viz/1/processing.js (renamed from static/src/assets/viz/1/processing.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/core.cljc (renamed from static/src/assets/viz/1/quil/core.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/core.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/core.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/core.js (renamed from static/src/assets/viz/1/quil/core.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/core.js.map (renamed from static/src/assets/viz/1/quil/core.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/middleware.cljc (renamed from static/src/assets/viz/1/quil/middleware.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/middleware.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/middleware.js (renamed from static/src/assets/viz/1/quil/middleware.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/middleware.js.map (renamed from static/src/assets/viz/1/quil/middleware.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc (renamed from static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js (renamed from static/src/assets/viz/1/quil/middlewares/deprecated_options.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map (renamed from static/src/assets/viz/1/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc (renamed from static/src/assets/viz/1/quil/middlewares/fun_mode.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/fun_mode.js (renamed from static/src/assets/viz/1/quil/middlewares/fun_mode.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map (renamed from static/src/assets/viz/1/quil/middlewares/fun_mode.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc (renamed from static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js (renamed from static/src/assets/viz/1/quil/middlewares/navigation_2d.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map (renamed from static/src/assets/viz/1/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc (renamed from static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js (renamed from static/src/assets/viz/1/quil/middlewares/navigation_3d.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map (renamed from static/src/assets/viz/1/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/sketch.cljs (renamed from static/src/assets/viz/1/quil/sketch.cljs)0
-rw-r--r--srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn (renamed from static/src/assets/viz/1/quil/sketch.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/sketch.js (renamed from static/src/assets/viz/1/quil/sketch.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/sketch.js.map (renamed from static/src/assets/viz/1/quil/sketch.js.map)0
-rw-r--r--srv/src/http/static/viz/1/quil/util.cljc (renamed from static/src/assets/viz/1/quil/util.cljc)0
-rw-r--r--srv/src/http/static/viz/1/quil/util.cljc.cache.edn (renamed from static/src/assets/viz/1/quil/util.cljc.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/quil/util.js (renamed from static/src/assets/viz/1/quil/util.js)0
-rw-r--r--srv/src/http/static/viz/1/quil/util.js.map (renamed from static/src/assets/viz/1/quil/util.js.map)0
-rw-r--r--srv/src/http/static/viz/1/viz/core.cljs (renamed from static/src/assets/viz/1/viz/core.cljs)0
-rw-r--r--srv/src/http/static/viz/1/viz/core.cljs.cache.edn (renamed from static/src/assets/viz/1/viz/core.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/viz/core.js (renamed from static/src/assets/viz/1/viz/core.js)0
-rw-r--r--srv/src/http/static/viz/1/viz/core.js.map (renamed from static/src/assets/viz/1/viz/core.js.map)0
-rw-r--r--srv/src/http/static/viz/1/viz/forest.cljs (renamed from static/src/assets/viz/1/viz/forest.cljs)0
-rw-r--r--srv/src/http/static/viz/1/viz/forest.cljs.cache.edn (renamed from static/src/assets/viz/1/viz/forest.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/viz/forest.js (renamed from static/src/assets/viz/1/viz/forest.js)0
-rw-r--r--srv/src/http/static/viz/1/viz/forest.js.map (renamed from static/src/assets/viz/1/viz/forest.js.map)0
-rw-r--r--srv/src/http/static/viz/1/viz/ghost.cljs (renamed from static/src/assets/viz/1/viz/ghost.cljs)0
-rw-r--r--srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn (renamed from static/src/assets/viz/1/viz/ghost.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/viz/ghost.js (renamed from static/src/assets/viz/1/viz/ghost.js)0
-rw-r--r--srv/src/http/static/viz/1/viz/ghost.js.map (renamed from static/src/assets/viz/1/viz/ghost.js.map)0
-rw-r--r--srv/src/http/static/viz/1/viz/grid.cljs (renamed from static/src/assets/viz/1/viz/grid.cljs)0
-rw-r--r--srv/src/http/static/viz/1/viz/grid.cljs.cache.edn (renamed from static/src/assets/viz/1/viz/grid.cljs.cache.edn)0
-rw-r--r--srv/src/http/static/viz/1/viz/grid.js (renamed from static/src/assets/viz/1/viz/grid.js)0
-rw-r--r--srv/src/http/static/viz/1/viz/grid.js.map (renamed from static/src/assets/viz/1/viz/grid.js.map)0
-rw-r--r--srv/src/http/static/viz/2/cljs/core.cljs (renamed from static/src/assets/viz/2/cljs/core.cljs)0
-rw-r--r--srv/src/http/static/viz/2/cljs/core.js (renamed from static/src/assets/viz/2/cljs/core.js)0
-rw-r--r--srv/src/http/static/viz/2/cljs/core.js.map (renamed from static/src/assets/viz/2/cljs/core.js.map)0
-rw-r--r--srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json (renamed from static/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/cljs/user/debug9D984AE.js (renamed from static/src/assets/viz/2/cljs/user/debug9D984AE.js)0
-rw-r--r--srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map (renamed from static/src/assets/viz/2/cljs/user/debug9D984AE.js.map)0
-rw-r--r--srv/src/http/static/viz/2/cljs_deps.js (renamed from static/src/assets/viz/2/cljs_deps.js)0
-rw-r--r--srv/src/http/static/viz/2/cljsc_opts.edn (renamed from static/src/assets/viz/2/cljsc_opts.edn)0
-rw-r--r--srv/src/http/static/viz/2/clojure/set.cljs (renamed from static/src/assets/viz/2/clojure/set.cljs)0
-rw-r--r--srv/src/http/static/viz/2/clojure/set.cljs.cache.json (renamed from static/src/assets/viz/2/clojure/set.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/clojure/set.js (renamed from static/src/assets/viz/2/clojure/set.js)0
-rw-r--r--srv/src/http/static/viz/2/clojure/set.js.map (renamed from static/src/assets/viz/2/clojure/set.js.map)0
-rw-r--r--srv/src/http/static/viz/2/clojure/string.cljs (renamed from static/src/assets/viz/2/clojure/string.cljs)0
-rw-r--r--srv/src/http/static/viz/2/clojure/string.cljs.cache.json (renamed from static/src/assets/viz/2/clojure/string.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/clojure/string.js (renamed from static/src/assets/viz/2/clojure/string.js)0
-rw-r--r--srv/src/http/static/viz/2/clojure/string.js.map (renamed from static/src/assets/viz/2/clojure/string.js.map)0
-rw-r--r--srv/src/http/static/viz/2/goog/array/array.js (renamed from static/src/assets/viz/2/goog/array/array.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/asserts/asserts.js (renamed from static/src/assets/viz/2/goog/asserts/asserts.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/base.js (renamed from static/src/assets/viz/2/goog/base.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/debug/entrypointregistry.js (renamed from static/src/assets/viz/2/goog/debug/entrypointregistry.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/debug/error.js (renamed from static/src/assets/viz/2/goog/debug/error.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/deps.js (renamed from static/src/assets/viz/2/goog/deps.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/disposable/disposable.js (renamed from static/src/assets/viz/2/goog/disposable/disposable.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/disposable/idisposable.js (renamed from static/src/assets/viz/2/goog/disposable/idisposable.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/asserts.js (renamed from static/src/assets/viz/2/goog/dom/asserts.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/browserfeature.js (renamed from static/src/assets/viz/2/goog/dom/browserfeature.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/dom.js (renamed from static/src/assets/viz/2/goog/dom/dom.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/htmlelement.js (renamed from static/src/assets/viz/2/goog/dom/htmlelement.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/nodetype.js (renamed from static/src/assets/viz/2/goog/dom/nodetype.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/safe.js (renamed from static/src/assets/viz/2/goog/dom/safe.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/tagname.js (renamed from static/src/assets/viz/2/goog/dom/tagname.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/dom/tags.js (renamed from static/src/assets/viz/2/goog/dom/tags.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/browserevent.js (renamed from static/src/assets/viz/2/goog/events/browserevent.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/browserfeature.js (renamed from static/src/assets/viz/2/goog/events/browserfeature.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/event.js (renamed from static/src/assets/viz/2/goog/events/event.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/eventid.js (renamed from static/src/assets/viz/2/goog/events/eventid.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/events.js (renamed from static/src/assets/viz/2/goog/events/events.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/eventtype.js (renamed from static/src/assets/viz/2/goog/events/eventtype.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/listenable.js (renamed from static/src/assets/viz/2/goog/events/listenable.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/listener.js (renamed from static/src/assets/viz/2/goog/events/listener.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/events/listenermap.js (renamed from static/src/assets/viz/2/goog/events/listenermap.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/fs/url.js (renamed from static/src/assets/viz/2/goog/fs/url.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/functions/functions.js (renamed from static/src/assets/viz/2/goog/functions/functions.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/safehtml.js (renamed from static/src/assets/viz/2/goog/html/safehtml.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/safescript.js (renamed from static/src/assets/viz/2/goog/html/safescript.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/safestyle.js (renamed from static/src/assets/viz/2/goog/html/safestyle.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/safestylesheet.js (renamed from static/src/assets/viz/2/goog/html/safestylesheet.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/safeurl.js (renamed from static/src/assets/viz/2/goog/html/safeurl.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/trustedresourceurl.js (renamed from static/src/assets/viz/2/goog/html/trustedresourceurl.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/html/uncheckedconversions.js (renamed from static/src/assets/viz/2/goog/html/uncheckedconversions.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/i18n/bidi.js (renamed from static/src/assets/viz/2/goog/i18n/bidi.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/iter/iter.js (renamed from static/src/assets/viz/2/goog/iter/iter.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/labs/useragent/browser.js (renamed from static/src/assets/viz/2/goog/labs/useragent/browser.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/labs/useragent/engine.js (renamed from static/src/assets/viz/2/goog/labs/useragent/engine.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/labs/useragent/platform.js (renamed from static/src/assets/viz/2/goog/labs/useragent/platform.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/labs/useragent/util.js (renamed from static/src/assets/viz/2/goog/labs/useragent/util.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/math/coordinate.js (renamed from static/src/assets/viz/2/goog/math/coordinate.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/math/integer.js (renamed from static/src/assets/viz/2/goog/math/integer.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/math/long.js (renamed from static/src/assets/viz/2/goog/math/long.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/math/math.js (renamed from static/src/assets/viz/2/goog/math/math.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/math/size.js (renamed from static/src/assets/viz/2/goog/math/size.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/object/object.js (renamed from static/src/assets/viz/2/goog/object/object.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/reflect/reflect.js (renamed from static/src/assets/viz/2/goog/reflect/reflect.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/string/const.js (renamed from static/src/assets/viz/2/goog/string/const.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/string/string.js (renamed from static/src/assets/viz/2/goog/string/string.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/string/stringbuffer.js (renamed from static/src/assets/viz/2/goog/string/stringbuffer.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/string/stringformat.js (renamed from static/src/assets/viz/2/goog/string/stringformat.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/string/typedstring.js (renamed from static/src/assets/viz/2/goog/string/typedstring.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/structs/map.js (renamed from static/src/assets/viz/2/goog/structs/map.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/structs/structs.js (renamed from static/src/assets/viz/2/goog/structs/structs.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/uri/uri.js (renamed from static/src/assets/viz/2/goog/uri/uri.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/uri/utils.js (renamed from static/src/assets/viz/2/goog/uri/utils.js)0
-rw-r--r--srv/src/http/static/viz/2/goog/useragent/useragent.js (renamed from static/src/assets/viz/2/goog/useragent/useragent.js)0
-rw-r--r--srv/src/http/static/viz/2/process/env.cljs (renamed from static/src/assets/viz/2/process/env.cljs)0
-rw-r--r--srv/src/http/static/viz/2/process/env.cljs.cache.json (renamed from static/src/assets/viz/2/process/env.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/process/env.js (renamed from static/src/assets/viz/2/process/env.js)0
-rw-r--r--srv/src/http/static/viz/2/process/env.js.map (renamed from static/src/assets/viz/2/process/env.js.map)0
-rw-r--r--srv/src/http/static/viz/2/processing.js (renamed from static/src/assets/viz/2/processing.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/core.cljc (renamed from static/src/assets/viz/2/quil/core.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/core.cljc.cache.json (renamed from static/src/assets/viz/2/quil/core.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/core.js (renamed from static/src/assets/viz/2/quil/core.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/core.js.map (renamed from static/src/assets/viz/2/quil/core.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/middleware.cljc (renamed from static/src/assets/viz/2/quil/middleware.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/middleware.cljc.cache.json (renamed from static/src/assets/viz/2/quil/middleware.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/middleware.js (renamed from static/src/assets/viz/2/quil/middleware.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/middleware.js.map (renamed from static/src/assets/viz/2/quil/middleware.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc (renamed from static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json (renamed from static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js (renamed from static/src/assets/viz/2/quil/middlewares/deprecated_options.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map (renamed from static/src/assets/viz/2/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc (renamed from static/src/assets/viz/2/quil/middlewares/fun_mode.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json (renamed from static/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/fun_mode.js (renamed from static/src/assets/viz/2/quil/middlewares/fun_mode.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map (renamed from static/src/assets/viz/2/quil/middlewares/fun_mode.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc (renamed from static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json (renamed from static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js (renamed from static/src/assets/viz/2/quil/middlewares/navigation_2d.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map (renamed from static/src/assets/viz/2/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc (renamed from static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json (renamed from static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js (renamed from static/src/assets/viz/2/quil/middlewares/navigation_3d.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map (renamed from static/src/assets/viz/2/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/sketch.cljs (renamed from static/src/assets/viz/2/quil/sketch.cljs)0
-rw-r--r--srv/src/http/static/viz/2/quil/sketch.cljs.cache.json (renamed from static/src/assets/viz/2/quil/sketch.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/sketch.js (renamed from static/src/assets/viz/2/quil/sketch.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/sketch.js.map (renamed from static/src/assets/viz/2/quil/sketch.js.map)0
-rw-r--r--srv/src/http/static/viz/2/quil/util.cljc (renamed from static/src/assets/viz/2/quil/util.cljc)0
-rw-r--r--srv/src/http/static/viz/2/quil/util.cljc.cache.json (renamed from static/src/assets/viz/2/quil/util.cljc.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/quil/util.js (renamed from static/src/assets/viz/2/quil/util.js)0
-rw-r--r--srv/src/http/static/viz/2/quil/util.js.map (renamed from static/src/assets/viz/2/quil/util.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/core.cljs (renamed from static/src/assets/viz/2/viz/core.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/core.cljs.cache.json (renamed from static/src/assets/viz/2/viz/core.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/core.js (renamed from static/src/assets/viz/2/viz/core.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/core.js.map (renamed from static/src/assets/viz/2/viz/core.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/debug.cljs (renamed from static/src/assets/viz/2/viz/debug.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/debug.cljs.cache.json (renamed from static/src/assets/viz/2/viz/debug.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/debug.js (renamed from static/src/assets/viz/2/viz/debug.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/debug.js.map (renamed from static/src/assets/viz/2/viz/debug.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/dial.cljs (renamed from static/src/assets/viz/2/viz/dial.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/dial.cljs.cache.json (renamed from static/src/assets/viz/2/viz/dial.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/dial.js (renamed from static/src/assets/viz/2/viz/dial.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/dial.js.map (renamed from static/src/assets/viz/2/viz/dial.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/forest.cljs (renamed from static/src/assets/viz/2/viz/forest.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/forest.cljs.cache.json (renamed from static/src/assets/viz/2/viz/forest.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/forest.js (renamed from static/src/assets/viz/2/viz/forest.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/forest.js.map (renamed from static/src/assets/viz/2/viz/forest.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/ghost.cljs (renamed from static/src/assets/viz/2/viz/ghost.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/ghost.cljs.cache.json (renamed from static/src/assets/viz/2/viz/ghost.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/ghost.js (renamed from static/src/assets/viz/2/viz/ghost.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/ghost.js.map (renamed from static/src/assets/viz/2/viz/ghost.js.map)0
-rw-r--r--srv/src/http/static/viz/2/viz/grid.cljs (renamed from static/src/assets/viz/2/viz/grid.cljs)0
-rw-r--r--srv/src/http/static/viz/2/viz/grid.cljs.cache.json (renamed from static/src/assets/viz/2/viz/grid.cljs.cache.json)0
-rw-r--r--srv/src/http/static/viz/2/viz/grid.js (renamed from static/src/assets/viz/2/viz/grid.js)0
-rw-r--r--srv/src/http/static/viz/2/viz/grid.js.map (renamed from static/src/assets/viz/2/viz/grid.js.map)0
-rw-r--r--srv/src/http/static/wtfpl.txt (renamed from static/src/assets/wtfpl.txt)0
-rw-r--r--srv/src/http/tpl.go10
-rw-r--r--srv/src/http/tpl/base.html12
-rw-r--r--srv/src/http/tpl/follow.html4
419 files changed, 56 insertions, 128 deletions
diff --git a/Makefile b/Makefile
index 94eafeb..3c7cd3f 100644
--- a/Makefile
+++ b/Makefile
@@ -24,13 +24,3 @@ srv.dev-shell:
srv.shell:
nix-shell -A srv.shellWithBuild --arg baseConfig '(import ${CONFIG})' \
--command 'cd srv/src; return'
-
-# TODO static is on the way out, these aren't well supported
-static.serve:
- nix-shell -A static.shell --run 'cd static; static-serve'
-
-static.depShell:
- nix-shell -A static.depShell --command 'cd static; return'
-
-static.lock:
- nix-shell -A static.depShell --run 'bundler lock; bundix; rm -rf .bundle vendor'
diff --git a/default.nix b/default.nix
index 8d20c38..f810fc6 100644
--- a/default.nix
+++ b/default.nix
@@ -7,7 +7,7 @@
}) {},
baseConfig ? import ./config.nix,
- baseSkipServices ? [],
+ skipServices ? [],
}: rec {
@@ -17,17 +17,8 @@
redisListenPath = "${config.runDir}/redis";
};
- skipServices = baseSkipServices ++ (
- if baseConfig.staticProxyURL == ""
- then [ "static" ]
- else []
- );
-
- static = (import ./static) { inherit pkgs; };
-
srv = pkgs.callPackage (import ./srv) {
inherit config;
- staticBuild=static.build;
};
redisCfg = pkgs.writeText "mediocre-blog-redisCfg" ''
@@ -59,13 +50,6 @@
numprocesses = 1
'';
- staticCircusCfg = ''
- [watcher:static]
- cmd = ${static.serve}/bin/static-serve
- numprocesses = 1
- working_dir = ./static
- '';
-
circusCfg = pkgs.writeText "mediocre-blog-circusCfg" ''
[circus]
endpoint = tcp://127.0.0.1:0
@@ -74,8 +58,6 @@
${if (!builtins.elem "srv" skipServices) then srvCircusCfg else ""}
${if (!builtins.elem "redis" skipServices) then redisCircusCfg else ""}
-
- ${if (!builtins.elem "static" skipServices) then staticCircusCfg else ""}
'';
entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" ''
diff --git a/srv-dev-env.sh b/srv-dev-env.sh
index 9d2ee87..2df9918 100644
--- a/srv-dev-env.sh
+++ b/srv-dev-env.sh
@@ -11,7 +11,7 @@ test_cfg="(import ./config.nix) // {
entrypoint=$(nix-build --no-out-link -A entrypoint \
--arg baseConfig "$test_cfg" \
- --arg baseSkipServices '["srv"]')
+ --arg skipServices '["srv"]')
$entrypoint &
trap "kill $!; wait; rm -rf $test_dir" EXIT
diff --git a/srv/default.nix b/srv/default.nix
index a8f3464..7aa11b8 100644
--- a/srv/default.nix
+++ b/srv/default.nix
@@ -7,7 +7,6 @@
stdenv,
config,
- staticBuild,
}: rec {
init = writeText "mediocre-blog-srv-init" ''
@@ -26,9 +25,6 @@
# pow
export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}"
- # static proxy
- export MEDIOCRE_BLOG_STATIC_DIR="${staticBuild}"
-
# listening
export MEDIOCRE_BLOG_LISTEN_PROTO="${config.listenProto}"
export MEDIOCRE_BLOG_LISTEN_ADDR="${config.listenAddr}"
diff --git a/srv/src/http/api.go b/srv/src/http/api.go
index 4740853..abf08e7 100644
--- a/srv/src/http/api.go
+++ b/srv/src/http/api.go
@@ -3,13 +3,12 @@ package http
import (
"context"
+ "embed"
"errors"
"fmt"
"html/template"
"net"
"net/http"
- "net/http/httputil"
- "net/url"
"os"
"github.com/mediocregopher/blog.mediocregopher.com/srv/cfg"
@@ -22,6 +21,9 @@ import (
"github.com/mediocregopher/mediocre-go-lib/v2/mlog"
)
+//go:embed static
+var staticFS embed.FS
+
// Params are used to instantiate a new API instance. All fields are required
// unless otherwise noted.
type Params struct {
@@ -45,16 +47,6 @@ type Params struct {
// supported.
ListenProto, ListenAddr string
- // StaticDir and StaticProxy are mutually exclusive.
- //
- // If StaticDir is set then that directory on the filesystem will be used to
- // serve the static site.
- //
- // Otherwise if StaticProxy is set all requests for the static site will be
- // reverse-proxied there.
- StaticDir string
- StaticProxy *url.URL
-
// AuthUsers keys are usernames which are allowed to edit server-side data,
// and the values are the password hash which accompanies those users. The
// password hash must have been produced by NewPasswordHash.
@@ -63,39 +55,14 @@ type Params struct {
// SetupCfg implement the cfg.Cfger interface.
func (p *Params) SetupCfg(cfg *cfg.Cfg) {
-
cfg.StringVar(&p.ListenProto, "listen-proto", "tcp", "Protocol to listen for HTTP requests with")
cfg.StringVar(&p.ListenAddr, "listen-addr", ":4000", "Address/path to listen for HTTP requests on")
-
- cfg.StringVar(&p.StaticDir, "static-dir", "", "Directory from which static files are served (mutually exclusive with -static-proxy-url)")
- staticProxyURLStr := cfg.String("static-proxy-url", "", "HTTP address from which static files are served (mutually exclusive with -static-dir)")
-
- cfg.OnInit(func(ctx context.Context) error {
- if *staticProxyURLStr != "" {
- var err error
- if p.StaticProxy, err = url.Parse(*staticProxyURLStr); err != nil {
- return fmt.Errorf("parsing -static-proxy-url: %w", err)
- }
-
- } else if p.StaticDir == "" {
- return errors.New("-static-dir or -static-proxy-url is required")
- }
-
- return nil
- })
}
// Annotate implements mctx.Annotator interface.
func (p *Params) Annotate(a mctx.Annotations) {
a["listenProto"] = p.ListenProto
a["listenAddr"] = p.ListenAddr
-
- if p.StaticProxy != nil {
- a["staticProxy"] = p.StaticProxy.String()
- return
- }
-
- a["staticDir"] = p.StaticDir
}
// API will listen on the port configured for it, and serve HTTP requests for
@@ -156,15 +123,6 @@ func (a *api) Shutdown(ctx context.Context) error {
func (a *api) handler() http.Handler {
- var staticHandler http.Handler
- if a.params.StaticDir != "" {
- staticHandler = http.FileServer(http.Dir(a.params.StaticDir))
- } else {
- staticHandler = httputil.NewSingleHostReverseProxy(a.params.StaticProxy)
- }
-
- // sugar
-
requirePow := func(h http.Handler) http.Handler {
return a.requirePowMiddleware(h)
}
@@ -185,8 +143,6 @@ func (a *api) handler() http.Handler {
mux := http.NewServeMux()
- mux.Handle("/", staticHandler)
-
{
apiMux := http.NewServeMux()
apiMux.Handle("/pow/challenge", a.newPowChallengeHandler())
@@ -209,39 +165,37 @@ func (a *api) handler() http.Handler {
mux.Handle("/api/", http.StripPrefix("/api", formMiddleware(apiMux)))
}
- {
- v2Mux := http.NewServeMux()
- v2Mux.Handle("/follow.html", a.renderDumbTplHandler("follow.html"))
- v2Mux.Handle("/posts/", http.StripPrefix("/posts",
- apiutil.MethodMux(map[string]http.Handler{
- "GET": a.renderPostHandler(),
- "EDIT": a.editPostHandler(),
- "POST": authMiddleware(auther,
- formMiddleware(a.postPostHandler()),
- ),
- "DELETE": authMiddleware(auther,
- formMiddleware(a.deletePostHandler()),
- ),
- "PREVIEW": authMiddleware(auther,
- formMiddleware(a.previewPostHandler()),
- ),
- }),
- ))
- v2Mux.Handle("/assets/", http.StripPrefix("/assets",
- apiutil.MethodMux(map[string]http.Handler{
- "GET": a.getPostAssetHandler(),
- "POST": authMiddleware(auther,
- formMiddleware(a.postPostAssetHandler()),
- ),
- "DELETE": authMiddleware(auther,
- formMiddleware(a.deletePostAssetHandler()),
- ),
- }),
- ))
- v2Mux.Handle("/", a.renderIndexHandler())
-
- mux.Handle("/v2/", http.StripPrefix("/v2", v2Mux))
- }
+ mux.Handle("/posts/", http.StripPrefix("/posts",
+ apiutil.MethodMux(map[string]http.Handler{
+ "GET": a.renderPostHandler(),
+ "EDIT": a.editPostHandler(),
+ "POST": authMiddleware(auther,
+ formMiddleware(a.postPostHandler()),
+ ),
+ "DELETE": authMiddleware(auther,
+ formMiddleware(a.deletePostHandler()),
+ ),
+ "PREVIEW": authMiddleware(auther,
+ formMiddleware(a.previewPostHandler()),
+ ),
+ }),
+ ))
+
+ mux.Handle("/assets/", http.StripPrefix("/assets",
+ apiutil.MethodMux(map[string]http.Handler{
+ "GET": a.getPostAssetHandler(),
+ "POST": authMiddleware(auther,
+ formMiddleware(a.postPostAssetHandler()),
+ ),
+ "DELETE": authMiddleware(auther,
+ formMiddleware(a.deletePostAssetHandler()),
+ ),
+ }),
+ ))
+
+ mux.Handle("/static/", http.FileServer(http.FS(staticFS)))
+ mux.Handle("/follow.html", a.renderDumbTplHandler("follow.html"))
+ mux.Handle("/", a.renderIndexHandler())
var globalHandler http.Handler = mux
globalHandler = setCSRFMiddleware(globalHandler)
diff --git a/static/src/assets/api.js b/srv/src/http/static/api.js
index af786f2..a635118 100644
--- a/static/src/assets/api.js
+++ b/srv/src/http/static/api.js
@@ -1,4 +1,4 @@
-import * as utils from "/assets/utils.js";
+import * as utils from "/static/utils.js";
const csrfTokenCookie = "csrf_token";
@@ -35,7 +35,7 @@ const solvePow = async () => {
const res = await call('/api/pow/challenge');
- const worker = new Worker('/assets/solvePow.js');
+ const worker = new Worker('/static/solvePow.js');
const p = new Promise((resolve, reject) => {
worker.postMessage({seedHex: res.seed, target: res.target});
diff --git a/static/src/assets/component-oriented-design/v1/main.go b/srv/src/http/static/component-oriented-design/v1/main.go
index 490a516..490a516 100644
--- a/static/src/assets/component-oriented-design/v1/main.go
+++ b/srv/src/http/static/component-oriented-design/v1/main.go
diff --git a/static/src/assets/component-oriented-design/v1/main.md b/srv/src/http/static/component-oriented-design/v1/main.md
index 37346c6..37346c6 100644
--- a/static/src/assets/component-oriented-design/v1/main.md
+++ b/srv/src/http/static/component-oriented-design/v1/main.md
diff --git a/static/src/assets/component-oriented-design/v1/main_test.go b/srv/src/http/static/component-oriented-design/v1/main_test.go
index 6cfd9fb..6cfd9fb 100644
--- a/static/src/assets/component-oriented-design/v1/main_test.go
+++ b/srv/src/http/static/component-oriented-design/v1/main_test.go
diff --git a/static/src/assets/component-oriented-design/v1/main_test.md b/srv/src/http/static/component-oriented-design/v1/main_test.md
index b0a0751..b0a0751 100644
--- a/static/src/assets/component-oriented-design/v1/main_test.md
+++ b/srv/src/http/static/component-oriented-design/v1/main_test.md
diff --git a/static/src/assets/component-oriented-design/v2/main.go b/srv/src/http/static/component-oriented-design/v2/main.go
index fb5773c..fb5773c 100644
--- a/static/src/assets/component-oriented-design/v2/main.go
+++ b/srv/src/http/static/component-oriented-design/v2/main.go
diff --git a/static/src/assets/component-oriented-design/v2/main.md b/srv/src/http/static/component-oriented-design/v2/main.md
index 37346c6..37346c6 100644
--- a/static/src/assets/component-oriented-design/v2/main.md
+++ b/srv/src/http/static/component-oriented-design/v2/main.md
diff --git a/static/src/assets/component-oriented-design/v3/main.go b/srv/src/http/static/component-oriented-design/v3/main.go
index afe8bab..afe8bab 100644
--- a/static/src/assets/component-oriented-design/v3/main.go
+++ b/srv/src/http/static/component-oriented-design/v3/main.go
diff --git a/static/src/assets/component-oriented-design/v3/main.md b/srv/src/http/static/component-oriented-design/v3/main.md
index 37346c6..37346c6 100644
--- a/static/src/assets/component-oriented-design/v3/main.md
+++ b/srv/src/http/static/component-oriented-design/v3/main.md
diff --git a/static/src/assets/dog-money.png b/srv/src/http/static/dog-money.png
index bbc77c1..bbc77c1 100644
--- a/static/src/assets/dog-money.png
+++ b/srv/src/http/static/dog-money.png
Binary files differ
diff --git a/static/src/assets/fontawesome/LICENSE.txt b/srv/src/http/static/fontawesome/LICENSE.txt
index f31bef9..f31bef9 100644
--- a/static/src/assets/fontawesome/LICENSE.txt
+++ b/srv/src/http/static/fontawesome/LICENSE.txt
diff --git a/static/src/assets/fontawesome/css/all.css b/srv/src/http/static/fontawesome/css/all.css
index d9ade75..d9ade75 100644
--- a/static/src/assets/fontawesome/css/all.css
+++ b/srv/src/http/static/fontawesome/css/all.css
diff --git a/static/src/assets/fontawesome/css/all.min.css b/srv/src/http/static/fontawesome/css/all.min.css
index ac76ff1..ac76ff1 100644
--- a/static/src/assets/fontawesome/css/all.min.css
+++ b/srv/src/http/static/fontawesome/css/all.min.css
diff --git a/static/src/assets/fontawesome/css/brands.css b/srv/src/http/static/fontawesome/css/brands.css
index 9246317..9246317 100644
--- a/static/src/assets/fontawesome/css/brands.css
+++ b/srv/src/http/static/fontawesome/css/brands.css
diff --git a/static/src/assets/fontawesome/css/brands.min.css b/srv/src/http/static/fontawesome/css/brands.min.css
index bdd4a24..bdd4a24 100644
--- a/static/src/assets/fontawesome/css/brands.min.css
+++ b/srv/src/http/static/fontawesome/css/brands.min.css
diff --git a/static/src/assets/fontawesome/css/fontawesome.css b/srv/src/http/static/fontawesome/css/fontawesome.css
index 74de602..74de602 100644
--- a/static/src/assets/fontawesome/css/fontawesome.css
+++ b/srv/src/http/static/fontawesome/css/fontawesome.css
diff --git a/static/src/assets/fontawesome/css/fontawesome.min.css b/srv/src/http/static/fontawesome/css/fontawesome.min.css
index bec9b39..bec9b39 100644
--- a/static/src/assets/fontawesome/css/fontawesome.min.css
+++ b/srv/src/http/static/fontawesome/css/fontawesome.min.css
diff --git a/static/src/assets/fontawesome/css/regular.css b/srv/src/http/static/fontawesome/css/regular.css
index 6f45057..6f45057 100644
--- a/static/src/assets/fontawesome/css/regular.css
+++ b/srv/src/http/static/fontawesome/css/regular.css
diff --git a/static/src/assets/fontawesome/css/regular.min.css b/srv/src/http/static/fontawesome/css/regular.min.css
index 21881d5..21881d5 100644
--- a/static/src/assets/fontawesome/css/regular.min.css
+++ b/srv/src/http/static/fontawesome/css/regular.min.css
diff --git a/static/src/assets/fontawesome/css/solid.css b/srv/src/http/static/fontawesome/css/solid.css
index 604e755..604e755 100644
--- a/static/src/assets/fontawesome/css/solid.css
+++ b/srv/src/http/static/fontawesome/css/solid.css
diff --git a/static/src/assets/fontawesome/css/solid.min.css b/srv/src/http/static/fontawesome/css/solid.min.css
index acdb46d..acdb46d 100644
--- a/static/src/assets/fontawesome/css/solid.min.css
+++ b/srv/src/http/static/fontawesome/css/solid.min.css
diff --git a/static/src/assets/fontawesome/css/svg-with-js.css b/srv/src/http/static/fontawesome/css/svg-with-js.css
index 45f33e5..45f33e5 100644
--- a/static/src/assets/fontawesome/css/svg-with-js.css
+++ b/srv/src/http/static/fontawesome/css/svg-with-js.css
diff --git a/static/src/assets/fontawesome/css/svg-with-js.min.css b/srv/src/http/static/fontawesome/css/svg-with-js.min.css
index 101beb8..101beb8 100644
--- a/static/src/assets/fontawesome/css/svg-with-js.min.css
+++ b/srv/src/http/static/fontawesome/css/svg-with-js.min.css
diff --git a/static/src/assets/fontawesome/css/v4-shims.css b/srv/src/http/static/fontawesome/css/v4-shims.css
index 1ef4893..1ef4893 100644
--- a/static/src/assets/fontawesome/css/v4-shims.css
+++ b/srv/src/http/static/fontawesome/css/v4-shims.css
diff --git a/static/src/assets/fontawesome/css/v4-shims.min.css b/srv/src/http/static/fontawesome/css/v4-shims.min.css
index 21a0708..21a0708 100644
--- a/static/src/assets/fontawesome/css/v4-shims.min.css
+++ b/srv/src/http/static/fontawesome/css/v4-shims.min.css
diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.eot b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.eot
index cba6c6c..cba6c6c 100644
--- a/static/src/assets/fontawesome/webfonts/fa-brands-400.eot
+++ b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.eot
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.svg b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.svg
index b9881a4..b9881a4 100644
--- a/static/src/assets/fontawesome/webfonts/fa-brands-400.svg
+++ b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.svg
diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.ttf b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.ttf
index 8d75ded..8d75ded 100644
--- a/static/src/assets/fontawesome/webfonts/fa-brands-400.ttf
+++ b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.ttf
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff
index 3375bef..3375bef 100644
--- a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff
+++ b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff2
index 402f81c..402f81c 100644
--- a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff2
+++ b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff2
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.eot b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.eot
index a4e5989..a4e5989 100644
--- a/static/src/assets/fontawesome/webfonts/fa-regular-400.eot
+++ b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.eot
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.svg b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.svg
index 463af27..463af27 100644
--- a/static/src/assets/fontawesome/webfonts/fa-regular-400.svg
+++ b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.svg
diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.ttf b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.ttf
index 7157aaf..7157aaf 100644
--- a/static/src/assets/fontawesome/webfonts/fa-regular-400.ttf
+++ b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.ttf
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff
index ad077c6..ad077c6 100644
--- a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff
+++ b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff2
index 5632894..5632894 100644
--- a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff2
+++ b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff2
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.eot b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.eot
index e994171..e994171 100644
--- a/static/src/assets/fontawesome/webfonts/fa-solid-900.eot
+++ b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.eot
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.svg b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.svg
index 00296e9..00296e9 100644
--- a/static/src/assets/fontawesome/webfonts/fa-solid-900.svg
+++ b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.svg
diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.ttf b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.ttf
index 25abf38..25abf38 100644
--- a/static/src/assets/fontawesome/webfonts/fa-solid-900.ttf
+++ b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.ttf
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff
index 23ee663..23ee663 100644
--- a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff
+++ b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff
Binary files differ
diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff2
index 2217164..2217164 100644
--- a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff2
+++ b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff2
Binary files differ
diff --git a/static/src/assets/friendly.css b/srv/src/http/static/friendly.css
index f7907dd..f7907dd 100644
--- a/static/src/assets/friendly.css
+++ b/srv/src/http/static/friendly.css
diff --git a/static/src/assets/maddy-vps/success.png b/srv/src/http/static/maddy-vps/success.png
index 3d24c25..3d24c25 100644
--- a/static/src/assets/maddy-vps/success.png
+++ b/srv/src/http/static/maddy-vps/success.png
Binary files differ
diff --git a/static/src/assets/main.css b/srv/src/http/static/main.css
index 726e946..726e946 100644
--- a/static/src/assets/main.css
+++ b/srv/src/http/static/main.css
diff --git a/static/src/assets/markov/Makefile b/srv/src/http/static/markov/Makefile
index 4195baf..4195baf 100644
--- a/static/src/assets/markov/Makefile
+++ b/srv/src/http/static/markov/Makefile
diff --git a/static/src/assets/markov/Makefile.md b/srv/src/http/static/markov/Makefile.md
index a680113..a680113 100644
--- a/static/src/assets/markov/Makefile.md
+++ b/srv/src/http/static/markov/Makefile.md
diff --git a/static/src/assets/markov/markov.nix b/srv/src/http/static/markov/markov.nix
index 042ab8d..042ab8d 100644
--- a/static/src/assets/markov/markov.nix
+++ b/srv/src/http/static/markov/markov.nix
diff --git a/static/src/assets/markov/markov.nix.md b/srv/src/http/static/markov/markov.nix.md
index 57802b4..57802b4 100644
--- a/static/src/assets/markov/markov.nix.md
+++ b/srv/src/http/static/markov/markov.nix.md
diff --git a/static/src/assets/normalize.css b/srv/src/http/static/normalize.css
index 81c6f31..81c6f31 100644
--- a/static/src/assets/normalize.css
+++ b/srv/src/http/static/normalize.css
diff --git a/static/src/assets/overpass-regular.woff b/srv/src/http/static/overpass-regular.woff
index 90038f4..90038f4 100644
--- a/static/src/assets/overpass-regular.woff
+++ b/srv/src/http/static/overpass-regular.woff
Binary files differ
diff --git a/static/src/assets/qrcode.min.js b/srv/src/http/static/qrcode.min.js
index 993e88f..993e88f 100644
--- a/static/src/assets/qrcode.min.js
+++ b/srv/src/http/static/qrcode.min.js
diff --git a/static/src/assets/skeleton.css b/srv/src/http/static/skeleton.css
index cd3bbf1..cd3bbf1 100644
--- a/static/src/assets/skeleton.css
+++ b/srv/src/http/static/skeleton.css
diff --git a/static/src/assets/solvePow.js b/srv/src/http/static/solvePow.js
index 900400c..900400c 100644
--- a/static/src/assets/solvePow.js
+++ b/srv/src/http/static/solvePow.js
diff --git a/static/src/assets/trading-in-the-rain/CW.js b/srv/src/http/static/trading-in-the-rain/CW.js
index 043c1a8..043c1a8 100644
--- a/static/src/assets/trading-in-the-rain/CW.js
+++ b/srv/src/http/static/trading-in-the-rain/CW.js
diff --git a/static/src/assets/trading-in-the-rain/Distributor.js b/srv/src/http/static/trading-in-the-rain/Distributor.js
index fa6e9f2..fa6e9f2 100644
--- a/static/src/assets/trading-in-the-rain/Distributor.js
+++ b/srv/src/http/static/trading-in-the-rain/Distributor.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt b/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt
index 0dca6fb..0dca6fb 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
index b5a59ce..b5a59ce 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
index 2c59f8f..2c59f8f 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
index 17e9eb9..17e9eb9 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
index 000a916..000a916 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
index 957605d..957605d 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js
index 2e1278c..2e1278c 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js
index 02136f6..02136f6 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js
index 08f298f..08f298f 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
index ec361c6..ec361c6 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
index 15a6f0a..15a6f0a 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
index 33e244b..33e244b 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
index 709cb91..709cb91 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
index 8f1ea5a..8f1ea5a 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
index 84c208e..84c208e 100644
--- a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
+++ b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
diff --git a/static/src/assets/trading-in-the-rain/MusicBox.js b/srv/src/http/static/trading-in-the-rain/MusicBox.js
index a30074c..b5b060e 100644
--- a/static/src/assets/trading-in-the-rain/MusicBox.js
+++ b/srv/src/http/static/trading-in-the-rain/MusicBox.js
@@ -1,7 +1,7 @@
var midiLoaded = false;
function loadMIDI() {
MIDI.loadPlugin({
- soundfontUrl: "/assets/trading-in-the-rain/soundfont/",
+ soundfontUrl: "/static/trading-in-the-rain/soundfont/",
instrument: "acoustic_grand_piano",
onprogress: (state, progress) => {
console.log("MIDI loading...", progress*100, "%");
diff --git a/static/src/assets/trading-in-the-rain/RainCanvas.js b/srv/src/http/static/trading-in-the-rain/RainCanvas.js
index 5396eb5..5396eb5 100644
--- a/static/src/assets/trading-in-the-rain/RainCanvas.js
+++ b/srv/src/http/static/trading-in-the-rain/RainCanvas.js
diff --git a/static/src/assets/trading-in-the-rain/SeriesComposer.js b/srv/src/http/static/trading-in-the-rain/SeriesComposer.js
index 134c64c..134c64c 100644
--- a/static/src/assets/trading-in-the-rain/SeriesComposer.js
+++ b/srv/src/http/static/trading-in-the-rain/SeriesComposer.js
diff --git a/static/src/assets/trading-in-the-rain/key.gpg b/srv/src/http/static/trading-in-the-rain/key.gpg
index 9b47955..9b47955 100644
--- a/static/src/assets/trading-in-the-rain/key.gpg
+++ b/srv/src/http/static/trading-in-the-rain/key.gpg
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/main.js b/srv/src/http/static/trading-in-the-rain/main.js
index 09bd26e..09bd26e 100644
--- a/static/src/assets/trading-in-the-rain/main.js
+++ b/srv/src/http/static/trading-in-the-rain/main.js
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
index 0253034..0253034 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
index 57d13b4..57d13b4 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
index 9c7b075..9c7b075 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
index cba35c5..cba35c5 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
index b81c0f6..b81c0f6 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
index 533a210..533a210 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
index d913e15..d913e15 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
index 450df60..450df60 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
index ec7c636..ec7c636 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
index 765f641..765f641 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
index f8809b3..f8809b3 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
index 6896fa7..6896fa7 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
index 076bdbf..076bdbf 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
index 3e99164..3e99164 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
index 2dbf7e6..2dbf7e6 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
index 4f7f560..4f7f560 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
index fc49c93..fc49c93 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
index 4f5d506..4f5d506 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
index 22c5eee..22c5eee 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
index 81b7a71..81b7a71 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
index 54a2797..54a2797 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
index 11d7aeb..11d7aeb 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
index b2208eb..b2208eb 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
index ee21002..ee21002 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
index 91f355e..91f355e 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
index 259fbab..259fbab 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
index 89d70cc..89d70cc 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
index a20a19c..a20a19c 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
index 943963d..943963d 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
index 1b34185..1b34185 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
index 8c28d4c..8c28d4c 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
index 3dbdac3..3dbdac3 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
index f801ec7..f801ec7 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
index 0cbedf0..0cbedf0 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
index a63cfea..a63cfea 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
index abca8ba..abca8ba 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
index 1e979ff..1e979ff 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
index 146597e..146597e 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
index 7acee1b..7acee1b 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
index 7fc79fc..7fc79fc 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
index 1096963..1096963 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
index b678877..b678877 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
index 8dce81f..8dce81f 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
index 868c551..868c551 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
index 8c66803..8c66803 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
index 12d982e..12d982e 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
index 18d34ff..18d34ff 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
index fd0b75a..fd0b75a 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
index 8bf091e..8bf091e 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
index bd4f80a..bd4f80a 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
index 005c803..005c803 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
index 7d416ec..7d416ec 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
index 626105f..626105f 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
index 70aa5a9..70aa5a9 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
index ecc363c..ecc363c 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
index bce6b63..bce6b63 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
index fc989d7..fc989d7 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
index e49bdcc..e49bdcc 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
index 46c5c40..46c5c40 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
index 89ba7b6..89ba7b6 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
index c86e64d..c86e64d 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
index a269dc1..a269dc1 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
index 133d374..133d374 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
index dbd05cf..dbd05cf 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
index aa4f170..aa4f170 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
index 59a59e2..59a59e2 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
index 927e76b..927e76b 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
index e7325fa..e7325fa 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
index fc5e5cb..fc5e5cb 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
index 0b21372..0b21372 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
index 0e698dc..0e698dc 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
index e743ac1..e743ac1 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
index 276f102..276f102 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
index 1757a9f..1757a9f 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
index 132db28..132db28 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
index 8cd5b77..8cd5b77 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
index a6f73d3..a6f73d3 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
index 9818949..9818949 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
index 8e33486..8e33486 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
index de3d723..de3d723 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
index ed12e97..ed12e97 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
index 9a3bf86..9a3bf86 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
index 2e68e66..2e68e66 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
index fde4305..fde4305 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
index a1c1a53..a1c1a53 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
index f4ddd10..f4ddd10 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
index aa38dc9..aa38dc9 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
index e8dec6e..e8dec6e 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
index 5f2c0f2..5f2c0f2 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
index bc417c3..bc417c3 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
Binary files differ
diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
index 52f1027..52f1027 100644
--- a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
+++ b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
diff --git a/static/src/assets/utils.js b/srv/src/http/static/utils.js
index 96a2950..96a2950 100644
--- a/static/src/assets/utils.js
+++ b/srv/src/http/static/utils.js
diff --git a/static/src/assets/viz/1/cljs/core.cljs b/srv/src/http/static/viz/1/cljs/core.cljs
index a87e53b..a87e53b 100644
--- a/static/src/assets/viz/1/cljs/core.cljs
+++ b/srv/src/http/static/viz/1/cljs/core.cljs
diff --git a/static/src/assets/viz/1/cljs/core.js b/srv/src/http/static/viz/1/cljs/core.js
index 6ec0a68..6ec0a68 100644
--- a/static/src/assets/viz/1/cljs/core.js
+++ b/srv/src/http/static/viz/1/cljs/core.js
diff --git a/static/src/assets/viz/1/cljs/core.js.map b/srv/src/http/static/viz/1/cljs/core.js.map
index 89c76ee..89c76ee 100644
--- a/static/src/assets/viz/1/cljs/core.js.map
+++ b/srv/src/http/static/viz/1/cljs/core.js.map
diff --git a/static/src/assets/viz/1/cljs_deps.js b/srv/src/http/static/viz/1/cljs_deps.js
index a6fad71..a6fad71 100644
--- a/static/src/assets/viz/1/cljs_deps.js
+++ b/srv/src/http/static/viz/1/cljs_deps.js
diff --git a/static/src/assets/viz/1/clojure/set.cljs b/srv/src/http/static/viz/1/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/static/src/assets/viz/1/clojure/set.cljs
+++ b/srv/src/http/static/viz/1/clojure/set.cljs
diff --git a/static/src/assets/viz/1/clojure/set.cljs.cache.edn b/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn
index 2341e7d..2341e7d 100644
--- a/static/src/assets/viz/1/clojure/set.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn
diff --git a/static/src/assets/viz/1/clojure/set.js b/srv/src/http/static/viz/1/clojure/set.js
index 920701d..920701d 100644
--- a/static/src/assets/viz/1/clojure/set.js
+++ b/srv/src/http/static/viz/1/clojure/set.js
diff --git a/static/src/assets/viz/1/clojure/set.js.map b/srv/src/http/static/viz/1/clojure/set.js.map
index a42360e..a42360e 100644
--- a/static/src/assets/viz/1/clojure/set.js.map
+++ b/srv/src/http/static/viz/1/clojure/set.js.map
diff --git a/static/src/assets/viz/1/clojure/string.cljs b/srv/src/http/static/viz/1/clojure/string.cljs
index 4cf5ede..4cf5ede 100644
--- a/static/src/assets/viz/1/clojure/string.cljs
+++ b/srv/src/http/static/viz/1/clojure/string.cljs
diff --git a/static/src/assets/viz/1/clojure/string.cljs.cache.edn b/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn
index e4ac146..e4ac146 100644
--- a/static/src/assets/viz/1/clojure/string.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn
diff --git a/static/src/assets/viz/1/clojure/string.js b/srv/src/http/static/viz/1/clojure/string.js
index a5f3d99..a5f3d99 100644
--- a/static/src/assets/viz/1/clojure/string.js
+++ b/srv/src/http/static/viz/1/clojure/string.js
diff --git a/static/src/assets/viz/1/clojure/string.js.map b/srv/src/http/static/viz/1/clojure/string.js.map
index 41f4864..41f4864 100644
--- a/static/src/assets/viz/1/clojure/string.js.map
+++ b/srv/src/http/static/viz/1/clojure/string.js.map
diff --git a/static/src/assets/viz/1/goog/array/array.js b/srv/src/http/static/viz/1/goog/array/array.js
index 4fdfcaf..4fdfcaf 100644
--- a/static/src/assets/viz/1/goog/array/array.js
+++ b/srv/src/http/static/viz/1/goog/array/array.js
diff --git a/static/src/assets/viz/1/goog/asserts/asserts.js b/srv/src/http/static/viz/1/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/static/src/assets/viz/1/goog/asserts/asserts.js
+++ b/srv/src/http/static/viz/1/goog/asserts/asserts.js
diff --git a/static/src/assets/viz/1/goog/base.js b/srv/src/http/static/viz/1/goog/base.js
index 97a9947..97a9947 100644
--- a/static/src/assets/viz/1/goog/base.js
+++ b/srv/src/http/static/viz/1/goog/base.js
diff --git a/static/src/assets/viz/1/goog/debug/entrypointregistry.js b/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/static/src/assets/viz/1/goog/debug/entrypointregistry.js
+++ b/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js
diff --git a/static/src/assets/viz/1/goog/debug/error.js b/srv/src/http/static/viz/1/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/static/src/assets/viz/1/goog/debug/error.js
+++ b/srv/src/http/static/viz/1/goog/debug/error.js
diff --git a/static/src/assets/viz/1/goog/deps.js b/srv/src/http/static/viz/1/goog/deps.js
index 80936e8..80936e8 100644
--- a/static/src/assets/viz/1/goog/deps.js
+++ b/srv/src/http/static/viz/1/goog/deps.js
diff --git a/static/src/assets/viz/1/goog/disposable/disposable.js b/srv/src/http/static/viz/1/goog/disposable/disposable.js
index ca8d088..ca8d088 100644
--- a/static/src/assets/viz/1/goog/disposable/disposable.js
+++ b/srv/src/http/static/viz/1/goog/disposable/disposable.js
diff --git a/static/src/assets/viz/1/goog/disposable/idisposable.js b/srv/src/http/static/viz/1/goog/disposable/idisposable.js
index 917d17e..917d17e 100644
--- a/static/src/assets/viz/1/goog/disposable/idisposable.js
+++ b/srv/src/http/static/viz/1/goog/disposable/idisposable.js
diff --git a/static/src/assets/viz/1/goog/dom/browserfeature.js b/srv/src/http/static/viz/1/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/static/src/assets/viz/1/goog/dom/browserfeature.js
+++ b/srv/src/http/static/viz/1/goog/dom/browserfeature.js
diff --git a/static/src/assets/viz/1/goog/dom/dom.js b/srv/src/http/static/viz/1/goog/dom/dom.js
index 4d3cdf9..4d3cdf9 100644
--- a/static/src/assets/viz/1/goog/dom/dom.js
+++ b/srv/src/http/static/viz/1/goog/dom/dom.js
diff --git a/static/src/assets/viz/1/goog/dom/nodetype.js b/srv/src/http/static/viz/1/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/static/src/assets/viz/1/goog/dom/nodetype.js
+++ b/srv/src/http/static/viz/1/goog/dom/nodetype.js
diff --git a/static/src/assets/viz/1/goog/dom/safe.js b/srv/src/http/static/viz/1/goog/dom/safe.js
index 012ad22..012ad22 100644
--- a/static/src/assets/viz/1/goog/dom/safe.js
+++ b/srv/src/http/static/viz/1/goog/dom/safe.js
diff --git a/static/src/assets/viz/1/goog/dom/tagname.js b/srv/src/http/static/viz/1/goog/dom/tagname.js
index ad44d85..ad44d85 100644
--- a/static/src/assets/viz/1/goog/dom/tagname.js
+++ b/srv/src/http/static/viz/1/goog/dom/tagname.js
diff --git a/static/src/assets/viz/1/goog/dom/tags.js b/srv/src/http/static/viz/1/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/static/src/assets/viz/1/goog/dom/tags.js
+++ b/srv/src/http/static/viz/1/goog/dom/tags.js
diff --git a/static/src/assets/viz/1/goog/events/browserevent.js b/srv/src/http/static/viz/1/goog/events/browserevent.js
index 14894e1..14894e1 100644
--- a/static/src/assets/viz/1/goog/events/browserevent.js
+++ b/srv/src/http/static/viz/1/goog/events/browserevent.js
diff --git a/static/src/assets/viz/1/goog/events/browserfeature.js b/srv/src/http/static/viz/1/goog/events/browserfeature.js
index 4cfa8e3..4cfa8e3 100644
--- a/static/src/assets/viz/1/goog/events/browserfeature.js
+++ b/srv/src/http/static/viz/1/goog/events/browserfeature.js
diff --git a/static/src/assets/viz/1/goog/events/event.js b/srv/src/http/static/viz/1/goog/events/event.js
index 89db91e..89db91e 100644
--- a/static/src/assets/viz/1/goog/events/event.js
+++ b/srv/src/http/static/viz/1/goog/events/event.js
diff --git a/static/src/assets/viz/1/goog/events/eventid.js b/srv/src/http/static/viz/1/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/static/src/assets/viz/1/goog/events/eventid.js
+++ b/srv/src/http/static/viz/1/goog/events/eventid.js
diff --git a/static/src/assets/viz/1/goog/events/events.js b/srv/src/http/static/viz/1/goog/events/events.js
index 6a0acf7..6a0acf7 100644
--- a/static/src/assets/viz/1/goog/events/events.js
+++ b/srv/src/http/static/viz/1/goog/events/events.js
diff --git a/static/src/assets/viz/1/goog/events/eventtype.js b/srv/src/http/static/viz/1/goog/events/eventtype.js
index 161e88a..161e88a 100644
--- a/static/src/assets/viz/1/goog/events/eventtype.js
+++ b/srv/src/http/static/viz/1/goog/events/eventtype.js
diff --git a/static/src/assets/viz/1/goog/events/listenable.js b/srv/src/http/static/viz/1/goog/events/listenable.js
index 648d9fc..648d9fc 100644
--- a/static/src/assets/viz/1/goog/events/listenable.js
+++ b/srv/src/http/static/viz/1/goog/events/listenable.js
diff --git a/static/src/assets/viz/1/goog/events/listener.js b/srv/src/http/static/viz/1/goog/events/listener.js
index 60c7370..60c7370 100644
--- a/static/src/assets/viz/1/goog/events/listener.js
+++ b/srv/src/http/static/viz/1/goog/events/listener.js
diff --git a/static/src/assets/viz/1/goog/events/listenermap.js b/srv/src/http/static/viz/1/goog/events/listenermap.js
index 40cb848..40cb848 100644
--- a/static/src/assets/viz/1/goog/events/listenermap.js
+++ b/srv/src/http/static/viz/1/goog/events/listenermap.js
diff --git a/static/src/assets/viz/1/goog/fs/url.js b/srv/src/http/static/viz/1/goog/fs/url.js
index 90d8349..90d8349 100644
--- a/static/src/assets/viz/1/goog/fs/url.js
+++ b/srv/src/http/static/viz/1/goog/fs/url.js
diff --git a/static/src/assets/viz/1/goog/html/safehtml.js b/srv/src/http/static/viz/1/goog/html/safehtml.js
index 704d826..704d826 100644
--- a/static/src/assets/viz/1/goog/html/safehtml.js
+++ b/srv/src/http/static/viz/1/goog/html/safehtml.js
diff --git a/static/src/assets/viz/1/goog/html/safescript.js b/srv/src/http/static/viz/1/goog/html/safescript.js
index 26f58f6..26f58f6 100644
--- a/static/src/assets/viz/1/goog/html/safescript.js
+++ b/srv/src/http/static/viz/1/goog/html/safescript.js
diff --git a/static/src/assets/viz/1/goog/html/safestyle.js b/srv/src/http/static/viz/1/goog/html/safestyle.js
index a1f87cb..a1f87cb 100644
--- a/static/src/assets/viz/1/goog/html/safestyle.js
+++ b/srv/src/http/static/viz/1/goog/html/safestyle.js
diff --git a/static/src/assets/viz/1/goog/html/safestylesheet.js b/srv/src/http/static/viz/1/goog/html/safestylesheet.js
index 65a81b0..65a81b0 100644
--- a/static/src/assets/viz/1/goog/html/safestylesheet.js
+++ b/srv/src/http/static/viz/1/goog/html/safestylesheet.js
diff --git a/static/src/assets/viz/1/goog/html/safeurl.js b/srv/src/http/static/viz/1/goog/html/safeurl.js
index 640a070..640a070 100644
--- a/static/src/assets/viz/1/goog/html/safeurl.js
+++ b/srv/src/http/static/viz/1/goog/html/safeurl.js
diff --git a/static/src/assets/viz/1/goog/html/trustedresourceurl.js b/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js
index 6e3c0df..6e3c0df 100644
--- a/static/src/assets/viz/1/goog/html/trustedresourceurl.js
+++ b/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js
diff --git a/static/src/assets/viz/1/goog/html/uncheckedconversions.js b/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js
index 2cef322..2cef322 100644
--- a/static/src/assets/viz/1/goog/html/uncheckedconversions.js
+++ b/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js
diff --git a/static/src/assets/viz/1/goog/i18n/bidi.js b/srv/src/http/static/viz/1/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/static/src/assets/viz/1/goog/i18n/bidi.js
+++ b/srv/src/http/static/viz/1/goog/i18n/bidi.js
diff --git a/static/src/assets/viz/1/goog/labs/useragent/browser.js b/srv/src/http/static/viz/1/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/static/src/assets/viz/1/goog/labs/useragent/browser.js
+++ b/srv/src/http/static/viz/1/goog/labs/useragent/browser.js
diff --git a/static/src/assets/viz/1/goog/labs/useragent/engine.js b/srv/src/http/static/viz/1/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/static/src/assets/viz/1/goog/labs/useragent/engine.js
+++ b/srv/src/http/static/viz/1/goog/labs/useragent/engine.js
diff --git a/static/src/assets/viz/1/goog/labs/useragent/platform.js b/srv/src/http/static/viz/1/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/static/src/assets/viz/1/goog/labs/useragent/platform.js
+++ b/srv/src/http/static/viz/1/goog/labs/useragent/platform.js
diff --git a/static/src/assets/viz/1/goog/labs/useragent/util.js b/srv/src/http/static/viz/1/goog/labs/useragent/util.js
index caa3407..caa3407 100644
--- a/static/src/assets/viz/1/goog/labs/useragent/util.js
+++ b/srv/src/http/static/viz/1/goog/labs/useragent/util.js
diff --git a/static/src/assets/viz/1/goog/math/coordinate.js b/srv/src/http/static/viz/1/goog/math/coordinate.js
index a08b9cb..a08b9cb 100644
--- a/static/src/assets/viz/1/goog/math/coordinate.js
+++ b/srv/src/http/static/viz/1/goog/math/coordinate.js
diff --git a/static/src/assets/viz/1/goog/math/integer.js b/srv/src/http/static/viz/1/goog/math/integer.js
index 11b6a95..11b6a95 100644
--- a/static/src/assets/viz/1/goog/math/integer.js
+++ b/srv/src/http/static/viz/1/goog/math/integer.js
diff --git a/static/src/assets/viz/1/goog/math/long.js b/srv/src/http/static/viz/1/goog/math/long.js
index a43ea3f..a43ea3f 100644
--- a/static/src/assets/viz/1/goog/math/long.js
+++ b/srv/src/http/static/viz/1/goog/math/long.js
diff --git a/static/src/assets/viz/1/goog/math/math.js b/srv/src/http/static/viz/1/goog/math/math.js
index 95e5fb5..95e5fb5 100644
--- a/static/src/assets/viz/1/goog/math/math.js
+++ b/srv/src/http/static/viz/1/goog/math/math.js
diff --git a/static/src/assets/viz/1/goog/math/size.js b/srv/src/http/static/viz/1/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/static/src/assets/viz/1/goog/math/size.js
+++ b/srv/src/http/static/viz/1/goog/math/size.js
diff --git a/static/src/assets/viz/1/goog/object/object.js b/srv/src/http/static/viz/1/goog/object/object.js
index d15c88c..d15c88c 100644
--- a/static/src/assets/viz/1/goog/object/object.js
+++ b/srv/src/http/static/viz/1/goog/object/object.js
diff --git a/static/src/assets/viz/1/goog/reflect/reflect.js b/srv/src/http/static/viz/1/goog/reflect/reflect.js
index 5a88b45..5a88b45 100644
--- a/static/src/assets/viz/1/goog/reflect/reflect.js
+++ b/srv/src/http/static/viz/1/goog/reflect/reflect.js
diff --git a/static/src/assets/viz/1/goog/string/const.js b/srv/src/http/static/viz/1/goog/string/const.js
index 7f919be..7f919be 100644
--- a/static/src/assets/viz/1/goog/string/const.js
+++ b/srv/src/http/static/viz/1/goog/string/const.js
diff --git a/static/src/assets/viz/1/goog/string/string.js b/srv/src/http/static/viz/1/goog/string/string.js
index a2f7003..a2f7003 100644
--- a/static/src/assets/viz/1/goog/string/string.js
+++ b/srv/src/http/static/viz/1/goog/string/string.js
diff --git a/static/src/assets/viz/1/goog/string/stringbuffer.js b/srv/src/http/static/viz/1/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/static/src/assets/viz/1/goog/string/stringbuffer.js
+++ b/srv/src/http/static/viz/1/goog/string/stringbuffer.js
diff --git a/static/src/assets/viz/1/goog/string/stringformat.js b/srv/src/http/static/viz/1/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/static/src/assets/viz/1/goog/string/stringformat.js
+++ b/srv/src/http/static/viz/1/goog/string/stringformat.js
diff --git a/static/src/assets/viz/1/goog/string/typedstring.js b/srv/src/http/static/viz/1/goog/string/typedstring.js
index 075115f..075115f 100644
--- a/static/src/assets/viz/1/goog/string/typedstring.js
+++ b/srv/src/http/static/viz/1/goog/string/typedstring.js
diff --git a/static/src/assets/viz/1/goog/useragent/useragent.js b/srv/src/http/static/viz/1/goog/useragent/useragent.js
index 1ab49c4..1ab49c4 100644
--- a/static/src/assets/viz/1/goog/useragent/useragent.js
+++ b/srv/src/http/static/viz/1/goog/useragent/useragent.js
diff --git a/static/src/assets/viz/1/processing.js b/srv/src/http/static/viz/1/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/static/src/assets/viz/1/processing.js
+++ b/srv/src/http/static/viz/1/processing.js
diff --git a/static/src/assets/viz/1/quil/core.cljc b/srv/src/http/static/viz/1/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/static/src/assets/viz/1/quil/core.cljc
+++ b/srv/src/http/static/viz/1/quil/core.cljc
diff --git a/static/src/assets/viz/1/quil/core.cljc.cache.edn b/srv/src/http/static/viz/1/quil/core.cljc.cache.edn
index 8904416..8904416 100644
--- a/static/src/assets/viz/1/quil/core.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/core.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/core.js b/srv/src/http/static/viz/1/quil/core.js
index 87f3457..87f3457 100644
--- a/static/src/assets/viz/1/quil/core.js
+++ b/srv/src/http/static/viz/1/quil/core.js
diff --git a/static/src/assets/viz/1/quil/core.js.map b/srv/src/http/static/viz/1/quil/core.js.map
index 42db417..42db417 100644
--- a/static/src/assets/viz/1/quil/core.js.map
+++ b/srv/src/http/static/viz/1/quil/core.js.map
diff --git a/static/src/assets/viz/1/quil/middleware.cljc b/srv/src/http/static/viz/1/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/static/src/assets/viz/1/quil/middleware.cljc
+++ b/srv/src/http/static/viz/1/quil/middleware.cljc
diff --git a/static/src/assets/viz/1/quil/middleware.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn
index 1fbb263..1fbb263 100644
--- a/static/src/assets/viz/1/quil/middleware.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/middleware.js b/srv/src/http/static/viz/1/quil/middleware.js
index d807b5a..d807b5a 100644
--- a/static/src/assets/viz/1/quil/middleware.js
+++ b/srv/src/http/static/viz/1/quil/middleware.js
diff --git a/static/src/assets/viz/1/quil/middleware.js.map b/srv/src/http/static/viz/1/quil/middleware.js.map
index ea10d2f..ea10d2f 100644
--- a/static/src/assets/viz/1/quil/middleware.js.map
+++ b/srv/src/http/static/viz/1/quil/middleware.js.map
diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc
+++ b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc
diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
index 0af4bd9..0af4bd9 100644
--- a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js
index 2c1658d..2c1658d 100644
--- a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js
+++ b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js
diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js.map b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map
index e093f8c..e093f8c 100644
--- a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js.map
+++ b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map
diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc
+++ b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc
diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
index bde2282..bde2282 100644
--- a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.js b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js
index d6db370..d6db370 100644
--- a/static/src/assets/viz/1/quil/middlewares/fun_mode.js
+++ b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js
diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.js.map b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map
index a4854ee..a4854ee 100644
--- a/static/src/assets/viz/1/quil/middlewares/fun_mode.js.map
+++ b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
index 865d7b4..865d7b4 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js
index 5659fe1..5659fe1 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js.map b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map
index 12c44fc..12c44fc 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js.map
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
index d0089cf..d0089cf 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js
index 19eb935..19eb935 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js
diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js.map b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map
index 0ce580a..0ce580a 100644
--- a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js.map
+++ b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map
diff --git a/static/src/assets/viz/1/quil/sketch.cljs b/srv/src/http/static/viz/1/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/static/src/assets/viz/1/quil/sketch.cljs
+++ b/srv/src/http/static/viz/1/quil/sketch.cljs
diff --git a/static/src/assets/viz/1/quil/sketch.cljs.cache.edn b/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn
index 4911e31..4911e31 100644
--- a/static/src/assets/viz/1/quil/sketch.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn
diff --git a/static/src/assets/viz/1/quil/sketch.js b/srv/src/http/static/viz/1/quil/sketch.js
index 1ed6d8a..1ed6d8a 100644
--- a/static/src/assets/viz/1/quil/sketch.js
+++ b/srv/src/http/static/viz/1/quil/sketch.js
diff --git a/static/src/assets/viz/1/quil/sketch.js.map b/srv/src/http/static/viz/1/quil/sketch.js.map
index 3af57f2..3af57f2 100644
--- a/static/src/assets/viz/1/quil/sketch.js.map
+++ b/srv/src/http/static/viz/1/quil/sketch.js.map
diff --git a/static/src/assets/viz/1/quil/util.cljc b/srv/src/http/static/viz/1/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/static/src/assets/viz/1/quil/util.cljc
+++ b/srv/src/http/static/viz/1/quil/util.cljc
diff --git a/static/src/assets/viz/1/quil/util.cljc.cache.edn b/srv/src/http/static/viz/1/quil/util.cljc.cache.edn
index 0eb6abe..0eb6abe 100644
--- a/static/src/assets/viz/1/quil/util.cljc.cache.edn
+++ b/srv/src/http/static/viz/1/quil/util.cljc.cache.edn
diff --git a/static/src/assets/viz/1/quil/util.js b/srv/src/http/static/viz/1/quil/util.js
index 0f241ea..0f241ea 100644
--- a/static/src/assets/viz/1/quil/util.js
+++ b/srv/src/http/static/viz/1/quil/util.js
diff --git a/static/src/assets/viz/1/quil/util.js.map b/srv/src/http/static/viz/1/quil/util.js.map
index 1b314df..1b314df 100644
--- a/static/src/assets/viz/1/quil/util.js.map
+++ b/srv/src/http/static/viz/1/quil/util.js.map
diff --git a/static/src/assets/viz/1/viz/core.cljs b/srv/src/http/static/viz/1/viz/core.cljs
index 913cab4..913cab4 100644
--- a/static/src/assets/viz/1/viz/core.cljs
+++ b/srv/src/http/static/viz/1/viz/core.cljs
diff --git a/static/src/assets/viz/1/viz/core.cljs.cache.edn b/srv/src/http/static/viz/1/viz/core.cljs.cache.edn
index 2156790..2156790 100644
--- a/static/src/assets/viz/1/viz/core.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/viz/core.cljs.cache.edn
diff --git a/static/src/assets/viz/1/viz/core.js b/srv/src/http/static/viz/1/viz/core.js
index ddc336c..ddc336c 100644
--- a/static/src/assets/viz/1/viz/core.js
+++ b/srv/src/http/static/viz/1/viz/core.js
diff --git a/static/src/assets/viz/1/viz/core.js.map b/srv/src/http/static/viz/1/viz/core.js.map
index 3f7a997..3f7a997 100644
--- a/static/src/assets/viz/1/viz/core.js.map
+++ b/srv/src/http/static/viz/1/viz/core.js.map
diff --git a/static/src/assets/viz/1/viz/forest.cljs b/srv/src/http/static/viz/1/viz/forest.cljs
index 9810089..9810089 100644
--- a/static/src/assets/viz/1/viz/forest.cljs
+++ b/srv/src/http/static/viz/1/viz/forest.cljs
diff --git a/static/src/assets/viz/1/viz/forest.cljs.cache.edn b/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn
index 61b1a40..61b1a40 100644
--- a/static/src/assets/viz/1/viz/forest.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn
diff --git a/static/src/assets/viz/1/viz/forest.js b/srv/src/http/static/viz/1/viz/forest.js
index 0eb043a..0eb043a 100644
--- a/static/src/assets/viz/1/viz/forest.js
+++ b/srv/src/http/static/viz/1/viz/forest.js
diff --git a/static/src/assets/viz/1/viz/forest.js.map b/srv/src/http/static/viz/1/viz/forest.js.map
index e531b5e..e531b5e 100644
--- a/static/src/assets/viz/1/viz/forest.js.map
+++ b/srv/src/http/static/viz/1/viz/forest.js.map
diff --git a/static/src/assets/viz/1/viz/ghost.cljs b/srv/src/http/static/viz/1/viz/ghost.cljs
index ca6f86c..ca6f86c 100644
--- a/static/src/assets/viz/1/viz/ghost.cljs
+++ b/srv/src/http/static/viz/1/viz/ghost.cljs
diff --git a/static/src/assets/viz/1/viz/ghost.cljs.cache.edn b/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn
index 5762f9a..5762f9a 100644
--- a/static/src/assets/viz/1/viz/ghost.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn
diff --git a/static/src/assets/viz/1/viz/ghost.js b/srv/src/http/static/viz/1/viz/ghost.js
index 50b8157..50b8157 100644
--- a/static/src/assets/viz/1/viz/ghost.js
+++ b/srv/src/http/static/viz/1/viz/ghost.js
diff --git a/static/src/assets/viz/1/viz/ghost.js.map b/srv/src/http/static/viz/1/viz/ghost.js.map
index fa62e77..fa62e77 100644
--- a/static/src/assets/viz/1/viz/ghost.js.map
+++ b/srv/src/http/static/viz/1/viz/ghost.js.map
diff --git a/static/src/assets/viz/1/viz/grid.cljs b/srv/src/http/static/viz/1/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/static/src/assets/viz/1/viz/grid.cljs
+++ b/srv/src/http/static/viz/1/viz/grid.cljs
diff --git a/static/src/assets/viz/1/viz/grid.cljs.cache.edn b/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn
index 60052ff..60052ff 100644
--- a/static/src/assets/viz/1/viz/grid.cljs.cache.edn
+++ b/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn
diff --git a/static/src/assets/viz/1/viz/grid.js b/srv/src/http/static/viz/1/viz/grid.js
index 7bf4971..7bf4971 100644
--- a/static/src/assets/viz/1/viz/grid.js
+++ b/srv/src/http/static/viz/1/viz/grid.js
diff --git a/static/src/assets/viz/1/viz/grid.js.map b/srv/src/http/static/viz/1/viz/grid.js.map
index 46886eb..46886eb 100644
--- a/static/src/assets/viz/1/viz/grid.js.map
+++ b/srv/src/http/static/viz/1/viz/grid.js.map
diff --git a/static/src/assets/viz/2/cljs/core.cljs b/srv/src/http/static/viz/2/cljs/core.cljs
index c7f6d9a..c7f6d9a 100644
--- a/static/src/assets/viz/2/cljs/core.cljs
+++ b/srv/src/http/static/viz/2/cljs/core.cljs
diff --git a/static/src/assets/viz/2/cljs/core.js b/srv/src/http/static/viz/2/cljs/core.js
index 31ad4ae..31ad4ae 100644
--- a/static/src/assets/viz/2/cljs/core.js
+++ b/srv/src/http/static/viz/2/cljs/core.js
diff --git a/static/src/assets/viz/2/cljs/core.js.map b/srv/src/http/static/viz/2/cljs/core.js.map
index f7ea5cc..f7ea5cc 100644
--- a/static/src/assets/viz/2/cljs/core.js.map
+++ b/srv/src/http/static/viz/2/cljs/core.js.map
diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json
index e98e6e7..e98e6e7 100644
--- a/static/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json
+++ b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json
diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.js b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js
index 6e5f3f2..6e5f3f2 100644
--- a/static/src/assets/viz/2/cljs/user/debug9D984AE.js
+++ b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js
diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.js.map b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map
index 029817d..029817d 100644
--- a/static/src/assets/viz/2/cljs/user/debug9D984AE.js.map
+++ b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map
diff --git a/static/src/assets/viz/2/cljs_deps.js b/srv/src/http/static/viz/2/cljs_deps.js
index 95a5ac8..95a5ac8 100644
--- a/static/src/assets/viz/2/cljs_deps.js
+++ b/srv/src/http/static/viz/2/cljs_deps.js
diff --git a/static/src/assets/viz/2/cljsc_opts.edn b/srv/src/http/static/viz/2/cljsc_opts.edn
index 9ab2cfa..9ab2cfa 100644
--- a/static/src/assets/viz/2/cljsc_opts.edn
+++ b/srv/src/http/static/viz/2/cljsc_opts.edn
diff --git a/static/src/assets/viz/2/clojure/set.cljs b/srv/src/http/static/viz/2/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/static/src/assets/viz/2/clojure/set.cljs
+++ b/srv/src/http/static/viz/2/clojure/set.cljs
diff --git a/static/src/assets/viz/2/clojure/set.cljs.cache.json b/srv/src/http/static/viz/2/clojure/set.cljs.cache.json
index f2332c0..f2332c0 100644
--- a/static/src/assets/viz/2/clojure/set.cljs.cache.json
+++ b/srv/src/http/static/viz/2/clojure/set.cljs.cache.json
diff --git a/static/src/assets/viz/2/clojure/set.js b/srv/src/http/static/viz/2/clojure/set.js
index 3be3f0b..3be3f0b 100644
--- a/static/src/assets/viz/2/clojure/set.js
+++ b/srv/src/http/static/viz/2/clojure/set.js
diff --git a/static/src/assets/viz/2/clojure/set.js.map b/srv/src/http/static/viz/2/clojure/set.js.map
index c385760..c385760 100644
--- a/static/src/assets/viz/2/clojure/set.js.map
+++ b/srv/src/http/static/viz/2/clojure/set.js.map
diff --git a/static/src/assets/viz/2/clojure/string.cljs b/srv/src/http/static/viz/2/clojure/string.cljs
index 26f63f2..26f63f2 100644
--- a/static/src/assets/viz/2/clojure/string.cljs
+++ b/srv/src/http/static/viz/2/clojure/string.cljs
diff --git a/static/src/assets/viz/2/clojure/string.cljs.cache.json b/srv/src/http/static/viz/2/clojure/string.cljs.cache.json
index 534c7f8..534c7f8 100644
--- a/static/src/assets/viz/2/clojure/string.cljs.cache.json
+++ b/srv/src/http/static/viz/2/clojure/string.cljs.cache.json
diff --git a/static/src/assets/viz/2/clojure/string.js b/srv/src/http/static/viz/2/clojure/string.js
index acd3456..acd3456 100644
--- a/static/src/assets/viz/2/clojure/string.js
+++ b/srv/src/http/static/viz/2/clojure/string.js
diff --git a/static/src/assets/viz/2/clojure/string.js.map b/srv/src/http/static/viz/2/clojure/string.js.map
index 2270a89..2270a89 100644
--- a/static/src/assets/viz/2/clojure/string.js.map
+++ b/srv/src/http/static/viz/2/clojure/string.js.map
diff --git a/static/src/assets/viz/2/goog/array/array.js b/srv/src/http/static/viz/2/goog/array/array.js
index 47e0dbb..47e0dbb 100644
--- a/static/src/assets/viz/2/goog/array/array.js
+++ b/srv/src/http/static/viz/2/goog/array/array.js
diff --git a/static/src/assets/viz/2/goog/asserts/asserts.js b/srv/src/http/static/viz/2/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/static/src/assets/viz/2/goog/asserts/asserts.js
+++ b/srv/src/http/static/viz/2/goog/asserts/asserts.js
diff --git a/static/src/assets/viz/2/goog/base.js b/srv/src/http/static/viz/2/goog/base.js
index 46b2f09..46b2f09 100644
--- a/static/src/assets/viz/2/goog/base.js
+++ b/srv/src/http/static/viz/2/goog/base.js
diff --git a/static/src/assets/viz/2/goog/debug/entrypointregistry.js b/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/static/src/assets/viz/2/goog/debug/entrypointregistry.js
+++ b/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js
diff --git a/static/src/assets/viz/2/goog/debug/error.js b/srv/src/http/static/viz/2/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/static/src/assets/viz/2/goog/debug/error.js
+++ b/srv/src/http/static/viz/2/goog/debug/error.js
diff --git a/static/src/assets/viz/2/goog/deps.js b/srv/src/http/static/viz/2/goog/deps.js
index 5cd5066..5cd5066 100644
--- a/static/src/assets/viz/2/goog/deps.js
+++ b/srv/src/http/static/viz/2/goog/deps.js
diff --git a/static/src/assets/viz/2/goog/disposable/disposable.js b/srv/src/http/static/viz/2/goog/disposable/disposable.js
index a86f549..a86f549 100644
--- a/static/src/assets/viz/2/goog/disposable/disposable.js
+++ b/srv/src/http/static/viz/2/goog/disposable/disposable.js
diff --git a/static/src/assets/viz/2/goog/disposable/idisposable.js b/srv/src/http/static/viz/2/goog/disposable/idisposable.js
index b539eb6..b539eb6 100644
--- a/static/src/assets/viz/2/goog/disposable/idisposable.js
+++ b/srv/src/http/static/viz/2/goog/disposable/idisposable.js
diff --git a/static/src/assets/viz/2/goog/dom/asserts.js b/srv/src/http/static/viz/2/goog/dom/asserts.js
index a8f93ba..a8f93ba 100644
--- a/static/src/assets/viz/2/goog/dom/asserts.js
+++ b/srv/src/http/static/viz/2/goog/dom/asserts.js
diff --git a/static/src/assets/viz/2/goog/dom/browserfeature.js b/srv/src/http/static/viz/2/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/static/src/assets/viz/2/goog/dom/browserfeature.js
+++ b/srv/src/http/static/viz/2/goog/dom/browserfeature.js
diff --git a/static/src/assets/viz/2/goog/dom/dom.js b/srv/src/http/static/viz/2/goog/dom/dom.js
index 919a0b6..919a0b6 100644
--- a/static/src/assets/viz/2/goog/dom/dom.js
+++ b/srv/src/http/static/viz/2/goog/dom/dom.js
diff --git a/static/src/assets/viz/2/goog/dom/htmlelement.js b/srv/src/http/static/viz/2/goog/dom/htmlelement.js
index c48f753..c48f753 100644
--- a/static/src/assets/viz/2/goog/dom/htmlelement.js
+++ b/srv/src/http/static/viz/2/goog/dom/htmlelement.js
diff --git a/static/src/assets/viz/2/goog/dom/nodetype.js b/srv/src/http/static/viz/2/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/static/src/assets/viz/2/goog/dom/nodetype.js
+++ b/srv/src/http/static/viz/2/goog/dom/nodetype.js
diff --git a/static/src/assets/viz/2/goog/dom/safe.js b/srv/src/http/static/viz/2/goog/dom/safe.js
index b9390a0..b9390a0 100644
--- a/static/src/assets/viz/2/goog/dom/safe.js
+++ b/srv/src/http/static/viz/2/goog/dom/safe.js
diff --git a/static/src/assets/viz/2/goog/dom/tagname.js b/srv/src/http/static/viz/2/goog/dom/tagname.js
index b3808ad..b3808ad 100644
--- a/static/src/assets/viz/2/goog/dom/tagname.js
+++ b/srv/src/http/static/viz/2/goog/dom/tagname.js
diff --git a/static/src/assets/viz/2/goog/dom/tags.js b/srv/src/http/static/viz/2/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/static/src/assets/viz/2/goog/dom/tags.js
+++ b/srv/src/http/static/viz/2/goog/dom/tags.js
diff --git a/static/src/assets/viz/2/goog/events/browserevent.js b/srv/src/http/static/viz/2/goog/events/browserevent.js
index b2261a3..b2261a3 100644
--- a/static/src/assets/viz/2/goog/events/browserevent.js
+++ b/srv/src/http/static/viz/2/goog/events/browserevent.js
diff --git a/static/src/assets/viz/2/goog/events/browserfeature.js b/srv/src/http/static/viz/2/goog/events/browserfeature.js
index 7cc7bd6..7cc7bd6 100644
--- a/static/src/assets/viz/2/goog/events/browserfeature.js
+++ b/srv/src/http/static/viz/2/goog/events/browserfeature.js
diff --git a/static/src/assets/viz/2/goog/events/event.js b/srv/src/http/static/viz/2/goog/events/event.js
index ee3b3af..ee3b3af 100644
--- a/static/src/assets/viz/2/goog/events/event.js
+++ b/srv/src/http/static/viz/2/goog/events/event.js
diff --git a/static/src/assets/viz/2/goog/events/eventid.js b/srv/src/http/static/viz/2/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/static/src/assets/viz/2/goog/events/eventid.js
+++ b/srv/src/http/static/viz/2/goog/events/eventid.js
diff --git a/static/src/assets/viz/2/goog/events/events.js b/srv/src/http/static/viz/2/goog/events/events.js
index 2787340..2787340 100644
--- a/static/src/assets/viz/2/goog/events/events.js
+++ b/srv/src/http/static/viz/2/goog/events/events.js
diff --git a/static/src/assets/viz/2/goog/events/eventtype.js b/srv/src/http/static/viz/2/goog/events/eventtype.js
index 7d991ea..7d991ea 100644
--- a/static/src/assets/viz/2/goog/events/eventtype.js
+++ b/srv/src/http/static/viz/2/goog/events/eventtype.js
diff --git a/static/src/assets/viz/2/goog/events/listenable.js b/srv/src/http/static/viz/2/goog/events/listenable.js
index 0f29d81..0f29d81 100644
--- a/static/src/assets/viz/2/goog/events/listenable.js
+++ b/srv/src/http/static/viz/2/goog/events/listenable.js
diff --git a/static/src/assets/viz/2/goog/events/listener.js b/srv/src/http/static/viz/2/goog/events/listener.js
index 5ac7b85..5ac7b85 100644
--- a/static/src/assets/viz/2/goog/events/listener.js
+++ b/srv/src/http/static/viz/2/goog/events/listener.js
diff --git a/static/src/assets/viz/2/goog/events/listenermap.js b/srv/src/http/static/viz/2/goog/events/listenermap.js
index 0375cf2..0375cf2 100644
--- a/static/src/assets/viz/2/goog/events/listenermap.js
+++ b/srv/src/http/static/viz/2/goog/events/listenermap.js
diff --git a/static/src/assets/viz/2/goog/fs/url.js b/srv/src/http/static/viz/2/goog/fs/url.js
index 364615e..364615e 100644
--- a/static/src/assets/viz/2/goog/fs/url.js
+++ b/srv/src/http/static/viz/2/goog/fs/url.js
diff --git a/static/src/assets/viz/2/goog/functions/functions.js b/srv/src/http/static/viz/2/goog/functions/functions.js
index 61849e9..61849e9 100644
--- a/static/src/assets/viz/2/goog/functions/functions.js
+++ b/srv/src/http/static/viz/2/goog/functions/functions.js
diff --git a/static/src/assets/viz/2/goog/html/safehtml.js b/srv/src/http/static/viz/2/goog/html/safehtml.js
index 4bffbff..4bffbff 100644
--- a/static/src/assets/viz/2/goog/html/safehtml.js
+++ b/srv/src/http/static/viz/2/goog/html/safehtml.js
diff --git a/static/src/assets/viz/2/goog/html/safescript.js b/srv/src/http/static/viz/2/goog/html/safescript.js
index 7a945eb..7a945eb 100644
--- a/static/src/assets/viz/2/goog/html/safescript.js
+++ b/srv/src/http/static/viz/2/goog/html/safescript.js
diff --git a/static/src/assets/viz/2/goog/html/safestyle.js b/srv/src/http/static/viz/2/goog/html/safestyle.js
index 506a475..506a475 100644
--- a/static/src/assets/viz/2/goog/html/safestyle.js
+++ b/srv/src/http/static/viz/2/goog/html/safestyle.js
diff --git a/static/src/assets/viz/2/goog/html/safestylesheet.js b/srv/src/http/static/viz/2/goog/html/safestylesheet.js
index cdd9e31..cdd9e31 100644
--- a/static/src/assets/viz/2/goog/html/safestylesheet.js
+++ b/srv/src/http/static/viz/2/goog/html/safestylesheet.js
diff --git a/static/src/assets/viz/2/goog/html/safeurl.js b/srv/src/http/static/viz/2/goog/html/safeurl.js
index 3d1ee11..3d1ee11 100644
--- a/static/src/assets/viz/2/goog/html/safeurl.js
+++ b/srv/src/http/static/viz/2/goog/html/safeurl.js
diff --git a/static/src/assets/viz/2/goog/html/trustedresourceurl.js b/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js
index c043ef1..c043ef1 100644
--- a/static/src/assets/viz/2/goog/html/trustedresourceurl.js
+++ b/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js
diff --git a/static/src/assets/viz/2/goog/html/uncheckedconversions.js b/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js
index e96697c..e96697c 100644
--- a/static/src/assets/viz/2/goog/html/uncheckedconversions.js
+++ b/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js
diff --git a/static/src/assets/viz/2/goog/i18n/bidi.js b/srv/src/http/static/viz/2/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/static/src/assets/viz/2/goog/i18n/bidi.js
+++ b/srv/src/http/static/viz/2/goog/i18n/bidi.js
diff --git a/static/src/assets/viz/2/goog/iter/iter.js b/srv/src/http/static/viz/2/goog/iter/iter.js
index 5bbb0bb..5bbb0bb 100644
--- a/static/src/assets/viz/2/goog/iter/iter.js
+++ b/srv/src/http/static/viz/2/goog/iter/iter.js
diff --git a/static/src/assets/viz/2/goog/labs/useragent/browser.js b/srv/src/http/static/viz/2/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/static/src/assets/viz/2/goog/labs/useragent/browser.js
+++ b/srv/src/http/static/viz/2/goog/labs/useragent/browser.js
diff --git a/static/src/assets/viz/2/goog/labs/useragent/engine.js b/srv/src/http/static/viz/2/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/static/src/assets/viz/2/goog/labs/useragent/engine.js
+++ b/srv/src/http/static/viz/2/goog/labs/useragent/engine.js
diff --git a/static/src/assets/viz/2/goog/labs/useragent/platform.js b/srv/src/http/static/viz/2/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/static/src/assets/viz/2/goog/labs/useragent/platform.js
+++ b/srv/src/http/static/viz/2/goog/labs/useragent/platform.js
diff --git a/static/src/assets/viz/2/goog/labs/useragent/util.js b/srv/src/http/static/viz/2/goog/labs/useragent/util.js
index 26d4847..26d4847 100644
--- a/static/src/assets/viz/2/goog/labs/useragent/util.js
+++ b/srv/src/http/static/viz/2/goog/labs/useragent/util.js
diff --git a/static/src/assets/viz/2/goog/math/coordinate.js b/srv/src/http/static/viz/2/goog/math/coordinate.js
index 0dc2469..0dc2469 100644
--- a/static/src/assets/viz/2/goog/math/coordinate.js
+++ b/srv/src/http/static/viz/2/goog/math/coordinate.js
diff --git a/static/src/assets/viz/2/goog/math/integer.js b/srv/src/http/static/viz/2/goog/math/integer.js
index 6907546..6907546 100644
--- a/static/src/assets/viz/2/goog/math/integer.js
+++ b/srv/src/http/static/viz/2/goog/math/integer.js
diff --git a/static/src/assets/viz/2/goog/math/long.js b/srv/src/http/static/viz/2/goog/math/long.js
index 5212caf..5212caf 100644
--- a/static/src/assets/viz/2/goog/math/long.js
+++ b/srv/src/http/static/viz/2/goog/math/long.js
diff --git a/static/src/assets/viz/2/goog/math/math.js b/srv/src/http/static/viz/2/goog/math/math.js
index b8dbfb0..b8dbfb0 100644
--- a/static/src/assets/viz/2/goog/math/math.js
+++ b/srv/src/http/static/viz/2/goog/math/math.js
diff --git a/static/src/assets/viz/2/goog/math/size.js b/srv/src/http/static/viz/2/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/static/src/assets/viz/2/goog/math/size.js
+++ b/srv/src/http/static/viz/2/goog/math/size.js
diff --git a/static/src/assets/viz/2/goog/object/object.js b/srv/src/http/static/viz/2/goog/object/object.js
index 2f26c2b..2f26c2b 100644
--- a/static/src/assets/viz/2/goog/object/object.js
+++ b/srv/src/http/static/viz/2/goog/object/object.js
diff --git a/static/src/assets/viz/2/goog/reflect/reflect.js b/srv/src/http/static/viz/2/goog/reflect/reflect.js
index a737324..a737324 100644
--- a/static/src/assets/viz/2/goog/reflect/reflect.js
+++ b/srv/src/http/static/viz/2/goog/reflect/reflect.js
diff --git a/static/src/assets/viz/2/goog/string/const.js b/srv/src/http/static/viz/2/goog/string/const.js
index 30bfc4e..30bfc4e 100644
--- a/static/src/assets/viz/2/goog/string/const.js
+++ b/srv/src/http/static/viz/2/goog/string/const.js
diff --git a/static/src/assets/viz/2/goog/string/string.js b/srv/src/http/static/viz/2/goog/string/string.js
index 7a10ae0..7a10ae0 100644
--- a/static/src/assets/viz/2/goog/string/string.js
+++ b/srv/src/http/static/viz/2/goog/string/string.js
diff --git a/static/src/assets/viz/2/goog/string/stringbuffer.js b/srv/src/http/static/viz/2/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/static/src/assets/viz/2/goog/string/stringbuffer.js
+++ b/srv/src/http/static/viz/2/goog/string/stringbuffer.js
diff --git a/static/src/assets/viz/2/goog/string/stringformat.js b/srv/src/http/static/viz/2/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/static/src/assets/viz/2/goog/string/stringformat.js
+++ b/srv/src/http/static/viz/2/goog/string/stringformat.js
diff --git a/static/src/assets/viz/2/goog/string/typedstring.js b/srv/src/http/static/viz/2/goog/string/typedstring.js
index d0d7bd9..d0d7bd9 100644
--- a/static/src/assets/viz/2/goog/string/typedstring.js
+++ b/srv/src/http/static/viz/2/goog/string/typedstring.js
diff --git a/static/src/assets/viz/2/goog/structs/map.js b/srv/src/http/static/viz/2/goog/structs/map.js
index 1cb4bcc..1cb4bcc 100644
--- a/static/src/assets/viz/2/goog/structs/map.js
+++ b/srv/src/http/static/viz/2/goog/structs/map.js
diff --git a/static/src/assets/viz/2/goog/structs/structs.js b/srv/src/http/static/viz/2/goog/structs/structs.js
index 684ddfe..684ddfe 100644
--- a/static/src/assets/viz/2/goog/structs/structs.js
+++ b/srv/src/http/static/viz/2/goog/structs/structs.js
diff --git a/static/src/assets/viz/2/goog/uri/uri.js b/srv/src/http/static/viz/2/goog/uri/uri.js
index 7873de9..7873de9 100644
--- a/static/src/assets/viz/2/goog/uri/uri.js
+++ b/srv/src/http/static/viz/2/goog/uri/uri.js
diff --git a/static/src/assets/viz/2/goog/uri/utils.js b/srv/src/http/static/viz/2/goog/uri/utils.js
index 3b8917a..3b8917a 100644
--- a/static/src/assets/viz/2/goog/uri/utils.js
+++ b/srv/src/http/static/viz/2/goog/uri/utils.js
diff --git a/static/src/assets/viz/2/goog/useragent/useragent.js b/srv/src/http/static/viz/2/goog/useragent/useragent.js
index 6fc5ff1..6fc5ff1 100644
--- a/static/src/assets/viz/2/goog/useragent/useragent.js
+++ b/srv/src/http/static/viz/2/goog/useragent/useragent.js
diff --git a/static/src/assets/viz/2/process/env.cljs b/srv/src/http/static/viz/2/process/env.cljs
index c8a6909..c8a6909 100644
--- a/static/src/assets/viz/2/process/env.cljs
+++ b/srv/src/http/static/viz/2/process/env.cljs
diff --git a/static/src/assets/viz/2/process/env.cljs.cache.json b/srv/src/http/static/viz/2/process/env.cljs.cache.json
index cde3e78..cde3e78 100644
--- a/static/src/assets/viz/2/process/env.cljs.cache.json
+++ b/srv/src/http/static/viz/2/process/env.cljs.cache.json
diff --git a/static/src/assets/viz/2/process/env.js b/srv/src/http/static/viz/2/process/env.js
index a917edb..a917edb 100644
--- a/static/src/assets/viz/2/process/env.js
+++ b/srv/src/http/static/viz/2/process/env.js
diff --git a/static/src/assets/viz/2/process/env.js.map b/srv/src/http/static/viz/2/process/env.js.map
index 4b5f46b..4b5f46b 100644
--- a/static/src/assets/viz/2/process/env.js.map
+++ b/srv/src/http/static/viz/2/process/env.js.map
diff --git a/static/src/assets/viz/2/processing.js b/srv/src/http/static/viz/2/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/static/src/assets/viz/2/processing.js
+++ b/srv/src/http/static/viz/2/processing.js
diff --git a/static/src/assets/viz/2/quil/core.cljc b/srv/src/http/static/viz/2/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/static/src/assets/viz/2/quil/core.cljc
+++ b/srv/src/http/static/viz/2/quil/core.cljc
diff --git a/static/src/assets/viz/2/quil/core.cljc.cache.json b/srv/src/http/static/viz/2/quil/core.cljc.cache.json
index e2cfeb3..e2cfeb3 100644
--- a/static/src/assets/viz/2/quil/core.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/core.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/core.js b/srv/src/http/static/viz/2/quil/core.js
index d4a2954..d4a2954 100644
--- a/static/src/assets/viz/2/quil/core.js
+++ b/srv/src/http/static/viz/2/quil/core.js
diff --git a/static/src/assets/viz/2/quil/core.js.map b/srv/src/http/static/viz/2/quil/core.js.map
index 55fa54e..55fa54e 100644
--- a/static/src/assets/viz/2/quil/core.js.map
+++ b/srv/src/http/static/viz/2/quil/core.js.map
diff --git a/static/src/assets/viz/2/quil/middleware.cljc b/srv/src/http/static/viz/2/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/static/src/assets/viz/2/quil/middleware.cljc
+++ b/srv/src/http/static/viz/2/quil/middleware.cljc
diff --git a/static/src/assets/viz/2/quil/middleware.cljc.cache.json b/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json
index ac5c7df..ac5c7df 100644
--- a/static/src/assets/viz/2/quil/middleware.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/middleware.js b/srv/src/http/static/viz/2/quil/middleware.js
index fcac0f6..fcac0f6 100644
--- a/static/src/assets/viz/2/quil/middleware.js
+++ b/srv/src/http/static/viz/2/quil/middleware.js
diff --git a/static/src/assets/viz/2/quil/middleware.js.map b/srv/src/http/static/viz/2/quil/middleware.js.map
index 63af250..63af250 100644
--- a/static/src/assets/viz/2/quil/middleware.js.map
+++ b/srv/src/http/static/viz/2/quil/middleware.js.map
diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc
+++ b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc
diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
index b0ba153..b0ba153 100644
--- a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js
index e80614c..e80614c 100644
--- a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js
+++ b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js
diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js.map b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map
index fdcedf9..fdcedf9 100644
--- a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js.map
+++ b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map
diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc
+++ b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc
diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json
index 26e797e..26e797e 100644
--- a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.js b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js
index 5eabdf8..5eabdf8 100644
--- a/static/src/assets/viz/2/quil/middlewares/fun_mode.js
+++ b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js
diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.js.map b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map
index 459ff6e..459ff6e 100644
--- a/static/src/assets/viz/2/quil/middlewares/fun_mode.js.map
+++ b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
index 664f7ef..664f7ef 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js
index 9403a91..9403a91 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js.map b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map
index 34afb3c..34afb3c 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js.map
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
index 2edb582..2edb582 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js
index d80d58a..d80d58a 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js
diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js.map b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map
index 6668288..6668288 100644
--- a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js.map
+++ b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map
diff --git a/static/src/assets/viz/2/quil/sketch.cljs b/srv/src/http/static/viz/2/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/static/src/assets/viz/2/quil/sketch.cljs
+++ b/srv/src/http/static/viz/2/quil/sketch.cljs
diff --git a/static/src/assets/viz/2/quil/sketch.cljs.cache.json b/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json
index 5544f56..5544f56 100644
--- a/static/src/assets/viz/2/quil/sketch.cljs.cache.json
+++ b/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json
diff --git a/static/src/assets/viz/2/quil/sketch.js b/srv/src/http/static/viz/2/quil/sketch.js
index b394075..b394075 100644
--- a/static/src/assets/viz/2/quil/sketch.js
+++ b/srv/src/http/static/viz/2/quil/sketch.js
diff --git a/static/src/assets/viz/2/quil/sketch.js.map b/srv/src/http/static/viz/2/quil/sketch.js.map
index b9bbeec..b9bbeec 100644
--- a/static/src/assets/viz/2/quil/sketch.js.map
+++ b/srv/src/http/static/viz/2/quil/sketch.js.map
diff --git a/static/src/assets/viz/2/quil/util.cljc b/srv/src/http/static/viz/2/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/static/src/assets/viz/2/quil/util.cljc
+++ b/srv/src/http/static/viz/2/quil/util.cljc
diff --git a/static/src/assets/viz/2/quil/util.cljc.cache.json b/srv/src/http/static/viz/2/quil/util.cljc.cache.json
index ffc87ae..ffc87ae 100644
--- a/static/src/assets/viz/2/quil/util.cljc.cache.json
+++ b/srv/src/http/static/viz/2/quil/util.cljc.cache.json
diff --git a/static/src/assets/viz/2/quil/util.js b/srv/src/http/static/viz/2/quil/util.js
index f0e8bc9..f0e8bc9 100644
--- a/static/src/assets/viz/2/quil/util.js
+++ b/srv/src/http/static/viz/2/quil/util.js
diff --git a/static/src/assets/viz/2/quil/util.js.map b/srv/src/http/static/viz/2/quil/util.js.map
index b78bac5..b78bac5 100644
--- a/static/src/assets/viz/2/quil/util.js.map
+++ b/srv/src/http/static/viz/2/quil/util.js.map
diff --git a/static/src/assets/viz/2/viz/core.cljs b/srv/src/http/static/viz/2/viz/core.cljs
index caeb386..caeb386 100644
--- a/static/src/assets/viz/2/viz/core.cljs
+++ b/srv/src/http/static/viz/2/viz/core.cljs
diff --git a/static/src/assets/viz/2/viz/core.cljs.cache.json b/srv/src/http/static/viz/2/viz/core.cljs.cache.json
index ade1293..ade1293 100644
--- a/static/src/assets/viz/2/viz/core.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/core.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/core.js b/srv/src/http/static/viz/2/viz/core.js
index a14b2fd..a14b2fd 100644
--- a/static/src/assets/viz/2/viz/core.js
+++ b/srv/src/http/static/viz/2/viz/core.js
diff --git a/static/src/assets/viz/2/viz/core.js.map b/srv/src/http/static/viz/2/viz/core.js.map
index 1bee43b..1bee43b 100644
--- a/static/src/assets/viz/2/viz/core.js.map
+++ b/srv/src/http/static/viz/2/viz/core.js.map
diff --git a/static/src/assets/viz/2/viz/debug.cljs b/srv/src/http/static/viz/2/viz/debug.cljs
index 9de3071..9de3071 100644
--- a/static/src/assets/viz/2/viz/debug.cljs
+++ b/srv/src/http/static/viz/2/viz/debug.cljs
diff --git a/static/src/assets/viz/2/viz/debug.cljs.cache.json b/srv/src/http/static/viz/2/viz/debug.cljs.cache.json
index e2f0a33..e2f0a33 100644
--- a/static/src/assets/viz/2/viz/debug.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/debug.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/debug.js b/srv/src/http/static/viz/2/viz/debug.js
index 81683f9..81683f9 100644
--- a/static/src/assets/viz/2/viz/debug.js
+++ b/srv/src/http/static/viz/2/viz/debug.js
diff --git a/static/src/assets/viz/2/viz/debug.js.map b/srv/src/http/static/viz/2/viz/debug.js.map
index fb46f64..fb46f64 100644
--- a/static/src/assets/viz/2/viz/debug.js.map
+++ b/srv/src/http/static/viz/2/viz/debug.js.map
diff --git a/static/src/assets/viz/2/viz/dial.cljs b/srv/src/http/static/viz/2/viz/dial.cljs
index 46656e5..46656e5 100644
--- a/static/src/assets/viz/2/viz/dial.cljs
+++ b/srv/src/http/static/viz/2/viz/dial.cljs
diff --git a/static/src/assets/viz/2/viz/dial.cljs.cache.json b/srv/src/http/static/viz/2/viz/dial.cljs.cache.json
index da9fe18..da9fe18 100644
--- a/static/src/assets/viz/2/viz/dial.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/dial.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/dial.js b/srv/src/http/static/viz/2/viz/dial.js
index 3eb17f2..3eb17f2 100644
--- a/static/src/assets/viz/2/viz/dial.js
+++ b/srv/src/http/static/viz/2/viz/dial.js
diff --git a/static/src/assets/viz/2/viz/dial.js.map b/srv/src/http/static/viz/2/viz/dial.js.map
index 213c641..213c641 100644
--- a/static/src/assets/viz/2/viz/dial.js.map
+++ b/srv/src/http/static/viz/2/viz/dial.js.map
diff --git a/static/src/assets/viz/2/viz/forest.cljs b/srv/src/http/static/viz/2/viz/forest.cljs
index ee6a2fb..ee6a2fb 100644
--- a/static/src/assets/viz/2/viz/forest.cljs
+++ b/srv/src/http/static/viz/2/viz/forest.cljs
diff --git a/static/src/assets/viz/2/viz/forest.cljs.cache.json b/srv/src/http/static/viz/2/viz/forest.cljs.cache.json
index e45e9f2..e45e9f2 100644
--- a/static/src/assets/viz/2/viz/forest.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/forest.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/forest.js b/srv/src/http/static/viz/2/viz/forest.js
index 4481c7d..4481c7d 100644
--- a/static/src/assets/viz/2/viz/forest.js
+++ b/srv/src/http/static/viz/2/viz/forest.js
diff --git a/static/src/assets/viz/2/viz/forest.js.map b/srv/src/http/static/viz/2/viz/forest.js.map
index 5d1245b..5d1245b 100644
--- a/static/src/assets/viz/2/viz/forest.js.map
+++ b/srv/src/http/static/viz/2/viz/forest.js.map
diff --git a/static/src/assets/viz/2/viz/ghost.cljs b/srv/src/http/static/viz/2/viz/ghost.cljs
index d468479..d468479 100644
--- a/static/src/assets/viz/2/viz/ghost.cljs
+++ b/srv/src/http/static/viz/2/viz/ghost.cljs
diff --git a/static/src/assets/viz/2/viz/ghost.cljs.cache.json b/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json
index 15e7065..15e7065 100644
--- a/static/src/assets/viz/2/viz/ghost.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/ghost.js b/srv/src/http/static/viz/2/viz/ghost.js
index d2106e1..d2106e1 100644
--- a/static/src/assets/viz/2/viz/ghost.js
+++ b/srv/src/http/static/viz/2/viz/ghost.js
diff --git a/static/src/assets/viz/2/viz/ghost.js.map b/srv/src/http/static/viz/2/viz/ghost.js.map
index a2b7533..a2b7533 100644
--- a/static/src/assets/viz/2/viz/ghost.js.map
+++ b/srv/src/http/static/viz/2/viz/ghost.js.map
diff --git a/static/src/assets/viz/2/viz/grid.cljs b/srv/src/http/static/viz/2/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/static/src/assets/viz/2/viz/grid.cljs
+++ b/srv/src/http/static/viz/2/viz/grid.cljs
diff --git a/static/src/assets/viz/2/viz/grid.cljs.cache.json b/srv/src/http/static/viz/2/viz/grid.cljs.cache.json
index fcc5225..fcc5225 100644
--- a/static/src/assets/viz/2/viz/grid.cljs.cache.json
+++ b/srv/src/http/static/viz/2/viz/grid.cljs.cache.json
diff --git a/static/src/assets/viz/2/viz/grid.js b/srv/src/http/static/viz/2/viz/grid.js
index 891193e..891193e 100644
--- a/static/src/assets/viz/2/viz/grid.js
+++ b/srv/src/http/static/viz/2/viz/grid.js
diff --git a/static/src/assets/viz/2/viz/grid.js.map b/srv/src/http/static/viz/2/viz/grid.js.map
index 1964511..1964511 100644
--- a/static/src/assets/viz/2/viz/grid.js.map
+++ b/srv/src/http/static/viz/2/viz/grid.js.map
diff --git a/static/src/assets/wtfpl.txt b/srv/src/http/static/wtfpl.txt
index ee7d6a5..ee7d6a5 100644
--- a/static/src/assets/wtfpl.txt
+++ b/srv/src/http/static/wtfpl.txt
diff --git a/srv/src/http/tpl.go b/srv/src/http/tpl.go
index d647317..65f23a7 100644
--- a/srv/src/http/tpl.go
+++ b/srv/src/http/tpl.go
@@ -31,10 +31,12 @@ func (a *api) mustParseTpl(name string) *template.Template {
blogURL := func(path string) string {
+ // filepath.Join strips trailing slash, but we want to keep it
trailingSlash := strings.HasSuffix(path, "/")
- path = filepath.Join(a.params.PathPrefix, "/v2", path)
- if trailingSlash {
+ path = filepath.Join("/", a.params.PathPrefix, path)
+
+ if trailingSlash && path != "/" {
path += "/"
}
@@ -43,6 +45,10 @@ func (a *api) mustParseTpl(name string) *template.Template {
tpl := template.New("").Funcs(template.FuncMap{
"BlogURL": blogURL,
+ "StaticURL": func(path string) string {
+ path = filepath.Join("static", path)
+ return blogURL(path)
+ },
"AssetURL": func(id string) string {
path := filepath.Join("assets", id)
return blogURL(path)
diff --git a/srv/src/http/tpl/base.html b/srv/src/http/tpl/base.html
index 6031919..e209034 100644
--- a/srv/src/http/tpl/base.html
+++ b/srv/src/http/tpl/base.html
@@ -3,11 +3,11 @@
<head>
<meta charset="utf-8">
- <link rel="stylesheet" href="/assets/normalize.css">
- <link rel="stylesheet" href="/assets/skeleton.css">
- <link rel="stylesheet" href="/assets/friendly.css">
- <link rel="stylesheet" href="/assets/main.css">
- <link rel="stylesheet" href="/assets/fontawesome/css/all.css">
+ <link rel="stylesheet" href="{{ StaticURL "normalize.css" }}">
+ <link rel="stylesheet" href="{{ StaticURL "skeleton.css" }}">
+ <link rel="stylesheet" href="{{ StaticURL "friendly.css" }}">
+ <link rel="stylesheet" href="{{ StaticURL "main.css" }}">
+ <link rel="stylesheet" href="{{ StaticURL "fontawesome/css/all.css" }}">
</head>
<body>
@@ -54,7 +54,7 @@
<footer>
<p class="license light">
Unless otherwised specified, all works are licensed under the
- <a href="/assets/wtfpl.txt">WTFPL</a>.
+ <a href="{{ StaticURL "wtfpl.txt" }}">WTFPL</a>.
</p>
</footer>
diff --git a/srv/src/http/tpl/follow.html b/srv/src/http/tpl/follow.html
index 8cf9dc6..48b7541 100644
--- a/srv/src/http/tpl/follow.html
+++ b/srv/src/http/tpl/follow.html
@@ -1,6 +1,6 @@
{{ define "body" }}
-<script async type="module" src="/assets/api.js"></script>
+<script async type="module" src="{{ StaticURL "api.js" }}"></script>
<p>
Here's your options for receiving updates about new blog posts:
@@ -67,7 +67,7 @@ const emailStatus = document.getElementById("emailStatus");
emailSubscribe.onclick = async () => {
- const api = await import("/assets/api.js");
+ const api = await import("{{ StaticURL "api.js" }}");
emailSubscribe.disabled = true;
emailSubscribe.className = "";