From eaf3c88a362f1ddff4baa318e798f94d6a12b2cc Mon Sep 17 00:00:00 2001 From: giles Date: Mon, 13 Apr 2026 09:17:43 +0000 Subject: [PATCH] =?UTF-8?q?HS=20runtime:=20empty/swap/compound=20events,?= =?UTF-8?q?=20host-set!=20fix=20=E2=80=94=20403=E2=86=92423=20(51%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix host-set → host-set! in emit-inc/emit-dec (increment/decrement properties) - Implement empty/clear command: parser dispatch, compiler, polymorphic runtime - Implement swap command: parser dispatch, compiler (let+do temp swap pattern) - Add parse-compound-event-name: joins dot/colon tokens (example.event, htmx:load) - Add hs-compile to source parser (was only in WASM deploy copy) - Add clear/swap to tokenizer keywords and cmd-kw? list - Generator: fix run() with extra args, String.raw support Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/hyperscript/compiler.sx | 16 +- lib/hyperscript/parser.sx | 58 +- lib/hyperscript/runtime.sx | 29 +- lib/hyperscript/tokenizer.sx | 2 + shared/static/wasm/sx/hs-parser.sx | 32 +- shared/static/wasm/sx/hs-parser.sxbc | 4 +- spec/tests/test-hyperscript-behavioral.sx | 33 +- tests/playwright/generate-sx-tests.py | 42 +- tests/playwright/hs-behavioral-data.js | 978 +++++++++++++++++++++- 9 files changed, 1159 insertions(+), 35 deletions(-) diff --git a/lib/hyperscript/compiler.sx b/lib/hyperscript/compiler.sx index 2bf3c984..70810ed0 100644 --- a/lib/hyperscript/compiler.sx +++ b/lib/hyperscript/compiler.sx @@ -292,7 +292,7 @@ (let ((obj (hs-to-sx (nth expr 1))) (prop (nth expr 2))) (list - (quote host-set) + (quote host-set!) obj prop (list @@ -344,7 +344,7 @@ (let ((obj (hs-to-sx (nth expr 1))) (prop (nth expr 2))) (list - (quote host-set) + (quote host-set!) obj prop (list @@ -815,6 +815,18 @@ (nth ast 1))))) ((= head (quote remove-element)) (list (quote dom-remove) (hs-to-sx (nth ast 1)))) + ((= head (quote empty-target)) + (list (quote hs-empty-target!) (hs-to-sx (nth ast 1)))) + ((= head (quote swap!)) + (let + ((lhs (nth ast 1)) (rhs (nth ast 2))) + (list + (quote let) + (list (list (quote _swap_tmp) (hs-to-sx lhs))) + (list + (quote do) + (emit-set lhs (hs-to-sx rhs)) + (emit-set rhs (quote _swap_tmp)))))) ((= head (quote remove-attr)) (let ((tgt (if (nil? (nth ast 2)) (quote me) (hs-to-sx (nth ast 2))))) diff --git a/lib/hyperscript/parser.sx b/lib/hyperscript/parser.sx index b61639d5..375bf123 100644 --- a/lib/hyperscript/parser.sx +++ b/lib/hyperscript/parser.sx @@ -942,12 +942,40 @@ (if (= (tp-type) "comma") (adv!) nil) (dd-collect (append acc (list key val)))))))) (cons (quote dict) (dd-collect (list))))) + (define + parse-compound-event-name + (fn + () + (let + ((result (get (adv!) "value"))) + (define + collect! + (fn + () + (when + (not (at-end?)) + (cond + ((= (tp-type) "class") + (let + ((part (tp-val))) + (adv!) + (set! result (str result "." part)) + (collect!))) + ((= (tp-type) "local") + (let + ((part (tp-val))) + (adv!) + (set! result (str result ":" part)) + (collect!))) + (true nil))))) + (collect!) + result))) (define parse-send-cmd (fn () (let - ((name (get (adv!) "value"))) + ((name (parse-compound-event-name))) (let ((dtl (if (= (tp-type) "paren-open") (parse-detail-dict) nil))) (let @@ -1422,6 +1450,21 @@ (let ((end-pos (skip-to-close 0))) (substring src start-pos end-pos))))) + (define + parse-empty-cmd + (fn + () + (let + ((target (cond ((at-end?) (list (quote sym) "me")) ((and (= (tp-type) "keyword") (or (= (tp-val) "then") (= (tp-val) "end"))) (list (quote sym) "me")) (true (parse-expr))))) + (list (quote empty-target) target)))) + (define + parse-swap-cmd + (fn + () + (let + ((lhs (parse-expr))) + (match-kw "with") + (let ((rhs (parse-expr))) (list (quote swap!) lhs rhs))))) (define parse-cmd (fn @@ -1503,6 +1546,12 @@ (do (adv!) (parse-halt-cmd))) ((and (= typ "keyword") (= val "focus")) (do (adv!) (parse-focus-cmd))) + ((and (= typ "keyword") (= val "empty")) + (do (adv!) (parse-empty-cmd))) + ((and (= typ "keyword") (= val "clear")) + (do (adv!) (parse-empty-cmd))) + ((and (= typ "keyword") (= val "swap")) + (do (adv!) (parse-swap-cmd))) (true (parse-expr)))))) (define parse-cmd-list @@ -1548,7 +1597,10 @@ (= v "scroll") (= v "select") (= v "reset") - (= v "focus")))) + (= v "focus") + (= v "empty") + (= v "clear") + (= v "swap")))) (define cl-collect (fn @@ -1578,7 +1630,7 @@ (let ((every? (match-kw "every"))) (let - ((event-name (let ((v (tp-val))) (adv!) v))) + ((event-name (parse-compound-event-name))) (let ((flt (if (= (tp-type) "bracket-open") (do (adv!) (let ((f (parse-expr))) (if (= (tp-type) "bracket-close") (adv!) nil) f)) nil))) (let diff --git a/lib/hyperscript/runtime.sx b/lib/hyperscript/runtime.sx index aa892e48..c294ccf6 100644 --- a/lib/hyperscript/runtime.sx +++ b/lib/hyperscript/runtime.sx @@ -444,10 +444,31 @@ ((dict? v) (= (len (keys v)) 0)) (true false)))) ;; Array slicing (inclusive both ends) -(define hs-first (fn (lst) (first lst))) +(define + hs-empty-target! + (fn + (target) + (cond + ((list? target) (for-each (fn (el) (hs-empty-target! el)) target)) + ((nil? target) nil) + (true + (let + ((tag (dom-get-prop target "tagName"))) + (cond + ((or (= tag "INPUT") (= tag "TEXTAREA")) + (let + ((input-type (dom-get-prop target "type"))) + (if + (or (= input-type "checkbox") (= input-type "radio")) + (dom-set-prop target "checked" false) + (dom-set-prop target "value" "")))) + ((= tag "FORM") (dom-set-inner-html target "")) + (true (dom-set-inner-html target "")))))))) ;; Collection: sorted by -(define hs-last (fn (lst) (last lst))) +(define hs-first (fn (lst) (first lst))) ;; Collection: sorted by descending +(define hs-last (fn (lst) (last lst))) +;; Collection: split by (define hs-template (fn @@ -533,7 +554,7 @@ (set! i (+ i 1)) (tpl-loop))))))) (do (tpl-loop) result)))) -;; Collection: split by +;; Collection: joined by (define hs-make-object (fn @@ -545,7 +566,7 @@ (fn (pair) (dict-set! d (first pair) (nth pair 1))) pairs) d)))) -;; Collection: joined by + (define hs-method-call (fn diff --git a/lib/hyperscript/tokenizer.sx b/lib/hyperscript/tokenizer.sx index 9bf15b9b..c0a7ceed 100644 --- a/lib/hyperscript/tokenizer.sx +++ b/lib/hyperscript/tokenizer.sx @@ -117,6 +117,8 @@ "last" "random" "empty" + "clear" + "swap" "exists" "matches" "contains" diff --git a/shared/static/wasm/sx/hs-parser.sx b/shared/static/wasm/sx/hs-parser.sx index 6baf97f7..375bf123 100644 --- a/shared/static/wasm/sx/hs-parser.sx +++ b/shared/static/wasm/sx/hs-parser.sx @@ -942,12 +942,40 @@ (if (= (tp-type) "comma") (adv!) nil) (dd-collect (append acc (list key val)))))))) (cons (quote dict) (dd-collect (list))))) + (define + parse-compound-event-name + (fn + () + (let + ((result (get (adv!) "value"))) + (define + collect! + (fn + () + (when + (not (at-end?)) + (cond + ((= (tp-type) "class") + (let + ((part (tp-val))) + (adv!) + (set! result (str result "." part)) + (collect!))) + ((= (tp-type) "local") + (let + ((part (tp-val))) + (adv!) + (set! result (str result ":" part)) + (collect!))) + (true nil))))) + (collect!) + result))) (define parse-send-cmd (fn () (let - ((name (get (adv!) "value"))) + ((name (parse-compound-event-name))) (let ((dtl (if (= (tp-type) "paren-open") (parse-detail-dict) nil))) (let @@ -1602,7 +1630,7 @@ (let ((every? (match-kw "every"))) (let - ((event-name (let ((v (tp-val))) (adv!) v))) + ((event-name (parse-compound-event-name))) (let ((flt (if (= (tp-type) "bracket-open") (do (adv!) (let ((f (parse-expr))) (if (= (tp-type) "bracket-close") (adv!) nil) f)) nil))) (let diff --git a/shared/static/wasm/sx/hs-parser.sxbc b/shared/static/wasm/sx/hs-parser.sxbc index a6fc4ebc..b94589df 100644 --- a/shared/static/wasm/sx/hs-parser.sxbc +++ b/shared/static/wasm/sx/hs-parser.sxbc @@ -1,3 +1,3 @@ -(sxbc 1 "67b7c160635e3dbd" +(sxbc 1 "42be248e04653e51" (code - :constants ("hs-parse" {:upvalue-count 0 :arity 2 :constants (0 "len" {:upvalue-count 3 :arity 0 :constants ("<" "nth") :bytecode (18 0 18 1 52 0 0 2 33 11 0 18 2 18 0 52 1 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("get" "type" "eof") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 3 0 1 2 0 50)} {:upvalue-count 1 :arity 0 :constants ("get" "value") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("nth" "+" 1) :bytecode (18 0 18 1 52 0 0 2 17 0 18 1 1 2 0 52 1 0 2 19 1 5 16 0 50)} {:upvalue-count 3 :arity 0 :constants (">=" "=" "eof") :bytecode (18 0 18 1 52 0 0 2 6 34 12 0 5 18 2 48 0 1 2 0 52 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("=" "keyword") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 11 0 5 18 1 48 0 16 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 1 0 2 50)} {:upvalue-count 2 :arity 1 :constants ("error" "str" "Expected '" "' at position ") :bytecode (18 0 16 0 48 1 33 4 0 3 32 18 0 1 2 0 16 0 1 3 0 18 1 52 1 0 4 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("len" ">=" 3 "=" "substring" "-" 2 "ms" "parse-number" 0 "nth" 1 "s" "*" 1000) :bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 33 25 0 5 16 0 16 1 1 6 0 52 5 0 2 16 1 52 4 0 3 1 7 0 52 3 0 2 33 25 0 16 0 1 9 0 16 1 1 6 0 52 5 0 2 52 4 0 3 52 8 0 1 32 77 0 16 1 1 6 0 52 1 0 2 6 33 23 0 5 16 0 16 1 1 11 0 52 5 0 2 52 10 0 2 1 12 0 52 3 0 2 33 32 0 1 14 0 16 0 1 9 0 16 1 1 11 0 52 5 0 2 52 4 0 3 52 8 0 1 52 13 0 2 32 6 0 16 0 52 8 0 1 50)} {:upvalue-count 4 :arity 1 :constants ("=" "ident" "keyword" "list" . "attr" attr "class" "get" "value") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 34 10 0 5 16 1 1 2 0 52 0 0 2 33 23 0 18 2 48 0 5 18 3 1 4 0 16 0 16 2 52 3 0 3 49 1 32 76 0 16 1 1 5 0 52 0 0 2 33 19 0 18 2 48 0 5 1 6 0 16 2 16 0 52 3 0 3 32 45 0 16 1 1 7 0 52 0 0 2 33 31 0 18 2 48 0 1 9 0 52 8 0 2 17 3 18 3 1 4 0 16 0 16 3 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("=" "class" "not" "list" "make-symbol" "." "paren-open" method-call) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 9 0 5 18 1 48 0 52 2 0 1 33 33 0 18 2 48 0 17 1 18 3 48 0 5 18 4 1 5 0 52 4 0 1 16 0 16 1 52 3 0 3 49 1 32 40 0 18 0 48 0 1 6 0 52 0 0 2 33 24 0 18 5 48 0 17 1 18 4 1 7 0 16 0 16 1 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 1 :constants ("=" "selector" "list" me "class" "str" "." "id" "#" "*") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 23 0 18 2 48 0 5 16 0 16 2 1 3 0 52 2 0 1 52 2 0 3 32 100 0 16 1 1 4 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 6 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 58 0 16 1 1 7 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 8 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 16 0 16 0 1 9 0 1 3 0 52 2 0 1 52 2 0 3 50)} {:upvalue-count 5 :arity 1 :constants ("=" "selector" "class" "str" "." "id" "#" "*" "in" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 10 0 18 2 48 0 5 16 2 32 61 0 16 1 1 2 0 52 0 0 2 33 17 0 18 2 48 0 5 1 4 0 16 2 52 3 0 2 32 32 0 16 1 1 5 0 52 0 0 2 33 17 0 18 2 48 0 5 1 6 0 16 2 52 3 0 2 32 3 0 1 7 0 17 3 18 3 1 8 0 48 1 33 15 0 16 0 16 3 18 4 48 0 52 9 0 3 32 8 0 16 0 16 3 52 9 0 2 50)} {:upvalue-count 16 :arity 0 :constants ("=" "number" "string" "template" "list" template "keyword" "true" "false" "null" "nil" null-literal "undefined" "beep" "op" "!" beep! "not" not "no" no "eval" "paren-open" sx-eval "the" "me" me "I" "it" "result" it "event" event "target" "make-symbol" "." "detail" "my" "its" "closest" closest "next" next "previous" previous "first" first "last" last "id" query "str" "#" "selector" "attr" attr "style" style "local" local "class" "ident" ref "paren-close" "brace-open" {:upvalue-count 6 :arity 1 :constants ("=" "brace-close" "string" "local" "true" "false" "null" "list" ref "colon" "comma" "cons") :bytecode (18 0 48 0 6 34 12 0 5 18 1 48 0 1 1 0 52 0 0 2 33 28 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 203 0 18 1 48 0 1 2 0 52 0 0 2 33 16 0 18 3 48 0 17 1 18 2 48 0 5 16 1 32 13 0 18 3 48 0 17 1 18 2 48 0 5 16 1 17 1 18 1 48 0 1 3 0 52 0 0 2 33 71 0 18 3 48 0 17 2 18 2 48 0 5 16 2 1 4 0 52 0 0 2 33 4 0 3 32 41 0 16 2 1 5 0 52 0 0 2 33 4 0 4 32 25 0 16 2 1 6 0 52 0 0 2 33 4 0 2 32 9 0 1 8 0 16 2 52 7 0 2 32 30 0 18 1 48 0 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 48 0 32 4 0 18 4 48 0 17 2 18 1 48 0 1 10 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 5 16 1 16 2 52 7 0 2 16 0 52 11 0 2 49 1 50)} object-literal "\\" {:upvalue-count 6 :arity 1 :constants ("=" "op" "-" "<" "+" 1 "len" "get" "nth" "value" ">" "ident" "comma" "append") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 76 0 18 2 1 5 0 52 4 0 2 18 3 52 6 0 1 52 3 0 2 6 33 30 0 5 18 3 18 2 1 5 0 52 4 0 2 52 8 0 2 1 9 0 52 7 0 2 1 10 0 52 0 0 2 33 15 0 18 4 48 0 5 18 4 48 0 5 16 0 32 2 0 16 0 32 65 0 18 0 48 0 1 11 0 52 0 0 2 33 49 0 18 1 48 0 17 1 18 4 48 0 5 18 0 48 0 1 12 0 52 0 0 2 33 7 0 18 4 48 0 32 1 0 2 5 18 5 16 0 16 1 52 13 0 2 49 1 32 2 0 16 0 50)} block-literal "bracket-open" "-" - 0 "component" component "some" ">" "len" "+" 1 "get" "nth" "value" "in" "with" some "every" every) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 1 49 1 32 66 7 16 0 1 2 0 52 0 0 2 33 10 0 18 2 48 0 5 16 1 32 44 7 16 0 1 3 0 52 0 0 2 33 17 0 18 2 48 0 5 1 5 0 16 1 52 4 0 2 32 15 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 236 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 9 0 18 2 48 0 5 4 32 201 6 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 9 0 52 0 0 2 6 34 10 0 5 16 1 1 10 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 146 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 105 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 58 0 18 2 48 0 5 18 0 48 0 1 14 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 1 16 0 18 4 48 0 52 4 0 2 32 21 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 19 0 18 2 48 0 5 1 18 0 18 4 48 0 52 4 0 2 32 232 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 19 0 18 2 48 0 5 1 20 0 18 4 48 0 52 4 0 2 32 187 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 47 0 18 2 48 0 5 18 0 48 0 1 22 0 52 0 0 2 33 14 0 1 23 0 18 5 48 0 52 4 0 2 32 11 0 1 23 0 18 4 48 0 52 4 0 2 32 114 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 76 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 35 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 27 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 250 4 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 28 0 52 0 0 2 6 34 10 0 5 16 1 1 29 0 52 0 0 2 33 15 0 18 2 48 0 5 1 30 0 52 4 0 1 32 195 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 15 0 18 2 48 0 5 1 32 0 52 4 0 1 32 154 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 33 0 52 4 0 3 32 99 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 36 0 52 4 0 3 32 44 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 26 0 52 4 0 1 49 1 32 255 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 30 0 52 4 0 1 49 1 32 210 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 40 0 49 1 32 169 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 42 0 49 1 32 128 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 44 0 49 1 32 87 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 46 0 49 1 32 46 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 48 0 49 1 32 5 3 16 0 1 49 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 52 0 16 1 52 51 0 2 52 4 0 2 32 225 2 16 0 1 53 0 52 0 0 2 33 17 0 18 2 48 0 5 1 50 0 16 1 52 4 0 2 32 196 2 16 0 1 54 0 52 0 0 2 33 24 0 18 2 48 0 5 1 55 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 160 2 16 0 1 56 0 52 0 0 2 33 24 0 18 2 48 0 5 1 57 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 124 2 16 0 1 58 0 52 0 0 2 33 17 0 18 2 48 0 5 1 59 0 16 1 52 4 0 2 32 95 2 16 0 1 60 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 35 0 16 1 52 51 0 2 52 4 0 2 32 59 2 16 0 1 61 0 52 0 0 2 33 17 0 18 2 48 0 5 1 62 0 16 1 52 4 0 2 32 30 2 16 0 1 22 0 52 0 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 0 48 0 1 63 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 235 1 16 0 1 64 0 52 0 0 2 33 41 0 18 2 48 0 5 51 65 0 0 10 0 0 0 2 0 1 0 4 1 2 17 2 5 1 66 0 16 2 52 4 0 0 48 1 52 4 0 2 32 182 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 67 0 52 0 0 2 33 49 0 18 2 48 0 5 51 68 0 0 0 0 1 0 11 0 12 0 2 1 3 17 3 5 16 3 52 4 0 0 48 1 17 4 1 69 0 16 4 18 4 48 0 52 4 0 3 32 107 1 16 0 1 70 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 83 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 71 0 52 0 0 2 33 26 0 18 2 48 0 5 18 14 48 0 17 4 1 72 0 1 73 0 16 4 52 4 0 3 32 31 1 16 0 1 74 0 52 0 0 2 33 17 0 18 2 48 0 5 1 75 0 16 1 52 4 0 2 32 2 1 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 76 0 52 0 0 2 33 149 0 18 2 48 0 5 18 0 48 0 1 61 0 52 0 0 2 6 33 54 0 5 18 12 52 78 0 1 18 11 1 80 0 52 79 0 2 52 77 0 2 6 33 30 0 5 18 12 18 11 1 80 0 52 79 0 2 52 82 0 2 1 83 0 52 81 0 2 1 84 0 52 0 0 2 33 51 0 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 86 0 16 4 16 5 18 4 48 0 52 4 0 4 32 18 0 1 18 0 1 20 0 18 4 48 0 52 4 0 2 52 4 0 2 32 83 0 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 87 0 52 0 0 2 33 56 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 88 0 16 4 16 5 18 4 48 0 52 4 0 4 32 1 0 2 50)} {:upvalue-count 8 :arity 1 :constants ("=" "op" "'s" "class" "paren-open" "list" call "bracket-open" ".." "bracket-close" array-slice array-index) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 0 49 1 32 74 1 18 0 48 0 1 3 0 52 0 0 2 33 9 0 18 4 16 0 49 1 32 51 1 18 0 48 0 1 4 0 52 0 0 2 33 20 0 18 5 48 0 17 1 1 6 0 16 0 16 1 52 5 0 3 32 17 1 18 0 48 0 1 7 0 52 0 0 2 33 1 1 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 53 0 18 2 48 0 5 18 6 48 0 17 1 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 2 16 1 52 5 0 4 49 1 32 166 0 18 6 48 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 92 0 18 2 48 0 5 18 0 48 0 1 9 0 52 0 0 2 33 24 0 18 2 48 0 5 18 7 1 10 0 16 0 16 1 2 52 5 0 4 49 1 32 46 0 18 6 48 0 17 2 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 16 1 16 2 52 5 0 4 49 1 32 38 0 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 11 0 16 0 16 1 52 5 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("=" "op" "==" "!=" "<" ">" "<=" ">=" "===" "!==" "list" = strict-eq not "keyword" "is" "not" "empty" empty? "in" not-in? "between" "and" and >= <= "really" "equal" "to" "a" "an" "!" type-check-strict type-check "less" "than" "or" < "greater" > in? "ident" "hs-keyword?" prop-is "am" "exists" exists? "starts" "with" starts-with? "ends" ends-with? "matches" matches? "contains" contains? "as" "colon" as "str" ":" "of" "list?" "first" ref "make-symbol" "." "nth" 1 of "does" "exist" "match" "contain" "include" "includes" "equals" "precedes" precedes? "follows" follows?) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 108 0 5 16 2 1 2 0 52 0 0 2 6 34 94 0 5 16 2 1 3 0 52 0 0 2 6 34 80 0 5 16 2 1 4 0 52 0 0 2 6 34 66 0 5 16 2 1 5 0 52 0 0 2 6 34 52 0 5 16 2 1 6 0 52 0 0 2 6 34 38 0 5 16 2 1 7 0 52 0 0 2 6 34 24 0 5 16 2 1 8 0 52 0 0 2 6 34 10 0 5 16 2 1 9 0 52 0 0 2 33 109 0 18 2 48 0 5 18 3 48 0 17 3 16 2 1 2 0 52 0 0 2 33 14 0 1 11 0 16 0 16 3 52 10 0 3 32 69 0 16 2 1 8 0 52 0 0 2 33 14 0 1 12 0 16 0 16 3 52 10 0 3 32 43 0 16 2 1 9 0 52 0 0 2 33 21 0 1 13 0 1 12 0 16 0 16 3 52 10 0 3 52 10 0 2 32 10 0 16 2 16 0 16 3 52 10 0 3 32 13 9 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 15 0 52 0 0 2 33 173 3 18 2 48 0 5 18 4 1 16 0 48 1 33 127 1 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 95 1 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 69 1 18 4 1 21 0 48 1 33 59 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 13 0 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 52 10 0 2 32 0 1 18 4 1 26 0 48 1 33 39 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 13 0 1 12 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 207 0 18 4 1 27 0 48 1 33 31 0 18 4 1 28 0 48 1 5 1 13 0 1 11 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 166 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 101 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 21 0 1 13 0 1 32 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 33 0 16 0 16 3 52 10 0 3 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 28 2 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 6 2 18 4 1 34 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 25 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 37 0 16 0 18 3 48 0 52 10 0 3 32 186 1 18 4 1 38 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 24 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 39 0 16 0 18 3 48 0 52 10 0 3 32 110 1 18 4 1 21 0 48 1 33 52 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 32 48 1 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 22 1 18 4 1 26 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 236 0 18 4 1 27 0 48 1 33 24 0 18 4 1 28 0 48 1 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 202 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 87 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 74 0 18 0 48 0 1 41 0 52 0 0 2 6 33 14 0 5 20 42 0 18 1 48 0 48 1 52 16 0 1 33 25 0 18 1 48 0 17 3 18 2 48 0 5 1 43 0 16 0 16 3 52 10 0 3 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 70 5 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 44 0 52 0 0 2 33 165 0 18 2 48 0 5 18 4 1 16 0 48 1 33 82 0 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 53 0 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 65 0 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 39 0 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 135 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 45 0 52 0 0 2 33 17 0 18 2 48 0 5 1 46 0 16 0 52 10 0 2 32 92 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 47 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 49 0 16 0 18 3 48 0 52 10 0 3 32 23 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 50 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 51 0 16 0 18 3 48 0 52 10 0 3 32 210 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 52 0 52 0 0 2 33 21 0 18 2 48 0 5 1 53 0 16 0 18 3 48 0 52 10 0 3 32 163 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 54 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 116 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 56 0 52 0 0 2 33 135 0 18 2 48 0 5 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 57 0 52 0 0 2 6 33 9 0 5 18 6 48 0 52 16 0 1 33 39 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 1 58 0 16 0 16 3 1 60 0 16 4 52 59 0 3 52 10 0 3 32 11 0 1 58 0 16 0 16 3 52 10 0 3 32 211 2 16 1 1 57 0 52 0 0 2 33 92 0 18 2 48 0 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 107 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 61 0 52 0 0 2 33 77 0 18 2 48 0 5 18 3 48 0 17 3 16 0 52 62 0 1 6 33 14 0 5 16 0 52 63 0 1 1 64 0 52 0 0 2 33 25 0 1 66 0 52 65 0 1 16 3 16 0 1 68 0 52 67 0 2 52 10 0 3 32 11 0 1 69 0 16 0 16 3 52 10 0 3 32 4 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 19 0 52 0 0 2 33 21 0 18 2 48 0 5 1 40 0 16 0 18 3 48 0 52 10 0 3 32 213 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 70 0 52 0 0 2 33 170 0 18 2 48 0 5 18 4 1 16 0 48 1 5 18 4 1 71 0 48 1 33 19 0 1 13 0 1 46 0 16 0 52 10 0 2 52 10 0 2 32 125 0 18 4 1 72 0 48 1 33 23 0 1 13 0 1 53 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 92 0 18 4 1 73 0 48 1 6 34 8 0 5 18 4 1 54 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 47 0 18 4 1 74 0 48 1 6 34 8 0 5 18 4 1 75 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 2 0 16 0 32 17 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 76 0 52 0 0 2 33 21 0 18 2 48 0 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 226 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 26 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 76 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 171 0 16 1 1 14 0 52 0 0 2 6 33 38 0 5 16 2 1 73 0 52 0 0 2 6 34 24 0 5 16 2 1 74 0 52 0 0 2 6 34 10 0 5 16 2 1 75 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 96 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 77 0 52 0 0 2 33 21 0 18 2 48 0 5 1 78 0 16 0 18 5 48 0 52 10 0 3 32 49 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 79 0 52 0 0 2 33 21 0 18 2 48 0 5 1 80 0 16 0 18 5 48 0 52 10 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("where" "list" coll-where "sorted" "by" "descending" "not" "ascending" coll-sorted-desc coll-sorted "mapped" "to" coll-mapped "split" coll-split "joined" coll-joined) :bytecode (18 0 1 0 0 48 1 33 36 0 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 2 0 16 0 16 1 52 1 0 3 49 1 32 11 1 18 0 1 3 0 48 1 33 93 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 0 1 5 0 48 1 17 2 16 2 52 6 0 1 33 10 0 18 0 1 7 0 48 1 32 1 0 2 5 18 5 16 2 33 14 0 1 8 0 16 0 16 1 52 1 0 3 32 11 0 1 9 0 16 0 16 1 52 1 0 3 49 1 32 164 0 18 0 1 10 0 48 1 33 44 0 18 0 1 11 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 12 0 16 0 16 1 52 1 0 3 49 1 32 110 0 18 0 1 13 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 14 0 16 0 16 1 52 1 0 3 49 1 32 56 0 18 0 1 15 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 16 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("and" "list" and "or" or) :bytecode (18 0 1 0 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 2 0 16 0 16 1 52 1 0 3 49 1 32 52 0 18 0 1 3 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 4 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 9 :arity 0 :constants ("nil?" "number?" "=" "ident" "list" string-postfix "not" "then" "end" "else" "otherwise" "op" "%") :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 4 0 2 32 242 0 16 0 52 1 0 1 6 33 12 0 5 18 1 48 0 1 3 0 52 2 0 2 33 27 0 18 2 48 0 17 1 18 3 48 0 5 1 5 0 16 0 16 1 52 4 0 3 17 0 32 1 0 2 5 18 4 16 0 48 1 17 1 18 5 16 1 48 1 17 2 18 6 16 2 48 1 17 3 18 7 16 3 48 1 17 4 18 8 16 4 48 1 17 5 16 5 6 33 112 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 64 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 10 0 52 2 0 2 52 6 0 1 6 34 28 0 5 18 1 48 0 1 11 0 52 2 0 2 6 33 12 0 5 18 2 48 0 1 12 0 52 2 0 2 33 25 0 18 2 48 0 17 6 18 3 48 0 5 1 5 0 16 5 16 6 52 4 0 3 32 2 0 16 5 50)} {:upvalue-count 2 :arity 2 :constants () :bytecode (18 0 16 0 48 1 33 7 0 18 1 49 0 32 2 0 16 1 50)} {:upvalue-count 3 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "to" me "empty?" add-class "cons" multi-add-class) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 101 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 1 7 0 52 4 0 1 48 2 17 3 16 1 52 8 0 1 33 14 0 1 9 0 16 0 16 3 52 4 0 3 32 21 0 1 11 0 16 3 16 0 16 1 52 10 0 2 52 10 0 2 52 10 0 2 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "from" "empty?" remove-class "cons" multi-remove-class "bracket-open" "[" "attr" "]" remove-attr "{" {:upvalue-count 4 :arity 0 :constants ("not" "=" "}" ";" "append" "list" "get" "value") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 76 0 18 0 48 0 1 3 0 52 1 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 31 0 18 2 18 1 48 0 1 7 0 52 6 0 2 52 5 0 1 52 4 0 2 19 2 5 18 3 49 0 32 1 0 2 32 1 0 2 50)} "}" remove-css remove-element) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 105 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 3 16 1 52 7 0 1 33 14 0 1 8 0 16 0 16 3 52 4 0 3 32 21 0 1 10 0 16 3 16 0 16 1 52 9 0 2 52 9 0 2 52 9 0 2 32 209 0 18 0 48 0 1 11 0 52 0 0 2 6 33 12 0 5 18 4 48 0 1 12 0 52 0 0 2 33 78 0 18 1 48 0 5 18 0 48 0 1 13 0 52 0 0 2 33 55 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 2 1 14 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 1 15 0 16 0 16 1 52 4 0 3 32 1 0 2 32 101 0 18 4 48 0 1 16 0 52 0 0 2 33 72 0 18 1 48 0 5 52 4 0 0 17 0 51 17 0 0 4 0 1 1 0 1 1 17 1 5 16 1 48 0 5 18 2 1 18 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 2 1 19 0 16 0 16 2 52 4 0 3 32 15 0 18 3 48 0 17 0 1 20 0 16 0 52 4 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("between" "=" "class" "and" "on" "list" me toggle-between toggle-class "style" toggle-style-between toggle-style "attr" toggle-attr-between toggle-attr) :bytecode (18 0 1 0 0 48 1 33 106 0 18 1 48 0 1 2 0 52 1 0 2 33 88 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 4 1 3 0 48 1 5 18 1 48 0 1 2 0 52 1 0 2 33 47 0 18 2 48 0 17 1 18 3 48 0 5 16 1 17 1 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 2 1 7 0 16 0 16 1 16 2 52 5 0 4 32 1 0 2 32 1 0 2 32 50 1 18 1 48 0 1 2 0 52 1 0 2 33 45 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 8 0 16 0 16 1 52 5 0 3 32 247 0 18 1 48 0 1 9 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 10 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 11 0 16 0 16 1 52 5 0 3 32 124 0 18 1 48 0 1 12 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 13 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 14 0 16 0 16 1 52 5 0 3 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" set!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("into" "list" set! "before" put! "after" "at" "start" "of" "end" "error" "str" "Expected start/end after at, position " "Expected into/before/after/at at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 16 0 1 2 0 18 0 48 0 16 0 52 1 0 3 32 171 0 18 1 1 3 0 48 1 33 19 0 1 4 0 16 0 1 3 0 18 0 48 0 52 1 0 4 32 142 0 18 1 1 5 0 48 1 33 19 0 1 4 0 16 0 1 5 0 18 0 48 0 52 1 0 4 32 113 0 18 1 1 6 0 48 1 33 90 0 18 1 1 7 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 7 0 18 0 48 0 52 1 0 4 32 50 0 18 1 1 9 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 9 0 18 0 48 0 52 1 0 4 32 13 0 1 12 0 18 3 52 11 0 2 52 10 0 1 32 13 0 1 13 0 18 3 52 11 0 2 52 10 0 1 50)} {:upvalue-count 3 :arity 0 :constants ("else" "otherwise" "end" "list" if) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 18 2 1 0 0 48 1 6 34 8 0 5 18 2 1 1 0 48 1 33 7 0 18 1 48 0 32 1 0 2 17 2 18 2 1 2 0 48 1 5 16 2 33 16 0 1 4 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 4 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("for" "from" "list" wait-for "=" "number" wait "get" "value" 0) :bytecode (18 0 1 0 0 48 1 33 65 0 18 1 48 0 17 0 18 2 48 0 5 18 0 1 1 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 16 1 33 17 0 1 3 0 16 0 1 1 0 16 1 52 2 0 4 32 9 0 1 3 0 16 0 52 2 0 2 32 53 0 18 4 48 0 1 5 0 52 4 0 2 33 29 0 18 2 48 0 17 0 1 6 0 18 5 16 0 1 8 0 52 7 0 2 48 1 52 2 0 2 32 10 0 1 6 0 1 9 0 52 2 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "get" "value" "colon" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 83 0 18 2 48 0 1 3 0 52 2 0 2 17 1 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 2 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 16 2 52 7 0 2 52 6 0 2 49 1 50)} "cons" dict "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("get" "value" "=" "paren-open" "to" "list" me send) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 7 0 18 2 48 0 32 1 0 2 17 1 18 3 1 4 0 1 6 0 52 5 0 1 48 2 17 2 16 1 33 16 0 1 7 0 16 0 16 1 16 2 52 5 0 4 32 11 0 1 7 0 16 0 16 2 52 5 0 3 50)} {:upvalue-count 2 :arity 0 :constants ("get" "value" "on" "list" me trigger) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 1 2 0 1 4 0 52 3 0 1 48 2 17 1 1 5 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("list" log) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me increment!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me decrement!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" hide) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" show) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("=" "style" "get" "value" "my" "from" "to" "over" "list" transition-from transition) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 72 0 18 2 48 0 1 4 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 3 1 5 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 5 1 6 0 48 1 5 18 4 48 0 17 2 18 3 1 7 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 16 1 33 18 0 1 9 0 16 0 16 1 16 2 16 3 52 8 0 5 32 34 0 16 3 33 17 0 1 10 0 16 0 16 2 16 3 2 52 8 0 5 32 12 0 1 10 0 16 0 16 2 2 52 8 0 4 50)} {:upvalue-count 7 :arity 0 :constants ("=" "keyword" "for" "in" "end" "list" for "it" "forever" forever "while" while "until" until "times" times repeat) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 203 0 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 3 0 52 0 0 2 33 43 0 18 2 48 0 5 18 4 48 0 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 6 0 1 7 0 16 0 2 16 1 52 5 0 5 32 130 0 18 6 1 8 0 48 1 33 10 0 1 9 0 52 5 0 1 32 83 0 18 6 1 10 0 48 1 33 14 0 1 11 0 18 4 48 0 52 5 0 2 32 59 0 18 6 1 12 0 48 1 33 14 0 1 13 0 18 4 48 0 52 5 0 2 32 35 0 18 4 48 0 17 0 18 6 1 14 0 48 1 33 12 0 1 15 0 16 0 52 5 0 2 32 7 0 1 9 0 52 5 0 1 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 16 0 16 0 16 1 52 5 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("nil?" "as" "json" "list" fetch) :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 5 0 16 0 32 10 0 18 1 18 2 16 0 48 1 48 1 17 1 18 3 1 1 0 48 1 33 16 0 18 4 48 0 17 2 18 5 48 0 5 16 2 32 3 0 1 2 0 17 2 1 4 0 16 1 16 2 52 3 0 3 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 3 :arity 0 :constants ("get" "value" "=" "paren-open" "cons" call "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 24 0 18 2 48 0 17 1 1 5 0 16 0 16 1 52 4 0 2 52 4 0 2 32 9 0 1 5 0 16 0 52 6 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "from" "for" "list" take! "attr") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 1 0 16 0 16 1 16 2 52 4 0 5 32 89 0 18 0 48 0 1 6 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 6 0 16 0 16 1 16 2 52 4 0 5 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" go) :bytecode (18 0 1 0 0 48 1 5 1 2 0 18 1 48 0 52 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("=" "op" "+" "-" "*" "/" "%" "keyword" "mod" + - * / "make-symbol" "nil?" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 66 0 5 16 2 1 2 0 52 0 0 2 6 34 52 0 5 16 2 1 3 0 52 0 0 2 6 34 38 0 5 16 2 1 4 0 52 0 0 2 6 34 24 0 5 16 2 1 5 0 52 0 0 2 6 34 10 0 5 16 2 1 6 0 52 0 0 2 6 34 24 0 5 16 1 1 7 0 52 0 0 2 6 33 10 0 5 16 2 1 8 0 52 0 0 2 33 161 0 18 2 48 0 5 16 2 1 2 0 52 0 0 2 33 6 0 1 9 0 32 91 0 16 2 1 3 0 52 0 0 2 33 6 0 1 10 0 32 73 0 16 2 1 4 0 52 0 0 2 33 6 0 1 11 0 32 55 0 16 2 1 5 0 52 0 0 2 33 6 0 1 12 0 32 37 0 16 2 1 6 0 52 0 0 2 6 34 10 0 5 16 2 1 8 0 52 0 0 2 33 10 0 1 6 0 52 13 0 1 32 1 0 2 17 3 18 3 48 0 17 4 16 4 52 14 0 1 33 5 0 16 4 32 6 0 18 4 16 4 48 1 17 4 18 5 16 3 16 0 16 4 52 15 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 8 :arity 0 :constants ("=" "ident" "keyword" "of" "list" "make-symbol" "." "result" it "first" first "last" last "closest" closest "next" next "previous" previous ref) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 34 10 0 5 16 0 1 2 0 52 0 0 2 33 179 0 18 2 48 0 5 18 3 1 3 0 48 1 33 20 0 1 6 0 52 5 0 1 18 4 48 0 16 1 52 4 0 3 32 141 0 16 1 1 7 0 52 0 0 2 33 10 0 1 8 0 52 4 0 1 32 119 0 16 1 1 9 0 52 0 0 2 33 10 0 18 5 1 10 0 49 1 32 97 0 16 1 1 11 0 52 0 0 2 33 10 0 18 5 1 12 0 49 1 32 75 0 16 1 1 13 0 52 0 0 2 33 10 0 18 6 1 14 0 49 1 32 53 0 16 1 1 15 0 52 0 0 2 33 10 0 18 6 1 16 0 49 1 32 31 0 16 1 1 17 0 52 0 0 2 33 10 0 18 6 1 18 0 49 1 32 9 0 1 19 0 16 1 52 4 0 2 32 4 0 18 7 49 0 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "bracket-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "cons" array "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "end" "then" "else" "list" return) :bytecode (18 0 48 0 6 34 60 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 44 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 28 0 5 18 2 48 0 1 3 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 4 0 52 0 0 2 33 11 0 1 6 0 2 52 5 0 2 32 11 0 1 6 0 18 3 48 0 52 5 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" throw) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" append!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("then" "end" "list" tell) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 5 1 3 0 16 0 16 1 52 2 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("in" "index" "end" "list" for) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 1 0 0 48 1 5 18 3 48 0 17 1 18 4 1 1 0 48 1 33 16 0 18 0 48 0 17 2 18 1 48 0 5 16 2 32 1 0 2 17 2 18 5 48 0 17 3 18 4 1 2 0 48 1 5 16 2 33 21 0 1 4 0 16 0 16 1 16 3 1 1 0 16 2 52 3 0 6 32 13 0 1 4 0 16 0 16 1 16 3 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("=" "a" "called" "list" make) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 17 0 18 1 48 0 5 18 2 1 2 0 48 1 33 16 0 18 0 48 0 17 1 18 1 48 0 5 16 1 32 1 0 2 17 1 16 1 33 14 0 1 4 0 16 0 16 1 52 3 0 3 32 9 0 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "cons" install "list") :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 1 1 0 52 0 0 2 33 24 0 18 3 48 0 17 1 1 3 0 16 0 16 1 52 2 0 2 52 2 0 2 32 9 0 1 3 0 16 0 52 4 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" measure "nil?" me) :bytecode (18 0 48 0 17 0 1 1 0 16 0 52 2 0 1 33 10 0 1 3 0 52 0 0 1 32 2 0 16 0 52 0 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "keyword" "then" "end" "list" me "top" "bottom" "left" "right" scroll!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 6 0 1 6 0 32 51 0 18 4 1 7 0 48 1 33 6 0 1 7 0 32 35 0 18 4 1 8 0 48 1 33 6 0 1 8 0 32 19 0 18 4 1 9 0 48 1 33 6 0 1 9 0 32 3 0 1 6 0 17 1 1 10 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me select!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me reset!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" default!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("the" "event" "default" "list" halt!) :bytecode (18 0 1 0 0 48 1 6 33 20 0 5 18 0 1 1 0 48 1 6 34 8 0 5 18 0 1 2 0 48 1 17 0 1 4 0 16 0 33 6 0 1 1 0 32 3 0 1 2 0 52 3 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("=" "paren-open" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 52 2 0 0 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" focus!) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "keyword" "end" "nil?" "append" "list") :bytecode (18 0 48 0 6 34 28 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 2 48 0 1 2 0 52 0 0 2 33 5 0 16 0 32 36 0 18 3 48 0 17 1 16 1 52 3 0 1 33 5 0 16 0 32 16 0 18 4 16 0 16 1 52 5 0 1 52 4 0 2 49 1 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" def) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" behavior) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "local" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 38 0 18 1 48 0 17 1 18 2 48 0 5 18 3 48 0 17 2 18 4 16 0 16 1 16 2 52 3 0 2 52 2 0 2 49 1 32 2 0 16 0 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "component" "paren-open" "paren-close" "into" "before" "after" "list" render) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 16 0 18 1 48 0 17 0 18 2 48 0 5 16 0 32 66 0 18 0 48 0 1 2 0 52 0 0 2 33 39 0 18 2 48 0 5 18 3 48 0 17 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 13 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 4 48 0 17 1 18 5 1 4 0 48 1 33 6 0 1 4 0 32 33 0 18 5 1 5 0 48 1 33 6 0 1 5 0 32 17 0 18 5 1 6 0 48 1 33 6 0 1 6 0 32 1 0 2 17 2 16 2 33 7 0 18 3 48 0 32 1 0 2 17 3 16 2 33 18 0 1 8 0 16 0 16 1 16 2 16 3 52 7 0 5 32 11 0 1 8 0 16 0 16 1 52 7 0 3 50)} {:upvalue-count 5 :arity 0 :constants ("get" "pos" {:upvalue-count 6 :arity 1 :constants ("=" "paren-open" "+" 1 "paren-close" 0 "get" "pos" "-") :bytecode (18 0 48 0 33 5 0 18 1 32 123 0 18 2 48 0 1 1 0 52 0 0 2 33 21 0 18 3 48 0 5 18 4 16 0 1 3 0 52 2 0 2 49 1 32 88 0 18 2 48 0 1 4 0 52 0 0 2 33 63 0 16 0 1 5 0 52 0 0 2 33 30 0 18 5 48 0 1 7 0 52 6 0 2 1 3 0 52 2 0 2 17 1 18 3 48 0 5 16 1 32 18 0 18 3 48 0 5 18 4 16 0 1 3 0 52 8 0 2 49 1 32 11 0 18 3 48 0 5 18 4 16 0 49 1 50)} 0 "substring") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 5 51 2 0 0 2 1 0 0 3 0 1 1 1 0 0 17 1 5 16 1 1 3 0 48 1 17 2 18 4 16 0 16 2 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("list" sym "me" "=" "keyword" "then" "end" empty-target) :bytecode (18 0 48 0 33 13 0 1 1 0 1 2 0 52 0 0 2 32 63 0 18 1 48 0 1 4 0 52 3 0 2 6 33 28 0 5 18 2 48 0 1 5 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 6 0 52 3 0 2 33 13 0 1 1 0 1 2 0 52 0 0 2 32 4 0 18 3 48 0 17 0 1 7 0 16 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("with" "list" swap!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 41 :arity 0 :constants ("=" "keyword" "catch" "finally" "end" "else" "otherwise" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "list" settle "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "scroll" "select" "reset" "default" "halt" "focus" "empty" "clear" "swap") :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 33 66 0 5 16 1 1 2 0 52 0 0 2 6 34 52 0 5 16 1 1 3 0 52 0 0 2 6 34 38 0 5 16 1 1 4 0 52 0 0 2 6 34 24 0 5 16 1 1 5 0 52 0 0 2 6 34 10 0 5 16 1 1 6 0 52 0 0 2 33 4 0 2 32 209 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 171 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 49 0 32 133 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 5 49 0 32 95 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 10 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 57 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 11 0 52 0 0 2 33 12 0 18 2 48 0 5 18 7 49 0 32 19 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 12 0 18 2 48 0 5 18 8 49 0 32 237 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 12 0 18 2 48 0 5 18 9 49 0 32 199 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 14 0 52 0 0 2 33 12 0 18 2 48 0 5 18 10 49 0 32 161 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 15 0 52 0 0 2 33 12 0 18 2 48 0 5 18 11 49 0 32 123 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 16 0 52 0 0 2 33 12 0 18 2 48 0 5 18 12 49 0 32 85 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 47 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 18 0 52 0 0 2 33 12 0 18 2 48 0 5 18 14 49 0 32 9 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 12 0 18 2 48 0 5 18 15 49 0 32 227 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 20 0 52 0 0 2 33 12 0 18 2 48 0 5 18 16 49 0 32 189 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 12 0 18 2 48 0 5 18 17 49 0 32 151 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 22 0 52 0 0 2 33 12 0 18 2 48 0 5 18 18 49 0 32 113 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 23 0 52 0 0 2 33 12 0 18 2 48 0 5 18 19 49 0 32 75 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 20 49 0 32 37 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 12 0 18 2 48 0 5 18 21 49 0 32 255 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 26 0 52 0 0 2 33 15 0 18 2 48 0 5 1 28 0 52 27 0 1 32 214 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 29 0 52 0 0 2 33 12 0 18 2 48 0 5 18 22 49 0 32 176 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 30 0 52 0 0 2 33 12 0 18 2 48 0 5 18 23 49 0 32 138 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 12 0 18 2 48 0 5 18 24 49 0 32 100 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 32 0 52 0 0 2 33 12 0 18 2 48 0 5 18 25 49 0 32 62 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 12 0 18 2 48 0 5 18 26 49 0 32 24 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 34 0 52 0 0 2 33 12 0 18 2 48 0 5 18 27 49 0 32 242 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 35 0 52 0 0 2 33 12 0 18 2 48 0 5 18 28 49 0 32 204 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 12 0 18 2 48 0 5 18 29 49 0 32 166 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 12 0 18 2 48 0 5 18 30 49 0 32 128 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 12 0 18 2 48 0 5 18 31 49 0 32 90 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 12 0 18 2 48 0 5 18 32 49 0 32 52 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 12 0 18 2 48 0 5 18 33 49 0 32 14 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 12 0 18 2 48 0 5 18 34 49 0 32 232 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 12 0 18 2 48 0 5 18 35 49 0 32 194 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 12 0 18 2 48 0 5 18 36 49 0 32 156 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 12 0 18 2 48 0 5 18 37 49 0 32 118 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 80 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 46 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 42 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 12 0 18 2 48 0 5 18 39 49 0 32 4 0 18 40 49 0 50)} {:upvalue-count 5 :arity 2 :constants ({:upvalue-count 0 :arity 1 :constants ("=" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "halt" "default" "scroll" "select" "reset" "focus" "empty" "clear" "swap") :bytecode (16 0 1 1 0 52 0 0 2 6 34 16 2 5 16 0 1 2 0 52 0 0 2 6 34 2 2 5 16 0 1 3 0 52 0 0 2 6 34 244 1 5 16 0 1 4 0 52 0 0 2 6 34 230 1 5 16 0 1 5 0 52 0 0 2 6 34 216 1 5 16 0 1 6 0 52 0 0 2 6 34 202 1 5 16 0 1 7 0 52 0 0 2 6 34 188 1 5 16 0 1 8 0 52 0 0 2 6 34 174 1 5 16 0 1 9 0 52 0 0 2 6 34 160 1 5 16 0 1 10 0 52 0 0 2 6 34 146 1 5 16 0 1 11 0 52 0 0 2 6 34 132 1 5 16 0 1 12 0 52 0 0 2 6 34 118 1 5 16 0 1 13 0 52 0 0 2 6 34 104 1 5 16 0 1 14 0 52 0 0 2 6 34 90 1 5 16 0 1 15 0 52 0 0 2 6 34 76 1 5 16 0 1 16 0 52 0 0 2 6 34 62 1 5 16 0 1 17 0 52 0 0 2 6 34 48 1 5 16 0 1 18 0 52 0 0 2 6 34 34 1 5 16 0 1 19 0 52 0 0 2 6 34 20 1 5 16 0 1 20 0 52 0 0 2 6 34 6 1 5 16 0 1 21 0 52 0 0 2 6 34 248 0 5 16 0 1 22 0 52 0 0 2 6 34 234 0 5 16 0 1 23 0 52 0 0 2 6 34 220 0 5 16 0 1 24 0 52 0 0 2 6 34 206 0 5 16 0 1 25 0 52 0 0 2 6 34 192 0 5 16 0 1 26 0 52 0 0 2 6 34 178 0 5 16 0 1 27 0 52 0 0 2 6 34 164 0 5 16 0 1 28 0 52 0 0 2 6 34 150 0 5 16 0 1 29 0 52 0 0 2 6 34 136 0 5 16 0 1 30 0 52 0 0 2 6 34 122 0 5 16 0 1 31 0 52 0 0 2 6 34 108 0 5 16 0 1 32 0 52 0 0 2 6 34 94 0 5 16 0 1 33 0 52 0 0 2 6 34 80 0 5 16 0 1 34 0 52 0 0 2 6 34 66 0 5 16 0 1 35 0 52 0 0 2 6 34 52 0 5 16 0 1 36 0 52 0 0 2 6 34 38 0 5 16 0 1 37 0 52 0 0 2 6 34 24 0 5 16 0 1 38 0 52 0 0 2 6 34 10 0 5 16 0 1 39 0 52 0 0 2 50)} {:upvalue-count 7 :arity 1 :constants ("nil?" "append" "list" "then" "not" "=" "keyword") :bytecode (18 0 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 84 0 16 0 16 1 52 2 0 1 52 1 0 2 17 2 18 1 1 3 0 48 1 33 9 0 18 2 16 2 49 1 32 51 0 18 3 48 0 52 4 0 1 6 33 25 0 5 18 4 48 0 1 6 0 52 5 0 2 6 33 9 0 5 18 5 18 6 48 0 48 1 33 9 0 18 2 16 2 49 1 32 2 0 16 2 50)} "list" "=" "len" 0 1 "first" "cons" do) :bytecode (51 0 0 17 0 5 51 1 0 0 0 0 1 1 1 0 2 0 3 1 0 0 4 17 1 5 16 1 52 2 0 0 48 1 17 2 16 2 52 4 0 1 1 5 0 52 3 0 2 33 4 0 2 32 34 0 16 2 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 2 52 7 0 1 32 9 0 1 9 0 16 2 52 8 0 2 50)} {:upvalue-count 6 :arity 0 :constants ("every" "=" "bracket-open" "bracket-close" "from" "catch" "list" "finally" "end" on "append" "filter") :bytecode (18 0 1 0 0 48 1 17 0 18 1 48 0 17 1 18 2 48 0 5 16 1 17 1 18 3 48 0 1 2 0 52 1 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 3 48 0 1 3 0 52 1 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 1 0 2 17 2 18 0 1 4 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 5 48 0 17 4 18 0 1 5 0 48 1 33 32 0 18 1 48 0 17 5 18 2 48 0 5 16 5 17 5 18 5 48 0 17 6 16 5 16 6 52 6 0 2 32 1 0 2 17 5 18 0 1 7 0 48 1 33 7 0 18 5 48 0 32 1 0 2 17 6 18 0 1 8 0 48 1 5 1 9 0 16 1 52 6 0 2 17 7 16 0 33 17 0 16 7 1 0 0 3 52 6 0 2 52 10 0 2 32 2 0 16 7 17 8 16 2 33 18 0 16 8 1 11 0 16 2 52 6 0 2 52 10 0 2 32 2 0 16 8 17 9 16 3 33 18 0 16 9 1 4 0 16 3 52 6 0 2 52 10 0 2 32 2 0 16 9 17 10 16 5 33 18 0 16 10 1 5 0 16 5 52 6 0 2 52 10 0 2 32 2 0 16 10 17 11 16 6 33 18 0 16 11 1 7 0 16 6 52 6 0 2 52 10 0 2 32 2 0 16 11 17 12 16 12 16 4 52 6 0 1 52 10 0 2 17 13 16 13 50)} {:upvalue-count 2 :arity 0 :constants ("end" "list" init) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 1 2 0 16 0 52 1 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "on" "init" "def" "behavior") :bytecode (18 0 48 0 17 0 16 0 1 1 0 52 0 0 2 33 12 0 18 1 48 0 5 18 2 49 0 32 76 0 16 0 1 2 0 52 0 0 2 33 12 0 18 1 48 0 5 18 3 49 0 32 52 0 16 0 1 3 0 52 0 0 2 33 12 0 18 1 48 0 5 18 4 49 0 32 28 0 16 0 1 4 0 52 0 0 2 33 12 0 18 1 48 0 5 18 5 49 0 32 4 0 18 6 49 0 50)} {:upvalue-count 3 :arity 1 :constants ("nil?" "append" "list") :bytecode (18 0 48 0 33 5 0 16 0 32 36 0 18 1 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 16 0 18 2 16 0 16 1 52 2 0 1 52 1 0 2 49 1 50)} "list" "=" 1 "first" "cons" do) :bytecode (1 0 0 17 2 16 0 52 1 0 1 17 3 51 2 0 1 2 1 3 1 0 17 4 5 51 3 0 1 4 17 5 5 51 4 0 1 4 17 6 5 51 5 0 1 0 1 2 17 7 5 51 6 0 1 2 1 3 1 5 17 8 5 51 7 0 1 5 1 6 1 7 17 9 5 51 8 0 1 9 1 2 17 10 5 51 9 0 17 11 5 51 10 0 1 5 1 6 1 7 1 13 17 12 5 51 11 0 1 5 1 8 1 6 1 7 1 13 1 41 17 13 5 51 12 0 1 5 1 6 1 7 17 14 5 51 13 0 1 5 1 6 1 7 1 9 1 21 17 15 5 51 14 0 1 5 1 6 1 7 1 11 1 21 1 68 1 46 1 12 1 14 1 15 1 8 1 2 1 0 1 47 1 16 1 9 17 16 5 51 15 0 1 5 1 6 1 7 1 12 1 13 1 41 1 21 1 17 17 17 5 51 16 0 1 5 1 6 1 7 1 21 1 9 1 16 1 8 17 18 5 51 17 0 1 9 1 18 1 45 1 17 1 16 1 19 17 19 5 51 18 0 1 9 1 19 1 18 1 45 1 17 1 16 1 20 17 20 5 51 19 0 1 16 1 5 1 6 1 7 1 17 1 45 1 18 1 19 1 20 17 21 5 51 20 0 1 9 1 21 17 22 5 51 21 0 1 5 1 7 1 22 17 23 5 51 22 0 1 5 1 7 1 9 1 21 1 6 17 24 5 51 23 0 1 9 1 5 1 6 1 7 1 10 1 22 1 16 17 25 5 51 24 0 1 21 1 10 17 26 5 51 25 0 1 21 1 9 1 10 1 2 17 27 5 51 26 0 1 21 1 72 1 9 17 28 5 51 27 0 1 9 1 6 1 7 1 21 1 5 1 11 17 29 5 51 28 0 1 7 1 5 1 8 1 21 17 30 5 51 29 0 1 7 1 5 1 30 1 22 17 31 5 51 30 0 1 7 1 22 17 32 5 51 31 0 1 21 17 33 5 51 32 0 1 21 1 9 1 22 17 34 5 51 33 0 1 21 1 9 1 22 17 35 5 51 34 0 1 8 1 5 1 6 1 21 1 9 1 7 17 36 5 51 35 0 1 8 1 5 1 6 1 21 1 9 1 7 17 37 5 51 36 0 1 5 1 7 1 6 1 9 1 21 1 10 17 38 5 51 37 0 1 5 1 6 1 7 1 52 1 21 1 72 1 9 17 39 5 51 38 0 1 16 1 45 1 17 1 9 1 6 1 7 17 40 5 51 39 0 1 7 1 5 1 8 1 21 17 41 5 51 40 0 1 7 1 5 1 41 17 42 5 51 41 0 1 5 1 6 1 7 1 9 1 21 17 43 5 51 42 0 1 9 1 21 17 44 5 51 43 0 1 5 1 6 1 7 1 16 1 17 1 45 17 45 5 51 44 0 1 5 1 6 1 7 1 9 1 21 1 15 1 14 1 16 17 46 5 51 45 0 1 5 1 8 1 7 1 21 17 47 5 51 46 0 1 8 1 5 1 6 1 21 17 48 5 51 47 0 1 21 17 49 5 51 48 0 1 21 1 10 17 50 5 51 49 0 1 21 1 9 1 72 17 51 5 51 50 0 1 6 1 7 1 10 1 21 1 9 1 72 17 52 5 51 51 0 1 6 1 7 1 9 17 53 5 51 52 0 1 6 1 7 1 5 1 41 17 54 5 51 53 0 1 21 17 55 5 51 54 0 1 8 1 5 1 6 1 21 1 9 17 56 5 51 55 0 1 8 1 5 1 6 1 21 17 57 5 51 56 0 1 8 1 5 1 6 1 21 17 58 5 51 57 0 1 21 1 10 17 59 5 51 58 0 1 9 17 60 5 51 59 0 1 5 1 41 17 61 5 51 60 0 1 8 1 5 1 6 1 21 17 62 5 51 61 0 1 8 1 5 1 6 1 75 17 63 5 51 62 0 1 6 1 7 1 61 1 72 1 9 17 64 5 51 63 0 1 6 1 7 1 61 1 63 1 9 17 65 5 51 64 0 1 5 1 6 1 7 1 21 17 66 5 51 65 0 1 5 1 6 1 7 1 21 1 66 1 9 17 67 5 51 66 0 1 4 1 7 1 8 1 5 1 1 17 68 5 51 67 0 1 8 1 5 1 6 1 21 17 69 5 51 68 0 1 21 1 9 17 70 5 51 69 0 1 5 1 6 1 7 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 42 1 43 1 44 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 67 1 56 1 57 1 58 1 59 1 60 1 62 1 69 1 70 1 21 17 71 5 51 70 0 1 71 1 9 1 8 1 5 1 6 17 72 5 51 71 0 1 9 1 6 1 7 1 5 1 21 1 72 17 73 5 51 72 0 1 72 1 9 17 74 5 51 73 0 1 6 1 7 1 73 1 74 1 64 1 65 1 72 17 75 5 51 74 0 1 8 1 75 1 76 17 76 5 16 76 52 75 0 0 48 1 17 77 16 77 52 1 0 1 1 77 0 52 76 0 2 33 9 0 16 77 52 78 0 1 32 9 0 1 80 0 16 77 52 79 0 2 50)} "hs-compile" {:upvalue-count 0 :arity 1 :constants ("hs-parse" "hs-tokenize") :bytecode (20 0 0 20 1 0 16 0 48 1 16 0 49 2 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 50))) + :constants ("hs-parse" {:upvalue-count 0 :arity 2 :constants (0 "len" {:upvalue-count 3 :arity 0 :constants ("<" "nth") :bytecode (18 0 18 1 52 0 0 2 33 11 0 18 2 18 0 52 1 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("get" "type" "eof") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 3 0 1 2 0 50)} {:upvalue-count 1 :arity 0 :constants ("get" "value") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("nth" "+" 1) :bytecode (18 0 18 1 52 0 0 2 17 0 18 1 1 2 0 52 1 0 2 19 1 5 16 0 50)} {:upvalue-count 3 :arity 0 :constants (">=" "=" "eof") :bytecode (18 0 18 1 52 0 0 2 6 34 12 0 5 18 2 48 0 1 2 0 52 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("=" "keyword") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 11 0 5 18 1 48 0 16 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 1 0 2 50)} {:upvalue-count 2 :arity 1 :constants ("error" "str" "Expected '" "' at position ") :bytecode (18 0 16 0 48 1 33 4 0 3 32 18 0 1 2 0 16 0 1 3 0 18 1 52 1 0 4 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("len" ">=" 3 "=" "substring" "-" 2 "ms" "parse-number" 0 "nth" 1 "s" "*" 1000) :bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 33 25 0 5 16 0 16 1 1 6 0 52 5 0 2 16 1 52 4 0 3 1 7 0 52 3 0 2 33 25 0 16 0 1 9 0 16 1 1 6 0 52 5 0 2 52 4 0 3 52 8 0 1 32 77 0 16 1 1 6 0 52 1 0 2 6 33 23 0 5 16 0 16 1 1 11 0 52 5 0 2 52 10 0 2 1 12 0 52 3 0 2 33 32 0 1 14 0 16 0 1 9 0 16 1 1 11 0 52 5 0 2 52 4 0 3 52 8 0 1 52 13 0 2 32 6 0 16 0 52 8 0 1 50)} {:upvalue-count 4 :arity 1 :constants ("=" "ident" "keyword" "list" . "attr" attr "class" "get" "value") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 34 10 0 5 16 1 1 2 0 52 0 0 2 33 23 0 18 2 48 0 5 18 3 1 4 0 16 0 16 2 52 3 0 3 49 1 32 76 0 16 1 1 5 0 52 0 0 2 33 19 0 18 2 48 0 5 1 6 0 16 2 16 0 52 3 0 3 32 45 0 16 1 1 7 0 52 0 0 2 33 31 0 18 2 48 0 1 9 0 52 8 0 2 17 3 18 3 1 4 0 16 0 16 3 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("=" "class" "not" "list" "make-symbol" "." "paren-open" method-call) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 9 0 5 18 1 48 0 52 2 0 1 33 33 0 18 2 48 0 17 1 18 3 48 0 5 18 4 1 5 0 52 4 0 1 16 0 16 1 52 3 0 3 49 1 32 40 0 18 0 48 0 1 6 0 52 0 0 2 33 24 0 18 5 48 0 17 1 18 4 1 7 0 16 0 16 1 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 1 :constants ("=" "selector" "list" me "class" "str" "." "id" "#" "*") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 23 0 18 2 48 0 5 16 0 16 2 1 3 0 52 2 0 1 52 2 0 3 32 100 0 16 1 1 4 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 6 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 58 0 16 1 1 7 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 8 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 16 0 16 0 1 9 0 1 3 0 52 2 0 1 52 2 0 3 50)} {:upvalue-count 5 :arity 1 :constants ("=" "selector" "class" "str" "." "id" "#" "*" "in" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 10 0 18 2 48 0 5 16 2 32 61 0 16 1 1 2 0 52 0 0 2 33 17 0 18 2 48 0 5 1 4 0 16 2 52 3 0 2 32 32 0 16 1 1 5 0 52 0 0 2 33 17 0 18 2 48 0 5 1 6 0 16 2 52 3 0 2 32 3 0 1 7 0 17 3 18 3 1 8 0 48 1 33 15 0 16 0 16 3 18 4 48 0 52 9 0 3 32 8 0 16 0 16 3 52 9 0 2 50)} {:upvalue-count 16 :arity 0 :constants ("=" "number" "string" "template" "list" template "keyword" "true" "false" "null" "nil" null-literal "undefined" "beep" "op" "!" beep! "not" not "no" no "eval" "paren-open" sx-eval "the" "me" me "I" "it" "result" it "event" event "target" "make-symbol" "." "detail" "my" "its" "closest" closest "next" next "previous" previous "first" first "last" last "id" query "str" "#" "selector" "attr" attr "style" style "local" local "class" "ident" ref "paren-close" "brace-open" {:upvalue-count 6 :arity 1 :constants ("=" "brace-close" "string" "local" "true" "false" "null" "list" ref "colon" "comma" "cons") :bytecode (18 0 48 0 6 34 12 0 5 18 1 48 0 1 1 0 52 0 0 2 33 28 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 203 0 18 1 48 0 1 2 0 52 0 0 2 33 16 0 18 3 48 0 17 1 18 2 48 0 5 16 1 32 13 0 18 3 48 0 17 1 18 2 48 0 5 16 1 17 1 18 1 48 0 1 3 0 52 0 0 2 33 71 0 18 3 48 0 17 2 18 2 48 0 5 16 2 1 4 0 52 0 0 2 33 4 0 3 32 41 0 16 2 1 5 0 52 0 0 2 33 4 0 4 32 25 0 16 2 1 6 0 52 0 0 2 33 4 0 2 32 9 0 1 8 0 16 2 52 7 0 2 32 30 0 18 1 48 0 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 48 0 32 4 0 18 4 48 0 17 2 18 1 48 0 1 10 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 5 16 1 16 2 52 7 0 2 16 0 52 11 0 2 49 1 50)} object-literal "\\" {:upvalue-count 6 :arity 1 :constants ("=" "op" "-" "<" "+" 1 "len" "get" "nth" "value" ">" "ident" "comma" "append") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 76 0 18 2 1 5 0 52 4 0 2 18 3 52 6 0 1 52 3 0 2 6 33 30 0 5 18 3 18 2 1 5 0 52 4 0 2 52 8 0 2 1 9 0 52 7 0 2 1 10 0 52 0 0 2 33 15 0 18 4 48 0 5 18 4 48 0 5 16 0 32 2 0 16 0 32 65 0 18 0 48 0 1 11 0 52 0 0 2 33 49 0 18 1 48 0 17 1 18 4 48 0 5 18 0 48 0 1 12 0 52 0 0 2 33 7 0 18 4 48 0 32 1 0 2 5 18 5 16 0 16 1 52 13 0 2 49 1 32 2 0 16 0 50)} block-literal "bracket-open" "-" - 0 "component" component "some" ">" "len" "+" 1 "get" "nth" "value" "in" "with" some "every" every) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 1 49 1 32 66 7 16 0 1 2 0 52 0 0 2 33 10 0 18 2 48 0 5 16 1 32 44 7 16 0 1 3 0 52 0 0 2 33 17 0 18 2 48 0 5 1 5 0 16 1 52 4 0 2 32 15 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 236 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 9 0 18 2 48 0 5 4 32 201 6 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 9 0 52 0 0 2 6 34 10 0 5 16 1 1 10 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 146 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 105 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 58 0 18 2 48 0 5 18 0 48 0 1 14 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 1 16 0 18 4 48 0 52 4 0 2 32 21 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 19 0 18 2 48 0 5 1 18 0 18 4 48 0 52 4 0 2 32 232 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 19 0 18 2 48 0 5 1 20 0 18 4 48 0 52 4 0 2 32 187 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 47 0 18 2 48 0 5 18 0 48 0 1 22 0 52 0 0 2 33 14 0 1 23 0 18 5 48 0 52 4 0 2 32 11 0 1 23 0 18 4 48 0 52 4 0 2 32 114 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 76 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 35 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 27 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 250 4 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 28 0 52 0 0 2 6 34 10 0 5 16 1 1 29 0 52 0 0 2 33 15 0 18 2 48 0 5 1 30 0 52 4 0 1 32 195 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 15 0 18 2 48 0 5 1 32 0 52 4 0 1 32 154 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 33 0 52 4 0 3 32 99 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 36 0 52 4 0 3 32 44 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 26 0 52 4 0 1 49 1 32 255 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 30 0 52 4 0 1 49 1 32 210 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 40 0 49 1 32 169 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 42 0 49 1 32 128 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 44 0 49 1 32 87 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 46 0 49 1 32 46 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 48 0 49 1 32 5 3 16 0 1 49 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 52 0 16 1 52 51 0 2 52 4 0 2 32 225 2 16 0 1 53 0 52 0 0 2 33 17 0 18 2 48 0 5 1 50 0 16 1 52 4 0 2 32 196 2 16 0 1 54 0 52 0 0 2 33 24 0 18 2 48 0 5 1 55 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 160 2 16 0 1 56 0 52 0 0 2 33 24 0 18 2 48 0 5 1 57 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 124 2 16 0 1 58 0 52 0 0 2 33 17 0 18 2 48 0 5 1 59 0 16 1 52 4 0 2 32 95 2 16 0 1 60 0 52 0 0 2 33 24 0 18 2 48 0 5 1 50 0 1 35 0 16 1 52 51 0 2 52 4 0 2 32 59 2 16 0 1 61 0 52 0 0 2 33 17 0 18 2 48 0 5 1 62 0 16 1 52 4 0 2 32 30 2 16 0 1 22 0 52 0 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 0 48 0 1 63 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 235 1 16 0 1 64 0 52 0 0 2 33 41 0 18 2 48 0 5 51 65 0 0 10 0 0 0 2 0 1 0 4 1 2 17 2 5 1 66 0 16 2 52 4 0 0 48 1 52 4 0 2 32 182 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 67 0 52 0 0 2 33 49 0 18 2 48 0 5 51 68 0 0 0 0 1 0 11 0 12 0 2 1 3 17 3 5 16 3 52 4 0 0 48 1 17 4 1 69 0 16 4 18 4 48 0 52 4 0 3 32 107 1 16 0 1 70 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 83 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 71 0 52 0 0 2 33 26 0 18 2 48 0 5 18 14 48 0 17 4 1 72 0 1 73 0 16 4 52 4 0 3 32 31 1 16 0 1 74 0 52 0 0 2 33 17 0 18 2 48 0 5 1 75 0 16 1 52 4 0 2 32 2 1 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 76 0 52 0 0 2 33 149 0 18 2 48 0 5 18 0 48 0 1 61 0 52 0 0 2 6 33 54 0 5 18 12 52 78 0 1 18 11 1 80 0 52 79 0 2 52 77 0 2 6 33 30 0 5 18 12 18 11 1 80 0 52 79 0 2 52 82 0 2 1 83 0 52 81 0 2 1 84 0 52 0 0 2 33 51 0 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 86 0 16 4 16 5 18 4 48 0 52 4 0 4 32 18 0 1 18 0 1 20 0 18 4 48 0 52 4 0 2 52 4 0 2 32 83 0 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 87 0 52 0 0 2 33 56 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 18 15 1 84 0 48 1 5 18 4 48 0 17 5 18 15 1 85 0 48 1 5 1 88 0 16 4 16 5 18 4 48 0 52 4 0 4 32 1 0 2 50)} {:upvalue-count 8 :arity 1 :constants ("=" "op" "'s" "class" "paren-open" "list" call "bracket-open" ".." "bracket-close" array-slice array-index) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 0 49 1 32 74 1 18 0 48 0 1 3 0 52 0 0 2 33 9 0 18 4 16 0 49 1 32 51 1 18 0 48 0 1 4 0 52 0 0 2 33 20 0 18 5 48 0 17 1 1 6 0 16 0 16 1 52 5 0 3 32 17 1 18 0 48 0 1 7 0 52 0 0 2 33 1 1 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 53 0 18 2 48 0 5 18 6 48 0 17 1 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 2 16 1 52 5 0 4 49 1 32 166 0 18 6 48 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 92 0 18 2 48 0 5 18 0 48 0 1 9 0 52 0 0 2 33 24 0 18 2 48 0 5 18 7 1 10 0 16 0 16 1 2 52 5 0 4 49 1 32 46 0 18 6 48 0 17 2 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 16 1 16 2 52 5 0 4 49 1 32 38 0 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 11 0 16 0 16 1 52 5 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("=" "op" "==" "!=" "<" ">" "<=" ">=" "===" "!==" "list" = strict-eq not "keyword" "is" "not" "empty" empty? "in" not-in? "between" "and" and >= <= "really" "equal" "to" "a" "an" "!" type-check-strict type-check "less" "than" "or" < "greater" > in? "ident" "hs-keyword?" prop-is "am" "exists" exists? "starts" "with" starts-with? "ends" ends-with? "matches" matches? "contains" contains? "as" "colon" as "str" ":" "of" "list?" "first" ref "make-symbol" "." "nth" 1 of "does" "exist" "match" "contain" "include" "includes" "equals" "precedes" precedes? "follows" follows?) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 108 0 5 16 2 1 2 0 52 0 0 2 6 34 94 0 5 16 2 1 3 0 52 0 0 2 6 34 80 0 5 16 2 1 4 0 52 0 0 2 6 34 66 0 5 16 2 1 5 0 52 0 0 2 6 34 52 0 5 16 2 1 6 0 52 0 0 2 6 34 38 0 5 16 2 1 7 0 52 0 0 2 6 34 24 0 5 16 2 1 8 0 52 0 0 2 6 34 10 0 5 16 2 1 9 0 52 0 0 2 33 109 0 18 2 48 0 5 18 3 48 0 17 3 16 2 1 2 0 52 0 0 2 33 14 0 1 11 0 16 0 16 3 52 10 0 3 32 69 0 16 2 1 8 0 52 0 0 2 33 14 0 1 12 0 16 0 16 3 52 10 0 3 32 43 0 16 2 1 9 0 52 0 0 2 33 21 0 1 13 0 1 12 0 16 0 16 3 52 10 0 3 52 10 0 2 32 10 0 16 2 16 0 16 3 52 10 0 3 32 13 9 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 15 0 52 0 0 2 33 173 3 18 2 48 0 5 18 4 1 16 0 48 1 33 127 1 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 95 1 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 69 1 18 4 1 21 0 48 1 33 59 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 13 0 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 52 10 0 2 32 0 1 18 4 1 26 0 48 1 33 39 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 13 0 1 12 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 207 0 18 4 1 27 0 48 1 33 31 0 18 4 1 28 0 48 1 5 1 13 0 1 11 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 166 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 101 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 21 0 1 13 0 1 32 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 33 0 16 0 16 3 52 10 0 3 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 28 2 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 6 2 18 4 1 34 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 25 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 37 0 16 0 18 3 48 0 52 10 0 3 32 186 1 18 4 1 38 0 48 1 33 66 0 18 4 1 35 0 48 1 5 18 4 1 36 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 24 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 39 0 16 0 18 3 48 0 52 10 0 3 32 110 1 18 4 1 21 0 48 1 33 52 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 32 48 1 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 22 1 18 4 1 26 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 236 0 18 4 1 27 0 48 1 33 24 0 18 4 1 28 0 48 1 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 202 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 87 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 74 0 18 0 48 0 1 41 0 52 0 0 2 6 33 14 0 5 20 42 0 18 1 48 0 48 1 52 16 0 1 33 25 0 18 1 48 0 17 3 18 2 48 0 5 1 43 0 16 0 16 3 52 10 0 3 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 70 5 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 44 0 52 0 0 2 33 165 0 18 2 48 0 5 18 4 1 16 0 48 1 33 82 0 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 53 0 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 65 0 18 4 1 19 0 48 1 33 16 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 39 0 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 135 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 45 0 52 0 0 2 33 17 0 18 2 48 0 5 1 46 0 16 0 52 10 0 2 32 92 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 47 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 49 0 16 0 18 3 48 0 52 10 0 3 32 23 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 41 0 52 0 0 2 6 33 10 0 5 16 2 1 50 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 48 0 48 1 5 1 51 0 16 0 18 3 48 0 52 10 0 3 32 210 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 52 0 52 0 0 2 33 21 0 18 2 48 0 5 1 53 0 16 0 18 3 48 0 52 10 0 3 32 163 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 54 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 116 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 56 0 52 0 0 2 33 135 0 18 2 48 0 5 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 57 0 52 0 0 2 6 33 9 0 5 18 6 48 0 52 16 0 1 33 39 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 1 58 0 16 0 16 3 1 60 0 16 4 52 59 0 3 52 10 0 3 32 11 0 1 58 0 16 0 16 3 52 10 0 3 32 211 2 16 1 1 57 0 52 0 0 2 33 92 0 18 2 48 0 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 107 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 61 0 52 0 0 2 33 77 0 18 2 48 0 5 18 3 48 0 17 3 16 0 52 62 0 1 6 33 14 0 5 16 0 52 63 0 1 1 64 0 52 0 0 2 33 25 0 1 66 0 52 65 0 1 16 3 16 0 1 68 0 52 67 0 2 52 10 0 3 32 11 0 1 69 0 16 0 16 3 52 10 0 3 32 4 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 19 0 52 0 0 2 33 21 0 18 2 48 0 5 1 40 0 16 0 18 3 48 0 52 10 0 3 32 213 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 70 0 52 0 0 2 33 170 0 18 2 48 0 5 18 4 1 16 0 48 1 5 18 4 1 71 0 48 1 33 19 0 1 13 0 1 46 0 16 0 52 10 0 2 52 10 0 2 32 125 0 18 4 1 72 0 48 1 33 23 0 1 13 0 1 53 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 92 0 18 4 1 73 0 48 1 6 34 8 0 5 18 4 1 54 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 47 0 18 4 1 74 0 48 1 6 34 8 0 5 18 4 1 75 0 48 1 33 23 0 1 13 0 1 55 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 2 0 16 0 32 17 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 76 0 52 0 0 2 33 21 0 18 2 48 0 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 226 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 26 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 76 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 171 0 16 1 1 14 0 52 0 0 2 6 33 38 0 5 16 2 1 73 0 52 0 0 2 6 34 24 0 5 16 2 1 74 0 52 0 0 2 6 34 10 0 5 16 2 1 75 0 52 0 0 2 33 21 0 18 2 48 0 5 1 55 0 16 0 18 3 48 0 52 10 0 3 32 96 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 77 0 52 0 0 2 33 21 0 18 2 48 0 5 1 78 0 16 0 18 5 48 0 52 10 0 3 32 49 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 79 0 52 0 0 2 33 21 0 18 2 48 0 5 1 80 0 16 0 18 5 48 0 52 10 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("where" "list" coll-where "sorted" "by" "descending" "not" "ascending" coll-sorted-desc coll-sorted "mapped" "to" coll-mapped "split" coll-split "joined" coll-joined) :bytecode (18 0 1 0 0 48 1 33 36 0 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 2 0 16 0 16 1 52 1 0 3 49 1 32 11 1 18 0 1 3 0 48 1 33 93 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 0 1 5 0 48 1 17 2 16 2 52 6 0 1 33 10 0 18 0 1 7 0 48 1 32 1 0 2 5 18 5 16 2 33 14 0 1 8 0 16 0 16 1 52 1 0 3 32 11 0 1 9 0 16 0 16 1 52 1 0 3 49 1 32 164 0 18 0 1 10 0 48 1 33 44 0 18 0 1 11 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 12 0 16 0 16 1 52 1 0 3 49 1 32 110 0 18 0 1 13 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 14 0 16 0 16 1 52 1 0 3 49 1 32 56 0 18 0 1 15 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 16 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("and" "list" and "or" or) :bytecode (18 0 1 0 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 2 0 16 0 16 1 52 1 0 3 49 1 32 52 0 18 0 1 3 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 4 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 9 :arity 0 :constants ("nil?" "number?" "=" "ident" "list" string-postfix "not" "then" "end" "else" "otherwise" "op" "%") :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 4 0 2 32 242 0 16 0 52 1 0 1 6 33 12 0 5 18 1 48 0 1 3 0 52 2 0 2 33 27 0 18 2 48 0 17 1 18 3 48 0 5 1 5 0 16 0 16 1 52 4 0 3 17 0 32 1 0 2 5 18 4 16 0 48 1 17 1 18 5 16 1 48 1 17 2 18 6 16 2 48 1 17 3 18 7 16 3 48 1 17 4 18 8 16 4 48 1 17 5 16 5 6 33 112 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 64 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 10 0 52 2 0 2 52 6 0 1 6 34 28 0 5 18 1 48 0 1 11 0 52 2 0 2 6 33 12 0 5 18 2 48 0 1 12 0 52 2 0 2 33 25 0 18 2 48 0 17 6 18 3 48 0 5 1 5 0 16 5 16 6 52 4 0 3 32 2 0 16 5 50)} {:upvalue-count 2 :arity 2 :constants () :bytecode (18 0 16 0 48 1 33 7 0 18 1 49 0 32 2 0 16 1 50)} {:upvalue-count 3 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "to" me "empty?" add-class "cons" multi-add-class) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 101 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 1 7 0 52 4 0 1 48 2 17 3 16 1 52 8 0 1 33 14 0 1 9 0 16 0 16 3 52 4 0 3 32 21 0 1 11 0 16 3 16 0 16 1 52 10 0 2 52 10 0 2 52 10 0 2 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "from" "empty?" remove-class "cons" multi-remove-class "bracket-open" "[" "attr" "]" remove-attr "{" {:upvalue-count 4 :arity 0 :constants ("not" "=" "}" ";" "append" "list" "get" "value") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 76 0 18 0 48 0 1 3 0 52 1 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 31 0 18 2 18 1 48 0 1 7 0 52 6 0 2 52 5 0 1 52 4 0 2 19 2 5 18 3 49 0 32 1 0 2 32 1 0 2 50)} "}" remove-css remove-element) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 105 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 3 16 1 52 7 0 1 33 14 0 1 8 0 16 0 16 3 52 4 0 3 32 21 0 1 10 0 16 3 16 0 16 1 52 9 0 2 52 9 0 2 52 9 0 2 32 209 0 18 0 48 0 1 11 0 52 0 0 2 6 33 12 0 5 18 4 48 0 1 12 0 52 0 0 2 33 78 0 18 1 48 0 5 18 0 48 0 1 13 0 52 0 0 2 33 55 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 2 1 14 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 1 15 0 16 0 16 1 52 4 0 3 32 1 0 2 32 101 0 18 4 48 0 1 16 0 52 0 0 2 33 72 0 18 1 48 0 5 52 4 0 0 17 0 51 17 0 0 4 0 1 1 0 1 1 17 1 5 16 1 48 0 5 18 2 1 18 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 2 1 19 0 16 0 16 2 52 4 0 3 32 15 0 18 3 48 0 17 0 1 20 0 16 0 52 4 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("between" "=" "class" "and" "on" "list" me toggle-between toggle-class "style" toggle-style-between toggle-style "attr" toggle-attr-between toggle-attr) :bytecode (18 0 1 0 0 48 1 33 106 0 18 1 48 0 1 2 0 52 1 0 2 33 88 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 4 1 3 0 48 1 5 18 1 48 0 1 2 0 52 1 0 2 33 47 0 18 2 48 0 17 1 18 3 48 0 5 16 1 17 1 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 2 1 7 0 16 0 16 1 16 2 52 5 0 4 32 1 0 2 32 1 0 2 32 50 1 18 1 48 0 1 2 0 52 1 0 2 33 45 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 8 0 16 0 16 1 52 5 0 3 32 247 0 18 1 48 0 1 9 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 10 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 11 0 16 0 16 1 52 5 0 3 32 124 0 18 1 48 0 1 12 0 52 1 0 2 33 109 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 0 1 0 0 48 1 33 54 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 3 1 13 0 16 0 16 1 16 2 16 3 52 5 0 5 32 27 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 1 14 0 16 0 16 1 52 5 0 3 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" set!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("into" "list" set! "before" put! "after" "at" "start" "of" "end" "error" "str" "Expected start/end after at, position " "Expected into/before/after/at at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 16 0 1 2 0 18 0 48 0 16 0 52 1 0 3 32 171 0 18 1 1 3 0 48 1 33 19 0 1 4 0 16 0 1 3 0 18 0 48 0 52 1 0 4 32 142 0 18 1 1 5 0 48 1 33 19 0 1 4 0 16 0 1 5 0 18 0 48 0 52 1 0 4 32 113 0 18 1 1 6 0 48 1 33 90 0 18 1 1 7 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 7 0 18 0 48 0 52 1 0 4 32 50 0 18 1 1 9 0 48 1 33 27 0 18 2 1 8 0 48 1 5 1 4 0 16 0 1 9 0 18 0 48 0 52 1 0 4 32 13 0 1 12 0 18 3 52 11 0 2 52 10 0 1 32 13 0 1 13 0 18 3 52 11 0 2 52 10 0 1 50)} {:upvalue-count 3 :arity 0 :constants ("else" "otherwise" "end" "list" if) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 18 2 1 0 0 48 1 6 34 8 0 5 18 2 1 1 0 48 1 33 7 0 18 1 48 0 32 1 0 2 17 2 18 2 1 2 0 48 1 5 16 2 33 16 0 1 4 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 4 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("for" "from" "list" wait-for "=" "number" wait "get" "value" 0) :bytecode (18 0 1 0 0 48 1 33 65 0 18 1 48 0 17 0 18 2 48 0 5 18 0 1 1 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 16 1 33 17 0 1 3 0 16 0 1 1 0 16 1 52 2 0 4 32 9 0 1 3 0 16 0 52 2 0 2 32 53 0 18 4 48 0 1 5 0 52 4 0 2 33 29 0 18 2 48 0 17 0 1 6 0 18 5 16 0 1 8 0 52 7 0 2 48 1 52 2 0 2 32 10 0 1 6 0 1 9 0 52 2 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "get" "value" "colon" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 83 0 18 2 48 0 1 3 0 52 2 0 2 17 1 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 2 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 16 2 52 7 0 2 52 6 0 2 49 1 50)} "cons" dict "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("get" "value" {:upvalue-count 6 :arity 0 :constants ("not" "=" "class" "str" "." "local" ":") :bytecode (18 0 48 0 52 0 0 1 33 96 0 18 1 48 0 1 2 0 52 1 0 2 33 32 0 18 2 48 0 17 0 18 3 48 0 5 18 4 1 4 0 16 0 52 3 0 3 19 4 5 18 5 49 0 32 47 0 18 1 48 0 1 5 0 52 1 0 2 33 32 0 18 2 48 0 17 0 18 3 48 0 5 18 4 1 6 0 16 0 52 3 0 3 19 4 5 18 5 49 0 32 1 0 2 32 1 0 2 50)}) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 51 2 0 0 1 0 2 0 3 0 0 1 0 1 1 17 1 5 16 1 48 0 5 16 0 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "to" "list" me send) :bytecode (18 0 48 0 17 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 17 1 18 3 1 2 0 1 4 0 52 3 0 1 48 2 17 2 16 1 33 16 0 1 5 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 5 0 16 0 16 2 52 3 0 3 50)} {:upvalue-count 2 :arity 0 :constants ("get" "value" "on" "list" me trigger) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 1 2 0 1 4 0 52 3 0 1 48 2 17 1 1 5 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("list" log) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me increment!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me decrement!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" hide) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" show) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("=" "style" "get" "value" "my" "from" "to" "over" "list" transition-from transition) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 72 0 18 2 48 0 1 4 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 3 1 5 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 5 1 6 0 48 1 5 18 4 48 0 17 2 18 3 1 7 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 16 1 33 18 0 1 9 0 16 0 16 1 16 2 16 3 52 8 0 5 32 34 0 16 3 33 17 0 1 10 0 16 0 16 2 16 3 2 52 8 0 5 32 12 0 1 10 0 16 0 16 2 2 52 8 0 4 50)} {:upvalue-count 7 :arity 0 :constants ("=" "keyword" "for" "in" "end" "list" for "it" "forever" forever "while" while "until" until "times" times repeat) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 203 0 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 3 0 52 0 0 2 33 43 0 18 2 48 0 5 18 4 48 0 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 6 0 1 7 0 16 0 2 16 1 52 5 0 5 32 130 0 18 6 1 8 0 48 1 33 10 0 1 9 0 52 5 0 1 32 83 0 18 6 1 10 0 48 1 33 14 0 1 11 0 18 4 48 0 52 5 0 2 32 59 0 18 6 1 12 0 48 1 33 14 0 1 13 0 18 4 48 0 52 5 0 2 32 35 0 18 4 48 0 17 0 18 6 1 14 0 48 1 33 12 0 1 15 0 16 0 52 5 0 2 32 7 0 1 9 0 52 5 0 1 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 16 0 16 0 16 1 52 5 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("nil?" "as" "json" "list" fetch) :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 5 0 16 0 32 10 0 18 1 18 2 16 0 48 1 48 1 17 1 18 3 1 1 0 48 1 33 16 0 18 4 48 0 17 2 18 5 48 0 5 16 2 32 3 0 1 2 0 17 2 1 4 0 16 1 16 2 52 3 0 3 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 3 :arity 0 :constants ("get" "value" "=" "paren-open" "cons" call "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 24 0 18 2 48 0 17 1 1 5 0 16 0 16 1 52 4 0 2 52 4 0 2 32 9 0 1 5 0 16 0 52 6 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "from" "for" "list" take! "attr") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 1 0 16 0 16 1 16 2 52 4 0 5 32 89 0 18 0 48 0 1 6 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 6 0 16 0 16 1 16 2 52 4 0 5 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" go) :bytecode (18 0 1 0 0 48 1 5 1 2 0 18 1 48 0 52 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("=" "op" "+" "-" "*" "/" "%" "keyword" "mod" + - * / "make-symbol" "nil?" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 66 0 5 16 2 1 2 0 52 0 0 2 6 34 52 0 5 16 2 1 3 0 52 0 0 2 6 34 38 0 5 16 2 1 4 0 52 0 0 2 6 34 24 0 5 16 2 1 5 0 52 0 0 2 6 34 10 0 5 16 2 1 6 0 52 0 0 2 6 34 24 0 5 16 1 1 7 0 52 0 0 2 6 33 10 0 5 16 2 1 8 0 52 0 0 2 33 161 0 18 2 48 0 5 16 2 1 2 0 52 0 0 2 33 6 0 1 9 0 32 91 0 16 2 1 3 0 52 0 0 2 33 6 0 1 10 0 32 73 0 16 2 1 4 0 52 0 0 2 33 6 0 1 11 0 32 55 0 16 2 1 5 0 52 0 0 2 33 6 0 1 12 0 32 37 0 16 2 1 6 0 52 0 0 2 6 34 10 0 5 16 2 1 8 0 52 0 0 2 33 10 0 1 6 0 52 13 0 1 32 1 0 2 17 3 18 3 48 0 17 4 16 4 52 14 0 1 33 5 0 16 4 32 6 0 18 4 16 4 48 1 17 4 18 5 16 3 16 0 16 4 52 15 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 8 :arity 0 :constants ("=" "ident" "keyword" "of" "list" "make-symbol" "." "result" it "first" first "last" last "closest" closest "next" next "previous" previous ref) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 34 10 0 5 16 0 1 2 0 52 0 0 2 33 179 0 18 2 48 0 5 18 3 1 3 0 48 1 33 20 0 1 6 0 52 5 0 1 18 4 48 0 16 1 52 4 0 3 32 141 0 16 1 1 7 0 52 0 0 2 33 10 0 1 8 0 52 4 0 1 32 119 0 16 1 1 9 0 52 0 0 2 33 10 0 18 5 1 10 0 49 1 32 97 0 16 1 1 11 0 52 0 0 2 33 10 0 18 5 1 12 0 49 1 32 75 0 16 1 1 13 0 52 0 0 2 33 10 0 18 6 1 14 0 49 1 32 53 0 16 1 1 15 0 52 0 0 2 33 10 0 18 6 1 16 0 49 1 32 31 0 16 1 1 17 0 52 0 0 2 33 10 0 18 6 1 18 0 49 1 32 9 0 1 19 0 16 1 52 4 0 2 32 4 0 18 7 49 0 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "bracket-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "cons" array "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "end" "then" "else" "list" return) :bytecode (18 0 48 0 6 34 60 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 44 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 28 0 5 18 2 48 0 1 3 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 4 0 52 0 0 2 33 11 0 1 6 0 2 52 5 0 2 32 11 0 1 6 0 18 3 48 0 52 5 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" throw) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" append!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("then" "end" "list" tell) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 5 1 3 0 16 0 16 1 52 2 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("in" "index" "end" "list" for) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 1 0 0 48 1 5 18 3 48 0 17 1 18 4 1 1 0 48 1 33 16 0 18 0 48 0 17 2 18 1 48 0 5 16 2 32 1 0 2 17 2 18 5 48 0 17 3 18 4 1 2 0 48 1 5 16 2 33 21 0 1 4 0 16 0 16 1 16 3 1 1 0 16 2 52 3 0 6 32 13 0 1 4 0 16 0 16 1 16 3 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("=" "a" "called" "list" make) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 17 0 18 1 48 0 5 18 2 1 2 0 48 1 33 16 0 18 0 48 0 17 1 18 1 48 0 5 16 1 32 1 0 2 17 1 16 1 33 14 0 1 4 0 16 0 16 1 52 3 0 3 32 9 0 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "cons" install "list") :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 1 1 0 52 0 0 2 33 24 0 18 3 48 0 17 1 1 3 0 16 0 16 1 52 2 0 2 52 2 0 2 32 9 0 1 3 0 16 0 52 4 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" measure "nil?" me) :bytecode (18 0 48 0 17 0 1 1 0 16 0 52 2 0 1 33 10 0 1 3 0 52 0 0 1 32 2 0 16 0 52 0 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "keyword" "then" "end" "list" me "top" "bottom" "left" "right" scroll!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 6 0 1 6 0 32 51 0 18 4 1 7 0 48 1 33 6 0 1 7 0 32 35 0 18 4 1 8 0 48 1 33 6 0 1 8 0 32 19 0 18 4 1 9 0 48 1 33 6 0 1 9 0 32 3 0 1 6 0 17 1 1 10 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me select!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me reset!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" default!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("the" "event" "default" "list" halt!) :bytecode (18 0 1 0 0 48 1 6 33 20 0 5 18 0 1 1 0 48 1 6 34 8 0 5 18 0 1 2 0 48 1 17 0 1 4 0 16 0 33 6 0 1 1 0 32 3 0 1 2 0 52 3 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("=" "paren-open" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 52 2 0 0 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" focus!) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "keyword" "end" "nil?" "append" "list") :bytecode (18 0 48 0 6 34 28 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 2 48 0 1 2 0 52 0 0 2 33 5 0 16 0 32 36 0 18 3 48 0 17 1 16 1 52 3 0 1 33 5 0 16 0 32 16 0 18 4 16 0 16 1 52 5 0 1 52 4 0 2 49 1 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" def) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" behavior) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "local" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 38 0 18 1 48 0 17 1 18 2 48 0 5 18 3 48 0 17 2 18 4 16 0 16 1 16 2 52 3 0 2 52 2 0 2 49 1 32 2 0 16 0 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "component" "paren-open" "paren-close" "into" "before" "after" "list" render) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 16 0 18 1 48 0 17 0 18 2 48 0 5 16 0 32 66 0 18 0 48 0 1 2 0 52 0 0 2 33 39 0 18 2 48 0 5 18 3 48 0 17 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 13 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 4 48 0 17 1 18 5 1 4 0 48 1 33 6 0 1 4 0 32 33 0 18 5 1 5 0 48 1 33 6 0 1 5 0 32 17 0 18 5 1 6 0 48 1 33 6 0 1 6 0 32 1 0 2 17 2 16 2 33 7 0 18 3 48 0 32 1 0 2 17 3 16 2 33 18 0 1 8 0 16 0 16 1 16 2 16 3 52 7 0 5 32 11 0 1 8 0 16 0 16 1 52 7 0 3 50)} {:upvalue-count 5 :arity 0 :constants ("get" "pos" {:upvalue-count 6 :arity 1 :constants ("=" "paren-open" "+" 1 "paren-close" 0 "get" "pos" "-") :bytecode (18 0 48 0 33 5 0 18 1 32 123 0 18 2 48 0 1 1 0 52 0 0 2 33 21 0 18 3 48 0 5 18 4 16 0 1 3 0 52 2 0 2 49 1 32 88 0 18 2 48 0 1 4 0 52 0 0 2 33 63 0 16 0 1 5 0 52 0 0 2 33 30 0 18 5 48 0 1 7 0 52 6 0 2 1 3 0 52 2 0 2 17 1 18 3 48 0 5 16 1 32 18 0 18 3 48 0 5 18 4 16 0 1 3 0 52 8 0 2 49 1 32 11 0 18 3 48 0 5 18 4 16 0 49 1 50)} 0 "substring") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 5 51 2 0 0 2 1 0 0 3 0 1 1 1 0 0 17 1 5 16 1 1 3 0 48 1 17 2 18 4 16 0 16 2 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("list" sym "me" "=" "keyword" "then" "end" empty-target) :bytecode (18 0 48 0 33 13 0 1 1 0 1 2 0 52 0 0 2 32 63 0 18 1 48 0 1 4 0 52 3 0 2 6 33 28 0 5 18 2 48 0 1 5 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 6 0 52 3 0 2 33 13 0 1 1 0 1 2 0 52 0 0 2 32 4 0 18 3 48 0 17 0 1 7 0 16 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("with" "list" swap!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 41 :arity 0 :constants ("=" "keyword" "catch" "finally" "end" "else" "otherwise" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "list" settle "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "scroll" "select" "reset" "default" "halt" "focus" "empty" "clear" "swap") :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 33 66 0 5 16 1 1 2 0 52 0 0 2 6 34 52 0 5 16 1 1 3 0 52 0 0 2 6 34 38 0 5 16 1 1 4 0 52 0 0 2 6 34 24 0 5 16 1 1 5 0 52 0 0 2 6 34 10 0 5 16 1 1 6 0 52 0 0 2 33 4 0 2 32 209 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 171 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 49 0 32 133 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 5 49 0 32 95 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 10 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 57 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 11 0 52 0 0 2 33 12 0 18 2 48 0 5 18 7 49 0 32 19 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 12 0 18 2 48 0 5 18 8 49 0 32 237 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 12 0 18 2 48 0 5 18 9 49 0 32 199 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 14 0 52 0 0 2 33 12 0 18 2 48 0 5 18 10 49 0 32 161 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 15 0 52 0 0 2 33 12 0 18 2 48 0 5 18 11 49 0 32 123 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 16 0 52 0 0 2 33 12 0 18 2 48 0 5 18 12 49 0 32 85 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 47 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 18 0 52 0 0 2 33 12 0 18 2 48 0 5 18 14 49 0 32 9 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 12 0 18 2 48 0 5 18 15 49 0 32 227 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 20 0 52 0 0 2 33 12 0 18 2 48 0 5 18 16 49 0 32 189 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 12 0 18 2 48 0 5 18 17 49 0 32 151 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 22 0 52 0 0 2 33 12 0 18 2 48 0 5 18 18 49 0 32 113 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 23 0 52 0 0 2 33 12 0 18 2 48 0 5 18 19 49 0 32 75 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 20 49 0 32 37 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 12 0 18 2 48 0 5 18 21 49 0 32 255 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 26 0 52 0 0 2 33 15 0 18 2 48 0 5 1 28 0 52 27 0 1 32 214 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 29 0 52 0 0 2 33 12 0 18 2 48 0 5 18 22 49 0 32 176 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 30 0 52 0 0 2 33 12 0 18 2 48 0 5 18 23 49 0 32 138 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 12 0 18 2 48 0 5 18 24 49 0 32 100 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 32 0 52 0 0 2 33 12 0 18 2 48 0 5 18 25 49 0 32 62 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 12 0 18 2 48 0 5 18 26 49 0 32 24 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 34 0 52 0 0 2 33 12 0 18 2 48 0 5 18 27 49 0 32 242 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 35 0 52 0 0 2 33 12 0 18 2 48 0 5 18 28 49 0 32 204 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 12 0 18 2 48 0 5 18 29 49 0 32 166 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 12 0 18 2 48 0 5 18 30 49 0 32 128 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 12 0 18 2 48 0 5 18 31 49 0 32 90 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 12 0 18 2 48 0 5 18 32 49 0 32 52 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 12 0 18 2 48 0 5 18 33 49 0 32 14 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 12 0 18 2 48 0 5 18 34 49 0 32 232 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 12 0 18 2 48 0 5 18 35 49 0 32 194 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 12 0 18 2 48 0 5 18 36 49 0 32 156 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 12 0 18 2 48 0 5 18 37 49 0 32 118 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 80 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 46 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 42 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 12 0 18 2 48 0 5 18 39 49 0 32 4 0 18 40 49 0 50)} {:upvalue-count 5 :arity 2 :constants ({:upvalue-count 0 :arity 1 :constants ("=" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "halt" "default" "scroll" "select" "reset" "focus" "empty" "clear" "swap") :bytecode (16 0 1 1 0 52 0 0 2 6 34 16 2 5 16 0 1 2 0 52 0 0 2 6 34 2 2 5 16 0 1 3 0 52 0 0 2 6 34 244 1 5 16 0 1 4 0 52 0 0 2 6 34 230 1 5 16 0 1 5 0 52 0 0 2 6 34 216 1 5 16 0 1 6 0 52 0 0 2 6 34 202 1 5 16 0 1 7 0 52 0 0 2 6 34 188 1 5 16 0 1 8 0 52 0 0 2 6 34 174 1 5 16 0 1 9 0 52 0 0 2 6 34 160 1 5 16 0 1 10 0 52 0 0 2 6 34 146 1 5 16 0 1 11 0 52 0 0 2 6 34 132 1 5 16 0 1 12 0 52 0 0 2 6 34 118 1 5 16 0 1 13 0 52 0 0 2 6 34 104 1 5 16 0 1 14 0 52 0 0 2 6 34 90 1 5 16 0 1 15 0 52 0 0 2 6 34 76 1 5 16 0 1 16 0 52 0 0 2 6 34 62 1 5 16 0 1 17 0 52 0 0 2 6 34 48 1 5 16 0 1 18 0 52 0 0 2 6 34 34 1 5 16 0 1 19 0 52 0 0 2 6 34 20 1 5 16 0 1 20 0 52 0 0 2 6 34 6 1 5 16 0 1 21 0 52 0 0 2 6 34 248 0 5 16 0 1 22 0 52 0 0 2 6 34 234 0 5 16 0 1 23 0 52 0 0 2 6 34 220 0 5 16 0 1 24 0 52 0 0 2 6 34 206 0 5 16 0 1 25 0 52 0 0 2 6 34 192 0 5 16 0 1 26 0 52 0 0 2 6 34 178 0 5 16 0 1 27 0 52 0 0 2 6 34 164 0 5 16 0 1 28 0 52 0 0 2 6 34 150 0 5 16 0 1 29 0 52 0 0 2 6 34 136 0 5 16 0 1 30 0 52 0 0 2 6 34 122 0 5 16 0 1 31 0 52 0 0 2 6 34 108 0 5 16 0 1 32 0 52 0 0 2 6 34 94 0 5 16 0 1 33 0 52 0 0 2 6 34 80 0 5 16 0 1 34 0 52 0 0 2 6 34 66 0 5 16 0 1 35 0 52 0 0 2 6 34 52 0 5 16 0 1 36 0 52 0 0 2 6 34 38 0 5 16 0 1 37 0 52 0 0 2 6 34 24 0 5 16 0 1 38 0 52 0 0 2 6 34 10 0 5 16 0 1 39 0 52 0 0 2 50)} {:upvalue-count 7 :arity 1 :constants ("nil?" "append" "list" "then" "not" "=" "keyword") :bytecode (18 0 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 84 0 16 0 16 1 52 2 0 1 52 1 0 2 17 2 18 1 1 3 0 48 1 33 9 0 18 2 16 2 49 1 32 51 0 18 3 48 0 52 4 0 1 6 33 25 0 5 18 4 48 0 1 6 0 52 5 0 2 6 33 9 0 5 18 5 18 6 48 0 48 1 33 9 0 18 2 16 2 49 1 32 2 0 16 2 50)} "list" "=" "len" 0 1 "first" "cons" do) :bytecode (51 0 0 17 0 5 51 1 0 0 0 0 1 1 1 0 2 0 3 1 0 0 4 17 1 5 16 1 52 2 0 0 48 1 17 2 16 2 52 4 0 1 1 5 0 52 3 0 2 33 4 0 2 32 34 0 16 2 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 2 52 7 0 1 32 9 0 1 9 0 16 2 52 8 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("every" "=" "bracket-open" "bracket-close" "from" "catch" "list" "finally" "end" on "append" "filter") :bytecode (18 0 1 0 0 48 1 17 0 18 1 48 0 17 1 18 2 48 0 1 2 0 52 1 0 2 33 39 0 18 3 48 0 5 18 4 48 0 17 2 18 2 48 0 1 3 0 52 1 0 2 33 7 0 18 3 48 0 32 1 0 2 5 16 2 32 1 0 2 17 2 18 0 1 4 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 5 48 0 17 4 18 0 1 5 0 48 1 33 32 0 18 6 48 0 17 5 18 3 48 0 5 16 5 17 5 18 5 48 0 17 6 16 5 16 6 52 6 0 2 32 1 0 2 17 5 18 0 1 7 0 48 1 33 7 0 18 5 48 0 32 1 0 2 17 6 18 0 1 8 0 48 1 5 1 9 0 16 1 52 6 0 2 17 7 16 0 33 17 0 16 7 1 0 0 3 52 6 0 2 52 10 0 2 32 2 0 16 7 17 8 16 2 33 18 0 16 8 1 11 0 16 2 52 6 0 2 52 10 0 2 32 2 0 16 8 17 9 16 3 33 18 0 16 9 1 4 0 16 3 52 6 0 2 52 10 0 2 32 2 0 16 9 17 10 16 5 33 18 0 16 10 1 5 0 16 5 52 6 0 2 52 10 0 2 32 2 0 16 10 17 11 16 6 33 18 0 16 11 1 7 0 16 6 52 6 0 2 52 10 0 2 32 2 0 16 11 17 12 16 12 16 4 52 6 0 1 52 10 0 2 17 13 16 13 50)} {:upvalue-count 2 :arity 0 :constants ("end" "list" init) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 1 2 0 16 0 52 1 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "on" "init" "def" "behavior") :bytecode (18 0 48 0 17 0 16 0 1 1 0 52 0 0 2 33 12 0 18 1 48 0 5 18 2 49 0 32 76 0 16 0 1 2 0 52 0 0 2 33 12 0 18 1 48 0 5 18 3 49 0 32 52 0 16 0 1 3 0 52 0 0 2 33 12 0 18 1 48 0 5 18 4 49 0 32 28 0 16 0 1 4 0 52 0 0 2 33 12 0 18 1 48 0 5 18 5 49 0 32 4 0 18 6 49 0 50)} {:upvalue-count 3 :arity 1 :constants ("nil?" "append" "list") :bytecode (18 0 48 0 33 5 0 16 0 32 36 0 18 1 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 16 0 18 2 16 0 16 1 52 2 0 1 52 1 0 2 49 1 50)} "list" "=" 1 "first" "cons" do) :bytecode (1 0 0 17 2 16 0 52 1 0 1 17 3 51 2 0 1 2 1 3 1 0 17 4 5 51 3 0 1 4 17 5 5 51 4 0 1 4 17 6 5 51 5 0 1 0 1 2 17 7 5 51 6 0 1 2 1 3 1 5 17 8 5 51 7 0 1 5 1 6 1 7 17 9 5 51 8 0 1 9 1 2 17 10 5 51 9 0 17 11 5 51 10 0 1 5 1 6 1 7 1 13 17 12 5 51 11 0 1 5 1 8 1 6 1 7 1 13 1 42 17 13 5 51 12 0 1 5 1 6 1 7 17 14 5 51 13 0 1 5 1 6 1 7 1 9 1 21 17 15 5 51 14 0 1 5 1 6 1 7 1 11 1 21 1 69 1 47 1 12 1 14 1 15 1 8 1 2 1 0 1 48 1 16 1 9 17 16 5 51 15 0 1 5 1 6 1 7 1 12 1 13 1 42 1 21 1 17 17 17 5 51 16 0 1 5 1 6 1 7 1 21 1 9 1 16 1 8 17 18 5 51 17 0 1 9 1 18 1 46 1 17 1 16 1 19 17 19 5 51 18 0 1 9 1 19 1 18 1 46 1 17 1 16 1 20 17 20 5 51 19 0 1 16 1 5 1 6 1 7 1 17 1 46 1 18 1 19 1 20 17 21 5 51 20 0 1 9 1 21 17 22 5 51 21 0 1 5 1 7 1 22 17 23 5 51 22 0 1 5 1 7 1 9 1 21 1 6 17 24 5 51 23 0 1 9 1 5 1 6 1 7 1 10 1 22 1 16 17 25 5 51 24 0 1 21 1 10 17 26 5 51 25 0 1 21 1 9 1 10 1 2 17 27 5 51 26 0 1 21 1 73 1 9 17 28 5 51 27 0 1 9 1 6 1 7 1 21 1 5 1 11 17 29 5 51 28 0 1 7 1 5 1 8 1 21 17 30 5 51 29 0 1 7 1 8 1 5 1 6 17 31 5 51 30 0 1 31 1 5 1 30 1 22 17 32 5 51 31 0 1 7 1 22 17 33 5 51 32 0 1 21 17 34 5 51 33 0 1 21 1 9 1 22 17 35 5 51 34 0 1 21 1 9 1 22 17 36 5 51 35 0 1 8 1 5 1 6 1 21 1 9 1 7 17 37 5 51 36 0 1 8 1 5 1 6 1 21 1 9 1 7 17 38 5 51 37 0 1 5 1 7 1 6 1 9 1 21 1 10 17 39 5 51 38 0 1 5 1 6 1 7 1 53 1 21 1 73 1 9 17 40 5 51 39 0 1 16 1 46 1 17 1 9 1 6 1 7 17 41 5 51 40 0 1 7 1 5 1 8 1 21 17 42 5 51 41 0 1 7 1 5 1 42 17 43 5 51 42 0 1 5 1 6 1 7 1 9 1 21 17 44 5 51 43 0 1 9 1 21 17 45 5 51 44 0 1 5 1 6 1 7 1 16 1 17 1 46 17 46 5 51 45 0 1 5 1 6 1 7 1 9 1 21 1 15 1 14 1 16 17 47 5 51 46 0 1 5 1 8 1 7 1 21 17 48 5 51 47 0 1 8 1 5 1 6 1 21 17 49 5 51 48 0 1 21 17 50 5 51 49 0 1 21 1 10 17 51 5 51 50 0 1 21 1 9 1 73 17 52 5 51 51 0 1 6 1 7 1 10 1 21 1 9 1 73 17 53 5 51 52 0 1 6 1 7 1 9 17 54 5 51 53 0 1 6 1 7 1 5 1 42 17 55 5 51 54 0 1 21 17 56 5 51 55 0 1 8 1 5 1 6 1 21 1 9 17 57 5 51 56 0 1 8 1 5 1 6 1 21 17 58 5 51 57 0 1 8 1 5 1 6 1 21 17 59 5 51 58 0 1 21 1 10 17 60 5 51 59 0 1 9 17 61 5 51 60 0 1 5 1 42 17 62 5 51 61 0 1 8 1 5 1 6 1 21 17 63 5 51 62 0 1 8 1 5 1 6 1 76 17 64 5 51 63 0 1 6 1 7 1 62 1 73 1 9 17 65 5 51 64 0 1 6 1 7 1 62 1 64 1 9 17 66 5 51 65 0 1 5 1 6 1 7 1 21 17 67 5 51 66 0 1 5 1 6 1 7 1 21 1 67 1 9 17 68 5 51 67 0 1 4 1 7 1 8 1 5 1 1 17 69 5 51 68 0 1 8 1 5 1 6 1 21 17 70 5 51 69 0 1 21 1 9 17 71 5 51 70 0 1 5 1 6 1 7 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 43 1 44 1 45 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 68 1 57 1 58 1 59 1 60 1 61 1 63 1 70 1 71 1 21 17 72 5 51 71 0 1 72 1 9 1 8 1 5 1 6 17 73 5 51 72 0 1 9 1 31 1 5 1 7 1 21 1 73 1 6 17 74 5 51 73 0 1 73 1 9 17 75 5 51 74 0 1 6 1 7 1 74 1 75 1 65 1 66 1 73 17 76 5 51 75 0 1 8 1 76 1 77 17 77 5 16 77 52 76 0 0 48 1 17 78 16 78 52 1 0 1 1 78 0 52 77 0 2 33 9 0 16 78 52 79 0 1 32 9 0 1 81 0 16 78 52 80 0 2 50)} "hs-compile" {:upvalue-count 0 :arity 1 :constants ("hs-parse" "hs-tokenize") :bytecode (20 0 0 20 1 0 16 0 48 1 16 0 49 2 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 50))) diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index a1254c24..ac144cb9 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -7484,7 +7484,8 @@ (dom-append _el-list _el-li3) )) (deftest "where binds after property access" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "obj.items where it > 2") (list 3 4)) + ) (deftest "where after in with mapped to" (hs-cleanup!) (let ((_el-items (dom-create-element "ul")) (_el-li (dom-create-element "li")) (_el-li2 (dom-create-element "li")) (_el-li3 (dom-create-element "li"))) @@ -8363,15 +8364,20 @@ (deftest "converts object as Map" (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) (deftest "converts object as Keys" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "{a:1, b:2} as Keys") (list "a" "b")) + ) (deftest "converts object as Entries" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "{a:1} as Entries") (list (list "a" 1))) + ) (deftest "converts array as Reversed" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "[1,2,3] as Reversed") (list 3 2 1)) + ) (deftest "converts array as Unique" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "[1,2,2,3,3] as Unique") (list 1 2 3)) + ) (deftest "converts nested array as Flat" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "[[1,2],[3,4]] as Flat") (list 1 2 3 4)) + ) ) ;; ── attributeRef (1 tests) ── @@ -8551,9 +8557,13 @@ (assert= (eval-hs "'d' is between 'a' and 'c'") false) ) (deftest "I am between works" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "I am between 1 and 10") true) + (assert= (eval-hs "I am between 1 and 10") false) + ) (deftest "I am not between works" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "I am not between 1 and 10") false) + (assert= (eval-hs "I am not between 1 and 10") true) + ) (deftest "precedes works" (hs-cleanup!) (let ((_el-a (dom-create-element "div")) (_el-b (dom-create-element "div")) (_el-c (dom-create-element "div"))) @@ -8666,7 +8676,9 @@ (dom-append (dom-body) _el-b2) )) (deftest "is still does equality when rhs variable exists" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + (assert= (eval-hs "x is y") true) + (assert= (eval-hs "x is y") false) + ) (deftest "is boolean property works in where clause" (hs-cleanup!) (let ((_el-input (dom-create-element "input")) (_el-input1 (dom-create-element "input")) (_el-input2 (dom-create-element "input"))) @@ -8763,7 +8775,8 @@ ;; ── objectLiteral (1 tests) ── (defsuite "hs-upstream-objectLiteral" (deftest "allows trailing commas" - (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) + ;; TODO: assert= (eval-hs "{foo:true, bar-baz:false,}") against { "foo": true, "bar-baz": false } + ) ) ;; ── queryRef (1 tests) ── diff --git a/tests/playwright/generate-sx-tests.py b/tests/playwright/generate-sx-tests.py index b1b0f06e..381c88d4 100644 --- a/tests/playwright/generate-sx-tests.py +++ b/tests/playwright/generate-sx-tests.py @@ -674,11 +674,12 @@ def extract_hs_expr(raw): def generate_eval_only_test(test, idx): """Generate SX deftest for no-HTML tests using eval-hs. Handles patterns: - - run("expr").toBe(val) - - expect(run("expr")).toBe(val) - - var result = await run(`expr`); expect(result).toBe(val) - - run("expr").toEqual([...]) + - run("expr").toBe(val) or run("expr", opts).toBe(val) + - expect(run("expr")).toBe(val) or expect(run("expr", opts)).toBe(val) + - var result = await run(`expr`, opts); expect(result).toBe(val) + - run("expr").toEqual([...]) or run("expr").toEqual({...}) - run("expr").toThrow() + Also handles String.raw`expr` template literals. """ body = test.get('body', '') lines = [] @@ -687,28 +688,47 @@ def generate_eval_only_test(test, idx): assertions = [] - # Pattern 1: Inline — run("expr").toBe(val) or expect(run("expr")).toBe(val) + # Shared sub-pattern for run() call with optional String.raw and extra args: + # run(QUOTE expr QUOTE) or run(QUOTE expr QUOTE, opts) or run(String.raw`expr`, opts) + # Extra args can contain nested parens/braces, so we allow anything non-greedy up to the + # matching close-paren by tracking that the close-paren follows the quote. + _Q = r'["\x27`]' # quote character class + _RUN_OPEN = r'(?:await\s+)?run\((?:String\.raw)?(' + _Q + r')(.+?)\1' # groups: (quote, expr) + _RUN_ARGS = r'(?:\s*,\s*[^)]*(?:\([^)]*\)[^)]*)*)*' # optional extra args with nested parens + + # Pattern 1: Inline — expect(run("expr", opts)).toBe(val) or run("expr", opts).toBe(val) for m in re.finditer( - r'(?:expect\()?(?:await\s+)?run\((["\x27`])(.+?)\1\)\)?\.toBe\(([^)]+)\)', + r'(?:expect\()?' + _RUN_OPEN + _RUN_ARGS + r'\)\)?\.toBe\(([^)]+)\)', body, re.DOTALL ): hs_expr = extract_hs_expr(m.group(2)) expected_sx = js_val_to_sx(m.group(3)) assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})') - # Pattern 1b: Inline — run("expr").toEqual([...]) + # Pattern 1b: Inline — run("expr", opts).toEqual([...]) for m in re.finditer( - r'(?:expect\()?(?:await\s+)?run\((["\x27`])(.+?)\1\)\)?\.toEqual\((\[.*?\])\)', + r'(?:expect\()?' + _RUN_OPEN + _RUN_ARGS + r'\)\)?\.toEqual\((\[.*?\])\)', body, re.DOTALL ): hs_expr = extract_hs_expr(m.group(2)) expected_sx = js_val_to_sx(m.group(3)) assertions.append(f' (assert= (eval-hs "{hs_expr}") {expected_sx})') - # Pattern 2: Two-line — var result = await run(`expr`); expect(result).toBe(val) + # Pattern 1c: Inline — run("expr", opts).toEqual({...}) + if not assertions: + for m in re.finditer( + r'(?:expect\()?' + _RUN_OPEN + _RUN_ARGS + r'\)\)?\.toEqual\((\{.*?\})\)', + body, re.DOTALL + ): + hs_expr = extract_hs_expr(m.group(2)) + # Object toEqual — emit as dict assertion comment (can't fully convert JS objects to SX) + obj_str = m.group(3).strip() + assertions.append(f' ;; TODO: assert= (eval-hs "{hs_expr}") against {obj_str}') + + # Pattern 2: Two-line — var result = await run(`expr`, opts); expect(result...).toBe/toEqual(val) if not assertions: run_match = re.search( - r'(?:var|let|const)\s+\w+\s*=\s*(?:await\s+)?run\((["\x27`])(.+?)\1\)', + r'(?:var|let|const)\s+\w+\s*=\s*' + _RUN_OPEN + _RUN_ARGS + r'\)', body, re.DOTALL ) if run_match: @@ -722,7 +742,7 @@ def generate_eval_only_test(test, idx): # Pattern 3: toThrow — expect(() => run("expr")).toThrow() for m in re.finditer( - r'run\((["\x27`])(.+?)\1\).*?\.toThrow\(\)', + r'run\((?:String\.raw)?(["\x27`])(.+?)\1\).*?\.toThrow\(\)', body, re.DOTALL ): hs_expr = extract_hs_expr(m.group(2)) diff --git a/tests/playwright/hs-behavioral-data.js b/tests/playwright/hs-behavioral-data.js index 7919927e..cb5a37a8 100644 --- a/tests/playwright/hs-behavioral-data.js +++ b/tests/playwright/hs-behavioral-data.js @@ -1,6 +1,6 @@ // Auto-generated from _hyperscript upstream test suite // Source: spec/tests/hyperscript-upstream-tests.json -// 256 tests (90 skipped) +// 378 tests (453 skipped) // // DO NOT EDIT — regenerate with: python3 tests/playwright/generate-hs-tests.py @@ -4028,5 +4028,981 @@ module.exports = [ } ], "async": false + }, + { + "category": "dialog", + "name": "show opens a dialog as modal", + "html": "

Hello

", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dialog", + "name": "open opens a dialog", + "html": "

Hello

", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dialog", + "name": "open opens a details element", + "html": "
More

Content

", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dialog", + "name": "close closes a details element", + "html": "
More

Content

", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dialog", + "name": "open on implicit me", + "html": "", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty an element", + "html": "

hello

world

", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "empty with no target empties me", + "html": "
content
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty multiple elements", + "html": "

a

b

", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty an array", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty a text input", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty a textarea", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty a checkbox", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "can empty a form (clears all inputs)", + "html": "\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "clear is an alias for empty", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "empty", + "name": "clear works on elements", + "html": "

content

", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halts event propagation and default", + "html": "", + "action": "find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halt stops execution after the halt", + "html": "
test
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halt the event stops propagation but continues execution", + "html": "
click me
", + "action": "find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halt the event's stops propagation but continues execution", + "html": "
click me
", + "action": "find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halt bubbling only stops propagation, not default", + "html": "
click me
", + "action": "find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "halt", + "name": "halt default only prevents default, not propagation", + "html": "
click me
", + "action": "find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "morph", + "name": "basic morph updates content", + "html": "
old
", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "morph", + "name": "morph updates attributes", + "html": "
content
", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "morph", + "name": "morph initializes hyperscript on new elements", + "html": "

old

", + "action": "find('#go').dispatchEvent('click'); find('#inner').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "morph", + "name": "morph with variable content", + "html": "
original
", + "action": "find('#go').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset a form", + "html": "\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t", + "action": "find('#t1').fill('changed'); find('#rst').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "reset with no target resets me (form)", + "html": "\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t", + "action": "find('#t2').fill('modified'); find('form').dispatchEvent('custom')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset a text input to defaultValue", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('#t3').fill('goodbye'); find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset a checkbox", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset an unchecked checkbox", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset a textarea", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('#ta1').fill('new text'); find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset a select", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "reset", + "name": "can reset multiple inputs", + "html": "\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "swap", + "name": "can swap two variables", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "swap", + "name": "can swap two properties", + "html": "
\n\t\t\txy", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "swap", + "name": "can swap a variable with a property", + "html": "
\n\t\t\t", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "bind", + "name": "attribute bound to another element input value", + "html": "

", + "action": "find('#title-input').fill('World')", + "checks": [], + "async": true + }, + { + "category": "when", + "name": "detects changes from :element variable", + "html": "
0
", + "action": "find('div').click(); find('div').click()", + "checks": [], + "async": true + }, + { + "category": "when", + "name": "works with on handlers that modify the watched variable", + "html": "
initial
", + "action": "find('div').click()", + "checks": [], + "async": true + }, + { + "category": "when", + "name": "isolates element-scoped variables between elements", + "html": "
A
B
", + "action": "find('#d1').click(); find('#d2').click()", + "checks": [], + "async": true + }, + { + "category": "when", + "name": "value of #element is tracked", + "html": "", + "action": "find('#of-input').fill('changed')", + "checks": [], + "async": true + }, + { + "category": "liveTemplate", + "name": "processes hyperscript on inner elements", + "html": "\n\t\t\t\n\t\t", + "action": "find('[data-live-template] button').click()", + "checks": [], + "async": true + }, + { + "category": "assignableElements", + "name": "set closest replaces ancestor", + "html": "
", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "assignableElements", + "name": "hyperscript in replacement content is initialized", + "html": "
old
", + "action": "find('#go').dispatchEvent('click'); find('#target').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "assignableElements", + "name": "put into still works as innerHTML", + "html": "
old
", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "collectionExpressions", + "name": "works with DOM elements", + "html": "
", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "collectionExpressions", + "name": "where binds after in on closest", + "html": "
ABC
", + "action": "find('#b2').click()", + "checks": [], + "async": true + }, + { + "category": "collectionExpressions", + "name": "where in init followed by on feature", + "html": "
AB
", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "collectionExpressions", + "name": "where in component init followed by on feature", + "html": "\n\t\t\t
AB
\n\t\t\t\n\t\t\tgo\n\t\t", + "action": "find('test-where-comp').click()", + "checks": [], + "async": true + }, + { + "category": "collectionExpressions", + "name": "where with is not me followed by on feature", + "html": "\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
in the closest where it is not me\n\t\t\t\t on change set checked of the :checkboxes to my checked\">\n\t\t\t
\n\t\t", + "action": "find('#master').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "child reads ^var set by parent", + "html": "
0
", + "action": "find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "child writes ^var and parent sees it", + "html": "
0
", + "action": "find('button').click(); find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "deeply nested child reads ^var from grandparent", + "html": "
empty
", + "action": "find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "closest ancestor wins (shadowing)", + "html": "
empty
", + "action": "find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "sibling subtrees have independent ^vars", + "html": "
empty
empty
", + "action": "find('#a span').click(); find('#b span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "write to ^var not found anywhere creates on current element", + "html": "
empty
", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "child write updates the ancestor, not a local copy", + "html": "
0
", + "action": "find('button').click(); find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "increment works on inherited var", + "html": "
", + "action": "find('button').click(); find('button').click(); find('button').click(); find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "dom keyword works as scope modifier", + "html": "
0
", + "action": "find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "set ^var on explicit element", + "html": "
read
", + "action": "find('button').click(); find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "on clause targets a specific ancestor", + "html": "
read
", + "action": "find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "on clause with id reference", + "html": "
read", + "action": "find('button').click(); find('span').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "when reacts to ^var changes", + "html": "
", + "action": "find('button').click(); find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "always reacts to ^var changes", + "html": "
", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "multiple children react to same ^var", + "html": "
", + "action": "find('button').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "sibling subtrees react independently with ^var", + "html": "
", + "action": "find('#a button').click(); find('#a button').click(); find('#b button').click()", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "bind works with ^var", + "html": "
", + "action": "find('input').fill('hello')", + "checks": [], + "async": true + }, + { + "category": "dom-scope", + "name": "derived ^var chains reactively", + "html": "
", + "action": "find('#price-btn').click(); find('#qty-btn').click()", + "checks": [], + "async": true + }, + { + "category": "component", + "name": "processes _ on inner elements", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('test-inner button').click()", + "checks": [], + "async": true + }, + { + "category": "component", + "name": "supports multiple independent instances", + "html": "\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('#a button').click()", + "checks": [], + "async": true + }, + { + "category": "component", + "name": "blocks processing of inner hyperscript until render", + "html": "\n\t\t\t\n\t\t\t\n\t\t", + "action": "find('test-block span').click()", + "checks": [], + "async": true + }, + { + "category": "component", + "name": "does not process slotted _ attributes prematurely", + "html": "\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tbefore\n\t\t\t\t\n\t\t\t
\n\t\t", + "action": "find('test-slot-hs span').click()", + "checks": [], + "async": true + }, + { + "category": "add", + "name": "when clause sets result to matched elements", + "html": "
", + "action": "find('#trigger').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "add", + "name": "when clause result is empty when nothing matches", + "html": "
", + "action": "find('#trigger').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "can default possessive properties", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "can default of-expression properties", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "can default array elements", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "default array element respects existing value", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "default preserves zero", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "default overwrites empty string", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "default preserves false", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "can default style ref when unset", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "default", + "name": "default style ref preserves existing value", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "hide", + "name": "can filter hide via the when clause", + "html": "
", + "action": "find('#trigger').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "increment", + "name": "can increment an array element", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "increment", + "name": "can decrement an array element", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "increment", + "name": "can increment a possessive property", + "html": "
5
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "increment", + "name": "can increment a property of expression", + "html": "
5
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "increment", + "name": "can increment a style ref", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "js", + "name": "handles rejected promises without hanging", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "put", + "name": "put null into attribute removes it", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "remove", + "name": "can filter class removal via the when clause", + "html": "
", + "action": "find('#trigger').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "basic raw for loop with null works", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "basic property for loop works", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "bottom-tested repeat until", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "bottom-tested repeat while", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "bottom-tested loop always runs at least once", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "break exits a simple repeat loop", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "continue skips rest of iteration in simple repeat loop", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "break exits a for-in loop", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "break exits a while loop", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "repeat", + "name": "for loop over undefined skips without error", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "settle", + "name": "can settle a collection of elements", + "html": "
", + "action": "find('#trigger').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "show", + "name": "the result in a when clause refers to previous command result, not element being tested", + "html": "
in me when the result is 'found'\\\">
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "show", + "name": "the result after show...when is the matched elements", + "html": "
in me when its textContent is 'yes' if the result is empty put 'none' into #out else put 'some' into #out\\\">

yes

no

--
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "toggle", + "name": "can toggle visibility", + "html": "
", + "action": "find('div').dispatchEvent('click'); find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "toggle", + "name": "can toggle opacity w/ my", + "html": "
", + "action": "find('div').dispatchEvent('click'); find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "toggle", + "name": "can toggle visibility w/ my", + "html": "
", + "action": "find('div').dispatchEvent('click'); find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "toggle", + "name": "can toggle *display between two values", + "html": "", + "action": "find('div').dispatchEvent('click'); find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "toggle", + "name": "can toggle *opacity between three values", + "html": "
", + "action": "find('div').dispatchEvent('click'); find('div').dispatchEvent('click'); find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "on", + "name": "caught exceptions do not trigger 'exception' event", + "html": "", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "on", + "name": "rethrown exceptions trigger 'exception' event", + "html": "", + "action": "find('button').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "on", + "name": "can ignore when target doesn\\'t exist", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "parser", + "name": "can have comments in attributes (triple dash)", + "html": "
", + "action": "find('div').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "parser", + "name": "element-level isolation still works with error recovery", + "html": "
", + "action": "find('#d2').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "scoping", + "name": "element scoped variables span features w/short syntax", + "html": "
", + "action": "find('#d1').dispatchEvent('click'); find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "closest", + "name": "closest does not consume a following where clause", + "html": "
in the closest where it is not me on click put :others.length into #out\\\">
", + "action": "find('#master').click()", + "checks": [], + "async": true + }, + { + "category": "comparisonOperator", + "name": "is a works with instanceof fallback", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "comparisonOperator", + "name": "is a Node works via instanceof", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "comparisonOperator", + "name": "is not a works with instanceof fallback", + "html": "
", + "action": "find('#d1').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "comparisonOperator", + "name": "I precede works", + "html": "
", + "action": "find('#a').dispatchEvent('click')", + "checks": [], + "async": true + }, + { + "category": "no", + "name": "no with where on DOM elements", + "html": "
AB
", + "action": "find('button').click()", + "checks": [], + "async": true } ];